* wrong date fix
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-18  Havoc Pennington  <hp@redhat.com>
2
3         * doc/dbus-specification.xml: add a GetAll to the Properties
4         interface.
5
6 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
7  
8         * bus\config-parser.c (test_default_session_servicedirs):
9         win32 fix.
10
11 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
12  
13         * configure.in: define constant DBUS_UNIX.
14
15 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
16
17         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
18         compile fix for MS Platform SDK 6 
19         patch from Michael Luschas <mluschas@gmail.com>
20
21 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
22
23         * dbus-1.pc.in: add daemondir to pc file
24         patch from Brian Cameron <brian.cameron at sun.com>
25
26 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
27
28         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
29         interface and the corresponding /o/fd/DBus/Local object path;
30         describe them as reserved and forbid using them in a sent message,
31         mentioning that in the reference implementation this will cause the
32         connection to be dropped. Patch approved by Havoc.
33
34 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
35
36         * cmake/: don't install test applications and service files,
37         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
38
39 2007-04-27  Havoc Pennington  <hp@redhat.com>
40
41         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
42         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
43         the fd itself
44
45 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
46
47         * cmake/: added debug postfixes to debug exe's for 
48         easier debugging.
49         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
50         print error code in case no string message is available.
51
52 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
53
54         * dbus/dbus-message-util.c, dbus/dbus-message.c,
55         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
56         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
57         approved by Havoc Pennington.
58
59 2007-04-03  Timo Hoenig  <thoenig@suse.de>
60
61         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
62           length address.
63         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
64           length address.
65
66 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
67
68         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
69
70 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
71
72         * cmake/modules/FindExpat.cmake: fix package detection on win32.
73
74         * README.win: update install instructions. 
75
76 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
77
78         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
79         new prototyp
80         (_DBUS_PATH_SEPARATOR): new macro. 
81
82         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
83         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
84
85 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
86
87         * bus/config-parser.c, bus/policy.c,  
88         bus/policy.h, bus/dbus-daemon.1.in,
89         bus/session.conf.in: added eavesdrop support 
90         for replies - patch by olli.salli at collabora.co.uk
91         approved by Havoc Pennington. 
92
93 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
94
95         * dbus\dbus-sysdeps-win-thread.c: renamed to 
96         dbus-sysdeps-thread-win.c, it is a platform depending file 
97         similar to dbus-sysdeps-pthread.c.
98
99 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
100
101         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
102         support, needs cmake Find script.
103
104 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
105
106         * cmake: add doxygen support
107
108 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
109
110         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
111
112 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
113
114         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
115         win32 compile fix. 
116
117 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
118
119         * dbus-win.patch: removed obsolate patches. 
120
121 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
122
123         * dbus/dbus-sysdeps-win.c: added zero byte sending 
124         and receiving after connection start up
125
126 2007-03-11  Havoc Pennington  <hp@redhat.com>
127
128         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
129         formatting problem
130
131         * Mostly fix the DBusPipe mess.
132         - put line break after function return types
133         - put space before parens
134         - do not pass structs around by value
135         - don't use dbus_strerror after calling supposedly cross-platform
136         api
137         - don't name pipe variables "fd"
138         - abstract special fd numbers like -1 and 1
139
140 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
141
142         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
143         dbus/dbus-sysdeps-util-win.c: renamed functions 
144         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
145         struct name DBusFile. 
146
147 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
148
149         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
150         fix _dbus_pid_fd check. 
151
152 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
153
154         * tools/dbus-print-message.c (print_message):
155         added printing of the reply serial to method returns and 
156         errors, so you can actually figure out the message/reply 
157         pairs - patch by olli.salli at collabora.co.uk.
158
159 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
160
161         * dbus-win.patch: removed committed patches. 
162
163 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
164
165         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
166         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
167         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
168         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
169         completed _dbus_pipe support. 
170
171 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
172
173         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
174         changed type or port to pointer, because the port is given back.
175
176         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
177         implemented returning tcp port. Skipping port parameter
178         and non integer port values in config <listen> statement
179         needs more effort.
180
181         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
182         (_dbus_listen_tcp_socket): return the real used tcp port.
183
184         * bus/dbus-daemon.1.in: added <listen> tcp examples
185
186 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
187
188         * cmake/config.h.cmake: win32 msvc bug fix
189
190 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
191
192         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
193         using _WINCE does not work.
194
195 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
196
197         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
198         committed.
199
200 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
201
202         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
203         rename pipe related write() function calls to _dbus_write_pipe().
204
205 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
206
207         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
208         uses DBUS_WIN for alls win32 related #ifdefs, 
209         some minor cleanups
210
211 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
212
213         * dbus-win.patch: updated patch for bus/dispatch.c.
214
215 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
216
217         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
218         dbus_connection_get_unix_process_id): Let return them valid user id's, 
219         otherwise bus-test fails. How to replace on win32 ?.
220         
221         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
222         fix memory leak.
223
224 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
225
226         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
227         use dbus friendly error name.
228         (fill_win_user_info_homedir): print user name in error case too.
229
230 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * cmake/ConfigureChecks.cmake: fixed socketpair check
233
234 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
235
236         * bus/dispatch.c: disabled segfault test on win32 for now
237
238 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
239
240         * configure.in, cmake/ConfigureChecks.cmake: added check 
241         for setrlimit. 
242         * test/test-segfault.c: only include setrlimit stuff only 
243         when available.  
244
245 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
246
247         * test/test-segfault.c: unix compile fix.
248         * dbus-win.patch: removed obsolate patches.
249
250 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
251
252         * bus/activation.c: removed obsolate include header.
253         * test/test-segfault.c: win32 compile fix, rlimit 
254         isn't available on win32.
255         * dbus-win.patch: removed some more patches, they
256         are applied or obsolate 
257
258 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
259
260         * bus-win.patch: fixes unix listen problems, dbus-test 
261         now runs.
262
263 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
264
265         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
266         cmake/CMakeLists.txt: win32 compile fix
267
268 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
269
270         * dbus-win.patch, README.win: added available win32 
271         patches from windbus project (http://sf.net/projects/windbus)
272
273 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
274
275         * bus/activation.c: (bus_activation_activate_service):
276         fixed call to _dbus_spawn_async_with_babysitter().
277
278 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
279
280         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
281         added environment pointer as function parameter, used on win32.
282
283         * test/spawn-test.c: fixed call to above mentioned function.
284
285 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
286
287         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
288         added configure check for unistd.h.
289
290 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
291
292         * test/Makefile.am: fixed test data copy problem in 
293         out of source build, when sources came from svn or cvs. 
294
295 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
296
297         * dbus/*-win.*,bus/*-win.*: added win32 platform related
298         files. These files are only added to the cmake build system.  
299         The missing dbus-win.patch file will be added later. 
300
301 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
302
303         * cmake: new directory, contains cmake build support.
304         See http://www.cmake.org for more informations.
305         Currently only unix will be buildable because some 
306         win32 required files are still missing. 
307
308 2007-03-03  Thiago Macieira  <thiago@kde.org>
309
310         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
311         output and add it to the DBusError message we return.
312
313         * tools/dbus-launch.1:
314         * tools/dbus-launch.c: Add option --close-stderr to, well,
315         close stderr before starting dbus-daemon.
316
317 2007-01-31  Havoc Pennington  <hp@redhat.com>
318
319         * bus/dbus-daemon.1.in: write a section in the man page on running
320         a test daemon for debugging purposes
321
322 2007-01-26  Havoc Pennington  <hp@redhat.com>
323
324         * bus/session.conf.in: override all the default limits with much
325         higher limits on the session bus, there is no reason the session
326         bus should have low limits
327
328         * bus/config-parser.c (bus_config_parser_new): increase default
329         limits so they are less likely to be hit; in particular the max
330         replies per connection was way too low
331
332 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
333
334         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
335         a pointer to the tutorial maintained as part of dbus-python
336
337 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
338
339         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
340         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
341         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
342
343 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
344
345         * tools/dbus-monitor.c: gettimeofday() is not available 
346         on windows so we have to provide our own. It's taken from 
347         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
348
349 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
350
351         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
352         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
353         is in dbus-sysdeps-win.c (not in this patch).
354
355         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
356         with InterlockedInc/Decrement. 
357         - Patches from Christian Ehrlicher
358         
359 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
360
361         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
362
363 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
364
365         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
366         fix mispaced const statement. - Patch from Peter Kümmel
367
368 2006-12-19  Ray Strode  <rstrode@redhat.com>
369
370         * bus/bus.c (process_config_every_time):
371         don't overwrite existing bus context activation object
372         until after we've checked that the new activation is
373         valid.
374
375         * bus/main.c 
376         (signal_handler), (handle_reload_watch):
377         don't call exit() on failure, instead make do and keep
378         going.
379         (close_reload_pipe): new function to turn off
380         hangup-causes-config-reload behavior if an unexpected
381         error occurs
382
383 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
384
385         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
386         correctness fix. - Patch from Christian Ehrlicher
387
388 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
389
390         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
391         we should also use it. - Patch from Christian Ehrlicher
392
393 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
394   
395         * dbus-sysdeps-util.c: added win32 related tests
396
397 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
398
399         * dbus/dbus-string.c (_dbus_string_pop_line),
400         bus/desktop-file.c (parse_section_start,
401         parse_comment_or_blank,parse_key_value,): uses
402         _dbus_string_find_eol() to support platform independent eol style.
403
404 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
405
406         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
407         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
408               _dbus_string_find_eol().
409         Approved by: Havoc Pennington.
410
411 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
412
413         * configure.in: Added switch to disable user_database caching.
414
415         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
416         be able disable user_dabase caching.
417
418 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
419
420         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
421         struct. It is unnecessary we have a global one already. Also remove 
422         bus_context_get_user_database function, it is no longer needed.
423         Flush the global database on reload.
424
425         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
426         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
427
428         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
429         Add _dbus_user_database_flush_system. 
430         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
431         Small unrelated change in _dbus_is_a_number: change 
432         _dbus_string_parse_int to _dbus_string_parse_uint. 
433
434         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
435         _dbus_groups_from_uid.
436
437         * bus/policy.c, bus/policy.h: Change call to 
438         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
439         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
440         needs it.
441
442 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
443
444         * bus/signal.c: Fix match_rule_equal errata
445         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
446         <kimmo.hamalainen@nokia.com>)
447
448 2006-11-19  Thiago Macieira  <thiago@kde.org>
449
450         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
451         _dbus_pthread_condvar_wait,
452         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
453         pthread_self() after coming back from a conditional variable
454         wait as well as in one codepath where it was forgotten.
455         Approved by: Havoc Pennington.
456
457 2006-11-17  Havoc Pennington  <hp@redhat.com>
458
459         * update-dbus-docs.sh: allow setting fd.org username via env
460         variable. Make it run autogen with --enable-xml-docs=yes
461         --enable-doxygen-docs=yes so configure will fail if the required
462         tools are missing.
463
464 2006-11-17  Havoc Pennington  <hp@redhat.com>
465
466         * doc/dbus-faq.xml: minor FAQ tweaks
467
468 2006-11-14  Havoc Pennington  <hp@redhat.com>
469         
470         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
471         dbus_get_local_machine_id() to its own file, no substantive
472         changes. There are a couple other things we might want to add that
473         are "misc" so moving out of dbus-connection.[hc] which is big
474         enough already.
475         
476 2006-11-14  Havoc Pennington  <hp@redhat.com>
477
478         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
479         UUID had the timestamp last, but the implementation had it first;
480         move it to last since I think it's a tiny bit nicer (easier to
481         compare at a glance, faster to sort, less code), and will not
482         cause any practical compatibility problems. Also, always convert
483         the timestamp to big endian.
484
485         * doc/dbus-specification.xml: Clean up the docs on the UUID.
486
487         * tools/dbus-uuidgen.1: more prominently say it is not suitable
488         as a replacement for regular uuidgen/RFC4122.
489
490 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
491
492         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
493         the correct value so we don't assert when initalizing recursive threads
494
495         * test/name-test/test-thread-init.c: call dbus_threads_init_default
496         instead of _dbus_threads_init_debug since it is more of a real world
497         test
498
499 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
500
501         * Released 1.0.0
502
503 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
504
505         * AUTHORS: added Peter and Tor of windows porting fame
506
507 2006-11-08  Havoc Pennington  <hp@redhat.com>
508
509         * doc/dbus-specification.xml: add a note about protocol stability
510
511         * doc/TODO: Remove "important for 1.0" section, replace with
512         "important for 1.2" section
513         
514 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
515
516         * README: remove some of the out of date flags
517
518         * doc/TODO: Remove todo items which are done
519
520 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
521
522         * tools/dbus-monitor.c: Handle sigint so we flush stdout
523         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
524
525 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
526
527         * tools/dbus-monitor.1: update the manpage for dbus-monitor
528         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
529
530 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
531
532         * AUTHORS: Update with all people listed in the ChangeLog
533
534 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
535
536         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
537         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
538
539 2006-11-07  Havoc Pennington  <hp@redhat.com>
540
541         * HACKING: Update release instructions to include stuff about
542         stable releases, branching, etc. May not be totally correct,
543         please fix if needed, but keep instructions up-to-date so we do
544         each stable release consistently in the future.
545
546 2006-11-07  Havoc Pennington  <hp@redhat.com>
547
548         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
549         documentation updates. Bump faq/spec versions (not to 1.0; I don't
550         think the spec will be "finished"/1.0 when we ship the 1.0 library).
551
552 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
553
554         * bus/bus.c: Missed patch - pass in the context to the directory watch
555
556 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
557
558         * Released D-Bus 1.0 RC 3(0.95)
559
560 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
561
562         * bus/activation.c (bus_activation_new): don't fail if we can not read
563         the directory as it may not exist
564
565 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
566
567         * bus/config-parser.c (service_dirs_find_dir): use 
568         _dbus_list_get_next_link so we don't get stuck in an infinite loop
569         (start_busconfig_child): move processing of standard_session_servicedirs
570         tags here because they have no content
571         (bus_config_parser_content): check we don't have content in 
572         standard_session_servicedirs tag
573
574 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
575
576         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
577         Packagers need to own this directory
578
579 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
580
581         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
582         <standard_session_servicedirs> tag with a <sevicedir> tag that
583         points to the test service directory
584
585 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
586
587         * configure.in: Add a check for DIR *dirp->dd_fd
588
589         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
590         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
591         of both Solaris and Irix
592
593 2006-11-01  Havoc Pennington  <hp@redhat.com>
594
595         * bus/dbus-daemon.1.in: document standard_session_servicedirs
596
597 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
598
599         * configure.in: expose DBUS_DATADIR
600         
601         * bus/config-parser.c: add the standard_session_servicedirs element
602         to the parser
603         (bus_config_parser_content): process the standard_session_servicedirs
604         element by getting the standard directories from sysdeps and merging
605         them into the service directory list
606         (test_default_session_servicedirs): make sure we get what we expect
607
608         * bus/session.conf.in: replace the servicedir tag with the 
609         standard_session_servicedirs tag
610
611         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
612         dbus-sysdeps.h to avoid circular header dependencies
613
614         * dbus/dbus-sysdeps.h: add the typedef of DBusList
615
616         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
617         which takes a string of directories delimited by colons, parses them 
618         out, appends a suffix and puts them in a list ignoring empty elements
619         (_dbus_get_standard_session_servicedirs): returns the standard 
620         directories for a session bus to look for service activation files
621         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
622         DBUS_DATADIR directories
623
624         * test/data/valid-config-files/many-rules.conf: add the 
625         standard_session_servicedirs tag to the valid config file tests
626
627 2006-10-30  Havoc Pennington  <hp@redhat.com>
628
629         * tools/dbus-launch.1, doc/TODO: capture intent to change the
630         command line options of dbus-launch a bit post 1.0
631
632 2006-10-27  Havoc Pennington  <hp@redhat.com>
633         
634         * dbus/dbus-connection.c (dbus_connection_open_private): document
635         how to choose shared vs. private connections
636
637 2006-10-27  Havoc Pennington  <hp@redhat.com>
638
639         * dbus/dbus-test.c: enclose more of the file in the
640         DBUS_BUILD_TESTS check.
641
642         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
643         DBUS_DISABLE_ASSERT case.
644
645         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
646         that it only works on the server side
647
648         * dbus/dbus-bus.c: add a global lock covering the BusData we
649         attach to each connection
650         (internal_bus_get): lock our access to the BusData
651         (dbus_bus_register): lock the entire registration process
652         with _DBUS_LOCK(bus_datas). If we get the lock and 
653         registration is already complete, silently return (vs. previous
654         behavior of aborting).
655         (dbus_bus_set_unique_name): lock the BusData
656         (dbus_bus_get_unique_name): lock the BusData
657
658 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
659
660         * bus/config-parser.c (service_dirs_find_dir, 
661         service_dirs_append_unique_or_free, 
662         service_dirs_append_link_unique_or_free): New static methods
663         for only appending unique service directory names into
664         the service directory list
665         (merge_included, bus_config_parser_content): Only add unique
666         service directory names into the list
667
668 2006-10-27  Havoc Pennington  <hp@redhat.com>
669
670         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
671         variables volatile, suggested by Thiago. Document struct fields.
672         (PTHREAD_CHECK): remove pthread error checking if assertions are
673         disabled, should reduce the no-assertions case to the bare
674         minimum code.
675
676 2006-10-26  Havoc Pennington  <hp@redhat.com>
677         
678         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
679         to be recursive
680         (_dbus_pthread_mutex_unlock): make it recursive
681         (_dbus_pthread_condvar_wait): save/restore the recursion count
682         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
683
684 2006-10-26  Havoc Pennington  <hp@redhat.com>
685
686         * doc/dbus-specification.xml: clarify the UUID text slightly
687
688         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
689         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
690         in preparation for being able to extend them for e.g. recursive
691         mutexes.
692
693 2006-10-26  Havoc Pennington  <hp@redhat.com>
694
695         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
696         condition variables relate to recursive mutexes.
697         
698         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
699         dbus/dbus-threads.c: Split the platforms-specific thread 
700         implementations into their own files.
701         
702         * dbus/dbus-sysdeps-pthread.c
703         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
704         was backward. Not that anything uses it.
705
706 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
707
708         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
709         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
710         needs to be cleaned up more.
711
712         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
713         up the CREDS issue.
714
715 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
716
717         * configure.in, dbus-1.pc.in: Check to see if thread methods 
718         are in glibc or libpthread and add -lpthread to the link stage 
719         if it is the latter
720
721 2006-10-26  Thiago Macieira  <thiago@kde.org>
722
723         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
724         bug 8780: the connection lock is only required while recording
725         the shared connection, so protect only that code
726         section. Don't require connection_lookup_shared to return a
727         locked connection.
728
729 2006-10-26  Thiago Macieira  <thiago@kde.org>
730
731         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
732         check if get_machine_uuid() returns NULL before proceeding any
733         further: we can't init the X atoms or create a session file
734         name if there is no machine ID.
735         This solves a crash reported by some users if
736         --exit-with-session was used without --autolaunch=<machine-id>
737
738 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
739
740         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
741         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
742
743         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
744         before we run dbus-launch
745
746         * configure.in: define TEST_BUS_BINARY to be the full path to 
747         dbus-daemon in the build root 
748
749 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
750
751         * dbus/Makefile.am:
752         * tools/Makefile.am:
753         * toos/dbus-uuidgen.1:
754                 Move the machine-id file to /var/lib/dbus 
755
756 2006-10-24  David Zeuthen  <davidz@redhat.com>
757
758         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
759         _dbus_assert (thread_init_generation != _dbus_current_generation)
760         not _dbus_assert (thread_init_generation == _dbus_current_generation)
761
762 2006-10-24  Thiago Macieira  <thiago@kde.org>
763
764         * dbus/dbus-sysdeps.h:
765         * dbus/dbus-sysdeps-unix.c: Add function
766         _dbus_make_file_world_readable that chmods a file to 0644.
767
768         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
769         Avoid writing to the static "argv" array, thereby avoiding a
770         COW on the child process.
771
772         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
773         call _dbus_make_file_world_readable on the created file.
774
775 2006-10-23  David Zeuthen  <davidz@redhat.com>
776
777         * dbus/dbus-memory.c: Use atomic variable to protect
778         n_blocks_outstanding otherwise OOM will be reported using SMP on
779         some arches
780         
781         * bus/dispatch.c: Add missing end of line characters
782
783         * bus/desktop-file.c (parse_section_start, parse_key_value) 
784         (bus_desktop_file_load): Propertly handle OOM
785
786         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
787         thread_init_generation equals _dbus_current_generation, not 0
788
789 2006-10-22  Havoc Pennington  <hp@redhat.com>
790
791         * dbus/dbus-connection-internal.h: move prototype of
792         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
793         it isn't in a public header and doesn't end up in the DBusBus
794         group in Doxygen
795
796 2006-10-21  Havoc Pennington  <hp@redhat.com>
797
798         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
799         the tarball if packagers want to run it
800
801         * cleanup-man-pages.sh: Add a script which munges all the internal
802         API man pages out of the Doxygen output. This reduces the size of
803         the installed man pages from 7 to 2 megs, and avoids
804         namespace-polluting pages. Right now (like Doxygen) this script
805         isn't in the build, it's something packagers can do manually.
806
807 2006-10-21  Havoc Pennington  <hp@redhat.com>
808
809         * dbus/dbus-connection.h: don't include the watch/timeout
810         functions in connection section
811
812 2006-10-21  Havoc Pennington  <hp@redhat.com>
813
814         * Documentation! Whee! Doxygen now 100% silent. If you make it
815         angry again, you will be punished.
816         
817 2006-10-21  Havoc Pennington  <hp@redhat.com>
818
819         * More documentation - all public API now documented according to
820         Doxygen
821
822 2006-10-21  Havoc Pennington  <hp@redhat.com>
823
824         * Document a bunch of undocumented stuff
825         
826 2006-10-21  Havoc Pennington  <hp@redhat.com>
827
828         * Clean up Doxygen group markers for public API so Doxygen finds
829         everything (not comprehensively fixed for private API).
830         Means all remaining Doxygen warnings are just about missing docs
831         and thus pretty simple to resolve.
832         
833 2006-10-21  Havoc Pennington  <hp@redhat.com>
834         
835         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
836
837         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
838         as DBUS_GNUC_DEPRECATED
839
840 2006-10-21  Havoc Pennington  <hp@redhat.com>
841
842         * Move all private API into the private Doxygen group sections of
843         the files, so they don't show up in the public API docs
844         
845 2006-10-21  Havoc Pennington  <hp@redhat.com>
846
847         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
848         dbus_message_iter_get_array_len().
849
850         * throughout: documentation improvements.
851
852 2006-10-20  Havoc Pennington  <hp@redhat.com>
853
854         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
855         matter, and the message-loader-breaker thing since nobody is going
856         to do it.  Add an item to 1.0 about supporting recursive locks
857         in dbus_threads_init_default() though, since it should be easy.
858
859         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
860         Fix this in the !dispatch case to avoid busy-looping after
861         disconnection
862
863         * More misc docs improvements
864
865 2006-10-19  Havoc Pennington  <hp@redhat.com>
866
867         * more Doxygen-related fixes (lots of moving things from the
868         public to internal section in dbus-connection.c)
869
870 2006-10-19  Havoc Pennington  <hp@redhat.com>
871
872         * Fix a pile of Doxygen warnings and missing docs
873
874 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
875
876         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
877         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
878         instead of a void *.  kqueue uses this to get the context's loop
879         while the other modules ignore the parameter.  This allows us to
880         avoid platform conditionals
881
882         * bus/bus.c (process_config_postinit): Pass in the context to the 
883         watch
884
885 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
886
887         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
888         when starting the system bus
889
890 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
891
892         * configure.in: More fixups for cross compile (Patch from 
893         Marco Pracucci <development at pracucci dot com>)
894
895 2006-10-17  Havoc Pennington  <hp@redhat.com>
896
897         * tools/dbus-send.c (main): don't close shared connection, fix
898         from Timo Hoenig
899
900 2006-10-17  Havoc Pennington  <hp@redhat.com>
901
902         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
903
904         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
905         since realistically it doesn't look like we'll be changing it
906         anymore.
907
908 2006-10-17  Havoc Pennington  <hp@redhat.com>
909
910         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
911         be used for return_if_fail type warnings; prefixes the pid, and
912         fatal by default.
913
914 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
915
916         * configure.in: Released 1.0 RC 2(0.94)
917         Add check for -fPIC and enable it if available
918
919 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
920
921         * doc/TODO: Remove the check TODO item
922
923 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
924
925         * dbus-transport-socket.c (exchange_credentials):
926         Print out more detailed errors if reading or sending
927         credentials fail (Patch from Julio M. Merino Vidal 
928         <jmmv at NetBSD dot org>)
929
930 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
931
932         * configure.in: when checking for posix getpwnam_r assume true
933         for cross compiles
934
935 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
936
937         * configure.in: Check for gethostbyname first before we check for it
938         in libnsl.  On gnu systems it is implemeneted 
939
940 2006-10-13  Havoc Pennington  <hp@redhat.com>
941
942         * dbus/dbus-connection.c
943         (dbus_connection_send_with_reply_and_block): fix to handle closed
944         connections, from Tambet Ingo bug #8631
945
946 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
947
948         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
949
950 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
951
952         * test/name-test/Makefile.am: don't link against both libdbus and
953         libdbus-convenience
954
955 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
956
957         * configure.in: check for dirfd even if it is a macro
958         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
959
960 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
961
962         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
963         avoid using dirfd on systems that don't have dirfd 
964         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
965
966 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
967
968         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
969         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
970
971         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
972         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
973         macro because _dbus_abort calls it
974
975         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
976         works
977
978 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
979
980         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
981         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
982
983 2006-10-02  Thiago Macieira  <thiago@kde.org>
984
985         * tools/dbus-launch.c (main): make it complain and abort
986         execution in case an unknown option is given. Also, process
987         the '--' argument as the end of arguments.
988
989 2006-10-01  Havoc Pennington  <hp@redhat.com>
990
991         * tools/dbus-launch.c (print_variables): if no syntax is given,
992         don't print something that's sort-of-half-sh-syntax, just print
993         a plain key-value pairs thing.
994
995         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
996         the local machine representation (but still have the hostname in
997         the display). Remove the hostname from the display if it is
998         localhost. Change session files to be named
999         ~/.dbus/session-bus/machine-display. Change X atoms to be
1000         underscore-prefixed so nobody whines about ICCCM compliance.
1001         Otherwise name them the same as the env variables.
1002         Change session file format to include key-value pairs and an
1003         explanatory comment. Keys are the same as the env variables.
1004         (set_address_in_x11): X property format can't depend on
1005         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1006
1007         * tools/dbus-launch.c: make --autolaunch take a machine id
1008         argument. If --autolaunch is used with a program to run, complain
1009         for now (but add a FIXME). Also, don't look for existing bus if 
1010         there's a program to run (but add a FIXME).
1011
1012         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1013         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1014         just to get this, and avoids duplicating uuid-reading code).
1015
1016         * tools/dbus-launch.1: clarify various things
1017         
1018 2006-10-01  Havoc Pennington  <hp@redhat.com>
1019
1020         * test/test-service.c (path_message_func): remove broken extra
1021         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1022
1023         * test/test-shell-service.c (path_message_func): same fix
1024         
1025         * dbus/dbus-connection.c
1026         (_dbus_connection_get_dispatch_status_unlocked): break up the
1027         function a little for clarity and fix the notification of
1028         dbus-bus.c to not require dispatch to be complete
1029
1030         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1031         warning when you try to finalize an open connection.
1032         
1033 2006-10-01  Havoc Pennington  <hp@redhat.com>
1034
1035         * dbus/dbus-bus.c
1036         (internal_bus_get): only weak ref the connection; this means 
1037         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1038         called safely in any context
1039         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1040         unref
1041
1042         * dbus/dbus-connection.c
1043         (_dbus_connection_get_dispatch_status_unlocked): move
1044         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1045         when queuing Disconnected instead of when the Disconnected message
1046         arrives, so dbus_bus_get() won't return closed connections.
1047         
1048 2006-10-01  Havoc Pennington  <hp@redhat.com>
1049
1050         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1051         Add a hack to make DBusNewConnectionFunction work right.
1052
1053         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1054         the hack here. Also, fix the todo about refcount leak.
1055         
1056         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1057         and use the hack here
1058         
1059         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1060         "shareable" flag; this was completely broken, since it meant 
1061         dbus_connection_open() returned a connection of unknown
1062         shared-ness. Now, we always hold a ref on anything opened 
1063         as shareable.
1064
1065         Move the call to notify dbus-bus.c into
1066         connection_forget_shared_unlocked, so libdbus consistently forgets
1067         all its knowledge of a connection at once. This exposed numerous
1068         places where things were totally broken if we dropped a ref inside
1069         get_dispatch_status_unlocked where
1070         connection_forget_shared_unlocked was previously, so move
1071         connection_forget_shared_unlocked into
1072         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1073         exit_on_disconnect here.
1074
1075         (shared_connections_shutdown): this assumed weak refs to the
1076         shared connections; since we have strong refs now, the assertion 
1077         was failing and stuff was left in the hash. Fix it to close
1078         still-open shared connections.
1079         
1080         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1081         debug pipe connections
1082         
1083         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1084         dbus-bus.c if the closed connection is in fact shared
1085         (_dbus_connection_close_possibly_shared): rename from 
1086         _dbus_connection_close_internal
1087         (dbus_connection_close, dbus_connection_open,
1088         dbus_connection_open_private): Improve docs to explain the deal
1089         with when you should close or unref or both
1090
1091         * dbus/dbus-bus.c
1092         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1093         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1094         loop over all connections
1095
1096         * test/test-utils.c (test_connection_shutdown): don't try to close
1097         shared connections.
1098
1099         * test/name-test/test-threads-init.c (main): fix warnings in here
1100
1101         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1102         env variable to cause blocking waiting for gdb; drop
1103         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1104         unconditionally.
1105
1106         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1107         so _dbus_print_backtrace works.
1108
1109         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1110         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1111         of -rdynamic/-export-dynamic
1112         
1113 2006-09-30  Havoc Pennington  <hp@redhat.com>
1114
1115         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1116         (internal_bus_get): fix screwy code formatting. whoever committed
1117         that was not paying attention!
1118
1119 2006-09-30  Havoc Pennington  <hp@redhat.com>
1120
1121         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1122         reflect addition of interfaces.
1123
1124         * doc/dbus-specification.xml: describe a new
1125         org.freedesktop.DBus.Peer.GetMachineId method
1126
1127         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1128         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1129         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1130         at end of skip_white
1131         (_dbus_string_chop_white): new function
1132
1133         * bus/connection.c (bus_connections_setup_connection): call
1134         dbus_connection_set_route_peer_messages.
1135
1136         * dbus/dbus-connection.c
1137         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1138         support a GetMachineId method.
1139
1140         Also, support a new flag to let the bus pass peer methods through
1141         to apps on the bus, which can be set with
1142         dbus_connection_set_route_peer_messages.
1143
1144         Finally, handle and return an error for anything unknown on the
1145         Peer interface, which will allow us to extend the Peer interface
1146         in the future without fear that we're now intercepting something
1147         apps were wanting to see.
1148         
1149         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1150         dbus/dbus-uuidgen.c
1151
1152         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1153         binary here, since most of the code is already in libdbus
1154
1155         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1156         uuid from the system config file
1157
1158         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1159         (_dbus_read_uuid_file_without_creating) 
1160         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1161         uuid-related functions, partly factored out from dbus-server.c
1162
1163         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1164         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1165
1166         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1167
1168         * tools/dbus-cleanup-sockets.1: explain what the point of this
1169         thing is a bit more
1170
1171         * autogen.sh (run_configure): add --config-cache to default
1172         configure args
1173
1174         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1175         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1176
1177         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1178         don't try to save address, fixes crash in make check
1179         
1180 2006-09-30  Thiago Macieira  <thiago@kde.org>
1181
1182         * configure.in: add DBUS_BINDIR as a #define to C source code.
1183
1184         * tools/dbus-launch.c
1185         * tools/dbus-launch.h
1186         * tools/dbus-launch-x11.c:
1187         * tools/dbus-launch.1: Add the --autolaunch option to
1188         dbus-launch, which makes it scan for an existing session
1189         started with --autolaunch. With that option, it also creates
1190         an X11 window and saves the bus address and PID to it.
1191
1192         * dbus/dbus-sysdeps.h:
1193         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1194         a function that runs "dbus-launch --autolaunch" to retrieve
1195         the running D-Bus session address (or start one if none was running)
1196
1197         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1198         address protocol, which tries to get the running session from
1199         dbus-launch.
1200
1201         * dbus/dbus-bus.c:
1202         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1203         D-Bus session bus address.
1204
1205         * dbus/dbus-connection.c: Fix horrible typo in error message.
1206
1207 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1210
1211 2006-09-17  Havoc Pennington  <hp@redhat.com>
1212
1213         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1214         fix so that if unix_user_function is set on windows, we still
1215         do the default check that the auth identity matches the bus identity
1216
1217 2006-09-16  Havoc Pennington  <hp@redhat.com>
1218
1219         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1220         to _dbus_transport_open_platform_specific,
1221         _dbus_transport_open_socket,
1222         and _dbus_transport_open_debug_pipe
1223
1224         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1225
1226 2006-09-16  Havoc Pennington  <hp@redhat.com>
1227
1228         Attempt auditing public API to remove all cases where a Unix
1229         function returns weird emulated goo to Windows. This probably 
1230         breaks the bus daemon on Windows, to fix it again we may 
1231         need to stop processing unix-specific config options on Windows,
1232         and may need to add Windows-specific public API or config options.
1233         
1234         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1235         to reflect added interfaces; should not break soname.
1236         
1237         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1238         not invoke unix user function on Windows. Kind of a hacky fix, but 
1239         we don't want a "unix uid" leaking out on Windows.
1240
1241         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1242         to get the socket fd on Windows or UNIX
1243         (dbus_connection_get_unix_fd): make this always fail on Windows
1244
1245 2006-09-16  Havoc Pennington  <hp@redhat.com>
1246
1247         * dbus/dbus-server.c (dbus_server_listen): change how this works
1248         to be able to delegate to a set of handlers that can succeed,
1249         fail, or choose not to handle. Allows us to have 
1250         dbus_server_listen_platform_specific.
1251
1252         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1253         factor out the tcp socket stuff to be used on windows, leaving
1254         unix domain socket only in dbus-socket-unix.c
1255
1256         * dbus/dbus-transport-socket.c
1257         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1258         stuff to be used on windows, leaving unix domain socket only 
1259         in dbus-transport-unix.c
1260
1261         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1262         temporary hack to be sure this fails on windows
1263         (dbus_connection_get_unix_process_id): ditto
1264
1265 2006-09-16  Havoc Pennington  <hp@redhat.com>
1266
1267         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1268         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1269         _dbus_open_socket so the domain/type/protocol from system headers
1270         are not required. This is kind of pointless though unless we move
1271         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1272         sysdeps-unix.c, which would mean adding a wrapper around
1273         bind/listen/etc.
1274         Also, add DBusError to the socket-opening functions so they 
1275         don't require use of errno.
1276
1277 2006-09-16  Havoc Pennington  <hp@redhat.com>
1278
1279         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1280         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1281
1282         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1283         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1284         functions specifically for sockets only, and move generic 
1285         read/write/open/close into unix-specific code.
1286
1287 2006-09-14  Havoc Pennington  <hp@redhat.com>
1288
1289         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1290         complaint about accessing revents when poll returns 0, from Julian Seward.
1291
1292 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1293
1294         * Released 1.0 RC 1 (0.93) 
1295
1296 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1299         use _dbus_close instead of close
1300
1301 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1304         credentials.  Fixes "external" authentication under e.g. NetBSD
1305         which does not support any other socket credentials mechanism.
1306         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1307
1308 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1311         dbus_threads_init and be used by the dbus mutex functions to
1312         avoid deadlocks.
1313
1314         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1315
1316 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1319         use threadsafe readdir_r instead of readdir
1320
1321 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * dbus-threads.c (dbus_threads_init_default): New method for
1324         initializing the internal thread implementation (Patch from
1325         Alexander Larsson <alexl at redhat dot com>)
1326
1327 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * remove a bunch of todo items from the 1.0 list
1330
1331 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1334         key not found
1335
1336 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1339         complex debugging code
1340
1341         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1342         between the test suite ifdefs
1343         (_dbus_verbose_bytes): return if verbosity is not enabled 
1344
1345 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1348         remove DBusMark
1349
1350 2006-09-10  Havoc Pennington  <hp@redhat.com>
1351
1352        patch mostly by Peter Kümmel, bug #8211
1353         
1354         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1355         unix-specific stuff in dbus-sysdeps.c
1356
1357         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1358         and move unix-specific stuff to dbus-sysdeps-unix.c
1359
1360         * configure.in: check HAVE_ERRNO_H
1361         
1362 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1363
1364         * bus/test-main.c (main): Initialize threading during tests
1365
1366         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1367         Unlock connection on error
1368         (generate_local_error_message): static method for generating
1369         an error message when we don't have a message to reply to
1370         (_dbus_connection_block_pending_call): Send a disconnect error
1371         instead of just a timeout (NULL) when the bus gets disconnected
1372         while blocking for a reply.
1373         
1374 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1377         filters (Patch from Kimmo Hämäläinen 
1378         <kimmo dot hamalainen at nokia dot com>)
1379
1380 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1381
1382         * dbus/dbus-connection-internal.h: Add prototype for 
1383         _dbus_connection_test_get_locks to remove warning
1384
1385 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1386
1387         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1388         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1389         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1390
1391 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * Clean up close calls to use _dbus_close (Patch from 
1394         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1395
1396 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1397
1398         * doc/TODO:
1399         - Remove pending call locking todo item
1400         - dbus_connection_open now holds hard ref.  Remove todo item
1401         - do proper locking on _dbus_bus_check_connection_and_unref
1402           and handle DBUS_BUS_STARTER. Remove todo item
1403         - Warn on closing of a shared connection.  Remove todo item
1404
1405         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1406         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1407         so we don't get the warning when closing shared connections
1408
1409         * test/test-service.c, test/test-shell-service.c: Applications
1410         don't close shared connections themselves so we unref instead of
1411         close
1412
1413         * test/test-utils.c (test_connection_shutdown): Close the connection
1414
1415         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1416         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1417         method on a locked connection.  
1418         Make sure we call _dbus_connection_unref_unlocked instead of 
1419         dbus_connection_unref also.
1420         Handle DBUS_BUS_STARTER correctly
1421
1422         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1423         Mark as shared and hard ref the connection
1424         (connection_forget_shared_unlocked): Remove the hard ref from the 
1425         connection
1426         (_dbus_connection_close_internal_and_unlock):  New internal function
1427         which takes a locked connection and unlocks it after closing it
1428         (_dbus_connection_close_internal): New internal function which acts
1429         like the origonal dbus_connection_close method by grabbing a connection
1430         lock and calling _dbus_connection_close_internal_and_unlock
1431         (dbus_connection_close): Public close method, warns when the app
1432         trys to close a shared connection
1433
1434 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1435
1436         * bus/driver.c:
1437         (bus_driver_generate_introspect_string): New method for populating
1438         a DBusString with the introspect data
1439         (bus_driver_handle_introspect): Move introspect generation code to 
1440         bus_driver_generate_introspect_string
1441
1442         * bus/main.c:
1443         (introspect): New function which prints out the intropect data and
1444         exits
1445         (main): Add a --introspect switch
1446
1447 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * doc/TODO: Removed dtd publishing item.  
1450         It seems the dtd has already been added at
1451         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1452
1453 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1454
1455         * doc/TODO, various source files: Audited todo's and FIXME's and
1456         prepended the ones we should be looking at with 1.0.  Those
1457         prepended with 1.0? need clerification or might not be needed
1458         for 1.0
1459
1460 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1461
1462         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1463         NULL in the public API (Patch from Kimmo Hämäläinen 
1464         <kimmo dot hamalainen at nokia dot com>)
1465
1466 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1467
1468         * configure.in: Fix for OS-X compile time endian issues (patch from
1469         Benjamin Reed <ranger at befunk dot com>)
1470
1471 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1472
1473         * configure.in: Check for no-common compiler flag (OS-X fix from
1474         Benjamin Reed <ranger at befunk dot com>)
1475
1476 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1477
1478         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1479         <fcrozat at mandriva dot com>)
1480
1481 2006-08-29  Havoc Pennington  <hp@redhat.com>
1482
1483         * test/test-service.c (path_message_func): fix lack of return value
1484
1485         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1486         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1487         any more sense than on anything else in this file.
1488         (_dbus_get_tmpdir): add const to return value, and keep the
1489         results of the various getenv around in a static variable.
1490
1491 2006-08-29  Havoc Pennington  <hp@redhat.com>
1492
1493         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1494         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1495
1496 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1497
1498         * test/Makefile.am: change find to use syntax that works with non
1499         gnu versions of find
1500
1501 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1502
1503         * dbus/dbus-transport.c: fix invalid deref when checking if
1504         a vtable method exists (Patch from Christian Ehrlicher 
1505         <ch dot ehrlicher at gmx dot de>)
1506
1507 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1508
1509         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1510         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1511         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1512         <bernard at brenda-arkle dot demon dot co dot uk>)
1513
1514 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1517         default case
1518
1519 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1520
1521         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1522         it works on any system providing this interface, not only FreeBSD.
1523         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1524
1525 2006-08-20  Havoc Pennington  <hp@redhat.com>
1526
1527         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1528         the docs
1529
1530 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1531
1532         * Released 0.92 
1533
1534 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1535
1536         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1537         to reflect the init late change
1538
1539         * bus/bus.c (bus_context_new): Check user before we fork so we can
1540         print out an error message a user will be able to see
1541
1542 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1543
1544         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1545
1546         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1547         Add two more global locks for use on windows platforms.  These are
1548         unused on non-windows platforms but are not ifdefed out to avoid
1549         potential bugs (i.e. the few bytes lost does not warrent the extra
1550         maintanence and complexity that having seperate sets of locks would
1551         cause)
1552
1553 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1554
1555         * bus/services.c (bus_registry_acquire_service): Return an error
1556         when an application tries to register the org.freedesktop.DBus Bus Name
1557
1558         * bus/services.c (bus_registry_release_service): Return an error
1559         when an application tries to release the org.freedesktop.DBus Bus Name
1560
1561 2006-08-17  Alp Toker  <alp@atoker.com>
1562
1563         * doc/dbus-specification.xml: Fix some minor typos.
1564
1565 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1566
1567         * configure.in: use $with_init_scripts instead of $operating_system
1568         to determine where to store the pid since the init scripts manipulate 
1569         the pid file (patch from Marcelo Ricardo Leitner 
1570         <marcelo dot leitner at terra dot com dot br>.  
1571
1572 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1573
1574         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1575         static DBusList *uninitialized_condvar_list to support new late 
1576         initialization threading model.  In this model threads can be initialized
1577         even after the D-Bus API has been used but still needs to be initialized 
1578         before the second thread has been started.  Mutexes and condvar addresses
1579         are stored in the two static lists and are replaced with actuall locks
1580         when threads are initalized.
1581         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1582         the location into the static list
1583         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1584         from the static list and freeing the mutex
1585         (_dbus_condvar_new_at_location): New method for creating a conditional 
1586         variable and placing the location into the static list
1587         (_dbus_condvar_free_at_location): New method for removing a conditional
1588         variable location from the static list and freeing the conditional variable 
1589         (init_uninitialized_locks): Atomic method which goes through the static 
1590         lists of mutex and condvar location and updates them with actuall locks
1591         (init_global_locks): changed to init_locks
1592         
1593         * dbus/dbus-connection.c:
1594         (_dbus_connection_test_get_locks): New method for tests to check connections
1595         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1596         condvar API
1597         (dbus_connection_allocate_data_slot): Pass in the global lock address
1598         to _dbus_data_slot_allocator_alloc
1599
1600         * dbus/dbus-dataslot.c:
1601         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1602         instead of the mutex itself
1603
1604         * dbus/dbus-message.c:
1605         (dbus_message_allocate_data_slot): Pass in the global lock address
1606         to _dbus_data_slot_allocator_alloc
1607
1608         * dbus/dbus-pending-call.c:
1609         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1610         to _dbus_data_slot_allocator_alloc
1611
1612         * dbus/dbus-server.c:
1613         (_dbus_server_init_base): Use the new at_location mutex API
1614         (dbus_server_allocate_data_slot): Pass in the global lock address
1615         to _dbus_data_slot_allocator_alloc
1616
1617         * test/name-test/test-threads-init.c: New test case for late thread
1618         initialization
1619
1620 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1621
1622         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1623         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1624         causes compile problems when asserts are turned off
1625         Keeping _dbus_warn for printing out the message so even if
1626         asserts are turned off the user gets the messages that something is 
1627         wrong 
1628
1629 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1632
1633         * bus/services.c (bus_service_list_queued_owners):
1634         Add a pointer cast to fix compiler warning
1635
1636         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1637         return a NULL instead of FALSE since the return type
1638         is not expecting a boolean
1639
1640         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1641         Remove unused variable
1642
1643         * dbus/dbus-marshal-recursive-util.c (node_new):
1644         return a NULL instead of FALSE since the return type
1645         is not expecting a boolean
1646
1647         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1648         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1649         because we are expecting a pointer not a boolean
1650
1651         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1652         add void as the parameter so some compilers
1653         don't complain
1654
1655         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1656           _dbus_transport_new_for_tcp_socket):
1657         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1658         because we are expecting a pointer not a boolean
1659
1660         * test/shell-test.c (test_command_line):
1661         cast the second argument to _dbus_list_append to avoid compiler
1662         warnings
1663
1664         * test/test-names.c (main): remove unused variable
1665
1666         * test/test-service.c (check_hello_from_self_reply):
1667         Initialize echo_message and echo_reply to NULL
1668         
1669         * test/test-shell-service.c (handle_echo):
1670         Remove unused variable and cast the third parameter passed to
1671         dbus_connection_get_object_path_data to avoid compiler warrnings
1672
1673         * test/name-test/test-names.c (clear_message_queue):
1674         Remove unused function
1675
1676         * test/name-test/test-pending-call-dispatch.c:
1677         Fix format string in printf
1678
1679
1680 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1681
1682         * dbus/dbus-bus.c:
1683         * test/name-test/test-names.c:
1684         Remove test method dbus_bus_connection_get_unique_name because 
1685         we already have public method dbus_bus_get_unique_name that 
1686         does the exact same thing
1687
1688 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1689
1690         * dbus/dbus-signature.c:
1691         fix typos in Julio's previous patch which cause make check to fail
1692
1693 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1694
1695         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1696         In any case it was wrong since this is a test checking to see if
1697         address parsing is correct.  There was no need to get the true
1698         tmp directory.  
1699
1700 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1701
1702         * dbus/dbus-macros.h: Revert the addition of stddef.h
1703         as we should not be adding it to library headers 
1704
1705 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1706
1707         * dbus/dbus-signature.c:
1708         Fix the unit tests so that they work if assertions are not enabled.
1709         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1710
1711 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1712
1713         * tools/run-with-tmp-session-bus.sh:
1714         * test/name-test/run-test.sh:
1715         Remove bashisms (patch from Julio M. Merino Vidal
1716         <jmmv at NetBSD dot org>)
1717
1718 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         * configure.in: add a version (>= 2.6.0) check for libxml2
1721
1722 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * configure.in: make sure the compiler supports -Wfloat-equal
1725         
1726         * bus/dir-watch-dnotify.c: move functional code after 
1727         variable declerations (C99 fix)  (patches from Jens Granseuer
1728         <jensgr at gmx dot net>
1729
1730 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1731
1732         * dbus/dbus-macros.h:
1733         add #include <stddef.h> so that Sun compilers don't complain about
1734         the defining NULL
1735
1736 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1737
1738         * dbus/dbus-sysdeps.c:
1739         * dbus/dbus-address.c:
1740         * bus/activation.c:
1741         * test/shell-test.c:
1742         don't hardcode tmp directory (patch from Dave Meikle 
1743         <dmk at davemeikle dot co dot uk>)
1744
1745 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1746
1747         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1748         Change an assert to a detailed warning and abort.  
1749         When allocator->lock != mutex it indicates that the user has failed
1750         to initalize threads before using the D-Bus library.  This warning
1751         helps the user identify the issue and fix their app.
1752
1753 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1754
1755         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1756         with cleanups of bugs found from Coverity reports:
1757
1758         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1759         close the file on error to avoid a leak
1760
1761         * bus/expirelist.c (bus_expire_list_test):
1762         Check for NULL on dbus_new0
1763
1764         * bus/activation.c (update_directory):
1765         remove dead code
1766
1767         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1768         Fix some leaks
1769
1770         * bus/bus.c (process_config_every_time):
1771         Fixed a leak
1772
1773         * bus/desktop-file.c (parse_key_value):
1774         Fixed leak
1775
1776         * bus/selinux.c (bus_selinux_id_table_insert):
1777         Fixed leak
1778
1779 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1780
1781         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1782         remove dead code
1783
1784 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1787         #!/bin/bash
1788
1789 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * Doxyfile.in: fix the INPUT line so we can generate docs 
1792         when sourcedir != builddir (patch from Cygwin Ports maintainer
1793         <yselkowitz at users dot sourceforge dot net>
1794
1795 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1796
1797         * dbus/dbus-sysdeps.h:
1798         * dbus/dbus-sysdeps.c: 
1799         * dbus/dbus-string.c: 
1800         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1801         GLib's function which does the same thing
1802
1803         * configure.in:
1804         * bus/Makefile.am:
1805         * bus/dir-watch-default.c:
1806         * bus/dir-watch-dnotify.c:
1807         * bus/dir-watch-kqueue.c:
1808         Add kqueue directory watching for freebsd and split the directory
1809         watching code into seperate files per method/arch
1810         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1811
1812 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1813
1814         * configure.in:
1815         * tools/Makefile.am:
1816         * tools/dbus-launch.c:
1817         * bus/Makefile.am:
1818         allow --with-dbus-daemondir switch to be used to make the
1819         daemon install to a seperate bindir like /usr/libexec
1820         (patch from Brian Cameron <brian dot cameron at sun dot com)
1821
1822 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1823
1824         * bus/Makefile.am (install-data-hook): removed the slash after 
1825         $(DESTDIR) so we don't get the double slash which does not work
1826         in windows (patch from Andras Porjesz 
1827         <andras dot porjesz at siemens dot com>)
1828
1829 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1830
1831         * dbus/dbus-sysdeps.h:
1832         * dbus/dbus-sysdeps.c: 
1833           add _dbus_printf_length (patch from Peter Kümmel 
1834           <syntheticpp at gmx dot net>)
1835
1836 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1837
1838         * dbus/dbus-internals.c: unistd.h is not used 
1839         (_dbus_verbose_real): only enable verbose printing 
1840         if DBUS_VERBOSE environment var is set to '1'
1841         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1842
1843 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1844
1845         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1846         so we still compile on older gcc (patch from Frederic Peters 
1847         <fpeters at 0d dot be>
1848
1849 2006-08-04  Havoc Pennington  <hp@redhat.com>
1850
1851         * configure.in: add -Wdeclaration-after-statement
1852
1853         * dbus/dbus-connection.c: change all the pending call stuff to
1854         reflect the fact that pending call operations use the connection
1855         lock
1856
1857         * dbus/dbus-pending-call.c: add locking here
1858
1859         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1860         field const consistent with how message field is done
1861
1862 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * s/D-BUS/D-Bus/g
1865
1866 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1867
1868         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1869         <in7y118 at public.uni-hamburg dot de> - fix invalid
1870         read/write reported by valgrind
1871
1872 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1873
1874         * Released 0.91
1875
1876 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1877
1878         * dbus/dbus-connection.c:
1879         (_dbus_connection_attach_pending_call_unlocked):
1880         (connection_timeout_and_complete_all_pending_calls_unlocked):
1881         Make sure we set timeout_added on pending calls to FALSE when
1882         we remove the timeout from the connection
1883
1884 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1885
1886         * Removed some extra bindings stuff lingering around (thanks timo)
1887         * dbus-pendingcall.c (_dbus_pending_call_new): 
1888         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1889         when we tried to take a lock on an already locked connection
1890
1891 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1892
1893         * Released 0.90
1894
1895 2006-07-17  Havoc Pennington  <hp@redhat.com>
1896
1897         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1898         ints, reported by Owen Taylor
1899
1900 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1901
1902         * doc/TODO:
1903         * dbus/dbus-bus.c:
1904         * dbus-errors.c:
1905         * dbus/dbus-marshal-validate.c:
1906           Removed TODO items which were fixed or are no longer relevent
1907
1908 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1909
1910         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1911         Remove stray files from the stripped bindings
1912
1913 2006-07-16  Havoc Pennington  <hp@redhat.com>
1914
1915         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1916         Improve the error message on reply timeout
1917
1918 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1919
1920         * Remove all bindings
1921
1922 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1923
1924         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1925         and set pending_reply out arg to NULL is connection is disconnected
1926         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1927         static method for cleaning up pending calls on disconnect
1928         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1929         calls queued timeouts on disconnect 
1930
1931          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1932         Remove 
1933
1934 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1935
1936         * bus/activation.[ch] (bus_activation_list_services): new function to 
1937         get the list of services that can be activated
1938
1939         * bus/dispatch.c: test coverage for the new bus method
1940         ListActivatableNames
1941
1942         * bus/driver.c: new bus method ListActivatableNames to get the list of
1943         services that can be activated
1944
1945         * doc/dbus-specification.xml: ListActivatableNames method documentation
1946
1947 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1948         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1949         source files
1950
1951 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1952         * dbus/dbus-message-factory.c:
1953         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1954
1955 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1956         * dbus/dbus-connection-internal.h:
1957         * dbus/dbus-connection.c:
1958         * file dbus/dbus-pending-call.c:
1959         * dbus/dbus-pending-call.h:
1960         Make DBusPendingCall an opaque type even to D-Bus internals
1961
1962 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1963
1964         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1965         connection_close
1966
1967         * dbus/dbus-connection.c: include dbus-bus.h
1968         (_dbus_connection_read_write_dispatch): make static
1969
1970 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1971
1972         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1973         function
1974         (dbus_connection_dispatch): On disconnect unref any shared connections
1975
1976         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1977         for cleaning up shared connections on disconnect
1978         (internal_bus_get): get a hard refrence to shared connections when
1979         they are created
1980         
1981         * doc/TODO: Remove items which are no longer relevent or have been fixed
1982         Split 1.0 todo items with a 0.90 freeze todo list
1983  
1984 2006-06-14  Ross Burton  <ross@openedhand.com>
1985
1986         * glib/dbus-gobject.c:
1987         Free a leaking GArray (surely not!) in dbus_g_method_return.
1988
1989 2006-06-14  Ross Burton  <ross@openedhand.com>
1990
1991         * tools/Makefile.am:
1992         * tools/dbus-monitor.c:
1993         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1994         Habacker).
1995         
1996 2006-06-14  Ross Burton  <ross@openedhand.com>
1997
1998         * tools/dbus-print-message.c:
1999         Also print the object path when outputting signals or method calls.
2000
2001 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
2002
2003         * qt/src/Makefile.am: install the qdbus.h header.
2004         This allows people to actually use the installed code.
2005
2006 2006-06-12  Ross Burton  <ross@openedhand.com>
2007
2008         * glib/dbus-gproxy.c:
2009         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2010
2011 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2012
2013         * Released 0.62
2014
2015 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2016
2017         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2018         break pedantic builds. Closes bug 6043 (patch approved by
2019         Havoc back in February).
2020
2021 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2022
2023         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2024         that took a QDBusMessage parameter.
2025         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2026         * qt/tools/dbus.cpp: Don't use automatic call because we might
2027         be calling an async method: request a reply.
2028
2029 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2030
2031         * test/qt/*: Update the testcases, including testing the new
2032         functionality of sending null QByteArray and QString over the
2033         bus. Add new headertest test and restore the old
2034         qdbusxmlparser test.
2035
2036 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2037
2038         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2039         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2040
2041         * qt/examples/Makefile.am:
2042         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2043         form.
2044
2045         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2046         QByteArray() (nulls) over the bus.
2047         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2048         the one that has the signature suffix stripped.
2049         * qt/src/qdbusreply.h: Make some methods const.
2050
2051 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2052
2053         Patch from Timo Hoenig <thoenig@suse.de>.
2054
2055         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2056         required during build to EXTRA_DIST.
2057         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2058         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2059         * configure.in: Fix "make dist", take care that the Makefile for
2060         qt/dbus is being generated.
2061
2062 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2063
2064         * bus/bus.c: Fix eavesdropping on method calls
2065
2066 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2067
2068         * configure.in:
2069         * dbus/dbus-userdb-util.c:
2070         Add Solaris console owner patch from Artem Kachitchkine
2071
2072 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2073
2074         * qt/Makfile.am:
2075         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2076         reorganisation. Thanks to Timo Hoenig for pointing this out.
2077
2078 2006-06-06  Robert McQueen  <robot101@debian.org>
2079
2080         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2081           call to dbus_g_type_get_struct.
2082
2083 2006-06-06  Robert McQueen  <robot101@debian.org>
2084
2085         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2086           pointers were put into a GPtrArray-based specialised collection, and
2087           then freed along with the array. GValues which you add into
2088           collections or maps which have the NOCOPY flag set are assumed to not
2089           belong to the caller, so rather than the existing pointer-stealing
2090           semantics, they are copied instead. Given that the main consumers of
2091           this abstraction are the bindings themselves, I don't think this is
2092           too bad, but others should watch their choice of take vs set_static.
2093
2094 2006-06-06  Robert McQueen  <robot101@debian.org>
2095
2096         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2097           of g_slist_prepend not being used. Fixed copying of slist-based
2098           specialised collections, then wrote a test case and found that it was
2099           all broken. Went on to fix iterating and appending too. Good thing
2100           nobody uses this code yet.
2101
2102 2006-06-06  Robert McQueen  <robot101@debian.org>
2103
2104         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2105           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2106           are discarded without unsetting, so it makes no difference whether
2107           we take or set_static). Remove cases for G_TYPE_POINTER because
2108           there really is nothing useful we can do with them in our
2109           specialised types - we *need* boxed copy/free functions at the very
2110           least.
2111
2112 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2113
2114         * qt/dbus: Add directory. I had forgotten to add this
2115         yesterday after the move...
2116
2117         * qt/examples/Makefile.am:
2118         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2119
2120         * qt/tools/Makefile.am:
2121         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2122         Added feature to get and set properties.
2123         Added validation of service, object path and interface names.
2124
2125         * qt/tools/dbusidl2cpp.cpp: Two new features:
2126         1) Allow specifying both the header and the source file names,
2127         by separating them with a colon.
2128         2) Don't write an interface output if the -p switch wasn't
2129         given, but the -a was.
2130
2131         * qt/src/*: Fix usage of Iterators and ConstIterators.
2132         Fix shadowing of variables by other variables (-Wshadow).
2133         Fix keyword-cleanliness in headers.
2134         Fix ASCII-cast (QLatin1String, QLatin1Char).
2135         Fix validation of member names.
2136         Add extra checking of introspection data during XML parsing.
2137         Various bug fixes.
2138
2139 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2140
2141         * dbus/Makefile.am:
2142         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2143         qt/dbus/qdbus.h now.
2144
2145 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2146
2147         * configure.in: Make --disable-qt actually do
2148           something. Patch inspired by Zack Rusin.
2149
2150 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2151
2152         * qt/: Update to Subversion r548032.
2153         This includes a big reorganisation of the files inside the
2154         subdir.
2155
2156 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2157
2158         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2159         clear:  
2160         "Failed to connect to socket <host>:<port> <error>" instead of
2161         "Failed to connect to socket <host>: <error>:<port>"
2162
2163         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2164         for a tcp transport. 
2165
2166 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2167
2168         * qt/*: Update the QtDBus bindings up to revision 546310 in
2169         Subversion.
2170         This adds the dbuscpp2xml tool, that parses a C++ header and
2171         outputs a D-BUS Introspection XML.
2172
2173 2006-05-21  Havoc Pennington  <hp@redhat.com>
2174
2175         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2176         is not NULL when it shouldn't be. Also a couple of possible fixes
2177         for #4637 though I don't understand why the bug happens, to be
2178         honest... also the object constructor has an assert name != NULL
2179         and the name is only currently NULL for peer-to-peer proxies that 
2180         I don't think anyone uses? So it should be asserting.
2181         Anyway, for now at least see if we get an earlier assertion failure.
2182
2183         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2184         apparently broken code to be sure the tests fail and someone 
2185         will fix them...
2186
2187 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2188
2189         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2190         and arrays when they had a single element: has_next returns
2191         false, even before you read the element. So, instead, check
2192         the array length.
2193
2194 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2195
2196         * qt/qdbusmessage.cpp:
2197         * qt/qdbustypehelper_p.h:
2198         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2199         the list is a const-reference
2200
2201 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2202
2203         * Adding old doc patch that never got applied
2204         
2205         * dbus/bus.c (dbus_bus_add_match): Add documentation
2206
2207         * doc/dbus-specification.xml: Add documentation for the match rules
2208           and the AddMatch and RemoveMatch methods
2209
2210 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2211
2212         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2213         call (r535506)
2214
2215         * qt/dbusidl2cpp.cpp:
2216         * qt/qdbusabstractadaptor.cpp:
2217         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2218         sibling of the QDBusAbstractAdaptor objects instead of the
2219         parent. (r535848)
2220
2221         * qt/dbusidl2cpp.cpp:
2222         * qt/qdbusabstractinterface.cpp:
2223         * qt/qdbusabstractinterface.h:
2224         * qt/qdbusabstractinterface_p.h:
2225         * qt/qdbusinterface.cpp: Make properties in interfaces
2226         actually work. The code that was generated would not compile,
2227         due to moc calls to functions that did not exist. They now
2228         shall. (r536571)
2229
2230 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2231
2232         * Makefile.am:
2233         * configure.in:
2234         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2235         Thanks to Brad Hards for providing the patch
2236
2237 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2238
2239         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2240         call. (r535506)
2241
2242 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2243
2244         * qt/examples/dbus.cpp: Enhance error messages and use
2245         QDBusInterfacePtr.
2246
2247 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2248
2249         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2250         and disable the copy operators. (r533772, r534746)
2251
2252         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2253
2254         * qt/qdbusabstractinterface.cpp:
2255         * qt/qdbusabstractinterface.h: Change the default call mode to
2256         not use the event loop. Add convenience call() methods that
2257         take a CallMode parameter. (r534042)
2258
2259         * qt/qdbusconnection.h: Change the default call mode to not
2260         use the event loop. (r534042)
2261
2262         * qt/qdbusinterface.cpp:
2263         * qt/qdbusinterface.h: Add a method to tell us if the
2264         interface is valid (since we don't return a null pointer
2265         anymore) (r534099)
2266
2267         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2268         (r534101)
2269
2270         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2271         function in two so taht we get the chance to introspect
2272         without having a QDBusMessage (r534102)
2273
2274         * qt/qdbusbus.h:
2275         * qt/qdbusconnection.cpp:
2276         * qt/qdbusconnection_p.h:
2277         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2278         avoid a round-trip to the server when attempting to introspect
2279         one of our own objects. Also make sure the filter functions
2280         match the empty interface as well. (r534108)
2281         Don't keep the connection names. Instead, trust the unique
2282         connection name (r534111)
2283         Remove event loop usage (r534112)
2284
2285 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2286
2287         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2288         Brad Hards.
2289
2290 2006-04-28  Robert McQueen  <robot101@debian.org>
2291
2292         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2293         any order, making it easier for people who inherit from this
2294         object.
2295
2296 2006-04-28  Robert McQueen  <robot101@debian.org>
2297
2298         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2299         of memory from within pointer arrays and lists. Fixes bug #6300.
2300
2301 2006-04-28  Robert McQueen  <robot101@debian.org>
2302
2303         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2304         generating struct signatures. Fixes bug #6083.
2305
2306 2006-04-28  Robert McQueen  <robot101@debian.org>
2307
2308         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2309         to qdbusconnection_p.moc.
2310
2311 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2312
2313         * README, INSTALL: Doc fixes
2314         Patch from Brad Hards <bradh at frogmouth.net>
2315
2316 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2317
2318         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2319         the dynamic meta object. No need to guess which interface to
2320         call.
2321
2322 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2323
2324         * qt/qdbusconnection_p.h:
2325         * qt/qdbusmetaobject.cpp:
2326         * qt/qdbusmetaobject_p.h:
2327         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2328         for the dynamic meta object. No need to guess which
2329         interface to call.
2330         * qt/qdbusabstractinterface_p.h:
2331         * qt/qdbusconnection.cpp:
2332         * qt/qdbusintegrator.cpp:
2333         * qt/qdbusinterface.cpp:
2334         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2335         Add a QDBusRef that looks and behaves like DCOPRef.
2336
2337 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2338
2339         * dbus/dbus-connection.c: Interfaces are optional in method
2340         calls, so don't give up if the interface parameter is NULL.
2341         Patch reviewed by Havoc Pennington.
2342
2343 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2344
2345         * qt/qdbusreply.h: Add default constructor and operator=
2346           (r532625)
2347         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2348           in public headers (r532952)
2349         * qt/qdbusabstractinterface.cpp:
2350         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2351           make it the default (r532951)
2352
2353 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2354
2355         * dbus/dbus-connection.c: Fix asserts
2356         Patch from Tim Moloney <t.moloney at verizon.net>
2357
2358 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2359
2360         * mono/Connection.cs, mono/Message.cs: Check Target type
2361         Patch from Aaron Bockover (abockover at novell.com)
2362
2363 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2364
2365         * INSTALL: fine-tune the requirements for the Qt4 binding.
2366
2367 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2368
2369         * tools/dbus-print-message.c: Added support for printing of all 
2370           remaining data types. Fixed logic for indentation of compound
2371           data types.
2372         
2373 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2374
2375         * INSTALL: fill out content of file providing DBus specific
2376           build installations, followed by generic Auto* INSTALL file
2377           content
2378         
2379 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2380
2381         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2382           Patch by Stefan Eilers. (r529537)
2383
2384 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2385
2386         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2387           contents (r528208)
2388
2389 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2390
2391         * qt/Makefile.am: fix the dependency for
2392           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2393           not in qdbusconnection.cpp.
2394           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2395           spotting this.
2396
2397 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2398
2399         * qt/examples/listnames.cpp:
2400         * qt/examples/Makefile.am: Three ways to list the names on the
2401           bus.
2402
2403 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2404
2405         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2406           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2407
2408 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2409
2410         Merge from Subversion:
2411         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2412           something that exists (r526315)
2413         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2414           slots/signals (r526316)
2415         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2416           also return an unknown-method error if the parameters don't
2417           match for org.freedesktop.DBus.Properties. (r526842)
2418         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2419         * qt/qdbusintegrator.cpp: Restore the proper order of
2420           delivery: don't make method returns be delivered on priority
2421           (r528150)
2422
2423 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2424
2425         * configure.in qt/Makefile.am: add qt/examples
2426         * qt/examples: Add QtDBus example programs:
2427           - hello: Hello, World
2428           - ping: Simple method-calling program
2429           - pong: Simple object-exporting program (not using adaptors)
2430           - complexping: Interactive method-calling program 
2431                 (also gets and sets properties).
2432           - complexpong: Sample program exporting methods, signals and
2433                 properties, using adaptors.
2434           - dbus: Simple implementation of a generic method-calling
2435                 program, similar to 'dbus-send', but with semantics
2436                 similar to 'dcop'.
2437           - chat: Simplistic chat program, implemented using signals
2438                 and the system bus. Looks like IRC.
2439
2440 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2441
2442         * configure.in: Detect QtGui (necessary for one of the
2443           example programs). Note: this increases the minimum required
2444           version of Qt to 4.1.3.
2445
2446 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2447
2448         * test/qt/*: Sync with KDE Subversion revision 523647.
2449         Update the testcases to the new API. Remove testcases for
2450         classes that are no longer public or have been removed.
2451
2452 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2453
2454         * qt/*: 
2455         * dbus/qdbus.h: Sync with KDE Subversion revision
2456         523647. Hopefully, this will be the last of the
2457         source-incompatible changes. Documentation has been improved;
2458         support for QList<basic-types> has been added; QDBusObject is
2459         gone; QDBus(Abstract)Interface is now a QObject with
2460         auto-generated meta-object; QDBusIntrospection is marked
2461         private, since QMetaObject can be used now; lots of bugfixes.
2462
2463 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2464
2465         Patch from Milosz Derezynski <internalerror at gmail.com>
2466         
2467         * configure.in:
2468         Output the service directory in the configure summary
2469
2470         * dbus-1.pc.in:
2471         Add session_bus_services_dir
2472
2473 2006-03-10  Ross Burton  <ross@openedhand.com>
2474
2475         * tools/dbus-print-message.c:
2476         Add support for object paths and signatures.
2477
2478 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2479
2480         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2481         config reload.
2482         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2483         information caches
2484         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2485         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2486         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2487         * dbus/dbus-userdb.h: Add function to flush all user/group information
2488         caches.
2489
2490 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2491
2492         * qt/dbusidl2cpp.cpp:
2493         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2494         for dcopidl2cpp, found in the KDE installations (or the more
2495         modern kalyptus): generate Qt4 C++ code for the input XML
2496         introspection. Currently no IDL parsing.
2497
2498 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2499
2500         * test/qt/*: Update the self-tests.
2501
2502 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2503
2504         * qt/*: 
2505         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2506         represents the first feature-complete version of the Qt4
2507         bindings since I took ove maintainership.
2508
2509 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2510
2511         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2512         dir. This is C++, so we can't use the DBus ones.
2513
2514 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2515
2516         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2517         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2518
2519 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * dbus/dbus-connection.c: 
2522         (_dbus_connection_block_pending_call):
2523         Check to see if our data has already been read off the connection
2524         by another blocking pending call before we block in poll.
2525         (check_for_reply_and_update_dispatch_unlocked):
2526         Code taken from _dbus_connection_block_pending_call - checks for
2527         an already read reply and updates the dispatch if there is one.
2528
2529         * test/name-test/test-pending-call-dispatch.c:
2530         New test for making sure we don't get stuck polling a 
2531         dbus connection which has no data on the socket when
2532         blocking out of order on two or more pending calls.
2533
2534 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2535
2536         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2537         make/automake don't detect that we're talking about the same
2538         .lo file if I specify the full path to the source files.
2539
2540 2006-02-26  Havoc Pennington  <hp@redhat.com>
2541
2542         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2543
2544         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2545         session bus variable is unset, suggest "man dbus-launch" and "man
2546         dbus-daemon" to figure out how to fix the problem
2547
2548 2006-02-25  Havoc Pennington  <hp@redhat.com>
2549
2550         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2551         should make this thing use the new glib options parser
2552
2553 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2554
2555         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2556         .lo files taking moc sources.
2557
2558 2006-02-25  Havoc Pennington  <hp@redhat.com>
2559
2560         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2561         and install it as a public header
2562
2563 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2564
2565         * Released 0.61
2566
2567 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2568         
2569         * proxies.py: Fix the callchain
2570
2571 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2572         
2573         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2574
2575         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2576         dbus/dbus-sysdeps.c
2577
2578         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2579         call _dbus_group_info_free_allocated which causes infinite loop,
2580         correctly call _dbus_group_info_free
2581
2582 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2583
2584         * qt/qdbusinterface_p.h:
2585         * qt/qdbusinterface.cpp: Use the standard
2586         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2587         calls instead of creating one for us.
2588
2589         * qt/qdbusconnection_p.h:
2590         * qt/qdbusintegrator.cpp: Remove debugging code.
2591
2592         * qt/qdbusintegrator.cpp:
2593         * qt/qdbusmessage.cpp:
2594         * qt/qdbusmessage_p.h:
2595         * qt/qdbusmessage.h: Change the behaviour of automatic
2596         reply-sending: now a reply is always sent, unless the caller
2597         didn't request one or if the user slot has already sent one.
2598
2599 2006-02-16  Robert McQueen  <robot101@debian.org>
2600
2601         * configure.in: Patch from Debian packages by Sjoerd Simons
2602         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2603         arguments so it's possible to build both bindings in the
2604         same tree.
2605
2606         * qt/Makefile.am: Fix truncated value so that make dist works.
2607
2608 2006-02-16  Robert McQueen  <robot101@debian.org>
2609
2610         * acinclude.m4, configure.in: Patch from Brad Hards
2611         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2612         improving quoting, re-ordering a few checks, and a few other
2613         aesthetic tidy-ups.
2614
2615 2006-02-16  Robert McQueen  <robot101@debian.org>
2616
2617         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2618         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2619         assertion that the next element to read from the iter is fixed in
2620         size. This is not the case when you are at the end of the iter,
2621         because the next element type is INVALID.
2622
2623         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2624         a bogus assert which means that you may not initialise a 0-length
2625         string unless you provide a non-NULL pointer. This prevented
2626         you from marshalling messages containing zero-length arrays in
2627         some cases.
2628
2629         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2630         from Rob to correct bogus asserts when trying to demarshal an
2631         array and get_fixed_array got you 0 elements. Append nothing to
2632         the GArray in this case.
2633
2634         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2635         an empty array via the glib bindings. Without all of the above
2636         patches, this new test fails.
2637
2638 2006-02-16  Robert McQueen  <robot101@debian.org>
2639
2640         * glib/dbus-gmain.c: Make the previous commit compile.
2641
2642         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2643         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2644         specify sender_keyword="foo", path_keyword="bar" when adding
2645         a signal listener, so that you can bind to signals generically
2646         but still do something useful in your callback.
2647
2648         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2649         chars so that they're not cast to chars and made negative. Thanks
2650         to Jakub Stachowski for reporting this and testing the fix.
2651
2652 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2653
2654         * dbus/dbus-glib.h:
2655         * glib/dbus-gmain.h:
2656         (dbus_g_connection_open): new method for openning
2657         a connection to an arbitrary address in the glib bindings
2658
2659         * ChangeLog: checkin last entry which doesn't seem to be commited
2660
2661 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2662
2663         * tools/dbus-launch.c: Fixed sh syntax output
2664
2665 2006-02-13  Robert McQueen  <robot101@debian.org>
2666
2667         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2668         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2669         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2670         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2671         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2672         missing piece of the glib bindings jigsaw puzzle. This modifies
2673         the existing specialised types to have N type parameters (rather
2674         than the current 1 or 2 for arrays and dictionaries respectively).
2675         You can then use this to get a glib type to represent any arbitrary
2676         D-Bus struct type using dbus_g_type_get_struct. The only
2677         implementation of these types is with GValueArrays as before,
2678         but it's now possible to store these in arrays, emit them in
2679         signals, etc.
2680
2681 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2682
2683         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2684         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2685         <thiago.macieira at trolltech.com>
2686
2687 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2688
2689         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2690         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2691
2692 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2693
2694         * bus/connection.c (bus_connections_expect_reply): Make
2695         pending reply limit not common to all connections (Bug #5416)
2696         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2697
2698 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2699
2700         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2701
2702 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2703
2704         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2705         patch from Doug Goldstein <cardoe at gentoo.org>
2706
2707 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2708
2709         * mono/Arguments.cs: Fix a magic number in the mono bindings
2710         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2711
2712 2006-01-27  Robert McQueen  <robot101@debian.org>
2713
2714         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2715         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2716         when generating the client-side methods, instead of overloading
2717         CSymbol which broke everything horribly. My apologies.
2718
2719 2006-01-27  Robert McQueen  <robot101@debian.org>
2720
2721         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2722         by me and Rob Taylor to add a simple_free function to D-Bus map
2723         and collection types, which allows those types which can be freed
2724         with a GDestroyNotify (such as GHashTables and GArrays, but not
2725         GPtrArrays) to be stored as the values in hashtables.
2726
2727         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2728         Patch by Rob Taylor to add nested dicts to the glib tests to check
2729         the above code works, and appears not to leak when called repeatedly.
2730
2731 2006-01-27  Robert McQueen  <robot101@debian.org>
2732
2733         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2734         to free a D-Bus allocated string with dbus_free () instead of
2735         g_free ().
2736
2737 2006-01-27  Iain Holmes  <iain@openedhand.com>
2738
2739         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2740         method from being called multiple times.
2741
2742 2006-01-19  Robert McQueen  <robot101@debian.org>
2743
2744         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2745         <rob.taylor@collabora.co.uk> to add support for generating bindings
2746         to arrays that are represented as GPtrArrays rather than GArrays (ie
2747         size-variable things, such as strings, objects, structs, etc).
2748
2749 2006-01-05  Robert McQueen  <robot101@debian.org>
2750
2751         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2752         <ricardo.kekki@movial.fi> to make it possible to inherit from
2753         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2754         a private part, and moving the setting of the DBusGProxyManager into a
2755         connection property, allowing proper GObject construction.
2756
2757 2006-01-05  Robert McQueen  <robot101@debian.org>
2758
2759         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2760         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2761         annotations when generating glib client bindings.
2762
2763 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2764
2765         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2766
2767         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2768
2769 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2770
2771         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2772
2773 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2774
2775         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2776
2777 2005-12-19  Ross Burton  <ross@openedhand.com>
2778
2779         * doc/dbus-tutorial.xml:
2780         Document the Glib client-side bindings, and list all possible annotations.
2781
2782 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2783
2784         * dbus/bus.c (dbus_bus_release_name): Add documentation
2785
2786 2005-12-06  Robert McQueen  <robot101@debian.org>
2787
2788         * python/service.py: s/sucessful/successful/ so we're allocating to
2789         and reading from the same variable. Oops.
2790
2791 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2792
2793         * Released 0.60
2794
2795 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2796
2797         * test/qt/Makefile.am: build from srcdir
2798
2799         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2800         Note - this code is wrong and needs to be fixed by the Qt binding
2801         developers.  The flags should be treated as bitfields and not enums.
2802
2803         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2804
2805 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2806
2807         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2808           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2809           in production code
2810
2811 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2812
2813         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2814         method for getting messages off the bus in the absence of a
2815         mainloop.  This method is much like 
2816         dbus_connection_read_write_dispatch except it does not dispatch
2817         the messages to a registered filter function.  Instead it
2818         allows a developer to process messages by directly popping
2819         them off the bus.
2820
2821 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2822
2823         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2824         the parser to continue instead of returning error
2825         (bus_desktop_file_load): Do not free parser data when
2826         parse_section_start or parse_key_value fails because it was 
2827         already freed by parser_free (patch from Carlos Garcia Campos  
2828         <carlosgc at gnome.org>)
2829
2830 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2831
2832         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2833         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2834         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2835         test/test-segfault.c, test/test-utils.c,
2836         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2837         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2838         Various cleanup of dead code and compiler warnings (patch from
2839         Kjartan Maraas <kmaraas at gnome.org>) 
2840
2841 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2842
2843         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2844         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2845
2846 2005-11-27  Robert McQueen  <robot101@debian.org>
2847
2848         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2849         part of the preceding one. Oops. Merge patch by Johan Hedberg
2850         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2851         on big-endian platforms.
2852
2853         * test/python/test-client.py: Add some 16-bit integers to the test
2854         values.
2855
2856 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2857
2858         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2859         method return message for property getters
2860
2861 2005-11-27  Robert McQueen  <robot101@debian.org>
2862
2863         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2864         with type v of an instance of dbus.Variant(foo, type='x') caused
2865         it to be boxed twice before sending over the bus.
2866
2867         * python/dbus_bindings.pyx, python/service.py,
2868         test/python/test-client.py: Update the constants for the new
2869         request_name flags, and update comments/test cases now that queueing
2870         is the default action.
2871
2872 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2873
2874         * configure.in:
2875         - Change version to 0.60 for impending release
2876         - upped the sonames because of ABI and API breakage
2877
2878 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2879
2880         * configure.in: Add test/name-test/Makefile to the generated
2881         Makefile list
2882
2883         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2884         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2885         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2886         not to queue an ower if it can't be the primary owner
2887
2888         * bus/bus.h: Add new internal BusOwner struct
2889
2890         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2891         to bus_registry_ensure and don't set the prohibit_replacement flag
2892         since they are now set per BusOwner and not per name.
2893         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2894         that returns the list of connections in a name's connection queue
2895         
2896         * bus/services.c (struct BusService): remove prohibit_replacement field
2897         (struct BusOwner): new struct for keeping track of queued connections
2898         and their associated flags for the queue
2899         (struct BusRegistry): add a BusOwner memory pool
2900         (bus_registry_new): initialize the BusOwner memory pool
2901         (bus_registry_unref): free the BusOwner memory pool
2902         (_bus_service_find_owner_link): new internal method for
2903         searching the queue for a specific connection
2904         (bus_owner_set_flags): new method for adding setting the flags on a
2905         bus owner
2906         (bus_owner_new): new method that creates a BusOwner object from the
2907         pool and sets its flags
2908         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2909         (bus_registry_ensure): Add the flags parameter
2910         (bus_registry_acquire_service): Switch from using raw connections to
2911         using the BusOwner struct
2912         Add new state machine for dealing with the new set of flags
2913         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2914         cancel_ownership, free_ownership_cancel_data, 
2915         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2916         restore_ownership, free_ownership_restore_data, 
2917         add_restore_ownership_to_transaction): Switch to using BusOwner 
2918         instead of raw connections
2919         (bus_service_add_owner): Add flags parameter
2920         Switch to using BusOwner instead of raw connections
2921         Add state machine for dealing with the new set of flags
2922         (bus_service_swap_owner): Swaps the first and second owners in the
2923         queue.  Used to make sure proper signals are sent when a service looses 
2924         or gains primary ownership.  We never insert an owner at the top of the
2925         queue.  Instead we insert it in the second position and then swap.
2926         (bus_service_remove_owner): Remove the owner from the queue sending
2927         out the NameLost and NameOwnerChanged signals if the we were the 
2928         primary owner
2929         (bus_service_get_primary_owners_connection): New method that extracts
2930         the connection from the primary owner
2931         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2932         connection
2933         (bus_service_get_allow_replacement): Changed from the old 
2934         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2935         primary owner and returns if it can be replaced or not
2936         (bus_service_set_prohibit_replacement): removed
2937         (bus_service_has_owner): returns TRUE if and owner with
2938         the specified connection exists in the queue
2939         
2940         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2941         method that only compiles if tests are enabled.  Allows us to get the 
2942         unique name of a connection so we can check it against the queue when
2943         doing regression tests
2944
2945         * bus/activation.c (bus_activation_send_pending_auto_activate),
2946         bus/dispatch.c (bus_dispatch),  
2947         bus/driver.c (bus_driver_handle_get_service_owner, 
2948         bus_driver_handle_get_connection_unix_user, 
2949         bus_driver_handle_get_connection_unix_process_id,
2950         bus_driver_handle_get_connection_selinux_security_context),
2951         bus/signals.c (connection_is_primary_owner): 
2952         use bus_service_get_primary_owners_connection instead of
2953         bus_service_get_primary_owner
2954
2955         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2956         _dbus_listen_unix_socket): Calculate the length of the socket
2957         path and use that instead of using a fixed length which was
2958         causing socket names to contain many trailing Nul bytes.
2959
2960         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2961         (dbus_g_method_get_sender): New method for extracting the sender 
2962         from a DBusGMethodInvocation
2963         (dbus_g_method_return_get_reply): changed name to 
2964         dbus_g_method_get_reply
2965         (dbus_g_method_return_send_reply): changed name to
2966         dbus_g_method_send reply
2967
2968         * doc/dbus-specification.xml: New docs that describe how the new
2969         queueing system works and talks about the changes to the how
2970         we specify socket names
2971
2972         * glib/examples/example-service.c, 
2973         glib/examples/example-signal-emitter.c,
2974         glib/examples/statemachine/statemachine-server.c:
2975         Changed the RequestName flags to the new system
2976
2977         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2978         regression test suite for testing various states of the new
2979         queueing system
2980         
2981 2005-11-15  Robert McQueen  <robot101@debian.org>
2982
2983         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2984         Taylor to add two methods, dbus_g_method_return_get_reply and
2985         dbus_g_method_return_send_reply, to allow you to get the reply
2986         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2987         and send it. The GLib bindings can't marshal a return value of
2988         something like a(s) if the array is empty - ultimately they should be
2989         made to heed the signature of the out arguments as the Python bindings
2990         now can, but this is a workable interim solution which might have
2991         other applications.
2992
2993 2005-11-15  Robert McQueen  <robot101@debian.org>
2994
2995         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2996         method to org.freedesktop.DBus to release a bus name or give up
2997         waiting in the queue for it.
2998
2999         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
3000         dbus_bus_release_name method to send the ReleaseName method calls.
3001         Add constants for the return values to dbus/dbus-shared.h.
3002
3003         * doc/dbus-specification.xml: Document the new ReleaseName method
3004         in the specification.
3005
3006         * python/dbus_bindings.pyx: Add a low-level python binding for the
3007         release name method.
3008
3009         * python/exceptions.py, python/service.py: Make freeing BusName
3010         objects release the name. Add a NameExistsException, and fix a
3011         bug with creating UnknownMethodException.
3012
3013         * test/python/test-client.py: Add tests for freeing BusName
3014         objects causing names to be released.
3015
3016 2005-11-14  Robert McQueen  <robot101@debian.org>
3017
3018         * python/service.py: Include the traceback in the error reply when we
3019         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3020
3021 2005-11-14  David Zeuthen  <davidz@redhat.com>
3022
3023         Patch from Timo Hoenig <thoenig@suse.de>.
3024
3025         * bus/bus.c: I've recently investigated why the automatic reload
3026         of configuration files does not work as expected.
3027
3028         Currently, reloading configuration files does only work when
3029         running dbus-daemon with --nodaemon.  If we are running as daemon
3030         we're hitting a dnotify bug once we fork the process.
3031
3032         We're initializing the dnotify fds before calling fork().  Once
3033         the child process forked it does still have the fds (and they
3034         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3035         getting SIGIO as changes are made to the configuration files.
3036
3037         The attached patch moves the initialization of the dnotify fds to
3038         process_config_postinit().  This is safe for all current code
3039         paths and solves the dnotify disfunction.  If we're running
3040         dbus-daemon as daemon the fds for dnotify are now being
3041         initialized after fork() for the child process.
3042
3043         * configure.in: The current configure.in check for dnotify probes
3044         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3045         match for 'xlinux', too. Additionally I have adapted the configure
3046         option's style to match with the others.
3047
3048 2005-11-14  Robert McQueen  <robot101@debian.org>
3049
3050         * python/decorators.py, python/service.py: Add a new argument to the
3051         dbus.service.method decorator called sender_keyword, which if set,
3052         specifies the name of an argument which will be provided the bus
3053         name of the method caller.
3054
3055         * test/python/test-client.py, test/python/test-service.py: Add a
3056         method and test to check the sender_keyword functionality.
3057
3058 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3059
3060         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3061         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3062         Simons <sjoerd at luon.net>)
3063
3064         * AUTHORS: Add Robert McQueen for his work on the Python
3065         Bindings and other parts of D-Bus
3066
3067 2005-11-07  Robert McQueen  <robot101@debian.org>
3068
3069         * python/decorators.py: Change emit_signal function to use the
3070         signature annotation of the signal when marhsalling the arguments from
3071         the service. Fix a bug where the code checking signature length
3072         against argument length referenced the wrong variable.
3073
3074         * python/introspect_parser.py: Avoid adding the type signature of
3075         signal arguments to any methods which occur after them in the
3076         introspection data (!) by making the parser a little more careful
3077         about its current state.
3078
3079         * python/service.py: Remove debug prints from last commit (again :D).
3080
3081         * test/python/test-client.py, test/python/test-service.py: Add test
3082         signals with signature decorators to test the strict marshalling code
3083         gives errors at the right time. Could do with checking the signals
3084         actually get emitted too, given that the test does nothing with
3085         signals at the moment...
3086
3087 2005-11-07  Robert McQueen  <robot101@debian.org>
3088
3089         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3090         instances to stop madness of creating new instances representing
3091         the same bus connection all the time, rendering any tracking of
3092         match rules and bus names quite meaningless. Caught a bug where
3093         the private argument to SessionBus() and friends was being passed
3094         in as use_default_mainloop by mistake. Still some problems with
3095         multiple dbus_binding.Connection instances representing the same
3096         low-level connection (eg when you use both SessionBus() and
3097         StarterBus() in same process), but it's a lot better now than it
3098         was.
3099
3100         * python/dbus_bindings.pyx: Add constants with the return values
3101         for bus_request_name().
3102
3103         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3104         and retrieve the same instances for the same name, so deletion can be
3105         done with refcounting. Also now throws some kind of error if you
3106         don't actually get the name you requested, unlike previously...
3107
3108         * test/python/test-client.py: Add tests for instance caching of buses
3109         and bus name objects.
3110
3111 2005-11-04  Robert McQueen  <robot101@debian.org>
3112
3113         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3114         marshalling of boolean values. Add some booleans to the values in
3115         the test client.
3116
3117         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3118         argument to the dbus.service.method decorator, which allows you to
3119         name arguments to take two callback functions for replying with
3120         return values or an exception.
3121
3122         * test/python/test-client.py, test/python/test-service.py: Add test
3123         case using asynchronous method reply functions, both return values and
3124         errors, and from within both the function itself and from a mainloop
3125         callback.
3126
3127         * python/decorators.py, python/service.py: Perform checking that the
3128         number of method/signal arguments matches the number of types in the
3129         signature at class loading time, not when you first introspect the
3130         class.
3131
3132         * python/service.py: Remove debug print left by the last commit.
3133
3134 2005-11-03  Robert McQueen  <robot101@debian.org>
3135
3136         * python/service.py: Heavy refactoring of method invocation, with
3137         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3138         in favour of a new _message_cb that uses seperate functions for
3139         looking up the method to call, marshalling the return values, and
3140         sending exceptions as errors, and is easier to follow as a
3141         consequence.  Fixes some corner cases about returning things that
3142         don't match your declared out_signature, allows exceptions to define
3143         _dbus_error_name and have it be sent over the bus as the error name,
3144         and paves the way for cool stuff like heeding the message no reply
3145         flag, asynchronous method implementations, informing the method of the
3146         sender, and including backtraces in the error messages.
3147
3148         * test/python/test-client.py: Catch and print exceptions thrown in the
3149         async callback tests, rather than passing them to the low-level
3150         bindings to be ignored in a noisy and frustrating manner.
3151
3152 2005-11-03  Robert McQueen  <robot101@debian.org>
3153
3154         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3155         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3156         tweak others to be consistent.
3157
3158         * test/python/test-client.py: Tweak output of testInheritance.
3159
3160 2005-10-29  Robert McQueen  <robot101@debian.org>
3161
3162         * python/service.py: Major changes to allow multiple inheritance
3163         from classes that define D-Bus interfaces:
3164         
3165          1. Create a new Interface class which is the parent class of
3166             Object, and make the ObjectType metaclass into InterfaceType.
3167         
3168          2. Patch written with Rob Taylor to replace use of method_vtable
3169             with code that walks the class's __MRO__ (method resolution order)
3170             to behave like Python does when invoking methods and allow
3171             overriding as you'd expect. Code is quite tricky because
3172             we have to find two methods, the one to invoke which has the
3173             right name and isn't decorated with the /wrong/ interface,
3174             and the one to pick up the signatures from which is decorated
3175             with the right interface.
3176         
3177             The same caveats apply as to normal multiple inheritance -
3178             this has undefined behaviour if you try and inherit from two
3179             classes that define a method with the same name but are
3180             decorated with different interfaces. You should decorate
3181             your overriding method with the interface you want.
3182         
3183          3. Replace grungy introspection XML generation code in the metaclass
3184             with dictionaries that cope correctly with multiple inheritance
3185             and the overriding of methods. This also uses the signature
3186             decorations to provide correct introspection data, including
3187             the debut appearance of the types of your return values. :D
3188
3189         * test/python/test-client.py, test/python/test-service.py: Add a test
3190         case to try invoking an method that overrides one inherited from a
3191         D-Bus interface class.
3192
3193 2005-10-29  Robert McQueen  <robot101@debian.org>
3194
3195         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3196         Add checking for the end of struct character when marshalling a
3197         struct in MessageIter.append_strict.
3198
3199         * python/examples/example-service.py,
3200         python/examples/gconf-proxy-service.py,
3201         python/examples/gconf-proxy-service2.py: Update to use gobject
3202         mainloop directly rather than appearing to depend on gtk.
3203
3204         * python/test/test-client.py, python/test/test-server.py: Remove
3205         obsolete and broken test scripts for old bindings. We have up to date
3206         and working tests in test/python/.
3207
3208 2005-10-29  Robert McQueen  <robot101@debian.org>
3209
3210         * python/decorators.py: Add optional arguments to the method and
3211         signal decorators to allow you to specify the signature of arguments
3212         and return values. Preserve the doc strings of signal functions in the
3213         decorated version, for pydoc and friends.
3214
3215         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3216         parse_signature_block function with an iterable dbus.Signature()
3217         type. Fix a bug in MessageIter.append_strict where you could append
3218         anything by claiming it was a string.
3219
3220         * python/service.py: Use the out_signature decoration on methods to
3221         marshal return values, meaning you no longer require dbus.Array()
3222         or dbus.Dictionary() to indicate the type when returning empty
3223         arrays or dictionaries. Fix a bug where exceptions which are defined
3224         in __main__ are not turned into error replies.
3225
3226         * test/python/test-client.py, test/python/test-service.py: Add test
3227         for correct marshalling of return values according to out_signature.
3228         Fix a bug in the async call test where the error_handler is missing a
3229         self argument.
3230
3231 2005-10-29  Robert McQueen  <robot101@debian.org>
3232
3233         * glib/Makefile.am, glib/examples/Makefile.am,
3234         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3235         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3236
3237         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3238
3239         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3240         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3241         the command line.
3242
3243 2005-10-27  Ross Burton  <ross@openedhand.com>
3244
3245         * dbus/dbus-marshal-header.c:
3246         Remove dead code.
3247
3248         * glib/dbus-gobject.c:
3249         Stop compiler warning.
3250
3251 2005-10-25  Ross Burton  <ross@openedhand.com>
3252
3253         * dbus/dbus-auth.c:
3254         * dbus/dbus-server-unix.c:
3255         * dbus/dbus-transport-unix.c:
3256         * glib/dbus-gmain.c:
3257         * glib/dbus-gobject.c:
3258         Add some const keywords.
3259
3260 2005-10-25  Ross Burton  <ross@openedhand.com>
3261
3262         * doc/dbus-specification.xml:
3263         Document the NoReply annotation.
3264
3265         * glib/dbus-binding-tool-glib.h:
3266         * glib/dbus-binding-tool-glib.c:
3267         Respect the NoReply annotation.
3268
3269 2005-10-24  Robert McQueen <robot101@debian.org>
3270
3271         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3272         derive from unicode instead of str, and encode/decode UTF-8 when
3273         marshalling/unmarshalling bus messages
3274
3275         * python/introspect_parser.py: encode introspection data as UTF-8
3276         before passing the buffer into libxml2
3277
3278         * test/python/test-client.py: add unicode test strings
3279
3280         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3281         ignore generated python test files
3282
3283 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3284
3285         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3286         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3287         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3288
3289         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3290         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3291         when constructing struct signatures
3292
3293         * python/_dbus.py (Bus): handle private connections using the
3294         private keyword in the constructor. defaults to private=False
3295         (Bus::close): new method to close a connection to the bus
3296
3297         * python/dbus_bindings.pyx (Connection::close): renamed method
3298         was previously called disconnect
3299         (bus_get): now supports getting a private connection
3300
3301         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3302         keyword is set to True.  if it is, execute the method without waiting
3303         for a reply
3304         (ProxyObject::_introspect_execute_queue): new method for executing
3305         all the pending methods that were waiting for the introspect to
3306         finish.  this is called when introspect either succeeds or fails
3307         (ProxyObject::_introspect_error_handler): call queued methods
3308
3309 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3310
3311         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3312         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3313
3314         * python/service.py (Object::_message_cb): handle exceptions correctly
3315         by sending them over the wire to the calling app.  This makes sure
3316         the client returns immediately instead of waiting the 15 seconds to
3317         timeout.
3318
3319         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3320         Add a test to benchmark how long it takes to introspect a service and 
3321         call a method which returns a large element (pretty fast)
3322
3323         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3324         method which pushes a lot of data
3325
3326 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3327
3328         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3329         reclaim memory outside of the loop and use del istead of just setting
3330         the key to None
3331
3332 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3333
3334         * python/service.py (ObjectType::_reflect_on_signal): Always close
3335         signal tag even when there are no arguments
3336
3337 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3338
3339         * configure.in: Set mono, mono-docs and Qt3 to default
3340         to no instead of auto when building.  These bindings do not
3341         have full time maintainers and will not be supported for the
3342         1.0 release.
3343
3344 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3345
3346         patches from Michael Krivoruchko <misha at sun.com>: 
3347         
3348         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3349         _dbus_connection_message_sent, 
3350         _dbus_connection_send_preallocated_unlocked_no_update, 
3351         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3352         is NULL when calling _dbus_verbose
3353
3354         * configure.in: check for functions getpeerucred and getpeereid
3355
3356         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3357         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3358         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3359         Patch was only tested on Solaris 10 x86 so it might be issues
3360         with other platforms (i.e. BSDs and MacOSX)
3361         
3362
3363 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3364
3365         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3366         instead of marshal basic so we can handle recursive types in a variant
3367
3368         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3369         in variants
3370
3371         * test/glib/test-service-glib.c, test-service-glib.xml
3372         (my_object_echo_variant [EchoVariant], 
3373         my_object_process_variant_of_array_of_ints123
3374         [ProcessVariantOfArrayOfInts123]): 
3375         Add two test methods
3376
3377         * python/introspect_parser.py: New module for parsing introspect
3378         data.
3379
3380         * python/dbus_bindings.pyx:
3381         (various places): when throwing errors fix to use errormsg instead 
3382         of message local variable because Pyrex can get confused with other 
3383         message variables (initial patch by Robert McQueen 
3384         <robert.mcqueen at collabora.co.uk>)
3385         (MessageIter::parse_signature_block): new method for getting the next
3386         block in a signiture.
3387         (MessageIter::append_strict): new method for appending values strictly
3388         using the passed in signature instead of guessing at the type
3389         (MessageItter:: append_dict, append_struct, append_array): use 
3390         signatures to marshal children if the signature is available
3391         
3392         * python/exceptions.py (IntrospectionParserException): new exception
3393
3394         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3395         introspected signatures if available, else we fall back to the
3396         old way of doing things.
3397         (ProxyObject::_introspect_reply_handler ): parse introspection data
3398         
3399         * python/service.py (ObjectType::_reflect_on_method): Properly
3400         terminate <method> if there are no args in the reflection data
3401
3402         * test/python/test-client.py: add tests for talking with the GLib
3403         test server.  This gives us better coverage for introspection since
3404         python to python will always generate arguments as variants.  It also
3405         allows us to test the robustness of the GLib bindings and interlanguage
3406         communications.
3407
3408         
3409 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3410
3411         * bus/driver.c (bus_driver_handle_introspect): Add signals
3412         to the introspect data. (patch from Daniel P. Berrange 
3413         <dan at berrange.com>)
3414
3415         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3416         
3417         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3418         _dbus_connection_run_builtin_filters): Changed these to
3419         be unlock_no_update functions and call 
3420         _dbus_connection_send_unlocked_no_update instead of
3421         dbus_connection_send to avoid locking errors.
3422         
3423         * doc/TODO: Removed the make Ping test TODO
3424         
3425 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3426
3427         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3428         We now copy the message from a DBusError and then free 
3429         the error object befor throwing the error
3430
3431         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3432         DBusBindingOutputMode enum which was causing a warning.
3433         #include <time.h> so using time_t is explicitly defined
3434
3435 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3436
3437         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3438         - dbus/dbus-bus.c
3439         (internal_bus_get): new method that take over the heavy lifting
3440         of dbus_bus_get and adds the ability to get a private connection
3441         to the bus
3442         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3443         interface as in previous versions
3444         (dbus_bus_get_private): new method that is a wrapper to 
3445         internal_bus_get to get a private connection to the bus
3446
3447         - dbus/dbus-bus.h
3448         (dbus_bus_get_private): add as a public libdbus interface
3449
3450         - dbus-1.pc.in: output system_bus_default_address and 
3451         sysconfdir variables so apps can use them when compiling
3452
3453 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3454         * dbus/qt: New Qt bindings
3455
3456 2005-09-12  Waldo Bastian  <bastian@kde.org>
3457
3458         * dbus/dbus-marshal-validate.c,
3459         doc/dbus-specification.xml, test/Makefile.am,
3460         test/test-names.c: allow hyphens in bus names.
3461
3462 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3463
3464         * test/data/auth/fallback.auth-script: we don't
3465         retry the EXTERNAL method when we know its going
3466         to fail anymore.
3467
3468 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3469
3470         * dbus/dbus-connection-internal.h: rename
3471         (add|remove|toggle)_(watch|timeout) to unlocked()
3472         
3473         * dbus/dbus-connection.c: ditto.
3474         
3475         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3476         Update some callers for the renaming.
3477
3478 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3479
3480         * dbus/dbus-auth.c: (record_mechanisms): don't
3481         retry the first auth mechanism because we know
3482         we're just going to get rejected again.
3483         
3484         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3485         Fix thinko ... and what a nasty little bugger to
3486         track down you were ...
3487
3488         * dbus/dbus-connection.c:
3489         (_dbus_connection_add_watch),
3490         (_dbus_connection_remove_watch): add note about
3491         these needing the connection to be locked.
3492         (_dbus_connection_get_dispatch_status_unlocked):
3493         set status to DATA_REMAINS when we queue the
3494         disconnected message.
3495         
3496         * bus/dispatch.c:
3497         (bus_dispatch): fix warning.
3498         (check_existent_service_no_auto_start):
3499         Expect ChildSignaled error too.
3500         (check_existent_hello_from_self): fix another
3501         couple of warnings.
3502         
3503 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3504
3505         Patches from James Willcox <snorp@snorp.net>
3506
3507         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3508
3509         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3510         support array "out" parameters.
3511
3512         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3513         for 16-bit int support.
3514
3515 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3516
3517         * Released 0.50
3518
3519         * Patch from Steve Grubb:
3520         - bus/activation.c (bus_activation_service_reload_test): clean up
3521         some indentation
3522         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3523         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3524         buffer overflows in the test suite.  This is non critical because
3525         it can not be exploited and this code is only run when doing a 
3526         make check.
3527
3528         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3529         - configure.in: Don't check and link against kdecore, only qt headers
3530         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3531         - gcj/org/freedesktop/dbus/Makefile.am:
3532         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3533         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3534         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3535         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3536         - tools/Makefile.am: Add platform extentions to binaries 
3537         (i.e. .exe on windows)
3538
3539         * configure.in: 
3540         - Make it so if no suitable version of python is found we only 
3541         disable building python instead of exiting the configure script
3542         - Require version 2.4 of glib for glib bindings
3543         - Up version to 0.50
3544
3545         * python/__init__.py: Sync version with libdbus to (0,50,0)
3546         
3547 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3548
3549         * dbus/dbus-object-tree.c (find_subtree_recurse):
3550         a couple of optimizations (bug #710):
3551         - do a binary search in the tree
3552         - insert a new child at the right place directly, no need for
3553           qsort anymore
3554         - do the "double alloc" thing when allocating children
3555
3556 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3557
3558         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3559
3560         * python/dbus_bindings.pyx: Memory management foo
3561         (global): remove hacky _user_data_references global list
3562         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3563         tuples. Unref user_data
3564         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3565         (Connection::__del__): Remove and replace with __dealloc__ method
3566         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3567         to keep tuple from being deallocated instead of the global var hack
3568         (Connection::register_object_path): Stuff user_data into a tuple.
3569         Use Py_INCREF to keep tuple from being deallocated instead of the 
3570         global var hack
3571         (Connection::register_fallback): Stuff user_data into a tuple.
3572         Use Py_INCREF to keep tuple from being deallocated instead of the 
3573         global var hack
3574         (GIL_safe_pending_call_notification): Don't unref the message
3575         because it gets unreffed when going out of scope.  Py_XDECREF
3576         the user_data
3577         (PendingCall::__del__): Remove and replace with __dealloc__ method
3578         (PendingCall::set_notify): ref the pending call because we will
3579         need it to stick around for when the notify callback gets called
3580         (Message::__del__): Remove and replace with __dealloc__ method
3581
3582         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3583         gthreads_init to match up with the dbus call
3584
3585         * python/glib.py (init_threads): Changed to threads_init to match
3586         up with gobject.threads_init().  init_threads is kept for backwards
3587         compat but will most likely be deprecated in the future
3588
3589         * test/python/test-client.py: 
3590         - revamp to use Python's unittest functionality
3591         - add async call tests
3592         - setup threads in glib and dbus so we make sure locks are working
3593         
3594 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3595
3596         * python/dbus_bindings.pyx 
3597         (_pending_call_notification, cunregister_function_handler, 
3598         cmessage_function_handler): All callback functions have been rearranged 
3599         to workaround a bug in Pyrex when working with the GIL which is Python's 
3600         global lock when dealing with threads.  They have been split into
3601         a wrapper function (which assumes the name of the old function) and
3602         a _GIL_safe_<function name> function which contains the functionality
3603         of the old function.  This ensures that Pyrex does not write code
3604         the lock is released.
3605         
3606
3607 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3608
3609         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3610         GIL global lock when calling back into Python
3611
3612 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3613
3614         * Release 0.36.2
3615
3616         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3617
3618         * bus/policy.c (bus_policy_allow_user): change default "user is
3619         allowed" to be "user has same uid as the bus itself"; any
3620         allow/deny rules will override.
3621
3622         * bus/session.conf.in: don't allow all users, since now by default
3623         the user that ran the bus can connect.
3624
3625 2005-08-26  Colin Walters  <walters@verbum.org>
3626
3627         * tools/dbus-print-message.c (print_message): Flush stdout
3628         after printing a message, so that redirecting to a file, then
3629         hitting Ctrl-C works.
3630
3631 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3632
3633         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3634         (EmptyMessage): new class that subclasses Message.  This is a workaround
3635         to a Pyrex bug that fails to call __del__ when the Message object goes out
3636         of scope.  For some reason subclassing Message fixes this bug
3637         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3638         - s/Message(_create=0)/EmptyMessage everywhere else
3639         
3640         * test/python/test-{server|client}.py: add the python/.libs directory
3641         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3642         get picked up from the system
3643
3644 2005-08-25  Colin Walters  <walters@verbum.org>
3645
3646         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3647         to Ryan Lortie for the suggestion.
3648
3649 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3650
3651         * test/python: Add python regression test
3652
3653         * configure.in: Add test/python/Makefile
3654
3655         * test/Makefile.am: Add the python directory to SUBDIRS
3656
3657 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3658
3659         * Release 0.36.1
3660
3661         * python/_dbus.py: 
3662         (Interface::connect_to_signal): propigate keywords for match on args
3663         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3664
3665         * python/proxies.py (ProxyObject::connect_to_signal):
3666         propigate keywords for match on args
3667
3668         * Makefile.am: point everything to pyexecdir since python borks
3669         on multilib
3670
3671 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3672
3673         * Release 0.36
3674
3675 2005-08-23  Colin Walters  <walters@verbum.org>
3676
3677         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3678
3679 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3680
3681         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3682         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3683         of defining DBusConnection ourselves.
3684
3685 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3686
3687         * python/dbus.pth: New path file to fix up problems when installing
3688         c libraries to lib64 and python files to lib.
3689
3690         * python/Makefile.am: install dbus.pth in the correct spot
3691
3692 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3693         * ChangeLog: clean up my last entry a bit
3694
3695         * doc/introspect.xsl: New stylesheet for converting introspection data
3696         into browser renderable xhtml. Contributed by Lennart Poettering.
3697
3698         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3699         Poettering.
3700
3701         * doc/dbus-tutorial.xml: 
3702         - Add Colin Walter to the Authors section for authoring the GLib
3703         section
3704         - Add descriptions of the new signature and type functionality
3705         in the Python complex type mapping section
3706         - Add a sidenote on the new args matching functionality in 
3707         the Python bindings
3708         - Fixed up some of the examples to use the gobject.MainLoop
3709         instead of gtk.main
3710         
3711         * python/_dbus.py:
3712         (Bus::_create_args_dict): New. Converts a hash of arg matches
3713         to a more useable format
3714         (Bus::add_signal_receiver): add a **keywords parameter for catching
3715         arg match parameters
3716         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3717         arg match parameters
3718         
3719         * python/matchrules.py:
3720         (MatchTree::exec_matches): Check for arg matches
3721         (SignalMatchRule::add_args_match): New method
3722         (SignalMatchRule::execute): Added args_list parameter as an optimization
3723         so we don't have to marshal the args more than once
3724         (SignalMatchRule::match_args_from_list): New method that checks to see
3725         if the rule's arg matches match an argument list.  Only arguments
3726         set in the rule are checked.
3727         (SignalMatchRule::match_args_from_rule): New method that checks to see
3728         if the rule's arg matches match another rule's.  All args have to match
3729         in order for this method to return true.  If either rule has more args
3730         then it is not a match.
3731         (SignalMatchRule::is_match): Add args match
3732         (SignalMatchRule::repr): Add args to the final output if they exist
3733
3734 2005-08-17  Ross Burton  <ross@burtonini.com>
3735
3736         * glib/dbus-gproxy.c:
3737         (dbus_g_proxy_call_no_reply): unref the message once sent.
3738         (dbus_g_proxy_call): protect against NULL proxy.
3739
3740 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3741
3742         * python/__init__.py: Version updated (0, 43, 0)
3743         
3744         * python/dbus_bindings.pyx: 
3745         - Fixed type objects to have self passed into __init__
3746         - Added the Variant type
3747         - Add the ability to specify types or signatures for Array, Variant 
3748         and Dictionary
3749         (Connection::send_with_reply_handlers): return a PendingCall object
3750         (_pending_call_notification): handle the case when an error is returned 
3751         without an error message in the body
3752         (MessageIter::get_boolean): return True or False instead of an integer
3753         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3754         and add checks for objects with embeded signatures or types (Array, 
3755         Variant and Dictionary)
3756         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3757         (MessageIter::append_dict): handle embeded types or signatures
3758         (MessageIter::append_array): handle embeded types or signatures
3759         (MessageIter::append_variant): new method
3760         
3761         * python/proxies.py:
3762         (DeferedMethod): New. Dummy executable object used when queuing calls 
3763         blocking on introspection data
3764         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3765         or shorter timeouts for method calls
3766         (ProxyObject): Add first pass at an introspection state machine
3767         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3768         introspection. 
3769         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3770         the usual mechanisms for sending messages.  This is to avoid a deadlock
3771         where the Intospect call would be queued waiting for the Introspect 
3772         call to finish ;-)
3773         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3774         when introspection returns with no error
3775         (ProxyObject::_introspect_error_handler): New.  This method is called 
3776         when introspection encounters an error
3777         (ProxyObject::__getattr__): Code to handle different introspection 
3778         states.  Queue async calls or block blocking calls if we are 
3779         introspecting.  Pass through as normal if we are not or are done with 
3780         introspecting.
3781         
3782         * python/service.py: Import signal and method from decorators.py
3783
3784         * python/types.py: Add Variant type
3785
3786 2005-08-16  Colin Walters  <walters@verbum.org>
3787
3788         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3789         DBusError message is NULL.
3790
3791 2005-08-09  Havoc Pennington  <hp@redhat.com>
3792
3793         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3794         malloc'd copy of the name parameter
3795
3796 2005-08-09  Havoc Pennington  <hp@redhat.com>
3797
3798         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3799         warning if the reply serial is set to 0
3800
3801 2005-08-04  Colin Walters  <walters@verbum.org>
3802
3803         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3804         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3805         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3806         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3807         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3808         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3809         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3810         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3811         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3812         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3813         
3814         Prefix name with _ to ensure they're not exported.  All callers
3815         updated.
3816
3817         * glib/dbus-gvalue.c (typecode_to_gtype)
3818         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3819         (signature_iter_to_g_type_dict)
3820         (signature_iter_to_g_type_array)
3821         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3822         (dbus_gtypes_from_arg_signature):
3823         Move to dbus-gsignature.c.
3824
3825         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3826         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3827         (dbus_binding_tool_output_glib_client): Ditto.
3828
3829         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3830         and dbus-gsignature.h
3831
3832         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3833         unused variable.
3834
3835 2005-08-03  Colin Walters  <walters@verbum.org>
3836
3837         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3838         catch any incompatible changes accidentally made.
3839
3840 2005-08-03  Havoc Pennington  <hp@redhat.com>
3841
3842         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3843         typo, from Julien Puydt
3844
3845         * bus/connection.c (bus_connection_disconnected): we were always
3846         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3847
3848 2005-08-01  Colin Walters  <walters@verbum.org>
3849
3850         Patch from Joe Markus Clarke:   
3851         
3852         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3853         use-after-free.
3854
3855 2005-08-01  Colin Walters  <walters@verbum.org>
3856         
3857         Patch from Joe Markus Clarke:   
3858         
3859         * tools/dbus-send.c (main): 
3860         
3861         Don't use C99 style initializers (bug #3933).
3862         
3863 2005-08-01  Colin Walters  <walters@verbum.org>
3864
3865         Patch from Joe Markus Clarke:   
3866
3867         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3868         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3869         * glib/dbus-gobject.c (write_interface):
3870
3871         Don't use C99 style initializers (bug #3933).
3872
3873 2005-07-31  Havoc Pennington  <hp@redhat.com>
3874
3875         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3876         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3877
3878 2005-07-30  Havoc Pennington  <hp@redhat.com>
3879
3880         * fix a bunch of Doxygen warnings and mistakes
3881
3882 2005-07-30  Havoc Pennington  <hp@redhat.com>
3883
3884         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3885         DBUS_BUILD_TESTS since it's now used in production code
3886
3887 2005-07-29  Havoc Pennington  <hp@redhat.com>
3888
3889         * test/glib/test-profile.c (write_junk): initialize the junk
3890         buffer so valgrind doesn't have a breakdown
3891
3892 2005-07-29  Havoc Pennington  <hp@redhat.com>
3893
3894         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3895         (match_rule_matches): remove unused arg
3896         (test_matching): add tests for match_rule_matches()
3897
3898         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3899         do arg0='foo' arg5='bar' in the match rules
3900         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3901
3902         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3903
3904 2005-07-29  Ross Burton  <ross@openedhand.com>
3905
3906         * dbus/dbus-connection.c:
3907         Don't create a DBusCondVar which is never used.
3908
3909 2005-07-27  Ross Burton  <ross@openedhand.com>
3910
3911         * dbus/dbus-message.c:
3912         Reduce the size of the maximum cached message to 10K.
3913
3914 2005-07-25  Ross Burton  <ross@openedhand.com>
3915
3916         * glib/dbus-gproxy.c:
3917         Remove matches when all proxies are unregistered.
3918
3919 2005-07-24  Colin Walters  <walters@verbum.org>
3920
3921         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3922         typedata; recursive arrays won't have it.
3923
3924         * test/glib/test-dbus-glib.c:
3925         * test/glib/test-service-glib.c:
3926         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3927         
3928 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3929
3930         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3931         proxies.py, service.py: Cleanup of code after running it through the
3932         pyflakes code checker mostly dealing with undefined names.  
3933         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3934
3935 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3936
3937         * NEWS: Update to 0.35.2
3938
3939 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3940
3941         * python/_dbus.py: Remove import of the dbus.services
3942         module as it no longer exists (patch from Dimitur Kirov)
3943
3944         * python/service.py (Object::__init__): Fixed typo
3945         s/name/bus_name (patch from Dimitur Kirov)
3946
3947         * python/examples/example-signal-emitter.py: import dbus.glib
3948         to get the main loop and use glib mainloop instead of gtk so
3949         X doesn't have to be running.
3950
3951         * python/examples/example-signal-recipient.py: import dbus.glib
3952         to get the main loop and use glib mainloop instead of gtk so
3953         X doesn't have to be running. Import the decorators module
3954         directly.
3955
3956         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3957         didn't pick up on but are needed to build
3958
3959         * configure.in: upped version to 0.35.2
3960
3961         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3962         added Colin Walters' SELinux API rename patch from head 
3963         s/unix sercurity context/selinux security context/
3964
3965 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3966
3967         * python/Makefile.am: dbus_binding.pxd.in should be included 
3968         in EXTRA_DIST not dbus_binding.pxd
3969         fix up $(srcdir) hopefully for the last time
3970
3971         * NEWS: Update to 0.35.1
3972
3973 2005-07-16  Colin Walters  <walters@verbum.org>
3974
3975         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3976         from bus_driver_handle_get_connection_unix_security_context.  Update for
3977         error usage.
3978         (message_handlers): Update for renames.
3979
3980         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3981         _dbus_string_init failure correctly.
3982         (bus_selinux_append_context): Convert SID to context.  Append it
3983         as a byte array.
3984         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3985         hasn't been called.
3986
3987         * bus/selinux.h: Update prototype.
3988
3989         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3990         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3991
3992 2005-07-15  Colin Walters  <walters@verbum.org>
3993
3994         * doc/TODO: Add note about convenience wrappers.
3995
3996 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3997
3998         * NEWS: Update to 0.35
3999
4000 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4001
4002         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
4003         so distcheck doesn't fail
4004
4005         * glib/examples/Makefile.am: Add example-service.xml and 
4006         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4007
4008         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4009         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4010
4011         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4012         compiler looks in the right places during distcheck
4013
4014 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4015
4016         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4017         to fail
4018
4019 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4020
4021         * python/examples/example-service.py,
4022         python/examples/example-signal-emitter.py: Fixed up examples
4023         for API changes
4024
4025 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4026
4027         * python/__init__.py: Upped to version (0,42,0) because of
4028         the API change
4029
4030 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4031
4032         * ChangeLog: fix date in last entry
4033
4034         * configure.in, bus/system.conf.in: add the ability to configure 
4035         the system bus user at compiletime with the --with-dbus-user flag
4036         (patch from Kristof Vansant)
4037
4038 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4039
4040         * bus/dispatch.c, test/test-service.c: Add testcase
4041         for sending messages to oneself (TODO item).
4042
4043         * python/service.py (class Object): Swap ordering of bus_name 
4044         and object_path parameters to better support inheritance.
4045
4046         * doc/dbus-tutorial.xml: change Python docs to reflect change
4047         in parameter ordering and fix the inheritance section.
4048
4049         * doc/TODO: remove sending message to oneself TODO item
4050
4051 2005-07-15  Ross Burton  <ross@openedhand.com>
4052
4053         * glib/dbus-gproxy.c:
4054         Fix a leak when calling methods via the proxy.
4055
4056 2005-07-15  Colin Walters  <walters@verbum.org>
4057
4058         * bus/selinux.c (bus_selinux_append_context): Wrap in
4059         HAVE_SELINUX.
4060
4061 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4062
4063         * python/_dbus.py (Bus::remove_signal_receiver):
4064         don't add a callback to the match if none has been passed in
4065         
4066         * python/matchrules.py (SignalMatchTree::remove): if the rule
4067         being matched does not have a callback treat it as a wildcard
4068         fix matching logic
4069
4070         * doc/dbus-tutorial.xml: Add Python tutorial
4071
4072 2005-07-14  Colin Walters  <walters@verbum.org>
4073
4074         * bus/driver.c
4075         (bus_driver_handle_get_connection_unix_security_context): New function.
4076         (message_handlers): Add.
4077
4078         * bus/selinux.c (bus_selinux_append_context): New function; appends
4079         security context to message.
4080
4081         * bus/selinux.h: Prototype.
4082
4083         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4084
4085 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4086
4087         * bus/activation.c: clean up all tabs to be 8 spaces 
4088         (bus_activation_activate_service): make sure we clean up
4089         if activation fails
4090
4091         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4092         (check_shell_fail_service_auto_start): New function
4093         tests to make sure we get fail properly when trying to auto start a service
4094         with a faulty command line
4095         (check_shell_service_success_auto_start): New function tests to make sure
4096         auto started services get the arguments on the command line
4097
4098         * test/test-shell-service.c: Added service for testing auto-starting with 
4099         command line arguments
4100
4101         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4102         test/data/valid-service-files/debug-shell-echo-success.service.in:
4103         Added service files for testing auto-starting with command line arguments
4104
4105         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4106
4107 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4108
4109         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4110         
4111         * dbus/Makefile.am: added new files to build.
4112
4113         * bus/activation.c (bus_activation_activate_service): support
4114         activation commands with parameters.
4115
4116         * test/shell-test.c: added test program for the shell parsing
4117         code.
4118
4119 2005-07-13  David Zeuthen  <davidz@redhat.com>
4120
4121         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4122         64 bit signed and unsigned parameters
4123
4124 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4125
4126         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4127
4128         * python/service.py (class Name): renamed BusName to make it clearer
4129         what the object is for (a name on the bus)
4130
4131         * python/examples/example-service.py,
4132         python/examples/example-signal-emitter.py: change the Name object to
4133         BusName
4134
4135 2005-07-12  Colin Walters  <walters@verbum.org>
4136
4137         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4138
4139         * tools/dbus-launch.c: Include sys/select.h.
4140
4141 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4142         * python/dbus_bindings.pyx.in: removed
4143
4144         * python/dbus_bindings.pyx: Added.
4145         - Fixed some memleaks (patch from 
4146         Sean Meiners <sean.meiners@linspireinc.com>)
4147         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4148         own pxd file (Pyrex definition)
4149         - Broke out glib dependancies into its own pyx module
4150         
4151         * python/dbus_bindings.pdx: Added.
4152         - Defines C class Connection for exporting to other modules
4153
4154         * python/dbus_glib_bindings.pyx: Added.
4155         - New module to handle lowlevel dbus-glib mainloop integration
4156
4157         * python/glib.py: Added.
4158         - Registers the glib mainloop when you import this module
4159
4160         * python/services.py: Removed (renamed to service.py)
4161         
4162         * python/service.py: Added.
4163         - (class Server): renamed Name
4164
4165         * python/__init__.py: Bump ro version (0,41,0)
4166         -don't import the decorators or service module
4167         by default.  These now reside in the dbus.service namespace
4168
4169         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4170         setup function on creation 
4171
4172         * python/examples/example-service.py,
4173         python/examples/example-signal-emitter.py: update examples
4174
4175         * python/examples/gconf-proxy-service.py,
4176         python/examples/gconf-proxy-service2.py: TODO fix these up
4177
4178         * doc/TODO: Addition
4179         - Added a Python Bindings 1.0 section
4180         - added "Add match on args or match on details to match rules"
4181
4182
4183 2005-07-12  Colin Walters  <walters@verbum.org>
4184
4185         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4186         (statemachine-glue.h): 
4187         * glib/examples/Makefile.am (example-service-glue.h) 
4188         (example-signal-emitter-glue.h): 
4189         * glib/Makefile.am (dbus-glib-error-switch.h): 
4190         Add libtool --mode=execute so we use the built library instead
4191         of any installed one.
4192
4193 2005-07-11  Colin Walters  <walters@verbum.org>
4194
4195         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4196         (dbus_g_value_types_init): Remove assertion.
4197         (dbus_g_value_get_g_type, dbus_g_value_open)
4198         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4199         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4200         functions related to DBusGValue.  Now we marshal/demarshal
4201         structures as GValueArray.
4202         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4203         structures.
4204         (signature_iter_to_g_type_array): Don't call
4205         signature_iter_to_g_type_struct.
4206         (signature_iter_to_g_type_struct): Delete.
4207         (dbus_gvalue_to_signature): Delete.
4208         (dbus_gvalue_to_signature): New function with same name as other
4209         one; we can convert structures to signatures.
4210         (demarshal_valuearray): New function.
4211         (get_type_demarshaller): Use it.
4212         (demarshal_recurse): Delete.
4213         (marshal_proxy): New function.
4214         (marshal_map): Warn if we can't determine signature from type.
4215         (marshal_collection_ptrarray): Ditto.
4216         (marshal_collection_array): Ditto.
4217         (get_type_marshaller): Use marshal_valuearray.
4218         (marshal_recurse): Delete.
4219         (_dbus_gvalue_test): Add some tests.
4220
4221         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4222         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4223         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4224         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4225         (dbus_g_value_free): Remove prototypes.
4226
4227         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4228         G_TYPE_VALUE_ARRAY.
4229
4230         * glib/examples/example-service.c:
4231         * glib/examples/example-client.c: Implement GetTuple.
4232
4233         * test/glib/test-dbus-glib.c:
4234         * test/glib/test-service-glib.c:
4235         * test/glib/test-service-glib.xml: Add structure tests.
4236
4237 2005-07-10  Colin Walters  <walters@verbum.org>
4238
4239         * doc/TODO: Knock off some GLib items with this patch.
4240
4241         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4242         (_dbus_gvalue_signals_error): New functions.
4243
4244         * glib/dbus-gvalue-utils.h: Prototype them.
4245
4246         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4247         and change to not output const/retval flags for input args.  All
4248         callers updated.
4249         (invoke_object_method): Refactor to handle return values.  Add
4250         some more comments in various places.  Remove debug g_print.
4251
4252         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4253
4254         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4255         Handle G_TYPE_NONE.
4256         (compute_gsignature): New function; refactored from code from
4257         compute_marshaller and compute_marshaller_name.  Enhance to
4258         handle return values and async ops more cleanly.  Update for
4259         async ops returning NONE instead of BOOLEAN.
4260         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4261         and output appropriate string.
4262         (generate_glue): Handle return value annotation.  Also don't dump
4263         constness flag for input arguments.
4264
4265         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4266         files shared between installed library and utilities.
4267         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4268         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4269         binding tool can access gtype utility functions.
4270
4271         * test/glib/test-service-glib.c: 
4272         * test/glib/test-service-glib.xml: 
4273         * test/glib/test-dbus-glib.c: Add some tests for return values.
4274
4275 2005-07-09  Colin Walters  <walters@verbum.org>
4276
4277         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4278         argument if available, not method.
4279
4280         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4281         (invoke_object_method): First, remove some redundant
4282         GValues (object_value, error_value) in favor of working on
4283         array directly.  Second, rework constness to be less buggy.
4284         Now we iterate directly over the argument metadata instead
4285         of parallel iterating over output signature and metadata.
4286
4287         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4288
4289         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4290         annotation on input args.
4291         
4292 2005-07-09  Colin Walters  <walters@verbum.org>
4293
4294         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4295         Define.
4296
4297         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4298         annotation.
4299
4300         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4301         (method_dir_signature_from_object_info): Handle arg_iterate change.
4302         (write_interface): Ditto.
4303         (lookup_object_info): Don't barf if format_version is > 0.
4304         (invoke_object_method): Handle arg constness.
4305
4306         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4307         (arg_info_new): Create.
4308         (arg_info_unref): Destroy.
4309         (arg_info_get_annotations, arg_info_get_annotation) 
4310         (arg_info_add_annotation): New functions.
4311
4312         * glib/dbus-gidl.h: Prototype them.
4313
4314         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4315         args, disallow them in properties.
4316         (parse_annotation): Handle arg annotations.
4317
4318         * test/glib/test-service-glib.xml: 
4319         * test/glib/test-service-glib.c: Update to make some methods
4320         const.
4321
4322 2005-07-08  Colin Walters  <walters@verbum.org>
4323
4324         * test/glib/test-service-glib.xml: 
4325         * test/glib/test-service-glib.c:
4326         * test/glib/test-dbus-glib.c: Test a{sv}.
4327
4328         * glib/examples/statemachine/statemachine.c:
4329         * glib/examples/statemachine/statemachine-server.c:
4330         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4331         add progress bar, etc.
4332
4333         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4334         needed anymore due to generic array/map marshalling.
4335         (dbus_g_value_types_init): Don't register basic arrays or the
4336         string/string hash.
4337         (dbus_gtype_from_signature_iter): Don't try to recurse into
4338         variants.
4339         (dbus_gtype_to_signature): Check collection/map before type
4340         metadata.
4341         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4342         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4343         generic map creation/append functions instead of hash table
4344         specifically.
4345         (get_type_demarshaller): Handle maps.
4346         (demarshal_collection): Dispatch on collection type to either
4347         demarshal_collection_ptrarray or demarshal_collection_array.
4348         (get_type_marshaller): Handle maps.
4349         (marshal_collection): Dispatch collection type to either
4350         marshal_collection_ptrarray or marshal_collection_array.
4351         (_dbus_gvalue_test): New test.
4352
4353         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4354         (hash_free_from_gtype): Use it to free GValues.
4355         (hashtable_append): New function.
4356         (ptrarray_append): Fix prototype.
4357         (slist_append): Ditto.
4358         (_dbus_gvalue_utils_test): Extend tests.
4359
4360         * glib/dbus-gtype-specialized.c
4361         (dbus_g_type_specialized_init_append): Renamed from
4362         dbus_g_type_specialized_collection_init_append.  Remove const from
4363         value, since we steal it.
4364         (dbus_g_type_specialized_map_append): New function.
4365
4366         * glib/dbus-gtype-specialized.h: Update prototypes.
4367         Add DBusGTypeSpecializedMapAppendFunc.
4368
4369         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4370         _dbus_gvalue_test.
4371         
4372         * glib/dbus-gtest.h: Prototype it.
4373
4374 2005-07-08  Ross Burton  <ross@openedhand.com>
4375
4376         * dbus/dbus-glib.h:
4377         Add DBysGAsyncData for the async bindings.
4378
4379         * glib/dbus-binding-tool-glib.c:
4380         Re-enable the async bindings.
4381
4382         * test/glib/test-dbus-glib.c:
4383         Add a test for the generated async bindings.
4384
4385 2005-07-08  Colin Walters  <walters@verbum.org>
4386
4387         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4388         connection concept.
4389         
4390 2005-07-08  Colin Walters  <walters@verbum.org>
4391         
4392         * tools/Makefile.am: Kill of print-introspect in favor of using
4393         dbus-send --print-reply=literal.
4394
4395         * test/glib/test-service-glib.xml: 
4396         * test/glib/test-service-glib.c (my_object_get_objs): New test
4397         for "ao".
4398
4399         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4400         (main): Test GetObjs.
4401
4402         * glib/examples/statemachine/Makefile.am:
4403         * glib/examples/statemachine/sm-marshal.list:
4404         * glib/examples/statemachine/statemachine-client.c:
4405         * glib/examples/statemachine/statemachine-server.c:
4406         * glib/examples/statemachine/statemachine-server.xml:
4407         * glib/examples/statemachine/statemachine.c:
4408         * glib/examples/statemachine/statemachine.h:
4409         * glib/examples/statemachine/statemachine.xml:
4410
4411         New example.
4412
4413         * glib/examples/example-service.c (main): Move invocation
4414         of dbus_g_object_type_install_info earlier, to emphasize it
4415         should only be done once.
4416
4417         * glib/examples/example-signal-emitter.c (main): Ditto.
4418
4419         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4420
4421         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4422         (dbus_gvalue_marshal): Update prototypes.
4423
4424         * glib/dbus-gvalue.c: Update all marshalling functions to take
4425         const GValue instead of GValue.
4426         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4427         types.
4428         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4429         change.
4430         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4431         Return a newly-allocated string.
4432         (demarshal_proxy, demarshal_object_path, demarshal_object)
4433         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4434         we get the wrong types from message.
4435         (get_type_demarshaller): New function, extracted from
4436         dbus_gvalue_demarshal.
4437         (demarshal_collection): New function, demarshals generic
4438         collection.
4439         (dbus_gvalue_demarshal): Just invoke result of
4440         get_type_demarshaller.  Throw error if we don't have one.
4441         (marshal_garray_basic): Abort on OOM.
4442         (get_type_marshaller): New function, extracted from
4443         dbus_gvalue_marshal.
4444         (collection_marshal_iterator, marshal_collection): New functions;
4445         implements generic marshalling for an iteratable specialized
4446         collection.
4447         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4448
4449         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4450         G_TYPE_STRING.
4451         (ptrarray_value_from_gvalue): Ditto.
4452         (ptrarray_append, ptrarray_free): New functions.
4453         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4454         (slist_append, slist_end_append, slist_free): New functions.
4455         (dbus_g_type_specialized_builtins_init): Add append fuctions
4456         for GPtrArray and GSList.  Register GSList.
4457         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4458
4459         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4460         New.
4461         (dbus_g_type_specialized_collection_init_append)
4462         (dbus_g_type_specialized_collection_append)
4463         (dbus_g_type_specialized_collection_end_append): Prototype.
4464         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4465         end_append_func.
4466
4467         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4468         (dbus_g_type_specialized_collection_append) 
4469         (dbus_g_type_specialized_collection_end_append): New functions.
4470         (dbus_g_type_map_value_iterate): Take const GValue.
4471         (dbus_g_type_collection_value_iterate): Ditto.
4472
4473         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4474         _dbus_gvalue_utils_test.
4475         
4476         * glib/dbus-gtest.h: Prototype it.
4477
4478         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4479         using uninitialized owner_list.
4480         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4481         public API.
4482         (dbus_g_proxy_end_call_internal): Update to use error set
4483         from dbus_gvalue_demarshal instead of setting it here.
4484         (dbus_g_proxy_begin_call): Move return_if_fail here.
4485
4486         * glib/dbus-gobject.c (write_interface): Update for
4487         dbus_gtype_to_signature returning new string.
4488
4489         * configure.in: Add glib/examples/statemachine.
4490
4491 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4492
4493         * configure.in: Add a configure option, --with-console-auth-dir
4494         
4495         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4496         new setting.  Patch from Kay Sievers.
4497
4498 2005-07-06  Colin Walters  <walters@verbum.org>
4499
4500         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4501         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4502         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4503         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4504         Delete in favor of dbus_g_proxy_begin_call and
4505         dbus_g_proxy_cancel_call.
4506         (DBusGProxyCall, DBusGProxyCallNotify): New.
4507         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4508         data, and destroy function.  This replaces
4509         dbus_g_pending_call_set_notify.
4510         (dbus_g_proxy_cancel_call): Prototype.
4511         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4512
4513         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4514         pending_calls map.
4515         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4516         internal proxy for calls to the bus. Remove
4517         pending_nameowner_calls, now the internal proxy keeps track.
4518         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4519         pending_nameowner_calls.
4520         (got_name_owner_cb): Update prototype, and use
4521         dbus_g_proxy_end_call.
4522         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4523         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4524         favor of using internal proxy.
4525         (dbus_g_proxy_manager_unregister): Update to use
4526         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4527         (dbus_g_proxy_init): Initialize pending calls map.
4528         (dbus_g_proxy_constructor): New.
4529         (dbus_g_proxy_class_init): Add get/set property functions,
4530         constructor, and add NAME, PATH, and INTERFACE properties.
4531         (cancel_pending_call): New function.
4532         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4533         cancel them.
4534         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4535         (GPendingNotifyClosure): New structure.
4536         (d_pending_call_notify, d_pending_call_free): Moved here from
4537         dbus-glib.c.
4538         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4539         ordering.
4540         (manager_begin_bus_call): New internal function for talking to
4541         internal bus proxy.
4542         (dbus_g_proxy_new): Construct object using GObjet properties.
4543         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4544         Create closure of same, and insert call into map of pending calls.
4545         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4546         call.  Look up pending call in current set.  Remove it when we've
4547         completed.
4548         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4549         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4550         and destroy function directly.
4551         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4552         (dbus_g_proxy_call): Invoke with NULL callback.
4553         (dbus_g_proxy_cancel_call): New function, replaces
4554         dbus_g_pending_call_cancel.
4555
4556         * glib/dbus-gparser.c (validate_signature): Fix call to
4557         dbus_set_g_error.
4558
4559         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4560         New quark for attaching metadata to GType.
4561         (info_hash): Delete.
4562         (lookup_object_info): Look up using quark.
4563         (dbus_g_object_type_install_info): Check that a type is classed,
4564         not that it's an object.  Also just install type data using quark
4565         instead of using global hash.
4566
4567         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4568         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4569         (GPendingNotifyClosure): Delete.
4570         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4571         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4572
4573         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4574         client method generation until we can fix it...
4575         
4576         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4577         (load_from_service_thread_func): Ditto.
4578
4579         * tools/dbus-names-model.c (struct NamesModel): Hold
4580         DBusGProxyCall.
4581         (have_names_notify): Update prototype, use
4582         dbus_g_proxy_cancel_call.
4583         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4584
4585         * tools/dbus-monitor.c (filter_func): Update for print_message
4586         API change.
4587
4588         * test/glib/test-dbus-glib.c: Add more tests for async
4589         invocations.  Update many begin_call/end_call pairs to just use
4590         dbus_g_proxy_call.
4591
4592         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4593         allows us to dump print-introspect.c.
4594
4595         * tools/dbus-print-message.h (print_message): Add literal argument
4596         to print_message which is intended to allow printing arguments without
4597         metadata like "string=".
4598
4599         * tools/dbus-print-message.c (print_iter): Add literal argument.
4600         (print_message): Allow printing string messages literally.
4601
4602 2005-07-05  Colin Walters  <walters@verbum.org>
4603
4604         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4605         Remove value refcount leak, original patch from Jorn Baayen
4606         <jorn@openedhand.com>.  Also remove useless extra value in favor
4607         of prepending to value array directly.
4608
4609 2005-07-02  Colin Walters  <walters@verbum.org>
4610
4611         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4612
4613 2005-07-01  Colin Walters  <walters@verbum.org>
4614
4615         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4616         
4617         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4618         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4619         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4620         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4621
4622 2005-06-30  Colin Walters  <walters@verbum.org>
4623
4624         * test/glib/test-dbus-glib.c:
4625         * test/glib/test-service-glib.c:
4626         * test/glib/test-service-glib.xml: Update tests for new error
4627         setting bits, also add async tests (patch from Ross Burton).
4628
4629         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4630         DBUS_GLIB_THREADS_LIBS.
4631
4632         * glib/dbus-gproxy.c (get_name_owner)
4633         (dbus_g_pending_call_end_valist): Ditto.
4634
4635         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4636         domain (GQuark) to DBusGErrorInfo.  
4637         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4638         quark in error_metadata.  Take message interface as default
4639         error message interface.
4640         (gerror_to_dbus_error_message): Pass message interface.
4641         (dbus_set_g_error): Resurrected.
4642         (dbus_g_error_info_free): New function.
4643         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4644         of _peek to actually create the object class if it hasn't been
4645         created yet.
4646         (dbus_g_error_domain_register): New function.
4647
4648         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4649
4650         * glib/dbus-gparser.c (validate_signature): Ditto.
4651
4652         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4653         (dbus_g_error_domain_register): Prototype.
4654
4655         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4656         Update tests.
4657
4658 2005-06-29  Colin Walters  <walters@verbum.org>
4659
4660         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4661         DBUS_TYPE_G_OBJECT_PATH.
4662
4663         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4664         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4665         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4666         (dbus_g_object_path_get_g_type): New function.
4667         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4668         to DBUS_TYPE_G_OBJECT_PATH by default.
4669         (demarshal_proxy): Remove unused name variable.
4670         (demarshal_object_path, marshal_object_path): New functions.
4671         (demarshal_proxy_array, marshal_proxy_array): Delete.
4672         
4673         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4674         DBUS_TYPE_G_OBJECT_PATH to char *.
4675         (dbus_g_type_get_lookup_function): Map builtin
4676         DBUS_TYPE_G_OBJECT_PATH.
4677
4678         * test/glib/test-dbus-glib.c
4679         * test/glib/test-service-glib.c (my_object_objpath): 
4680         Adapt tests to new object path marshalling.
4681
4682 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4683
4684         * configure.in: force check for Python >= 2.4
4685
4686 2005-06-29  Colin Walters  <walters@verbum.org>
4687         
4688         Patch from Ross Burton <ross@openedhand.com>
4689         
4690         * glib/dbus-gobject.c (invoke_object_method): Unset object
4691         value in all cases, not only in async case.
4692
4693 2005-06-29  Colin Walters  <walters@verbum.org>
4694
4695         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4696         name_call for keeping track of any outgoing GetNameOwner call.
4697         Also add for_owner and associated.
4698         (struct _DBusGProxyManager): Add owner_names, which is hash table
4699         that maps a base name to a list of names it owns (that we're
4700         interested in).  Add pending_nameowner_calls which is a list of
4701         all outstanding GetNameOwner; avoids us having to iterate over
4702         every proxy.  Add unassociated_proxies which keeps track of name
4703         proxies with no associated name owner.
4704         (dbus_g_proxy_manager_unref): Destroy owner_names.
4705         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4706         name refcounts.
4707         (find_name_in_info, name_owner_foreach)
4708         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4709         (dbus_g_proxy_manager_monitor_name_owner)
4710         (dbus_g_proxy_manager_unmonitor_name_owner)
4711         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4712         New functions; they manipulate the owner_names mapping.
4713         (got_name_owner_cb): New function.
4714         (get_name_owner): New function, extracted from
4715         dbus_g_proxy_new_for_name_owner.
4716         (dbus_g_proxy_manager_register): For now we need to keep track of
4717         all NameOwnerChanged.  Also if the proxy is for a name, if we
4718         don't already know the name owner, queue a new GetNameOwner
4719         request and add it to our list of unassociated proxies.  Otherwise
4720         inc the refcount.
4721         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4722         cancel any pending GetNameOwner call, etc.
4723         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4724         the owner_names mapping to look up the current names for the
4725         signal source, and dispatch to any proxies for that name.
4726         (dbus_g_proxy_new): Initialize new members.
4727         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4728         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4729         (dbus_g_pending_call_end_valist): New function, extracted from
4730         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4731         but want to use the GLib infrastructure.  Also note how many
4732         arguments in reply were over.
4733         (dbus_g_pending_call_end): New function, just call
4734         dbus_g_pending_call_end_valist.
4735         (dbus_g_proxy_end_call_internal): Just call
4736         dbus_g_pending_call_end_valist.
4737
4738         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4739         of builtin marshaller for STRING_STRING_STRING.
4740
4741         * test/glib/test-dbus-glib.c: 
4742         * test/glib/test-service-glib.c:
4743         * test/glib/test-service-glib.xml:
4744         Extend tests to cover name proxies, destruction of owner proxies,
4745         etc.
4746         
4747         * glib/examples/example-signal-recipient.c
4748         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4749         
4750         * tools/dbus-send.c (main): Print D-BUS error name in addition
4751         to message.
4752
4753 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4754
4755         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4756         cmessage_function_handler): Patch from 
4757         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4758         by using the Py_GILState_Ensure/Release to synchronize with the
4759         python runtime.
4760         
4761 2005-06-28  Ray Strode  <rstrode@redhat.com>
4762
4763         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4764         babysitter helper process on last unref, bug #2813.
4765
4766 2005-06-27  Colin Walters  <walters@verbum.org>
4767
4768         * test/glib/test-dbus-glib.c: 
4769         * test/glib/test-service-glib.c:
4770         * test/glib/test-service-glib.xml:
4771         Test hash table signal emitting.
4772
4773         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4774         types to their fundamental basis types, since this is what
4775         marshallers operate on.  Also add an entry for VOID__BOXED.
4776         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4777
4778 2005-06-26  Havoc Pennington  <hp@redhat.com>
4779
4780         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4781         from Don Park
4782
4783 2005-06-26  Colin Walters  <walters@verbum.org>
4784
4785         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4786         (dbus_g_error_set): New public function from its ashes; used by
4787         both service-side method implementation and GLib bindings
4788         internals.
4789         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4790         (_dbus_glib_test): Add some tests.
4791
4792         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4793
4794         * test/glib/test-service-glib.c (my_object_throw_error): Use
4795         dbus_g_error_set.
4796
4797         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4798         errors thrown by dbus_g_error_set.
4799
4800         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4801
4802         * glib/dbus-gparser.c (validate_signature): Ditto.
4803
4804         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4805         (dbus_g_proxy_end_call_internal): Ditto.
4806
4807         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4808         converts DBUS_ERROR_x to DBUS_GERROR_x.
4809         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4810
4811         * doc/TODO: Remove error TODO.
4812
4813         * doc/dbus-tutorial.xml: Update with documentation about error
4814         handling.
4815
4816         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4817         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4818         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4819
4820 2005-06-22  Colin Walters  <walters@verbum.org>
4821         
4822         Patch from Ross Burton <ross@openedhand.com>
4823
4824         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4825
4826 2005-06-20  Colin Walters  <walters@verbum.org>
4827
4828         * configure.in: Add glib/examples.
4829
4830         * glib/Makefile.am: Add examples/
4831
4832         * glib/examples/.cvsignore
4833         * glib/examples/Makefile.am
4834         * glib/examples/example-client.c
4835         * glib/examples/example-service.c
4836         * glib/examples/example-service.xml
4837         * glib/examples/example-signal-emitter.c
4838         * glib/examples/example-signal-emitter.xml
4839         * glib/examples/example-signal-recipient.c:
4840         New files; GLib binding examples, ported from
4841         python/examples.
4842
4843 2005-06-20  Colin Walters  <walters@verbum.org>
4844
4845         * dbus/dbus-glib.h: 
4846         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4847         dbus_g_proxy_call.
4848
4849         * glib/dbus-binding-tool-glib.c: 
4850         * doc/dbus-tutorial.xml: 
4851         * test/glib/test-dbus-glib.c: Update for rename.
4852         
4853 2005-06-20  Colin Walters  <walters@verbum.org>
4854
4855         Patch suggested by Ross Burton <ross@openedhand.com>
4856
4857         * glib/dbus-gobject.c (export_signals): Free signal name.
4858         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4859         memory leak.  Add a bit of documentation.
4860         (dbus_g_method_return_error): Free context, and note we do
4861         so.
4862
4863 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4864
4865         * dbus/dbus-glib.h:
4866         * glib/dbus-gobject.c:
4867         * glib/dbus-gproxy.c:
4868         * glib/dbus-gvalue.c: Predeclare structs as 
4869         typedef struct _Something Something instead of 
4870         typedef struct Something Something, so we can 
4871         redeclare the prototypes. Other GNOME libraries 
4872         do this already.
4873
4874 2005-06-17  Colin Walters  <walters@verbum.org>
4875
4876         * tools/dbus-names-model.c (have_names_notify): Fix call
4877         to dbus_g_proxy_end_call.
4878         
4879 2005-06-17  Colin Walters  <walters@verbum.org>
4880
4881         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4882         spew warnings if we get malformed remote signals.
4883
4884         * glib/dbus-gobject.c (propsig_iterate): New function.
4885         (lookup_object_info): New function, extracted from
4886         lookup_object_and_method.
4887         (introspect_properties, introspect_signals): Delete; these
4888         are merged into write_interface.
4889         (write_interface): Write out signals and properties here;
4890         dump the org.gtk.object stuff and use the interface given
4891         in the introspection data blob.  Also fix up property XML.
4892         (lookup_values): New function.
4893         (introspect_interfaces): Gather a mapping from interface to a
4894         list of its methods, signals, and properties, then write out
4895         each interface.
4896         (lookup_object_and_method): Use lookup_object_info.
4897         (struct DBusGSignalClosure): Add interface.
4898         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4899         we can just use the constant data.
4900         (dbus_g_signal_closure_finalize): Don't free signal name.
4901         (signal_emitter_marshaller): Use interface from signal closure.
4902         (export_signals): Only export signals mentioned in introspection
4903         blob.
4904         (dbus_g_connection_register_g_object): Warn if we have no
4905         introspection data for an object.
4906         (funcsig_equal): Remove unused variable.
4907         (dbus_g_object_register_marshaller): Take varargs instead of
4908         list.
4909         (dbus_g_object_register_marshaller_array): New function,
4910         extracted from old dbus_g_object_register_marshaller.
4911
4912         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4913         signals and property data.
4914         (write_quoted_string): New function, extracted from generate_glue.
4915         (generate_glue): Write signals and properties to introspection
4916         blob.
4917
4918         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4919         exported_signals and exported_properties.
4920         (dbus_g_object_register_marshaller): Update prototype.
4921         (dbus_g_object_register_marshaller_array): Prototype.
4922         
4923         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4924
4925         * test/glib/test-service-glib.c: Add new test signals and method
4926         to emit them.
4927
4928         * test/glib/test-service-glib.xml: Add some test signals.
4929
4930         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4931         and my-object-marshal.h
4932         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4933         my-object-marshal.c.
4934         (my-object-marshal.c, my-object-marshal.h): Implement.
4935
4936         * test/glib/.cvsignore: Update.
4937
4938         * doc/TODO: Remove two GLib TODO items fixed by this
4939         patch.
4940
4941 2005-06-16  Colin Walters  <walters@verbum.org>
4942
4943         * doc/TODO: Update for GLib bindings.
4944         
4945 2005-06-16  Colin Walters  <walters@verbum.org>
4946
4947         * glib/dbus-binding-tool-glib.c:
4948         * glib/dbus-gobject.c:
4949         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4950         from Ross Burton, for his GLib bindings work.
4951
4952 2005-06-16  Colin Walters  <walters@verbum.org>
4953
4954         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4955         to iterate instead of walking to G_TYPE_INVALID.
4956
4957         Patch based on a patch from Ryan Gammon.
4958
4959 2005-06-16  Colin Walters  <walters@verbum.org>
4960
4961         * bus/bus.c (bus_context_new): Set parser to NULL
4962         after we unref it (Patch from Chris Boscolo, #2174).
4963         
4964 2005-06-16  Colin Walters  <walters@verbum.org>
4965
4966         * python/dbus_bindings.pyx.in: Import size_t,
4967         __int64_t, __uint64_t, and __signed.
4968
4969         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4970         Define cmsg struct, output it.
4971         (_dbus_read_credentials_unix_socket):
4972         Use cmsg struct.
4973         
4974         Patch from Joe Markus Clarke for FreeBSD support.
4975         
4976 2005-06-16  Colin Walters  <walters@verbum.org>
4977
4978         * tools/dbus-send.c (append_array): Use strtok.
4979         (append_dict): New function.
4980         (type_from_name): New function, extracted from main.
4981         (main): Handle sending dicts.
4982
4983         * tools/dbus-print-message.c (print_iter): Print dict
4984         entries.
4985         
4986 2005-06-16  Colin Walters  <walters@verbum.org>
4987
4988         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4989         values as the empty string (#2948).
4990         
4991 2005-06-16  Colin Walters  <walters@verbum.org>
4992
4993         * dbus/Makefile.am:
4994         * mono/doc/Makefile.am:
4995         * test/glib/Makefile.am:
4996
4997         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4998
4999 2005-06-16  Colin Walters  <walters@verbum.org>
5000
5001         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
5002         header byte order from expected byte order (Patch from Chris Wilson, #3475).
5003
5004         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5005         Increment pointer after swapping fixed array.  Add assertion
5006         for array length.
5007                 
5008 2005-06-15  Colin Walters  <walters@verbum.org>
5009
5010         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5011         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5012         
5013 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5014
5015         * NEWS: Update to 0.34
5016
5017 2005-06-15  David Zeuthen  <davidz@redhat.com>
5018
5019         * configure.in (LT_CURRENT): Revert back to 1 as the library
5020         hasn't changed and we've certainly not committed to protocol
5021         stability yet.  All this does is to break ABI. See commit note
5022         from hp@redhat.com 2005-05-05 for details.
5023         
5024 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5025
5026         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5027         (_dbus_connection_run_builtin_filters): New method
5028         (dbus_connection_dispatch): Run the builtin filters which in turn
5029         runs the peer filter which handles Ping messages.
5030
5031         * doc/TODO: 
5032          - Ping isn't handled: This patch fixes it
5033          
5034          - Add a test case for the Ping message: added TODO item
5035
5036 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5037
5038         * dbus/dbus-message.c:
5039         (dbus_message_has_path): New method
5040         (dbus_message_has_interface): New method
5041         (dbus_message_has_member): New method
5042
5043         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5044         New method
5045
5046         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5047         the keyring directory is private to the user
5048
5049         * doc/TODO:
5050          - The convenience functions in dbus-bus.h should perhaps have
5051          the signatures that they would have if they were autogenerated
5052          stubs. e.g. the acquire service function. We should also evaluate
5053          which of these functions to include, in light of the fact that
5054          GLib/Qt native stubs will probably also exist.: Punted
5055
5056          - add dbus_message_has_path(), maybe has_member/interface:
5057          fixed in this patch
5058
5059          - in dbus-keyring.c, enforce that the keyring dir is not
5060          world readable/writable: Fixed in this patch
5061
5062 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5063
5064         * dbus/dbus-marshal-validate.h: Added a new validation
5065         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5066         out of memory errors when validating signitures
5067
5068         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5069         in places where we previously used DBUS_VALID and a FALSE return 
5070         value to indicate OOM
5071         
5072         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5073         Use a stack to track the number of elements inside containers.  The 
5074         stack values are then used to validate that dict entries have only two
5075         elements within them.
5076         (validate_body_helper): check the reason for failure when validating
5077         varients
5078         
5079         * dbus/dbus-message.c (load_message): use 
5080         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5081         DBUS_VALID and a FALSE return value to indicate OOM
5082
5083         * doc/TODO: remove "- validate dict entry number of fields" as this
5084         patch fixes it
5085
5086 2005-06-14  David Zeuthen  <davidz@redhat.com>
5087
5088         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5089         watches (if applicable) and add new watches
5090
5091         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5092         (main): Setup SIGIO signal handler if using D_NOTIFY
5093
5094         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5095
5096         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5097         (merge_included): Also merge conf_dirs list
5098         (bus_config_parser_unref): Clear conf_dirs list
5099         (include_dir): Add directory to conf_dirs list
5100         (bus_config_parser_get_conf_dirs): New function
5101
5102         * bus/dir-watch.[ch]: New files
5103
5104         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5105
5106         * configure.in: Add checks for D_NOTIFY on Linux
5107
5108 2005-06-14  Colin Walters  <walters@verbum.org>
5109
5110         * glib/dbus-binding-tool-glib.c:
5111         * glib/dbus-gobject.c:
5112         * glib/dbus-gvalue.c: Fix indentation and brace style.
5113         
5114 2005-06-14  Ross Burton <ross@openedhand.com>.
5115
5116         * glib/dbus-glib.h: Make DBusGMethodInvocation
5117         a private structure.  Rearrange prototypes a bit.
5118         
5119         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5120         documentation for first_arg_type.
5121         
5122         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5123         here, add documentation.  Move dbus_g_method_return
5124         and dbus_g_method_return_error into public API
5125         section.
5126
5127 2005-06-14  Colin Walters  <walters@verbum.org>
5128
5129         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5130         Add missing return statements, noticed by Ross Burton.
5131         
5132 2005-06-13  Ross Burton <ross@openedhand.com>.
5133
5134         * glib/dbus-gobject.c: Handle errors on message
5135         demarshalling by sending error message back.
5136         * glib/dbus-gvalue.c: Initialize return variables.
5137
5138 2005-06-13  Colin Walters  <walters@verbum.org>
5139
5140         * glib/Makefile.am: Fix thinko in last patch.
5141
5142 2005-06-13  Colin Walters  <walters@verbum.org>
5143
5144         * glib/Makefile.am: Move dbus-gtype-specialized.c
5145         and dbus-gtype-specialized.h into a _HEADERS variable,
5146         install them.
5147
5148 2005-06-12  Colin Walters  <walters@verbum.org>
5149
5150         Async signals and various bugfixes and testing by
5151         Ross Burton <ross@openedhand.com>.
5152
5153         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5154         (dbus_gvalue_genmarshal_name_from_type)
5155         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5156         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5157         (dbus_g_value_types_init, dbus_gtype_from_signature)
5158         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5159         (dbus_gtypes_from_arg_signature): New function prototypes.
5160         (dbus_gvalue_demarshal): Take context and error arguments.
5161         (dbus_gvalue_demarshal_variant): New function.
5162         (dbus_gvalue_demarshal_message): New function.
5163         (dbus_gvalue_store): Delete.
5164
5165         * glib/dbus-gvalue.c:
5166
5167         File has been almost entirely rewritten; now we special-case
5168         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5169         hash tables correctly, etc.  Full support for recursive values
5170         is not yet complete.
5171
5172         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5173         argument of signal to G_TYPE_POINTER since we now pass a
5174         structure.
5175         (lookup_g_marshaller): Delete in favor of
5176         _dbus_gobject_lookup_marshaller.
5177         (marshal_dbus_message_to_g_marshaller): Use
5178         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5179         to handle remote signal callbacks.
5180         (dbus_g_proxy_new_from_proxy): New function; creates a new
5181         DBusGProxy by copying an existing one.
5182         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5183         (dbus_g_proxy_get_path): New functions.
5184         (dbus_g_proxy_marshal_args_to_message): New function;
5185         factored out of existing code.
5186         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5187         from a varargs array.
5188         (dbus_g_proxy_begin_call_internal): New function.
5189         (dbus_g_proxy_end_call_internal): New function.
5190         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5191         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5192         after collecting args into value array.
5193         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5194         invoke dbus_g_proxy_end_call_internal.
5195         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5196         end_call_internal.
5197         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5198         types.
5199         (array_free_all): New function.
5200         (dbus_g_proxy_add_signal): Take GTypes.
5201
5202         * glib/dbus-gobject.h:
5203         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5204         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5205         Prototype.
5206
5207         * glib/dbus-gobject.c: Add a global marshal_table hash which
5208         stores mappings from type signatures to marshallers.  Change lots
5209         of invocations of dbus_gtype_to_dbus_type to
5210         dbus_gtype_to_signature.
5211         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5212         (introspect_signals): Fix test for query.return_type.
5213         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5214         (invoke_object_method): Many changes.  Handle asynchronous
5215         invocations.  Convert arguments with
5216         dbus_gvalue_demarshal_message.  Handle errors.  Use
5217         DBusSignatureIter instead of strlen on args. Handle all arguments
5218         generically.  Special-case variants.
5219         (dbus_g_method_return, dbus_g_method_return_error): New function.
5220         (DBusGSignalClosure): New structure, closes over signal
5221         information.
5222         (dbus_g_signal_closure_new): New function.
5223         (dbus_g_signal_closure_finalize): New function.
5224         (signal_emitter_marshaller): New function; is special marshaller
5225         which emits signals on bus.
5226         (export_signals): New function; introspects object signals and
5227         connects to them.
5228         (dbus_g_object_type_install_info): Take GType instead of
5229         GObjectClass.
5230         (dbus_g_connection_register_g_object): Invoke export_signals.
5231         (dbus_g_connection_lookup_g_object): New function.
5232         (DBusGFuncSignature) New structure; used for mapping type
5233         signatures to marshallers.
5234         (funcsig_hash): New function; hashes DBusGFuncSignature.
5235         (funcsig_equal): New function; compares DBusGFuncSignature.
5236         (_dbus_gobject_lookup_marshaller): New function.
5237         (dbus_g_object_register_marshaller): New function; used to
5238         register a marshaller at runtime for a particular signature.
5239
5240         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5241
5242         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5243         which notes a server method implementation should be
5244         asynchronous.
5245
5246         * glib/dbus-binding-tool-glib.c
5247         (dbus_binding_tool_output_glib_server): Call
5248         dbus_g_value_types_init.
5249         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5250         variants specially.
5251         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5252         of a lookup function.
5253         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5254         (write_untyped_out_args): New method; write output arguments.
5255         (write_formal_declarations_for_direction): Function for
5256         writing prototypes.
5257         (write_formal_parameters_for_direction): Function for
5258         writing implementations.
5259         (write_typed_args_for_direction): Function for writing
5260         arguments prefixed with GTypes.
5261         (write_async_method_client): Write out async version
5262         of method.
5263
5264         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5265         (dbus_g_type_get_marshal_name): Move mapping from GType
5266         to marshal name into here.
5267         (dbus_g_type_get_c_name): Move into here.
5268         (compute_marshaller): Convert signature to type with
5269         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5270         (compute_marshaller_name): Ditto.
5271         (compute_marshaller): Handle async signal annotations.
5272         (gather_marshallers): Return if we don't have a known
5273         prefix.
5274         (generate_glue): Collect introspection blob here, and
5275         write all of the blob at the end.  This allows an object
5276         with multiple interfaces to work.
5277         Mark async methods in introspection blob.
5278
5279         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5280         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5281         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5282
5283         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5284         avoids people accidentally using DBUS_TYPE_* which should
5285         not be necessary anymore.
5286         Do include dbus-gtype-specialized.h, which are utilities
5287         for GLib container types.
5288         Add various #defines for types such as
5289         DBUS_TYPE_G_BOOLEAN_ARRAY.
5290         (DBusGValueIterator, DBusGValue): Define, not fully used
5291         yet.
5292         (dbus_g_value_get_g_type): Type for recursive value.
5293         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5294         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5295         (dbus_g_value_free): Prototypes.
5296         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5297         (dbus_g_proxy_set_interface): Prototype.
5298         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5299         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5300         types.
5301         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5302         Accessors.
5303         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5304         doing async invocations.
5305         (dbus_g_method_return, dbus_g_method_return_error):
5306         Prototypes.
5307         * doc/dbus-tutorial.xml: Update GLib section.
5308         
5309         * tools/dbus-viewer.c (load_child_nodes): Update
5310         for new invocation type of dbus_g_proxy_end_call.
5311         (load_from_service_thread_func): Ditto.
5312
5313         * tools/print-introspect.c (main): Ditto.
5314
5315         * tools/dbus-names-model.c (have_names_notify)
5316         (names_model_reload, names_model_set_connection)
5317         Use GTypes.
5318
5319         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5320         needed since Python bindings use GLib bindings.
5321
5322         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5323         Add --prefix argument.
5324
5325         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5326         unneeded --ignore-unsupported arg.
5327         
5328         * test/glib/test-service-glib.c: 
5329         * test/glib/test-service-glib.xml:
5330         * test/glib/test-dbus-glib.c: Add many more tests.
5331
5332 2005-06-06  David Zeuthen  <davidz@redhat.com>
5333
5334         * doc/TODO: Add item about need to remove deprecated functions.
5335
5336         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5337
5338         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5339         to repair the ABI which was broken with the last commit.
5340
5341 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5342
5343         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5344         (dbus_connection_disconnect): renamed to dbus_connection_close 
5345         for API symmetry with dbus_connection_open
5346         (_dbus_connection_open_internal): 
5347         s/dbus_connection_disconnect/dbus_connection_close
5348
5349         * dbus/dbus-bus.c (dbus_bus_get):
5350         s/dbus_connection_disconnect/dbus_connection_close
5351
5352         * bus/connection.c (bus_connections_unref, 
5353         bus_connections_setup_connection, bus_connections_expire_incomplete):
5354         s/dbus_connection_disconnect/dbus_connection_close
5355
5356         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5357         kill_client_connection_unchecked, check_hello_connection):
5358         s/dbus_connection_disconnect/dbus_connection_close
5359
5360         * bus/bus.c (new_connection_callback):
5361         s/dbus_connection_disconnect/dbus_connection_close
5362
5363         * tools/dbus-send.c (main):
5364         s/dbus_connection_disconnect/dbus_connection_close
5365
5366         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5367         s/dbus_connection_disconnect/dbus_connection_close
5368         
5369         * test/test-service.c (path_message_func, filter_func):
5370         s/dbus_connection_disconnect/dbus_connection_close
5371         
5372         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5373         
5374 2005-05-25  Colin Walters  <walters@verbum.org>
5375
5376         * dbus/dbus-protocol.h: Move various bus service #defines such
5377           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5378           dbus/dbus-shared.h.
5379         * dbus/dbus-shared.h: Various defines moved here.
5380         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5381
5382 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5383
5384         * python/__init__.py: Python bindings deserve a minor version
5385         update.  Upped to (0, 40, 2)
5386
5387 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5388
5389         * python/decorators.py: add explicitly_pass_message decorator
5390         for passing in the dbus message as keyword for edge case signal
5391         handling
5392
5393         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5394         to conform with what dbus expects for match rules
5395         (SignalMatchRule.execute): add the dbus message as a keyword
5396         if the signal handler has requested it
5397
5398         * python/examples/example/signal-recipient.py: added some more
5399         examples on how to hook up to signals
5400
5401 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5402
5403         * python/decorators.py: import dbus_bindings
5404
5405         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5406         SignalMatchNode): new classes that implement wildcard signal
5407         callback matching using a tree lookup. Heavily modified from a
5408         patch sent by Celso Pinto (fd.o bug #3241)
5409
5410         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5411         use new match classes to handle signals.
5412
5413 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5414         
5415         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5416
5417 2005-05-18  Havoc Pennington  <hp@redhat.com>
5418
5419         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5420         gettext. Not really worth requiring yet perhaps, but any
5421         production quality 1.0 would require it so we should go ahead and
5422         get things set up. We do have a couple token calls to
5423         bindtextdomain in the code already.
5424
5425 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5426
5427         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5428         when using recursive g_main_loops
5429
5430         * python/_dbus.py (class Bus): add the ProxyObjectClass
5431         alias for ProxyObject to make it easier for the Twisted 
5432         networking framework to integrate dbus.
5433
5434         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5435         alias for ProxyMethod to make it easier for the Twisted 
5436         networking framework to integrate dbus. 
5437
5438 2005-05-11  Ross Burton  <ross@openedhand.com>
5439
5440         * glib/dbus-glib-tool.c: Add --prefix argument.
5441         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5442         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5443         Add prefix argument.
5444         (generate_glue): Pass prefix argument down.
5445         (dbus_binding_tool_output_glib_server): Pass prefix to
5446         glib-genmarshal.
5447         
5448 2005-05-11  Colin Walters  <walters@verbum.org>
5449
5450         * tools/dbus-send.c (append_array): New function.
5451         (append_arg): Broken out from main.
5452         (main): Add cheesy hack to send arrays and variants.
5453         (usage): Update.
5454         * tools/dbus-print-message.c (print_iter): Broken out
5455         from main.
5456
5457 2005-05-11  Colin Walters  <walters@verbum.org>
5458
5459         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5460         New function, returns signature string for signature iter.
5461         * dbus/dbus-signature.h: Prototype it.
5462         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5463         New function, returns signature string for message iter.
5464         (dbus_message_iter_get_array_len): New function, returns
5465         length of array.
5466         (dbus_message_iter_get_fixed_array): Fix assertion; this
5467         function should be used when the iter is pointing to the
5468         contents of an array
5469         * dbus/dbus-message.h: Prototypes.
5470         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5471         New function; returns length of an array.
5472         * dbus/dbus-marshal-recursive.h: Prototype it.
5473         
5474 2005-05-11  Colin Walters  <walters@verbum.org>
5475
5476         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5477         compilation error.
5478         
5479 2005-05-08  Havoc Pennington  <hp@redhat.com>
5480
5481         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5482         daemon's pid, not the parent's pid, to the file descriptor.
5483         Reported by Taj Morton.
5484
5485 2005-05-05  Havoc Pennington  <hp@redhat.com>
5486
5487         * configure.in (LT_*): add notes on how the libtool versioning
5488         works to save thinking. Increment soname to indicate protocol
5489         breakage (though really the library interface hasn't changed I
5490         guess)
5491
5492         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5493         verify the GUID received from server matches what we were
5494         expecting, if we had an expectation
5495
5496         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5497         (_dbus_auth_get_guid_from_server): new function
5498         (send_begin): parse the OK args
5499
5500         * doc/dbus-specification.xml: add GUID to the auth protocol
5501
5502 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5503
5504         * Fix my name in previous changelog ;)
5505
5506         * python/proxies.py (ProxyObject.__getattr__): add further patch
5507         from Anthony Baxter to throw an AttributeError when python 
5508         __special__ functions are called instead of marshling them over 
5509         the bus (Bug#1685 comment 3).
5510
5511 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5512
5513         * python/Makefile.am: changed to use pyexecdir for the binding
5514         shared libraries (Bug#2494)
5515
5516         * python/exceptions.py: bring exceptions over from the bindings
5517         so they can be used in applications (Bug#2036)
5518         Make all exceptions derive from DBusException
5519
5520         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5521         of classes so that print obj doesn't throw an exception (Bug #1685)
5522
5523 2005-05-03  Ross Burton  <ross@openedhand.com>
5524
5525         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5526         Return if we get an error during registration.  Set up a
5527         weak reference on object to unregister if object is destroyed.
5528         (unregister_gobject): New function.
5529         
5530 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5531
5532         * python/dbus_bindings.pyx.in: 
5533         - added new type classes for hinting to the marashaler what type 
5534         to send over the wire
5535         - added int16 and uint16 marshalers
5536         - Fixed a bug in the type constants that caused int32 to go out
5537         as uint16 over the wire
5538         * python/dbus.py: split up into different files and renamed _dbus.py
5539         * python/__init__.py, python/_util.py, python/decorators.py, 
5540         python/exceptions.py, python/proxies.py, python/services.py,
5541         python/types.py: new files split off from dbus.py
5542         * python/Makefile.am: Add new files, remove dbus.py and 
5543         install all python files to <python module dir>/dbus
5544         * python/examples/*: Added #!/usr/bin/env python to the top of
5545         every example.  Patch provided by Tatavarty Kalyan
5546
5547 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5548
5549         * NEWS: Update to 0.33
5550
5551 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5552
5553         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5554         method for doing async calls
5555         (_pending_call_notification): New C function for handling pendning call
5556         callbacks
5557         (set_notify): New method for setting pending call notification
5558         
5559         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5560         Async capabilities added to remote method calls
5561         (Sender): class removed
5562         (RemoteService): class removed
5563         (ObjectTree): class removed for now
5564         (RemoteObject): Renamed to ProxyObject
5565         (RemoteMethod): Renamed to ProxyMethod
5566         (method): Decorator added for decorating python methods as dbus methods
5567         (signal): Decorator added for decorating python methods as signal emitters
5568         (ObjectType): Metaclass added for generating introspection data and the
5569         method callback vtable
5570         (Interface): Wrapper class added to wrap objects in a dbus interface
5571         (Object): Uses ObjectType as its metaclass and exports Introspect
5572         of the org.freedesktop.DBus.Introspectable interface
5573         (ValidationException, UnknownMethodException): new exceptions
5574
5575         * python/examples/*: Modified to fit with the new bindings
5576
5577 2005-04-23  Havoc Pennington  <hp@redhat.com>
5578
5579         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5580         reported by Tony Houghton
5581
5582         * test/test-service.c (main): test
5583         dbus_connection_get_object_path_data()
5584
5585         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5586         the exact_match
5587         (_dbus_object_tree_get_user_data_unlocked): new function used by
5588         dbus_connection_get_object_path_data()
5589         (do_register): add assertion test for get_user_data_unlocked
5590         (object_tree_test_iteration): more tests
5591
5592         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5593         new function from Dan Reed to let you get the user data from 
5594         dbus_connection_register_object_path()
5595
5596 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5597
5598         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5599         in numerous places that did not account for the NULL terminator
5600         (signature_from_seed): changed the manual string copy loop to 
5601         just use strcpy instead
5602         make check should now pass
5603
5604 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5605
5606         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5607         so that it allows messages that are not signals to pass in 
5608         NULL as the interface.
5609
5610 2005-04-18  David Zeuthen  <davidz@redhat.com>
5611
5612         * glib/dbus-gmain.c (io_handler_destroy_source): 
5613         (timeout_handler_destroy_source, connection_setup_free): 
5614         Also unref the source to avoid memory leaks.
5615
5616 2005-04-13  David Zeuthen  <davidz@redhat.com>
5617
5618         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5619         more reasonable, yet still totally arbitrary, value :-). 
5620
5621 2005-04-13  David Zeuthen  <davidz@redhat.com>
5622
5623         * doc/TODO: Added an "important for 1.0" item about selinux
5624         allow/deny messages
5625
5626 2005-04-13  David Zeuthen  <davidz@redhat.com>
5627
5628         * bus/selinux.c: Add c-file-style to top of file
5629         (log_audit_callback): Don't free the data here anymore
5630         (bus_selinux_check): Don't take spid and tpid since appending
5631         that to auxdata may OOM.
5632         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5633         to the caller if we are OOM by taking an error object.
5634         (bus_selinux_allows_send): -do-
5635
5636         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5637         and bus_selinux_allows_send
5638
5639         * bus/bus.c (bus_context_check_security_policy): Pass error and
5640         pass on OOM thrown by bus_selinux_allows_send()
5641
5642         * bus/services.c (bus_registry_acquire_service): Pass error and
5643         pass on OOM thrown by bus_selinux_allows_acquire_service()
5644
5645 2005-04-13  Havoc Pennington  <hp@redhat.com>
5646
5647         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5648         message at a time to avoid monopolizing the main loop, bug 
5649         #2953 from Benjamin Otte
5650
5651 2005-04-09  Havoc Pennington  <hp@redhat.com>
5652
5653         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5654         possible overlap, fix from Daniel Reed
5655         (fixup_alignment): fix signedness warnings
5656         (_dbus_string_append_unichar): ditto
5657
5658 2005-04-09  Havoc Pennington  <hp@redhat.com>
5659
5660         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5661
5662         * glib/dbus-glib-tool.c (main): fix warning
5663
5664         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5665
5666         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5667         add a new function that can be used in simple applications that
5668         don't have a main loop and are willing to block
5669
5670 2005-04-05  David Zeuthen  <davidz@redhat.com>
5671
5672         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5673
5674         * glib/dbus-gmain.c:
5675         (io_handler_destroy_source): Remove from list of IO handlers
5676         of the ConnectionSetup object
5677         (timeout_handler_destroy_source): -do- for timeout handlers
5678         (io_handler_source_finalized): Don't remove from list since
5679         we now do that in io_handler_destroy_source(). Renamed from
5680         io_handler_source_destroyed
5681         (timeout_handler_source_destroyed): -do- for timeout handlers
5682         (connection_setup_free): It is now safe to iterate over all
5683         IO and timeout handlers as the _destroy_source removes them
5684         from the list synchronously
5685
5686 2005-03-30  Havoc Pennington  <hp@redhat.com>
5687
5688         * configure.in: change check to gtk 2.4
5689
5690         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5691         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5692         to 2.4
5693
5694 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5695
5696         * News: Update 0.32
5697
5698         * HACKING: Fixed realease instructions.  configure.in should be updated to
5699           the next release by the person who made the last release.
5700
5701 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5702
5703         * python/lvalue_cast_post_process.py - removed.  Patch has been
5704           submitted to Pyrex maintainers that fixes gcc4.0 errors
5705
5706         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5707
5708 2005-03-24  Daniel Reed  <n@ml.org>
5709
5710         * tools/Makefile.am: Make print-introspect and
5711         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5712
5713 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5714
5715         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5716
5717         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5718           had in Red Hat packages for a while but for some reason never 
5719           got merged upstream
5720           (_dbus_is_a_number): New checks if a string
5721           can be converted to a number and does the conversion if it can
5722           (_dbus_user_database_lookup): Add check to see if the given username
5723           is a udi.  This allows udi's to be used instead of usernames in the
5724           config file.
5725           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5726           is a gdi.  This allows gdi's to be used instead of groupnames in the
5727           config file.
5728
5729 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5730
5731         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5732           code so that it compiles with gcc4.0
5733
5734         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5735           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5736           results back to dbus_binding.c
5737
5738 2005-03-20  Colin Walters  <walters@verbum.org>
5739
5740         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5741
5742         * configure.in: Require GTK+ 2.6.
5743         
5744 2005-03-20  Colin Walters  <walters@verbum.org>
5745
5746         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5747
5748 2005-03-17  Tom Parker  <palfrey@tevp.net>
5749
5750         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5751         print DBUS_UID_UNSET; instead print passed username.  Also
5752         be sure to actually use gid looked up in cache.
5753         
5754         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5755         for DBUS_GID_UNSET and groupname.
5756
5757 2005-03-17  Colin Walters  <walters@verbum.org>
5758
5759         * bus/print-introspect.c: Move to tools/.
5760         * bus/run-with-tmp-session-bus.sh: Ditto.
5761         
5762         * glib/Makefile.am (dbus-glib-bindings.h): Move
5763         generation to tools/Makefile.am.
5764
5765         * test/glib/run-test.sh: Update to handle move
5766         of run-with-tmp-session-bus.sh.
5767
5768         * test/glib/test-service-glib.c: Update to handle
5769         move of dbus-glib-bindings.h.
5770
5771         * tools/print-introspect.c: Moved here
5772         from bus/, and ported to GLib bindings.
5773
5774         * tools/run-with-tmp-session-bus.sh: Moved here
5775         from bus/.
5776
5777         * tools/Makefile.am: Generate dbus-glib-bindings.h
5778         and dbus-bus-introspect.xml here.
5779
5780         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5781         Update.
5782
5783 2005-03-17  Colin Walters  <walters@verbum.org>
5784
5785         * bus/driver.c (write_args_for_direction): Use
5786         _dbus_string_get_const_data to retrieve string;
5787         _dbus_string_get_const_data_len doesn't actually return
5788         a NULL-terminated substring.
5789
5790         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5791         (main): Change to use org_freedesktop_DBus_request_name
5792         instead of using g_proxy_begin_call/end_call.
5793
5794 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5795
5796         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5797         generating the finalizer.  Fixes from Ben Maurer.
5798
5799 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5800
5801         * mono/BusDriver.cs: Update method names: ListServices
5802         becomes ListNames; GetOwner becomes GetNameOwner.
5803
5804         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5805         onto the eval stack when removing the delegate.
5806
5807 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5808
5809         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5810         LT_CURRENT.  Set it to the autoconf variable.
5811                                                                                 
5812         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5813         classes that disconnects the signal handler delegate from the
5814         service object.  Fixes a big leak of proxy objects on the
5815         client side of things.  Patch from Ben Maurer
5816         <bmaurer@ximian.com>
5817
5818 2005-03-12  Colin Walters  <walters@verbum.org>
5819
5820         * bus/driver.c (write_args_for_direction): New function,
5821         parses a type signature into arguments and outputs to
5822         XML.
5823         (bus_driver_handle_introspect): Use it instead of
5824         hardcoding XML for certain signatures.
5825         
5826         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5827         dependency on dbus-daemon.
5828
5829         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5830         argument, pass it to dbus_binding_tool_output_glib_client.
5831
5832         * glib/dbus-binding-tool-glib.c
5833         (generate_client_glue): Protect against multiple inclusion.
5834         (dbus_binding_tool_output_glib_client): Add
5835         G_BEGIN_DECLS/G_END_DECLS.
5836
5837         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5838         Change to just take iface prefix directly.
5839         (write_formal_parameters): Clarify error message.
5840         (check_supported_parameters): New function; checks to see type
5841         signatures of method parameters are supported.
5842         (generate_client_glue): Handle ignore_unsupported flag.
5843         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5844         parameter.
5845
5846         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5847         --ignore-unsupported by default until glib bindings
5848         support arrays.
5849
5850 2005-03-11  Colin Walters  <walters@verbum.org>
5851
5852         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5853         install it.
5854
5855         * bus/print-introspect.c: New file; prints introspection
5856         data for a given name and object path.
5857
5858         * bus/run-with-tmp-session-bus.sh: New file, refactored
5859         from test/glib/run-test.sh.  Creates a temporary session
5860         bus and runs another program.
5861
5862         * test/glib/run-test.sh: Refactor to invoke
5863         run-with-tmp-session-bus.sh.
5864
5865         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5866         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5867         macros instead of hardcoding.
5868
5869         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5870
5871 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5872
5873         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5874         this unref; it doesn't match up evenly in some codepaths.
5875         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5876         this evenly matches with the ref near the top of this function.
5877
5878 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5879
5880         * dbus/dbus-object-tree.c
5881         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5882         and we try to unregister a path that's not registered, still go
5883         through the process of unlocking and don't just return.
5884
5885 2005-03-09  Colin Walters  <walters@verbum.org>
5886
5887         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5888         to this are generated for client-side wrappers.  Invokes a
5889         D-BUS method and returns reply values.  
5890
5891         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5892         function; writes signature string for argument direction.
5893         (write_args_for_direction): Change to pass input values directly
5894         instead of via address, and fix indentation.
5895         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5896         make generated wrappers inlineable.
5897
5898         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5899         note about using dbus_type_is_fixed.
5900
5901         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5902         dbus/dbus-signature.c as dbus_type_is_fixed.
5903
5904         All callers updated.
5905
5906         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5907         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5908
5909         * dbus/dbus-signature.h: Prototype.
5910
5911         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5912         error printf code.
5913
5914         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5915         appropriate instead of just freeing it.
5916         (main): Free returned strings using g_free.
5917
5918         * test/glib/Makefile.am (test-service-glib-glue.h)
5919         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5920
5921         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5922         simply maps a simple D-BUS type to GType.
5923         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5924         GType.
5925         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5926         initialize the value with it.
5927         (dbus_gvalue_binding_type_from_type): Unused, delete.
5928         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5929         various types instead of unmarshalling to value data directly.
5930         Remove can_convert boolean.
5931         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5932         returning directly instead of using can_convert boolean.
5933         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5934         Stores a GValue in a pointer to a value of its corresponding C
5935         type.
5936
5937         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5938         add dbus_gvalue_store.
5939
5940 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5941
5942         Fix a bunch of lifecycle and memory management problems
5943         in the mono bindings.
5944
5945         * mono/Arguments.cs (Arguments): Implement IDisposable
5946
5947         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5948         strictly a static class.
5949
5950         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5951         delegates into this file.
5952         (Connection): Implement IDisposable.
5953         (Dispose): Disconnect the connection and set the raw connection
5954         pointer to IntPtr.Zero.
5955         (~Connection): Call Dispose().
5956         (RegisterObjectPath): Added.  Manages the registration of object
5957         paths so we can cleanly disconnect them at dispose/finalize time.
5958         (UnregisterObjectPath): Ditto.
5959         (set_RawConnection): Unregister all of the object paths when
5960         changing the underlying DBusConnection.  Add them back onto the
5961         new connection, if any.
5962
5963         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5964         more unmanaged resources anymore, so it's not necessary.  Move all
5965         the DBusObjectPathVTable stuff out of here.
5966         (Handler): Save references to our delegates so that they don't get
5967         finalized.  Call Connection.RegisterObjectPath() instead of
5968         dbus_connection_register_object_path() directly.
5969         (Message_Called): Dispose the message after we're finished with
5970         it.
5971
5972         * mono/Message.cs (Message): Implement IDisposable.
5973         (Dispose): Dispose the Arguments, and set the RawMessage to
5974         IntPtr.Zero.
5975         (SendWithReplyAndBlock): We own the ref to the reply that comes
5976         back from dbus_connection_send_with_reply_and_block() so add a
5977         comment about that and unref it after we've constructed a managed
5978         MethodReturn class around it.  Fixes a big, big leak.
5979
5980         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5981         method.
5982         (BuildSignalHandler): After we've sent the Signal message, dispose
5983         of it.
5984         (BuildMethod): Dispose of the method call and reply messages after
5985         we've sent the message and extracted the data we want from the
5986         reply.
5987
5988         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5989         anymore.
5990         (Service_FilterCalled): Dispose of the message after we're
5991         finished with it.
5992
5993 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5994
5995         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5996         After we attach our pending call to the connection, unref
5997         it.  Fixes a leak.
5998  
5999         * mono/Connection.cs (set_RawConnection): Disconnect our
6000         filter and match callbacks from the old connection and
6001         reconnect them to the new connection, if any.
6002
6003         * mono/DBusType/Array.cs: "Code" is a static member, so
6004         don't use "this" to refer to it.  Fix for stricter checking
6005         in Mono 1.1.4.
6006  
6007         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6008         object path that we pass into unmanaged code.
6009  
6010         * mono/DBusType/String.cs (Append): Don't leak the string
6011         that we pass into unmanged code.
6012
6013 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6014         * NEWS: Update for 0.31
6015
6016         * configure.in: Release 0.31
6017         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6018
6019         * qt/Makefile.am: fixed build
6020
6021         * dbus/Makefile.am: soname bump for libdbus
6022
6023         * glib/Makefile.am: soname bump for libdbus-glib
6024
6025 2005-03-05  Havoc Pennington  <hp@redhat.com>
6026
6027         * dbus/dbus-sysdeps.c:
6028         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6029         value
6030         (_dbus_generate_random_bytes_buffer): fix return value
6031
6032         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6033         checks actually work, from Tom Parker <fdo@tevp.net>
6034
6035 2005-03-01  Colin Walters  <walters@verbum.org>
6036
6037         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6038         functions copied from dbus-glib-tool.c.
6039         (main): Convert lots of error code to use them.
6040         Also add some testing for introspection bits.
6041
6042 2005-03-01  Colin Walters  <walters@verbum.org>
6043         
6044         * doc/TODO: Remove introspection signature TODO.
6045
6046 2005-02-27  Colin Walters  <walters@verbum.org>
6047
6048         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6049         Change return value to const char * instead of int so we can do
6050         full signatures.
6051         (struct PropertyInfo, struct ArgInfo): Store char *.
6052         (property_info_new, arg_info_new): Update parameters, strdup.
6053         (property_info_unref, arg_info_unref): Free.
6054
6055         * glib/dbus-gidl.h: Update prototypes.
6056
6057         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6058         (validate_signature): New function, just validates signature and
6059         sets GError.
6060         (parse_property, parse_arg): Invoke validate_signature.  Store
6061         signature instead of just type code.
6062
6063         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6064         function to return a primary type for a signature, dropping
6065         information about types in container types.
6066         (dbus_gvalue_genmarshal_name_from_type)
6067         (dbus_gvalue_binding_type_from_type)
6068         (dbus_gvalue_ctype_from_type): Update to take full signature
6069          instead of type code.
6070         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6071
6072         * glib/dbus-gvalue.h: Update prototypes for above.
6073
6074         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6075         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6076         (introspect_properties, introspect_signals, write_interface):
6077         Update to handle signatures, and remove usage of
6078         _dbus_gutils_type_to_string.
6079         (handle_introspect): Print out type codes instead of e.g. "string"
6080         in hardcoded introspection XML; also use x_AS_STRING constants
6081         instead of hardcoding in string.
6082
6083         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6084         to string.  Remove usage of _dbus_gutils_type_to_string.
6085
6086         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6087
6088         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6089         deletion.
6090         
6091         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6092         (compute_marshaller_name, generate_glue): Handle signature change
6093         to string.
6094         (write_formal_parameters, write_args_for_direction): Ditto, and
6095         remove FIXME.
6096
6097         * tools/dbus-tree-view.c (type_to_string): Delete.
6098         (info_set_func_text): Update to print full signatures.
6099
6100         * test/glib/test-service-glib.xml: Change types to new
6101         introspection format.
6102
6103 2005-02-26  Havoc Pennington  <hp@redhat.com>
6104
6105         * doc/TODO: remove the "guid" item
6106
6107         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6108         (with_bus_thread_func): use open_private
6109
6110         * dbus/dbus-connection.c (dbus_connection_open_private): new
6111         function that works like the old dbus_connection_open()
6112         (dbus_connection_open): now returns an existing connection if
6113         possible
6114
6115         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6116         through the GUID to the transport
6117
6118         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6119         GUID in hex-encoded form.
6120
6121         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6122         pass GUID argument in to the transport
6123
6124         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6125         guid argument
6126
6127         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6128
6129         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6130
6131 2005-02-25  Havoc Pennington  <hp@redhat.com>
6132
6133         * doc/dbus-specification.xml: document the GUID thing
6134
6135         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6136         globally unique ID for the server, and put a "guid=hexencoded"
6137         field in the address
6138
6139         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6140
6141         * dbus/dbus-message.c: ditto
6142
6143         * dbus/dbus-dataslot.c: ditto
6144
6145         * dbus/dbus-list.c: ditto
6146
6147         * dbus/dbus-internals.h: wait, just include
6148         dbus-threads-internal.h here
6149         
6150         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6151         use in main library
6152
6153         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6154
6155 2005-02-24  Colin Walters  <walters@verbum.org>
6156
6157         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6158
6159 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6160
6161         * glib/Makefile.am: added dbus-gobject.h to sources list
6162         so distcheck doesn't fail
6163         
6164 2005-02-24  Havoc Pennington  <hp@redhat.com>
6165
6166         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6167         you must disconnect before unref, since locking and other things
6168         are screwed up otherwise. Fix assorted other locking stuff.
6169
6170         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6171         fix compilation
6172
6173         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6174         into a private header and don't export from the library
6175
6176         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6177
6178 2005-02-24  Colin Walters  <walters@verbum.org>
6179         
6180         * dbus/dbus-signature.c: New file; implements various functions
6181         related to type signatures.  Includes an interator for parsing,
6182         validation functions.
6183         (dbus_type_is_basic): Moved here from
6184         dbus-marshal-basic.c:_dbus_type_is_basic.
6185         (dbus_type_is_container): Moved here from
6186         dbus-marshal-basic.c:_dbus_type_is_container.
6187
6188         All callers of _dbus_type_is_container and _dbus_type_is_basic
6189         updated, and include dbus-signature.h.
6190
6191         * dbus/dbus-signature.h: New file; prototypes for the above.
6192
6193         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6194         dbus-signature.h.
6195
6196         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6197         function factored out of _dbus_first_type_in_signature.
6198         (_dbus_first_type_in_signature_c_str): New function; returns first
6199         type code for a type signature character.
6200
6201         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6202         handle function moves.
6203
6204         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6205
6206         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6207         function; skips to next complete type in type signature.
6208         Implemented using previous skip_one_complete_type.  Now
6209         skip_one_complete_type just delegates to
6210         _dbus_type_signature_next.
6211
6212         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6213         to dbus-signature.c
6214         (_dbus_type_is_container): Ditto.
6215
6216         * doc/dbus-specification.xml: Update introspection sample to
6217         use real type signatures.
6218
6219         * dbus/dbus-test.h: Prototype signature test.
6220
6221         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6222         signature tests.
6223
6224         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6225
6226 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6227
6228         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6229         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6230
6231 2005-02-21  Colin Walters  <walters@verbum.org>
6232
6233         * dbus/dbus-test-main.c (main): Take optional specific test
6234         argument.
6235
6236         * dbus/dbus-test.c (run_test): New function, runs a test function
6237         with no data directory.
6238         (run_data_test): Like above, but takes data directory.
6239         (dbus_internal_do_not_use_run_tests): Take
6240         specific test argument.  Replace lots of cut n' paste code
6241         with run_test and run_data_test.
6242
6243         * dbus/dbus-test.h: Update prototype for
6244         dbus_internal_do_not_use_run_tests.
6245
6246 2005-02-20  Havoc Pennington  <hp@redhat.com>
6247
6248         Fix bugs reported by Daniel P. Berrange
6249         
6250         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6251         (protected_change_watch): new function
6252         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6253         (_dbus_server_add_watch): change to work like the
6254         dbus-connection.c equivalents; like those, probably kind of
6255         busted, but should at least mostly work for now
6256         (dbus_server_disconnect): drop the lock if we were already
6257         disconnected, patch from Daniel P. Berrange
6258
6259         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6260         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6261         same stuff
6262
6263         * doc/TODO: todo about unscrewing this mess
6264
6265 2005-02-19  Colin Walters  <walters@verbum.org>
6266
6267         * glib/dbus-binding-tool-glib.c
6268         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6269
6270         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6271         as errno.h and sys/stat.h.
6272         (lose): New function, prints error with
6273         newline and exits.
6274         (lose_gerror): Similar, but takes GError for message.
6275         (main): Add --output argument to specify output file to write to,
6276         instead of always printing to stdout.  In this mode, determine
6277         timestamps on source files to see whether any are newer than the
6278         target file.  If not, exit.  Also convert a number of error
6279         messages to use lose (since it's shorter), and switch to using
6280         g_io_channel_shutdown.
6281
6282 2005-02-19  Havoc Pennington  <hp@redhat.com>
6283
6284         * glib/dbus-gobject.c
6285         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6286
6287         * glib/dbus-glib.c: fix doxygen warnings
6288
6289         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6290         is found on an <arg>
6291
6292 2005-02-17  Colin Walters  <walters@verbum.org>
6293
6294         * glib/dbus-gobject.h: Don't export
6295         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6296         
6297         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6298         (invoke_object_method): Handle it.
6299
6300         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6301         Handle rename.
6302         
6303 2005-02-17  Colin Walters  <walters@verbum.org>
6304
6305         * bus/.cvsignore, doc/.cvsignore
6306         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6307         Update.
6308
6309 2005-02-17  Colin Walters  <walters@verbum.org>
6310         
6311         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6312         Rename to DBUS_SERVICE_DBUS.
6313         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6314         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6315         Change the value from "org.freedesktop.Local"
6316         to "org.freedesktop.DBus.Local".
6317         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6318         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6319         DBUS_INTERFACE_INTROSPECTABLE.
6320         Change the value from "org.freedesktop.Introspectable"
6321         to "org.freedesktop.DBus.Introspectable".
6322         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6323         DBUS_INTERFACE_PROPERTIES.
6324         Change the value from "org.freedesktop.Properties"
6325         to "org.freedesktop.DBus.Properties".
6326         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6327         DBUS_INTERFACE_PEER.
6328         Change the value from "org.freedesktop.Peer"
6329         to "org.freedesktop.DBus.Peer".
6330         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6331         DBUS_INTERFACE_LOCAL.
6332         Change the value from "org.freedesktop.Local"
6333         to "org.freedesktop.DBus.Local".
6334
6335         All other users of those constants have been changed.
6336
6337         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6338
6339         * glib/dbus-gobject.c (handle_introspect): Use constants.
6340
6341         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6342
6343 2005-02-17  Colin Walters  <walters@verbum.org>
6344
6345         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6346         (parse_node, parse_interface, parse_method, parse_signal)
6347         (parse_property, parse_annotation): Lose if we're currently in an
6348         annotation.
6349         (parse_annotation): New function.
6350         (parser_start_element, parser_end_element): Handle annotation.
6351         (parse_method, parse_interface): Remove support for c_name attribute,
6352         switch to annotations.
6353
6354         * glib/dbus-gidl.h (interface_info_get_binding_names)
6355         (method_info_get_binding_names)
6356         (interface_info_get_binding_name, method_info_get_binding_name)
6357         (interface_info_set_binding_name, method_info_set_binding_name):
6358         Remove.
6359         (interface_info_get_annotations, method_info_get_annotations)
6360         (interface_info_get_annotation, method_info_get_annotation)
6361         (interface_info_add_annotation, method_info_add_annotation):
6362         Prototype.
6363
6364         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6365         for "bindings".
6366         (struct MethodInfo): Ditto.
6367         Straightfoward conversion of binding methods into annotation methods
6368         as prototyped.
6369
6370         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6371
6372         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6373
6374         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6375         Use new annotation API.
6376
6377         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6378         annotation element.
6379         
6380         * doc/dbus-specification.xml: Discuss introspection annotations,
6381         include list of well-known annotations.
6382
6383         * test/glib/test-service-glib.xml: Make validate against new DTD.
6384
6385 2005-02-17  Colin Walters  <walters@verbum.org>
6386
6387         This patch is based on initial work from
6388         Paul Kuliniewicz <kuliniew@purdue.edu>.
6389
6390         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6391         initialization of GValue from dbus type to here.
6392         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6393         for the "glib-genmarshal" program from a DBus type.
6394         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6395         into the C name for it we use in the glib bindings.
6396         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6397         glib C type (not GValue).
6398         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6399
6400         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6401         from dbus-gobject.c.
6402
6403         * glib/dbus-gutils.h: Prototype it.
6404
6405         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6406         (marshal_dbus_message_to_g_marshaller): Use new shared function
6407         dbus_glib_marshal_dbus_message_to_gvalue_array.
6408
6409         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6410         Will be changed once we have annotations.
6411
6412         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6413         GStaticRWLock.  Callers updated.
6414         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6415         (string_table_next): New function for iterating over zero-terminated
6416         string value array.
6417         (string_table_lookup): New function; retrieves specific entry in
6418         array.
6419         (get_method_data): New function; look up method data in object data chunk.
6420         (object_error_domain_prefix_from_object_info)
6421         (object_error_code_from_object_info): New functions, but not implemented yet.
6422         (method_interface_from_object_info): New function; retrieve interface name.
6423         (method_name_from_object_info): New function; retrieve method name.
6424         (method_arg_info_from_object_info): New function; retrieve argument data.
6425         (arg_iterate): New function; iterates over serialized argument data.
6426         (method_dir_signature_from_object_info): New function; returns a
6427         GString holding type signature for arguments for just one
6428         direction (input or output).
6429         (method_input_signature_from_object_info)
6430         (method_output_signature_from_object_info): New functions.
6431         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6432         converts dbus message arguments into a GValue array.  Used for both
6433         signal handling and method invocation.
6434         (struct DBusGlibWriteIterfaceData): New utility structure.
6435         (write_interface): New function; generate introspection XML for
6436         an interface.
6437         (introspect_interfaces): New function; gathers all interface->methods,
6438         generates introspection XML for them.
6439         (handle_introspect): Invoke introspect_interfaces.
6440         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6441         (lookup_object_and_method): New function; examines an incoming message
6442         and attempts to match it up (via interface, method name, and argument
6443         signature) with a known object and method.
6444         (gerror_domaincode_to_dbus_error_name): New function; converts a
6445         GError domain and code into a DBus error name.  Needs GError data
6446         added to object introspection to work well.
6447         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6448         GError.
6449         (invoke_object_method): New function to invoke an object method
6450         looked up via lookup_object_and_method.  Parses the incoming
6451         message, turns it into a GValue array, then invokes the marshaller
6452         specified in the DBusGMethodInfo.  Creates a new message with
6453         either return values or error message as appropriate.
6454         (gobject_message_function): Invoke lookup_object_and_method and
6455         invoke_object_method.
6456
6457         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6458         (enum DBusBindingOutputMode): New enum for binding output modes.
6459         (pretty_print): Print binding names.
6460         (dbus_binding_tool_error_quark): GError bits.
6461         (version): Fix typo.
6462         (main): Create GIOChannel for output.  Parse new --mode argument,
6463         possible values are "pretty-print", "glib-server", "glib-client".
6464         Use mode to invoke appropriate function.
6465         
6466         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6467
6468         * glib/dbus-glib-tool.h: New header, just includes GError bits
6469         for now.
6470
6471         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6472         maps binding style to name.
6473         (struct MethodInfo): Ditto.
6474         (get_hash_keys, get_hash_key): Utility function, returns keys for
6475         a GHashTable.
6476         (interface_info_new, method_info_new): Initialize bindings.
6477         (interface_info_unref, method_info_unref): Destroy bindings.
6478         (method_info_get_binding_names, method_info_get_binding_name)
6479         (interface_info_get_binding_names, interface_info_get_binding_name):
6480         Functions for retrieving binding names.
6481         (method_info_set_binding_name, interface_info_set_binding_name):
6482         Functions for setting binding names.
6483
6484         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6485         for glib binding generation.
6486
6487         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6488         and client-side glib glue generation.
6489
6490         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6491         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6492         dbus-glib-tool.h.
6493
6494         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6495         of using GClosureMarshal directly.
6496         (struct DBusGObjectInfo): Add n_infos member.
6497
6498         * test/glib/test-service-glib.xml: New file; contains introspection data
6499         for MyTestObject used in test-service-glib.c.
6500
6501         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6502         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6503         (my_object_uppercase, my_object_many_args): New test methods.
6504         (main): Use dbus_g_object_class_install_info to include generated object
6505         info.
6506
6507         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6508         as well as client-side bindings.
6509
6510         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6511         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6512         using both the dbus_gproxy stuff directly as well as the generated bindings.
6513
6514 2005-02-15  Havoc Pennington  <hp@redhat.com>
6515
6516         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6517         complete a pending call, don't run filters first.
6518
6519         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6520         dbus_pending_call_steal_reply
6521
6522         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6523         _dbus_connection_block_pending_call
6524         (dbus_pending_call_get_reply): change to steal_reply and return a
6525         ref
6526
6527         * dbus/dbus-connection.c
6528         (dbus_connection_send_with_reply_and_block): port to work in terms
6529         of DBusPendingCall
6530         (_dbus_connection_block_pending_call): replace block_for_reply
6531         with this
6532
6533 2005-02-14  Havoc Pennington  <hp@redhat.com>
6534
6535         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6536         properly handle looking up group information by name; fix 
6537         from j@bootlab.org
6538
6539 2005-02-13  Havoc Pennington  <hp@redhat.com>
6540
6541         * dbus/dbus-connection.c (dbus_connection_return_message) 
6542         (dbus_connection_borrow_message): hold dispatch lock while message
6543         is outstanding
6544         (_dbus_connection_block_for_reply): hold dispatch lock while we
6545         block for the reply, so nobody steals our reply
6546         (dbus_connection_pop_message): hold the dispatch lock while we
6547         pluck the message
6548
6549 2005-02-13  Havoc Pennington  <hp@redhat.com>
6550
6551         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6552         (_dbus_connection_release_dispatch)
6553         (_dbus_connection_acquire_io_path)
6554         (_dbus_connection_release_io_path): make the mutex and condvar
6555         control access to the "acquired" flag. Drop the connection lock
6556         while waiting on the condvar. Hopefully these are baby steps in
6557         roughly the right direction.
6558
6559 2005-02-13  Havoc Pennington  <hp@redhat.com>
6560
6561         * dbus/dbus-connection.c: use separate mutexes for the condition
6562         variables; this is some kind of baseline for sanity, but the
6563         condition variables still aren't used correctly afaict
6564
6565 2005-02-13  Havoc Pennington  <hp@redhat.com>
6566
6567         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6568         fix a double-unlock
6569
6570         * dbus/dbus-connection.c
6571         (_dbus_connection_detach_pending_call_unlocked): add this
6572
6573         Initial semi-correct pass through to fix thread locking; there are
6574         still some issues with the condition variable paths I'm pretty
6575         sure
6576         
6577         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6578         lock/unlock calls
6579
6580         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6581         rename to add _unlocked
6582         (struct DBusConnection): move "dispatch_acquired" and
6583         "io_path_acquired" to use only one bit each.
6584         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6585         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6586         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6587         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6588         (_dbus_connection_remove_timeout) 
6589         (_dbus_connection_toggle_timeout): drop lock when calling out to
6590         user functions; done in a hacky/bad way.
6591         (_dbus_connection_send_and_unlock): add a missing unlock
6592         (_dbus_connection_block_for_reply): add a missing unlock
6593
6594         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6595         drop lock in a hacky probably unsafe way to call out to user
6596         function
6597
6598 2005-02-12  Havoc Pennington  <hp@redhat.com>
6599
6600         * tools/dbus-tree-view.c (info_set_func_text): display more
6601         details on args
6602
6603         * bus/driver.c (bus_driver_handle_list_services): list the bus
6604         driver
6605
6606         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6607
6608         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6609         (method_info_get_n_args): new function
6610
6611 2005-02-12  Havoc Pennington  <hp@redhat.com>
6612
6613         * bus/driver.c (bus_driver_handle_introspect): add introspection
6614         for bus driver
6615
6616 2005-02-12  Havoc Pennington  <hp@redhat.com>
6617
6618         * bus/driver.c: put the signature of each bus driver method in the
6619         table of handlers and check it on incoming calls; this isn't
6620         really useful, but going to add introspect support in a minute.
6621
6622 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6623
6624         * mono/Connection.cs: The unpredictability of finalizers in mono
6625         prevents us from deterministically disconnecting the filters from
6626         the Service class's finalizer, so move tracking of filters and
6627         matches here.  Add API for that.
6628
6629         * mono/Service.cs: Remove the code, add code which calls the
6630         methods now on the Connection class.
6631
6632 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6633
6634         * python/dbus.py (class Sender): added to support dbus signals better
6635         (Bus::add_signal_receiver): added expand_args parameter which defaults
6636         to True.  When expand args is True the signal handler will pass the 
6637         message arguments as parameters to the signal handler.  If False
6638         revert to previous behavior where the signal handler must get the
6639         argument list from the message.  This is to help port applications
6640         like HAL that have a tendancy to send variable length argument lists.
6641         self._match_rule_to_receivers is now a dict of dicts.
6642         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6643         removing it from a list
6644         (Bus::_signal_func): change signal handlers so that interface,
6645         signal_name, service, path and message are packed into a Sender
6646         object and that is passed to the handler.  If expand_args is True
6647         extract the args list from the message and append it to the parameter
6648         list
6649         
6650         * python/dbus_bindings.pyx.in (class Signature): added to support 
6651         signiature types
6652         (MessageIter::__init__): changed iteration limit to match D-BUS
6653         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6654         STRUCT and VARIENT type support
6655         (MessageIter::python_value_to_dbus_sig): made recursive to support
6656         recursive types
6657         (MessageIter::append*): added Signature, dict, tuple 
6658         support
6659
6660         * python/examples/example-client.py: added examples of getting tuples
6661         and dicts
6662
6663         * python/examples/example-service.py: added examples of sending tuples
6664         and dicts
6665
6666         * python/examples/example-signal-recipient.py: Fixed to handle new
6667         signal callback format
6668
6669 2005-02-10  Havoc Pennington  <hp@redhat.com>
6670
6671         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6672         (call dbus_g_proxy_add_signal)
6673
6674         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6675         escape the hostname
6676         (_dbus_server_new_for_domain_socket): escape the path
6677
6678         * dbus/dbus-address.c (dbus_address_escape_value): new
6679         (dbus_address_unescape_value): new
6680         (dbus_parse_address): unescape values
6681
6682         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6683
6684         * doc/dbus-specification.xml: explain how to escape values in
6685         addresses
6686
6687 2005-02-10  Havoc Pennington  <hp@redhat.com>
6688
6689         * dbus/dbus-message-factory.c (generate_special): modify test to
6690         avoid using a non-basic dict key
6691
6692         * dbus/dbus-marshal-validate-util.c: add test for the below
6693
6694         * doc/dbus-specification.xml: require that dict keys are a basic
6695         type
6696
6697         * dbus/dbus-marshal-validate.c
6698         (_dbus_validate_signature_with_reason): require that dict key is a
6699         basic type
6700
6701 2005-02-10  Havoc Pennington  <hp@redhat.com>
6702
6703         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6704         change to be _and_unlock instead of _unlocked
6705
6706         * dbus/dbus-connection.c
6707         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6708         have no_update so we can find this bug quickly in future
6709
6710 2005-02-10  Havoc Pennington  <hp@redhat.com>
6711
6712         * dbus/dbus-message-util.c (verify_test_message): tests for string
6713         array
6714
6715         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6716         support for arrays of string/signature/path
6717
6718 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6719
6720         * dbus/dbus-connection.c
6721         (_dbus_connection_queue_received_message_link,
6722         _dbus_connection_message_sent): Add the path to
6723         the verbose output.
6724         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6725         _dbus_connection_send_preallocated_unlocked(), updated the
6726         dispatch status, and unlocks.  Fixes a bug where certain
6727         situations (like a broken pipe) could cause a Disconnect message
6728         to not be sent, tricking the bus into thinking a service was still
6729         there when the process had quit.
6730         (_dbus_connection_send_preallocated): Call
6731         _dbus_connection_send_preallocated_and_unlock().
6732         (_dbus_connection_send_and_unlock): Added.  Calls
6733         _dbus_connection_send_preallocated_and_unlock().
6734         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6735         (dbus_connection_send_with_reply): Update the dispatch status and
6736         unlock.
6737
6738         * mono/Service.cs (~Service): Added.  Removes the filter so that
6739         we don't get unmanaged code calling back into a GCed delegate.
6740         (RemoveFilter); Added.
6741
6742 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6743
6744         * dbus/dbus-message.c (dbus_message_iter_open_container):
6745         - Removed check for iterator type being an array because
6746         get_arg_type does not work with writer iterators
6747         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6748
6749 2005-02-07  Havoc Pennington  <hp@redhat.com>
6750
6751         * doc/dbus-specification.xml: some more language cleanups; add
6752         stuff about how to deal with invalid protocol and extension
6753         points; add _ to allowed chars in auth commands; add EXTENSION_
6754         auth command prefix
6755
6756 2005-02-06  Havoc Pennington  <hp@redhat.com>
6757
6758         * s/expected/required/ in a couple places for clarity
6759
6760 2005-02-07  Colin Walters  <walters@verbum.org>
6761
6762         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6763         sender or proposed_recipient.
6764
6765 2005-02-06  Havoc Pennington  <hp@redhat.com>
6766
6767         * dbus/dbus-message-factory.c (generate_special): more tests
6768
6769         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6770         array length that exceeds the maximum
6771
6772 2005-02-05  Havoc Pennington  <hp@redhat.com>
6773
6774         * dbus/dbus-message-factory.c (generate_special): more test cases,
6775         increasing coverage
6776
6777         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6778         reason why a signature was invalid
6779
6780         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6781         skip the length of the string before we look at it in validation
6782
6783         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6784         equal_substring
6785
6786         * dbus/dbus-message.c (_dbus_message_loader_new): default
6787         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6788
6789 2005-02-05  Havoc Pennington  <hp@redhat.com>
6790
6791         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6792         if the signature of a variant was empty
6793         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6794         struct with no element type)
6795
6796         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6797         mangled messages to break things
6798
6799 2005-02-04  Havoc Pennington  <hp@redhat.com>
6800
6801         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6802         g_quark_try_string() so it actually can return 0
6803         (dbus_g_proxy_connect_signal): ditto
6804
6805 2005-02-04  Havoc Pennington  <hp@redhat.com>
6806
6807         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6808         bogus warning
6809         (tristring_from_message): assert cleanly on null path/interface
6810         (should not be possible though I decided later)
6811         (dbus_g_proxy_dispose): move proxy manager unregistration here
6812         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6813         g_return_if_fail() checks
6814
6815 2005-02-04  Havoc Pennington  <hp@redhat.com>
6816
6817         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6818
6819         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6820         (with some minor changes)
6821
6822         * doc/dbus-specification.xml: add deprecated attribute to
6823         introspection format
6824
6825 2005-01-31  Havoc Pennington  <hp@redhat.com>
6826
6827         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6828         think it's sort of right
6829
6830 2005-01-30  Havoc Pennington  <hp@redhat.com>
6831
6832         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6833
6834 2005-01-30  Havoc Pennington  <hp@redhat.com>
6835
6836         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6837
6838         * autogen.sh: change to autotools 1.9
6839
6840         * glib/dbus-gproxy.c: completely change how signals work
6841         (dbus_g_proxy_add_signal): new function to specify signature of a
6842         signal
6843         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6844         and g_warning if the incoming message has the wrong signature.
6845
6846 2005-01-30  Havoc Pennington  <hp@redhat.com>
6847
6848         * tools/dbus-names-model.c (have_names_notify): fix this
6849
6850         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6851         up the string array handling a bit 
6852
6853 2005-01-30  Havoc Pennington  <hp@redhat.com>
6854
6855         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6856         (dbus_g_pending_call_cancel): new function
6857
6858         * dbus/dbus-glib.h: move GType decls for connection/message here;
6859         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6860         here, just kind of rationalizing how we handle all that
6861
6862         * tools/dbus-names-model.c: new file for a tree model listing the
6863         services on a bus
6864
6865         * tools/dbus-tree-view.c (model_new): use proper typing on the
6866         model rows
6867
6868 2005-01-30  Havoc Pennington  <hp@redhat.com>
6869
6870         * glib/dbus-gmain.c: add a custom GSource back that just checks
6871         whether the message queue has anything in it; otherwise, there are 
6872         cases where we won't see messages in the queue since there was no 
6873         IO visible to the glib main loop
6874
6875         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6876         increase default message timeout to 25 seconds
6877
6878 2005-01-30  Havoc Pennington  <hp@redhat.com>
6879
6880         * test/glib/test-profile.c (no_bus_stop_server): remove the
6881         warning about the g_warning that I just fixed
6882
6883         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6884         custom source, seems to be a lot easier to understand and work
6885         better.
6886
6887 2005-01-30  Havoc Pennington  <hp@redhat.com>
6888
6889         I think this main loop thing is conceptually broken, but here are 
6890         some band aids. I'll maybe rewrite it in a minute.
6891         
6892         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6893         custom GSource, so don't pass it in; confusing
6894         (gsource_server_finalize, gsource_connection_finalize): add
6895         finalize handlers that remove all the watches.  
6896
6897 2005-01-30  Havoc Pennington  <hp@redhat.com>
6898
6899         * glib/dbus-gobject.c (introspect_properties): fix the XML
6900         generated
6901
6902         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6903         which effectively detects the use of freed messages
6904
6905         * glib/dbus-gobject.c (handle_introspect): modify and return the
6906         reply message instead of the incoming message
6907
6908         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6909         gee, maybe it should SEND THE XML instead of just making a string
6910         and freeing it again ;-)
6911
6912         * tools/dbus-print-message.c (print_message): improve printing of
6913         messages
6914
6915         * configure.in: add debug-glib.service to the output
6916
6917 2005-01-30  Havoc Pennington  <hp@redhat.com>
6918
6919         dbus-viewer introspected and displayed the bus driver
6920         
6921         * dbus/dbus-object-tree.c 
6922         (object_tree_test_iteration): add tests for a handler registered on "/"
6923
6924         * dbus/dbus-object-tree.c
6925         (_dbus_decompose_path): fix to handle path "/" properly
6926         (run_decompose_tests): add tests for path decomposition
6927         
6928         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6929         properly
6930
6931         * glib/dbus-gobject.c (handle_introspect): fix quotes
6932
6933         * test/glib/run-test.sh: support launching the bus, then running
6934         dbus-viewer
6935
6936         * test/glib/test-service-glib.c (main): put in a trivial gobject
6937         subclass and register it on the connection
6938
6939         * bus/driver.c (bus_driver_handle_introspect): implement
6940         introspection of the bus driver service
6941
6942         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6943         identifiers, doctype decl
6944
6945         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6946         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6947         returning the service unchanged.
6948         (bus_driver_handle_message): remove old check for reply_serial in
6949         method calls, now the message type deals with that
6950         (bus_driver_handle_message): handle NULL interface
6951
6952         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6953
6954         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6955         -1 for len
6956
6957         * tools/dbus-viewer.c: add support for introspecting a service on
6958         a bus
6959
6960         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6961         (dbus_g_pending_call_unref): add
6962
6963 2005-01-29  Havoc Pennington  <hp@redhat.com>
6964
6965         * tools/dbus-tree-view.c: add support for displaying properties.
6966         (run dbus-viewer with an introspect xml file as arg, then resize
6967         the window so the tree elements show up, not sure what that is)
6968
6969         * glib/dbus-gobject.c (handle_introspect): return
6970         org.freedesktop.Properties and org.freedesktop.Introspectable
6971         interfaces when we are introspected.
6972
6973         * doc/dbus-specification.xml: allow empty interface name when 
6974         Get/Set a property
6975
6976 2005-01-29  Havoc Pennington  <hp@redhat.com>
6977
6978         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6979         though it uses glib, it could be extended for any binding in
6980         principle
6981
6982         * glib/dbus-gobject.c (gobject_message_function): change to the
6983         new way properties work
6984
6985         * dbus/dbus-protocol.h: add the new interfaces
6986
6987         * doc/dbus-specification.xml: document the introspection format,
6988         Introspectable interface, and add an org.freedesktop.Properties
6989         interface.
6990
6991         * glib/dbus-gparser.c: add support for a <property> element
6992
6993         * glib/dbus-gidl.c: add PropertyInfo
6994
6995         * glib/dbus-gobject.c (handle_introspect): put the outermost
6996         <node> outside the signal and property descriptions.
6997         (introspect_properties): export properties as <property> rather
6998         than as method calls
6999
7000 2005-01-28  Havoc Pennington  <hp@redhat.com>
7001
7002         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
7003         related to authentication protocol
7004
7005 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7006
7007         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7008                 - BUS_ACTIVATION -> BUS_STARTER
7009                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7010                 - class MessageIter (__init__): Added recursion checking 
7011                 so we throw a nice error instead of just disconnecting from the
7012                 bus.
7013                 (get): Added arg_type parameter for recursion.
7014                 Removed the nil type
7015                 Added signiture type placeholder (not implemented)
7016                 Added struct type placeholder (not implemented)
7017                 Added varient type placeholder (not implemented)
7018                 Commented out dict type for now     
7019                 (get_element_type): renamed from get_array_type
7020                 (get_*): changed to use the dbus_message_iter_get_basic API
7021                 (get_*_array): removed in favor of recursive get_array method
7022                 (get_array): new recursive method which calls get to marshal
7023                 the elements of the array
7024                 (value_to_dbus_sig): New method returns the corrasponding
7025                 dbus signiture to a python value
7026                 (append): Comment out dict handling for now
7027                 Handle lists with the new recursive API
7028                 Comment out None handling for now
7029                 (append_nil): removed
7030                 (append_*): changed to use dbus_message_iter_append_basic API
7031                 (append_*_array): removed in favor of recursive append_array 
7032                 method
7033                 (__str__): Make it easier to print out recursive iterators
7034                 for debugging
7035                 - class Message (__str__): moved type inspection to the
7036                 MessageIter class' __str__ method
7037                 (get_iter): Added an append parameter wich defaults to False
7038                 If True use the new API's to create an append iterator
7039
7040         * python/dbus.py: Update to use new bindings API
7041                 - TYPE_ACTIVATION -> TYPE_STARTER
7042                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7043                 - class ActivationBus -> class StarterBus
7044                 - class RemoteObject (__call__): get an append iterator
7045                 - (_dispatch_dbus_method_call): get an append iterator
7046                 - class Object (emit_signal): get an append iterator
7047
7048         * python/examples/: Fixed up the examples to work with the new API
7049                 
7050 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7051
7052         * configure.in: Bump version up to 0.30.
7053
7054         * HACKING: Add a release item to bump the version number up after 
7055         a release.
7056
7057 2005-01-28  Havoc Pennington  <hp@redhat.com>
7058
7059         * doc/dbus-specification.xml: update to describe 16-bit types and
7060         dict entries
7061
7062         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7063         assertion
7064
7065         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7066         type
7067
7068         * dbus/dbus-marshal-recursive.c: implement
7069
7070 2005-01-27  Havoc Pennington  <hp@redhat.com>
7071
7072         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7073
7074         * configure.in: find the right type for 16 and 32 bit ints as well
7075         as 64
7076
7077         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7078         the 16-bit types so people don't have to stuff them in 32-bit or
7079         byte arrays.
7080
7081 2005-01-27  Havoc Pennington  <hp@redhat.com>
7082
7083         * dbus/dbus-message.c: byteswap the message if you init an
7084         iterator to read/write from it
7085         
7086         * dbus/dbus-marshal-byteswap.c: new file implementing 
7087         _dbus_marshal_byteswap()
7088
7089         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7090
7091 2005-01-26  Havoc Pennington  <hp@redhat.com>
7092         
7093         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7094         build, apparently - nobody noticed?)
7095         
7096 2005-01-26  Havoc Pennington  <hp@redhat.com>
7097
7098         * dbus/dbus-marshal-recursive.h: remove todo comment
7099
7100 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7101
7102         * Land the mono binding changes to conform to the new APIs.
7103
7104         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7105         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7106
7107         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7108         type code as a string.
7109         (InitAppending): Rename dbus_message_append_iter_init() to
7110         dbus_message_iter_init_append().
7111
7112         * mono/BusDriver.cs: Rename ServiceEventHandler to
7113         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7114         Rename ServiceOwnerChanged to NameOwnerChanged.
7115
7116         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7117         underlying C call.
7118
7119         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7120
7121         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7122         dbus_bus_acquire_service() to dbus_bus_request_name().
7123
7124         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7125         of Type.UnderlyingSystemType to get the correct element type for
7126         the array.
7127         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7128         dbus_message_get_{element|arg}_type() instead of
7129         dbus_message_iter_init_array_iterator().
7130         (Append): Replace dbus_message_iter_append_array() with
7131         dbus_message_iter_open_container() and
7132         dbus_message_iter_close_container().
7133
7134         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7135         types have been removed.
7136         
7137         * mono/DBusType/*.cs: Replace calls of
7138         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7139         but specify the type in the DllImport extern declaration.  Ditto
7140         for dbus_message_iter_append_[type]() ->
7141         dbus_message_iter_append_basic().
7142
7143         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7144         NameOwnerChangedHandler.
7145
7146 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7147
7148         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7149                 - get_base_service -> get_unique_name
7150                 - bus_get_base_service -> bus_get_unique_name
7151                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7152                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7153                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7154                 - bus_activate_service -> bus_start_service_by_name
7155                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7156                 - bus_acquire_service -> bus_request_name
7157                 - dbus_bus_acquire_service -> dbus_bus_request_name
7158                 - bus_service_exists -> bus_name_has_owner
7159                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7160
7161         * python/dbus.py: Rename of methods
7162                 - activate_service -> start_service_by_name
7163                 - bus_acquire_service -> bus_request_name
7164                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7165                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7166
7167         
7168 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7169
7170         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7171         signature for the method that can't be found.
7172
7173         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7174         the message has any arguments, we need to call
7175         _dbus_type_reader_get_current_type(), not
7176         _dbus_type_reader_has_next().
7177
7178 2005-01-24  Havoc Pennington  <hp@redhat.com>
7179
7180         * dbus/dbus-message-factory.c: more testing of message validation
7181
7182         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7183         header
7184
7185 2005-01-23  Havoc Pennington  <hp@redhat.com>
7186
7187         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7188         get this all working, not many tests in the framework yet though
7189
7190 2005-01-22  Havoc Pennington  <hp@redhat.com>
7191
7192         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7193         tutorial, based on work from David Wheeler.
7194
7195 2005-01-21  Havoc Pennington  <hp@redhat.com>
7196
7197         * dbus/dbus-bus.c: add more return_if_fail checks
7198
7199         * dbus/dbus-message.c (load_message): have the "no validation"
7200         mode (have to edit the code to toggle the mode for now though)
7201
7202         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7203         skips all validation; I want to use this at least for benchmark
7204         baseline, I'm not sure if it should be a publicly-available switch.
7205
7206 2005-01-21  Havoc Pennington  <hp@redhat.com>
7207
7208         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7209         toplevel doxygen group as the low-level API stuff
7210
7211         * dbus/dbus.h: note that libdbus is the low-level API
7212
7213 2005-01-20  Havoc Pennington  <hp@redhat.com>
7214
7215         * update-dbus-docs.sh: script to update docs on the web site, only
7216         works for me though. neener.
7217
7218 2005-01-20  Havoc Pennington  <hp@redhat.com>
7219
7220         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7221         code can reveal bugs in it
7222
7223 2005-01-20  Havoc Pennington  <hp@redhat.com>
7224
7225         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7226         select() version, patches from Tor Lillqvist
7227
7228 2005-01-20  Havoc Pennington  <hp@redhat.com>
7229
7230         * doc/dbus-tutorial.xml: replace > with &gt;
7231
7232         * bus/services.c (bus_registry_acquire_service): validate the name
7233         and return a better error if it's no good.
7234
7235         * doc/dbus-specification.xml: note NO_AUTO_START change
7236
7237         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7238         from AUTO_START, we're toggling the default
7239
7240         * bus/dispatch.c: adapt the tests to change of auto-start default
7241
7242 2005-01-18  Havoc Pennington  <hp@redhat.com>
7243
7244         * rename dbus-daemon-1 to dbus-daemon throughout
7245
7246 2005-01-18  Havoc Pennington  <hp@redhat.com>
7247
7248         * Throughout, grand renaming to strip out the use of "service",
7249         just say "name" instead (or "bus name" when ambiguous).  Did not
7250         change the internal code of the message bus itself, only the
7251         programmer-facing API and messages.
7252         
7253         * doc/dbus-specification.xml: further update the message bus section
7254         
7255         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7256         in error case
7257
7258 2005-01-17  Havoc Pennington  <hp@redhat.com>
7259
7260         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7261         ever
7262
7263         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7264         "invalid name character" not only non-ASCII
7265
7266         * doc/dbus-specification.xml: further update spec, message bus 
7267         parts are still out-of-date but the marshaling etc. stuff is now
7268         accurate-ish
7269
7270 2005-01-17  Havoc Pennington  <hp@redhat.com>
7271
7272         * doc/dbus-specification.xml: partially update spec
7273
7274 2005-01-17  Havoc Pennington  <hp@redhat.com>
7275
7276         * Throughout, align variant bodies according to the contained
7277         type, rather than always to 8. Should save a fair bit of space in
7278         message headers.
7279         
7280         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7281         fix handling of case where p == end
7282
7283         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7284
7285 2005-01-17  Havoc Pennington  <hp@redhat.com>
7286
7287         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7288
7289         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7290         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7291         are marshaling/unmarshaling a boolean.
7292
7293 2005-01-16  Havoc Pennington  <hp@redhat.com>
7294
7295         This is about it on what can be disabled/deleted from libdbus
7296         easily, back below 150K anyhow. Deeper cuts are more work than 
7297         just turning the code off as I've done here.
7298         
7299         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7300         signed int convenience funcs
7301
7302         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7303         verbose mode
7304
7305         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7306         things out of libdbus
7307
7308         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7309         
7310         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7311         tests-enabled-only, though it should probably be deleted)
7312
7313         * dbus/dbus-message-util.c: same stuff
7314
7315         * dbus/dbus-auth-util.c: same stuff
7316
7317 2005-01-16  Havoc Pennington  <hp@redhat.com>
7318
7319         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7320
7321         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7322         way for stripping down dbus-userdb.c stuff included in libdbus.
7323         Rename _dbus_parse_uid for consistency.
7324
7325 2005-01-16  Havoc Pennington  <hp@redhat.com>
7326
7327         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7328         name the assertion failed in
7329
7330         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7331         (_dbus_return_val_if_fail): assert that the name of the function
7332         containing the check doesn't start with '_', since we only want to 
7333         use checks on public functions
7334         
7335         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7336         checks to assertions
7337
7338         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7339         change checks to asserts for private function
7340
7341         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7342         to asserts for private function
7343
7344         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7345         broken assertion that was breaking make check
7346         (_dbus_type_reader_array_is_empty): remove this rather than fix
7347         it, was only used in assertions
7348
7349 2005-01-16  Havoc Pennington  <hp@redhat.com>
7350
7351         * test/unused-code-gc.py: hacky script to find code that's used
7352         only by the bus (not libdbus) or used only by tests or not used at
7353         all. It has some false alarms, but looks like we can clean up a
7354         lot of size from libdbus.
7355
7356         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7357         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7358         
7359 2005-01-16  Havoc Pennington  <hp@redhat.com>
7360
7361         * Add and fix docs according to Doxygen warnings throughout
7362         source.
7363         
7364         * dbus/dbus-marshal-recursive.c
7365         (_dbus_type_reader_array_is_empty): change this to just call
7366         array_reader_get_array_len() and make it static
7367
7368         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7369         from get_array_type
7370         (dbus_message_iter_init_append): rename from append_iter_init
7371
7372         * dbus/dbus-marshal-recursive.c
7373         (_dbus_type_reader_get_element_type): rename from
7374         _dbus_type_reader_get_array_type
7375
7376 2005-01-15  Havoc Pennington  <hp@redhat.com>
7377
7378         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7379
7380         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7381         when DBUS_DISABLE_ASSERT
7382         (_dbus_marshal_set_basic): be sure we align for the string length
7383
7384         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7385         this look faster
7386
7387         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7388         inline macro version
7389         (_dbus_string_set_byte): provide inline macro version
7390
7391 2005-01-15  Havoc Pennington  <hp@redhat.com>
7392
7393         * Land the new message args API and type system.
7394
7395         This patch is huge, but the public API change is not 
7396         really large. The set of D-BUS types has changed somewhat, 
7397         and the arg "getters" are more geared toward language bindings;
7398         they don't make a copy, etc.
7399
7400         There are also some known issues. See these emails for details
7401         on this huge patch:
7402         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7403         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7404         
7405         * dbus/dbus-marshal-*: all the new stuff
7406
7407         * dbus/dbus-message.c: basically rewritten
7408
7409         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7410         freed blocks to be all non-nul bytes so using freed memory is less
7411         likely to work right
7412
7413         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7414         DBUS_FAIL_MALLOC=N environment variable, so you can do
7415         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7416         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7417         thorough.
7418
7419         * qt/message.cpp: port to the new message args API
7420         (operator<<): use str.utf8() rather than str.unicode()
7421         (pretty sure this is right from the Qt docs?)
7422
7423         * glib/dbus-gvalue.c: port to the new message args API
7424
7425         * bus/dispatch.c, bus/driver.c: port to the new message args API
7426
7427         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7428         "locked" flag to TRUE and align_offset to 0; I guess we never
7429         looked at these anyhow, but seems cleaner.
7430
7431         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7432         move allocation padding macro to this header; use it to implement
7433         (_DBUS_STRING_STATIC): ability to declare a static string.
7434
7435         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7436         change to return TRUE if the interface is not set.
7437
7438         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7439         to dbus-marshal-validate.[hc]
7440
7441         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7442         dbus-internals.c
7443
7444         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7445         to dbus-marshal-*.[hc]
7446
7447         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7448         function here from dbus-marshal.c
7449
7450 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7451
7452         * NEWS: Update for 0.23.
7453
7454         * configure.in: Release 0.23.
7455
7456 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7457
7458         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7459         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7460         behind.
7461
7462         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7463         uninstall"
7464
7465         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7466         is an enum, get the enum's underlying type.  Another mono
7467         1.1.3 fix.
7468
7469 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7470
7471         Patch from Sjoerd Simons <sjoerd@luon.net>
7472
7473         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7474         DESTDIR.  It breaks stuff.
7475
7476 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7477
7478         Patch from Tambet Ingo <tambet@ximian.com>
7479
7480         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7481         calling type.GetElementType().  The code previously depended on
7482         broken Mono behavior, which was fixed in Mono 1.1.3.
7483
7484         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7485         Activator.CreateInstance() so that the class's constructor is
7486         called with the right parameters.
7487
7488 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7489
7490         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7491
7492         * dbus/dbus-connection.c
7493         (_dbus_connection_queue_received_message_link): Call
7494         _dbus_connection_remove_timeout() instead of the _locked()
7495         variant, since it's always called from
7496         _dbus_connection_handle_watch(), which handles the locking.
7497         Removed the _locked() variant since it's no longer used.
7498
7499 2005-01-03  Havoc Pennington  <hp@redhat.com>
7500
7501         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7502         return
7503         
7504 2004-12-26  Havoc Pennington  <hp@redhat.com>
7505
7506         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7507
7508 2005-01-03  Havoc Pennington  <hp@redhat.com>
7509
7510         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7511         floating point
7512
7513         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7514
7515 2005-01-02  Havoc Pennington  <hp@redhat.com>
7516
7517         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7518
7519 2005-01-01  Havoc Pennington  <hp@redhat.com>
7520
7521         * configure.in: add -Wfloat-equal
7522
7523 2005-01-01  Havoc Pennington  <hp@redhat.com>
7524
7525         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7526         for a variety of reasons '==' doesn't do this.
7527
7528 2004-12-31  Havoc Pennington  <hp@redhat.com>
7529
7530         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7531         I keep wishing I had
7532
7533 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7534
7535         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7536
7537 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7538
7539         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7540         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7541         dbus-protocol.h.  Because they are defines and not enums they are not
7542         autogenerated.
7543
7544 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7545
7546         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7547         dbus_bus_activate_service
7548
7549         * python/dbus.py (Bus.activate_service): activate a service on the
7550         bus.
7551
7552 2004-12-24  Havoc Pennington  <hp@redhat.com>
7553
7554         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7555         file format has also changed and I haven't adapted to that yet
7556         
7557         * Makefile.am: load .gcno files from latest gcc
7558
7559 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7560         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7561
7562         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7563         lowlevel binding
7564
7565         * python/dbus.py (get_unix_user): Added binding to 
7566         call dbus_bindings.bus_get_unix_user
7567
7568         * python/extract.py: Modified the proto_pat regex to
7569         handle unsigned long
7570
7571 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7572
7573         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7574         better POSIX compliance.
7575
7576 2004-12-19  Havoc Pennington  <hp@redhat.com>
7577
7578         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7579         (_dbus_string_insert_8_aligned): new functions
7580
7581         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7582
7583 2004-12-18  Havoc Pennington  <hp@redhat.com>
7584
7585         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7586         macro
7587
7588         * dbus/dbus-message.c: fix a comment, and add a still-unused
7589         not-implemented function
7590
7591         * dbus/dbus-marshal.h: fix comment
7592
7593         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7594
7595 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7596
7597         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7598         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7599         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7600         Type.UnderlyingSystemType to get the actual system type
7601         underneath.  This code previously depended on the broken Mono
7602         behavior, which was fixed in 1.1.3.
7603
7604 2004-11-27  Havoc Pennington  <hp@redhat.com>
7605
7606         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7607         are disabled
7608         (_dbus_string_get_const_data): inline when asserts are disabled
7609
7610         * dbus/dbus-message.c: record the _dbus_current_generation of
7611         creation so we can complain if dbus_shutdown() is used improperly.
7612         Do this only if checks are enabled.
7613
7614         * dbus/dbus-connection.c: ditto
7615         
7616 2004-11-26  Havoc Pennington  <hp@redhat.com>
7617
7618         * test/glib/test-profile.c: add with_bus mode to profile echoes
7619         that go through the bus.
7620
7621         * test/glib/run-test.sh: add ability to run test-profile
7622
7623         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7624         config file reload.
7625
7626 2004-11-26  Havoc Pennington  <hp@redhat.com>
7627
7628         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7629         thing was implemented
7630
7631 2004-11-26  Havoc Pennington  <hp@redhat.com>
7632
7633         * test/glib/test-profile.c: tweak a bit, add support for some
7634         made-up minimal malloc overhead with plain sockets, since in 
7635         real life some sort of buffers are unavoidable thus we could 
7636         count them in the theoretical best case
7637
7638 2004-11-26  Havoc Pennington  <hp@redhat.com>
7639
7640         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7641         where I was trying to cache one too many messages
7642
7643 2004-11-26  Havoc Pennington  <hp@redhat.com>
7644
7645         * dbus/dbus-message.c: reimplement message cache as an array which 
7646         makes the cache about twice as fast and saves maybe 1.5% overall
7647
7648 2004-11-26  Havoc Pennington  <hp@redhat.com>
7649
7650         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7651         message cache lock here
7652
7653 2004-11-26  Havoc Pennington  <hp@redhat.com>
7654
7655         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7656         the "char byte_order" next to each other to save 4 bytes
7657         (dbus_message_new_empty_header): reduce preallocation, since the
7658         message cache should achieve a similar effect
7659         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7660         message cache that keeps a few DBusMessage around in a pool,
7661         another 8% speedup or so.
7662
7663         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7664
7665 2004-11-25  Havoc Pennington  <hp@redhat.com>
7666
7667         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7668         to write, without reading or blocking, try it before the poll()
7669         and skip the poll() if nothing remains to write. This is about a
7670         3% speedup in the echo client/server
7671
7672 2004-11-25  Havoc Pennington  <hp@redhat.com>
7673
7674         The primary change here is to always write() once before adding
7675         the write watch, which gives us about a 10% performance increase.
7676         
7677         * dbus/dbus-transport-unix.c: a number of modifications to cope
7678         with removing messages_pending
7679         (check_write_watch): properly handle
7680         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7681         messages_pending stuff
7682         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7683         AUTHENTICATED cases
7684         (unix_handle_watch): after writing, see if the write watch can be
7685         removed
7686         (unix_do_iteration): assert that write_watch/read_watch are
7687         non-NULL rather than testing that they aren't, since they 
7688         aren't allowed to be NULL. check_write_watch() at the end so 
7689         we add the watch if we did not finish writing (e.g. got EAGAIN)
7690
7691         * dbus/dbus-transport-protected.h: remove messages_pending call,
7692         since it resulted in too much inefficient watch adding/removing; 
7693         instead we now require that the transport user does an iteration 
7694         after queueing outgoing messages, and after trying the first
7695         write() we add a write watch if we got EAGAIN or exceeded our 
7696         max bytes to write per iteration setting
7697
7698         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7699         function
7700
7701         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7702         freed and then accessed, valgrind flagged this bug, fix it
7703
7704         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7705         as the last valid field plus 1, where really it is equal to the
7706         last valid field. Corrects some message corruption issues.
7707
7708         * dbus/dbus-mainloop.c: verbosity changes
7709
7710         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7711         instead of aborting in one of the test codepaths
7712
7713         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7714         caused not printing the pid ever again if a verbose was missing
7715         the newline at the end
7716         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7717
7718         * dbus/dbus-connection.c: verbosity changes; 
7719         (dbus_connection_has_messages_to_send): new function
7720         (_dbus_connection_message_sent): no longer call transport->messages_pending
7721         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7722         try to write() immediately, so we can avoid the write watch. This
7723         is the core purpose of this patchset
7724         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7725         dump the outgoing message queue, so nobody will get confused
7726         trying to send them or thinking stuff is pending to be sent
7727
7728         * bus/test.c: verbosity changes
7729
7730         * bus/driver.c: verbosity/assertion changes
7731
7732         * bus/dispatch.c: a bunch of little tweaks to get it working again
7733         because this patchset changes when/where you need to block.
7734
7735 2004-11-23  Havoc Pennington  <hp@redhat.com>
7736
7737         * test/glib/test-profile.c: modify to accept a plain_sockets
7738         argument in which case it will bench plain sockets instead of
7739         libdbus, for comparison purposes.
7740
7741 2004-11-22  Havoc Pennington  <hp@redhat.com>
7742
7743         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7744         threads for more time, so sysprof can get a grip on it.
7745
7746         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7747         pointless variable
7748
7749 2004-11-13  Havoc Pennington  <hp@redhat.com>
7750
7751         * test/glib/test-profile.c: fix this thing up a bit
7752
7753         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7754         preallocation sizes by a fair bit; not sure if this will be an
7755         overall performance win or not, but it does reduce reallocs.
7756
7757         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7758         the test hack that forced constant realloc if asserts are
7759         disabled, so we can profile sanely. Sprinkle in some
7760         _DBUS_UNLIKELY() which are probably pointless, but before I
7761         noticed the real performance problem I put them in.
7762         (_dbus_string_validate_utf8): micro-optimize this thing a little
7763         bit, though callgrind says it didn't help; then special-case
7764         ascii, which did help a lot; then be sure we detect nul bytes as
7765         invalid, which is a bugfix.
7766         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7767         superstition; use memset to nul the padding instead of a manual
7768         loop.
7769         (_dbus_string_get_length): inline this as a
7770         macro; it showed up in the profile because it's used for loop
7771         tests and so forth
7772
7773 2004-11-10  Colin Walters  <walters@verbum.org>
7774
7775         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7776         for extra paranoia.
7777
7778 2004-11-09  Colin Walters  <walters@verbum.org>
7779
7780         * dbus/dbus-string.c (_dbus_string_get_length): New
7781         function, writes DBusString to C buffer.
7782
7783         * dbus/dbus-string.h: Prototype it.
7784
7785         * dbus/dbus-message.c (dbus_message_type_to_string): New
7786         function, converts message type into C string.
7787
7788         * dbus/dbus-message.h: Prototype it.
7789
7790         * bus/selinux.c (bus_selinux_check): Take source pid,
7791         target pid, and audit data.  Pass audit data to
7792         avc_has_perm.
7793         (log_audit_callback): New function, appends extra
7794         audit information.
7795         (bus_selinux_allows_acquire_service): Also take
7796         service name, add it to audit data.
7797         (bus_selinux_allows_send): Also take message
7798         type, interface, method member, error name,
7799         and destination, and add them to audit data.
7800         (log_cb): Initialize func_audit.
7801         
7802         * bus/selinux.h (bus_selinux_allows_acquire_service)
7803         (bus_selinux_allows_send): Update prototypes 
7804
7805         * bus/services.c (bus_registry_acquire_service): Pass
7806         service name to bus_selinux_allows_acquire_service.
7807
7808         * bus/bus.c (bus_context_check_security_policy): Pass
7809         additional audit data.  Move assignment of dest
7810         to its own line.
7811
7812 2004-11-07  Colin Walters  <walters@verbum.org>
7813
7814         * dbus/dbus-transport-unix.c (do_authentication): Always
7815         initialize auth_completed.
7816         
7817 2004-11-07  Colin Walters  <walters@verbum.org>
7818
7819         * bus/bus.c (load_config): Break into three
7820         separate functions: process_config_first_time_only,
7821         process_config_every_time, and process_config_postinit.
7822         (process_config_every_time): Move call of
7823         bus_registry_set_service_context_table into
7824         process_config_postinit.
7825         (process_config_postinit): New function, does
7826         any processing that needs to happen late
7827         in initialization (and also on reload).
7828         (bus_context_new): Instead of calling load_config,
7829         open config parser here and call process_config_first_time_only
7830         and process_config_every_time directly.  Later, after
7831         we have forked but before changing UID,
7832         invoke bus_selinux_full_init, and then call
7833         process_config_postinit.
7834         (bus_context_reload_config): As in bus_context_new,
7835         load parse file inside here, and call process_config_every_time
7836         and process_config_postinit.
7837
7838         * bus/services.h, bus/services.c
7839         (bus_registry_set_service_context_table): Rename
7840         from bus_registry_set_sid_table.  Take string hash from config
7841         parser, and convert them here into SIDs.
7842
7843         * bus/config-parser.c (struct BusConfigParser): Have
7844         config parser only store a mapping of service->context
7845         string.
7846         (merge_service_context_hash): New function.
7847         (merge_included): Merge context string hashes instead
7848         of using bus_selinux_id_table_union.
7849         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7850         simply create a new string hash.
7851         (bus_config_parser_unref): Unref it.
7852         (start_selinux_child): Simply insert strings into hash,
7853         don't call bus_selinux_id_table_copy_over.
7854
7855         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7856         (bus_selinux_id_table_copy_over): Delete.
7857
7858 2004-11-03  Colin Walters  <walters@verbum.org>
7859
7860         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7861         variables.
7862         
7863 2004-11-03  Colin Walters  <walters@verbum.org>
7864
7865         * bus/test-main.c (test_pre_hook): Fix test logic,
7866         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7867
7868 2004-11-02  Colin Walters  <walters@redhat.com>
7869
7870         * bus/selinux.c (bus_selinux_init): Split into two functions,
7871         bus_selinux_pre_init and bus_selinux_post_init.
7872         (bus_selinux_pre_init): Just determine whether SELinux is
7873         enabled.
7874         (bus_selinux_post_init): Do everything else.
7875
7876         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7877         config file, and bus_selinux_post_init after.  This ensures that
7878         we don't lose the policyreload notification thread that
7879         bus_selinux_init created before forking previously.
7880         
7881         * bus/test-main.c (test_pre_hook): Update for split.
7882
7883 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7884
7885         Patch from Johan Fischer <linux@fischaz.com>
7886         
7887         * mono/doc/Makefile.am (install-data-local): Added directory
7888         install for DESTDIR
7889
7890 2004-10-29  Colin Walters  <walters@redhat.com>
7891
7892         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7893         parameter for fd to write pid to.       
7894
7895         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7896         
7897         * bus/bus.c (bus_context_new): Pass print_pid_fd
7898         to _dbus_become_daemon (bug #1720)
7899
7900 2004-10-29  Colin Walters  <walters@redhat.com>
7901
7902         Patch from Ed Catmur <ed@catmur.co.uk>
7903
7904         * mono/doc/Makefile.am (install-data-local): Handle
7905         DESTDIR.
7906
7907 2004-10-29  Colin Walters  <walters@redhat.com>
7908
7909         * bus/.cvsignore, qt/.cvsignore: Update.
7910
7911 2004-10-29  Colin Walters  <walters@redhat.com>
7912
7913         Patch from Kristof Vansant <de_lupus@pandora.be>
7914
7915         * configure.in: Detect Slackware.
7916         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7917         * bus/rc.messagebus.in: New file.
7918
7919 2004-10-29  Colin Walters  <walters@redhat.com>
7920
7921         * tools/dbus-monitor.c (filter_func): Return
7922         DBUS_HANDLER_RESULT_HANDLED in filter function
7923         for now.  See:
7924         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7925
7926 2004-10-29  Colin Walters  <walters@redhat.com>
7927
7928         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7929
7930         * bus/services.c (bus_registry_acquire_service): 
7931         Correctly retrieve service name from DBusString
7932         for printing.
7933
7934 2004-10-29  Colin Walters  <walters@redhat.com>
7935
7936         * dbus/dbus-glib.h: Update documentation to not
7937         refer to internal APIs.
7938
7939 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7940
7941         * mono/Arguments.cs (GetDBusTypeConstructor):
7942         type.UnderlyingSystemType will return "System.Byte" if you do it
7943         on "byte[]", which is not what we want.  So check the type.IsArray
7944         property and use System.Array instead.
7945
7946 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7947
7948         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7949         the DBusUserInfo structure since this is passed into the function.
7950         This would cause a double free when the function that allocated
7951         the structure would try to free it when an error occured.
7952
7953         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7954         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7955         for service activation to avoid 32bit/64bit parallel install issues
7956
7957 2004-10-21  Colin Walters  <walters@verbum.org>
7958
7959         * AUTHORS: Fix my email address, the @gnu.org one
7960         has been bouncing for some time.  Also add J5.
7961         
7962 2004-10-21  Colin Walters  <walters@verbum.org>
7963
7964         * dbus/dbus-transport-unix.c (do_authentication): Return
7965         authentication status to callers.
7966         (unix_handle_watch): If we completed authentication this round,
7967         don't do another read.  Instead wait until the next iteration,
7968         after we've read any pending data in the auth buffer.
7969         (unix_do_iteration): Ditto.
7970         (unix_handle_watch): Updated for new do_authentication prototype.
7971
7972 2004-10-18  Colin Walters  <walters@verbum.org>
7973
7974         * bus/selinux.c (bus_selinux_enabled): Handle
7975         --disable-selinux case.
7976         
7977 2004-10-18  Colin Walters  <walters@verbum.org>
7978
7979         * bus/selinux.h: Add bus_selinux_enabled.
7980         
7981         * bus/selinux.c (bus_selinux_enabled): Implement it.
7982         
7983         * bus/config-parser.c (struct include): Add
7984         if_selinux_enabled member.
7985         (start_busconfig_child): Parse if_selinux_enabled
7986         attribute for include.
7987         (bus_config_parser_content): Handle it.
7988
7989         * bus/session.conf.in, bus/system.conf.in: Add
7990         inclusion of context mapping to default config files;
7991         conditional on SELinux being enabled.
7992         
7993         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7994         
7995         * test/data/invalid-config-files/badselinux-1.conf, 
7996         test/data/invalid-config-files/badselinux-2.conf:
7997         Test files for bad syntax.
7998         
7999 2004-10-17  Colin Walters  <walters@verbum.org>
8000
8001         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
8002         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
8003         format specifier mismatches.
8004
8005 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8006
8007         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8008         format string.
8009
8010         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8011         pointer (bug #1540, Leonardo Boiko).
8012
8013 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8014
8015         * mono/BusDriver.cs: Changed BusDriver struct to remove
8016         the ServiceCreated and ServiceDeleted events and replace them
8017         with the new ServiceOwnerChanged event.
8018
8019         * mono/example/BusListener.cs: Added a new example program,
8020         which listens for and reports any ServiceOwnerChanged events
8021         on the bus driver.
8022
8023         * mono/example/Makefile.am (DESTDIR): Build changes for the
8024         new BusListener.cs example.
8025
8026 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8027
8028         * bus/signals.c (bus_match_rule_parse): validate the components of
8029         match rules (bug #1439).
8030
8031         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8032
8033 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8034
8035         * doc/dbus-specification.xml: document ServiceOwnerChanged
8036         signal.
8037         
8038         * bus/driver.c, bus/driver.h, bus/services.c: Use
8039         ServiceOwnerChanged signal instead of ServiceCreated and
8040         ServiceDeleted.
8041         
8042         * bus/dispatch.c: update testcase for the new signal.
8043
8044 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8045
8046         Patch from Nat Friedman <nat@novell.com>
8047
8048         * mono/Makefile.am: A number of small build fixes to allow "make
8049         distcheck" to succeed.
8050
8051         * mono/example/Makefile.am: "make distcheck" fixes.
8052
8053         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8054         key in @srcdir@.
8055
8056         * test/Makefile.am: "make distcheck" fixes.
8057
8058 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8059
8060         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8061
8062         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8063
8064         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8065         messages after the first one (bug #1389).
8066         
8067         * bus/dispatch.c (check_double_hello_message): add a test case for
8068         the double hello message bug.
8069         (check_existent_service_activation): fix check of spawning error.
8070         
8071 2004-09-16  David Zeuthen  <david@fubar.dk>
8072
8073         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8074
8075 2004-09-12  David Zeuthen  <david@fubar.dk>
8076
8077         Patch from Kay Sievers <kay.sievers@vrfy.org>
8078
8079         * bus/bus.c (bus_context_new):
8080         * bus/bus.h:
8081         * bus/main.c (usage)
8082         (main):
8083         Add commandline option --nofork to override configuration file
8084         setting.
8085
8086 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8087
8088         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8089         compilers don't like it (bug #974).
8090
8091 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8092
8093         * qt/connection.*: Applied patch by Jérôme Lodewyck
8094         <lodewyck@clipper.ens.fr> to integrate an existing
8095         connection into the Qt eventloop
8096
8097 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8098
8099         * mono/BusDriver.cs: Added.  This is a class for interacting with
8100         the org.freedesktop.DBus service.
8101
8102         * mono/Message.cs: Added a mechanism to expose the message that is
8103         currently being dispatched via the static Message.Current
8104         property.  Added Message.Sender and Message.Destination
8105         properties.
8106
8107         * mono/Handler.cs: Expose the dispatched message via
8108         Message.Current when handling method calls.
8109
8110         * mono/Service.cs: Expose the dispatched message via
8111         Message.Current when handling signal emissions.
8112         
8113         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8114         Connection.BaseService property.
8115
8116 2004-08-28  Havoc Pennington  <hp@redhat.com>
8117
8118         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8119
8120         More fixes from Steve Grubb
8121         
8122         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8123         (_dbus_listen_tcp_socket): fix fd leak
8124
8125         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8126         EINTR to a bit lower in the code
8127
8128 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8129
8130         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8131         TRUE if we are inquiring about the existence of the built-in
8132         org.freedesktop.DBus service.
8133
8134 2004-08-25  John Palmieri  <johnp@redhat.com>
8135         * bus/config-parser.c:
8136         (struct PolicyType): Add POLICY_CONSOLE
8137         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8138         (start_busconfig_child): Sets up console element when
8139         <policy at_console=""> is encountered in a policy file
8140         (append_rule_from_element): Convert console elements to console
8141         rules.
8142
8143         * bus/policy.c: 
8144         (bus_policy_create_client_policy): Add console rules to the client
8145         policy based on if the client is at the console
8146         (bus_policy_append_console_rule): New function for adding a
8147         console rule to a policy
8148         (bus_policy_merge): Handle console rule merging
8149
8150         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8151         where we check for console user files
8152         
8153         * dbus/dbus-sysdeps.c:
8154         (_dbus_file_exists): New function which checks if the given
8155         file exists
8156         (_dbus_user_at_console): New function which does the system
8157         specific process of checking if the user is at the console
8158
8159         * dbus/dbus-userdb.c:
8160         (_dbus_is_console_user): New function converts a UID to user name
8161         and then calls the system specific _dbus_user_at_console to 
8162         see if the user is at the console and therefor a console user
8163
8164 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8165
8166         * bus/config-parser.c (set_limit):
8167         * bus/dbus-daemon-1.1.in:
8168         * test/data/valid-config-files/many-rules.conf: set the
8169         max_match_rules_per_connection limt from the config file. 
8170
8171         * doc/busconfig.dtd: update the DTD.
8172
8173         * bus/driver.c: remove some unused variables.
8174
8175 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8176
8177         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8178         it's been replaced by dbus_g_bus_get
8179
8180 2004-08-23  Colin Walters  <walters@redhat.com>
8181
8182         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8183
8184         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8185
8186         * bus/selinux.c: Create a thread for policy reload notification.
8187         (bus_selinux_get_policy_root): Implement.
8188
8189         * bus/config-parser.c (start_busconfig_child)
8190         (bus_config_parser_content): Support SELinux-root relative
8191         inclusion.
8192
8193         * configure.in <HAVE_SELINUX>: Add -lpthread.
8194         
8195         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8196         (test_post_hook): Move memory checking into here.
8197         (test_pre_hook, test_post_hook): Move SELinux checks in
8198         here, but conditional on a DBUS_TEST_SELINUX environment
8199         variable.  Unfortunately we can't run the SELinux checks
8200         as a normal user, since they won't have any permissions
8201         for /selinux.  So this will have to be tested manually
8202         for now, until we have virtualization for most of
8203         libselinux.
8204         
8205 2004-08-23  Havoc Pennington  <hp@redhat.com>
8206
8207         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8208         drop supplementary groups, suggested by Steve Grubb
8209
8210 2004-08-20  Colin Walters  <walters@redhat.com>
8211
8212         * bus/config-parser.c (start_busconfig_child): Remove some unused
8213         variables.
8214         
8215         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8216         warning.
8217
8218 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8219
8220         * configure.in: If --enable-mono is passed in, if we can't find
8221         mono error out.
8222
8223         * mono/Makefile.am: Use /gacutil to install assemblies into the
8224         GAC and not /root.
8225
8226 2004-08-12  Havoc Pennington  <hp@redhat.com>
8227
8228         * NEWS: update for 0.22
8229
8230         * configure.in: release 0.22
8231
8232 2004-08-11  Colin Walters  <walters@redhat.com>
8233
8234         * tools/dbus-send.c (main, usage): Add --reply-timeout
8235         argument.
8236
8237 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8238
8239         * bus/bus.c (process_config_first_time_only): get rid of an unused
8240         DBusError that was causing a memoy leak (bug #989).
8241
8242         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8243         fix compilation on Solaris/Forte C (bug #974)
8244
8245         * bus/main.c (main): plug two minuscule memleaks.
8246
8247 2004-08-10  Havoc Pennington  <hp@redhat.com>
8248
8249         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8250
8251 2004-08-09  Havoc Pennington  <hp@redhat.com>
8252
8253         * COPYING: switch to Academic Free License version 2.1 instead of
8254         2.0, to resolve complaints about patent termination clause.
8255
8256 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8257
8258         * README: added documentation for the --enable-python 
8259         configure switch.
8260
8261 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8262
8263         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8264         _unref in the SELinux support.
8265
8266         * doc/busconfig.dtd: update DTD for SELinux support.
8267
8268         * bus/config-loader-libxml.c: fix error handler and parser
8269         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8270
8271         * configure.in: remove the warning about libxml2.
8272
8273         * dbus/dbus-bus.c: silence doxygen warning.
8274
8275 2004-07-31  Colin Walters  <walters@redhat.com>
8276
8277         * configure.in: Move #error in SELinux check to its own line.
8278
8279 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8280
8281         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8282         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8283         dbus_error_set.
8284
8285         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8286         broken by the change in the _SET_OOM macros.
8287
8288 2004-07-31  Colin Walters  <walters@redhat.com>
8289
8290         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8291         BUS_SET_OOM.
8292
8293 2004-07-31  Colin Walters  <walters@redhat.com>
8294
8295         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8296         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8297         AC_MSG_CHECKING.
8298
8299 2004-07-24  Havoc Pennington  <hp@redhat.com>
8300
8301         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8302
8303         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8304         functionality
8305
8306         * configure.in: add --enable-selinux
8307         
8308         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8309
8310         * bus/main.c (main): initialize and shut down selinux
8311
8312         * bus/connection.c: store SELinux ID on each connection, to avoid 
8313         repeated getting of the string context and converting it into 
8314         an ID
8315
8316         * bus/bus.c (bus_context_get_policy): new accessor, though it
8317         isn't used
8318         (bus_context_check_security_policy): check whether the security
8319         context of sender connection can send to the security context of
8320         recipient connection
8321
8322         * bus/config-parser.c: add parsing for <selinux> and <associate>
8323         
8324         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8325         implement dbus_connection_get_unix_fd()
8326
8327         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8328         function, used by the selinux stuff
8329         
8330 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8331
8332         * bus/config-loader-libxml.c: complete the implementation of
8333         libxml backend for config file loader. Doesn't work with full OOM
8334         test yet. 
8335         
8336         * configure.in: change error when selecting libxml into a warning.
8337         
8338         * test/data/invalid-config-files: add two non-well-formed XML
8339         files. 
8340         
8341         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8342         
8343         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8344         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8345         be necessary to read all the buffer. (bug #894)
8346
8347         * bus/activation.c (bus_activation_activate_service): fix a
8348         potential assertion failure (bug #896). Small optimization in the
8349         case of auto-activation messages.
8350
8351         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8352         add test case for byte-through-vararg bug (#901). patch by Kimmo
8353         Hämäläinen. 
8354
8355 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8356
8357         * python/dbus.py:
8358         * python/dbus_bindings.pyx.in:
8359         Add dbus.init_gthreads (), allow emit_signal to pass
8360         arguments to the signal.
8361         
8362 2004-07-24  Havoc Pennington  <hp@redhat.com>
8363
8364         * AUTHORS: add some people, not really comprehensively, let me
8365         know if I missed you
8366
8367 2004-07-24  Havoc Pennington  <hp@redhat.com>
8368
8369         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8370         Owen
8371
8372         * test/Makefile.am (DIST_SUBDIRS): here also
8373
8374 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8375
8376         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8377         breaking build on Solaris, reported by Farhad Saberi on the ML.
8378
8379         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8380         va_arg invocation to account for integer promotion in the case of
8381         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8382
8383         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8384         _dbus_list_get_first_link, not _dbus_list_get_first.
8385
8386         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8387
8388         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8389         handler functions so that the asserts in _dbus_object_subtree_unref
8390         do not fail.
8391
8392         * dbus/dbus-transport-unix.c (do_reading):
8393         _dbus_transport_queue_messages return value is of type
8394         dbus_bool_t, not DBusDispatchStatus.
8395         
8396 2004-07-19  David Zeuthen  <david@fubar.dk>
8397
8398         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8399
8400         * bus/dispatch.c:
8401         (check_get_connection_unix_user): Debug says GetProperty; but the
8402         method is called GetConnectionUnixUser
8403         (check_get_connection_unix_process_id): New function
8404         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8405         also call check_get_connection_unix_process_id()
8406         
8407         * bus/driver.c:
8408         (bus_driver_handle_get_connection_unix_process_id): New function,
8409         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8410         interface
8411         
8412         * dbus/dbus-auth.c:
8413         (handle_server_data_external_mech): Set pid from the credentials
8414         obtained from the socket
8415         
8416         * dbus/dbus-connection.c:
8417         (dbus_connection_get_unix_process_id): New function
8418         
8419         * dbus/dbus-connection.h: 
8420         Add prototype for dbus_connection_get_unix_process_id
8421         
8422         * dbus/dbus-transport.c:
8423         (_dbus_transport_get_unix_process_id): New function
8424         
8425         * dbus/dbus-transport.h:
8426         Add prototype for _dbus_transport_get_unix_process_id
8427         
8428 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8429
8430         * dbus/dbus-message.c: Message counter fix, patch by Christian
8431         Hammond <chipx86@gnupdate.org>
8432
8433 2004-07-18  Seth Nickell  <seth@gnome.org>
8434
8435         * python/dbus.py:
8436         * python/dbus_bindings.pyx.in:
8437         * python/tests/test-client.py:
8438
8439         Add dbus.ByteArray and dbus_bindings.ByteArray
8440         types so that byte streams can be passed back.
8441
8442         Give jdahlin the heaps of credit that are so
8443         rightfully his.
8444         
8445 2004-07-12  Seth Nickell  <seth@gnome.org>
8446
8447         * python/dbus.py:
8448
8449         Add message argument to the default object_method_handler
8450         function.
8451         
8452         * python/dbus_bindings.pyx.in:
8453
8454         Automatically return NIL when passed an empty list
8455         (we can't pass back a list since lists are typed
8456         and we don't have any idea what type the the client
8457         intended the list to be... :-( )
8458         
8459 2004-07-10  Seth Nickell  <seth@gnome.org>
8460
8461         * python/examples/Makefile.am:
8462
8463         Fix distcheck breakage caused by new examples.
8464
8465 2004-07-10  Seth Nickell  <seth@gnome.org>
8466
8467         * python/dbus.py:
8468
8469         Add "message" argument to service-side dbus.Object
8470         methods. This will break existing services written
8471         using the python bindings, but will allow extraction
8472         of all the message information (e.g. who its from).
8473
8474         Add improved "object oriented" signal handling/emission.
8475         
8476         * python/examples/example-service.py:
8477
8478         Nix this example.
8479         
8480         * python/examples/example-signal-emitter.py:
8481         * python/examples/example-signal-recipient.py:
8482
8483         Two new examples that show how to emit and receive
8484         signals using the new APIs.
8485         
8486         * python/examples/example-signals.py:
8487         * python/examples/gconf-proxy-service.py:
8488         * python/examples/gconf-proxy-service2.py:
8489
8490         Add "message" argument to service methods.
8491
8492 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8493
8494         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8495         * dbus/bus.c (dbus_bus_get_unix_user)
8496         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8497         method of org.freedesktop.DBus interface.
8498
8499         * bus/dispatch.c: test case
8500
8501 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8502
8503         * python/Makefile.am: switched include directory from glib/ to dbus/
8504         since dbus-glib.h moved
8505  
8506 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8507
8508         * configure.in: prevent building the gcj stuff and libxml loader
8509         since they are broken.
8510
8511 2004-06-20  Havoc Pennington  <hp@redhat.com>
8512
8513         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8514         codes from the dbus error names
8515         
8516         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8517         as dbus/dbus-glib.h and that breakage is now visible due to 
8518         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8519         
8520         * glib/dbus-glib.h: s/gproxy/g_proxy/
8521
8522         * dbus/dbus-shared.h: new header to hold stuff shared with
8523         binding APIs
8524         
8525         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8526         than dbus-errors.h
8527
8528         * glib/dbus-glib.h (dbus_set_g_error): move to
8529         dbus-glib-lowlevel.h
8530
8531         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8532         of stuff to enable this
8533
8534         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8535
8536         * a bunch of other changes with the same basic "separate glib 
8537         bindings from dbus.h" theme
8538         
8539 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8540
8541         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8542
8543         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8544
8545 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8546
8547         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8548         the reply value of the ServiceExists message.
8549
8550 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8551
8552         * python/dbus_bindings.pyx.in: No longer need to parse path
8553         elements and pass them as arrays of strings.  The C API now
8554         accepts plain path strings.
8555         (_build_parsed_path): removed 
8556
8557 2004-06-07  Havoc Pennington  <hp@redhat.com>
8558
8559         * doc/TODO: remove auto-activation item since it's done; sort
8560         items by importance/milestone
8561
8562 2004-06-07  Havoc Pennington  <hp@redhat.com>
8563
8564         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8565         random signature when using REQUIRED_FIELDS (this hack won't work
8566         in the long term)
8567
8568         * dbus/dbus-message.c: change the signature to be a header field,
8569         instead of message->signature special-case string. Incremental
8570         step forward. Then we can fix up code to send the signature in the
8571         message, then fix up code to validate said signature, then fix up
8572         code to not put the typecodes inline, etc.
8573         (load_one_message): don't make up the signature after the fact
8574         (decode_header_data): require signature field for the known
8575         message types
8576
8577         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8578
8579         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8580
8581 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8582
8583         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8584
8585         * mono/Handler.cs: Updated to follow new path argument for
8586         (un-)registering objects.
8587
8588         * mono/example/Makefile.am:
8589         * mono/Makefile.am:
8590         * configure.in: Bumped required version for mono and use new -pkg
8591         syntax for deps
8592
8593 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8594
8595         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8596         registration functions take the path argument as char* instead of
8597         char**.
8598
8599         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8600         split off the path decompostion part of
8601         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8602         warnings. 
8603
8604         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8605         
8606 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8607  
8608         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8609         machine approach.  A state is implemented as a function that
8610         handles incoming events as specified for that state.
8611         
8612         * doc/dbus-specification.xml: Update auth protocol state machine
8613         specification to match implementation.  Remove some leftover
8614         base64 examples.
8615
8616 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8617
8618         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8619         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8620         quiet doxygen.
8621
8622         * Doxyfile.in: remove deprecated options.
8623
8624         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8625         glib/test-thread.h, glib/test-thread-client.c,
8626         glib/test-thread-server.c, glib/test-profile.c,
8627         glib/test-dbus-glib.c: remove these unused files.
8628
8629 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8630
8631         * dbus/dbus-object-tree.c
8632         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8633         non-fallback handlers (bug #684).
8634         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8635         (find_subtree_recurse): report wether the returned subtree is an
8636         exact match or a "fallback" match higher up in the tree.
8637         (object_tree_test_iteration): update test case.
8638
8639 2004-06-01  Seth Nickell  <seth@gnome.org>
8640
8641         * python/dbus_bindings.pyx.in:
8642         * python/tests/test-client.py:
8643
8644         Round off basic type support. Add dicts (yay!), and 
8645         remaining array types.
8646
8647         Make MessageIter more general so it works for dicts too.
8648
8649         Mark all loop variables as C integers.
8650         
8651 2004-05-31  Havoc Pennington  <hp@redhat.com>
8652
8653         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8654         "in" before "out"
8655
8656         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8657
8658         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8659         option that runs the tests, and start filling in some code
8660         including for starters just dumping the interfaces to stdout
8661
8662         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8663
8664         * test/data/valid-introspection-files/lots-of-types.xml: test of
8665         an example introspection file
8666
8667         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8668         "node" (I think...)
8669
8670 2004-05-31  Seth Nickell  <seth@gnome.org>
8671
8672         * python/dbus_bindings.pyx.in:
8673         * python/tests/test-client.py:
8674
8675         Test Suite: 1
8676         Python Bindings: 0
8677
8678         Fix string array memory trashing bug... oops...
8679
8680 2004-05-30  Seth Nickell  <seth@gnome.org>
8681
8682         * python/dbus.py:
8683
8684         Add a nicer-but-less-flexible alternate API for handling 
8685         calls to virtual objects in dbus.ObjectTree.
8686
8687         Screw up the argument order to the dbus.Object constructor
8688         for consistency with dbus.ObjectTree (and to make dbus_methods
8689         optional for future extension)
8690         
8691         * python/examples/Makefile.am:
8692         * python/examples/gconf-proxy-service.py:
8693         * python/examples/gconf-proxy-service2.py:
8694
8695         Alternate implementation of gconf-proxy-service using the
8696         nicer dbus.ObjectTree API.
8697         
8698         * python/examples/example-service.py:
8699         * python/tests/test-server.py
8700
8701         Reverse the argument order to deal with dbus.Object constructor
8702         changes.
8703         
8704 2004-05-30  Seth Nickell  <seth@gnome.org>
8705
8706         * python/examples/example-client.py:
8707         * python/examples/example-service.py:
8708
8709         Take it back. Lists seem to work but they're broken
8710         in the test suite. Make the base examples use
8711         lists (works fine).
8712
8713 2004-05-30  Seth Nickell  <seth@gnome.org>
8714
8715         * python/dbus_bindings.pyx.in:
8716         * python/tests/test-client.py:
8717
8718         Add some more tests and fix errors that crop up.
8719         Unfortunately, currently it seems like marshalling
8720         and unmarshalling of lists is completely broken :-(
8721
8722 2004-05-30  Seth Nickell  <seth@gnome.org>
8723
8724         * python/dbus_bindings.pyx.in:
8725
8726         Add support for ObjectPath type.
8727
8728         * python/dbus.py:
8729
8730         Refactor message handling code to a common function.
8731         
8732         * python/tests/test-client.py:
8733         * python/tests/test-server.py:
8734
8735         Add tests that check to make sure values of all types
8736         can be echoed from a service w/o mangling.
8737         
8738 2004-05-29  Seth Nickell  <seth@gnome.org>
8739
8740         * python/dbus.py:
8741
8742         Add ObjectTree class which allows implementation
8743         of trees of "virtual" objects. Basically the python
8744         wrapper for "register_fallback".
8745         
8746         * python/examples/Makefile.am
8747         * python/examples/gconf-proxy-client.py:
8748         * python/examples/gconf-proxy-service.py:
8749
8750         Implement a simple GConf proxy service that supports
8751         get/set on string and int GConf keys using the ObjectTree.
8752         
8753 2004-05-29  Seth Nickell  <seth@gnome.org>
8754
8755         * python/dbus.py:
8756         * python/examples/example-client.py:
8757         * python/examples/example-service.py:
8758         * python/examples/list-system-services.py:
8759
8760         Add SessionBus, SystemBus and ActivationBus classes
8761         so you don't need to know the special little BUS_TYPE
8762         flag.
8763         
8764 2004-05-29  Havoc Pennington  <hp@redhat.com>
8765
8766         * bus/config-parser.c (process_test_valid_subdir): temporarily
8767         stop testing config parser OOM handling, since expat has issues
8768         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8769
8770         * bus/dbus-daemon-1.1.in: change requested_reply to
8771         send_requested_reply/receive_requested_reply so we can send the
8772         replies, not just receive them.
8773
8774         * bus/config-parser.c: parse the new
8775         send_requested_reply/receive_requested_reply
8776
8777         * bus/policy.c (bus_client_policy_check_can_send): add
8778         requested_reply argument and use it
8779
8780         * bus/bus.c (bus_context_check_security_policy): pass through
8781         requested_reply status to message send check
8782
8783         * bus/system.conf.in: adapt to requested_reply change
8784         
8785 2004-05-28  Havoc Pennington  <hp@redhat.com>
8786
8787         * test/glib/test-service-glib.c (main): remove unused variable
8788
8789         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8790
8791         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8792         from the enum, no longer in use.
8793
8794         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8795         works right.
8796
8797         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8798         whether error_name passed in is a valid error name.
8799
8800 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8801
8802         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8803         OBJECT_PATH and OBJECT_PATH_ARRAY
8804
8805 2004-05-28  Seth Nickell  <seth@gnome.org>
8806
8807         * python/examples/Makefile.am:
8808
8809         Forget to add Makefile.am. Do not pass go.
8810
8811 2004-05-28  Michael Meeks  <michael@ximian.com>
8812
8813         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8814         fix no int64 case.
8815
8816         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8817
8818         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8819         (_dbus_message_iter_get_basic_type_array): impl.
8820         drastically simplify ~all relevant _get methods to use these.
8821         (_dbus_message_iter_append_basic_array),
8822         (dbus_message_iter_append_basic): impl
8823         drastically simplify ~all relevant _append methods to use these.
8824
8825         * dbus/dbus-message-builder.c (parse_basic_type) 
8826         (parse_basic_array, lookup_basic_type): impl.
8827         (_dbus_message_data_load): prune scads of duplicate /
8828         cut & paste coding.
8829
8830         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8831         (_dbus_demarshal_basic_type): implement,
8832         (demarshal_and_validate_len/arg): beef up debug.
8833         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8834
8835 2004-05-27  Seth Nickell  <seth@gnome.org>
8836
8837         * configure.in:
8838         * python/Makefile.am:
8839
8840         Include the example python apps in the tarball.
8841         
8842         * python/examples/list-system-services.py
8843
8844         Add a python new example that fetches the list of services
8845         from the system bus.
8846         
8847 2004-05-27  Seth Nickell  <seth@gnome.org>
8848
8849         * python/dbus.py:
8850         * python/dbus_bindings.pyx.in:
8851
8852         Fix failure to notify that a signal was not handled,
8853         resulted in hung functions.
8854         
8855 2004-05-25  Colin Walters  <walters@redhat.com>
8856
8857         * tools/dbus-monitor.c (main): Monitor all types of messages.
8858
8859 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8860
8861         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8862         which unregisters the object path and disposes the handler.
8863
8864 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8865  
8866         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8867          
8868         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8869         operands to && so we call dbus_message_iter_next () for the last
8870         argument also.
8871
8872 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8873
8874         * dbus/dbus-object-tree.c
8875         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8876         children even if the requested path isn't registered.
8877         (object_tree_test_iteration): test object_tree_list_registered.
8878
8879         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8880         it to 0.
8881         
8882 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8883
8884         * doc/TODO: Remove resolved items.
8885
8886         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8887         field.
8888         
8889         * bus/connection.c (bus_connections_expect_reply): Enforce the
8890         per-connection limit on pending replies.
8891         
8892         Patch from Jon Trowbridge <trow@ximian.com>:
8893  
8894         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8895         up a watch that triggers a config reload when one end of the pipe
8896         becomes readable.
8897         (signal_handler): Instead of doing the config reload in our SIGHUP
8898         handler, just write to the reload pipe and let the associated
8899         watch handle the reload when control returns to the main loop.
8900  
8901         * bus/driver.c (bus_driver_handle_reload_config): Added.
8902         Implements a ReloadConfig method for requesting a configuration
8903         file reload via the bus driver.
8904  
8905 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8906
8907         * HACKING: Updated release instructions concerning the wiki page.
8908
8909 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8910
8911         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8912         filter against auth->allowed_mechs; we only add allowed mechs in
8913         record_mechanisms().
8914  
8915         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8916         ALLOWED_MECHS to auth-script format so we can set the list of
8917         allowed mechanisms.
8918  
8919         * data/auth/client-out-of-mechanisms.auth-script: New test to
8920         check client disconnects when it is out of mechanisms to try.
8921  
8922         * dbus/dbus-auth.c (process_command): Remove check for lines
8923         longer that 1 MB; we only buffer up maximum 16 kB.
8924  
8925         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8926         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8927         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8928         assume there might be unused bytes.
8929  
8930         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8931         client-out-of-mechs, it is handled in process_reject(). Move check
8932         for max failures to send_rejected(), as it's a server-only thing.
8933
8934         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8935         send_auth(), send_data(), send_rejected(), send_error(),
8936         send_ok(), send_begin() and send_cancel().
8937
8938 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8939
8940         Remove base64 encoding, replace with hex encoding. Original patch
8941         from trow@ximian.com, added error handling.
8942
8943         * dbus/dbus-string.c (_dbus_string_base64_encode)
8944         (_dbus_string_base64_decode): Remove.
8945         (_dbus_string_hex_decode): Add end_return argument so we can
8946         distinguish between OOM and invalid hex encoding.
8947         (_dbus_string_test): Remove base64 tests and add test case for
8948         invalid hex.
8949
8950         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8951         Replace base64 with hex.
8952
8953         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8954         for invalid hex encoded data in auth protocol.
8955
8956 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8957
8958         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8959         leak.
8960
8961 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8962
8963         * mono/dbus-sharp.dll.config.in: Added for GAC
8964         * mono/dbus-sharp.snk: Added for GAC
8965         * mono/Assembly.cs.in: Added for GAC
8966         * mono/Makefile.am: Changes for GAC installation        
8967         * configure.in: Added refs for dbus-sharp.dll.config.in and
8968         Assembly.cs.in. More fixes for mono testing
8969         * mono/example/Makefile.am: Changed var to CSC
8970         * Makefile.am: Changed flag name to DBUS_USE_CSC
8971
8972 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8973
8974         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8975         * mono/doc/*: Added documentation framework
8976         * configure.in: Added monodoc check
8977         * README: Added description of mono configure flags
8978
8979 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8980
8981         * doc/dbus-specification.xml: Added a "Required" column to the 
8982         header fields table and changed the "zero or more" verbage in
8983         the above paragraph to read "The header must contain the required 
8984         named header fields and zero or more of the optional named header 
8985         fields".
8986         * test/data/invalid-messages/*.message: Added the required PATH 
8987         named header field to the tests so that they don't fail on 
8988         'Missing path field'
8989
8990 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8991
8992         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8993         the stack by implicitly defining variable and parameter types and
8994         removing the hack of defining C pointers as python objects and later
8995         casting them.
8996
8997 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8998
8999         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
9000
9001 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
9002
9003         * mono/DBusType/Dict.cs: Handle empty dicts
9004         * mono/DBusType/Array.cs: Handle empty arrays
9005         * mono/Arguments.cs: Handle empty arguments
9006
9007 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9008
9009         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9010         field
9011
9012 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9013
9014         * test/data/valid-messages/standard-*.message: Update message
9015         test scripts to new header field names.
9016
9017 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9018
9019         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9020         overflow to times_we_did_each_thing array which would chop off the
9021         first character of the failure_dir string. Increased the size of
9022         the array to 7 to reflect the number of random mutation functions
9023         we have.
9024
9025 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9026
9027         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9028         unix_server->watch here, it is unreffed in disconnect.
9029         (_dbus_server_new_for_tcp_socket): convert NULL host to
9030         "localhost" here so we don't append NULL to address.
9031         
9032         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9033         various addresses, including tcp with no explicit host.
9034
9035 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9036
9037         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9038         fix incorrect setting of .name_offset in the HeaderField (it was
9039         off by two bytes, positioned right after the name and typecode)
9040
9041         * bus/bus.c (bus_context_new, bus_context_unref): test before
9042         calling dbus_server_free_data_slot and _dbus_user_database_unref
9043         in case of an error.
9044
9045         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9046         by libdbus-gtool.
9047
9048 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9049
9050         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9051         _dbus_poll() instead of select().
9052
9053 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9054
9055         * bus/main.c (signal_handler): Reload the configuration files
9056         on SIGHUP.
9057         (main): Set up our SIGHUP handler.
9058
9059         * bus/bus.c (struct BusContext): Store the config file, user and
9060         fork flag in the BusContext.
9061         (process_config_first_time_only): Added.  Contains the code
9062         (previously in bus_context_new) for setting up the BusContext from
9063         the BusConfigParser that should only be run the first time the
9064         config files are read.
9065         (process_config_every_time): Added.  Contains the code (previously
9066         in bus_context_new) for setting up the BusContext from the
9067         BusConfigParser that should be run every time the config files are
9068         read.
9069         (load_config): Added.  Builds a BusConfigParser from the config
9070         files and passes the resulting structure off to
9071         process_config_first_time_only (assuming this is the first time)
9072         and process_config_every_time.
9073         (bus_context_new): All of the config-related code has been moved
9074         to process_config_first_time_only and process_config_every_time.
9075         Now this function just does the non-config-related initializations
9076         and calls load_config.
9077         (bus_context_reload_config): Added.
9078
9079 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9080
9081         * bus/driver.c (bus_driver_handle_get_service_owner):
9082         implement a GetServiceOwner method.
9083         * doc/dbus-specification.xml: document it.
9084         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9085         
9086         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9087         implement, using the bus GetServiceOwner method.
9088
9089         * test/glib/test-dbus-glib.c:
9090         use dbus_gproxy_new_for_service_owner so that we can receive the
9091         signal. 
9092
9093 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9094
9095         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9096         dbus/dbus-message.c, dbus/dbus-protocol.h
9097         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9098
9099         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9100         dbus/dbus-message.c, dbus/dbus-protocol.h
9101         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9102
9103         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9104         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9105         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9106
9107         * doc/dbus-specification.xml (Header Fields Table):
9108         s/SERVICE/DESTINATION
9109         s/SENDER_SERVICE/SENDER
9110
9111
9112 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9113
9114         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9115         a few seconds.
9116
9117 2004-04-13  Michael Meeks  <michael@ximian.com>
9118
9119         * glib/dbus-gobject.c (handle_introspect): split out
9120         (introspect_properties): this.
9121         (handle_introspect): implement this.
9122
9123         * test/glib/Makefile.am: use the absolute path so the bus
9124         daemon's chdir ("/") doesn't kill us dead.
9125
9126         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9127
9128 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9129
9130         * bus/config-parser.c (struct BusConfigParser): Added
9131         included_files field.
9132         (seen_include): Added.  Checks whether or not a file has already
9133         been included by any parent BusConfigParser.
9134         (bus_config_parser_new): Copy the parent's included_files.
9135         (include_file): Track which files have been included, and fail on
9136         circular inclusions.
9137         (process_test_valid_subdir): Changed printf to report if we are
9138         testing valid or invalid conf files.
9139         (all_are_equiv): Changed printf to be a bit clearer about
9140         what we are actually doing.
9141         (bus_config_parser_test): Test invalid configuration files.
9142
9143 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9144
9145         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9146         argument.  If non-null, the newly-constructed BusConfigParser will
9147         be initialized with the parent's BusLimits instead of the default
9148         values.
9149         (include_file): When including a config file, pass in
9150         the current parser as the parent and then copy the BusLimits
9151         from the included BusConfigParser pack to the current parser.
9152         (process_test_valid_subdir): Renamed from process_test_subdir.
9153         (process_test_equiv_subdir): Added.  Walks through a directory,
9154         descending into each subdirectory and loading the config files
9155         it finds there.  If any subdirectory contains two config files
9156         that don't produce identical BusConfigParser structs, fail.
9157         For now, the BusConfigParser's BusPolicies are not compared.
9158         (bus_config_parser_test): Call both process_test_valid_subdir and
9159         process_test_equiv_subdir.
9160
9161         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9162         argument and pass it along to the call to bus_config_parser_new.
9163         Also made a few small changes to allow this code to compile.
9164
9165         * bus/config-loader-expat.c (bus_config_load): Take a parent
9166         argument and pass it along to the call to bus_config_parser_new.
9167
9168         * bus/bus.c (bus_context_new): Load the config file
9169         with a NULL parent argument.
9170
9171 2004-03-29  Michael Meeks  <michael@ximian.com>
9172
9173         * glib/dbus-gobject.c (introspect_properties): split
9174         out, fix mangled 'while' flow control.
9175         (introspect_signals): implement.
9176         (handle_introspect): update.
9177
9178 2004-03-29  Michael Meeks  <michael@ximian.com>
9179
9180         * glib/dbus-gobject.c (set_object_property): split out / 
9181         re-work, use the property type, and not the message type(!)
9182         (get_object_property): ditto.
9183
9184         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9185         (dbus_gvalue_marshal): make this code re-usable, needed
9186         for signals too, also on both proxy and server side.
9187         Re-write for more efficiency / readability.
9188
9189 2004-03-29  Michael Meeks  <michael@ximian.com>
9190
9191         * dbus/dbus-message.c
9192         (dbus_message_new_error_printf): impl.
9193
9194         * dbus/dbus-connection.c
9195         (dbus_connection_unregister_object_path): fix warning.
9196
9197         * configure.in: fix no-mono-installed situation.
9198
9199 2004-03-27  Havoc Pennington  <hp@redhat.com>
9200
9201         Patch from Timo Teräs:
9202         
9203         * tools/dbus-send.c (main): if --print-reply, assume type is
9204         method call; support boolean type args
9205         
9206         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9207         bunch of memleak and logic bugs
9208         
9209 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9210
9211         * mono/Arguments.cs:
9212         * mono/Introspector.cs:
9213         * mono/Handler.cs:
9214         * mono/InterfaceProxy.cs:
9215         * mono/Message.cs
9216         * mono/ProxyBuilder.cs:
9217         * mono/Service.cs:
9218         Added InterfaceProxy class to avoid building proxies for every
9219         object.
9220
9221         * dbus-message.h:
9222         * dbus-message.c (dbus_message_append_args_valist)
9223         (dbus_message_iter_get_object_path)
9224         (dbus_message_iter_get_object_path_array)
9225         (dbus_message_iter_append_object_path)
9226         (dbus_message_iter_append_object_path_array):
9227         Added object_path iter functions to handle OBJECT_PATH arguments
9228         
9229 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9230
9231         First checkin of mono bindings.
9232         * configure.in:
9233         * Makefile.am:
9234         Build stuff for the bindings
9235         * dbus-sharp.pc.in: Added for pkgconfig
9236         
9237 2004-03-21  Havoc Pennington  <hp@redhat.com>
9238
9239         * test/test-service.c (main): remove debug spew
9240
9241 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9242
9243         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9244         arrays
9245
9246         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9247         (dbus_message_iter_init_array_iterator)
9248         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9249         indicate whether the iterator is empty
9250
9251         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9252         warnings
9253
9254 2004-03-19  Havoc Pennington  <hp@redhat.com>
9255
9256         * NEWS: 0.21 updates
9257
9258         * configure.in: 0.21
9259
9260         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9261         
9262         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9263         you don't need pyrex to make dist
9264
9265         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9266         sources; run moc
9267         
9268 2004-03-18  Richard Hult  <richard@imendio.com>
9269
9270         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9271         (dbus_message_set_auto_activation): Add doxygen docs.
9272
9273 2004-03-16  Richard Hult  <richard@imendio.com>
9274
9275         * bus/activation.c: (bus_activation_service_created),
9276         (bus_activation_send_pending_auto_activation_messages),
9277         (bus_activation_activate_service):
9278         * bus/activation.h:
9279         * bus/dispatch.c: (bus_dispatch),
9280         (check_nonexistent_service_auto_activation),
9281         (check_service_auto_activated),
9282         (check_segfault_service_auto_activation),
9283         (check_existent_service_auto_activation), (bus_dispatch_test):
9284         * bus/driver.c: (bus_driver_handle_activate_service):
9285         * bus/services.c: (bus_registry_acquire_service):
9286         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9287         (dbus_message_get_auto_activation):
9288         * dbus/dbus-message.h:
9289         * dbus/dbus-protocol.h: Implement auto-activation.
9290         
9291         * doc/dbus-specification.xml: Add auto-activation to the spec.
9292
9293 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9294
9295         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9296         fix a bug with CUSTOM types.
9297
9298         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9299         a unit test for this bug (used to fail).
9300
9301 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9302
9303         * bus/activation.c:
9304         (babysitter_watch_callback): notify all pending activations waiting for
9305           the same exec that the activation failed.
9306         (bus_activation_activate_service): shortcut the activation if we 
9307           already waiting for the same executable to start up.
9308
9309 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9310
9311         * bus/activation.c: 
9312         - Added service file reloading. 
9313           Each service files directory is kept in an hash table in 
9314           BusActivation and each BusActivationEntry knows what .service-file it
9315           was read from. So when you try to activate a service the bus will 
9316           check if it's been updated, removed or if new .service-files has 
9317           been installed.
9318         - Test code at the bottom for the service file reloading.
9319         * bus/test-main.c: (main):
9320         * bus/test.h:
9321         - added service reloading test.
9322         * dbus/dbus-sysdeps.c: 
9323         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9324
9325 2004-03-08  Michael Meeks  <michael@ximian.com>
9326
9327         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9328         bail immediately if disconnected, to avoid busy loop.
9329
9330         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9331         cleanup cut/paste/inefficiency.
9332
9333 2004-03-01  David Zeuthen  <david@fubar.dk>
9334
9335         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9336         bug where args were used twice. This bug resulted in a segfault
9337         on a Debian/PPC system when starting the messagebus daemon. Include
9338         dbus-sysdeps.h for DBUS_VA_COPY
9339
9340         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9341
9342         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9343         appropriate va_copy implementation. From GLib
9344         
9345 2004-02-24  Joe Shaw  <joe@ximian.com>
9346
9347         * bus/services.c (bus_registry_acquire_service): We need to pass
9348         in the service name to dbus_set_error() to prevent a crash.
9349
9350 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9351
9352         * AUTHORS: Reveal my True identity.
9353
9354 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9355
9356         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9357         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9358
9359 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9360
9361         * doc/TODO: Added not about better error check of configuration files.
9362
9363 2003-12-02  Richard Hult  <richard@imendio.com>
9364
9365         * Update AFL version to 2.0 throughout the source files to reflect
9366         the update that was done a while ago.
9367
9368 2003-12-02  Richard Hult  <richard@imendio.com>
9369
9370         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9371         wrote_dict_key to FALSE on the iter that the dict is appended to,
9372         just like when appending other types. Fixes a bug where a dict
9373         couldn't be put inside a dict.
9374         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9375         (message_iter_test, _dbus_message_test): Add test case for dict
9376         inside dict.
9377
9378 2003-12-01  David Zeuthen  <david@fubar.dk>
9379
9380         * python/dbus.py: Add the actual message when calling the reciever
9381         of a signal such that parameters can be inspected. Add the method
9382         remove_signal_receiver
9383         
9384 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9385
9386         * bus/*.[ch]:
9387         * dbus/*.[ch]:
9388         * glib/*.[ch]: Made ref functions return the pointer
9389
9390 2003-11-25  Zack Rusin  <zack@kde.org>
9391
9392         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9393
9394         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9395         wrappers,
9396
9397         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9398         the Integrator and to better fit with the server,
9399
9400 2003-11-24  Zack Rusin  <zack@kde.org>
9401
9402         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9403         the integrator handles it now
9404
9405         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9406         since QTimer wasn't really meant to be used the way DBusTimeout is
9407
9408 2003-11-24  Zack Rusin  <zack@kde.org>
9409
9410         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9411         Integrator class which integrates D-BUS with the Qt event loop,
9412
9413         * qt/connection.h, qt/connection.cpp: Move all the code which
9414         was dealing with D-BUS integration to the Integrator class,
9415         and start using Integrator,
9416
9417 2003-11-23  Zack Rusin  <zack@kde.org>
9418
9419         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9420         wrapper
9421
9422         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9423         switching namespaces to DBusQt, reworking the class,
9424
9425         * Makefile.cvs: switching dependencies so that it matches KDE 
9426         schematics,
9427         
9428         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9429         the library
9430
9431 2003-11-19  Havoc Pennington  <hp@redhat.com>
9432
9433         * NEWS: update
9434
9435         * configure.in: bump version to 0.20
9436
9437         * configure.in (have_qt): add yet another place to look for qt
9438         (someone hand trolltech a .pc file...)
9439
9440 2003-11-01  Havoc Pennington  <hp@redhat.com>
9441
9442         * doc/dbus-specification.xml: add state machine docs on the auth
9443         protocol; just a first draft, I'm sure it's wrong.      
9444
9445 2003-10-28  David Zeuthen  <david@fubar.dk>
9446
9447         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9448         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9449         
9450 2003-10-28  Havoc Pennington  <hp@redhat.com>
9451
9452         * dbus/dbus-message.c (get_next_field): delete unused function
9453
9454 2003-10-28  Havoc Pennington  <hp@redhat.com>
9455
9456         * bus/expirelist.c (do_expiration_with_current_time): detect
9457         failure of the expire_func due to OOM
9458
9459         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9460
9461         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9462         NoReply error that's now created by the bus when the service exits
9463
9464 2003-10-28  Havoc Pennington  <hp@redhat.com>
9465
9466         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9467         tests for set_path, set_interface, set_member, etc.
9468
9469         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9470
9471         * dbus/dbus-message.c (set_string_field): always just delete and
9472         re-append the field; accept NULL for deletion
9473         (re_align_fields_recurse): reimplement
9474         
9475 2003-10-26  Havoc Pennington  <hp@redhat.com>
9476
9477         * dbus/dbus-connection.c: fix docs to properly describe the
9478         disconnected message
9479         (_dbus_connection_notify_disconnected): remove this function; 
9480         we can't synchronously add the disconnected message, we have to 
9481         do it after we've queued any remaining real messages
9482         (_dbus_connection_get_dispatch_status_unlocked): queue the
9483         disconnect message only if the transport has finished queueing all
9484         its real messages and is disconnected.
9485         (dbus_connection_disconnect): update the dispatch status here
9486
9487 2003-10-22  Havoc Pennington  <hp@redhat.com>
9488
9489         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9490
9491         * bus/connection.c (bus_transaction_send_from_driver): set the
9492         destination to the connection's base service
9493
9494 2003-10-20  Havoc Pennington  <hp@redhat.com>
9495
9496         hmm, make check is currently not passing.
9497         
9498         * doc/dbus-specification.xml: add requirement that custom type
9499         names follow the same rules as interface names.
9500
9501         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9502         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9503         'map'
9504
9505         * doc/dbus-specification.xml: update type codes to match
9506         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9507         CUSTOM. Add type OBJECT_PATH to the spec.
9508
9509 2003-10-17  Havoc Pennington  <hp@redhat.com>
9510
9511         * bus/driver.c (create_unique_client_name): use "." as separator
9512         in base service names instead of '-'
9513
9514         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9515         byte at the end of the string
9516
9517         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9518         optimization macros since string validation seems to be a slow
9519         point.
9520         
9521         * doc/dbus-specification.xml: restrict valid
9522         service/interface/member/error names. Add test suite code for the
9523         name validation.
9524
9525         * dbus/dbus-string.c: limit service/interface/member/error names 
9526         to [0-9][A-Z][a-z]_
9527
9528         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9529         format arg to verbose spew
9530
9531         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9532         memory, return instead of g_error
9533
9534         * test/test-service.c (path_message_func): support emitting a
9535         signal on request
9536
9537         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9538         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9539         assuming the activation bus was the session bus so that services
9540         started manually will still register.
9541         (init_connections_unlocked): fix so that in OOM situation we get
9542         the same semantics when retrying the function
9543         
9544         * test/test-service.c (main): change to use path registration, to
9545         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9546         than DBUS_BUS_SESSION
9547
9548 2003-10-16  Havoc Pennington  <hp@redhat.com>
9549
9550         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9551
9552         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9553         coverage of the tests
9554         (coverage-report.txt): don't move the .da and .bbg files around
9555
9556 2003-10-16  Havoc Pennington  <hp@redhat.com>
9557
9558         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9559         to put there
9560
9561 2003-10-16  Havoc Pennington  <hp@redhat.com>
9562
9563         * bus/connection.c (bus_pending_reply_expired): either cancel or
9564         execute, not both
9565         (bus_connections_check_reply): use unlink, not remove_link, as we
9566         don't want to free the link; fixes double free mess
9567
9568         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9569         where no reply was received
9570
9571         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9572         fix a refcount leak
9573
9574         * bus/signals.c (match_rule_matches): add special cases for the
9575         bus driver, so you can match on sender/destination for it.
9576
9577         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9578         DBUS_PRINT_BACKTRACE is set
9579
9580         * dbus/dbus-internals.c: add pid to assertion failure messages
9581
9582         * dbus/dbus-connection.c: add message type code to the debug spew
9583
9584         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9585         sender=foo not service=foo
9586
9587         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9588         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9589         DBUS_ACTIVATION_ADDRESS instead
9590
9591         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9592         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9593
9594         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9595         context struct
9596
9597         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9598         (dbus_message_iter_get_object_path_array): new function (half
9599         finished, disabled for the moment)
9600         
9601         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9602         DBUS_MESSAGE_TYPE_ERROR
9603
9604         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9605         avoid redirecting stderr to /dev/null
9606         (babysit): close stdin if not doing the "exit_with_session" thing
9607
9608         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9609         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9610         stdout/stdin, so things don't get confused
9611         
9612         * bus/system.conf.in: fix to allow replies, I modified .conf
9613         instead of .conf.in again.
9614
9615 2003-10-14  David Zeuthen  <david@fubar.dk>
9616
9617         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9618         argtype to arg_type when raising unknown arg type exception.
9619         Changed type list to reflect the changes in dbus-protocol.h so 
9620         the bindings actually work.
9621
9622 2003-10-14  Havoc Pennington  <hp@redhat.com>
9623
9624         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9625         to have a bug keeping it from outputting the .da files sometimes
9626         (string_get_string): don't append garbage nul bytes to the string.
9627
9628 2003-10-15  Seth Nickell  <seth@gnome.org>
9629
9630         * python/Makefile.am:
9631
9632         Include dbus_h_wrapper.h in the dist tarball.
9633
9634 2003-10-14  Havoc Pennington  <hp@redhat.com>
9635
9636         * bus/bus.c (bus_context_check_security_policy): revamp this to
9637         work more sanely with new policy-based requested reply setup
9638
9639         * bus/connection.c (bus_transaction_send_from_driver): set bus
9640         driver messages as no reply
9641
9642         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9643         requested_reply attribute on allow/deny rules
9644
9645         * bus/system.conf: add <allow requested_reply="true"/>
9646
9647         * bus/driver.c (bus_driver_handle_message): fix check for replies
9648         sent to the bus driver, which was backward. How did this ever work
9649         at all though? I think I'm missing something.
9650
9651         * dbus/dbus-message.c (decode_header_data): require error and
9652         method return messages to have a reply serial field to be valid
9653         (_dbus_message_loader_queue_messages): break up this function;
9654         validate that reply serial and plain serial are nonzero; 
9655         clean up the OOM/error handling.
9656         (get_uint_field): don't return -1 from this
9657         (dbus_message_create_header): fix signed/unsigned bug
9658
9659         * bus/connection.c (bus_connections_expect_reply): save serial of
9660         the incoming message, not reply serial
9661
9662 2003-10-14  Havoc Pennington  <hp@redhat.com>
9663
9664         * bus/connection.c: implement pending reply tracking using
9665         BusExpireList
9666
9667         * bus/bus.c (bus_context_check_security_policy): verify that a
9668         reply is pending in order to allow a reply to be sent. Deny 
9669         messages of unknown type.
9670
9671         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9672
9673         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9674         (bus_context_get_reply_timeout): new
9675
9676 2003-10-13  Seth Nickell  <seth@gnome.org>
9677
9678         * python/Makefile.am:
9679
9680         Pass "make distcheck": remove a couple files from DIST_FILES
9681         that weren't included in the final version.
9682
9683 2003-10-12  Havoc Pennington  <hp@pobox.com>
9684
9685         Added test code that 1) starts an actual bus daemon and 2) uses
9686         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9687         more testing possible, but this is the basic framework.
9688         
9689         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9690         empty proxy lists from the proxy list hash
9691
9692         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9693         couple of return_if_fail checks
9694
9695         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9696         to allocate, so everything is cleared to NULL as it should be.
9697
9698         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9699         source as data to dbus_connection_set_timeout_functions() as the 
9700         timeout functions expected
9701
9702         * test/glib/run-test.sh: add a little script to start up a message
9703         bus and run tests using it
9704
9705         * tools/dbus-launch.1: updates
9706
9707         * tools/dbus-launch.c (main): add --config-file option
9708
9709         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9710         that could never be reached.
9711
9712         * dbus/dbus-message.c (dbus_message_new_method_return) 
9713         (dbus_message_new_error, dbus_message_new_signal): set the
9714         no-reply-expected flag on all these. Redundant, but may
9715         as well be consistent.
9716
9717 2003-10-11  Havoc Pennington  <hp@pobox.com>
9718
9719         * test/decode-gcov.c (function_solve_graph): make broken block
9720         graph a nonfatal error since it seems to be broken. Need to debug
9721         this.
9722
9723         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9724         can't just check type > INVALID < LAST anymore
9725
9726         * dbus/dbus-message.c (dbus_message_get_signature): new function
9727         (dbus_message_has_signature): new function
9728         (struct DBusMessage): add signature field (right now it isn't sent
9729         over the wire, just generated on the fly)
9730         (dbus_message_copy): copy the signature, and init strings to
9731         proper length to avoid some reallocs
9732         (dbus_message_iter_init_array_iterator): return void, since it
9733         can't fail
9734         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9735         (_dbus_message_loader_queue_messages): add silly temporary hack to
9736         fill in message->signature on load
9737
9738         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9739         characters, so they are relatively human-readable.
9740
9741 2003-10-11  Havoc Pennington  <hp@pobox.com>
9742
9743         * dbus/dbus-message.c (_dbus_message_test): add more test
9744         coverage, but #if 0 for now since they uncover a bug 
9745         not fixed yet; I think in re_align_field_recurse()
9746         (re_align_field_recurse): add FIXME about broken assertion
9747
9748         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9749
9750         * bus/connection.c: share a couple code bits with expirelist.c
9751
9752         * bus/expirelist.h, bus/expirelist.c: implement a generic
9753         expire-items-after-N-seconds facility, was going to share between
9754         expiring connections and replies, decided not to use for expiring
9755         connections for now.
9756
9757         * COPYING: include AFL 2.0 (still need to change all the file headers)
9758
9759 2003-10-09  Havoc Pennington  <hp@redhat.com>
9760
9761         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9762         gcc 3.3. Not that we do anything about it yet.
9763
9764         * bus/signals.c (bus_match_rule_parse): impose max length on the
9765         match rule text
9766
9767         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9768
9769 2003-10-09  Havoc Pennington  <hp@redhat.com>
9770
9771         Make matching rules theoretically work (add parser).
9772         
9773         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9774         the case where destination is explicitly specified as bus driver
9775         and someone else is eavesdropping.
9776         
9777         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9778         definition of eavesdropping and assertion
9779
9780         * tools/dbus-send.c (main): use dbus_message_type_from_string
9781
9782         * bus/signals.c (bus_match_rule_parse): implement
9783
9784         * dbus/dbus-message.c (dbus_message_type_from_string): new
9785
9786         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9787
9788 2003-10-02  Havoc Pennington  <hp@pobox.com>
9789
9790         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9791         dbus_gproxy_oneway_call
9792
9793         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9794         (dbus_server_setup_with_g_main): fix to allow calling them more
9795         than once on the same args
9796         (dbus_bus_get_with_g_main): new function
9797
9798 2003-10-02  Havoc Pennington  <hp@redhat.com>
9799
9800         * doc/dbus-tutorial.xml: write some stuff
9801
9802 2003-09-29  Havoc Pennington  <hp@pobox.com>
9803
9804         * configure.in: split checks for Doxygen from XML docs, check for
9805         xmlto
9806
9807         * doc/Makefile.am: XML-ify all the docs, and add a blank
9808         dbus-tutorial.xml
9809
9810 2003-09-29  Havoc Pennington  <hp@pobox.com>
9811
9812         * Merge dbus-object-names branch. To see the entire patch 
9813         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9814         it's huuuuge though.
9815         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9816         
9817 2003-09-28  Havoc Pennington  <hp@pobox.com>
9818
9819         * HACKING: update to reflect new server
9820
9821 2003-09-26  Seth Nickell  <seth@gnome.org>
9822
9823         * python/dbus.py:
9824         * python/examples/example-signals.py:
9825
9826         Start implementing some notions of signals. The API
9827         is really terrible, but they sort of work (with the
9828         exception of being able to filter by service, and to
9829         transmit signals *as* a particular service). Need to
9830         figure out how to make messages come from the service
9831         we registered :-(
9832         
9833         * python/dbus_bindings.pyx.in:
9834
9835         Removed duplicate message_handler callbacks.
9836         
9837 2003-09-25  Havoc Pennington  <hp@redhat.com>
9838
9839         * bus/session.conf.in: fix my mess
9840
9841 2003-09-25  Havoc Pennington  <hp@pobox.com>
9842
9843         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9844
9845 2003-09-25  Seth Nickell  <seth@gnome.org>
9846
9847         * python/examples/example-service.py:
9848
9849         Johan notices complete wrong code in example-service, but
9850         completely wrong in a way that works exactly the same (!).
9851         Johan is confused, how could this possibly work? Example
9852         code fails to serve purpose of making things clear.
9853         Seth fixes.
9854
9855 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9856
9857         * doc/dbus-specification.sgml: don't require header fields
9858         to be 4-byte aligned and specify that fields should be
9859         distinguished from padding by the fact that zero is not
9860         a valid field name.
9861         
9862         * doc/TODO: remove re-alignment item and add item to doc
9863         the OBJECT_PATH type.
9864         
9865         * dbus/dbus-message.c:
9866         (HeaderField): rename the original member to value_offset
9867         and introduce a name_offset member to keep track of where
9868         the field actually begins.
9869         (adjust_field_offsets): remove.
9870         (append_int_field), (append_uint_field),
9871         (append_string_field): don't align the start of the header
9872         field to a 4-byte boundary.
9873         (get_next_field): impl finding the next marhsalled field
9874         after a given field.
9875         (re_align_field_recurse): impl re-aligning a number of
9876         already marshalled fields.
9877         (delete_field): impl deleting a field of any type and
9878         re-aligning any following fields.
9879         (delete_int_or_uint_field), (delete_string_field): remove.
9880         (set_int_field), (set_uint_field): no need to re-check
9881         that we have the correct type for the field.
9882         (set_string_field): ditto and impl re-aligning any
9883         following fields.
9884         (decode_header_data): update to take into account that
9885         the fields aren't 4-byte aligned any more and the new
9886         way to distinguish padding from header fields. Also,
9887         don't exit when there is too much header padding.
9888         (process_test_subdir): print the directory.
9889         (_dbus_message_test): add test to make sure a following
9890         field is re-aligned correctly after field deletion.
9891         
9892         * dbus/dbus-string.[ch]:
9893         (_dbus_string_insert_bytes): rename from insert_byte and
9894         allow the insert of multiple bytes.
9895         (_dbus_string_test): test inserting multiple bytes.
9896
9897         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9898         warning note to docs about having to re-align any
9899         marshalled values following the string.
9900         
9901         * dbus/dbus-message-builder.c:
9902         (append_string_field), (_dbus_message_data_load):
9903         don't align the header field.
9904         
9905         * dbus/dbus-auth.c: (process_test_subdir): print the
9906         directory.
9907         
9908         * test/break-loader.c: (randomly_add_one_byte): upd. for
9909         insert_byte change.
9910         
9911         * test/data/invalid-messages/bad-header-field-alignment.message:
9912         new test case.
9913         
9914         * test/data/valid-messages/unknown-header-field.message: shove
9915         a dict in the unknown field.
9916
9917 2003-09-25  Seth Nickell  <seth@gnome.org>
9918
9919         * python/dbus.py:
9920         * python/dbus_bindings.pyx.in:
9921
9922         Handle return values.
9923         
9924         * python/examples/example-client.py:
9925         * python/examples/example-service.py:
9926
9927         Pass back return values from the service to the client.
9928         
9929 2003-09-24  Seth Nickell  <seth@gnome.org>
9930
9931         * python/dbus.py:
9932
9933         Connect Object methods (when you are sharing an object) up... pass
9934         in a list of methods to be shared. Sharing all the methods just
9935         worked out too weird. You can now create nice Services over the
9936         DBus in Python. :-)
9937         
9938         * python/dbus_bindings.pyx.in:
9939
9940         Keep references to user_data tuples passed into C functions so 
9941         Python doesn't garbage collect on us.
9942
9943         Implement MethodReturn and Error subclasses of Message for creating
9944         DBusMessage's of those types.
9945         
9946         * python/examples/example-client.py:
9947         * python/examples/example-service.py:
9948
9949         Simple example code showing both how create DBus services and objects,
9950         and how to use them.
9951
9952 2003-09-23  Havoc Pennington  <hp@pobox.com>
9953
9954         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9955
9956 2003-09-23  Havoc Pennington  <hp@redhat.com>
9957
9958         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9959         (dbus_gproxy_disconnect_signal): implement
9960         (dbus_gproxy_manager_remove_signal_match): implement
9961         (dbus_gproxy_manager_add_signal_match): implement
9962         (dbus_gproxy_oneway_call): implement
9963
9964 2003-09-23  Havoc Pennington  <hp@pobox.com>
9965
9966         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9967         subclass. This means dropping the transparent thread safety of the
9968         proxy; you now need a separate proxy per-thread, or your own
9969         locking on the proxy. Probably right anyway.
9970         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9971
9972 2003-09-22  Havoc Pennington  <hp@redhat.com>
9973
9974         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9975
9976 2003-09-21  Seth Nickell  <seth@gnome.org>
9977
9978         First checkin of the Python bindings.
9979         
9980         * python/.cvsignore:
9981         * python/Makefile.am:
9982         * python/dbus_bindings.pyx.in:
9983         * python/dbus_h_wrapper.h:
9984
9985         Pieces for Pyrex to operate on, building a dbus_bindings.so
9986         python module for low-level access to the DBus APIs.
9987         
9988         * python/dbus.py:
9989
9990         High-level Python module for accessing DBus objects.
9991
9992         * configure.in:
9993         * Makefile.am:
9994
9995         Build stuff for the python bindings.
9996
9997         * acinclude.m4:
9998
9999         Extra macro needed for finding the Python C header files.
10000
10001 2003-09-21  Havoc Pennington  <hp@pobox.com>
10002
10003         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
10004         implementing the proxy manager, didn't get very far.
10005
10006         * dbus/dbus-bus.c (dbus_bus_add_match): new
10007         (dbus_bus_remove_match): new
10008
10009         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10010         path_name argument; adjust the other not-yet-implemented 
10011         gproxy constructors to be what I think they should be.
10012
10013 2003-09-21  Havoc Pennington  <hp@pobox.com>
10014
10015         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10016         by default for message bus connections.
10017
10018         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10019         exit_on_disconnect flag is set and we process the disconnected
10020         signal.
10021         (dbus_connection_set_exit_on_disconnect): new function
10022
10023 2003-09-21  Havoc Pennington  <hp@pobox.com>
10024
10025         Get matching rules mostly working in the bus; only actually
10026         parsing the rule text remains. However, the client side of
10027         "signal connections" hasn't been started, this patch is only the
10028         bus side.
10029         
10030         * dbus/dispatch.c: fix for the matching rules changes
10031         
10032         * bus/driver.c (bus_driver_handle_remove_match)
10033         (bus_driver_handle_add_match): send an ack reply from these
10034         method calls
10035
10036         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10037         arguments, reported by Seth Nickell
10038
10039         * bus/config-parser.c (append_rule_from_element): support
10040         eavesdrop=true|false attribute on policies so match rules 
10041         can be prevented from snooping on the system bus.
10042
10043         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10044         and "destination" in attribute names; fix some docs bugs; 
10045         add eavesdrop=true|false attribute
10046
10047         * bus/driver.c (bus_driver_handle_add_match)
10048         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10049         messages
10050
10051         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10052         rid of broadcast service concept, signals are just always broadcast
10053
10054         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10055         mostly implement matching rules stuff (currently only exposed as signal
10056         connections)
10057
10058 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10059
10060         * doc/dbus-specification.sgml: Change the header field name
10061         to be an enum and update the rest of the spec to reference
10062         the fields using the conventinal name.
10063
10064         * dbus/dbus-protocol.h: update to reflect the spec.
10065
10066         * doc/TODO: add item to remove the 4 byte alignment requirement.
10067         
10068         * dbus/dbus-message.c: Remove the code to generalise the
10069         header/body length and serial number header fields as named
10070         header fields so we can reference field names using the 
10071         protocol values.
10072         (append_int_field), (append_uint_field), (append_string_field):
10073         Append the field name as a byte rather than four chars.
10074         (delete_int_or_uint_field), (delete_string_field): reflect the
10075         fact that the field name and typecode now occupy 4 bytes instead
10076         of 8.
10077         (decode_string_field), (decode_header_data): update to reflect
10078         protocol changes and move the field specific encoding from
10079         decode_string_field() back into decode_header_data().
10080         
10081         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10082         Add utility to aid debugging.
10083         
10084         * dbus/dbus-message-builder.c:
10085         (append_string_field), (_dbus_message_data_load): Update to
10086         reflect protocol changes; Change the FIELD_NAME directive
10087         to HEADER_FIELD and allow it to take the field's conventional
10088         name rather than the actual value.
10089         
10090         * test/data/*/*.message: Update to use HEADER_FIELD instead
10091         of FIELD_NAME; Always align the header on an 8 byte boundary
10092         *before* updating the header length.
10093
10094 2003-09-15  Havoc Pennington  <hp@pobox.com>
10095
10096         * dbus/dbus-pending-call.c: add the get/set object data
10097         boilerplate as for DBusConnection, etc. Use generic object data
10098         for the notify callback.
10099
10100         * glib/dbus-gparser.c (parse_node): parse child nodes
10101
10102         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10103         
10104         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10105         contain functions shared between the convenience lib and the
10106         installed lib
10107
10108         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10109         -export-symbols-regex to the GLib library
10110
10111         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10112         fix the locking in here, and add a default handler for
10113         Introspect() that just returns sub-nodes.
10114
10115 2003-09-14  Havoc Pennington  <hp@pobox.com>
10116
10117         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10118         rather than gfoo consistent
10119
10120         * glib/dbus-gproxy.h: delete for now, move contents to
10121         dbus-glib.h, because the include files don't work right since we
10122         aren't in the dbus/ subdir.
10123         
10124         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10125         (dbus_gproxy_end_call): finish
10126         (dbus_gproxy_begin_call): finish
10127
10128         * glib/dbus-gmain.c (dbus_set_g_error): new
10129
10130         * glib/dbus-gobject.c (handle_introspect): include information
10131         about child nodes in the introspection
10132
10133         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10134         function to help in implementation of introspection
10135
10136         * dbus/dbus-object-tree.c
10137         (_dbus_object_tree_list_registered_and_unlock): new function
10138
10139 2003-09-12  Havoc Pennington  <hp@pobox.com>
10140
10141         * glib/dbus-gidl.h: add common base class for all the foo_info
10142         types
10143
10144         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10145         similar to kdcop
10146
10147         * test/Makefile.am: try test srcdir -ef . in addition to test
10148         srcdir = ., one of them should work (yeah lame)
10149         
10150         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10151         library
10152         
10153         * glib/dbus-gparser.h: make description_load routines return
10154         NodeInfo* not Parser*
10155
10156         * Makefile.am (SUBDIRS): build test dir after all library dirs
10157
10158         * configure.in: add GTK+ detection
10159
10160 2003-09-07  Havoc Pennington  <hp@pobox.com>
10161
10162         * Make Doxygen contented.
10163
10164 2003-09-07  Havoc Pennington  <hp@pobox.com>
10165
10166         * doc/dbus-specification.sgml: more updates
10167
10168 2003-09-06  Havoc Pennington  <hp@pobox.com>
10169
10170         * doc/dbus-specification.sgml: partial updates
10171
10172         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10173         zillionth time; hopefully I edited the right file this time.
10174
10175         * bus/config-parser.c (append_rule_from_element): support
10176         send_type, send_path, receive_type, receive_path
10177
10178         * bus/policy.c: add message type and path to the list of things
10179         that can be "firewalled"
10180
10181 2003-09-06  Havoc Pennington  <hp@pobox.com>
10182
10183         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10184         (dbus_connection_register_object_path): make this not handle
10185         messages to paths below the given path
10186
10187 2003-09-03  Havoc Pennington  <hp@pobox.com>
10188
10189         * test/glib/Makefile.am: add this with random glib-linked test
10190         programs
10191
10192         * glib/Makefile.am: remove the random test programs from here,
10193         leave only the unit tests
10194
10195         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10196         uscore/javacaps conversion, and fix     
10197         (get_object_property, set_object_property): change to .NET
10198         convention for mapping props to methods, set_FooBar/get_FooBar, 
10199         since one language has such a convention we may as well copy it. 
10200         Plus real methods in either getFooBar or get_foo_bar style won't 
10201         collide with this convention.
10202
10203 2003-09-01  Havoc Pennington  <hp@pobox.com>
10204
10205         * glib/dbus-gparser.c: implement
10206
10207         * glib/dbus-gobject.c: start implementing skeletons support
10208
10209         * configure.in: when disabling checks/assert, also define
10210         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10211
10212 2003-09-01  Havoc Pennington  <hp@pobox.com>
10213
10214         * glib/Makefile.am: rearrange a bunch of files and get "make
10215         check" framework set up
10216
10217 2003-08-31  Havoc Pennington  <hp@pobox.com>
10218
10219         * fix build with --disable-tests
10220
10221 2003-08-30  Havoc Pennington  <hp@pobox.com>
10222
10223         * dbus/dbus-connection.c: purge DBusMessageHandler
10224
10225         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10226         use callbacks everywhere
10227
10228 2003-08-30  Havoc Pennington  <hp@pobox.com>
10229
10230         * test/data/valid-config-files/system.d/test.conf: change to 
10231         root for the user so warnings don't get printed
10232
10233         * dbus/dbus-message.c: add dbus_message_get_path,
10234         dbus_message_set_path
10235         
10236         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10237         dispatching to a path
10238
10239         * dbus/dbus-string.c (_dbus_string_validate_path): add
10240
10241         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10242         (_dbus_marshal_object_path): implement
10243
10244         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10245         to contain the path to the target object
10246         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10247         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10248
10249 2003-08-30  Havoc Pennington  <hp@pobox.com>
10250
10251         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10252
10253 2003-08-29  Havoc Pennington  <hp@pobox.com>
10254
10255         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10256         registered
10257         (struct DBusObjectSubtree): shrink this
10258         a lot, since we may have a lot of them
10259         (_dbus_object_tree_free_all_unlocked): implement
10260         (_dbus_object_tree_dispatch_and_unlock): implement
10261
10262 2003-08-29  Havoc Pennington  <hp@pobox.com>
10263
10264         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10265
10266 2003-08-28  Havoc Pennington  <hp@pobox.com>
10267
10268         purge DBusObjectID
10269         
10270         * dbus/dbus-connection.c: port to no ObjectID, create a
10271         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10272
10273         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10274         everything except UnregisterFunction and MessageFunction
10275         
10276         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10277         add DBUS_TYPE_OBJECT_PATH
10278         
10279         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10280         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10281         path-based object IDs
10282
10283 2003-08-25  Havoc Pennington  <hp@pobox.com>
10284
10285         Just noticed that dbus_message_test is hosed, I wonder when I
10286         broke that. I thought make check was passing earlier...
10287         
10288         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10289         container tree, will replace most of dbus-object-registry
10290
10291         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10292         screwup
10293
10294 2003-08-19  Havoc Pennington  <hp@pobox.com>
10295
10296         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10297         (dbus_message_is_error): fix this function
10298
10299         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10300         match
10301
10302         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10303         reflect clarified man page
10304         (bus_client_policy_check_can_send): ditto
10305         
10306         * bus/session.conf.in: fixup
10307
10308         * bus/system.conf.in: fixup
10309
10310 2003-08-18  Havoc Pennington  <hp@redhat.com>
10311
10312         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10313
10314         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10315         dumb bug created earlier (wrong order of args to
10316         decode_header_data())
10317         
10318         * tools/dbus-send.c: port
10319
10320         * tools/dbus-print-message.c (print_message): port
10321
10322         * test/data/*messages: port all messages over
10323         
10324         * dbus/dbus-message-builder.c: support including 
10325         message type
10326         
10327         * bus/driver.c: port over
10328         
10329         * bus/dispatch.c: port over to new stuff
10330
10331         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10332         rename disconnect signal to "Disconnected"
10333
10334 2003-08-17  Havoc Pennington  <hp@pobox.com>
10335
10336         This doesn't compile yet, but syncing up so I can hack on it from
10337         work. What are branches for if not broken code? ;-)
10338         
10339         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10340         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10341         DBUS_HEADER_FIELD_ERROR_NAME
10342         
10343         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10344         for the interface+member pairs
10345         (string_hash): change to use g_str_hash algorithm
10346         (find_direct_function, find_string_function): refactor these to
10347         share most code.
10348         
10349         * dbus/dbus-message.c: port all of this over to support 
10350         interface/member fields instead of name field
10351
10352         * dbus/dbus-object-registry.c: port over
10353         
10354         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10355         from _dbus_string_validate_name
10356
10357         * bus/dbus-daemon-1.1: change file format for the 
10358         <deny>/<allow> stuff to match new message naming scheme
10359
10360         * bus/policy.c: port over
10361
10362         * bus/config-parser.c: parse new format
10363         
10364 2003-08-16  Havoc Pennington  <hp@pobox.com>
10365
10366         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10367         broken assertion
10368
10369         * glib/dbus-gproxy.c: some hacking
10370
10371 2003-08-15  Havoc Pennington  <hp@redhat.com>
10372
10373         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10374
10375         * dbus/dbus-connection.c
10376         (dbus_connection_send_with_reply_and_block): factor out internals;
10377         change to convert any error replies to DBusError instead of 
10378         returning them as a message
10379
10380 2003-08-15  Havoc Pennington  <hp@pobox.com>
10381
10382         * dbus/dbus-connection.c, 
10383         dbus/dbus-pending-call.c: Finish the pending call stuff
10384
10385 2003-08-14  Havoc Pennington  <hp@redhat.com>
10386
10387         * dbus/dbus-pending-call.c: start on new object that will replace
10388         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10389         replies
10390
10391         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10392         with remote interfaces
10393
10394         * dbus/dbus-gidl.c: do the boring boilerplate in here
10395         
10396 2003-08-12  Havoc Pennington  <hp@pobox.com>
10397
10398         * bus/dispatch.c (bus_dispatch): make this return proper 
10399         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10400
10401         * dbus/dbus-errors.c (dbus_set_error): use
10402         _dbus_string_append_printf_valist
10403
10404         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10405         (_dbus_string_append_printf): new
10406
10407         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10408         UNKNOWN_METHOD
10409
10410         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10411         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10412         message is unhandled.
10413
10414 2003-08-11  Havoc Pennington  <hp@pobox.com>
10415
10416         * bus/test.c (client_disconnect_handler): change to return
10417         HANDLED (would have been REMOVE_MESSAGE)
10418
10419         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10420         HANDLED/NOT_YET_HANDLED instead of
10421         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10422         should be used.
10423
10424 2003-08-10  Havoc Pennington  <hp@pobox.com>
10425
10426         * tools/dbus-send.c (main): add --type argument, for now
10427         supporting only method_call and signal types.
10428
10429         * tools/dbus-print-message.c: print message type
10430
10431         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10432         init connection->objects
10433
10434         * doc/dbus-specification.sgml: fix sgml
10435
10436         * bus/*.c: port over to object-instance API changes
10437
10438         * test/test-service.c: ditto
10439         
10440         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10441         name, we will have to fix up the rest of the code to also handle
10442         this
10443         (dbus_message_new): generic message-creation call
10444         (set_string_field): allow appending name field
10445
10446 2003-08-06  Havoc Pennington  <hp@pobox.com>
10447
10448         * dbus/dbus-object-registry.c: implement signal connection 
10449         and dispatch
10450
10451         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10452
10453         * dbus/dbus-internals.c (_dbus_memdup): new function
10454
10455 2003-08-02  Havoc Pennington  <hp@pobox.com>
10456
10457         * dbus/dbus-message.c (dbus_message_get_no_reply)
10458         (dbus_message_set_no_reply): add these and remove
10459         set_is_error/get_is_error
10460
10461         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10462         remove the ERROR flag, since there's now an ERROR type
10463
10464 2003-08-01  Havoc Pennington  <hp@pobox.com>
10465
10466         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10467         implement
10468
10469         * dbus/dbus-message.c (dbus_message_get_type): new function
10470
10471         * doc/dbus-specification.sgml: add "type" byte to messages
10472
10473 2003-08-01  Havoc Pennington  <hp@pobox.com>
10474
10475         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10476         a message type enum to distinguish kinds of message
10477         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10478         that need not be replied to
10479
10480 2003-08-01  Havoc Pennington  <hp@pobox.com>
10481
10482         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10483         (unpack_8_octets): fix no-64-bit-int bug
10484
10485         * dbus/dbus-object-registry.c (validate_id): validate the 
10486         connection ID bits, not just the instance ID.
10487
10488         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10489         the connection-global 33 bits of the object ID
10490
10491         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10492         object ID in the new way
10493
10494         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10495         define server/client/instance bits.
10496
10497 2003-07-30  Havoc Pennington  <hp@pobox.com>
10498
10499         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10500         build
10501
10502 2003-07-13  Havoc Pennington  <hp@pobox.com>
10503
10504         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10505         fields to DBusObjectVTable and DBusObjectInfo
10506
10507 2003-07-12  Havoc Pennington  <hp@pobox.com>
10508
10509         * dbus/dbus-object-registry.c: implement unit test,
10510         fix bugs discovered in process
10511
10512         * dbus/dbus-connection.c: remove handler_table and
10513         register_handler(), add DBusObjectRegistry usage
10514
10515         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10516         (dbus_object_id_set_null): new functions
10517
10518 2003-07-08  Havoc Pennington  <hp@pobox.com>
10519
10520         * dbus/dbus-object.c: implement some of this
10521
10522         * dbus/dbus-object-registry.c
10523         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10524         param
10525         (_dbus_object_registry_new): handle OOM
10526
10527 2003-07-08  Havoc Pennington  <hp@pobox.com>
10528
10529         * dbus/dbus-object.h: sketch out an API for registering objects
10530         with a connection, that allows us to use as little as 24 bytes
10531         per object and lets application code represent an object in 
10532         any conceivable way.
10533
10534         * dbus/dbus-object-registry.c: implement the hard bits of the
10535         DBusConnection aspect of object API. Not yet wired up.
10536         
10537 2003-07-06  Havoc Pennington  <hp@pobox.com>
10538
10539         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10540         (_dbus_marshal_object_id): new
10541         (_dbus_demarshal_object_id): new
10542         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10543         consolidate identical switch cases. Don't conditionalize handling
10544         of DBUS_TYPE_UINT64, need to handle the type always.
10545         (_dbus_marshal_validate_arg): consolidate identical cases, and
10546         handle DBUS_TYPE_OBJECT_ID
10547
10548         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10549
10550         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10551
10552 2003-09-28  Havoc Pennington  <hp@pobox.com>
10553
10554         * real 0.13 release
10555
10556 2003-09-28  Havoc Pennington  <hp@pobox.com>
10557
10558         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10559         to work with Debian db2html
10560
10561 2003-09-28  Havoc Pennington  <hp@pobox.com>
10562
10563         * configure.in: 0.13
10564
10565         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10566         stylesheet-images for benefit of Debian
10567         
10568         Change back to using filesystem-linked sockets for the system
10569         bus, so only root can create the default system bus address.
10570         
10571         * bus/system.conf.in: change to use
10572         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10573
10574         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10575         from here.
10576
10577         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10578         here, and AC_DEFINE DBUS_SYSTEM_PATH
10579
10580 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10581
10582         * doc/TODO:
10583         * doc/busconfig.dtd:
10584         Add busconfig DTD.
10585         
10586 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10587
10588         * doc/dbus-specification.sgml:
10589         Add activation reply values.
10590         
10591 2003-08-05  Havoc Pennington  <hp@redhat.com>
10592
10593         * configure.in: 0.12
10594
10595 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10596
10597         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10598         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10599         (add_watch), (remove_watch), (create_source):
10600         Refcount fds, fixes some reentrancy issues.
10601         
10602 2003-07-30  Havoc Pennington  <hp@redhat.com>
10603
10604         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10605         bus address to be abstract if we have abstract sockets
10606
10607         * NEWS: update
10608
10609 2003-07-28  Havoc Pennington  <hp@redhat.com>
10610
10611         * bus/messagebus.in: fix to avoid processname/servicename 
10612         confusion, from Michael Kearey
10613         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10614         
10615 2003-07-23  Havoc Pennington  <hp@pobox.com>
10616
10617         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10618         fix from Andy Hanton to remove broken "+1"
10619
10620 2003-07-16  Havoc Pennington  <hp@pobox.com>
10621
10622         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10623         babysitter process, as suggested by Thomas Leonard, so 
10624         an "eval `dbus-launch --exit-with-session`" will actually 
10625         return
10626
10627 2003-07-16  Havoc Pennington  <hp@pobox.com>
10628
10629         * configure.in: print out EXPANDED_* variables in the summary at
10630         the end; clean up the code that computes EXPANDED_ variables and
10631         get the ones using exec_prefix right. Should make things work
10632         when you build without --prefix
10633
10634 2003-06-29  Havoc Pennington  <hp@pobox.com>
10635
10636         * mono/Test.cs (class Test): fire up a main loop and run it
10637
10638         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10639         done once, the app has to do it
10640
10641 2003-06-26  Havoc Pennington  <hp@pobox.com>
10642
10643         * mono/Connection.cs: set up connection with the glib main loop
10644
10645 2003-07-01  Havoc Pennington  <hp@redhat.com>
10646
10647         * doc/dbus-specification.sgml: clarify the format of a type code,
10648         change suggested by Jim Blandy
10649
10650 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10651
10652         * doc/Makefile.am:
10653         * tools/Makefile.am: Don't assume srcdir == builddir.
10654
10655         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10656         the allocated block.
10657         (_dbus_memory_test): New function.
10658         * dbus/dbus-test.h: Add _dbus_memory_test ().
10659         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10660
10661         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10662         of %c%c%c%c.
10663         (dbus_message_new): Remove obsolete @todo.
10664
10665         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10666         (_dbus_marshal_set_uint64): Fix comment.
10667
10668         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10669         hardcode FIELD_REPLY_SERIAL.
10670
10671         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10672         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10673
10674         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10675         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10676
10677 2003-06-24  Havoc Pennington  <hp@pobox.com>
10678
10679         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10680
10681 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10682
10683         * configure.in:
10684         * gcj/.cvsignore:
10685         * gcj/Hello.java:
10686         * gcj/Makefile.am:
10687         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10688         * gcj/org/.cvsignore:
10689         * gcj/org/Makefile.am:
10690         * gcj/org/freedesktop/.cvsignore:
10691         * gcj/org/freedesktop/Makefile.am:
10692         * gcj/org/freedesktop/dbus/.cvsignore:
10693         * gcj/org/freedesktop/dbus/Makefile.am:
10694         * gcj/org/freedesktop/dbus/Message.java: (Message),
10695         (Message.Message):
10696         * gcj/org/freedesktop/dbus/natMessage.cc:
10697         Fix the build system.
10698
10699 2003-06-22  Havoc Pennington  <hp@pobox.com>
10700
10701         * mono/Connection.cs: add more bindings
10702
10703         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10704         more than once.
10705
10706 2003-06-22  Havoc Pennington  <hp@pobox.com>
10707
10708         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10709         Start wrapping more stuff.
10710
10711 2003-06-22  Havoc Pennington  <hp@pobox.com>
10712
10713         * mono/Message.cs: implement Message.Wrap() that ensures we only
10714         have a single C# wrapper per DBusMessage, assuming it works which
10715         it probably doesn't.
10716
10717         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10718         (dbus_message_free_data_slot): new
10719         (dbus_message_set_data): new
10720         (dbus_message_get_data): new
10721
10722 2003-06-22  Havoc Pennington  <hp@pobox.com>
10723
10724         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10725         (_dbus_data_slot_allocator_alloc): rework these to keep a
10726         reference count on each slot and automatically manage a global
10727         slot ID variable passed in by address
10728
10729         * bus/bus.c: convert to new dataslot API
10730
10731         * dbus/dbus-bus.c: convert to new dataslot API
10732
10733         * dbus/dbus-connection.c: convert to new dataslot API
10734
10735         * dbus/dbus-server.c: convert to new dataslot API
10736
10737         * glib/dbus-gmain.c: ditto
10738
10739         * bus/test.c: ditto
10740
10741         * bus/connection.c: ditto
10742
10743 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10744
10745         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10746         after the gcj checks so that the correct configuration tags
10747         will be added to libtool.
10748
10749         * dbus-glib-1.pc.in: No need to specify any includes since
10750         dbus-1.pc.in has those.
10751
10752 2003-06-22  Havoc Pennington  <hp@pobox.com>
10753
10754         * mono/*, gcj/*, configure.in, Makefile.am:
10755         Check in makefiles and subdirs for mono and gcj bindings.
10756         Neither binding actually exists, just trying to get through
10757         all the build and other boring bits.
10758
10759 2003-06-21  Philip Blundell  <philb@gnu.org>
10760
10761         * tools/dbus-monitor.1: Updated.
10762
10763         * tools/dbus-send.1: Likewise.
10764
10765 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10766
10767         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10768         for hangup and error after checking read so we won't discard
10769         pending data if both hangup and read are set.
10770
10771 2003-06-19  Philip Blundell  <philb@gnu.org>
10772
10773         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10774
10775         * tools/dbus-send.c: Accept both --system and --session.
10776
10777         * tools/dbus-monitor.c: Same here.
10778
10779 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10780
10781         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10782         from C++ (Patch by Miloslav Trmac).
10783
10784 2003-06-15  Joe Shaw  <joe@assbarn.com>
10785
10786         * configure.in: Check for socklen_t.
10787
10788         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10789
10790         * test/test-segfault.c: Add #include <sys/time.h>
10791
10792         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10793         dbus-launch needs it.
10794
10795 2003-06-09  Havoc Pennington  <hp@redhat.com>
10796
10797         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10798         SUN_LEN, it breaks abstract socket usage
10799
10800         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10801         starts of lines.
10802
10803 2003-06-04  Havoc Pennington  <hp@pobox.com>
10804
10805         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10806         using unix:abstract=/foo, and when listening in a tmpdir
10807         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10808
10809         * dbus/dbus-transport.c (_dbus_transport_open): support
10810         unix:abstract=/foo
10811
10812         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10813         support abstract sockets
10814
10815         * dbus/dbus-transport-unix.c
10816         (_dbus_transport_new_for_domain_socket): support abstract sockets
10817
10818         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10819         toggle as an argument, implement abstract namespace support
10820         (_dbus_listen_unix_socket): ditto
10821
10822         * configure.in: add --enable-abstract-sockets and implement
10823         a configure check for autodetection of the right value.
10824
10825 2003-06-01  Havoc Pennington  <hp@pobox.com>
10826
10827         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10828         in /tmp (though on Linux this will end up being useless,
10829         when we add abstract namespace support)
10830
10831         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10832         subst'ing it
10833
10834 2003-05-28  Colin Walters  <walters@verbum.org>
10835
10836         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10837
10838 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10839
10840         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10841
10842 2003-05-17  Colin Walters  <walters@gnu.org>
10843
10844         * tools/dbus-send.c: Don't exit with an error code if --help was
10845         passed.  Default to using the session bus instead of the system
10846         one.
10847
10848         * tools/dbus-launch.c: Ditto.
10849
10850         * tools/dbus-monitor.c: Ditto.
10851
10852         * tools/dbus-send.1: Update with new arguments.
10853
10854         * tools/dbus-launch.c: Emit code to export variables.  New
10855         arguments -s and -c to specify shell syntax, and a bit of code to
10856         autodetect syntax.  Also, allow specifying a program to run.
10857
10858         * tools/dbus-launch.1: Update with new arguments.
10859
10860         * tools/dbus-send.1: Ditto.
10861
10862         * tools/dbus-monitor.1: Ditto.
10863
10864 2003-05-17  Havoc Pennington  <hp@pobox.com>
10865
10866         * bus/config-parser.c (merge_included): merge in policies from
10867         child configuration file.
10868
10869         * bus/policy.c (bus_policy_merge): function to merge two policies
10870         together
10871
10872 2003-05-16  Havoc Pennington  <hp@redhat.com>
10873
10874         * dbus/dbus-connection.c: disable verbose lock spew
10875
10876         * tools/dbus-send.c: add --print-reply command line option
10877
10878         * tools/dbus-print-message.h (print_message): new util function
10879         shared by dbus-send and dbus-monitor
10880
10881         * tools/dbus-monitor.c (handler_func): exit on disconnect
10882
10883         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10884         disconnected, don't try to use the read_watch
10885
10886         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10887         so we can find this bug more easily
10888
10889 2003-05-16  Havoc Pennington  <hp@redhat.com>
10890
10891         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10892         NULL as DBusHashTable is annoyingly likely to do.
10893
10894 2003-05-16  Colin Walters  <walters@verbum.org>
10895
10896         * tools/dbus-monitor.c: Add --session argument and usage()
10897         function.
10898
10899         * tools/dbus-monitor.1: Update with new --session arg.
10900
10901         * bus/Makefile.am (install-data-hook): Create
10902         $(libdir)/dbus-1.0/services so that the session bus is happy.
10903
10904 2003-05-15  Havoc Pennington  <hp@redhat.com>
10905
10906         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10907         on non-x86. ifdef's are evil.
10908
10909 2003-05-15  Havoc Pennington  <hp@redhat.com>
10910
10911         * configure.in: 0.11
10912
10913         * NEWS: update
10914
10915         * bus/Makefile.am (initddir): apparently we are supposed to put
10916         init scripts in /etc/rc.d/init.d not /etc/init.d
10917
10918         * bus/Makefile.am: remove the "you must --enable-tests to make
10919         check" as it broke distcheck
10920
10921         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10922
10923 2003-05-13  James Willcox  <jwillcox@gnome.org>
10924
10925         * configure.in:
10926         * bus/activation.c: (bus_activation_service_created),
10927         (bus_activation_activate_service):
10928         * bus/driver.c: (bus_driver_send_service_deleted),
10929         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10930         (bus_driver_send_service_acquired),
10931         (bus_driver_send_welcome_message),
10932         (bus_driver_handle_list_services):
10933         * bus/session.conf.in:
10934         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10935         (dbus_bus_service_exists), (dbus_bus_activate_service):
10936         * dbus/dbus-bus.h:
10937
10938         Add some convenience API which lets you activate a service, and did a
10939         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10940         and dbus_message_get_args()
10941
10942 2003-05-11  Havoc Pennington  <hp@pobox.com>
10943
10944         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10945         calling _dbus_marshal_validate_arg() for every byte in a byte
10946         array, etc.
10947
10948         * dbus/dbus-message-handler.c: use atomic reference counting to
10949         reduce number of locks slightly; the global lock in here sucks
10950
10951         * dbus/dbus-connection.c
10952         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10953         update_dispatch_status that can be called with lock held; then use
10954         in a couple places to reduce locking/unlocking
10955         (dbus_connection_send): hold the lock over the whole function
10956         instead of acquiring it twice.
10957
10958         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10959
10960         * bus/connection.c (bus_connections_setup_connection): fix access
10961         to already-freed memory.
10962
10963         * dbus/dbus-connection.c: keep a little cache of linked list
10964         nodes, to avoid using the global linked list alloc lock in the
10965         normal send-message case. Instead we just use the connection lock
10966         that we already have to take.
10967
10968         * dbus/dbus-list.c (_dbus_list_find_last): new function
10969
10970         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10971         change to use a struct for the atomic type; fix docs,
10972         they return value before increment, not after increment.
10973
10974         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10975         (_dbus_string_append_8_aligned): new functions to try to
10976         microoptimize this operation.
10977         (reallocate_for_length): break this out of set_length(), to
10978         improve profile info, and also so we can consider inlining the
10979         set_length() part.
10980
10981         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10982         strings with some preallocation, cuts down on our calls to realloc
10983         a fair bit. Though if we can get the "move entire string to empty
10984         string" optimization below to kick in here, it would be better.
10985
10986         * dbus/dbus-string.c (_dbus_string_move): just call
10987         _dbus_string_move_len
10988         (_dbus_string_move_len): add a special case for moving
10989         an entire string into an empty string; we can just
10990         swap the string data instead of doing any reallocs.
10991         (_dbus_string_init_preallocated): new function
10992
10993 2003-05-11  Havoc Pennington  <hp@pobox.com>
10994
10995         Write a "test-profile" that does echo client-server with threads;
10996         profile reveals lock contention, memcpy/realloc of buffers, and
10997         UTF-8 validation as hot spots. 20% of lock contention eliminated
10998         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10999         contention is global mempool locks for GList and DBusList.
11000
11001         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
11002         x86 implementation
11003
11004         * dbus/dbus-connection.c (struct DBusConnection): use
11005         dbus_atomic_t for the reference count
11006
11007         * dbus/dbus-message.c (struct DBusMessage): declare
11008         dbus_atomic_t values as volatile
11009
11010         * configure.in: code to detect ability to use atomic integer
11011         operations in assembly, from GLib patch
11012
11013         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11014         time, tired of it being wrong in threads and forked processes
11015
11016         * glib/test-profile.c: a little program to bounce messages back
11017         and forth between threads and eat CPU
11018
11019         * dbus/dbus-connection.c: add debug spew macros for debugging
11020         thread locks; include config.h at top; fix deadlock in
11021         dbus_connection_flush()
11022
11023 2003-05-08  Havoc Pennington  <hp@pobox.com>
11024
11025         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11026         data from getting written, and there wasn't a good reason to
11027         use _exit really.
11028
11029         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11030         dbus_verbose lines in test coverage
11031         (main): add list of functions sorted by # of untested blocks
11032         to the coverage report
11033
11034         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11035
11036         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11037
11038         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11039         extend test coverage
11040
11041         * test/data/auth/cancel.auth-script: test canceling an
11042         authentication
11043
11044         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11045         aren't used. in CVS history if we end up needing them.
11046
11047 2003-05-04  Havoc Pennington  <hp@pobox.com>
11048
11049         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11050         unit test
11051
11052         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11053         function, which assumed length was in # of strings, not bytes
11054
11055         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11056         missing coverage
11057
11058         * dbus/dbus-connection.c
11059         (_dbus_connection_queue_received_message): disable function for
11060         now, we are only using it in test mode
11061
11062         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11063         remove a mistaken FIXME
11064
11065 2003-05-04  Havoc Pennington  <hp@pobox.com>
11066
11067         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11068         unlock mutex on successful return, patch from Anders Gustafsson
11069
11070 2003-05-04  Havoc Pennington  <hp@pobox.com>
11071
11072         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11073         Anders Gustafsson
11074
11075 2003-05-04  Havoc Pennington  <hp@pobox.com>
11076
11077         * tools/dbus-launch.c: implement
11078
11079         * bus/main.c (main), bus/bus.c (bus_context_new):
11080         implement --print-pid and --fork
11081
11082 2003-05-03  Havoc Pennington  <hp@redhat.com>
11083
11084         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11085         the address had no value, and add to test suite. Fix and
11086         regression test from Miloslav Trmac
11087
11088 2003-05-03  Havoc Pennington  <hp@pobox.com>
11089
11090         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11091         watch is invalid when handled
11092
11093         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11094         dbus-launch utility to launch the bus from a shell script.  Didn't
11095         actually implement dbus-launch yet, it's just a placeholder still.
11096
11097 2003-05-03  Havoc Pennington  <hp@pobox.com>
11098
11099         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11100         daemon; also documents daemon config file, so replaces
11101         doc/config-file.txt. Corrected some stuff from config-file.txt in
11102         the process of moving it.
11103
11104 2003-05-03  Havoc Pennington  <hp@pobox.com>
11105
11106         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11107         add some man pages
11108
11109 2003-05-03  Colin Walters  <walters@verbum.org>
11110
11111         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11112         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11113
11114         * Makefile.am: Update to use new .pc versioning scheme.
11115
11116 2003-05-02  Havoc Pennington  <hp@redhat.com>
11117
11118         * bus/system.conf.in: allow send/receive to/from message bus
11119         service
11120
11121 2003-04-30  Havoc Pennington  <hp@redhat.com>
11122
11123         * configure.in: print a note when building with unit tests and
11124         without assertions
11125
11126 2003-04-30  Havoc Pennington  <hp@redhat.com>
11127
11128         * Makefile.am: add a check-local that complains if you didn't
11129         configure with --enable-tests
11130
11131 2003-04-29  Havoc Pennington  <hp@redhat.com>
11132
11133         * glib/dbus-gmain.c: docs cleanups
11134
11135         * dbus/dbus-types.h: add docs on int64 types
11136
11137         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11138         public API docs section
11139
11140 2003-04-29  Havoc Pennington  <hp@redhat.com>
11141
11142         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11143         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11144         parallel install API version, not with the D-BUS package version.
11145
11146         * HACKING: move some of README over here
11147
11148         * README: updates, and document API/ABI policy
11149
11150         * configure.in: reindentation
11151
11152 2003-04-29  Havoc Pennington  <hp@redhat.com>
11153
11154         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11155         to use this library" to be sure people have the right
11156         expectations.
11157
11158 2003-04-28  Havoc Pennington  <hp@redhat.com>
11159
11160         * configure.in: add --enable-docs which by default is auto yes if
11161         doxygen and db2html found, no otherwise; but can be forced on/off
11162
11163         * doc/Makefile.am: conditionalize whether to build docs on
11164         --enable-docs
11165
11166 2003-04-28  Havoc Pennington  <hp@redhat.com>
11167
11168         * configure.in: 0.10
11169
11170         * NEWS: update
11171
11172         * bus/system.conf.in: add <includedir>system.d</includedir>
11173
11174         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11175         username was provided but not uid
11176
11177         * bus/config-parser.c (struct BusConfigParser): keep track of
11178         whether the parser is toplevel or was included; change some
11179         of the error handling if it's included.
11180
11181 2003-04-27  Havoc Pennington  <hp@pobox.com>
11182
11183         Unbreak my code...
11184
11185         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11186         report correct status if we finish processing authentication
11187         inside this function.
11188
11189         * bus/activation.c (try_send_activation_failure): use
11190         bus_transaction_send_error_reply
11191
11192         * bus/connection.c (bus_connection_get_groups): return an error
11193         explaining the problem
11194
11195         * bus/bus.c (bus_context_check_security_policy): implement
11196         restriction here that inactive connections can only send the
11197         hello message. Also, allow bus driver to send anything to
11198         any recipient.
11199
11200         * bus/connection.c (bus_connection_complete): create the
11201         BusClientPolicy here instead of on-demand.
11202         (bus_connection_get_policy): don't return an error
11203
11204         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11205         sender field in message being replied to
11206
11207         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11208         causing it to return FALSE always
11209
11210         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11211         we checked sender rather than destination
11212
11213 2003-04-25  Havoc Pennington  <hp@redhat.com>
11214
11215         test suite is slightly hosed at the moment, will fix soon
11216
11217         * bus/connection.c (bus_connections_expire_incomplete): fix to
11218         properly disable the timeout when required
11219         (bus_connection_set_name): check whether we can remove incomplete
11220         connections timeout after we complete each connection.
11221
11222         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11223         probably still broken.
11224
11225         * bus/services.c (bus_registry_acquire_service): implement max
11226         number of services owned, and honor allow/deny rules on which
11227         services a connection can own.
11228
11229         * bus/connection.c (bus_connection_get_policy): report errors here
11230
11231         * bus/activation.c: implement limit on number of pending
11232         activations
11233
11234 2003-04-25  Havoc Pennington  <hp@redhat.com>
11235
11236         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11237         where we used >= 0 instead of != DBUS_UID_UNSET.
11238
11239 2003-04-25  Havoc Pennington  <hp@redhat.com>
11240
11241         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11242         were toggled without add/remove, fix from Anders Gustafsson
11243
11244 2003-04-24  Havoc Pennington  <hp@redhat.com>
11245
11246         * test/data/valid-config-files/basic.conf: add <limit> tags to
11247         this test
11248
11249         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11250         <limit> tag in configuration file.
11251
11252 2003-04-24  Havoc Pennington  <hp@redhat.com>
11253
11254         * bus/dispatch.c: somehow missed some name_is
11255
11256         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11257         (_dbus_timeout_set_interval): new
11258
11259         * bus/connection.c (bus_connections_setup_connection): record time
11260         when each connection is first set up, and expire them after the
11261         auth timeout passes.
11262
11263 2003-04-24  Havoc Pennington  <hp@redhat.com>
11264
11265         * dbus/dbus-message.c (dbus_message_name_is): rename
11266         (dbus_message_service_is): rename
11267         (dbus_message_sender_is): rename
11268         (dbus_message_get_service): rename
11269
11270 2003-04-24  Havoc Pennington  <hp@redhat.com>
11271
11272         * configure.in: add --enable-checks
11273
11274         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11275
11276         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11277         to use thread locks.
11278         (_dbus_connection_handler_destroyed_locked): move some private
11279         functions into proper docs group
11280
11281         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11282         _dbus_return_val_if_fail
11283
11284         Throughout: use dbus_return_if_fail
11285
11286 2003-04-23  James Willcox  <jwillcox@gnome.org>
11287
11288         * glib/dbus-glib.h:
11289         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11290         (dbus_connection_setup_with_g_main),
11291         (dbus_server_setup_with_g_main):
11292         * glib/test-dbus-glib.c: (main):
11293         * glib/test-thread-client.c: (main):
11294         * glib/test-thread-server.c: (new_connection_callback), (main):
11295         * tools/dbus-monitor.c: (main):
11296
11297         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11298         and dbus_server_setup_with_g_main().
11299
11300 2003-04-20  Havoc Pennington  <hp@pobox.com>
11301
11302         * doc/dbus-specification.sgml: document the restrictions on
11303         message and service names
11304
11305 2003-04-22  Havoc Pennington  <hp@redhat.com>
11306
11307         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11308         support, and do some code cleanups to share more code and
11309         speed up array marshal/demarshal.
11310
11311         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11312
11313         * configure.in: generate dbus-arch-deps.h
11314
11315         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11316         64-bit typecodes
11317
11318 2003-04-22  Havoc Pennington  <hp@redhat.com>
11319
11320         * test/data/valid-messages/opposite-endian.message: fix test
11321         to use proper type for rply field
11322
11323         * test/data/invalid-messages: add tests for below validation
11324
11325         * dbus/dbus-message.c (decode_header_data): validate field types,
11326         and validate that named fields are valid names
11327         (decode_name_field): consider messages in the
11328         org.freedesktop.Local. namespace to be invalid.
11329
11330         * dbus/dbus-string.c (_dbus_string_validate_name): new
11331
11332 2003-04-19  Havoc Pennington  <hp@pobox.com>
11333
11334         * bus/driver.c (bus_driver_handle_hello): check limits and
11335         return an error if they are exceeded.
11336
11337         * bus/connection.c: maintain separate lists of active and inactive
11338         connections, and a count of each. Maintain count of completed
11339         connections per user. Implement code to check connection limits.
11340
11341         * dbus/dbus-list.c (_dbus_list_unlink): export
11342
11343         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11344         number of bytes in the message queue for a connection
11345
11346 2003-04-18  Havoc Pennington  <hp@pobox.com>
11347
11348         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11349
11350         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11351         memleaks
11352
11353         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11354         on realloc be sure to update the pointer in the keyring
11355
11356         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11357         offset to avoid writing to unallocated memory
11358
11359         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11360         try the next mechanism, so we properly handle OOM
11361
11362         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11363         on OOM.
11364         (_dbus_keyring_new): fix OOM bug
11365         (_dbus_keyring_new_homedir): always set error; impose a maximum
11366         number of keys we'll load from the file, mostly to speed up the
11367         test suite and make its OOM checks more useful, but also for
11368         general sanity.
11369
11370         * dbus/dbus-auth.c (process_error_server): reject authentication
11371         if we get an error from the client
11372         (process_cancel): on cancel, send REJECTED, per the spec
11373         (process_error_client): send CANCEL if we get an error from the
11374         server.
11375
11376 2003-04-18  Havoc Pennington  <hp@pobox.com>
11377
11378         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11379         debug spew
11380
11381         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11382         handling problem
11383
11384         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11385         about DBUS_TEST_HOMEDIR once
11386
11387         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11388         the environment
11389
11390         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11391         config file so we test the right thing
11392
11393         Throughout: assorted docs improvements
11394
11395 2003-04-18  Havoc Pennington  <hp@pobox.com>
11396
11397         * glib/dbus-gmain.c: adapt to watch changes
11398
11399         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11400
11401         * dbus/dbus-server.h: remove dbus_server_handle_watch
11402
11403         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11404
11405         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11406         like DBusTimeout, so we don't need dbus_connection_handle_watch
11407         etc.
11408
11409 2003-04-17  Havoc Pennington  <hp@redhat.com>
11410
11411         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11412         database usage so it all goes via the DBusUserDatabase cache.
11413
11414 2003-04-17  Havoc Pennington  <hp@redhat.com>
11415
11416         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11417         there was an OOM watch we skipped, we always return TRUE so we
11418         iterate again to have a look at it again. Fixes test suite hang.
11419         Code rearrangement also lets us lose some memset and only iterate
11420         over callbacks once.
11421
11422         * bus/driver.c (bus_driver_handle_message): sense of test for
11423         reply was backward
11424
11425 2003-04-16  Havoc Pennington  <hp@pobox.com>
11426
11427         * doc/dbus-specification.sgml: make spec say serials are unsigned
11428
11429         * dbus/dbus-message.h: change message serials to unsigned
11430
11431         * dbus/dbus-connection.c: adapt to message serials being unsigned
11432
11433 2003-04-15  Havoc Pennington  <hp@pobox.com>
11434
11435         * bus/bus.c: create and keep around a shared DBusUserDatabase
11436         object.
11437
11438         * bus/connection.c (bus_connection_get_groups): don't cache
11439         groups for user in the connection object, since user database
11440         object now does that.
11441
11442 2003-04-16  Havoc Pennington  <hp@redhat.com>
11443
11444         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11445         list of size counters
11446         (_dbus_message_loader_putback_message_link): put back a popped link
11447
11448         * dbus/dbus-connection.c
11449         (dbus_connection_set_max_live_messages_size): rename
11450         max_received_size
11451         (dbus_connection_get_outgoing_size): get size of outgoing
11452         queue
11453         (_dbus_connection_set_connection_counter): remove this cruft
11454
11455 2003-04-14  Havoc Pennington  <hp@redhat.com>
11456
11457         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11458         caching, but at some point we might want to be able to use a
11459         different database.
11460
11461         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11462         SHA1 conf file to test the sha1 auth mechanism, since the regular
11463         test always uses EXTERNAL when available.
11464
11465         * configure.in,
11466         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11467         add conf file that requires use of sha1 auth
11468
11469 2003-04-13  Havoc Pennington  <hp@pobox.com>
11470
11471         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11472         from Philip Blundell to send messages and monitor them.
11473
11474 2003-04-13  Havoc Pennington  <hp@pobox.com>
11475
11476         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11477         callbacks
11478
11479         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11480         users
11481
11482         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11483         fix to only recover unused bytes if we're already authenticated
11484         (_dbus_transport_get_is_authenticated): fix to still mark us
11485         authenticated if there are unused bytes.
11486
11487         * bus/dispatch.c: implement security policy checking
11488
11489         * bus/connection.c (bus_transaction_send_from_driver): new
11490
11491         * bus/bus.c (bus_context_check_security_policy): new
11492
11493         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11494         now we just set the DBusError and it gets converted to an error
11495         reply.
11496
11497         * bus/connection.c (allow_user_function): enable code using actual
11498         data from the config file
11499
11500         * bus/policy.c (list_allows_user): handle wildcard rules for
11501         user/group connection perms
11502
11503 2003-04-13  Havoc Pennington  <hp@pobox.com>
11504
11505         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11506
11507         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11508
11509         * bus/policy.c (bus_policy_append_mandatory_rule)
11510         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11511         (bus_policy_append_group_rule): new functions
11512
11513 2003-04-12  Havoc Pennington  <hp@pobox.com>
11514
11515         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11516
11517         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11518         the pid/gid/uid, just for paranoia.
11519
11520         * test/break-loader.c (randomly_do_n_things): find a byte
11521         containing a type code, and randomly change it to a different
11522         type code.
11523
11524 2003-04-12  Havoc Pennington  <hp@pobox.com>
11525
11526         * bus/policy.h: change BusPolicy to be the thing from the config
11527         file, and rename old BusPolicy to BusClientPolicy
11528
11529         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11530         match change in how policy works
11531
11532         * dbus/dbus-internals.h: mark assert_not_reached as
11533         __attribute((noreturn))__
11534
11535 2003-04-11  Havoc Pennington  <hp@redhat.com>
11536
11537         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11538         the broadcast service. Use boolean return for ServiceExists.
11539
11540 2003-04-11  Havoc Pennington  <hp@redhat.com>
11541
11542         * configure.in: add another directory to look for qt in.
11543
11544 2003-04-11  Havoc Pennington  <hp@redhat.com>
11545
11546         * AUTHORS: add Colin Walters
11547
11548 2003-04-11  Havoc Pennington  <hp@redhat.com>
11549
11550         * NEWS: update
11551
11552         * configure.in: 0.9
11553
11554 2003-04-11  Havoc Pennington  <hp@redhat.com>
11555
11556         * bus/messagebus.in: remove pid file when stopping the
11557         message bus, since the bus won't have privileges to remove it
11558         itself.
11559
11560 2003-04-11  Havoc Pennington  <hp@redhat.com>
11561
11562         * bus/bus.c (bus_context_new): move credentials change after
11563         creating pidfile
11564
11565 2003-04-11  Havoc Pennington  <hp@pobox.com>
11566
11567         * test/decode-gcov.c: add "below average functions" to the
11568         coverage report, and change how some of the code works.
11569
11570         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11571         not in the coverage stats.
11572
11573         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11574         couple places so running the test suite doesn't result in megaspam.
11575
11576 2003-04-11  Havoc Pennington  <hp@pobox.com>
11577
11578         * bus/dispatch.c (check_existent_service_activation): accept a no
11579         memory error in a place we didn't before
11580
11581         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11582         in case the first one failed," since the test suite is less
11583         broken now.
11584
11585 2003-04-10  Havoc Pennington  <hp@pobox.com>
11586
11587         * bus/dispatch.c (check_segfault_service_activation): add test
11588         for launching an executable that just crashes.
11589
11590         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11591         don't leave a million cores. We'll see how portable this is.
11592
11593 2003-04-10  Havoc Pennington  <hp@pobox.com>
11594
11595         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11596         the possible parent failures before we fork, so that we don't
11597         fail to create a babysitter after creating the child.
11598
11599         * bus/activation.c (bus_activation_activate_service): kill child
11600         if we don't successfully complete the activation.
11601
11602 2003-04-10  Havoc Pennington  <hp@redhat.com>
11603
11604         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11605         the connection if it's disconnected
11606
11607         * bus/activation.c (bus_activation_service_created): use new
11608         transaction features to roll back removal of pending activation if
11609         we don't successfully create the service after all. Don't remove
11610         pending activation if the function fails.
11611
11612         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11613         (_dbus_list_insert_after_link): new code to facilitate
11614         services.c fixes
11615
11616         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11617         new functionality, so we can preallocate the ability to insert
11618         into a hash table.
11619
11620         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11621         allowing us to put custom hooks in a transaction to be used for
11622         cancelling said transaction
11623
11624         * doc/dbus-specification.sgml: add some discussion of secondary
11625         service owners, and disallow zero-length service names
11626
11627         * bus/services.c (bus_registry_acquire_service): new function,
11628         splits out part of bus_driver_handle_acquire_service() and fixes
11629         a bug where we didn't remove the service doing the acquiring
11630         from the secondary queue if we failed to remove the current owner
11631         from the front of the queue.
11632
11633 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11634
11635         * doc/dbus-specification.sgml:
11636         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11637
11638 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11639
11640         * bus/.cvsignore:
11641         * glib/.cvsignore:
11642         * test/.cvsignore:
11643         Added files to cvsignore
11644
11645         * dbus/dbus-message.h:
11646         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11647         Make get_named() take two out argument and return a boolean.
11648         (dbus_message_iter_get_args_valist):
11649         Update usage of get_named().
11650         (dbus_message_iter_append_byte):
11651         Fix typo
11652         (dbus_message_iter_append_named)
11653         Fix typo
11654         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11655         More tests.
11656
11657 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11658
11659         * dbus/dbus-marshal.[ch]:
11660         Add array_type_pos argument to _dbus_marshal_validate_arg.
11661         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11662
11663         * dbus/dbus-message.[ch]:
11664         Multi-dimensional arrays have full type specification in the
11665         outermost array. Iter code re-arranged to handle this.
11666         Added some more iter tests.
11667
11668         * doc/dbus-specification.sgml:
11669         Add me to authors.
11670         Remove old FIXME.
11671         Update new array encoding description.
11672         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11673
11674         * test/data/invalid-messages/array-with-mixed-types.message:
11675         * test/data/valid-messages/array-of-array-of-uint32.message:
11676         Change to the new array format.
11677
11678         * test/data/invalid-messages/too-short-dict.message:
11679         Fix bug in test.
11680
11681         * test/data/valid-messages/recursive-types.message:
11682         Fix up and extend test.
11683
11684 2003-04-10  Havoc Pennington  <hp@pobox.com>
11685
11686         * bus/dispatch.c: lots of fixes
11687
11688         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11689         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11690         that was crack, broke the test service.
11691
11692         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11693         handling to avoid piling up errors if we get a failure on the
11694         first address.
11695
11696         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11697         pid in assertion failures.
11698
11699         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11700         to some fixed size of file descriptor array. Don't return TRUE
11701         anytime a timeout exists, that led to lots of busy loop silliness
11702         in the tests.
11703
11704 2003-04-09  Havoc Pennington  <hp@redhat.com>
11705
11706         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11707         I'd checked this in earlier but hadn't.
11708
11709 2003-04-09  Havoc Pennington  <hp@redhat.com>
11710
11711         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11712         the activation test (man this is getting old!)
11713
11714 2003-04-09  Havoc Pennington  <hp@redhat.com>
11715
11716         * test/test-utils.c: use dispatch status function to fix this up
11717
11718         * bus/connection.c (connection_watch_callback): don't dispatch
11719         from here
11720         (connection_timeout_callback): don't dispatch from here
11721         (bus_connections_setup_connection): set the dispatch status function
11722         (bus_connection_disconnected): unset it
11723
11724         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11725         used to add a connection to be dispatched
11726         (_dbus_loop_iterate): do the dispatching at the end of each
11727         iteration
11728
11729         * dbus/dbus-connection.c
11730         (dbus_connection_set_dispatch_status_function): new function
11731         allowing us to fix up main loop usage
11732         (_dbus_connection_last_unref): free all the various function
11733         user data
11734         (dbus_connection_dispatch): call the DispatchStatusFunction
11735         whenever this function returns
11736         (dbus_connection_handle_watch): call DispatchStatusFunction
11737         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11738         (reply_handler_timeout): call DispatchStatusFunction
11739         (dbus_connection_flush): call DispatchStatusFunction
11740
11741 2003-04-09  Havoc Pennington  <hp@redhat.com>
11742
11743         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11744         a memory leak
11745
11746         * bus/dispatch.c (check_service_activated): fix bug in test
11747
11748         * dbus/dbus-mainloop.c (check_timeout): fix this up
11749
11750         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11751         verbose output so we can sort out output from different processes,
11752         e.g. in the activation case.
11753
11754 2003-04-08  Colin Walters  <walters@gnu.org>
11755
11756         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11757         the pid file.
11758         (bus_context_new): Set it.
11759         (bus_context_unref): Use it to delete the pid file.
11760
11761 2003-04-08  Havoc Pennington  <hp@redhat.com>
11762
11763         * test/data/invalid-messages/array-with-mixed-types.message:
11764         regression test that fails for the moment
11765
11766         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11767         tests for convenience
11768
11769         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11770         array of nil, it broke things.
11771
11772         * test/data/invalid-messages/array-of-nil.message: regression test
11773
11774         * test/data/valid-messages/array-of-array-of-uint32.message:
11775         happened to write this so added it to suite
11776
11777 2003-04-08  Havoc Pennington  <hp@redhat.com>
11778
11779         * bus/driver.c (bus_driver_handle_acquire_service): init
11780         retval/reply before checking name
11781
11782         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11783         recursion depth argument
11784
11785         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11786         in the public struct for future extension
11787
11788         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11789         typo
11790
11791         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11792         message
11793
11794         * doc/dbus-specification.sgml: fix typo
11795
11796 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11797
11798         Implemented recursive types, named types and new-style iters
11799
11800         * bus/driver.c:
11801         * glib/test-thread-client.c: (thread_func):
11802         * glib/test-thread-server.c: (handle_test_message):
11803         * test/test-service.c: (handle_echo):
11804         Update to new api
11805
11806         * dbus/Makefile.am:
11807         * dbus/dbus-dict.c:
11808         * dbus/dbus-dict.h:
11809         * dbus/dbus.h
11810         Remove DBusDict
11811
11812         * dbus/dbus-internals.c: (_dbus_type_to_string):
11813         Update for new types.
11814
11815         * dbus/dbus-marshal.[ch]:
11816         Implement recursive types and the new marshalling format.
11817         Remove hardcoded dict marshalling.
11818         Marshal named types.
11819
11820         * dbus/dbus-message-builder.c:
11821         Add BYTE_ARRAY.
11822         Remove references to old types
11823
11824         * dbus/dbus-message.[ch]:
11825         New non-refcounted iter API that supports recursive iters.
11826         Use iters for appending, including support for recursive
11827         iters.
11828         Add byte and named type support.
11829         Update everything to new marshalling formats.
11830         Add tests for new API.
11831
11832         * dbus/dbus-protocol.h:
11833         Remove old array types.
11834         Add types: BYTE, ARRAY, DICT, NAMED
11835
11836         * dbus/dbus-string.c:
11837         * dbus/dbus-sysdeps.c:
11838         Make parse_double locale safe.
11839
11840         * dbus/dbus-test-main.c:
11841         Call setlocale.
11842
11843         * dbus/dbus-test.c:
11844         Kill dict test
11845
11846         * doc/dbus-specification.sgml:
11847         Update spec
11848
11849         * test/data/incomplete-messages/missing-body.message:
11850         * test/data/invalid-messages/bad-boolean.message:
11851         * test/data/invalid-messages/bad-boolean-array.message:
11852         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11853         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11854         * test/data/invalid-messages/too-short-dict.message:
11855         * test/data/valid-messages/dict-simple.message:
11856         * test/data/valid-messages/dict.message:
11857         * test/data/valid-messages/emptiness.message:
11858         * test/data/valid-messages/lots-of-arguments.message:
11859         * test/data/valid-messages/no-padding.message:
11860         * test/data/valid-messages/recursive-types.message:
11861         Add missing NAME fields
11862         Fix up dicts & arrays
11863
11864         * test/data/invalid-messages/dict-with-nil-value.message:
11865         Removed, this is not invalid anymore.
11866
11867         * test/data/valid-messages/recursive-types.message:
11868         Add new test for deeply recursive types.
11869
11870 2003-04-07  Havoc Pennington  <hp@pobox.com>
11871
11872         * bus/driver.c (bus_driver_handle_acquire_service): return an
11873         error if you try to acquire a service that starts with ':'
11874
11875 2003-04-07  Havoc Pennington  <hp@redhat.com>
11876
11877         * doc/dbus-specification.sgml: require that base service names
11878         start with ':' and that the base service is created/deleted
11879         as first and last things a connection does on the bus
11880
11881         * bus/dispatch.c (check_existent_service_activation): lots more
11882         work on the activation test; it doesn't fully pass yet...
11883
11884         * test/test-service.c (main): fix so we don't memleak the
11885         connection to the message bus
11886         (filter_func): accept a message asking us to exit
11887
11888 2003-04-06  Havoc Pennington  <hp@pobox.com>
11889
11890         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11891         from Colin Walters
11892
11893         * configure.in: fixes to Qt detection from Colin Walters
11894
11895         * doc/Makefile.am: Only remove generated docbook dirs if they
11896         exist, from Colin Walters
11897
11898         * dbus/dbus-bus.c: change how we set well-known connections to
11899         NULL, so that it works if a single connection is stored in
11900         two well-known array slots.
11901
11902         * test/Makefile.am: remove a lot of stuff that isn't immediately
11903         useful, it's in CVS history if we want it.
11904
11905         * test/test-service.c: use dbus-mainloop instead of that
11906         watch.[hc] crack
11907
11908 2003-04-06  Havoc Pennington  <hp@pobox.com>
11909
11910         * dbus/Makefile.am: split lists of sources into stuff that goes in
11911         the library, util functions that go in the lib and are also used
11912         elsewhere, and util functions that are used in tests/daemon but
11913         don't go in the lib.
11914
11915         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11916         here so it can be used in test binaries also
11917
11918 2003-04-06  Havoc Pennington  <hp@pobox.com>
11919
11920         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11921         here in the parent process, so we can return an error if it
11922         fails. Also, move some of the code into the child so the parent
11923         is less hosed if we fail midway through.
11924
11925         * bus/bus.c (bus_context_new): move pidfile detection further up
11926         in the function, before we start overwriting sockets and such.
11927
11928         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11929
11930         * configure.in: add --with-system-pid-file and --with-system-socket
11931
11932 2003-04-06  Colin Walters  <walters@verbum.org>
11933
11934         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11935
11936         * bus/system.conf.in: Declare a pidfile.
11937
11938         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11939         create one (if appropriate).
11940
11941         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11942         (struct BusConfigParser) [pidfile]: New.
11943         (element_type_to_name, merge_included, start_busconfig_child)
11944         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11945         (bus_config_parser_unref): Free it.
11946         (bus_config_parser_get_pidfile): New function.
11947
11948         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11949
11950         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11951
11952         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11953
11954         * dbus/dbus-sysdeps.h: Prototype it.
11955
11956 2003-04-06  Havoc Pennington  <hp@pobox.com>
11957
11958         * bus/bus.c (bus_context_new): print the address in here, rather
11959         than in main(), because we need to do it before forking the daemon
11960
11961         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11962         on the service nonexistent error
11963
11964         * bus/driver.c (bus_driver_handle_acquire_service): set the
11965         sender on the AcquireService reply
11966
11967         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11968         server also listen on a UNIX socket so services can connect to it.
11969
11970 2003-04-06  Havoc Pennington  <hp@pobox.com>
11971
11972         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11973         so it detects deadlocks and also we actually init threads when
11974         debugging.
11975
11976 2003-04-06  Havoc Pennington  <hp@pobox.com>
11977
11978         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11979         save the domain socket name, and unlink it when we disconnect the
11980         server. Means that at least when we exit normally, we won't leave
11981         a bunch of junk in /tmp
11982
11983         * dbus/dbus-transport-unix.c
11984         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11985         memory management). (I was making a real change here but then
11986         didn't)
11987
11988 2003-04-06  Havoc Pennington  <hp@pobox.com>
11989
11990         * bus/bus.c (bus_context_new): fix wrong handling of
11991         server_data_slot_unref() in the error case.
11992
11993         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11994         "(condition) != 0" to _dbus_real_assert so that
11995         "_dbus_assert (pointer)" doesn't cause a warning
11996
11997         * bus/main.c (main): accept --print-address option to print out
11998         the message bus address
11999
12000         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
12001
12002         * dbus/dbus-transport.c (_dbus_transport_open): special error for
12003         "tmpdir" option to unix: address on client side
12004
12005         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12006         to unix: address
12007
12008         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12009         we can use to create sockets in the test suite.
12010
12011         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12012         cleanly. To be used for testing.
12013
12014         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12015
12016         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12017
12018         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12019         handle trying to call this when there's no servers active
12020
12021 2003-04-05  Havoc Pennington  <hp@pobox.com>
12022
12023         * NEWS: update
12024
12025         * configure.in: 0.8
12026
12027 2003-04-05  Havoc Pennington  <hp@pobox.com>
12028
12029         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12030         crash on startup. Need to get "try starting the daemon"
12031         in the test suite I guess. ;-)
12032
12033         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12034         tracked the number of open connections; it's better done in
12035         application-specific code as you want it to span all servers etc.
12036
12037 2003-04-05  Havoc Pennington  <hp@pobox.com>
12038
12039         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12040         patch from Colin Walters
12041
12042 2003-04-05  Havoc Pennington  <hp@pobox.com>
12043
12044         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12045         reality; in fact multiple mechanisms are allowed.
12046
12047         * dbus/dbus-internals.c (_dbus_real_assert)
12048         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12049         _dbus_assert_not_reached() into functions, so that they don't show
12050         up in basic block counts for test coverage, and don't use up as
12051         much disk space. Does mean slower execution speed though, so
12052         assumes --disable-asserts is the normal production case.
12053
12054 2003-04-05  Havoc Pennington  <hp@pobox.com>
12055
12056         * test/Makefile.am (dist-hook): also dist *.in files
12057
12058         * NEWS: update
12059
12060         * configure.in: 0.7
12061
12062 2003-04-05  Havoc Pennington  <hp@pobox.com>
12063
12064         * dbus/dbus-string.c: docs warning
12065
12066         * dbus/dbus-spawn.c: missing docs
12067
12068         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12069
12070 2003-04-05  Havoc Pennington  <hp@pobox.com>
12071
12072         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12073         magic from GLib
12074
12075         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12076         to -1 once we've reaped the babysitter
12077         (_dbus_babysitter_handle_watch): do as much work as we can, not
12078         just one go of it
12079
12080         * bus/activation.c: add code using DBusBabysitter so that we
12081         handle it when a service fails to start up properly.
12082         (bus_activation_service_created): don't remove the activation
12083         entries as we go, just let them get removed when we free the pending
12084         activation. Unref reply messages after sending them.
12085
12086 2003-04-05  Havoc Pennington  <hp@pobox.com>
12087
12088         * test/decode-gcov.c (main): print per-directory stats in the report
12089
12090         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12091
12092 2003-04-05  Havoc Pennington  <hp@pobox.com>
12093
12094         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12095
12096         * test/decode-gcov.c: hack up a little program to suck data
12097         out of gcov files. Yes this is sort of silly.
12098
12099         * configure.in: define something in config.h and do an
12100         AM_CONDITIONAL when gcov is enabled
12101
12102 2003-04-04  Havoc Pennington  <hp@redhat.com>
12103
12104         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12105         return a "babysitter" object that is used to monitor the status of
12106         the spawned process and reap it when required.
12107
12108         * test/test-segfault.c, test/test-exit.c,
12109         test/test-sleep-forever.c: binaries that do various lame things,
12110         used in the test suite.
12111
12112         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12113
12114 2003-04-03  Havoc Pennington  <hp@pobox.com>
12115
12116         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12117         in preparation for modifying it, dbus-sysdeps is getting
12118         a bit unmanageable.
12119
12120 2003-04-03  Havoc Pennington  <hp@redhat.com>
12121
12122         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12123         have multiple ones
12124
12125         * bus/*.[hc]: adapt to mainloop change
12126
12127 2003-04-03  Havoc Pennington  <hp@redhat.com>
12128
12129         * bus/activation.c (load_directory): fix up memleaks
12130         (bus_activation_entry_free): free the entry
12131
12132         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12133         we get one from the message bus; fix memleaks.
12134
12135         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12136
12137 2003-04-03  Havoc Pennington  <hp@pobox.com>
12138
12139         * bus/config-parser.c (bus_config_parser_unref): free
12140         list of mechanisms, bug discovered by test suite enhancements
12141         (putting system.conf and session.conf into suite)
12142
12143         * test/Makefile.am, test/test-service.c: add placeholder for a
12144         test service that we'll activate as part of test suite. Doesn't
12145         do anything yet.
12146
12147         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12148         setting NULL value, and use system malloc not dbus_malloc()
12149         when we have unavoidable memleakage.
12150
12151         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12152         didn't work, and support DBUS_BUS_ACTIVATION.
12153
12154         * bus/activation.c (child_setup): pass our well-known bus type to
12155         the child
12156
12157         * bus/config-parser.c: support <type> to specify well-known type
12158
12159         * doc/dbus-specification.sgml: document the env variables to
12160         locate well-known buses and find service activator
12161
12162 2003-04-02  Havoc Pennington  <hp@redhat.com>
12163
12164         * test/Makefile.am (all-local): add a rule to copy tests to
12165         builddir, so we can have generated tests. Use this to remove the
12166         silly hack for testing system.conf and session.conf. Will use this
12167         shortly to generate .service files pointing to test binaries.
12168
12169 2003-04-02  Havoc Pennington  <hp@redhat.com>
12170
12171         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12172         current alloc and needed new length, not max of the doubled
12173         allocation and needed new length. Also, when building tests,
12174         don't do the double-allocation stuff, just realloc every time.
12175
12176 2003-04-02  Havoc Pennington  <hp@redhat.com>
12177
12178         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12179         in error messages
12180         (_dbus_string_get_dirname): new
12181         (_dbus_sysdeps_test): new
12182         (_dbus_directory_open): include dirnames in error messages
12183
12184         * bus/config-parser.c: interpret <include> and <includedir> and
12185         <servicedir> relative to config file location if the given
12186         filename is not absolute.
12187
12188         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12189
12190 2003-04-02  Havoc Pennington  <hp@redhat.com>
12191
12192         * bus/connection.c (bus_transaction_send_error_reply): set sender
12193         service for the error, and unref the reply on success
12194
12195         * bus/activation.c: convert to use BusTransaction so OOM can be
12196         handled correctly
12197         (bus_activation_service_created): set sender of the message
12198
12199 2003-04-01  Havoc Pennington  <hp@redhat.com>
12200
12201         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12202         <includedir> (at least mostly)
12203
12204         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12205         first, then the user ID
12206
12207 2003-04-01  Havoc Pennington  <hp@pobox.com>
12208
12209         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12210         function
12211
12212         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12213
12214         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12215
12216         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12217         socket 0777, and unlink any existing socket.
12218
12219         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12220         the configuration file so specifies; set up auth mechanism
12221         restrictions
12222
12223         * bus/config-parser.c (bus_config_parser_content): add support
12224         for <fork> option and fill in code for <auth>
12225
12226         * bus/system.conf.in: add <fork/> to default configuration,
12227         and limit auth mechanisms to EXTERNAL
12228
12229         * doc/config-file.txt (Elements): add <fork>
12230
12231         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12232         (_dbus_change_identity): new function
12233
12234 2003-03-31  Havoc Pennington  <hp@redhat.com>
12235
12236         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12237         (_dbus_listen_unix_socket): fix off-by-one error in null
12238         termination spotted by Nalin
12239
12240 2003-03-31  Havoc Pennington  <hp@redhat.com>
12241
12242         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12243         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12244         having a real home directory available.
12245
12246 2003-03-31  Havoc Pennington  <hp@redhat.com>
12247
12248         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12249
12250         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12251
12252         * configure.in: add support for specifying a style of init script
12253         to install
12254
12255 2003-03-31  Havoc Pennington  <hp@redhat.com>
12256
12257         Fix some annoying DBusString API and fix all affected code.
12258
12259         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12260         max_length argument
12261         (_dbus_string_get_data): change to return string instead of using
12262         an out param
12263         (_dbus_string_get_const_data): ditto
12264         (_dbus_string_get_data_len): ditto
12265         (_dbus_string_get_const_data_len): ditto
12266
12267 2003-03-31  Havoc Pennington  <hp@redhat.com>
12268
12269         * bus/main.c (main): fix up the command line arguments to be nicer
12270
12271 2003-03-31  Havoc Pennington  <hp@redhat.com>
12272
12273         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12274         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12275         final location that lands in the config file
12276
12277         * bus/config-loader-expat.c (bus_config_load): fix type of
12278         XML_Parser variable
12279
12280         * doc/TODO: remove TODO item for dbus_bus_get()
12281
12282         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12283
12284 2003-03-31  Havoc Pennington  <hp@pobox.com>
12285
12286         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12287         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12288         argument since they are always client side
12289
12290         * dbus/dbus-server.c (dbus_server_get_address): new function
12291
12292         * bus/main.c (main): take the configuration file as an argument.
12293
12294         * test/data/valid-config-files/debug-allow-all.conf: new file to
12295         use with dispatch.c tests for example
12296
12297         * bus/test-main.c (main): require test data dir
12298
12299         * bus/bus.c (bus_context_new): change this to take a
12300         configuration file name as argument
12301
12302         * doc/config-file.txt (Elements): add <servicedir>
12303
12304         * bus/system.conf, bus/session.conf: new files
12305
12306         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12307         well-known socket if none set
12308
12309         * configure.in: create system.conf and session.conf
12310
12311 2003-03-30  Havoc Pennington  <hp@pobox.com>
12312
12313         * bus/config-parser.c: hacking
12314
12315         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12316         to shut down, since it could cause weirdness with the DBusList
12317         lock
12318
12319         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12320         link-oriented stack routines
12321         (alloc_link): free the mempool if the first alloc from it fails
12322
12323         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12324
12325         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12326         from GLib
12327         (_dbus_string_skip_white): new
12328
12329         * doc/config-file.txt (Elements): add <includedir>
12330
12331 2003-03-28  Havoc Pennington  <hp@pobox.com>
12332
12333         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12334         (_dbus_string_copy_data): new functions
12335
12336 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12337
12338         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12339         * dbus/dbus-bus.h:
12340         Add dbus_bus_get.
12341
12342         * dbus/dbus-memory.c:
12343         Fix a doc comment.
12344
12345 2003-03-28  Havoc Pennington  <hp@pobox.com>
12346
12347         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12348         I think it may have just been superstition. Not sure.
12349
12350         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12351         failures that were not being handled.
12352
12353         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12354
12355         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12356         row that will fail on out-of-memory.
12357
12358         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12359         function for testing out-of-memory handling.
12360
12361         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12362         allocation functions, they do map exactly to the expat ones.
12363
12364 2003-03-27  Havoc Pennington  <hp@redhat.com>
12365
12366         * bus/config-loader-libxml.c (bus_config_load): add another error
12367         check
12368
12369 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12370
12371         * doc/TODO:
12372         Add note about automatic service activation.
12373
12374         * doc/dbus-specification.sgml:
12375         Rename the specification and clarify a few things.
12376
12377 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12378
12379         * Doxyfile.in:
12380         * dbus/dbus-address.c:
12381         * dbus/dbus-dict.c:
12382         * dbus/dbus-marshal.c:
12383         * dbus/dbus-server-debug-pipe.c:
12384         * dbus/dbus-transport-unix.c:
12385         Fix documentation warnings.
12386
12387 2003-03-26  Havoc Pennington  <hp@pobox.com>
12388
12389         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12390         after every test so it's quick and easy to see which leaked, and
12391         so we test multiple dbus_shutdown() calls
12392
12393         * configure.in: change configure.in XML stuff to also support
12394         expat
12395
12396         * config-loader-libxml.c: some hacking
12397
12398         * config-loader-expat.c: some hacking
12399
12400         * config-parser.c: some hacking, plus tests
12401
12402 2003-03-25  Havoc Pennington  <hp@redhat.com>
12403
12404         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12405
12406         * configure.in: add --with-xml option to specify XML library,
12407         right now only libxml is supported.
12408
12409         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12410         nonworking code between home and work, still just stubs
12411
12412 2003-03-24  Havoc Pennington  <hp@redhat.com>
12413
12414         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12415         file
12416
12417         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12418         NULL argument for "message" if the error is a well-known one,
12419         fill in a generic message in this case.
12420
12421         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12422         favor of DBusError
12423
12424         * bus/test.c (bus_test_flush_bus): add
12425
12426         * bus/policy.c (bus_policy_test): test code stub
12427
12428 2003-03-24  Havoc Pennington  <hp@pobox.com>
12429
12430         * bus/connection.c (bus_connections_setup_connection): set up
12431         the "can this user connect" function, but it always returns
12432         TRUE until we have a config file parser so we can have a config
12433         file that allows connections.
12434
12435 2003-03-23  Havoc Pennington  <hp@pobox.com>
12436
12437         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12438         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12439         the mutex, so we can check for proper memory management
12440         and OOM handling.
12441
12442         * dbus/dbus-dataslot.c: remove the mutex from
12443         DBusDataSlotAllocator and lock it manually when using it,
12444         to simplify fitting it into the global slots framework.
12445
12446         * dbus/dbus-threads.c (init_static_locks): rework how we're
12447         handling global locks so they are easily shut down.
12448
12449         * bus/policy.c (bus_policy_append_rule): fix
12450
12451         * bus/test-main.c (main): check for memleaks
12452
12453         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12454         test suite check for memleaks
12455
12456         * dbus/dbus-memory.c: add support in test mode for tracking
12457         number of outstanding blocks
12458
12459 2003-03-23  Havoc Pennington  <hp@pobox.com>
12460
12461         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12462         policies code
12463
12464         * dbus/dbus-hash.h: add ULONG hash keys
12465
12466         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12467         (_dbus_get_group_id): new function
12468
12469 2003-03-20  Havoc Pennington  <hp@redhat.com>
12470
12471         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12472         new function
12473         (dbus_connection_get_unix_user): new function
12474
12475 2003-03-20  Havoc Pennington  <hp@pobox.com>
12476
12477         * bus/connection.c (bus_connection_send_oom_error): assert that
12478         message has a sender
12479         (connection_execute_transaction): ditto
12480         (bus_connection_preallocate_oom_error): fix to set the sender, and
12481         set recipient to the destination service, not the bus driver
12482
12483         * bus/policy.c: hacking
12484
12485         * dbus/dbus-message.c (dbus_message_service_is): new function
12486         (dbus_message_sender_is): new
12487
12488 2003-03-19  Havoc Pennington  <hp@redhat.com>
12489
12490         * bus/policy.c: start sketching code for policy restrictions on
12491         what connections can do.
12492
12493 2003-03-18  Havoc Pennington  <hp@redhat.com>
12494
12495         * doc/TODO: some notes on high-level todo items. Little nitpick
12496         stuff is all in @todo, so no need to add it here.
12497
12498         * doc/config-file.txt: some notes on how config file might look
12499
12500 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12501
12502         * configure.in: 0.6
12503
12504         * NEWS: Update.
12505
12506 2003-03-17  Havoc Pennington  <hp@redhat.com>
12507
12508         * dbus/dbus-internals.h: add gcc attributes so that
12509         our printf-style functions warn on bad arguments to
12510         format
12511
12512         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12513         format bug
12514
12515         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12516         printf format bug
12517
12518 2003-03-17  Havoc Pennington  <hp@redhat.com>
12519
12520         * bus/test-main.c (main): make it print something as it runs
12521         so make check doesn't look stuck
12522
12523         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12524         from CVS, now obsolete
12525
12526 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12527
12528         * bus/dispatch.c: (bus_dispatch):
12529         Refetch the service name since it may have been reallocated
12530         when dbus_message_set_sender was called.
12531
12532         * dbus/dbus-sysdeps.c: (_dbus_accept):
12533         Add address and address length variables and use them to stop
12534         valgrind from complaining.
12535
12536 2003-03-17  Havoc Pennington  <hp@pobox.com>
12537
12538         All tests pass, no memleaks, no valgrind complaints.
12539
12540         * bus/test.c: refcount handler_slot
12541
12542         * bus/connection.c (bus_connections_new): refcount
12543         connection_data_slot
12544
12545         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12546         bytes so that auth scripts pass.
12547
12548         * bus/dispatch.c: init message_handler_slot so it gets allocated
12549         properly
12550
12551         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12552
12553         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12554         dealloc server_pipe_hash when no longer used for benefit of
12555         leak checking
12556
12557         * dbus/dbus-auth.c (process_command): memleak fix
12558
12559         * bus/dispatch.c (check_hello_message): memleak fix
12560
12561 2003-03-16  Havoc Pennington  <hp@pobox.com>
12562
12563         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12564
12565 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12566
12567         * bus/activation.c (bus_activation_activate_service): Append
12568         the pending activation entry to the list of pending activations.
12569
12570 2003-03-16  Havoc Pennington  <hp@pobox.com>
12571
12572         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12573         connections
12574
12575         * dbus/dbus-address.c (create_entry): fix OOM handling when
12576         failing to alloc entry->method
12577
12578 2003-03-16  Havoc Pennington  <hp@pobox.com>
12579
12580         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12581         the watch
12582
12583         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12584         add some missing dbus_set_result
12585
12586         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12587         alloc the DBusMessageHandler
12588
12589         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12590         the transport here, since we call this from the finalizer; it
12591         resulted in a double-finalize.
12592
12593         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12594         where we tried to use transport->connection that was NULL,
12595         happened when transport was disconnected early on due to OOM
12596
12597         * bus/*.c: adapt to handle OOM for watches/timeouts
12598
12599         * dbus/dbus-transport-unix.c: port to handle OOM during
12600         watch handling
12601
12602         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12603         reference to unused bytes instead of a copy
12604
12605         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12606         out of memory
12607
12608         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12609         FALSE on OOM
12610
12611         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12612         of memory
12613
12614 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12615
12616         * doc/dbus-specification.sgml:
12617         Document reply message for ActivateService.
12618
12619 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12620
12621         * bus/activation.c: (bus_pending_activation_entry_free),
12622         (bus_pending_activation_free), (bus_activation_new),
12623         (bus_activation_unref), (bus_activation_service_created),
12624         (bus_activation_activate_service):
12625         * bus/activation.h:
12626         * bus/bus.c: (bus_context_new):
12627         * bus/desktop-file.c: (new_section):
12628         * bus/driver.c: (bus_driver_send_service_deleted),
12629         (bus_driver_handle_activate_service):
12630         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12631         * bus/services.h:
12632         * dbus/dbus-connection.c:
12633         (dbus_connection_send_with_reply_and_block):
12634         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12635         * dbus/dbus-protocol.h:
12636         Make activation work better. Now pending activations will be queued
12637         and the daemon won't try to activate services that are already registered.
12638
12639 2003-03-16  Havoc Pennington  <hp@pobox.com>
12640
12641         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12642         connection data
12643
12644         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12645         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12646
12647 2003-03-16  Havoc Pennington  <hp@pobox.com>
12648
12649         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12650         this. always run the test suite before commit...
12651
12652         * bus/*: adapt to DBusConnection API changes
12653
12654         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12655         requires renaming stuff to avoid dbus_connection_dispatch name
12656         conflict.
12657
12658         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12659         function
12660
12661         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12662         separate from _dbus_message_loader_return_buffer()
12663
12664         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12665         this, because it's now always broken to use; the number of
12666         messages in queue vs. the number still buffered by the message
12667         loader is undefined/meaningless. Should use
12668         dbus_connection_get_dispatch_state().
12669         (dbus_connection_dispatch): rename from
12670         dbus_connection_dispatch_message
12671
12672 2003-03-16  Havoc Pennington  <hp@pobox.com>
12673
12674         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12675         implementation
12676
12677 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12678
12679         * dbus/dbus-connection.c:
12680         (dbus_connection_send_with_reply_and_block):
12681         Decrease connection->n_incoming when removing an entry
12682         from the list.
12683         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12684         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12685         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12686         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12687         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12688         (dbus_dict_get_byte_array):
12689         Handle NULL arrays and strings. Also add support for byte arrays.
12690
12691         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12692         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12693         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12694         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12695         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12696         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12697         * dbus/dbus-marshal.h:
12698         Add support for marshalling and demarshalling empty arrays and strings.
12699
12700         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12701         (dbus_message_append_string_array),
12702         (dbus_message_iter_get_boolean),
12703         (dbus_message_iter_get_boolean_array),
12704         (dbus_message_iter_get_int32_array),
12705         (dbus_message_iter_get_uint32_array),
12706         (dbus_message_iter_get_double_array),
12707         (dbus_message_iter_get_byte_array),
12708         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12709         (check_message_handling):
12710         Add support for getting empty arrays and dicts.
12711
12712         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12713         Don't do any validation at all for now, that's better than just checking
12714         for ASCII.
12715
12716         * test/data/valid-messages/emptiness.message:
12717         New test message with lots of empty arrays.
12718
12719 2003-03-16  Havoc Pennington  <hp@pobox.com>
12720
12721         * dbus/dbus-connection.c
12722         (_dbus_connection_queue_received_message_link): new function that
12723         can't fail due to OOM
12724
12725         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12726         new function pops a message together with a list link
12727         containing it.
12728
12729         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12730         message queuing functions to avoid needing to alloc memory
12731
12732 2003-03-16  Havoc Pennington  <hp@pobox.com>
12733
12734         Oops - test code was only testing failure of around 30 of the
12735         mallocs in the test path, but it turns out there are 500+
12736         mallocs. I believe this was due to misguided linking setup such
12737         that there was one copy of dbus_malloc etc. in the daemon and one
12738         in the shared lib, and only daemon mallocs were tested. In any
12739         case, the test case now tests all 500+ mallocs, and doesn't pass
12740         yet, though there are lots of fixes in this patch.
12741
12742         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12743         this so that it doesn't need to allocate memory, since it
12744         has no way of indicating failure due to OOM (and would be
12745         annoying if it did).
12746
12747         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12748
12749         * bus/Makefile.am: rearrange to create two self-contained
12750         libraries, to avoid having libraries with overlapping symbols.
12751         that was resulting in weirdness, e.g. I'm pretty sure there
12752         were two copies of global static variables.
12753
12754         * dbus/dbus-internals.c: move the malloc debug stuff to
12755         dbus-memory.c
12756
12757         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12758         empty.
12759
12760         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12761
12762         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12763         on failure.
12764
12765         * bus/dispatch.c (bus_dispatch_add_connection): free
12766         message_handler_slot when no longer using it, so
12767         memory leak checkers are happy for the test suite.
12768
12769         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12770
12771         * bus/bus.c (new_connection_callback): disconnect in here if
12772         bus_connections_setup_connection fails.
12773
12774         * bus/connection.c (bus_connections_unref): fix to free the
12775         connections
12776         (bus_connections_setup_connection): if this fails, don't
12777         disconnect the connection, just be sure there are no side
12778         effects.
12779
12780         * dbus/dbus-string.c (undo_alignment): unbreak this
12781
12782         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12783         leaking
12784         (_dbus_auth_new): fix the order in which we free strings
12785         on OOM failure
12786
12787         * bus/connection.c (bus_connection_disconnected): fix to
12788         not send ServiceDeleted multiple times in case of memory
12789         allocation failure
12790
12791         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12792         get the base service name
12793         (dbus_bus_register_client): don't return base service name,
12794         instead store it on the DBusConnection and have an accessor
12795         function for it.
12796         (dbus_bus_register_client): rename dbus_bus_register()
12797
12798         * bus/dispatch.c (check_hello_message): verify that other
12799         connections on the bus also got the correct results, not
12800         just the one sending hello
12801
12802 2003-03-15  Havoc Pennington  <hp@pobox.com>
12803
12804         Make it pass the Hello handling test including all OOM codepaths.
12805         Now to do other messages...
12806
12807         * bus/services.c (bus_service_remove_owner): fix crash when
12808         removing owner from an empty list of owners
12809         (bus_registry_ensure): don't leave service in the list of
12810         a connection's owned services if we fail to put the service
12811         in the hash table.
12812
12813         * bus/connection.c (bus_connection_preallocate_oom_error): set
12814         error flag on the OOM error.
12815
12816         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12817         handle _dbus_transport_set_connection failure
12818
12819         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12820         to create watches up front and simply enable/disable them as
12821         needed.
12822         (unix_connection_set): this can now fail on OOM
12823
12824         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12825         of enabling/disabling a watch or timeout.
12826
12827         * bus/loop.c (bus_loop_iterate): don't touch disabled
12828         watches/timeouts
12829
12830         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12831
12832 2003-03-15  Havoc Pennington  <hp@pobox.com>
12833
12834         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12835         write useful test code, after all that futzing around ;-)
12836
12837         Test does not yet pass because we can't handle OOM in
12838         _dbus_transport_messages_pending (basically,
12839         dbus_connection_preallocate_send() does not prealloc the write
12840         watch). To fix this, I think we need to add new stuff to
12841         set_watch_functions, namely a SetEnabled function so we can alloc
12842         the watch earlier, then enable it later.
12843
12844         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12845         dbus-memory.c to the convenience lib
12846
12847         * bus/test.c: rename some static functions to keep them clearly
12848         distinct from stuff in connection.c. Handle client disconnection.
12849
12850 2003-03-14  Havoc Pennington  <hp@pobox.com>
12851
12852         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12853         transport, tests more of the real codepath. Set up clients
12854         with bus_setup_debug_client.
12855
12856         * bus/test.c (bus_setup_debug_client): function to set up debug
12857         "clients" on the main loop
12858
12859         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12860         support
12861
12862         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12863         server type
12864
12865         * dbus/dbus-server-debug.c: support a debug server based on pipes
12866
12867         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12868         (_dbus_close): new function
12869
12870         * configure.in: check for socketpair
12871
12872 2003-03-14  Havoc Pennington  <hp@redhat.com>
12873
12874         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12875         cheesy hack
12876
12877         * dbus/dbus-transport-debug.c: rework this a good bit to be
12878         less complicated. hopefully still works.
12879
12880         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12881         manually
12882
12883         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12884         after running it
12885
12886         * dbus/dbus-message.c (dbus_message_copy): rename from
12887         dbus_message_new_from_message, fix it up to copy
12888         all the message fields, add test case
12889
12890         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12891         not quite passing yet
12892
12893 2003-03-14  Havoc Pennington  <hp@pobox.com>
12894
12895         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12896         until no work remains" in test code. (the large diff here
12897         is just code movement, no actual changes)
12898
12899         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12900         1, no point waiting around for test code.
12901         (_dbus_server_debug_accept_transport): unref the timeout
12902         after adding it (right?)
12903
12904         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12905
12906 2003-03-13  Havoc Pennington  <hp@redhat.com>
12907
12908         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12909         out of memory
12910
12911         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12912         of memory
12913
12914         * dbus/dbus-connection.h: Make AddWatchFunction and
12915         AddTimeoutFunction return a bool so they can fail on out-of-memory
12916
12917         * bus/bus.c (bus_context_new): set up timeout handlers
12918
12919         * bus/connection.c (bus_connections_setup_connection): set up
12920         timeout handlers
12921
12922         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12923         can fail
12924
12925         * bus/bus.c (bus_context_new): adapt to changes
12926
12927         * bus/connection.c: adapt to changes
12928
12929         * test/watch.c: adapt to DBusWatch changes
12930
12931         * bus/dispatch.c (bus_dispatch_test): started adding this but
12932         didn't finish
12933
12934 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12935
12936         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12937
12938 2003-03-13  Havoc Pennington  <hp@pobox.com>
12939
12940         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12941         set up a test framework as for the library
12942
12943 2003-03-12  Havoc Pennington  <hp@pobox.com>
12944
12945         Throughout: purge global variables, introduce BusActivation,
12946         BusConnections, BusRegistry, etc. objects instead.
12947
12948         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12949         message bus object
12950
12951         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12952         going to redo this a bit differently I think
12953
12954 2003-03-12  Havoc Pennington  <hp@redhat.com>
12955
12956         Mega-patch that gets the message bus daemon initially handling
12957         out-of-memory. Work still needed. Also lots of random
12958         moving stuff to DBusError instead of ResultCode.
12959
12960         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12961
12962         * dbus/dbus-connection.c
12963         (dbus_connection_send_with_reply_and_block): use DBusError
12964
12965         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12966         DBusResultCode
12967
12968         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12969         code here, as the only failure possible is OOM.
12970
12971         * bus/connection.c (bus_connection_disconnect):
12972         rename bus_connection_disconnected as it's a notification only
12973
12974         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12975         "name" on get_args failure, should be done by get_args;
12976         don't disconnect client for bad args, just return an error.
12977         (bus_driver_handle_service_exists): ditto
12978
12979         * bus/services.c (bus_services_list): NULL-terminate returned array
12980
12981         * bus/driver.c (bus_driver_send_service_lost)
12982         (bus_driver_send_service_acquired): send messages from driver to a
12983         specific client to the client's unique name, not to the broadcast
12984         service.
12985
12986         * dbus/dbus-message.c (decode_header_data): reject messages that
12987         contain no name field
12988         (_dbus_message_get_client_serial): rename to
12989         dbus_message_get_serial and make public
12990         (_dbus_message_set_serial): rename from set_client_serial
12991         (_dbus_message_set_reply_serial): make public
12992         (_dbus_message_get_reply_serial): make public
12993
12994         * bus/connection.c (bus_connection_foreach): allow stopping
12995         iteration by returning FALSE from foreach function.
12996
12997         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12998         (dbus_connection_free_preallocated_send)
12999         (dbus_connection_preallocate_send): new API for sending a message
13000         without possibility of malloc failure.
13001         (dbus_connection_send_message): rename to just
13002         dbus_connection_send (and same for whole function family)
13003
13004         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13005
13006         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13007
13008         * bus/activation.c: handle/return errors
13009
13010         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13011
13012         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13013         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13014         (_dbus_result_from_errno): move to this file
13015
13016 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13017
13018         * dbus/dbus-marshal.c:
13019         (_dbus_marshal_set_string):
13020         Take a length argument so we can marshal the correct string
13021         length.
13022
13023         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13024         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13025         (_dbus_marshal_test):
13026         * dbus/dbus-marshal.h:
13027         Add support for marshalling and demarshalling dicts.
13028
13029         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13030         Add support for TYPE DICT.
13031
13032         * dbus/dbus-message.c: (set_string_field):
13033         Adjust header padding.
13034
13035         (dbus_message_append_args_valist), (dbus_message_append_dict),
13036         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13037         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13038         (check_message_handling), (check_have_valid_message):
13039         * dbus/dbus-message.h:
13040         Add functions for setting and getting dicts.
13041
13042         * dbus/dbus-protocol.h:
13043         Add DBUS_TYPE_DICT.
13044
13045         * dbus/dbus.h:
13046         Add dbus-dict.h
13047
13048         * doc/dbus-specification.sgml:
13049         Add information about how dicts are marshalled.
13050
13051         * test/data/invalid-messages/dict-with-nil-value.message:
13052         * test/data/invalid-messages/too-short-dict.message:
13053         * test/data/valid-messages/dict-simple.message:
13054         * test/data/valid-messages/dict.message:
13055         Add sample messages containing dicts.
13056
13057 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13058
13059         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13060
13061 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13062
13063         * dbus/Makefile.am:
13064         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13065         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13066         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13067         (dbus_dict_set_double), (dbus_dict_set_string),
13068         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13069         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13070         (dbus_dict_set_string_array), (_dbus_dict_test):
13071         * dbus/dbus-dict.h:
13072         Fix according to comments from Havoc.
13073
13074 2003-03-06  Michael Meeks  <michael@server.home>
13075
13076         * configure.in: if we don't have kde-config, disable have_qt.
13077
13078 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13079
13080         * dbus/Makefile.am:
13081         Add dbus-dict.[ch]
13082
13083         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13084         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13085         (dbus_dict_remove), (dbus_dict_get_value_type),
13086         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13087         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13088         (dbus_dict_put_double), (dbus_dict_put_string),
13089         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13090         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13091         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13092         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13093         (dbus_dict_get_double), (dbus_dict_get_string),
13094         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13095         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13096         (dbus_dict_get_string_array), (_dbus_dict_test):
13097         * dbus/dbus-dict.h:
13098         Add DBusDict implementation
13099
13100         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13101         * dbus/dbus-test.h:
13102         Add _dbus_dict_test
13103
13104 2003-03-04  Havoc Pennington  <hp@pobox.com>
13105
13106         * test/data/auth/*: adapt to changes
13107
13108         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13109         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13110         userid
13111
13112         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13113         more stuff from being in a context name, to make the protocol
13114         simpler to deal with
13115
13116         * dbus/dbus-errors.c (dbus_error_has_name): new function
13117         (dbus_error_is_set): new function
13118
13119         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13120         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13121
13122         * dbus/dbus-connection.c (dbus_connection_flush): also read
13123         messages during a flush operation
13124
13125         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13126
13127 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13128
13129         * configure.in: Check for gethostbyname on Solaris.
13130
13131         * dbus/dbus-transport.c: (_dbus_transport_open):
13132         Remove duplicate "tcp" entry.
13133
13134         * doc/dbus-specification.sgml:
13135         Clarify some things.
13136
13137 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13138
13139         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13140         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13141         (_dbus_keyring_test):
13142         * dbus/dbus-md5.c: (_dbus_md5_compute):
13143         * dbus/dbus-sha.c: (_dbus_sha_compute):
13144         Plug memory leaks.
13145
13146 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13147
13148         * README: Add some things.
13149
13150 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13151
13152         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13153         after case DBUS_TYPE_BOOELAN.
13154
13155 2003-03-02  Havoc Pennington  <hp@pobox.com>
13156
13157         * test/break-loader.c (randomly_set_extreme_ints): add test that
13158         sets really huge and small integers
13159
13160         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13161         that length of boolean array fits in the string, and that
13162         string has room for boolean value in single-bool case.
13163
13164         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13165         optional value to "ALIGN" command which is what to fill the
13166         alignment with.
13167
13168         * test/data/valid-messages/no-padding.message: add regression
13169         test for the message padding problem
13170
13171 2003-03-02  Havoc Pennington  <hp@pobox.com>
13172
13173         * dbus/dbus-message.c (decode_header_data): fix to always init
13174         message_padding, from Benjamin Dauvergne
13175
13176 2003-03-02  Havoc Pennington  <hp@pobox.com>
13177
13178         * configure.in: 0.5
13179
13180         * NEWS: Update.
13181
13182 2003-03-01  Joe Shaw  <joe@assbarn.com>
13183
13184         * configure.in: Check for "struct cmsgcred" and try to access its
13185         members for BSD-like unices.
13186
13187         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13188         _dbus_read_credentials_unix_socket().
13189         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13190         read() for reading the credential byte off the unix socket.  Use
13191         struct cmsgcred on systems that support it.
13192
13193 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13194
13195         * glib/Makefile.am:
13196         * configure.in:
13197         Make gthreads-2.0 dependency optional. Don't build thread test if
13198         its not found.
13199
13200 2003-02-27  Havoc Pennington  <hp@pobox.com>
13201
13202         * dbus/dbus-connection.c
13203         (dbus_connection_send_message_with_reply_and_block): fix doh!
13204         doh! doh! bug that resulted in never removing a reply from the
13205         queue, no wonder we called get_reply_serial so much ;-)
13206
13207         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13208         and client serial instead of demarshaling them every time
13209
13210 2003-02-27  Havoc Pennington  <hp@pobox.com>
13211
13212         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13213         more inlined, using dbus-string-private.h, speeds things up
13214         substantially
13215
13216         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13217         when freeing the string
13218         (_dbus_string_steal_data): fix for align offset
13219         (undo_alignment): new function
13220
13221 2003-02-26  Havoc Pennington  <hp@redhat.com>
13222
13223         All kinds of audit fixes from Owen, plus initial attempt to
13224         handle unaligned memory returned from malloc.
13225
13226         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13227         leave room for align_offset and nul byte
13228         (fixup_alignment): function to track an align_offset and
13229         ensure real->str is aligned
13230         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13231         to allow a nul byte plus align offset
13232         (_dbus_string_lock): fix overflow issue
13233         (_dbus_string_init_const_len): add assertions on sanity of len,
13234         assign allocated to be ALLOCATION_PADDING larger than len
13235         (set_length): fixup the overflow handling
13236         (_dbus_string_get_data_len): fix overflow in assertion
13237         (open_gap): detect overflow in size of gap to be opened
13238         (_dbus_string_lengthen): add overflow check
13239         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13240         (_dbus_string_append): add overflow check
13241         (_dbus_string_append_unichar): overflow
13242         (_dbus_string_delete): fix overflow in assertion
13243         (_dbus_string_copy_len): overflow in assertion
13244         (_dbus_string_replace_len): overflows in assertions
13245         (_dbus_string_find): change to implement in terms of
13246         _dbus_string_find_to
13247         (_dbus_string_find_to): assorted fixage
13248         (_dbus_string_equal_c_str): assert c_str != NULL,
13249         fix logic so the function works
13250         (_dbus_string_ends_with_c_str): fix overflow thingy
13251         (_dbus_string_base64_encode): overflow fix
13252         (_dbus_string_validate_ascii): overflow
13253         (_dbus_string_validate_nul): overflow
13254
13255 2003-02-26  Havoc Pennington  <hp@redhat.com>
13256
13257         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13258
13259 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13260
13261         * configure.in:
13262         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13263
13264         * dbus/dbus-connection.c:
13265         * dbus/dbus-connection.h:
13266         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13267         Add dbus_connection_set_wakeup_main_function and use it when queueing
13268         incoming and outgoing messages.
13269
13270
13271         * dbus/dbus-dataslot.c:
13272         Threadsafe usage of DBusDataSlotAllocator
13273
13274         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13275         dbus_new can fail.
13276
13277         * dbus/dbus-server-unix.c:
13278         Add todo comment
13279
13280         * glib/dbus-gmain.c:
13281         Implement the new wakeup functions for glib.
13282
13283         * glib/Makefile.am:
13284         * glib/test-thread-client.c:
13285         * glib/test-thread-server.c:
13286         * glib/test-thread.h:
13287         Initial cut at some thread test code. Not really done yet.
13288
13289 2003-02-26  Havoc Pennington  <hp@pobox.com>
13290
13291         * dbus/dbus-connection.c
13292         (dbus_connection_send_message_with_reply_and_block): fix crash
13293         where we ref'd the outgoing message instead of the returned reply
13294
13295         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13296         at the end of this function, so if we didn't need to read for
13297         authentication, we reinstall it for receiving messages
13298
13299         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13300         a NULL sender for peer-to-peer case
13301
13302         * dbus/dbus-transport-unix.c (check_read_watch): handle
13303         !authenticated case correctly
13304
13305         * glib/dbus-gmain.c: add support for DBusServer
13306
13307         * dbus/dbus-server.c: add data slot support
13308
13309         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13310         return values and handle errors
13311
13312         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13313         DBusConnection
13314
13315         * Doxyfile.in (INPUT): add glib subdir
13316
13317         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13318         setup_with_g_main instead of hookup_with_g_main; write docs
13319
13320 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13321
13322         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13323         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13324         * dbus/dbus-message.c: (dbus_message_append_boolean),
13325         (dbus_message_append_boolean_array),
13326         (dbus_message_get_args_valist), (_dbus_message_test):
13327         * dbus/dbus-message.h:
13328         * doc/dbus-specification.sgml:
13329         Various fixes as pointed out by Havoc.
13330
13331         * test/data/invalid-messages/bad-boolean-array.message:
13332         * test/data/invalid-messages/bad-boolean.message:
13333         Add invalid boolean value test cases.
13334
13335 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13336
13337         * dbus/dbus-internals.c: (_dbus_type_to_string):
13338         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13339         (_dbus_marshal_validate_arg):
13340         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13341         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13342         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13343         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13344         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13345         (dbus_message_iter_get_double),
13346         (dbus_message_iter_get_boolean_array), (message_iter_test):
13347         * dbus/dbus-message.h:
13348         * dbus/dbus-protocol.h:
13349         * doc/dbus-specification.sgml:
13350         * test/data/valid-messages/lots-of-arguments.message:
13351         Add support for boolean and boolean array types.
13352
13353 2003-02-23  Havoc Pennington  <hp@pobox.com>
13354
13355         * dbus/dbus-keyring.c: finish most of this implementation and
13356         simple unit test
13357
13358         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13359         these barf if the error isn't cleared to NULL
13360
13361         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13362         (_dbus_create_directory): new function
13363
13364         * dbus/dbus-errors.c (dbus_set_error): fix warning
13365
13366         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13367         (_dbus_string_hex_decode): new function
13368         (test_hex_roundtrip): test code
13369
13370         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13371
13372         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13373
13374         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13375         the save-to-temp/rename trick to atomically write the new file
13376         (_dbus_string_parse_uint): new function
13377
13378 2003-02-22  Havoc Pennington  <hp@pobox.com>
13379
13380         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13381
13382 2003-02-22  Havoc Pennington  <hp@pobox.com>
13383
13384         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13385         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13386
13387         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13388
13389         * dbus/test/data/sha-1: add US government test suite for SHA-1
13390
13391 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13392
13393         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13394         Make string arrays NULL-terminated.
13395
13396         * dbus/dbus-memory.c: (dbus_free_string_array):
13397         * dbus/dbus-memory.h:
13398         New function for freeing NULL-terminated string arrays.
13399
13400         * dbus/dbus-message-builder.c: (append_quoted_string),
13401         (_dbus_message_data_load):
13402         Add support for array types.
13403
13404         * dbus/dbus-message.c: (check_message_handling):
13405         Add more types as test cases.
13406
13407         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13408         (_dbus_string_parse_double):
13409         Add the start offset to the end offset.
13410
13411         * test/data/valid-messages/lots-of-arguments.message:
13412         New test message with lots of arguments.
13413
13414 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13415
13416         * dbus/dbus-message.c: (dbus_message_append_nil),
13417         (dbus_message_append_int32), (dbus_message_append_uint32),
13418         (dbus_message_append_double), (dbus_message_append_string),
13419         (dbus_message_append_int32_array),
13420         (dbus_message_append_uint32_array),
13421         (dbus_message_append_double_array),
13422         (dbus_message_append_byte_array),
13423         (dbus_message_append_string_array):
13424         Fix all out-of-memory handling in these functions.
13425
13426 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13427
13428         * dbus/dbus-message.c: (dbus_message_append_nil):
13429         Fix a silly.
13430
13431 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13432
13433         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13434         (dbus_message_append_nil), (dbus_message_append_int32_array),
13435         (dbus_message_append_uint32_array),
13436         (dbus_message_append_double_array),
13437         (dbus_message_append_byte_array),
13438         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13439         (dbus_message_iter_get_int32_array),
13440         (dbus_message_iter_get_uint32_array),
13441         (dbus_message_iter_get_double_array),
13442         (dbus_message_iter_get_byte_array),
13443         (dbus_message_iter_get_string_array):
13444
13445         * dbus/dbus-message.h:
13446         Add functions for appending and getting arrays.
13447
13448 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13449
13450         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13451         element size at least 8 bytes, fixes mempool tests on
13452         64-bit machines.
13453
13454 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13455
13456         * dbus/dbus-transport-unix.c (unix_do_iteration):
13457         Unlock the connection mutex during a blocking select call.
13458         Add todo about how we need a way to wake up the select.
13459
13460         * dbus/dbus-connection-internal.h:
13461         * dbus/dbus-connection.c:
13462         Add _dbus_connection_lock and _dbus_connection_unlock.
13463
13464 2003-02-19  Havoc Pennington  <hp@pobox.com>
13465
13466         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13467         Doxyfile.in, not Doxyfile
13468
13469         * dbus/dbus-keyring.c: do some hacking on this
13470
13471         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13472
13473         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13474         dbus_error_init
13475         (dbus_set_error): remove dbus_error_init, check for message ==
13476         NULL *before* we sprintf into it, and add @todo about including
13477         system headers in this file
13478
13479         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13480
13481         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13482
13483         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13484         get various bits of user information based on either username
13485         or user ID
13486         (_dbus_homedir_from_username): new function
13487
13488 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13489
13490         * configure.in:
13491         Add check for nonposix getpwnam_r
13492
13493         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13494         Align the pool element size to a sizeof (void *) boundary.
13495
13496         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13497         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13498         General Solaris fixes.
13499
13500         * test/data/valid-messages/simplest-manual.message:
13501         Explicitly state that we want little-endian packing.
13502
13503 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13504
13505         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13506
13507         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13508         Added to create a transport connecting using a tcp/ip socket.
13509
13510         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13511         to a tcp socket at given host and port.
13512         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13513         hostname and port.
13514
13515         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13516
13517         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13518         Added to create a server listening on a TCP/IP socket.
13519
13520 2003-02-19  Havoc Pennington  <hp@pobox.com>
13521
13522         Throughout: mop up all the Doxygen warnings and undocumented
13523         stuff.
13524
13525         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13526         to search any paths.
13527
13528         * dbus/dbus-threads.c: move global mutex initializers to
13529         dbus-internals.h, multiple prototypes was confusing doxygen
13530         besides being kind of ugly
13531
13532         * Doxyfile (PREDEFINED): have Doxygen define
13533         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13534         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13535         (do not abuse the feature! it's for stuff like the autogenerated
13536         macros in dbus-md5.c, not just for things you don't feel like
13537         documenting...)
13538
13539 2003-02-18  Havoc Pennington  <hp@pobox.com>
13540
13541         * dbus/dbus-string.c (_dbus_string_zero): new function
13542
13543         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13544         wrap it in some dbus-friendly API
13545
13546         * dbus/dbus-types.h: add 16-bit types
13547
13548 2003-02-18  Joe Shaw  <joe@assbarn.com>
13549
13550         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13551         credentials from our currently running process.
13552         (get_word): Fix a buglet where we were copying the entire length
13553         instead of relative to our position.
13554
13555         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13556         keys on the stack... it's 640k of data.
13557
13558         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13559         read the credentials byte off the socket, even if we don't have
13560         SO_PEERCRED.
13561         (_dbus_poll): Implement poll() using select() for systems which
13562         don't have it.
13563
13564         * glib/test-dbus-glib.c (main): Print out an error if no
13565         parameters are given.
13566
13567         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13568         can fallback to a secondary auth mechanism if the first fails.
13569
13570 2003-02-18  Havoc Pennington  <hp@pobox.com>
13571
13572         * AUTHORS: add Alex
13573
13574 2003-02-17  Havoc Pennington  <hp@pobox.com>
13575
13576         * doc/dbus-specification.sgml: lots of cosmetic
13577         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13578         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13579         s/server/bus/ (except in authentication section). Add a section
13580         "Message Bus Message Routing"
13581
13582 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13583
13584         Release 0.4
13585
13586         * NEWS: Update
13587
13588 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13589
13590         * doc/dbus-specification.sgml:
13591         Specification updates.
13592
13593 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13594
13595         * bus/activation.c: (bus_activation_init), (child_setup),
13596         (bus_activation_activate_service):
13597         * bus/activation.h:
13598         * bus/main.c: (main):
13599         Set DBUS_ADDRESS environment variable.
13600
13601         * dbus/dbus-errors.c: (dbus_set_error):
13602         Don't use va_copy since that's a C99 feature.
13603
13604         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13605         (_dbus_spawn_async):
13606         * dbus/dbus-sysdeps.h:
13607         Add child_setup_func to _dbus_spawn_async.
13608
13609         * doc/dbus-specification.sgml:
13610         Update specification.
13611
13612         * test/spawn-test.c: (setup_func), (main):
13613         Fix test.
13614
13615 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13616
13617         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13618         Added todo.
13619
13620 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13621
13622         * doc/.cvsignore:
13623         * doc/Makefile.am:
13624         * doc/dbus-test-plan.sgml:
13625         Add test plan document.
13626
13627         * test/Makefile.am:
13628         Fix distcheck.
13629
13630 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13631
13632         * dbus/dbus-message.c: (decode_header_data),
13633         (_dbus_message_loader_return_buffer):
13634         Set the header padding amount when loading a message.
13635
13636 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13637
13638         * bus/dispatch.c: (send_one_message):
13639         Only send broadcast messages to registered connections.
13640
13641         * dbus/dbus-message.c: (dbus_message_name_is):
13642         * dbus/dbus-message.h:
13643         New convenience function.
13644
13645         * dbus/dbus-transport-debug.c: (do_reading):
13646         Only dispatch one message per run.
13647
13648         * test/Makefile.am:
13649         * test/bus-test.c: (new_connection_callback), (die),
13650         (test_hello_client1_handler), (test_hello_client2_handler),
13651         (test_hello_replies), (main):
13652
13653         * test/bus-test-loop.[ch]:
13654         Add these.
13655
13656 2003-02-16  Havoc Pennington  <hp@pobox.com>
13657
13658         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13659         backward conditional
13660
13661 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13662
13663         * dbus/dbus-connection.c:
13664         Implement sent_message_with_reply. (with_reply_and block is still
13665         busted).
13666         Made dispatch_message not lose message if OOM.
13667
13668         * dbus/dbus-errors.h:
13669         Add NoReply error (for reply timeouts).
13670
13671 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13672
13673         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13674         Actually free keys and values when destroying hashtable.
13675
13676 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13677
13678         * dbus/dbus-auth.c: (client_try_next_mechanism):
13679         Plug a leak.
13680
13681         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13682         Return TRUE if there's no thread implementation around.
13683
13684         * glib/dbus-gmain.c: (free_source),
13685         (dbus_connection_hookup_with_g_main):
13686         Make sure to remove the GSource when the connection is finalized.
13687
13688 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13689
13690         * bus/dispatch.c: (bus_dispatch_message_handler):
13691         * dbus/dbus-errors.h:
13692         Return an error if someone tries to send a message to a service
13693         that doesn't exist.
13694
13695 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13696
13697         * bus/activation.c: (load_directory), (bus_activation_init),
13698         (bus_activation_activate_service):
13699         * bus/activation.h:
13700         * bus/driver.c:
13701         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13702         More work on the activation handling.
13703
13704         * dbus/dbus-errors.h:
13705         Add some error messages
13706
13707         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13708         * dbus/dbus-message.h:
13709         New function that creates an error message.
13710
13711         * dbus/dbus-protocol.h:
13712         Add ACTIVATE_SERVER message.
13713
13714         * dbus/dbus-server-unix.c: (unix_handle_watch),
13715         (_dbus_server_new_for_domain_socket):
13716         Call _dbus_fd_set_close_on_exec.
13717
13718         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13719         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13720         (_dbus_fd_set_close_on_exec):
13721         * dbus/dbus-sysdeps.h:
13722         Add _dbus_fd_set_close_on exec function. Also add function that checks
13723         that all open fds are set to close-on-exec and warns otherwise.
13724
13725         * dbus/dbus-transport-unix.c:
13726         (_dbus_transport_new_for_domain_socket):
13727         Call _dbus_fd_set_close_on_exec.
13728
13729 2003-02-16  Havoc Pennington  <hp@pobox.com>
13730
13731         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13732         allow people to avoid setting SIGPIPE to SIG_IGN
13733         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13734         we've been asked not to
13735
13736 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13737
13738         * dbus/dbus-list.c: (_dbus_list_append_link),
13739         (_dbus_list_prepend_link):
13740         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13741         (dbus_realloc):
13742         Warning fixes.
13743
13744 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13745
13746         * bus/Makefile.am:
13747         * bus/activation.c: (bus_activation_entry_free),
13748         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13749         * bus/activation.h:
13750         * bus/main.c: (main):
13751         Add simple activation support, doesn't work yet though.
13752
13753 2003-02-15   Zack Rusin  <zack@kde.org>
13754
13755         * qt/dbus-qthread.cpp:  small casting fix
13756
13757 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13758
13759         * dbus/dbus-errors.c: (dbus_set_error):
13760         * dbus/dbus-errors.h:
13761         Add a few errors and make dbus_set_error void.
13762
13763         * dbus/dbus-sysdeps.c:
13764         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13765         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13766         * dbus/dbus-sysdeps.h:
13767         Add _dbus_spawn_async.
13768
13769         * test/spawn-test.c: (main):
13770         Test for _dbus_spawn_async.
13771
13772 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13773
13774         * dbus/dbus-internals.h:
13775         Fix build without tests.
13776
13777         * dbus/dbus-list.c: (alloc_link):
13778         Fix a segfault when a malloc fails.
13779
13780         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13781         (dbus_malloc0), (dbus_realloc):
13782         Add support for malloc debugging.
13783
13784 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13785
13786         * dbus/dbus-threads.c:
13787         * dbus/dbus-threads.h:
13788         Add condvars. Remove static mutext from API.
13789         Implement static mutexes by initializing them from threads_init.
13790
13791         * glib/dbus-gthread.c:
13792         * qt/dbus-qthread.cpp:
13793         Update with the thread api changes.
13794
13795
13796         * dbus/dbus-list.c:
13797         * dbus/dbus-list.h:
13798         Turn StaticMutex into normal mutex + init function.
13799         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13800         _dbus_list_append_link, _dbus_list_prepend_link
13801
13802
13803         * dbus/dbus-sysdeps.c:
13804         * dbus/dbus-sysdeps.h:
13805         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13806         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13807
13808         * dbus/dbus-protocol.h:
13809         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13810
13811         * dbus/dbus-message.c:
13812         Make ref/unref atomic.
13813         Fix some docs.
13814
13815         * dbus/dbus-connection-internal.h:
13816         * dbus/dbus-connection.c:
13817         * dbus/dbus-connection.h:
13818         Make threadsafe.
13819         Change _peek to _borrow,_return & _steal_borrowed.
13820         Change disconnect callback to event.
13821         Make dbus_connection_dispatch_messages reentrant.
13822
13823         * dbus/dbus-transport.c:
13824         Don't ref the connection on calls to the transport
13825         implementation.
13826
13827         * dbus/dbus-message-handler.c:
13828         Make threadsafe.
13829
13830         * glib/dbus-gmain.c:
13831         Don't use peek_message anymore
13832
13833         * test/Makefile.am:
13834         * test/debug-thread.c:
13835         * test/debug-thread.h:
13836         Simple thread implementation that asserts() on deadlocks in
13837         single-threaded code.
13838
13839         * test/bus-test.c:
13840         (main) Call debug_threads_init.
13841
13842         * test/watch.c:
13843         Use disconnect message instead of disconnect callback.
13844
13845         * bus/connection.c:
13846         * bus/connection.h:
13847         Don't call dbus_connection_set_disconnect_function. Instead export
13848         bus_connection_disconnect.
13849
13850         * bus/dispatch.c:
13851         Call bus_connection_disconnect when we get a disconnected message.
13852
13853 2003-02-15  Havoc Pennington  <hp@pobox.com>
13854
13855         * dbus/dbus-message.c (dbus_message_new): fool around with the
13856         docs
13857
13858 2003-02-14  Havoc Pennington  <hp@pobox.com>
13859
13860         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13861
13862         * dbus/dbus-memory.c: fail if the debug functions indicate we
13863         should
13864
13865         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13866         (_dbus_decrement_fail_alloc_counter): debug functions to
13867         simulate memory allocation failures
13868
13869 2003-02-14  Havoc Pennington  <hp@pobox.com>
13870
13871         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13872         to DBusError
13873
13874 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13875
13876         * bus/driver.c: (bus_driver_handle_hello):
13877         * bus/driver.h:
13878         * bus/services.c: (bus_service_lookup):
13879         Reorder message sending so we get a more sane order.
13880
13881         * test/bus-test.c: (message_handler):
13882         Fix tyop.
13883
13884 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13885
13886         * bus/driver.c: (bus_driver_send_service_deleted),
13887         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13888         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13889         (bus_driver_send_welcome_message),
13890         (bus_driver_handle_list_services),
13891         (bus_driver_handle_acquire_service),
13892         (bus_driver_handle_service_exists):
13893         * dbus/dbus-bus.c: (dbus_bus_register_client),
13894         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13895         * dbus/dbus-errors.c: (dbus_result_to_string):
13896         * dbus/dbus-errors.h:
13897         * dbus/dbus-message.c: (dbus_message_append_args),
13898         (dbus_message_append_args_valist), (dbus_message_get_args),
13899         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13900         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13901         (dbus_message_iter_get_byte_array),
13902         (dbus_message_iter_get_string_array), (message_iter_test),
13903         (check_message_handling), (_dbus_message_test):
13904         * dbus/dbus-message.h:
13905         * test/bus-test.c: (main):
13906         Change fields to arguments in messages, so that they won't be
13907         confused with header fields.
13908
13909         * glib/test-dbus-glib.c: (main):
13910         Remove append_fields from hello message.
13911
13912 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13913
13914         * dbus/dbus-errors.c:
13915         * dbus/dbus-message.c:
13916         * dbus/dbus-string.c:
13917         Documentation fixes.
13918
13919 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13920
13921         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13922         (remove_timeout):
13923         Implement support for timeouts in dbus-glib.
13924
13925 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13926
13927         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13928         * dbus/dbus-message.c: (process_test_subdir):
13929         * test/break-loader.c: (find_breaks_based_on):
13930         Plug some memory leaks.
13931
13932 2003-02-13  Richard Hult  <rhult@codefactory.se>
13933
13934         * bus/main.c: Fix build.
13935
13936         * dbus/dbus-errors.h:
13937         * dbus/dbus-errors.c: Fix copyright for Anders.
13938
13939 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13940
13941         * bus/Makefile.am:
13942         Add utils.[ch]
13943
13944         * bus/connection.c: (bus_connection_foreach):
13945         Fix a warning.
13946
13947         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13948         (unescape_string), (new_section), (parse_section_start),
13949         (parse_key_value), (report_error), (bus_desktop_file_load),
13950         (bus_desktop_file_get_string):
13951         * bus/desktop-file.h:
13952         Use DBusError for error reporting.
13953
13954         * bus/dispatch.c: (send_one_message),
13955         (bus_dispatch_message_handler):
13956         * bus/driver.c: (bus_driver_send_service_deleted),
13957         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13958         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13959         (bus_driver_send_welcome_message),
13960         (bus_driver_handle_list_services),
13961         (bus_driver_handle_acquire_service),
13962         (bus_driver_handle_service_exists):
13963         * bus/loop.c: (bus_loop_run):
13964         * bus/main.c:
13965         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13966
13967         * bus/utils.c: (bus_wait_for_memory):
13968         * bus/utils.h:
13969         New files with general utility functions.
13970
13971         * dbus/dbus-internals.h:
13972         Remove _DBUS_HANDLE_OOM.
13973
13974 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13975
13976         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13977         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13978         * dbus/dbus-errors.h:
13979         Add DBusError structure.
13980
13981 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13982
13983         * test/data/valid-messages/standard-acquire-service.message:
13984         * test/data/valid-messages/standard-hello.message:
13985         * test/data/valid-messages/standard-list-services.message:
13986         * test/data/valid-messages/standard-service-exists.message:
13987         Add some standard messages.
13988
13989 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13990
13991         * bus/driver.c: (bus_driver_send_welcome_message),
13992         (bus_driver_handle_list_services),
13993         (bus_driver_handle_acquire_service),
13994         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13995         Update for API changes in libdbus.
13996
13997         * dbus/dbus-message.c: (dbus_message_new_reply):
13998         * dbus/dbus-message.h:
13999         Remove the name argument. The spec states that replies shouldn't
14000         have a name.
14001
14002 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14003
14004         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14005         (report_error), (bus_desktop_file_load), (lookup_section),
14006         (lookup_line), (bus_desktop_file_get_raw),
14007         (bus_desktop_file_get_string):
14008         * bus/desktop-file.h:
14009         Some fixes, and new functions for getting a key value from a section.
14010
14011 2003-02-13  Havoc Pennington  <hp@pobox.com>
14012
14013         * test/data/auth/fail-after-n-attempts.auth-script: new test
14014
14015         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14016         reject the client.
14017
14018 2003-02-13  Havoc Pennington  <hp@pobox.com>
14019
14020         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14021         dbus_credentials_match were backward
14022
14023         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14024         NO_CREDENTIALS and ROOT_CREDENTIALS
14025
14026         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14027         into here. Never process more commands after we've reached an
14028         end state; store further data as unused bytes.
14029
14030         * test/data/auth/*: add more auth tests
14031
14032         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14033         command to match exact string and EXPECT_UNUSED to match unused
14034         bytes
14035
14036         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14037
14038 2003-02-12  Havoc Pennington  <hp@pobox.com>
14039
14040         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14041         \r off of popped lines
14042
14043         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14044         scripts
14045
14046         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14047         SEND, append \r\n
14048
14049 2003-02-12  Havoc Pennington  <hp@pobox.com>
14050
14051         * dbus/Makefile.am: remove break-loader from the build, since it
14052         moved.
14053
14054         * configure.in: add --enable-gcov to turn on coverage profiling
14055         flags and disable optimization
14056
14057 2003-02-10  Havoc Pennington  <hp@pobox.com>
14058
14059         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14060         initial cut at test framework for DBusAuth from laptop.
14061         Doesn't quite work yet but it compiles and I need to get
14062         it off the 266mhz laptop. ;-)
14063
14064         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14065         fix a memleak in error case
14066
14067 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * bus/Makefile.am:
14070         * bus/desktop-file.c:
14071         * bus/desktop-file.h:
14072         Add a desktop file parser.
14073
14074 2003-02-11  Zack Rusin  <zack@kde.org>
14075
14076         * qt/message.[h|cpp]: sample implementation
14077         of the KDE wrapper for DBusMessage
14078
14079 2003-02-09  Zack Rusin  <zack@kde.org>
14080
14081         * test/bus-test.c: make_it_compile
14082         * doc/dbus-specification.sgml: minimal semantic fix
14083
14084 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14085
14086         Release 0.3
14087
14088         * NEWS: Update
14089
14090 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14091
14092         * dbus/Makefile.am:
14093         * dbus/dbus-break-loader.c:
14094         * test/Makefile.am:
14095         * test/break-loader.c:
14096         Move dbus-break-loader to test/ and rename it to break-loader.
14097
14098 2003-02-02  Havoc Pennington  <hp@pobox.com>
14099
14100         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14101         for code to manage cookies in your home directory
14102
14103         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14104
14105         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14106         to authenticate, then disconnect the client.
14107
14108 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14109
14110         * dbus/dbus-message.c (dbus_message_append_fields):
14111         Correct docs.
14112
14113 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14114
14115         * doc/dbus-specification.sgml:
14116         Update address format section.
14117
14118 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14119
14120         * test/Makefile.am:
14121         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14122         (message_handler), (new_connection_callback), (loop_quit),
14123         (loop_run), (main):
14124         Add bus test.
14125
14126 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14127
14128         * bus/driver.c: (bus_driver_handle_service_exists):
14129         Simplify the code a bit.
14130
14131         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14132         Fix a silly.
14133
14134 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14135
14136         * bus/Makefile.am:
14137         Add libdbus-daemon.la and link to it.
14138
14139 2003-02-01  James Willcox  <jwillcox@gnome.org>
14140
14141         * bus/driver.c: (bus_driver_handle_own_service):
14142         Actually include the service reply code in the message.
14143
14144 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14145
14146         * bus/driver.c: (bus_driver_handle_service_exists):
14147         Don't unref the incoming message.
14148
14149 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14150
14151         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14152
14153 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14154
14155         * dbus/dbus-server.c: (dbus_server_listen):
14156         * dbus/dbus-transport.c: (_dbus_transport_open):
14157         ifdef out the calls to the debug transport and server.
14158
14159 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14160
14161         * dbus/dbus-watch.c (dbus_watch_get_flags):
14162         Add note in the docs that ERROR or HANGUP won't be returned
14163         and are assumed always on.
14164
14165         * glib/dbus-gmain.c (add_watch):
14166         Always add IO_ERR | IO_HUP
14167
14168         * dbus/dbus-message.h:
14169         Add semicolon after dbus_message_iter_get_string_array().
14170         Makes qt code build again
14171
14172 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14173
14174         * bus/driver.c: (create_unique_client_name),
14175         (bus_driver_handle_hello):
14176         Don't take a name, just use a numeric id to identify
14177         each client.
14178
14179         * dbus/Makefile.am:
14180         * dbus/dbus-bus.c: (dbus_bus_register_client),
14181         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14182         * dbus/dbus-bus.h:
14183         Add new convenience functions for communicating with the bus.
14184
14185         * dbus/dbus-message.h:
14186
14187         * dbus/dbus-protocol.h:
14188         Fix a typo.
14189
14190 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14191
14192         * dbus/dbus-message.c (dbus_message_append_fields):
14193         Add some more doc comments.
14194
14195 2003-02-01  Havoc Pennington  <hp@pobox.com>
14196
14197         * dbus/dbus-break-loader.c (randomly_modify_length): change
14198         a 4-byte value in the message as if it were a length
14199
14200         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14201         execute bit on saved files
14202
14203 2003-02-01  Havoc Pennington  <hp@pobox.com>
14204
14205         * dbus/dbus-break-loader.c (main): new program to find messages
14206         that break the loader.
14207
14208         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14209         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14210
14211         * dbus/dbus-string.c (_dbus_string_set_byte): new
14212
14213 2003-01-31  Havoc Pennington  <hp@pobox.com>
14214
14215         * dbus/dbus-message.c: refactor the test code to be more general,
14216         in preparation for writing a "randomly permute test cases to
14217         try to break the loader" program.
14218
14219 2003-01-31  Havoc Pennington  <hp@pobox.com>
14220
14221         * doc/dbus-specification.sgml: work on the specification
14222
14223         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14224         the protocol version of the message.
14225
14226         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14227         no longer specifies that.
14228         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14229         1/2/3/4)
14230
14231         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14232         "break" for DBUS_TYPE_NIL, remove @todo
14233
14234 2003-01-31  Havoc Pennington  <hp@pobox.com>
14235
14236         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14237         just set_is_error/get_is_error as this is a commonly-used
14238         function, and write docs.
14239
14240 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14241
14242         * dbus/dbus-address.c: (dbus_address_entry_free):
14243         Free key and value lists.
14244
14245         * dbus/dbus-internals.c: (_dbus_type_to_string):
14246         Add the types we didn't have.
14247
14248         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14249         (_dbus_marshal_validate_arg):
14250         Add NIL types.
14251
14252         * dbus/dbus-message.c: (dbus_message_set_sender):
14253         Remove todo about being able to set sender to NULL.
14254
14255         (dbus_message_set_is_error_reply),
14256         (dbus_message_get_is_error_reply):
14257         * dbus/dbus-message.h:
14258         New functions.
14259
14260         * dbus/dbus-protocol.h:
14261         Add error reply flag.
14262
14263         * test/data/valid-messages/opposite-endian.message:
14264         Add NIL type to test.
14265
14266 2003-01-31  Havoc Pennington  <hp@pobox.com>
14267
14268         * doc/dbus-specification.sgml: fully specify the header.  Add
14269         flags and major protocol version, and change header/body len to
14270         unsigned.
14271
14272         * dbus/dbus-message-builder.c (append_saved_length): append length
14273         as uint32
14274
14275         * dbus/dbus-message.c (dbus_message_create_header): change header
14276         length and body length to unsigned. Add the new fields from the
14277         spec
14278         (_dbus_message_loader_return_buffer): unsigned header/body len
14279
14280 2003-01-30  Havoc Pennington  <hp@pobox.com>
14281
14282         * dbus/dbus-auth.c: rework to use only REJECTED, no
14283         MECHANISMS
14284
14285         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14286         use REJECTED, suggested by Mark McLoughlin
14287
14288 2003-01-30  Havoc Pennington  <hp@pobox.com>
14289
14290         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14291         a better way to report errors here. e.g.  "unix address lacks
14292         path" or something. also "no such file" when the path doesn't
14293         exist, etc.
14294
14295         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14296         leaking list nodes
14297         (dbus_parse_address): add @todo about documenting address format,
14298         and allowing , and ; to be escaped
14299
14300 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14301
14302         * dbus/Makefile.am:
14303         Add dbus-address.[ch]
14304
14305         * dbus/dbus-address.c: (dbus_address_entry_free),
14306         (dbus_address_entries_free), (create_entry),
14307         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14308         (dbus_parse_address), (_dbus_address_test):
14309         * dbus/dbus-address.h:
14310         New files for dealing with address parsing.
14311
14312         * dbus/dbus-connection.c:
14313         Document timeout functions.
14314
14315         * dbus/dbus-message.c:
14316         Document dbus_message_new_from_message.
14317
14318         * dbus/dbus-server-debug.c:
14319         Document.
14320
14321         * dbus/dbus-server.c: (dbus_server_listen):
14322         Parse address and use correct server implementation.
14323
14324         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14325         * dbus/dbus-string.h:
14326         New function with test.
14327
14328         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14329         * dbus/dbus-test.h:
14330         Add address tests.
14331
14332         * dbus/dbus-transport-debug.c:
14333         Document.
14334
14335         * dbus/dbus-transport.c: (_dbus_transport_open):
14336         Parse address and use correct transport implementation.
14337
14338 2003-01-30  Havoc Pennington  <hp@pobox.com>
14339
14340         * dbus/dbus-message.c: use message->byte_order instead of
14341         DBUS_COMPILER_BYTE_ORDER throughout.
14342         (dbus_message_create_header): pad header to align the
14343         start of the body of the message to 8-byte boundary
14344
14345         * dbus/dbus-marshal.h: make all the demarshalers take const
14346         DBusString arguments.
14347
14348         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14349         validate message args here, so we don't have to do slow validation
14350         later, and so we catch bad messages as they are incoming. Also add
14351         better checks on header_len and body_len. Also fill in
14352         message->byte_order
14353
14354         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14355         implemented properly)
14356         (_dbus_string_validate_nul): new function to check all-nul
14357
14358         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14359         get_arg_end_pos and remove all validation
14360         (_dbus_marshal_validate_arg): actually do validation here.
14361
14362 2003-01-29  Havoc Pennington  <hp@pobox.com>
14363
14364         * dbus/dbus-message.c (check_message_handling): fix assertion
14365         failure on set_client_serial
14366
14367 2003-01-28  Havoc Pennington  <hp@pobox.com>
14368
14369         * dbus/dbus-server-debug.c: Add doc section comments
14370
14371         * dbus/dbus-transport-debug.c: add doc section comments
14372
14373 2003-01-28  Havoc Pennington  <hp@redhat.com>
14374
14375         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14376         the reverse order from how I had it
14377         (_dbus_string_base64_encode): reverse encoding order. I was
14378         basically byteswapping everything during encoding.
14379
14380 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14381
14382         * dbus/dbus-connection-internal.h:
14383         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14384         (_dbus_connection_remove_timeout):
14385         Add functions for adding and removing timeouts.
14386
14387         * dbus/dbus-message.c: (dbus_message_new_from_message):
14388         Add new function that takes a message and creates an exact
14389         copy of it, but with the refcount set to 1.
14390         (check_message_handling):
14391         Fix build error.
14392
14393         * dbus/dbus-server-protected.h:
14394         * dbus/dbus-server.c: (_dbus_server_init_base),
14395         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14396         (dbus_server_set_timeout_functions):
14397         (_dbus_server_remove_timeout):
14398         New functions so that a server can add and remove timeouts.
14399
14400         (dbus_server_listen):
14401         Add commented out call to dbus_server_debug_new.
14402
14403         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14404         Actually set the handler, doh.
14405
14406         * dbus/dbus-transport.c: (_dbus_transport_open):
14407         Add commented out call to dbus_transport_debug_client_new.
14408
14409         * dbus/Makefile.am:
14410         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14411
14412 2003-01-28  Havoc Pennington  <hp@pobox.com>
14413
14414         * dbus/dbus-message.c (check_message_handling): function to check
14415         on the loaded message, iterates over it etc.
14416
14417 2003-01-28  Havoc Pennington  <hp@pobox.com>
14418
14419         * test/Makefile.am (dist-hook): fix make distdir
14420
14421         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14422
14423 2003-01-27  Havoc Pennington  <hp@pobox.com>
14424
14425         * dbus/dbus-mempool.c (time_for_size): replace printf with
14426         _dbus_verbose
14427
14428         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14429         empty lines; fix the SAVE_LENGTH stuff to be
14430         START_LENGTH/END_LENGTH so it actually works; couple other
14431         bugfixes
14432
14433         * test/Makefile.am (dist-hook): add dist-hook for .message files
14434
14435         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14436         can be constant or locked.
14437         (_dbus_string_free): allow freeing a const string as
14438         documented/intended
14439
14440         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14441
14442         * dbus/dbus-test-main.c (main): take an argument which is the
14443         directory containing test data
14444
14445         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14446         argument to this and load all the messages in test/data/
14447         checking that they can be loaded or not loaded as appropriate.
14448
14449 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14450
14451         * bus/dispatch.c: (bus_dispatch_message_handler):
14452         Dispatch messages sent to services.
14453
14454         * bus/driver.c: (bus_driver_send_service_deleted),
14455         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14456         (bus_driver_send_service_acquired):
14457         Add helper functions for sending service related messages.
14458
14459         (bus_driver_send_welcome_message):
14460         Send HELLO_REPLY instead of WELCOME.
14461
14462         (bus_driver_handle_list_services):
14463         Send LIST_SERVICES_REPLY instead of SERVICES.
14464
14465         (bus_driver_handle_own_service),
14466         (bus_driver_handle_service_exists):
14467         New message handlers.
14468
14469         (bus_driver_handle_message):
14470         Invoke new message handlers.
14471
14472         (bus_driver_remove_connection):
14473         Don't remove any services here since that's done automatically
14474         by bus_service_remove_owner now.
14475
14476         * bus/driver.h:
14477         New function signatures.
14478
14479         * bus/services.c: (bus_service_add_owner):
14480         Send ServiceAcquired message if we're the only primary owner.
14481
14482         (bus_service_remove_owner):
14483         Send ServiceAcquired/ServiceLost messages.
14484
14485         (bus_service_set_prohibit_replacement),
14486         (bus_service_get_prohibit_replacement):
14487         Functions for setting prohibit replacement.
14488
14489         (bus_service_has_owner):
14490         New function that checks if a connection is in the owner queue of
14491         a certain service.
14492
14493         * bus/services.h:
14494         Add new function signatures.
14495
14496         * dbus/dbus-list.c: (_dbus_list_test):
14497         Add tests for _dbus_list_remove_last and traversing the list backwards.
14498
14499         * dbus/dbus-list.h:
14500         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14501         go any further, so return NULL then.
14502
14503         * dbus/dbus-protocol.h:
14504         Add new messages, service flags and service replies.
14505
14506 2003-01-26  Havoc Pennington  <hp@pobox.com>
14507
14508         * dbus/dbus-message-builder.c: implement, completely untested.
14509
14510         * test/data/*: add data to be used in testing.
14511         ".message" files are our simple loadable text format.
14512         ".message-raw" will be binary dumps of messages.
14513
14514         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14515
14516 2003-01-26  Havoc Pennington  <hp@pobox.com>
14517
14518         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14519
14520         * dbus/dbus-errors.c (dbus_result_to_string): add
14521         file errors
14522
14523         * dbus/dbus-message-builder.c: new file, will contain code to load
14524         up messages from files. Not implemented yet.
14525
14526 2003-01-26  Havoc Pennington  <hp@pobox.com>
14527
14528         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14529         the sender by setting to NULL
14530
14531 2003-01-26  Havoc Pennington  <hp@pobox.com>
14532
14533         The unit tests pass, but otherwise untested.  If it breaks, the
14534         tests should have been better. ;-)
14535
14536         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14537         the connection.
14538
14539         * dbus/dbus-message.c: redo everything so we maintain
14540         message->header as the only copy of the various fields.
14541         This avoids the possibility of out-of-memory in some cases,
14542         for example dbus_message_lock() can't run out of memory anymore,
14543         and avoids extra copying. Figured I may as well go ahead and do
14544         this since it was busted for dbus_message_lock to not return
14545         failure on OOM, and dbus_message_write_header was totally
14546         unchecked for OOM. Also fixed some random other bugs.
14547
14548         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14549         that strings are nul-terminated. Also, end_pos can be equal
14550         to string length just not greater than, I think.
14551         (_dbus_marshal_set_int32): new function
14552         (_dbus_marshal_set_uint32): new function
14553         (_dbus_marshal_set_string): new function
14554
14555         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14556         a warning, init timeout_list to NULL
14557         (dbus_connection_send_message): don't use uninitialized variable
14558         "serial"
14559
14560         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14561
14562 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14563
14564         * bus/driver.c: (bus_driver_handle_hello),
14565         (bus_driver_send_welcome_message):
14566         Plug leaks
14567
14568 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14569
14570         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14571         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14572         (dbus_connection_unref):
14573         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14574         * dbus/dbus-message.c: (dbus_message_unref),
14575         Plug memory leaks.
14576
14577         (dbus_message_get_fields):
14578         Remove debugging printout.
14579
14580         (_dbus_message_loader_return_buffer):
14581         Don't store the header string.
14582
14583         (_dbus_message_test):
14584         Plug leaks.
14585
14586 2003-01-26  Richard Hult  <rhult@codefactory.se>
14587
14588         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14589         the file descriptor list, since it can change under us.
14590
14591 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14592
14593         * glib/dbus-gmain.c: (dbus_connection_prepare),
14594         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14595         (remove_watch), (dbus_connection_hookup_with_g_main):
14596         Rewrite the glib handling to use its own GSource instead of a
14597         GIOChannel so we can catch messages put in the queue while waiting
14598         for a reply.
14599
14600 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14601
14602         * bus/Makefile.am:
14603         * bus/connection.c: (connection_disconnect_handler),
14604         (connection_watch_callback), (bus_connection_setup):
14605         * bus/dispatch.c: (send_one_message),
14606         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14607         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14608         * bus/dispatch.h:
14609         * bus/driver.c: (bus_driver_send_service_deleted),
14610         (bus_driver_send_service_created), (bus_driver_handle_hello),
14611         (bus_driver_send_welcome_message),
14612         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14613         (bus_driver_handle_message):
14614         * bus/driver.h:
14615         Refactor code, put the message dispatching in its own file. Use
14616         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14617         is disconnected.
14618
14619 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14620
14621         * dbus/dbus-internals.h:
14622         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14623
14624         * dbus/dbus-message.c: (dbus_message_get_sender):
14625         * dbus/dbus-message.h:
14626         Implement dbus_message_get_sender.
14627
14628         * dbus/dbus-protocol.h:
14629         Add message and service defines.
14630
14631 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14632
14633         * dbus/dbus-connection.c: (dbus_connection_send_message):
14634         * dbus/dbus-message-internal.h:
14635         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14636         (dbus_message_write_header):
14637         Remove _dbus_messag_unlock and don't set the client serial on a
14638         message if one already exists.
14639
14640 2003-01-24  Havoc Pennington  <hp@pobox.com>
14641
14642         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14643         list_pool
14644
14645         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14646         on OOM
14647
14648 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14649
14650         * dbus/dbus-list.c: (alloc_link), (free_link):
14651         Use a memory pool for the links.
14652
14653 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14654
14655         * bus/connection.c: (bus_connection_foreach):
14656         * bus/connection.h:
14657         Add new bus_connection_foreach function.
14658
14659         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14660         Add function that broadcasts a message to all clients.
14661
14662         (bus_driver_send_service_created), (bus_driver_handle_hello),
14663         (bus_driver_send_welcome_message),
14664         (bus_driver_handle_list_services), (bus_driver_message_handler):
14665         Implement functions that take care of listing services, and notifying
14666         clients when new services are created.
14667
14668         * bus/services.c: (bus_services_list):
14669         * bus/services.h:
14670         Add new function that returns an array of strings with the currently
14671         registered services.
14672
14673         * glib/dbus-glib.h:
14674         * glib/dbus-gmain.c:
14675         Update copyright year.
14676
14677 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14678
14679         * dbus/dbus-connection.c: (dbus_connection_send_message):
14680         Unlock the message in case it was sent earlier.
14681
14682         (dbus_connection_send_message_with_reply_and_block):
14683         Remove the reply message from the list.
14684
14685         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14686         Set array_len and new_pos correctly.
14687
14688         (_dbus_marshal_test):
14689         Remove debug output.
14690
14691         * dbus/dbus-message-internal.h:
14692         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14693         New function that returns the reply serial.
14694
14695         (_dbus_message_unlock):
14696         New function that unlocks a message and resets its header.
14697
14698         (dbus_message_append_string_array),
14699         (dbus_message_get_fields_valist),
14700         (dbus_message_iter_get_field_type),
14701         (dbus_message_iter_get_string_array),
14702         (dbus_message_get_fields),
14703         (dbus_message_append_fields_valist):
14704         Handle string arrays.
14705
14706         (dbus_message_set_sender):
14707         Make this function public since the bus daemon needs it.
14708
14709         (decode_header_data):
14710         Set the reply serial to -1 initially.
14711
14712         * dbus/dbus-message.h:
14713         Add dbus_message_set_sender.
14714
14715 2003-01-24  Havoc Pennington  <hp@pobox.com>
14716
14717         * doc/dbus-specification.sgml: add some stuff
14718
14719 2003-01-22  Havoc Pennington  <hp@pobox.com>
14720
14721         * doc/dbus-specification.sgml: Start to document the protocol.
14722
14723 2003-01-22  Havoc Pennington  <hp@pobox.com>
14724
14725         * dbus/dbus-connection.c
14726         (dbus_connection_send_message_with_reply_and_block): add some @todo
14727
14728         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14729
14730 2003-01-21  Havoc Pennington  <hp@pobox.com>
14731
14732         (patch untested because can't compile)
14733
14734         * bus/driver.c (create_unique_client_name): make this function
14735         never recycle client names. Also, caller should initialize
14736         the DBusString.
14737
14738         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14739
14740 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14741
14742         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14743         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14744         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14745         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14746         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14747         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14748         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14749         * dbus/dbus-marshal.h:
14750         * dbus/dbus-protocol.h:
14751         Add support for marshalling and demarshalling integer, double
14752         and string arrays.
14753
14754 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14755
14756         * bus/Makefile.am:
14757         Add driver.[ch]
14758
14759         * bus/connection.c: (connection_disconnect_handler):
14760         Remove the connection from the bus driver's list.
14761
14762         (connection_watch_callback): Dispatch messages.
14763
14764         (free_connection_data): Free connection name.
14765
14766         (bus_connection_setup): Add connection to the bus driver's list.
14767         (bus_connection_remove_owned_service):
14768         (bus_connection_set_name), (bus_connection_get_name):
14769         Add functions for setting and getting the connection's name.
14770
14771         * bus/connection.h:
14772         Add function headers.
14773
14774         * bus/driver.c: (create_unique_client_name),
14775         (bus_driver_handle_hello_message),
14776         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14777         (bus_driver_add_connection), (bus_driver_remove_connection):
14778         * bus/driver.h:
14779         * bus/main.c:
14780         * bus/services.c: (bus_service_free):
14781         * bus/services.h:
14782         New file that handles communication and registreation with the bus
14783         itself.
14784
14785 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14786
14787         * dbus/dbus-connection.c: (dbus_connection_send_message):
14788         Add a new client_serial parameter.
14789
14790         (dbus_connection_send_message_with_reply):
14791         Remove a @todo since we've implemented the blocking function.
14792
14793         (dbus_connection_send_message_with_reply_and_block):
14794         New function that sends a message and waits for a reply and
14795         then returns the reply.
14796
14797         * dbus/dbus-connection.h:
14798         Add new functions.
14799
14800         * dbus/dbus-errors.c: (dbus_result_to_string):
14801         * dbus/dbus-errors.h:
14802         Add new DBUS_RESULT.
14803
14804         * dbus/dbus-message-internal.h:
14805         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14806         (_dbus_message_set_sender), (dbus_message_write_header),
14807         (dbus_message_new_reply), (decode_header_data),
14808         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14809         * dbus/dbus-message.h:
14810         Add new functions that set the reply serial and sender.
14811         Also marshal and demarshal them correctly and add test.
14812
14813         * dbus/dbus-protocol.h:
14814         Add new DBUS_MESSAGE_TYPE_SENDER.
14815
14816         * glib/dbus-glib.h:
14817         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14818         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14819         (dbus_connection_hookup_with_g_main):
14820         * glib/test-dbus-glib.c: (main):
14821         Rewrite to use GIOChannel and remove the GSource crack.
14822
14823         * test/echo-client.c: (main):
14824         * test/watch.c: (check_messages):
14825         Update for changed APIs
14826
14827 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14828
14829         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14830
14831         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14832         Create a DBusTimeoutList.
14833         (dbus_connection_set_timeout_functions): Add new function to
14834         set timeout callbacks
14835
14836         * dbus/dbus-connection.h: Add public DBusTimeout API.
14837
14838         * dbus/dbus-message.c: (dbus_message_get_service):
14839         * dbus/dbus-message.h:  New function.
14840
14841         * dbus/dbus-server.c: Fix small doc typo.
14842
14843         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14844
14845 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14846
14847         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14848         of the string, just as long as specified.
14849
14850 2003-01-19  Havoc Pennington  <hp@pobox.com>
14851
14852         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14853         new function
14854
14855         * dbus/dbus-server.c (dbus_server_set_max_connections)
14856         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14857         keep track of current number of connections, and add API for
14858         setting a max (but haven't implemented enforcing the max yet)
14859
14860 2003-01-18  Havoc Pennington  <hp@pobox.com>
14861
14862         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14863         reading/writing if read_watch != NULL or write_watch != NULL.
14864
14865         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14866         the message loader code to actually load message->header and
14867         message->body into the newly-created message.
14868
14869         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14870         in OOM case
14871
14872         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14873         (dbus_connection_get_max_message_size)
14874         (dbus_connection_set_max_live_messages_size)
14875         (dbus_connection_get_max_live_messages_size): implement some
14876         resource limitation functions
14877
14878         * dbus/dbus-resources.c: new file implementing some of the
14879         resource limits stuff
14880
14881         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14882         missing docs, add @todo to handle OOM etc.
14883
14884         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14885         docs
14886
14887 2003-01-18  Havoc Pennington  <hp@pobox.com>
14888
14889         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14890         connection if it hasn't been already.
14891
14892         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14893         replace with DisconnectFunction.
14894
14895 2003-01-18  Havoc Pennington  <hp@pobox.com>
14896
14897         Building --disable-verbose-mode --disable-asserts --disable-tests
14898         cuts the library from 112K to 45K or so
14899
14900         * configure.in: check for varargs macro support,
14901         add --enable-verbose-mode, --enable-asserts.
14902
14903         * dbus/dbus-internals.h (_dbus_assert): support
14904         DBUS_DISABLE_ASSERT
14905         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14906
14907 2003-01-18  Havoc Pennington  <hp@pobox.com>
14908
14909         * dbus/dbus-test.c: include config.h so that tests actually run
14910
14911         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14912         so the failure mode when that assumption fails will be plenty
14913         obvious.
14914
14915 2003-01-18  Havoc Pennington  <hp@pobox.com>
14916
14917         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14918
14919         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14920         the distribution
14921
14922         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14923         since we don't want to use those in make check
14924
14925 2003-01-15  Havoc Pennington  <hp@redhat.com>
14926
14927         Release 0.2
14928
14929         * NEWS: update
14930
14931 2003-01-15  Havoc Pennington  <hp@redhat.com>
14932
14933         * test/Makefile.am: fix so that test source code ends up in the
14934         distribution on make distcheck
14935
14936 2003-01-15  Havoc Pennington  <hp@redhat.com>
14937
14938         Release 0.1.
14939
14940         * NEWS: update
14941
14942 2003-01-15  Havoc Pennington  <hp@redhat.com>
14943
14944         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14945         fix build when --disable-tests
14946
14947         * Makefile.am (EXTRA_DIST): put HACKING in here
14948
14949         * HACKING: document procedure for making a tarball release.
14950
14951 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14952
14953         * bus/connection.c: (connection_error_handler),
14954         (bus_connection_setup):
14955         * bus/main.c: (main):
14956         Make sure that the DBusConnectionData struct is NULLed
14957         out to prevent a segfault.
14958
14959         * dbus/dbus-errors.c: (dbus_result_to_string):
14960         * dbus/dbus-errors.h:
14961         * dbus/dbus-message.c: (dbus_message_get_fields),
14962         (dbus_message_get_fields_valist), (_dbus_message_test):
14963         * dbus/dbus-message.h:
14964         Make dbus_message_get_fields return a result code so we can
14965         track invalid fields as well as oom.
14966
14967 2003-01-11  Havoc Pennington  <hp@pobox.com>
14968
14969         * configure.in: change --enable-test/--enable-ansi action-if-given
14970         to enable_foo=$enableval instead of enable_foo=yes
14971
14972 2003-01-08  Havoc Pennington  <hp@pobox.com>
14973
14974         * dbus/dbus-string.c (_dbus_string_align_length): new function
14975
14976         * dbus/dbus-test-main.c: move main() for test app here
14977         * dbus/dbus-test.c
14978         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14979         symbol to run tests, because dbus-test isn't in the main
14980         library
14981
14982         Code review nitpicks.
14983
14984         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14985         for people with narrow emacs ;-). Assert client_serial was filled
14986         in. Assert message->name != NULL.
14987         (dbus_message_append_fields): have "first_field_type" arg separate
14988         from va list, needed for C++ binding that also uses varargs IIRC
14989         and helps with type safety
14990         (dbus_message_new): add @todo about using DBusString to store
14991         service/name internally
14992         (dbus_message_new): don't leak ->service and ->name on OOM later
14993         in the function
14994         (dbus_message_unref): free the service name
14995         (dbus_message_get_fields): same change to varargs
14996         i.e. first_field_type
14997         (_dbus_message_loader_return_buffer): assert that the message data
14998         is aligned (if not it's a bug in our code). Put in verbose griping
14999         about why we set corrupted = TRUE.
15000         (decode_header_data): add FIXME that char* is evil.  Was going to
15001         add FIXME about evil locale-specific string.h strncmp, but just
15002         switched to wacky string-as-uint32 optimization. Move check for
15003         "no room for field name" above get_const_data_len() to avoid
15004         assertion failure in get_const_data_len if we have trailing 2
15005         bytes or the like. Check for service and name fields being
15006         provided twice. Don't leak service/name on error. Require field
15007         names to be aligned to 4 bytes.
15008
15009         * dbus/dbus-marshal.c: move byte swap stuff to header
15010         (_dbus_pack_int32): uscore-prefix
15011         (_dbus_unpack_int32): uscore-prefix
15012         (_dbus_unpack_uint32): export
15013         (_dbus_demarshal_string): add @todo complaining about use of
15014         memcpy()
15015         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15016         handling allowing corrupt data to go unchecked
15017
15018 2003-01-08  Havoc Pennington  <hp@redhat.com>
15019
15020         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15021         to the select() as needed for authentication. (should be using
15022         _dbus_poll() not select, but for another day)
15023
15024         * dbus/dbus.h: include dbus/dbus-protocol.h
15025
15026 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15027
15028         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15029         dbus-connection.h
15030
15031 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15032
15033         * dbus/dbus-internals.c: (_dbus_type_to_string):
15034         New function that returns a string describing a type.
15035
15036         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15037         * dbus/dbus-marshal.h:
15038         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15039         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15040         (dbus_message_iter_get_byte_array):
15041         * dbus/dbus-message.h:
15042         Add new convenience functions for appending and getting message fields.
15043         Also add demarshalling routines for byte arrays.
15044
15045 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15046
15047         * dbus/dbus-connection-internal.h:
15048         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15049         (_dbus_connection_get_next_client_serial),
15050         (dbus_connection_send_message):
15051         * dbus/dbus-internals.h:
15052         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15053         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15054         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15055         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15056         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15057         (_dbus_verbose_bytes), (_dbus_marshal_test):
15058         * dbus/dbus-marshal.h:
15059         * dbus/dbus-message-internal.h:
15060         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15061         (dbus_message_write_header), (_dbus_message_lock),
15062         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15063         (dbus_message_get_name), (dbus_message_append_int32),
15064         (dbus_message_append_uint32), (dbus_message_append_double),
15065         (dbus_message_append_string), (dbus_message_append_byte_array),
15066         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15067         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15068         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15069         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15070         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15071         (decode_header_data), (_dbus_message_loader_return_buffer),
15072         (message_iter_test), (_dbus_message_test):
15073         * dbus/dbus-message.h:
15074         * dbus/dbus-protocol.h:
15075         * dbus/dbus-test.c: (main):
15076         * dbus/dbus-test.h:
15077         * glib/test-dbus-glib.c: (message_handler), (main):
15078         * test/echo-client.c: (main):
15079         * test/watch.c: (check_messages):
15080         Make messages sendable and receivable for real.
15081
15082 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15083
15084         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15085         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15086         * dbus/dbus-message.c: (dbus_message_append_int32),
15087         (dbus_message_append_uint32), (dbus_message_append_double),
15088         (dbus_message_append_string), (dbus_message_append_byte_array):
15089         Handle OOM restoration.
15090
15091 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15092
15093         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15094         (_dbus_demarshal_string), (_dbus_marshal_test):
15095         * dbus/dbus-marshal.h:
15096         * dbus/dbus-message.c: (dbus_message_get_name),
15097         Document these functions.
15098
15099         (dbus_message_append_int32), (dbus_message_append_uint32),
15100         (dbus_message_append_double), (dbus_message_append_string),
15101         (dbus_message_append_byte_array):
15102         * dbus/dbus-message.h:
15103         Add functions for adding message fields of different types.
15104
15105         * dbus/dbus-protocol.h:
15106         Add the different types.
15107
15108 2003-01-05  Havoc Pennington  <hp@pobox.com>
15109
15110         * bus/connection.c: implement routines for handling connections,
15111         first thing is keeping a list of owned services on each connection
15112         and setting up watches etc.
15113
15114         * bus/services.c: implement a mapping from service names to lists
15115         of connections
15116
15117         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15118
15119         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15120         to use static mutexes for global data
15121
15122         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15123         collection of functions to set/get application-specific data
15124         on the DBusConnection.
15125
15126 2003-01-04  Havoc Pennington  <hp@pobox.com>
15127
15128         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15129         (_dbus_poll): new function
15130
15131         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15132         copied from GLib
15133
15134         * bus/loop.c: initial code for the daemon main loop
15135
15136 2003-01-04  Havoc Pennington  <hp@pobox.com>
15137
15138         * test/watch.c (error_handler): make it safe if the error handler
15139         is called multiple times (if we s/error handler/disconnect
15140         handler/ we should just guarantee it's called only once)
15141
15142         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15143         error handler on disconnect (it's quite possible we should
15144         just change the error handler to a "disconnect handler," I'm
15145         not sure we have any other meaningful errors)
15146
15147         * configure.in: check for getpwnam_r
15148
15149         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15150         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15151         mechanism as in SASL spec, using socket credentials
15152
15153         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15154         (_dbus_send_credentials_unix_socket): new function
15155
15156         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15157         dbus_accept()
15158         (_dbus_write): only check errno if <0 returned
15159         (_dbus_write_two): ditto
15160
15161 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15162
15163         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15164         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15165         (_dbus_marshal_test):
15166         * dbus/dbus-marshal.h:
15167         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15168         to _dbus_marshal_utf8_string. Also fix some tests.
15169
15170 2002-12-28  Harri Porten  <porten@kde.org>
15171
15172         * configure.in: added check for C++ compiler and a very cheesy
15173         check for the Qt integration
15174
15175         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15176
15177         * qt/Makefile.am: added
15178
15179         * qt/.cvsignore: added
15180
15181         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15182         latter, added #ifdef QT_THREAD_SUPPORT guard.
15183
15184         * dbus/Makefile.am: added missing headers for make dist
15185
15186 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15187
15188         * dbus/Makefile.am: fixup export-symbols-regex.
15189
15190 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15191
15192         * acinclude.m4: Add this file and put the
15193         PKG_CHECK_MODULE macro in it.
15194
15195 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15196
15197         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15198         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15199         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15200         (_dbus_marshal_test):
15201         Make the demarshalling routines align the pos argument.
15202         Add string marshalling tests and fix the obvious bugs
15203         discovered.
15204
15205 2002-12-26  Havoc Pennington  <hp@pobox.com>
15206
15207         * dbus/dbus-auth.c: fixes fixes fixes
15208
15209         * dbus/dbus-transport-unix.c: wire up support for
15210         encoding/decoding data on the wire
15211
15212         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15213         (_dbus_auth_decode_data): append to target string
15214         instead of nuking it.
15215
15216 2002-12-26  Havoc Pennington  <hp@pobox.com>
15217
15218         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15219         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15220         doh
15221
15222         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15223         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15224         now). Main point is because I wanted unpack_uint32 to implement
15225         _dbus_verbose_bytes
15226         (_dbus_verbose_bytes): new function
15227
15228         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15229
15230         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15231         mechanism to handle a corrupt message stream
15232         (_dbus_message_loader_new): fix preallocation to only prealloc,
15233         not prelengthen
15234
15235         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15236         (_dbus_string_test): enhance tests for copy/move and fix the
15237         functions
15238
15239         * dbus/dbus-transport-unix.c: Hold references in more places to
15240         avoid reentrancy problems
15241
15242         * dbus/dbus-transport.c: ditto
15243
15244         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15245         leak reference count in no-message case
15246
15247         * test/watch.c (do_mainloop): handle adding/removing watches
15248         during iteration over the watches. Also, ref the connection/server
15249         stored on a watch, so we don't try to mangle a destroyed one.
15250
15251         * dbus/dbus-transport-unix.c (do_authentication): perform
15252         authentication
15253
15254         * dbus/dbus-auth.c (get_state): add a state
15255         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15256         (_dbus_auth_get_unused_bytes): append the unused bytes
15257         to the passed in string, rather than prepend
15258
15259         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15260         the auth conversation DBusAuth
15261
15262         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15263         (_dbus_transport_new_for_domain_socket): when creating a
15264         transport, pass in whether it's a client-side or server-side
15265         transport so we know which DBusAuth to create
15266
15267 2002-12-03  Havoc Pennington  <hp@pobox.com>
15268
15269         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15270         _after_ finalizing the derived members
15271         (unix_connection_set): unref watch if we fail to add it
15272
15273         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15274         transport first, so that the connection owned by the
15275         transport will be valid as the transport finalizes.
15276
15277         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15278         if necessary, and remove watches from the connection.
15279
15280         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15281
15282 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15283
15284         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15285         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15286         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15287         (_dbus_marshal_test):
15288         * dbus/dbus-marshal.h:
15289         Add string marshal functions and have the demarshal functions
15290         return the new position.
15291
15292 2002-12-25  Havoc Pennington  <hp@pobox.com>
15293
15294         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15295         it is a simple protocol that just maps directly to SASL.
15296
15297         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15298         initial implementation, not actually used yet.
15299
15300         * dbus/dbus-string.c (_dbus_string_find): new function
15301         (_dbus_string_equal): new function
15302         (_dbus_string_base64_encode): new function
15303         (_dbus_string_base64_decode): new function
15304
15305 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15306
15307         * dbus/Makefile.am:
15308         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15309         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15310         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15311         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15312         * dbus/dbus-marshal.h:
15313         * dbus/dbus-protocol.h:
15314         * dbus/dbus-test.c: (main):
15315         * dbus/dbus-test.h:
15316         Add un-optimized marshalling/demarshalling routines.
15317
15318 2002-12-25  Harri Porten  <porten@kde.org>
15319
15320         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15321
15322 2002-12-24  Zack Rusin  <zack@kde.org>
15323
15324         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15325         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15326         main loop stuff
15327
15328 2002-12-24  Havoc Pennington  <hp@pobox.com>
15329
15330         * glib/dbus-gthread.c: fix include
15331
15332         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15333         I think glib API needs to change, though, as you don't
15334         want to use DBusMessageFunction, you want to use the
15335         DBusMessageHandler object. Probably
15336         dbus_connection_open_with_g_main_loop()
15337         and dbus_connection_setup_g_main_loop() or something like that
15338         (but think of better names...) that just create a connection
15339         that has watch/timeout functions etc. already set up.
15340
15341         * dbus/dbus-connection.c
15342         (dbus_connection_send_message_with_reply): new function just to
15343         show how the message handler helps us deal with replies.
15344
15345         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15346
15347         * dbus/dbus-string.c (_dbus_string_test): free a string that
15348         wasn't
15349
15350         * dbus/dbus-hash.c: use memory pools for the hash entries
15351         (rebuild_table): be more paranoid about overflow, and
15352         shrink table when we can
15353         (_dbus_hash_test): reduce number of sprintfs and write
15354         valid C89. Add tests for case where we grow and then
15355         shrink the hash table.
15356
15357         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15358
15359         * dbus/dbus-connection.c (dbus_connection_register_handler)
15360         (dbus_connection_unregister_handler): new functions
15361
15362         * dbus/dbus-message.c (dbus_message_get_name): new
15363
15364         * dbus/dbus-list.c: fix docs typo
15365
15366         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15367         an object representing a handler for messages.
15368
15369 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15370
15371         * glib/dbus-glib.h:
15372         * glib/dbus-gthread.c: (dbus_gthread_init):
15373         Don't use the gdbus prefix for public functions.
15374
15375 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15376
15377         * Makefile.am:
15378         * configure.in:
15379         Add GLib checks and fixup .pc files
15380
15381         * glib/Makefile.am:
15382         * glib/dbus-glib.h:
15383         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15384         (gdbus_connection_check), (gdbus_connection_dispatch),
15385         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15386         (dbus_connection_gsource_new):
15387         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15388         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15389         * glib/test-dbus-glib.c: (message_handler), (main):
15390         Add GLib support.
15391
15392 2002-12-15  Harri Porten  <porten@kde.org>
15393
15394         * autogen.sh: check for libtoolize before attempting to use it
15395
15396         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15397         struct.
15398
15399         * .cvsignore: ignore more stamp files
15400
15401         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15402
15403         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15404         without make install.
15405
15406 2002-12-15  Havoc Pennington  <hp@pobox.com>
15407
15408         * dbus/dbus-threads.c: add thread stubs that a higher library
15409         layer can fill in. e.g. the GLib wrapper might fill them in with
15410         GThread stuff. We still need to use this thread API to
15411         thread-safe-ize the library.
15412
15413 2002-12-12  Havoc Pennington  <hp@pobox.com>
15414
15415         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15416         below new interfaces and include fewer system headers.
15417
15418         * dbus/dbus-sysdeps.c (_dbus_read): new function
15419         (_dbus_write): new function
15420         (_dbus_write_two): new function
15421         (_dbus_connect_unix_socket): new function
15422         (_dbus_listen_unix_socket): new function
15423
15424         * dbus/dbus-message-internal.h: change interfaces to use
15425         DBusString
15426
15427 2002-12-11  Havoc Pennington  <hp@pobox.com>
15428
15429         * dbus/dbus-types.h: add dbus_unichar
15430
15431         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15432
15433         * dbus/dbus-connection.c (dbus_connection_send_message): return
15434         TRUE on success
15435
15436         * dbus/dbus-transport.c: include dbus-watch.h
15437
15438         * dbus/dbus-connection.c: include dbus-message-internal.h
15439
15440         * HACKING: add file with coding guidelines stuff.
15441
15442         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15443         handling here, for security purposes (as in vsftpd). Not actually
15444         using this class yet.
15445
15446         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15447         system/libc usage here, as in vsftpd, for ease of auditing (and
15448         should also simplify portability). Haven't actually moved all the
15449         system/libc usage into here yet.
15450
15451 2002-11-25  Havoc Pennington  <hp@pobox.com>
15452
15453         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15454         always print the first verbose message.
15455
15456 2002-11-24  Havoc Pennington  <hp@pobox.com>
15457
15458         * test/echo-client.c, test/echo-server.c: cheesy test
15459         clients.
15460
15461         * configure.in (AC_CHECK_FUNCS): check for writev
15462
15463         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15464         function
15465
15466         * dbus/dbus-list.c (_dbus_list_foreach): new function
15467
15468         * dbus/dbus-internals.c (_dbus_verbose): new function
15469
15470         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15471         representing a server that listens for connections.
15472
15473         * dbus/.cvsignore: create
15474
15475         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15476         public API for reporting errors
15477
15478         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15479         public object representing a connection that
15480         sends/receives messages. (Same object used for
15481         both client and server.)
15482
15483         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15484         Basic abstraction for different kinds of stream
15485         that we might read/write messages from.
15486
15487 2002-11-23  Havoc Pennington  <hp@pobox.com>
15488
15489         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15490         _DBUS_INT_MAX
15491
15492         * dbus/dbus-test.c (main): add list test, and include
15493         dbus-test.h as intended
15494
15495         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15496         (_dbus_hash_table_remove_int): return value indicates
15497         whether the entry existed to remove
15498
15499         * dbus/dbus-list.c: add linked list utility class,
15500         with docs and tests
15501
15502         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15503         array sometimes.
15504
15505 2002-11-23  Havoc Pennington  <hp@pobox.com>
15506
15507         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15508         DBUS_END_DECLS to nothing, that should fix this once and for all
15509
15510         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15511
15512         * dbus/dbus-message.c, dbus/dbus-hash.c:
15513         add some missing @brief
15514
15515 2002-11-23  Havoc Pennington  <hp@pobox.com>
15516
15517         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15518         to avoid confusing Doxygen
15519
15520         * dbus/dbus-hash.c: @} not }@
15521
15522         * dbus/dbus-message.c (struct DBusMessage): split out
15523         internals docs
15524
15525 2002-11-23  Havoc Pennington  <hp@pobox.com>
15526
15527         * configure.in: pile on more warning flags if using gcc
15528
15529         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15530         to document static functions
15531
15532         * configure.in: add summary to end of configure so it
15533         looks nice and attractive
15534
15535         * dbus/dbus-hash.c: finish implementation and write unit
15536         tests and docs
15537
15538         * configure.in: add --enable-tests to enable unit tests
15539
15540         * dbus/dbus-test.c: test program to run unit tests
15541         for all files in dbus/*, initially runs a test for
15542         dbus-hash.c
15543
15544         * dbus/dbus-internals.h: file to hold some internal utility stuff
15545
15546 2002-11-22  Havoc Pennington  <hp@redhat.com>
15547
15548         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15549         "ported" away from Tcl
15550
15551         * dbus/dbus-types.h: header for types such as dbus_bool_t
15552
15553 2002-11-22  Havoc Pennington  <hp@redhat.com>
15554
15555         * dbus/dbus.h: fixups for doc warnings
15556
15557         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15558         macros
15559         (QUIET): make it quiet so we can see warnings
15560
15561         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15562
15563 2002-11-22  Havoc Pennington  <hp@redhat.com>
15564
15565         * Makefile.am: include "Doxyfile" target in all-local
15566
15567         * configure.in: generate the Doxyfile
15568
15569         * Doxyfile.in: move Doxyfile here, so we can use
15570         configure to generate a Doxyfile with the right
15571         version number etc.
15572
15573 2002-11-22  Havoc Pennington  <hp@redhat.com>
15574
15575         * dbus/dbus-message.c: move inline docs into .c file
15576
15577         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15578         so all docs are under doc/
15579         (MAN_EXTENSION): generate man pages. Use extension
15580         ".3dbus" which matches ".3qt" on my system,
15581         I guess this is OK, I don't know really.
15582         (FILE_PATTERNS): look for .c files not .h, makes sense
15583         for plain C I think
15584
15585 2002-11-22  Havoc Pennington  <hp@pobox.com>
15586
15587         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15588         because any app can be a server, and any app can be a client,
15589         the bus is a special kind of server.
15590
15591 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15592
15593         * Doxyfile : adding. Still needs Makefile rules to be generated
15594         automatically (just run "doxygen" in the toplevel dir for now to
15595         generate docs)
15596
15597         * dbus/dbus-message.h : Adding sample docs (javadoc since
15598         resembles gtk-doc a little more)
15599
15600         * dbus/dbus.h : Adding sample docs
15601
15602 2002-11-21  Havoc Pennington  <hp@redhat.com>
15603
15604         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15605         so we can allow ourselves to include files directly,
15606         instead of having to use dbus.h
15607
15608         * dbus/dbus.h: fill in
15609
15610         * dbus/dbus-message.h: sketch out a sample header file.
15611         Include griping if you include it directly instead of
15612         via dbus.h
15613
15614         * dbus/dbus-macros.h: new file with macros for extern "C",
15615         TRUE/FALSE, NULL, etc.
15616
15617         * doc/file-boilerplate.c: put include guards in here
15618
15619 2002-11-21  Havoc Pennington  <hp@redhat.com>
15620
15621         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15622
15623         * COPYING: include the GPL as well, and license code
15624         under both AFL and GPL.
15625
15626 2002-11-21  Havoc Pennington  <hp@redhat.com>
15627
15628         * acconfig.h: get rid of this
15629
15630         * autogen.sh (run_configure): add --no-configure option
15631
15632         * configure.in: remove AC_ARG_PROGRAM to make
15633         autoconf complain less. add AC_PREREQ.
15634         add AC_DEFINE third arg.
15635
15636 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15637
15638         * doc/Makefile.am:
15639         Fix references so we can distcheck.
15640
15641 2002-11-21  Havoc Pennington  <hp@redhat.com>
15642
15643         * Initial module creation
15644