2007-04-27 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2007-04-27  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
4         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
5         the fd itself
6
7 2007-04-26 Ralf.Habacker  <ralf.habacker@freenet.de>
8
9         * cmake: added debug postfixes to debug exe's for 
10         easier debugging.
11         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
12         print error code in case no string message is available.
13
14 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
15
16         * dbus/dbus-message-util.c, dbus/dbus-message.c,
17         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
18         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
19         approved by Havoc Pennington.
20
21 2007-04-03  Timo Hoenig  <thoenig@suse.de>
22
23         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
24           length address.
25         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
26           length address.
27
28 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
29
30         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
31
32 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
33
34         * cmake/modules/FindExpat.cmake: fix package detection on win32.
35
36         * README.win: update install instructions. 
37
38 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
39
40         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
41         new prototyp
42         (_DBUS_PATH_SEPARATOR): new macro. 
43
44         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
45         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
46
47 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
48
49         * bus/config-parser.c, bus/policy.c,  
50         bus/policy.h, bus/dbus-daemon.1.in,
51         bus/session.conf.in: added eavesdrop support 
52         for replies - patch by olli.salli at collabora.co.uk
53         approved by Havoc Pennington. 
54
55 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
56
57         * dbus\dbus-sysdeps-win-thread.c: renamed to 
58         dbus-sysdeps-thread-win.c, it is a platform depending file 
59         similar to dbus-sysdeps-pthread.c.
60
61 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
62
63         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
64         support, needs cmake Find script.
65
66 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
67
68         * cmake: add doxygen support
69
70 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
71
72         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
73
74 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
75
76         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
77         win32 compile fix. 
78
79 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
80
81         * dbus-win.patch: removed obsolate patches. 
82
83 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
84
85         * dbus/dbus-sysdeps-win.c: added zero byte sending 
86         and receiving after connection start up
87
88 2007-03-11  Havoc Pennington  <hp@redhat.com>
89
90         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
91         formatting problem
92
93         * Mostly fix the DBusPipe mess.
94         - put line break after function return types
95         - put space before parens
96         - do not pass structs around by value
97         - don't use dbus_strerror after calling supposedly cross-platform
98         api
99         - don't name pipe variables "fd"
100         - abstract special fd numbers like -1 and 1
101
102 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
103
104         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
105         dbus/dbus-sysdeps-util-win.c: renamed functions 
106         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
107         struct name DBusFile. 
108
109 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
110
111         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
112         fix _dbus_pid_fd check. 
113
114 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
115
116         * tools/dbus-print-message.c (print_message):
117         added printing of the reply serial to method returns and 
118         errors, so you can actually figure out the message/reply 
119         pairs - patch by olli.salli at collabora.co.uk.
120
121 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
122
123         * dbus-win.patch: removed committed patches. 
124
125 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
126
127         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
128         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
129         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
130         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
131         completed _dbus_pipe support. 
132
133 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
134
135         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
136         changed type or port to pointer, because the port is given back.
137
138         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
139         implemented returning tcp port. Skipping port parameter
140         and non integer port values in config <listen> statement
141         needs more effort.
142
143         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
144         (_dbus_listen_tcp_socket): return the real used tcp port.
145
146         * bus/dbus-daemon.1.in: added <listen> tcp examples
147
148 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
149
150         * cmake/config.h.cmake: win32 msvc bug fix
151
152 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
153
154         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
155         using _WINCE does not work.
156
157 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
158
159         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
160         committed.
161
162 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
163
164         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
165         rename pipe related write() function calls to _dbus_write_pipe().
166
167 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
168
169         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
170         uses DBUS_WIN for alls win32 related #ifdefs, 
171         some minor cleanups
172
173 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
174
175         * dbus-win.patch: updated patch for bus/dispatch.c.
176
177 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
178
179         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
180         dbus_connection_get_unix_process_id): Let return them valid user id's, 
181         otherwise bus-test fails. How to replace on win32 ?.
182         
183         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
184         fix memory leak.
185
186 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
187
188         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
189         use dbus friendly error name.
190         (fill_win_user_info_homedir): print user name in error case too.
191
192 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
193
194         * cmake/ConfigureChecks.cmake: fixed socketpair check
195
196 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
197
198         * bus/dispatch.c: disabled segfault test on win32 for now
199
200 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
201
202         * configure.in, cmake/ConfigureChecks.cmake: added check 
203         for setrlimit. 
204         * test/test-segfault.c: only include setrlimit stuff only 
205         when available.  
206
207 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
208
209         * test/test-segfault.c: unix compile fix.
210         * dbus-win.patch: removed obsolate patches.
211
212 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
213
214         * bus/activation.c: removed obsolate include header.
215         * test/test-segfault.c: win32 compile fix, rlimit 
216         isn't available on win32.
217         * dbus-win.patch: removed some more patches, they
218         are applied or obsolate 
219
220 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
221
222         * bus-win.patch: fixes unix listen problems, dbus-test 
223         now runs.
224
225 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
228         cmake/CMakeLists.txt: win32 compile fix
229
230 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * dbus-win.patch, README.win: added available win32 
233         patches from windbus project (http://sf.net/projects/windbus)
234
235 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
236
237         * bus/activation.c: (bus_activation_activate_service):
238         fixed call to _dbus_spawn_async_with_babysitter().
239
240 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
241
242         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
243         added environment pointer as function parameter, used on win32.
244
245         * test/spawn-test.c: fixed call to above mentioned function.
246
247 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
248
249         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
250         added configure check for unistd.h.
251
252 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
253
254         * test/Makefile.am: fixed test data copy problem in 
255         out of source build, when sources came from svn or cvs. 
256
257 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
258
259         * dbus/*-win.*,bus/*-win.*: added win32 platform related
260         files. These files are only added to the cmake build system.  
261         The missing dbus-win.patch file will be added later. 
262
263 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
264
265         * cmake: new directory, contains cmake build support.
266         See http://www.cmake.org for more informations.
267         Currently only unix will be buildable because some 
268         win32 required files are still missing. 
269
270 2007-03-03  Thiago Macieira  <thiago@kde.org>
271
272         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
273         output and add it to the DBusError message we return.
274
275         * tools/dbus-launch.1:
276         * tools/dbus-launch.c: Add option --close-stderr to, well,
277         close stderr before starting dbus-daemon.
278
279 2007-01-31  Havoc Pennington  <hp@redhat.com>
280
281         * bus/dbus-daemon.1.in: write a section in the man page on running
282         a test daemon for debugging purposes
283
284 2007-01-26  Havoc Pennington  <hp@redhat.com>
285
286         * bus/session.conf.in: override all the default limits with much
287         higher limits on the session bus, there is no reason the session
288         bus should have low limits
289
290         * bus/config-parser.c (bus_config_parser_new): increase default
291         limits so they are less likely to be hit; in particular the max
292         replies per connection was way too low
293
294 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
295
296         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
297         a pointer to the tutorial maintained as part of dbus-python
298
299 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
300
301         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
302         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
303         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
304
305 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
306
307         * tools/dbus-monitor.c: gettimeofday() is not available 
308         on windows so we have to provide our own. It's taken from 
309         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
310
311 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
312
313         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
314         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
315         is in dbus-sysdeps-win.c (not in this patch).
316
317         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
318         with InterlockedInc/Decrement. 
319         - Patches from Christian Ehrlicher
320         
321 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
322
323         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
324
325 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
326
327         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
328         fix mispaced const statement. - Patch from Peter Kümmel
329
330 2006-12-19  Ray Strode  <rstrode@redhat.com>
331
332         * bus/bus.c (process_config_every_time):
333         don't overwrite existing bus context activation object
334         until after we've checked that the new activation is
335         valid.
336
337         * bus/main.c 
338         (signal_handler), (handle_reload_watch):
339         don't call exit() on failure, instead make do and keep
340         going.
341         (close_reload_pipe): new function to turn off
342         hangup-causes-config-reload behavior if an unexpected
343         error occurs
344
345 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
346
347         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
348         correctness fix. - Patch from Christian Ehrlicher
349
350 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
351
352         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
353         we should also use it. - Patch from Christian Ehrlicher
354
355 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
356   
357         * dbus-sysdeps-util.c: added win32 related tests
358
359 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
360
361         * dbus/dbus-string.c (_dbus_string_pop_line),
362         bus/desktop-file.c (parse_section_start,
363         parse_comment_or_blank,parse_key_value,): uses
364         _dbus_string_find_eol() to support platform independent eol style.
365
366 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
367
368         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
369         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
370               _dbus_string_find_eol().
371         Approved by: Havoc Pennington.
372
373 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
374
375         * configure.in: Added switch to disable user_database caching.
376
377         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
378         be able disable user_dabase caching.
379
380 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
381
382         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
383         struct. It is unnecessary we have a global one already. Also remove 
384         bus_context_get_user_database function, it is no longer needed.
385         Flush the global database on reload.
386
387         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
388         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
389
390         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
391         Add _dbus_user_database_flush_system. 
392         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
393         Small unrelated change in _dbus_is_a_number: change 
394         _dbus_string_parse_int to _dbus_string_parse_uint. 
395
396         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
397         _dbus_groups_from_uid.
398
399         * bus/policy.c, bus/policy.h: Change call to 
400         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
401         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
402         needs it.
403
404 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
405
406         * bus/signal.c: Fix match_rule_equal errata
407         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
408         <kimmo.hamalainen@nokia.com>)
409
410 2006-11-19  Thiago Macieira  <thiago@kde.org>
411
412         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
413         _dbus_pthread_condvar_wait,
414         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
415         pthread_self() after coming back from a conditional variable
416         wait as well as in one codepath where it was forgotten.
417         Approved by: Havoc Pennington.
418
419 2006-11-17  Havoc Pennington  <hp@redhat.com>
420
421         * update-dbus-docs.sh: allow setting fd.org username via env
422         variable. Make it run autogen with --enable-xml-docs=yes
423         --enable-doxygen-docs=yes so configure will fail if the required
424         tools are missing.
425
426 2006-11-17  Havoc Pennington  <hp@redhat.com>
427
428         * doc/dbus-faq.xml: minor FAQ tweaks
429
430 2006-11-14  Havoc Pennington  <hp@redhat.com>
431         
432         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
433         dbus_get_local_machine_id() to its own file, no substantive
434         changes. There are a couple other things we might want to add that
435         are "misc" so moving out of dbus-connection.[hc] which is big
436         enough already.
437         
438 2006-11-14  Havoc Pennington  <hp@redhat.com>
439
440         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
441         UUID had the timestamp last, but the implementation had it first;
442         move it to last since I think it's a tiny bit nicer (easier to
443         compare at a glance, faster to sort, less code), and will not
444         cause any practical compatibility problems. Also, always convert
445         the timestamp to big endian.
446
447         * doc/dbus-specification.xml: Clean up the docs on the UUID.
448
449         * tools/dbus-uuidgen.1: more prominently say it is not suitable
450         as a replacement for regular uuidgen/RFC4122.
451
452 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
453
454         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
455         the correct value so we don't assert when initalizing recursive threads
456
457         * test/name-test/test-thread-init.c: call dbus_threads_init_default
458         instead of _dbus_threads_init_debug since it is more of a real world
459         test
460
461 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
462
463         * Released 1.0.0
464
465 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
466
467         * AUTHORS: added Peter and Tor of windows porting fame
468
469 2006-11-08  Havoc Pennington  <hp@redhat.com>
470
471         * doc/dbus-specification.xml: add a note about protocol stability
472
473         * doc/TODO: Remove "important for 1.0" section, replace with
474         "important for 1.2" section
475         
476 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
477
478         * README: remove some of the out of date flags
479
480         * doc/TODO: Remove todo items which are done
481
482 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
483
484         * tools/dbus-monitor.c: Handle sigint so we flush stdout
485         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
486
487 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
488
489         * tools/dbus-monitor.1: update the manpage for dbus-monitor
490         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
491
492 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
493
494         * AUTHORS: Update with all people listed in the ChangeLog
495
496 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
497
498         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
499         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
500
501 2006-11-07  Havoc Pennington  <hp@redhat.com>
502
503         * HACKING: Update release instructions to include stuff about
504         stable releases, branching, etc. May not be totally correct,
505         please fix if needed, but keep instructions up-to-date so we do
506         each stable release consistently in the future.
507
508 2006-11-07  Havoc Pennington  <hp@redhat.com>
509
510         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
511         documentation updates. Bump faq/spec versions (not to 1.0; I don't
512         think the spec will be "finished"/1.0 when we ship the 1.0 library).
513
514 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
515
516         * bus/bus.c: Missed patch - pass in the context to the directory watch
517
518 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
519
520         * Released D-Bus 1.0 RC 3(0.95)
521
522 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
523
524         * bus/activation.c (bus_activation_new): don't fail if we can not read
525         the directory as it may not exist
526
527 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
528
529         * bus/config-parser.c (service_dirs_find_dir): use 
530         _dbus_list_get_next_link so we don't get stuck in an infinite loop
531         (start_busconfig_child): move processing of standard_session_servicedirs
532         tags here because they have no content
533         (bus_config_parser_content): check we don't have content in 
534         standard_session_servicedirs tag
535
536 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
537
538         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
539         Packagers need to own this directory
540
541 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
542
543         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
544         <standard_session_servicedirs> tag with a <sevicedir> tag that
545         points to the test service directory
546
547 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
548
549         * configure.in: Add a check for DIR *dirp->dd_fd
550
551         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
552         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
553         of both Solaris and Irix
554
555 2006-11-01  Havoc Pennington  <hp@redhat.com>
556
557         * bus/dbus-daemon.1.in: document standard_session_servicedirs
558
559 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
560
561         * configure.in: expose DBUS_DATADIR
562         
563         * bus/config-parser.c: add the standard_session_servicedirs element
564         to the parser
565         (bus_config_parser_content): process the standard_session_servicedirs
566         element by getting the standard directories from sysdeps and merging
567         them into the service directory list
568         (test_default_session_servicedirs): make sure we get what we expect
569
570         * bus/session.conf.in: replace the servicedir tag with the 
571         standard_session_servicedirs tag
572
573         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
574         dbus-sysdeps.h to avoid circular header dependencies
575
576         * dbus/dbus-sysdeps.h: add the typedef of DBusList
577
578         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
579         which takes a string of directories delimited by colons, parses them 
580         out, appends a suffix and puts them in a list ignoring empty elements
581         (_dbus_get_standard_session_servicedirs): returns the standard 
582         directories for a session bus to look for service activation files
583         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
584         DBUS_DATADIR directories
585
586         * test/data/valid-config-files/many-rules.conf: add the 
587         standard_session_servicedirs tag to the valid config file tests
588
589 2006-10-30  Havoc Pennington  <hp@redhat.com>
590
591         * tools/dbus-launch.1, doc/TODO: capture intent to change the
592         command line options of dbus-launch a bit post 1.0
593
594 2006-10-27  Havoc Pennington  <hp@redhat.com>
595         
596         * dbus/dbus-connection.c (dbus_connection_open_private): document
597         how to choose shared vs. private connections
598
599 2006-10-27  Havoc Pennington  <hp@redhat.com>
600
601         * dbus/dbus-test.c: enclose more of the file in the
602         DBUS_BUILD_TESTS check.
603
604         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
605         DBUS_DISABLE_ASSERT case.
606
607         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
608         that it only works on the server side
609
610         * dbus/dbus-bus.c: add a global lock covering the BusData we
611         attach to each connection
612         (internal_bus_get): lock our access to the BusData
613         (dbus_bus_register): lock the entire registration process
614         with _DBUS_LOCK(bus_datas). If we get the lock and 
615         registration is already complete, silently return (vs. previous
616         behavior of aborting).
617         (dbus_bus_set_unique_name): lock the BusData
618         (dbus_bus_get_unique_name): lock the BusData
619
620 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
621
622         * bus/config-parser.c (service_dirs_find_dir, 
623         service_dirs_append_unique_or_free, 
624         service_dirs_append_link_unique_or_free): New static methods
625         for only appending unique service directory names into
626         the service directory list
627         (merge_included, bus_config_parser_content): Only add unique
628         service directory names into the list
629
630 2006-10-27  Havoc Pennington  <hp@redhat.com>
631
632         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
633         variables volatile, suggested by Thiago. Document struct fields.
634         (PTHREAD_CHECK): remove pthread error checking if assertions are
635         disabled, should reduce the no-assertions case to the bare
636         minimum code.
637
638 2006-10-26  Havoc Pennington  <hp@redhat.com>
639         
640         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
641         to be recursive
642         (_dbus_pthread_mutex_unlock): make it recursive
643         (_dbus_pthread_condvar_wait): save/restore the recursion count
644         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
645
646 2006-10-26  Havoc Pennington  <hp@redhat.com>
647
648         * doc/dbus-specification.xml: clarify the UUID text slightly
649
650         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
651         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
652         in preparation for being able to extend them for e.g. recursive
653         mutexes.
654
655 2006-10-26  Havoc Pennington  <hp@redhat.com>
656
657         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
658         condition variables relate to recursive mutexes.
659         
660         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
661         dbus/dbus-threads.c: Split the platforms-specific thread 
662         implementations into their own files.
663         
664         * dbus/dbus-sysdeps-pthread.c
665         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
666         was backward. Not that anything uses it.
667
668 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
669
670         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
671         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
672         needs to be cleaned up more.
673
674         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
675         up the CREDS issue.
676
677 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
678
679         * configure.in, dbus-1.pc.in: Check to see if thread methods 
680         are in glibc or libpthread and add -lpthread to the link stage 
681         if it is the latter
682
683 2006-10-26  Thiago Macieira  <thiago@kde.org>
684
685         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
686         bug 8780: the connection lock is only required while recording
687         the shared connection, so protect only that code
688         section. Don't require connection_lookup_shared to return a
689         locked connection.
690
691 2006-10-26  Thiago Macieira  <thiago@kde.org>
692
693         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
694         check if get_machine_uuid() returns NULL before proceeding any
695         further: we can't init the X atoms or create a session file
696         name if there is no machine ID.
697         This solves a crash reported by some users if
698         --exit-with-session was used without --autolaunch=<machine-id>
699
700 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
701
702         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
703         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
704
705         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
706         before we run dbus-launch
707
708         * configure.in: define TEST_BUS_BINARY to be the full path to 
709         dbus-daemon in the build root 
710
711 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
712
713         * dbus/Makefile.am:
714         * tools/Makefile.am:
715         * toos/dbus-uuidgen.1:
716                 Move the machine-id file to /var/lib/dbus 
717
718 2006-10-24  David Zeuthen  <davidz@redhat.com>
719
720         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
721         _dbus_assert (thread_init_generation != _dbus_current_generation)
722         not _dbus_assert (thread_init_generation == _dbus_current_generation)
723
724 2006-10-24  Thiago Macieira  <thiago@kde.org>
725
726         * dbus/dbus-sysdeps.h:
727         * dbus/dbus-sysdeps-unix.c: Add function
728         _dbus_make_file_world_readable that chmods a file to 0644.
729
730         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
731         Avoid writing to the static "argv" array, thereby avoiding a
732         COW on the child process.
733
734         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
735         call _dbus_make_file_world_readable on the created file.
736
737 2006-10-23  David Zeuthen  <davidz@redhat.com>
738
739         * dbus/dbus-memory.c: Use atomic variable to protect
740         n_blocks_outstanding otherwise OOM will be reported using SMP on
741         some arches
742         
743         * bus/dispatch.c: Add missing end of line characters
744
745         * bus/desktop-file.c (parse_section_start, parse_key_value) 
746         (bus_desktop_file_load): Propertly handle OOM
747
748         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
749         thread_init_generation equals _dbus_current_generation, not 0
750
751 2006-10-22  Havoc Pennington  <hp@redhat.com>
752
753         * dbus/dbus-connection-internal.h: move prototype of
754         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
755         it isn't in a public header and doesn't end up in the DBusBus
756         group in Doxygen
757
758 2006-10-21  Havoc Pennington  <hp@redhat.com>
759
760         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
761         the tarball if packagers want to run it
762
763         * cleanup-man-pages.sh: Add a script which munges all the internal
764         API man pages out of the Doxygen output. This reduces the size of
765         the installed man pages from 7 to 2 megs, and avoids
766         namespace-polluting pages. Right now (like Doxygen) this script
767         isn't in the build, it's something packagers can do manually.
768
769 2006-10-21  Havoc Pennington  <hp@redhat.com>
770
771         * dbus/dbus-connection.h: don't include the watch/timeout
772         functions in connection section
773
774 2006-10-21  Havoc Pennington  <hp@redhat.com>
775
776         * Documentation! Whee! Doxygen now 100% silent. If you make it
777         angry again, you will be punished.
778         
779 2006-10-21  Havoc Pennington  <hp@redhat.com>
780
781         * More documentation - all public API now documented according to
782         Doxygen
783
784 2006-10-21  Havoc Pennington  <hp@redhat.com>
785
786         * Document a bunch of undocumented stuff
787         
788 2006-10-21  Havoc Pennington  <hp@redhat.com>
789
790         * Clean up Doxygen group markers for public API so Doxygen finds
791         everything (not comprehensively fixed for private API).
792         Means all remaining Doxygen warnings are just about missing docs
793         and thus pretty simple to resolve.
794         
795 2006-10-21  Havoc Pennington  <hp@redhat.com>
796         
797         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
798
799         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
800         as DBUS_GNUC_DEPRECATED
801
802 2006-10-21  Havoc Pennington  <hp@redhat.com>
803
804         * Move all private API into the private Doxygen group sections of
805         the files, so they don't show up in the public API docs
806         
807 2006-10-21  Havoc Pennington  <hp@redhat.com>
808
809         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
810         dbus_message_iter_get_array_len().
811
812         * throughout: documentation improvements.
813
814 2006-10-20  Havoc Pennington  <hp@redhat.com>
815
816         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
817         matter, and the message-loader-breaker thing since nobody is going
818         to do it.  Add an item to 1.0 about supporting recursive locks
819         in dbus_threads_init_default() though, since it should be easy.
820
821         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
822         Fix this in the !dispatch case to avoid busy-looping after
823         disconnection
824
825         * More misc docs improvements
826
827 2006-10-19  Havoc Pennington  <hp@redhat.com>
828
829         * more Doxygen-related fixes (lots of moving things from the
830         public to internal section in dbus-connection.c)
831
832 2006-10-19  Havoc Pennington  <hp@redhat.com>
833
834         * Fix a pile of Doxygen warnings and missing docs
835
836 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
837
838         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
839         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
840         instead of a void *.  kqueue uses this to get the context's loop
841         while the other modules ignore the parameter.  This allows us to
842         avoid platform conditionals
843
844         * bus/bus.c (process_config_postinit): Pass in the context to the 
845         watch
846
847 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
848
849         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
850         when starting the system bus
851
852 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
853
854         * configure.in: More fixups for cross compile (Patch from 
855         Marco Pracucci <development at pracucci dot com>)
856
857 2006-10-17  Havoc Pennington  <hp@redhat.com>
858
859         * tools/dbus-send.c (main): don't close shared connection, fix
860         from Timo Hoenig
861
862 2006-10-17  Havoc Pennington  <hp@redhat.com>
863
864         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
865
866         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
867         since realistically it doesn't look like we'll be changing it
868         anymore.
869
870 2006-10-17  Havoc Pennington  <hp@redhat.com>
871
872         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
873         be used for return_if_fail type warnings; prefixes the pid, and
874         fatal by default.
875
876 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
877
878         * configure.in: Released 1.0 RC 2(0.94)
879         Add check for -fPIC and enable it if available
880
881 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
882
883         * doc/TODO: Remove the check TODO item
884
885 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
886
887         * dbus-transport-socket.c (exchange_credentials):
888         Print out more detailed errors if reading or sending
889         credentials fail (Patch from Julio M. Merino Vidal 
890         <jmmv at NetBSD dot org>)
891
892 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
893
894         * configure.in: when checking for posix getpwnam_r assume true
895         for cross compiles
896
897 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
898
899         * configure.in: Check for gethostbyname first before we check for it
900         in libnsl.  On gnu systems it is implemeneted 
901
902 2006-10-13  Havoc Pennington  <hp@redhat.com>
903
904         * dbus/dbus-connection.c
905         (dbus_connection_send_with_reply_and_block): fix to handle closed
906         connections, from Tambet Ingo bug #8631
907
908 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
909
910         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
911
912 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
913
914         * test/name-test/Makefile.am: don't link against both libdbus and
915         libdbus-convenience
916
917 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
918
919         * configure.in: check for dirfd even if it is a macro
920         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
921
922 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
923
924         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
925         avoid using dirfd on systems that don't have dirfd 
926         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
927
928 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
929
930         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
931         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
932
933         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
934         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
935         macro because _dbus_abort calls it
936
937         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
938         works
939
940 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
941
942         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
943         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
944
945 2006-10-02  Thiago Macieira  <thiago@kde.org>
946
947         * tools/dbus-launch.c (main): make it complain and abort
948         execution in case an unknown option is given. Also, process
949         the '--' argument as the end of arguments.
950
951 2006-10-01  Havoc Pennington  <hp@redhat.com>
952
953         * tools/dbus-launch.c (print_variables): if no syntax is given,
954         don't print something that's sort-of-half-sh-syntax, just print
955         a plain key-value pairs thing.
956
957         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
958         the local machine representation (but still have the hostname in
959         the display). Remove the hostname from the display if it is
960         localhost. Change session files to be named
961         ~/.dbus/session-bus/machine-display. Change X atoms to be
962         underscore-prefixed so nobody whines about ICCCM compliance.
963         Otherwise name them the same as the env variables.
964         Change session file format to include key-value pairs and an
965         explanatory comment. Keys are the same as the env variables.
966         (set_address_in_x11): X property format can't depend on
967         sizeof(pid_t) on a particular machine, fix to always be 32 bits
968
969         * tools/dbus-launch.c: make --autolaunch take a machine id
970         argument. If --autolaunch is used with a program to run, complain
971         for now (but add a FIXME). Also, don't look for existing bus if 
972         there's a program to run (but add a FIXME).
973
974         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
975         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
976         just to get this, and avoids duplicating uuid-reading code).
977
978         * tools/dbus-launch.1: clarify various things
979         
980 2006-10-01  Havoc Pennington  <hp@redhat.com>
981
982         * test/test-service.c (path_message_func): remove broken extra
983         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
984
985         * test/test-shell-service.c (path_message_func): same fix
986         
987         * dbus/dbus-connection.c
988         (_dbus_connection_get_dispatch_status_unlocked): break up the
989         function a little for clarity and fix the notification of
990         dbus-bus.c to not require dispatch to be complete
991
992         * dbus/dbus-connection.c (dbus_connection_unref): improve the
993         warning when you try to finalize an open connection.
994         
995 2006-10-01  Havoc Pennington  <hp@redhat.com>
996
997         * dbus/dbus-bus.c
998         (internal_bus_get): only weak ref the connection; this means 
999         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1000         called safely in any context
1001         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1002         unref
1003
1004         * dbus/dbus-connection.c
1005         (_dbus_connection_get_dispatch_status_unlocked): move
1006         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1007         when queuing Disconnected instead of when the Disconnected message
1008         arrives, so dbus_bus_get() won't return closed connections.
1009         
1010 2006-10-01  Havoc Pennington  <hp@redhat.com>
1011
1012         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1013         Add a hack to make DBusNewConnectionFunction work right.
1014
1015         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1016         the hack here. Also, fix the todo about refcount leak.
1017         
1018         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1019         and use the hack here
1020         
1021         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1022         "shareable" flag; this was completely broken, since it meant 
1023         dbus_connection_open() returned a connection of unknown
1024         shared-ness. Now, we always hold a ref on anything opened 
1025         as shareable.
1026
1027         Move the call to notify dbus-bus.c into
1028         connection_forget_shared_unlocked, so libdbus consistently forgets
1029         all its knowledge of a connection at once. This exposed numerous
1030         places where things were totally broken if we dropped a ref inside
1031         get_dispatch_status_unlocked where
1032         connection_forget_shared_unlocked was previously, so move
1033         connection_forget_shared_unlocked into
1034         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1035         exit_on_disconnect here.
1036
1037         (shared_connections_shutdown): this assumed weak refs to the
1038         shared connections; since we have strong refs now, the assertion 
1039         was failing and stuff was left in the hash. Fix it to close
1040         still-open shared connections.
1041         
1042         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1043         debug pipe connections
1044         
1045         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1046         dbus-bus.c if the closed connection is in fact shared
1047         (_dbus_connection_close_possibly_shared): rename from 
1048         _dbus_connection_close_internal
1049         (dbus_connection_close, dbus_connection_open,
1050         dbus_connection_open_private): Improve docs to explain the deal
1051         with when you should close or unref or both
1052
1053         * dbus/dbus-bus.c
1054         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1055         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1056         loop over all connections
1057
1058         * test/test-utils.c (test_connection_shutdown): don't try to close
1059         shared connections.
1060
1061         * test/name-test/test-threads-init.c (main): fix warnings in here
1062
1063         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1064         env variable to cause blocking waiting for gdb; drop
1065         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1066         unconditionally.
1067
1068         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1069         so _dbus_print_backtrace works.
1070
1071         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1072         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1073         of -rdynamic/-export-dynamic
1074         
1075 2006-09-30  Havoc Pennington  <hp@redhat.com>
1076
1077         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1078         (internal_bus_get): fix screwy code formatting. whoever committed
1079         that was not paying attention!
1080
1081 2006-09-30  Havoc Pennington  <hp@redhat.com>
1082
1083         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1084         reflect addition of interfaces.
1085
1086         * doc/dbus-specification.xml: describe a new
1087         org.freedesktop.DBus.Peer.GetMachineId method
1088
1089         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1090         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1091         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1092         at end of skip_white
1093         (_dbus_string_chop_white): new function
1094
1095         * bus/connection.c (bus_connections_setup_connection): call
1096         dbus_connection_set_route_peer_messages.
1097
1098         * dbus/dbus-connection.c
1099         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1100         support a GetMachineId method.
1101
1102         Also, support a new flag to let the bus pass peer methods through
1103         to apps on the bus, which can be set with
1104         dbus_connection_set_route_peer_messages.
1105
1106         Finally, handle and return an error for anything unknown on the
1107         Peer interface, which will allow us to extend the Peer interface
1108         in the future without fear that we're now intercepting something
1109         apps were wanting to see.
1110         
1111         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1112         dbus/dbus-uuidgen.c
1113
1114         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1115         binary here, since most of the code is already in libdbus
1116
1117         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1118         uuid from the system config file
1119
1120         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1121         (_dbus_read_uuid_file_without_creating) 
1122         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1123         uuid-related functions, partly factored out from dbus-server.c
1124
1125         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1126         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1127
1128         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1129
1130         * tools/dbus-cleanup-sockets.1: explain what the point of this
1131         thing is a bit more
1132
1133         * autogen.sh (run_configure): add --config-cache to default
1134         configure args
1135
1136         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1137         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1138
1139         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1140         don't try to save address, fixes crash in make check
1141         
1142 2006-09-30  Thiago Macieira  <thiago@kde.org>
1143
1144         * configure.in: add DBUS_BINDIR as a #define to C source code.
1145
1146         * tools/dbus-launch.c
1147         * tools/dbus-launch.h
1148         * tools/dbus-launch-x11.c:
1149         * tools/dbus-launch.1: Add the --autolaunch option to
1150         dbus-launch, which makes it scan for an existing session
1151         started with --autolaunch. With that option, it also creates
1152         an X11 window and saves the bus address and PID to it.
1153
1154         * dbus/dbus-sysdeps.h:
1155         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1156         a function that runs "dbus-launch --autolaunch" to retrieve
1157         the running D-Bus session address (or start one if none was running)
1158
1159         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1160         address protocol, which tries to get the running session from
1161         dbus-launch.
1162
1163         * dbus/dbus-bus.c:
1164         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1165         D-Bus session bus address.
1166
1167         * dbus/dbus-connection.c: Fix horrible typo in error message.
1168
1169 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1170
1171         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1172
1173 2006-09-17  Havoc Pennington  <hp@redhat.com>
1174
1175         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1176         fix so that if unix_user_function is set on windows, we still
1177         do the default check that the auth identity matches the bus identity
1178
1179 2006-09-16  Havoc Pennington  <hp@redhat.com>
1180
1181         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1182         to _dbus_transport_open_platform_specific,
1183         _dbus_transport_open_socket,
1184         and _dbus_transport_open_debug_pipe
1185
1186         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1187
1188 2006-09-16  Havoc Pennington  <hp@redhat.com>
1189
1190         Attempt auditing public API to remove all cases where a Unix
1191         function returns weird emulated goo to Windows. This probably 
1192         breaks the bus daemon on Windows, to fix it again we may 
1193         need to stop processing unix-specific config options on Windows,
1194         and may need to add Windows-specific public API or config options.
1195         
1196         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1197         to reflect added interfaces; should not break soname.
1198         
1199         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1200         not invoke unix user function on Windows. Kind of a hacky fix, but 
1201         we don't want a "unix uid" leaking out on Windows.
1202
1203         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1204         to get the socket fd on Windows or UNIX
1205         (dbus_connection_get_unix_fd): make this always fail on Windows
1206
1207 2006-09-16  Havoc Pennington  <hp@redhat.com>
1208
1209         * dbus/dbus-server.c (dbus_server_listen): change how this works
1210         to be able to delegate to a set of handlers that can succeed,
1211         fail, or choose not to handle. Allows us to have 
1212         dbus_server_listen_platform_specific.
1213
1214         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1215         factor out the tcp socket stuff to be used on windows, leaving
1216         unix domain socket only in dbus-socket-unix.c
1217
1218         * dbus/dbus-transport-socket.c
1219         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1220         stuff to be used on windows, leaving unix domain socket only 
1221         in dbus-transport-unix.c
1222
1223         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1224         temporary hack to be sure this fails on windows
1225         (dbus_connection_get_unix_process_id): ditto
1226
1227 2006-09-16  Havoc Pennington  <hp@redhat.com>
1228
1229         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1230         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1231         _dbus_open_socket so the domain/type/protocol from system headers
1232         are not required. This is kind of pointless though unless we move
1233         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1234         sysdeps-unix.c, which would mean adding a wrapper around
1235         bind/listen/etc.
1236         Also, add DBusError to the socket-opening functions so they 
1237         don't require use of errno.
1238
1239 2006-09-16  Havoc Pennington  <hp@redhat.com>
1240
1241         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1242         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1243
1244         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1245         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1246         functions specifically for sockets only, and move generic 
1247         read/write/open/close into unix-specific code.
1248
1249 2006-09-14  Havoc Pennington  <hp@redhat.com>
1250
1251         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1252         complaint about accessing revents when poll returns 0, from Julian Seward.
1253
1254 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1255
1256         * Released 1.0 RC 1 (0.93) 
1257
1258 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1259
1260         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1261         use _dbus_close instead of close
1262
1263 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1266         credentials.  Fixes "external" authentication under e.g. NetBSD
1267         which does not support any other socket credentials mechanism.
1268         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1269
1270 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1273         dbus_threads_init and be used by the dbus mutex functions to
1274         avoid deadlocks.
1275
1276         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1277
1278 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1281         use threadsafe readdir_r instead of readdir
1282
1283 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1284
1285         * dbus-threads.c (dbus_threads_init_default): New method for
1286         initializing the internal thread implementation (Patch from
1287         Alexander Larsson <alexl at redhat dot com>)
1288
1289 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * remove a bunch of todo items from the 1.0 list
1292
1293 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1294
1295         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1296         key not found
1297
1298 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1301         complex debugging code
1302
1303         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1304         between the test suite ifdefs
1305         (_dbus_verbose_bytes): return if verbosity is not enabled 
1306
1307 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1308
1309         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1310         remove DBusMark
1311
1312 2006-09-10  Havoc Pennington  <hp@redhat.com>
1313
1314        patch mostly by Peter Kümmel, bug #8211
1315         
1316         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1317         unix-specific stuff in dbus-sysdeps.c
1318
1319         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1320         and move unix-specific stuff to dbus-sysdeps-unix.c
1321
1322         * configure.in: check HAVE_ERRNO_H
1323         
1324 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1325
1326         * bus/test-main.c (main): Initialize threading during tests
1327
1328         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1329         Unlock connection on error
1330         (generate_local_error_message): static method for generating
1331         an error message when we don't have a message to reply to
1332         (_dbus_connection_block_pending_call): Send a disconnect error
1333         instead of just a timeout (NULL) when the bus gets disconnected
1334         while blocking for a reply.
1335         
1336 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1339         filters (Patch from Kimmo Hämäläinen 
1340         <kimmo dot hamalainen at nokia dot com>)
1341
1342 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1343
1344         * dbus/dbus-connection-internal.h: Add prototype for 
1345         _dbus_connection_test_get_locks to remove warning
1346
1347 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1348
1349         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1350         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1351         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1352
1353 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1354
1355         * Clean up close calls to use _dbus_close (Patch from 
1356         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1357
1358 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1359
1360         * doc/TODO:
1361         - Remove pending call locking todo item
1362         - dbus_connection_open now holds hard ref.  Remove todo item
1363         - do proper locking on _dbus_bus_check_connection_and_unref
1364           and handle DBUS_BUS_STARTER. Remove todo item
1365         - Warn on closing of a shared connection.  Remove todo item
1366
1367         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1368         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1369         so we don't get the warning when closing shared connections
1370
1371         * test/test-service.c, test/test-shell-service.c: Applications
1372         don't close shared connections themselves so we unref instead of
1373         close
1374
1375         * test/test-utils.c (test_connection_shutdown): Close the connection
1376
1377         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1378         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1379         method on a locked connection.  
1380         Make sure we call _dbus_connection_unref_unlocked instead of 
1381         dbus_connection_unref also.
1382         Handle DBUS_BUS_STARTER correctly
1383
1384         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1385         Mark as shared and hard ref the connection
1386         (connection_forget_shared_unlocked): Remove the hard ref from the 
1387         connection
1388         (_dbus_connection_close_internal_and_unlock):  New internal function
1389         which takes a locked connection and unlocks it after closing it
1390         (_dbus_connection_close_internal): New internal function which acts
1391         like the origonal dbus_connection_close method by grabbing a connection
1392         lock and calling _dbus_connection_close_internal_and_unlock
1393         (dbus_connection_close): Public close method, warns when the app
1394         trys to close a shared connection
1395
1396 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1397
1398         * bus/driver.c:
1399         (bus_driver_generate_introspect_string): New method for populating
1400         a DBusString with the introspect data
1401         (bus_driver_handle_introspect): Move introspect generation code to 
1402         bus_driver_generate_introspect_string
1403
1404         * bus/main.c:
1405         (introspect): New function which prints out the intropect data and
1406         exits
1407         (main): Add a --introspect switch
1408
1409 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * doc/TODO: Removed dtd publishing item.  
1412         It seems the dtd has already been added at
1413         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1414
1415 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * doc/TODO, various source files: Audited todo's and FIXME's and
1418         prepended the ones we should be looking at with 1.0.  Those
1419         prepended with 1.0? need clerification or might not be needed
1420         for 1.0
1421
1422 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1423
1424         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1425         NULL in the public API (Patch from Kimmo Hämäläinen 
1426         <kimmo dot hamalainen at nokia dot com>)
1427
1428 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1429
1430         * configure.in: Fix for OS-X compile time endian issues (patch from
1431         Benjamin Reed <ranger at befunk dot com>)
1432
1433 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * configure.in: Check for no-common compiler flag (OS-X fix from
1436         Benjamin Reed <ranger at befunk dot com>)
1437
1438 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1441         <fcrozat at mandriva dot com>)
1442
1443 2006-08-29  Havoc Pennington  <hp@redhat.com>
1444
1445         * test/test-service.c (path_message_func): fix lack of return value
1446
1447         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1448         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1449         any more sense than on anything else in this file.
1450         (_dbus_get_tmpdir): add const to return value, and keep the
1451         results of the various getenv around in a static variable.
1452
1453 2006-08-29  Havoc Pennington  <hp@redhat.com>
1454
1455         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1456         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1457
1458 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1459
1460         * test/Makefile.am: change find to use syntax that works with non
1461         gnu versions of find
1462
1463 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * dbus/dbus-transport.c: fix invalid deref when checking if
1466         a vtable method exists (Patch from Christian Ehrlicher 
1467         <ch dot ehrlicher at gmx dot de>)
1468
1469 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1470
1471         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1472         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1473         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1474         <bernard at brenda-arkle dot demon dot co dot uk>)
1475
1476 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1477
1478         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1479         default case
1480
1481 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1484         it works on any system providing this interface, not only FreeBSD.
1485         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1486
1487 2006-08-20  Havoc Pennington  <hp@redhat.com>
1488
1489         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1490         the docs
1491
1492 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1493
1494         * Released 0.92 
1495
1496 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1497
1498         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1499         to reflect the init late change
1500
1501         * bus/bus.c (bus_context_new): Check user before we fork so we can
1502         print out an error message a user will be able to see
1503
1504 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1505
1506         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1507
1508         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1509         Add two more global locks for use on windows platforms.  These are
1510         unused on non-windows platforms but are not ifdefed out to avoid
1511         potential bugs (i.e. the few bytes lost does not warrent the extra
1512         maintanence and complexity that having seperate sets of locks would
1513         cause)
1514
1515 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * bus/services.c (bus_registry_acquire_service): Return an error
1518         when an application tries to register the org.freedesktop.DBus Bus Name
1519
1520         * bus/services.c (bus_registry_release_service): Return an error
1521         when an application tries to release the org.freedesktop.DBus Bus Name
1522
1523 2006-08-17  Alp Toker  <alp@atoker.com>
1524
1525         * doc/dbus-specification.xml: Fix some minor typos.
1526
1527 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1528
1529         * configure.in: use $with_init_scripts instead of $operating_system
1530         to determine where to store the pid since the init scripts manipulate 
1531         the pid file (patch from Marcelo Ricardo Leitner 
1532         <marcelo dot leitner at terra dot com dot br>.  
1533
1534 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1535
1536         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1537         static DBusList *uninitialized_condvar_list to support new late 
1538         initialization threading model.  In this model threads can be initialized
1539         even after the D-Bus API has been used but still needs to be initialized 
1540         before the second thread has been started.  Mutexes and condvar addresses
1541         are stored in the two static lists and are replaced with actuall locks
1542         when threads are initalized.
1543         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1544         the location into the static list
1545         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1546         from the static list and freeing the mutex
1547         (_dbus_condvar_new_at_location): New method for creating a conditional 
1548         variable and placing the location into the static list
1549         (_dbus_condvar_free_at_location): New method for removing a conditional
1550         variable location from the static list and freeing the conditional variable 
1551         (init_uninitialized_locks): Atomic method which goes through the static 
1552         lists of mutex and condvar location and updates them with actuall locks
1553         (init_global_locks): changed to init_locks
1554         
1555         * dbus/dbus-connection.c:
1556         (_dbus_connection_test_get_locks): New method for tests to check connections
1557         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1558         condvar API
1559         (dbus_connection_allocate_data_slot): Pass in the global lock address
1560         to _dbus_data_slot_allocator_alloc
1561
1562         * dbus/dbus-dataslot.c:
1563         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1564         instead of the mutex itself
1565
1566         * dbus/dbus-message.c:
1567         (dbus_message_allocate_data_slot): Pass in the global lock address
1568         to _dbus_data_slot_allocator_alloc
1569
1570         * dbus/dbus-pending-call.c:
1571         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1572         to _dbus_data_slot_allocator_alloc
1573
1574         * dbus/dbus-server.c:
1575         (_dbus_server_init_base): Use the new at_location mutex API
1576         (dbus_server_allocate_data_slot): Pass in the global lock address
1577         to _dbus_data_slot_allocator_alloc
1578
1579         * test/name-test/test-threads-init.c: New test case for late thread
1580         initialization
1581
1582 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1583
1584         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1585         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1586         causes compile problems when asserts are turned off
1587         Keeping _dbus_warn for printing out the message so even if
1588         asserts are turned off the user gets the messages that something is 
1589         wrong 
1590
1591 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1592
1593         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1594
1595         * bus/services.c (bus_service_list_queued_owners):
1596         Add a pointer cast to fix compiler warning
1597
1598         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1599         return a NULL instead of FALSE since the return type
1600         is not expecting a boolean
1601
1602         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1603         Remove unused variable
1604
1605         * dbus/dbus-marshal-recursive-util.c (node_new):
1606         return a NULL instead of FALSE since the return type
1607         is not expecting a boolean
1608
1609         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1610         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1611         because we are expecting a pointer not a boolean
1612
1613         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1614         add void as the parameter so some compilers
1615         don't complain
1616
1617         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1618           _dbus_transport_new_for_tcp_socket):
1619         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1620         because we are expecting a pointer not a boolean
1621
1622         * test/shell-test.c (test_command_line):
1623         cast the second argument to _dbus_list_append to avoid compiler
1624         warnings
1625
1626         * test/test-names.c (main): remove unused variable
1627
1628         * test/test-service.c (check_hello_from_self_reply):
1629         Initialize echo_message and echo_reply to NULL
1630         
1631         * test/test-shell-service.c (handle_echo):
1632         Remove unused variable and cast the third parameter passed to
1633         dbus_connection_get_object_path_data to avoid compiler warrnings
1634
1635         * test/name-test/test-names.c (clear_message_queue):
1636         Remove unused function
1637
1638         * test/name-test/test-pending-call-dispatch.c:
1639         Fix format string in printf
1640
1641
1642 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1643
1644         * dbus/dbus-bus.c:
1645         * test/name-test/test-names.c:
1646         Remove test method dbus_bus_connection_get_unique_name because 
1647         we already have public method dbus_bus_get_unique_name that 
1648         does the exact same thing
1649
1650 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * dbus/dbus-signature.c:
1653         fix typos in Julio's previous patch which cause make check to fail
1654
1655 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1658         In any case it was wrong since this is a test checking to see if
1659         address parsing is correct.  There was no need to get the true
1660         tmp directory.  
1661
1662 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1663
1664         * dbus/dbus-macros.h: Revert the addition of stddef.h
1665         as we should not be adding it to library headers 
1666
1667 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1668
1669         * dbus/dbus-signature.c:
1670         Fix the unit tests so that they work if assertions are not enabled.
1671         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1672
1673 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * tools/run-with-tmp-session-bus.sh:
1676         * test/name-test/run-test.sh:
1677         Remove bashisms (patch from Julio M. Merino Vidal
1678         <jmmv at NetBSD dot org>)
1679
1680 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1681
1682         * configure.in: add a version (>= 2.6.0) check for libxml2
1683
1684 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1685
1686         * configure.in: make sure the compiler supports -Wfloat-equal
1687         
1688         * bus/dir-watch-dnotify.c: move functional code after 
1689         variable declerations (C99 fix)  (patches from Jens Granseuer
1690         <jensgr at gmx dot net>
1691
1692 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1693
1694         * dbus/dbus-macros.h:
1695         add #include <stddef.h> so that Sun compilers don't complain about
1696         the defining NULL
1697
1698 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1699
1700         * dbus/dbus-sysdeps.c:
1701         * dbus/dbus-address.c:
1702         * bus/activation.c:
1703         * test/shell-test.c:
1704         don't hardcode tmp directory (patch from Dave Meikle 
1705         <dmk at davemeikle dot co dot uk>)
1706
1707 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1708
1709         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1710         Change an assert to a detailed warning and abort.  
1711         When allocator->lock != mutex it indicates that the user has failed
1712         to initalize threads before using the D-Bus library.  This warning
1713         helps the user identify the issue and fix their app.
1714
1715 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1716
1717         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1718         with cleanups of bugs found from Coverity reports:
1719
1720         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1721         close the file on error to avoid a leak
1722
1723         * bus/expirelist.c (bus_expire_list_test):
1724         Check for NULL on dbus_new0
1725
1726         * bus/activation.c (update_directory):
1727         remove dead code
1728
1729         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1730         Fix some leaks
1731
1732         * bus/bus.c (process_config_every_time):
1733         Fixed a leak
1734
1735         * bus/desktop-file.c (parse_key_value):
1736         Fixed leak
1737
1738         * bus/selinux.c (bus_selinux_id_table_insert):
1739         Fixed leak
1740
1741 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1742
1743         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1744         remove dead code
1745
1746 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1747
1748         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1749         #!/bin/bash
1750
1751 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1752
1753         * Doxyfile.in: fix the INPUT line so we can generate docs 
1754         when sourcedir != builddir (patch from Cygwin Ports maintainer
1755         <yselkowitz at users dot sourceforge dot net>
1756
1757 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1758
1759         * dbus/dbus-sysdeps.h:
1760         * dbus/dbus-sysdeps.c: 
1761         * dbus/dbus-string.c: 
1762         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1763         GLib's function which does the same thing
1764
1765         * configure.in:
1766         * bus/Makefile.am:
1767         * bus/dir-watch-default.c:
1768         * bus/dir-watch-dnotify.c:
1769         * bus/dir-watch-kqueue.c:
1770         Add kqueue directory watching for freebsd and split the directory
1771         watching code into seperate files per method/arch
1772         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1773
1774 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1775
1776         * configure.in:
1777         * tools/Makefile.am:
1778         * tools/dbus-launch.c:
1779         * bus/Makefile.am:
1780         allow --with-dbus-daemondir switch to be used to make the
1781         daemon install to a seperate bindir like /usr/libexec
1782         (patch from Brian Cameron <brian dot cameron at sun dot com)
1783
1784 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * bus/Makefile.am (install-data-hook): removed the slash after 
1787         $(DESTDIR) so we don't get the double slash which does not work
1788         in windows (patch from Andras Porjesz 
1789         <andras dot porjesz at siemens dot com>)
1790
1791 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1792
1793         * dbus/dbus-sysdeps.h:
1794         * dbus/dbus-sysdeps.c: 
1795           add _dbus_printf_length (patch from Peter Kümmel 
1796           <syntheticpp at gmx dot net>)
1797
1798 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1799
1800         * dbus/dbus-internals.c: unistd.h is not used 
1801         (_dbus_verbose_real): only enable verbose printing 
1802         if DBUS_VERBOSE environment var is set to '1'
1803         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1804
1805 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1806
1807         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1808         so we still compile on older gcc (patch from Frederic Peters 
1809         <fpeters at 0d dot be>
1810
1811 2006-08-04  Havoc Pennington  <hp@redhat.com>
1812
1813         * configure.in: add -Wdeclaration-after-statement
1814
1815         * dbus/dbus-connection.c: change all the pending call stuff to
1816         reflect the fact that pending call operations use the connection
1817         lock
1818
1819         * dbus/dbus-pending-call.c: add locking here
1820
1821         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1822         field const consistent with how message field is done
1823
1824 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1825
1826         * s/D-BUS/D-Bus/g
1827
1828 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1829
1830         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1831         <in7y118 at public.uni-hamburg dot de> - fix invalid
1832         read/write reported by valgrind
1833
1834 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1835
1836         * Released 0.91
1837
1838 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1839
1840         * dbus/dbus-connection.c:
1841         (_dbus_connection_attach_pending_call_unlocked):
1842         (connection_timeout_and_complete_all_pending_calls_unlocked):
1843         Make sure we set timeout_added on pending calls to FALSE when
1844         we remove the timeout from the connection
1845
1846 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1847
1848         * Removed some extra bindings stuff lingering around (thanks timo)
1849         * dbus-pendingcall.c (_dbus_pending_call_new): 
1850         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1851         when we tried to take a lock on an already locked connection
1852
1853 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1854
1855         * Released 0.90
1856
1857 2006-07-17  Havoc Pennington  <hp@redhat.com>
1858
1859         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1860         ints, reported by Owen Taylor
1861
1862 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * doc/TODO:
1865         * dbus/dbus-bus.c:
1866         * dbus-errors.c:
1867         * dbus/dbus-marshal-validate.c:
1868           Removed TODO items which were fixed or are no longer relevent
1869
1870 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1871
1872         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1873         Remove stray files from the stripped bindings
1874
1875 2006-07-16  Havoc Pennington  <hp@redhat.com>
1876
1877         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1878         Improve the error message on reply timeout
1879
1880 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1881
1882         * Remove all bindings
1883
1884 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1885
1886         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1887         and set pending_reply out arg to NULL is connection is disconnected
1888         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1889         static method for cleaning up pending calls on disconnect
1890         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1891         calls queued timeouts on disconnect 
1892
1893          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1894         Remove 
1895
1896 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1897
1898         * bus/activation.[ch] (bus_activation_list_services): new function to 
1899         get the list of services that can be activated
1900
1901         * bus/dispatch.c: test coverage for the new bus method
1902         ListActivatableNames
1903
1904         * bus/driver.c: new bus method ListActivatableNames to get the list of
1905         services that can be activated
1906
1907         * doc/dbus-specification.xml: ListActivatableNames method documentation
1908
1909 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1910         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1911         source files
1912
1913 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1914         * dbus/dbus-message-factory.c:
1915         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1916
1917 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1918         * dbus/dbus-connection-internal.h:
1919         * dbus/dbus-connection.c:
1920         * file dbus/dbus-pending-call.c:
1921         * dbus/dbus-pending-call.h:
1922         Make DBusPendingCall an opaque type even to D-Bus internals
1923
1924 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1925
1926         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1927         connection_close
1928
1929         * dbus/dbus-connection.c: include dbus-bus.h
1930         (_dbus_connection_read_write_dispatch): make static
1931
1932 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1933
1934         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1935         function
1936         (dbus_connection_dispatch): On disconnect unref any shared connections
1937
1938         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1939         for cleaning up shared connections on disconnect
1940         (internal_bus_get): get a hard refrence to shared connections when
1941         they are created
1942         
1943         * doc/TODO: Remove items which are no longer relevent or have been fixed
1944         Split 1.0 todo items with a 0.90 freeze todo list
1945  
1946 2006-06-14  Ross Burton  <ross@openedhand.com>
1947
1948         * glib/dbus-gobject.c:
1949         Free a leaking GArray (surely not!) in dbus_g_method_return.
1950
1951 2006-06-14  Ross Burton  <ross@openedhand.com>
1952
1953         * tools/Makefile.am:
1954         * tools/dbus-monitor.c:
1955         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1956         Habacker).
1957         
1958 2006-06-14  Ross Burton  <ross@openedhand.com>
1959
1960         * tools/dbus-print-message.c:
1961         Also print the object path when outputting signals or method calls.
1962
1963 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1964
1965         * qt/src/Makefile.am: install the qdbus.h header.
1966         This allows people to actually use the installed code.
1967
1968 2006-06-12  Ross Burton  <ross@openedhand.com>
1969
1970         * glib/dbus-gproxy.c:
1971         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1972
1973 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1974
1975         * Released 0.62
1976
1977 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1978
1979         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1980         break pedantic builds. Closes bug 6043 (patch approved by
1981         Havoc back in February).
1982
1983 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1984
1985         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1986         that took a QDBusMessage parameter.
1987         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1988         * qt/tools/dbus.cpp: Don't use automatic call because we might
1989         be calling an async method: request a reply.
1990
1991 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1992
1993         * test/qt/*: Update the testcases, including testing the new
1994         functionality of sending null QByteArray and QString over the
1995         bus. Add new headertest test and restore the old
1996         qdbusxmlparser test.
1997
1998 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1999
2000         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2001         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2002
2003         * qt/examples/Makefile.am:
2004         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2005         form.
2006
2007         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2008         QByteArray() (nulls) over the bus.
2009         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2010         the one that has the signature suffix stripped.
2011         * qt/src/qdbusreply.h: Make some methods const.
2012
2013 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2014
2015         Patch from Timo Hoenig <thoenig@suse.de>.
2016
2017         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2018         required during build to EXTRA_DIST.
2019         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2020         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2021         * configure.in: Fix "make dist", take care that the Makefile for
2022         qt/dbus is being generated.
2023
2024 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2025
2026         * bus/bus.c: Fix eavesdropping on method calls
2027
2028 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2029
2030         * configure.in:
2031         * dbus/dbus-userdb-util.c:
2032         Add Solaris console owner patch from Artem Kachitchkine
2033
2034 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2035
2036         * qt/Makfile.am:
2037         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2038         reorganisation. Thanks to Timo Hoenig for pointing this out.
2039
2040 2006-06-06  Robert McQueen  <robot101@debian.org>
2041
2042         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2043           call to dbus_g_type_get_struct.
2044
2045 2006-06-06  Robert McQueen  <robot101@debian.org>
2046
2047         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2048           pointers were put into a GPtrArray-based specialised collection, and
2049           then freed along with the array. GValues which you add into
2050           collections or maps which have the NOCOPY flag set are assumed to not
2051           belong to the caller, so rather than the existing pointer-stealing
2052           semantics, they are copied instead. Given that the main consumers of
2053           this abstraction are the bindings themselves, I don't think this is
2054           too bad, but others should watch their choice of take vs set_static.
2055
2056 2006-06-06  Robert McQueen  <robot101@debian.org>
2057
2058         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2059           of g_slist_prepend not being used. Fixed copying of slist-based
2060           specialised collections, then wrote a test case and found that it was
2061           all broken. Went on to fix iterating and appending too. Good thing
2062           nobody uses this code yet.
2063
2064 2006-06-06  Robert McQueen  <robot101@debian.org>
2065
2066         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2067           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2068           are discarded without unsetting, so it makes no difference whether
2069           we take or set_static). Remove cases for G_TYPE_POINTER because
2070           there really is nothing useful we can do with them in our
2071           specialised types - we *need* boxed copy/free functions at the very
2072           least.
2073
2074 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2075
2076         * qt/dbus: Add directory. I had forgotten to add this
2077         yesterday after the move...
2078
2079         * qt/examples/Makefile.am:
2080         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2081
2082         * qt/tools/Makefile.am:
2083         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2084         Added feature to get and set properties.
2085         Added validation of service, object path and interface names.
2086
2087         * qt/tools/dbusidl2cpp.cpp: Two new features:
2088         1) Allow specifying both the header and the source file names,
2089         by separating them with a colon.
2090         2) Don't write an interface output if the -p switch wasn't
2091         given, but the -a was.
2092
2093         * qt/src/*: Fix usage of Iterators and ConstIterators.
2094         Fix shadowing of variables by other variables (-Wshadow).
2095         Fix keyword-cleanliness in headers.
2096         Fix ASCII-cast (QLatin1String, QLatin1Char).
2097         Fix validation of member names.
2098         Add extra checking of introspection data during XML parsing.
2099         Various bug fixes.
2100
2101 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2102
2103         * dbus/Makefile.am:
2104         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2105         qt/dbus/qdbus.h now.
2106
2107 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2108
2109         * configure.in: Make --disable-qt actually do
2110           something. Patch inspired by Zack Rusin.
2111
2112 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2113
2114         * qt/: Update to Subversion r548032.
2115         This includes a big reorganisation of the files inside the
2116         subdir.
2117
2118 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2119
2120         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2121         clear:  
2122         "Failed to connect to socket <host>:<port> <error>" instead of
2123         "Failed to connect to socket <host>: <error>:<port>"
2124
2125         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2126         for a tcp transport. 
2127
2128 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2129
2130         * qt/*: Update the QtDBus bindings up to revision 546310 in
2131         Subversion.
2132         This adds the dbuscpp2xml tool, that parses a C++ header and
2133         outputs a D-BUS Introspection XML.
2134
2135 2006-05-21  Havoc Pennington  <hp@redhat.com>
2136
2137         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2138         is not NULL when it shouldn't be. Also a couple of possible fixes
2139         for #4637 though I don't understand why the bug happens, to be
2140         honest... also the object constructor has an assert name != NULL
2141         and the name is only currently NULL for peer-to-peer proxies that 
2142         I don't think anyone uses? So it should be asserting.
2143         Anyway, for now at least see if we get an earlier assertion failure.
2144
2145         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2146         apparently broken code to be sure the tests fail and someone 
2147         will fix them...
2148
2149 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2150
2151         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2152         and arrays when they had a single element: has_next returns
2153         false, even before you read the element. So, instead, check
2154         the array length.
2155
2156 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2157
2158         * qt/qdbusmessage.cpp:
2159         * qt/qdbustypehelper_p.h:
2160         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2161         the list is a const-reference
2162
2163 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2164
2165         * Adding old doc patch that never got applied
2166         
2167         * dbus/bus.c (dbus_bus_add_match): Add documentation
2168
2169         * doc/dbus-specification.xml: Add documentation for the match rules
2170           and the AddMatch and RemoveMatch methods
2171
2172 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2173
2174         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2175         call (r535506)
2176
2177         * qt/dbusidl2cpp.cpp:
2178         * qt/qdbusabstractadaptor.cpp:
2179         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2180         sibling of the QDBusAbstractAdaptor objects instead of the
2181         parent. (r535848)
2182
2183         * qt/dbusidl2cpp.cpp:
2184         * qt/qdbusabstractinterface.cpp:
2185         * qt/qdbusabstractinterface.h:
2186         * qt/qdbusabstractinterface_p.h:
2187         * qt/qdbusinterface.cpp: Make properties in interfaces
2188         actually work. The code that was generated would not compile,
2189         due to moc calls to functions that did not exist. They now
2190         shall. (r536571)
2191
2192 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2193
2194         * Makefile.am:
2195         * configure.in:
2196         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2197         Thanks to Brad Hards for providing the patch
2198
2199 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2200
2201         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2202         call. (r535506)
2203
2204 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2205
2206         * qt/examples/dbus.cpp: Enhance error messages and use
2207         QDBusInterfacePtr.
2208
2209 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2210
2211         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2212         and disable the copy operators. (r533772, r534746)
2213
2214         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2215
2216         * qt/qdbusabstractinterface.cpp:
2217         * qt/qdbusabstractinterface.h: Change the default call mode to
2218         not use the event loop. Add convenience call() methods that
2219         take a CallMode parameter. (r534042)
2220
2221         * qt/qdbusconnection.h: Change the default call mode to not
2222         use the event loop. (r534042)
2223
2224         * qt/qdbusinterface.cpp:
2225         * qt/qdbusinterface.h: Add a method to tell us if the
2226         interface is valid (since we don't return a null pointer
2227         anymore) (r534099)
2228
2229         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2230         (r534101)
2231
2232         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2233         function in two so taht we get the chance to introspect
2234         without having a QDBusMessage (r534102)
2235
2236         * qt/qdbusbus.h:
2237         * qt/qdbusconnection.cpp:
2238         * qt/qdbusconnection_p.h:
2239         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2240         avoid a round-trip to the server when attempting to introspect
2241         one of our own objects. Also make sure the filter functions
2242         match the empty interface as well. (r534108)
2243         Don't keep the connection names. Instead, trust the unique
2244         connection name (r534111)
2245         Remove event loop usage (r534112)
2246
2247 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2248
2249         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2250         Brad Hards.
2251
2252 2006-04-28  Robert McQueen  <robot101@debian.org>
2253
2254         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2255         any order, making it easier for people who inherit from this
2256         object.
2257
2258 2006-04-28  Robert McQueen  <robot101@debian.org>
2259
2260         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2261         of memory from within pointer arrays and lists. Fixes bug #6300.
2262
2263 2006-04-28  Robert McQueen  <robot101@debian.org>
2264
2265         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2266         generating struct signatures. Fixes bug #6083.
2267
2268 2006-04-28  Robert McQueen  <robot101@debian.org>
2269
2270         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2271         to qdbusconnection_p.moc.
2272
2273 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2274
2275         * README, INSTALL: Doc fixes
2276         Patch from Brad Hards <bradh at frogmouth.net>
2277
2278 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2279
2280         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2281         the dynamic meta object. No need to guess which interface to
2282         call.
2283
2284 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2285
2286         * qt/qdbusconnection_p.h:
2287         * qt/qdbusmetaobject.cpp:
2288         * qt/qdbusmetaobject_p.h:
2289         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2290         for the dynamic meta object. No need to guess which
2291         interface to call.
2292         * qt/qdbusabstractinterface_p.h:
2293         * qt/qdbusconnection.cpp:
2294         * qt/qdbusintegrator.cpp:
2295         * qt/qdbusinterface.cpp:
2296         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2297         Add a QDBusRef that looks and behaves like DCOPRef.
2298
2299 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2300
2301         * dbus/dbus-connection.c: Interfaces are optional in method
2302         calls, so don't give up if the interface parameter is NULL.
2303         Patch reviewed by Havoc Pennington.
2304
2305 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2306
2307         * qt/qdbusreply.h: Add default constructor and operator=
2308           (r532625)
2309         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2310           in public headers (r532952)
2311         * qt/qdbusabstractinterface.cpp:
2312         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2313           make it the default (r532951)
2314
2315 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2316
2317         * dbus/dbus-connection.c: Fix asserts
2318         Patch from Tim Moloney <t.moloney at verizon.net>
2319
2320 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2321
2322         * mono/Connection.cs, mono/Message.cs: Check Target type
2323         Patch from Aaron Bockover (abockover at novell.com)
2324
2325 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2326
2327         * INSTALL: fine-tune the requirements for the Qt4 binding.
2328
2329 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2330
2331         * tools/dbus-print-message.c: Added support for printing of all 
2332           remaining data types. Fixed logic for indentation of compound
2333           data types.
2334         
2335 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2336
2337         * INSTALL: fill out content of file providing DBus specific
2338           build installations, followed by generic Auto* INSTALL file
2339           content
2340         
2341 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2342
2343         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2344           Patch by Stefan Eilers. (r529537)
2345
2346 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2347
2348         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2349           contents (r528208)
2350
2351 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2352
2353         * qt/Makefile.am: fix the dependency for
2354           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2355           not in qdbusconnection.cpp.
2356           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2357           spotting this.
2358
2359 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2360
2361         * qt/examples/listnames.cpp:
2362         * qt/examples/Makefile.am: Three ways to list the names on the
2363           bus.
2364
2365 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2366
2367         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2368           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2369
2370 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2371
2372         Merge from Subversion:
2373         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2374           something that exists (r526315)
2375         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2376           slots/signals (r526316)
2377         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2378           also return an unknown-method error if the parameters don't
2379           match for org.freedesktop.DBus.Properties. (r526842)
2380         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2381         * qt/qdbusintegrator.cpp: Restore the proper order of
2382           delivery: don't make method returns be delivered on priority
2383           (r528150)
2384
2385 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2386
2387         * configure.in qt/Makefile.am: add qt/examples
2388         * qt/examples: Add QtDBus example programs:
2389           - hello: Hello, World
2390           - ping: Simple method-calling program
2391           - pong: Simple object-exporting program (not using adaptors)
2392           - complexping: Interactive method-calling program 
2393                 (also gets and sets properties).
2394           - complexpong: Sample program exporting methods, signals and
2395                 properties, using adaptors.
2396           - dbus: Simple implementation of a generic method-calling
2397                 program, similar to 'dbus-send', but with semantics
2398                 similar to 'dcop'.
2399           - chat: Simplistic chat program, implemented using signals
2400                 and the system bus. Looks like IRC.
2401
2402 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2403
2404         * configure.in: Detect QtGui (necessary for one of the
2405           example programs). Note: this increases the minimum required
2406           version of Qt to 4.1.3.
2407
2408 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2409
2410         * test/qt/*: Sync with KDE Subversion revision 523647.
2411         Update the testcases to the new API. Remove testcases for
2412         classes that are no longer public or have been removed.
2413
2414 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2415
2416         * qt/*: 
2417         * dbus/qdbus.h: Sync with KDE Subversion revision
2418         523647. Hopefully, this will be the last of the
2419         source-incompatible changes. Documentation has been improved;
2420         support for QList<basic-types> has been added; QDBusObject is
2421         gone; QDBus(Abstract)Interface is now a QObject with
2422         auto-generated meta-object; QDBusIntrospection is marked
2423         private, since QMetaObject can be used now; lots of bugfixes.
2424
2425 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2426
2427         Patch from Milosz Derezynski <internalerror at gmail.com>
2428         
2429         * configure.in:
2430         Output the service directory in the configure summary
2431
2432         * dbus-1.pc.in:
2433         Add session_bus_services_dir
2434
2435 2006-03-10  Ross Burton  <ross@openedhand.com>
2436
2437         * tools/dbus-print-message.c:
2438         Add support for object paths and signatures.
2439
2440 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2441
2442         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2443         config reload.
2444         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2445         information caches
2446         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2447         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2448         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2449         * dbus/dbus-userdb.h: Add function to flush all user/group information
2450         caches.
2451
2452 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2453
2454         * qt/dbusidl2cpp.cpp:
2455         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2456         for dcopidl2cpp, found in the KDE installations (or the more
2457         modern kalyptus): generate Qt4 C++ code for the input XML
2458         introspection. Currently no IDL parsing.
2459
2460 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2461
2462         * test/qt/*: Update the self-tests.
2463
2464 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2465
2466         * qt/*: 
2467         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2468         represents the first feature-complete version of the Qt4
2469         bindings since I took ove maintainership.
2470
2471 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2472
2473         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2474         dir. This is C++, so we can't use the DBus ones.
2475
2476 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2477
2478         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2479         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2480
2481 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2482
2483         * dbus/dbus-connection.c: 
2484         (_dbus_connection_block_pending_call):
2485         Check to see if our data has already been read off the connection
2486         by another blocking pending call before we block in poll.
2487         (check_for_reply_and_update_dispatch_unlocked):
2488         Code taken from _dbus_connection_block_pending_call - checks for
2489         an already read reply and updates the dispatch if there is one.
2490
2491         * test/name-test/test-pending-call-dispatch.c:
2492         New test for making sure we don't get stuck polling a 
2493         dbus connection which has no data on the socket when
2494         blocking out of order on two or more pending calls.
2495
2496 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2497
2498         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2499         make/automake don't detect that we're talking about the same
2500         .lo file if I specify the full path to the source files.
2501
2502 2006-02-26  Havoc Pennington  <hp@redhat.com>
2503
2504         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2505
2506         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2507         session bus variable is unset, suggest "man dbus-launch" and "man
2508         dbus-daemon" to figure out how to fix the problem
2509
2510 2006-02-25  Havoc Pennington  <hp@redhat.com>
2511
2512         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2513         should make this thing use the new glib options parser
2514
2515 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2516
2517         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2518         .lo files taking moc sources.
2519
2520 2006-02-25  Havoc Pennington  <hp@redhat.com>
2521
2522         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2523         and install it as a public header
2524
2525 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2526
2527         * Released 0.61
2528
2529 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2530         
2531         * proxies.py: Fix the callchain
2532
2533 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2534         
2535         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2536
2537         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2538         dbus/dbus-sysdeps.c
2539
2540         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2541         call _dbus_group_info_free_allocated which causes infinite loop,
2542         correctly call _dbus_group_info_free
2543
2544 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2545
2546         * qt/qdbusinterface_p.h:
2547         * qt/qdbusinterface.cpp: Use the standard
2548         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2549         calls instead of creating one for us.
2550
2551         * qt/qdbusconnection_p.h:
2552         * qt/qdbusintegrator.cpp: Remove debugging code.
2553
2554         * qt/qdbusintegrator.cpp:
2555         * qt/qdbusmessage.cpp:
2556         * qt/qdbusmessage_p.h:
2557         * qt/qdbusmessage.h: Change the behaviour of automatic
2558         reply-sending: now a reply is always sent, unless the caller
2559         didn't request one or if the user slot has already sent one.
2560
2561 2006-02-16  Robert McQueen  <robot101@debian.org>
2562
2563         * configure.in: Patch from Debian packages by Sjoerd Simons
2564         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2565         arguments so it's possible to build both bindings in the
2566         same tree.
2567
2568         * qt/Makefile.am: Fix truncated value so that make dist works.
2569
2570 2006-02-16  Robert McQueen  <robot101@debian.org>
2571
2572         * acinclude.m4, configure.in: Patch from Brad Hards
2573         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2574         improving quoting, re-ordering a few checks, and a few other
2575         aesthetic tidy-ups.
2576
2577 2006-02-16  Robert McQueen  <robot101@debian.org>
2578
2579         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2580         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2581         assertion that the next element to read from the iter is fixed in
2582         size. This is not the case when you are at the end of the iter,
2583         because the next element type is INVALID.
2584
2585         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2586         a bogus assert which means that you may not initialise a 0-length
2587         string unless you provide a non-NULL pointer. This prevented
2588         you from marshalling messages containing zero-length arrays in
2589         some cases.
2590
2591         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2592         from Rob to correct bogus asserts when trying to demarshal an
2593         array and get_fixed_array got you 0 elements. Append nothing to
2594         the GArray in this case.
2595
2596         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2597         an empty array via the glib bindings. Without all of the above
2598         patches, this new test fails.
2599
2600 2006-02-16  Robert McQueen  <robot101@debian.org>
2601
2602         * glib/dbus-gmain.c: Make the previous commit compile.
2603
2604         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2605         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2606         specify sender_keyword="foo", path_keyword="bar" when adding
2607         a signal listener, so that you can bind to signals generically
2608         but still do something useful in your callback.
2609
2610         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2611         chars so that they're not cast to chars and made negative. Thanks
2612         to Jakub Stachowski for reporting this and testing the fix.
2613
2614 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2615
2616         * dbus/dbus-glib.h:
2617         * glib/dbus-gmain.h:
2618         (dbus_g_connection_open): new method for openning
2619         a connection to an arbitrary address in the glib bindings
2620
2621         * ChangeLog: checkin last entry which doesn't seem to be commited
2622
2623 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2624
2625         * tools/dbus-launch.c: Fixed sh syntax output
2626
2627 2006-02-13  Robert McQueen  <robot101@debian.org>
2628
2629         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2630         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2631         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2632         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2633         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2634         missing piece of the glib bindings jigsaw puzzle. This modifies
2635         the existing specialised types to have N type parameters (rather
2636         than the current 1 or 2 for arrays and dictionaries respectively).
2637         You can then use this to get a glib type to represent any arbitrary
2638         D-Bus struct type using dbus_g_type_get_struct. The only
2639         implementation of these types is with GValueArrays as before,
2640         but it's now possible to store these in arrays, emit them in
2641         signals, etc.
2642
2643 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2644
2645         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2646         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2647         <thiago.macieira at trolltech.com>
2648
2649 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2650
2651         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2652         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2653
2654 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2655
2656         * bus/connection.c (bus_connections_expect_reply): Make
2657         pending reply limit not common to all connections (Bug #5416)
2658         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2659
2660 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2661
2662         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2663
2664 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2665
2666         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2667         patch from Doug Goldstein <cardoe at gentoo.org>
2668
2669 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2670
2671         * mono/Arguments.cs: Fix a magic number in the mono bindings
2672         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2673
2674 2006-01-27  Robert McQueen  <robot101@debian.org>
2675
2676         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2677         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2678         when generating the client-side methods, instead of overloading
2679         CSymbol which broke everything horribly. My apologies.
2680
2681 2006-01-27  Robert McQueen  <robot101@debian.org>
2682
2683         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2684         by me and Rob Taylor to add a simple_free function to D-Bus map
2685         and collection types, which allows those types which can be freed
2686         with a GDestroyNotify (such as GHashTables and GArrays, but not
2687         GPtrArrays) to be stored as the values in hashtables.
2688
2689         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2690         Patch by Rob Taylor to add nested dicts to the glib tests to check
2691         the above code works, and appears not to leak when called repeatedly.
2692
2693 2006-01-27  Robert McQueen  <robot101@debian.org>
2694
2695         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2696         to free a D-Bus allocated string with dbus_free () instead of
2697         g_free ().
2698
2699 2006-01-27  Iain Holmes  <iain@openedhand.com>
2700
2701         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2702         method from being called multiple times.
2703
2704 2006-01-19  Robert McQueen  <robot101@debian.org>
2705
2706         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2707         <rob.taylor@collabora.co.uk> to add support for generating bindings
2708         to arrays that are represented as GPtrArrays rather than GArrays (ie
2709         size-variable things, such as strings, objects, structs, etc).
2710
2711 2006-01-05  Robert McQueen  <robot101@debian.org>
2712
2713         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2714         <ricardo.kekki@movial.fi> to make it possible to inherit from
2715         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2716         a private part, and moving the setting of the DBusGProxyManager into a
2717         connection property, allowing proper GObject construction.
2718
2719 2006-01-05  Robert McQueen  <robot101@debian.org>
2720
2721         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2722         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2723         annotations when generating glib client bindings.
2724
2725 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2726
2727         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2728
2729         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2730
2731 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2732
2733         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2734
2735 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2736
2737         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2738
2739 2005-12-19  Ross Burton  <ross@openedhand.com>
2740
2741         * doc/dbus-tutorial.xml:
2742         Document the Glib client-side bindings, and list all possible annotations.
2743
2744 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2745
2746         * dbus/bus.c (dbus_bus_release_name): Add documentation
2747
2748 2005-12-06  Robert McQueen  <robot101@debian.org>
2749
2750         * python/service.py: s/sucessful/successful/ so we're allocating to
2751         and reading from the same variable. Oops.
2752
2753 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2754
2755         * Released 0.60
2756
2757 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2758
2759         * test/qt/Makefile.am: build from srcdir
2760
2761         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2762         Note - this code is wrong and needs to be fixed by the Qt binding
2763         developers.  The flags should be treated as bitfields and not enums.
2764
2765         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2766
2767 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2768
2769         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2770           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2771           in production code
2772
2773 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2774
2775         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2776         method for getting messages off the bus in the absence of a
2777         mainloop.  This method is much like 
2778         dbus_connection_read_write_dispatch except it does not dispatch
2779         the messages to a registered filter function.  Instead it
2780         allows a developer to process messages by directly popping
2781         them off the bus.
2782
2783 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2784
2785         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2786         the parser to continue instead of returning error
2787         (bus_desktop_file_load): Do not free parser data when
2788         parse_section_start or parse_key_value fails because it was 
2789         already freed by parser_free (patch from Carlos Garcia Campos  
2790         <carlosgc at gnome.org>)
2791
2792 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2793
2794         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2795         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2796         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2797         test/test-segfault.c, test/test-utils.c,
2798         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2799         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2800         Various cleanup of dead code and compiler warnings (patch from
2801         Kjartan Maraas <kmaraas at gnome.org>) 
2802
2803 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2804
2805         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2806         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2807
2808 2005-11-27  Robert McQueen  <robot101@debian.org>
2809
2810         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2811         part of the preceding one. Oops. Merge patch by Johan Hedberg
2812         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2813         on big-endian platforms.
2814
2815         * test/python/test-client.py: Add some 16-bit integers to the test
2816         values.
2817
2818 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2819
2820         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2821         method return message for property getters
2822
2823 2005-11-27  Robert McQueen  <robot101@debian.org>
2824
2825         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2826         with type v of an instance of dbus.Variant(foo, type='x') caused
2827         it to be boxed twice before sending over the bus.
2828
2829         * python/dbus_bindings.pyx, python/service.py,
2830         test/python/test-client.py: Update the constants for the new
2831         request_name flags, and update comments/test cases now that queueing
2832         is the default action.
2833
2834 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2835
2836         * configure.in:
2837         - Change version to 0.60 for impending release
2838         - upped the sonames because of ABI and API breakage
2839
2840 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2841
2842         * configure.in: Add test/name-test/Makefile to the generated
2843         Makefile list
2844
2845         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2846         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2847         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2848         not to queue an ower if it can't be the primary owner
2849
2850         * bus/bus.h: Add new internal BusOwner struct
2851
2852         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2853         to bus_registry_ensure and don't set the prohibit_replacement flag
2854         since they are now set per BusOwner and not per name.
2855         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2856         that returns the list of connections in a name's connection queue
2857         
2858         * bus/services.c (struct BusService): remove prohibit_replacement field
2859         (struct BusOwner): new struct for keeping track of queued connections
2860         and their associated flags for the queue
2861         (struct BusRegistry): add a BusOwner memory pool
2862         (bus_registry_new): initialize the BusOwner memory pool
2863         (bus_registry_unref): free the BusOwner memory pool
2864         (_bus_service_find_owner_link): new internal method for
2865         searching the queue for a specific connection
2866         (bus_owner_set_flags): new method for adding setting the flags on a
2867         bus owner
2868         (bus_owner_new): new method that creates a BusOwner object from the
2869         pool and sets its flags
2870         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2871         (bus_registry_ensure): Add the flags parameter
2872         (bus_registry_acquire_service): Switch from using raw connections to
2873         using the BusOwner struct
2874         Add new state machine for dealing with the new set of flags
2875         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2876         cancel_ownership, free_ownership_cancel_data, 
2877         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2878         restore_ownership, free_ownership_restore_data, 
2879         add_restore_ownership_to_transaction): Switch to using BusOwner 
2880         instead of raw connections
2881         (bus_service_add_owner): Add flags parameter
2882         Switch to using BusOwner instead of raw connections
2883         Add state machine for dealing with the new set of flags
2884         (bus_service_swap_owner): Swaps the first and second owners in the
2885         queue.  Used to make sure proper signals are sent when a service looses 
2886         or gains primary ownership.  We never insert an owner at the top of the
2887         queue.  Instead we insert it in the second position and then swap.
2888         (bus_service_remove_owner): Remove the owner from the queue sending
2889         out the NameLost and NameOwnerChanged signals if the we were the 
2890         primary owner
2891         (bus_service_get_primary_owners_connection): New method that extracts
2892         the connection from the primary owner
2893         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2894         connection
2895         (bus_service_get_allow_replacement): Changed from the old 
2896         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2897         primary owner and returns if it can be replaced or not
2898         (bus_service_set_prohibit_replacement): removed
2899         (bus_service_has_owner): returns TRUE if and owner with
2900         the specified connection exists in the queue
2901         
2902         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2903         method that only compiles if tests are enabled.  Allows us to get the 
2904         unique name of a connection so we can check it against the queue when
2905         doing regression tests
2906
2907         * bus/activation.c (bus_activation_send_pending_auto_activate),
2908         bus/dispatch.c (bus_dispatch),  
2909         bus/driver.c (bus_driver_handle_get_service_owner, 
2910         bus_driver_handle_get_connection_unix_user, 
2911         bus_driver_handle_get_connection_unix_process_id,
2912         bus_driver_handle_get_connection_selinux_security_context),
2913         bus/signals.c (connection_is_primary_owner): 
2914         use bus_service_get_primary_owners_connection instead of
2915         bus_service_get_primary_owner
2916
2917         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2918         _dbus_listen_unix_socket): Calculate the length of the socket
2919         path and use that instead of using a fixed length which was
2920         causing socket names to contain many trailing Nul bytes.
2921
2922         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2923         (dbus_g_method_get_sender): New method for extracting the sender 
2924         from a DBusGMethodInvocation
2925         (dbus_g_method_return_get_reply): changed name to 
2926         dbus_g_method_get_reply
2927         (dbus_g_method_return_send_reply): changed name to
2928         dbus_g_method_send reply
2929
2930         * doc/dbus-specification.xml: New docs that describe how the new
2931         queueing system works and talks about the changes to the how
2932         we specify socket names
2933
2934         * glib/examples/example-service.c, 
2935         glib/examples/example-signal-emitter.c,
2936         glib/examples/statemachine/statemachine-server.c:
2937         Changed the RequestName flags to the new system
2938
2939         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2940         regression test suite for testing various states of the new
2941         queueing system
2942         
2943 2005-11-15  Robert McQueen  <robot101@debian.org>
2944
2945         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2946         Taylor to add two methods, dbus_g_method_return_get_reply and
2947         dbus_g_method_return_send_reply, to allow you to get the reply
2948         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2949         and send it. The GLib bindings can't marshal a return value of
2950         something like a(s) if the array is empty - ultimately they should be
2951         made to heed the signature of the out arguments as the Python bindings
2952         now can, but this is a workable interim solution which might have
2953         other applications.
2954
2955 2005-11-15  Robert McQueen  <robot101@debian.org>
2956
2957         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2958         method to org.freedesktop.DBus to release a bus name or give up
2959         waiting in the queue for it.
2960
2961         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2962         dbus_bus_release_name method to send the ReleaseName method calls.
2963         Add constants for the return values to dbus/dbus-shared.h.
2964
2965         * doc/dbus-specification.xml: Document the new ReleaseName method
2966         in the specification.
2967
2968         * python/dbus_bindings.pyx: Add a low-level python binding for the
2969         release name method.
2970
2971         * python/exceptions.py, python/service.py: Make freeing BusName
2972         objects release the name. Add a NameExistsException, and fix a
2973         bug with creating UnknownMethodException.
2974
2975         * test/python/test-client.py: Add tests for freeing BusName
2976         objects causing names to be released.
2977
2978 2005-11-14  Robert McQueen  <robot101@debian.org>
2979
2980         * python/service.py: Include the traceback in the error reply when we
2981         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2982
2983 2005-11-14  David Zeuthen  <davidz@redhat.com>
2984
2985         Patch from Timo Hoenig <thoenig@suse.de>.
2986
2987         * bus/bus.c: I've recently investigated why the automatic reload
2988         of configuration files does not work as expected.
2989
2990         Currently, reloading configuration files does only work when
2991         running dbus-daemon with --nodaemon.  If we are running as daemon
2992         we're hitting a dnotify bug once we fork the process.
2993
2994         We're initializing the dnotify fds before calling fork().  Once
2995         the child process forked it does still have the fds (and they
2996         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2997         getting SIGIO as changes are made to the configuration files.
2998
2999         The attached patch moves the initialization of the dnotify fds to
3000         process_config_postinit().  This is safe for all current code
3001         paths and solves the dnotify disfunction.  If we're running
3002         dbus-daemon as daemon the fds for dnotify are now being
3003         initialized after fork() for the child process.
3004
3005         * configure.in: The current configure.in check for dnotify probes
3006         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3007         match for 'xlinux', too. Additionally I have adapted the configure
3008         option's style to match with the others.
3009
3010 2005-11-14  Robert McQueen  <robot101@debian.org>
3011
3012         * python/decorators.py, python/service.py: Add a new argument to the
3013         dbus.service.method decorator called sender_keyword, which if set,
3014         specifies the name of an argument which will be provided the bus
3015         name of the method caller.
3016
3017         * test/python/test-client.py, test/python/test-service.py: Add a
3018         method and test to check the sender_keyword functionality.
3019
3020 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3021
3022         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3023         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3024         Simons <sjoerd at luon.net>)
3025
3026         * AUTHORS: Add Robert McQueen for his work on the Python
3027         Bindings and other parts of D-Bus
3028
3029 2005-11-07  Robert McQueen  <robot101@debian.org>
3030
3031         * python/decorators.py: Change emit_signal function to use the
3032         signature annotation of the signal when marhsalling the arguments from
3033         the service. Fix a bug where the code checking signature length
3034         against argument length referenced the wrong variable.
3035
3036         * python/introspect_parser.py: Avoid adding the type signature of
3037         signal arguments to any methods which occur after them in the
3038         introspection data (!) by making the parser a little more careful
3039         about its current state.
3040
3041         * python/service.py: Remove debug prints from last commit (again :D).
3042
3043         * test/python/test-client.py, test/python/test-service.py: Add test
3044         signals with signature decorators to test the strict marshalling code
3045         gives errors at the right time. Could do with checking the signals
3046         actually get emitted too, given that the test does nothing with
3047         signals at the moment...
3048
3049 2005-11-07  Robert McQueen  <robot101@debian.org>
3050
3051         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3052         instances to stop madness of creating new instances representing
3053         the same bus connection all the time, rendering any tracking of
3054         match rules and bus names quite meaningless. Caught a bug where
3055         the private argument to SessionBus() and friends was being passed
3056         in as use_default_mainloop by mistake. Still some problems with
3057         multiple dbus_binding.Connection instances representing the same
3058         low-level connection (eg when you use both SessionBus() and
3059         StarterBus() in same process), but it's a lot better now than it
3060         was.
3061
3062         * python/dbus_bindings.pyx: Add constants with the return values
3063         for bus_request_name().
3064
3065         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3066         and retrieve the same instances for the same name, so deletion can be
3067         done with refcounting. Also now throws some kind of error if you
3068         don't actually get the name you requested, unlike previously...
3069
3070         * test/python/test-client.py: Add tests for instance caching of buses
3071         and bus name objects.
3072
3073 2005-11-04  Robert McQueen  <robot101@debian.org>
3074
3075         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3076         marshalling of boolean values. Add some booleans to the values in
3077         the test client.
3078
3079         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3080         argument to the dbus.service.method decorator, which allows you to
3081         name arguments to take two callback functions for replying with
3082         return values or an exception.
3083
3084         * test/python/test-client.py, test/python/test-service.py: Add test
3085         case using asynchronous method reply functions, both return values and
3086         errors, and from within both the function itself and from a mainloop
3087         callback.
3088
3089         * python/decorators.py, python/service.py: Perform checking that the
3090         number of method/signal arguments matches the number of types in the
3091         signature at class loading time, not when you first introspect the
3092         class.
3093
3094         * python/service.py: Remove debug print left by the last commit.
3095
3096 2005-11-03  Robert McQueen  <robot101@debian.org>
3097
3098         * python/service.py: Heavy refactoring of method invocation, with
3099         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3100         in favour of a new _message_cb that uses seperate functions for
3101         looking up the method to call, marshalling the return values, and
3102         sending exceptions as errors, and is easier to follow as a
3103         consequence.  Fixes some corner cases about returning things that
3104         don't match your declared out_signature, allows exceptions to define
3105         _dbus_error_name and have it be sent over the bus as the error name,
3106         and paves the way for cool stuff like heeding the message no reply
3107         flag, asynchronous method implementations, informing the method of the
3108         sender, and including backtraces in the error messages.
3109
3110         * test/python/test-client.py: Catch and print exceptions thrown in the
3111         async callback tests, rather than passing them to the low-level
3112         bindings to be ignored in a noisy and frustrating manner.
3113
3114 2005-11-03  Robert McQueen  <robot101@debian.org>
3115
3116         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3117         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3118         tweak others to be consistent.
3119
3120         * test/python/test-client.py: Tweak output of testInheritance.
3121
3122 2005-10-29  Robert McQueen  <robot101@debian.org>
3123
3124         * python/service.py: Major changes to allow multiple inheritance
3125         from classes that define D-Bus interfaces:
3126         
3127          1. Create a new Interface class which is the parent class of
3128             Object, and make the ObjectType metaclass into InterfaceType.
3129         
3130          2. Patch written with Rob Taylor to replace use of method_vtable
3131             with code that walks the class's __MRO__ (method resolution order)
3132             to behave like Python does when invoking methods and allow
3133             overriding as you'd expect. Code is quite tricky because
3134             we have to find two methods, the one to invoke which has the
3135             right name and isn't decorated with the /wrong/ interface,
3136             and the one to pick up the signatures from which is decorated
3137             with the right interface.
3138         
3139             The same caveats apply as to normal multiple inheritance -
3140             this has undefined behaviour if you try and inherit from two
3141             classes that define a method with the same name but are
3142             decorated with different interfaces. You should decorate
3143             your overriding method with the interface you want.
3144         
3145          3. Replace grungy introspection XML generation code in the metaclass
3146             with dictionaries that cope correctly with multiple inheritance
3147             and the overriding of methods. This also uses the signature
3148             decorations to provide correct introspection data, including
3149             the debut appearance of the types of your return values. :D
3150
3151         * test/python/test-client.py, test/python/test-service.py: Add a test
3152         case to try invoking an method that overrides one inherited from a
3153         D-Bus interface class.
3154
3155 2005-10-29  Robert McQueen  <robot101@debian.org>
3156
3157         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3158         Add checking for the end of struct character when marshalling a
3159         struct in MessageIter.append_strict.
3160
3161         * python/examples/example-service.py,
3162         python/examples/gconf-proxy-service.py,
3163         python/examples/gconf-proxy-service2.py: Update to use gobject
3164         mainloop directly rather than appearing to depend on gtk.
3165
3166         * python/test/test-client.py, python/test/test-server.py: Remove
3167         obsolete and broken test scripts for old bindings. We have up to date
3168         and working tests in test/python/.
3169
3170 2005-10-29  Robert McQueen  <robot101@debian.org>
3171
3172         * python/decorators.py: Add optional arguments to the method and
3173         signal decorators to allow you to specify the signature of arguments
3174         and return values. Preserve the doc strings of signal functions in the
3175         decorated version, for pydoc and friends.
3176
3177         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3178         parse_signature_block function with an iterable dbus.Signature()
3179         type. Fix a bug in MessageIter.append_strict where you could append
3180         anything by claiming it was a string.
3181
3182         * python/service.py: Use the out_signature decoration on methods to
3183         marshal return values, meaning you no longer require dbus.Array()
3184         or dbus.Dictionary() to indicate the type when returning empty
3185         arrays or dictionaries. Fix a bug where exceptions which are defined
3186         in __main__ are not turned into error replies.
3187
3188         * test/python/test-client.py, test/python/test-service.py: Add test
3189         for correct marshalling of return values according to out_signature.
3190         Fix a bug in the async call test where the error_handler is missing a
3191         self argument.
3192
3193 2005-10-29  Robert McQueen  <robot101@debian.org>
3194
3195         * glib/Makefile.am, glib/examples/Makefile.am,
3196         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3197         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3198
3199         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3200
3201         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3202         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3203         the command line.
3204
3205 2005-10-27  Ross Burton  <ross@openedhand.com>
3206
3207         * dbus/dbus-marshal-header.c:
3208         Remove dead code.
3209
3210         * glib/dbus-gobject.c:
3211         Stop compiler warning.
3212
3213 2005-10-25  Ross Burton  <ross@openedhand.com>
3214
3215         * dbus/dbus-auth.c:
3216         * dbus/dbus-server-unix.c:
3217         * dbus/dbus-transport-unix.c:
3218         * glib/dbus-gmain.c:
3219         * glib/dbus-gobject.c:
3220         Add some const keywords.
3221
3222 2005-10-25  Ross Burton  <ross@openedhand.com>
3223
3224         * doc/dbus-specification.xml:
3225         Document the NoReply annotation.
3226
3227         * glib/dbus-binding-tool-glib.h:
3228         * glib/dbus-binding-tool-glib.c:
3229         Respect the NoReply annotation.
3230
3231 2005-10-24  Robert McQueen <robot101@debian.org>
3232
3233         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3234         derive from unicode instead of str, and encode/decode UTF-8 when
3235         marshalling/unmarshalling bus messages
3236
3237         * python/introspect_parser.py: encode introspection data as UTF-8
3238         before passing the buffer into libxml2
3239
3240         * test/python/test-client.py: add unicode test strings
3241
3242         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3243         ignore generated python test files
3244
3245 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3246
3247         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3248         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3249         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3250
3251         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3252         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3253         when constructing struct signatures
3254
3255         * python/_dbus.py (Bus): handle private connections using the
3256         private keyword in the constructor. defaults to private=False
3257         (Bus::close): new method to close a connection to the bus
3258
3259         * python/dbus_bindings.pyx (Connection::close): renamed method
3260         was previously called disconnect
3261         (bus_get): now supports getting a private connection
3262
3263         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3264         keyword is set to True.  if it is, execute the method without waiting
3265         for a reply
3266         (ProxyObject::_introspect_execute_queue): new method for executing
3267         all the pending methods that were waiting for the introspect to
3268         finish.  this is called when introspect either succeeds or fails
3269         (ProxyObject::_introspect_error_handler): call queued methods
3270
3271 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3272
3273         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3274         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3275
3276         * python/service.py (Object::_message_cb): handle exceptions correctly
3277         by sending them over the wire to the calling app.  This makes sure
3278         the client returns immediately instead of waiting the 15 seconds to
3279         timeout.
3280
3281         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3282         Add a test to benchmark how long it takes to introspect a service and 
3283         call a method which returns a large element (pretty fast)
3284
3285         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3286         method which pushes a lot of data
3287
3288 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3289
3290         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3291         reclaim memory outside of the loop and use del istead of just setting
3292         the key to None
3293
3294 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3295
3296         * python/service.py (ObjectType::_reflect_on_signal): Always close
3297         signal tag even when there are no arguments
3298
3299 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3300
3301         * configure.in: Set mono, mono-docs and Qt3 to default
3302         to no instead of auto when building.  These bindings do not
3303         have full time maintainers and will not be supported for the
3304         1.0 release.
3305
3306 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3307
3308         patches from Michael Krivoruchko <misha at sun.com>: 
3309         
3310         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3311         _dbus_connection_message_sent, 
3312         _dbus_connection_send_preallocated_unlocked_no_update, 
3313         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3314         is NULL when calling _dbus_verbose
3315
3316         * configure.in: check for functions getpeerucred and getpeereid
3317
3318         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3319         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3320         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3321         Patch was only tested on Solaris 10 x86 so it might be issues
3322         with other platforms (i.e. BSDs and MacOSX)
3323         
3324
3325 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3326
3327         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3328         instead of marshal basic so we can handle recursive types in a variant
3329
3330         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3331         in variants
3332
3333         * test/glib/test-service-glib.c, test-service-glib.xml
3334         (my_object_echo_variant [EchoVariant], 
3335         my_object_process_variant_of_array_of_ints123
3336         [ProcessVariantOfArrayOfInts123]): 
3337         Add two test methods
3338
3339         * python/introspect_parser.py: New module for parsing introspect
3340         data.
3341
3342         * python/dbus_bindings.pyx:
3343         (various places): when throwing errors fix to use errormsg instead 
3344         of message local variable because Pyrex can get confused with other 
3345         message variables (initial patch by Robert McQueen 
3346         <robert.mcqueen at collabora.co.uk>)
3347         (MessageIter::parse_signature_block): new method for getting the next
3348         block in a signiture.
3349         (MessageIter::append_strict): new method for appending values strictly
3350         using the passed in signature instead of guessing at the type
3351         (MessageItter:: append_dict, append_struct, append_array): use 
3352         signatures to marshal children if the signature is available
3353         
3354         * python/exceptions.py (IntrospectionParserException): new exception
3355
3356         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3357         introspected signatures if available, else we fall back to the
3358         old way of doing things.
3359         (ProxyObject::_introspect_reply_handler ): parse introspection data
3360         
3361         * python/service.py (ObjectType::_reflect_on_method): Properly
3362         terminate <method> if there are no args in the reflection data
3363
3364         * test/python/test-client.py: add tests for talking with the GLib
3365         test server.  This gives us better coverage for introspection since
3366         python to python will always generate arguments as variants.  It also
3367         allows us to test the robustness of the GLib bindings and interlanguage
3368         communications.
3369
3370         
3371 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3372
3373         * bus/driver.c (bus_driver_handle_introspect): Add signals
3374         to the introspect data. (patch from Daniel P. Berrange 
3375         <dan at berrange.com>)
3376
3377         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3378         
3379         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3380         _dbus_connection_run_builtin_filters): Changed these to
3381         be unlock_no_update functions and call 
3382         _dbus_connection_send_unlocked_no_update instead of
3383         dbus_connection_send to avoid locking errors.
3384         
3385         * doc/TODO: Removed the make Ping test TODO
3386         
3387 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3388
3389         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3390         We now copy the message from a DBusError and then free 
3391         the error object befor throwing the error
3392
3393         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3394         DBusBindingOutputMode enum which was causing a warning.
3395         #include <time.h> so using time_t is explicitly defined
3396
3397 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3398
3399         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3400         - dbus/dbus-bus.c
3401         (internal_bus_get): new method that take over the heavy lifting
3402         of dbus_bus_get and adds the ability to get a private connection
3403         to the bus
3404         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3405         interface as in previous versions
3406         (dbus_bus_get_private): new method that is a wrapper to 
3407         internal_bus_get to get a private connection to the bus
3408
3409         - dbus/dbus-bus.h
3410         (dbus_bus_get_private): add as a public libdbus interface
3411
3412         - dbus-1.pc.in: output system_bus_default_address and 
3413         sysconfdir variables so apps can use them when compiling
3414
3415 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3416         * dbus/qt: New Qt bindings
3417
3418 2005-09-12  Waldo Bastian  <bastian@kde.org>
3419
3420         * dbus/dbus-marshal-validate.c,
3421         doc/dbus-specification.xml, test/Makefile.am,
3422         test/test-names.c: allow hyphens in bus names.
3423
3424 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3425
3426         * test/data/auth/fallback.auth-script: we don't
3427         retry the EXTERNAL method when we know its going
3428         to fail anymore.
3429
3430 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3431
3432         * dbus/dbus-connection-internal.h: rename
3433         (add|remove|toggle)_(watch|timeout) to unlocked()
3434         
3435         * dbus/dbus-connection.c: ditto.
3436         
3437         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3438         Update some callers for the renaming.
3439
3440 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3441
3442         * dbus/dbus-auth.c: (record_mechanisms): don't
3443         retry the first auth mechanism because we know
3444         we're just going to get rejected again.
3445         
3446         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3447         Fix thinko ... and what a nasty little bugger to
3448         track down you were ...
3449
3450         * dbus/dbus-connection.c:
3451         (_dbus_connection_add_watch),
3452         (_dbus_connection_remove_watch): add note about
3453         these needing the connection to be locked.
3454         (_dbus_connection_get_dispatch_status_unlocked):
3455         set status to DATA_REMAINS when we queue the
3456         disconnected message.
3457         
3458         * bus/dispatch.c:
3459         (bus_dispatch): fix warning.
3460         (check_existent_service_no_auto_start):
3461         Expect ChildSignaled error too.
3462         (check_existent_hello_from_self): fix another
3463         couple of warnings.
3464         
3465 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3466
3467         Patches from James Willcox <snorp@snorp.net>
3468
3469         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3470
3471         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3472         support array "out" parameters.
3473
3474         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3475         for 16-bit int support.
3476
3477 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3478
3479         * Released 0.50
3480
3481         * Patch from Steve Grubb:
3482         - bus/activation.c (bus_activation_service_reload_test): clean up
3483         some indentation
3484         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3485         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3486         buffer overflows in the test suite.  This is non critical because
3487         it can not be exploited and this code is only run when doing a 
3488         make check.
3489
3490         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3491         - configure.in: Don't check and link against kdecore, only qt headers
3492         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3493         - gcj/org/freedesktop/dbus/Makefile.am:
3494         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3495         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3496         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3497         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3498         - tools/Makefile.am: Add platform extentions to binaries 
3499         (i.e. .exe on windows)
3500
3501         * configure.in: 
3502         - Make it so if no suitable version of python is found we only 
3503         disable building python instead of exiting the configure script
3504         - Require version 2.4 of glib for glib bindings
3505         - Up version to 0.50
3506
3507         * python/__init__.py: Sync version with libdbus to (0,50,0)
3508         
3509 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3510
3511         * dbus/dbus-object-tree.c (find_subtree_recurse):
3512         a couple of optimizations (bug #710):
3513         - do a binary search in the tree
3514         - insert a new child at the right place directly, no need for
3515           qsort anymore
3516         - do the "double alloc" thing when allocating children
3517
3518 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3519
3520         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3521
3522         * python/dbus_bindings.pyx: Memory management foo
3523         (global): remove hacky _user_data_references global list
3524         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3525         tuples. Unref user_data
3526         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3527         (Connection::__del__): Remove and replace with __dealloc__ method
3528         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3529         to keep tuple from being deallocated instead of the global var hack
3530         (Connection::register_object_path): Stuff user_data into a tuple.
3531         Use Py_INCREF to keep tuple from being deallocated instead of the 
3532         global var hack
3533         (Connection::register_fallback): Stuff user_data into a tuple.
3534         Use Py_INCREF to keep tuple from being deallocated instead of the 
3535         global var hack
3536         (GIL_safe_pending_call_notification): Don't unref the message
3537         because it gets unreffed when going out of scope.  Py_XDECREF
3538         the user_data
3539         (PendingCall::__del__): Remove and replace with __dealloc__ method
3540         (PendingCall::set_notify): ref the pending call because we will
3541         need it to stick around for when the notify callback gets called
3542         (Message::__del__): Remove and replace with __dealloc__ method
3543
3544         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3545         gthreads_init to match up with the dbus call
3546
3547         * python/glib.py (init_threads): Changed to threads_init to match
3548         up with gobject.threads_init().  init_threads is kept for backwards
3549         compat but will most likely be deprecated in the future
3550
3551         * test/python/test-client.py: 
3552         - revamp to use Python's unittest functionality
3553         - add async call tests
3554         - setup threads in glib and dbus so we make sure locks are working
3555         
3556 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3557
3558         * python/dbus_bindings.pyx 
3559         (_pending_call_notification, cunregister_function_handler, 
3560         cmessage_function_handler): All callback functions have been rearranged 
3561         to workaround a bug in Pyrex when working with the GIL which is Python's 
3562         global lock when dealing with threads.  They have been split into
3563         a wrapper function (which assumes the name of the old function) and
3564         a _GIL_safe_<function name> function which contains the functionality
3565         of the old function.  This ensures that Pyrex does not write code
3566         the lock is released.
3567         
3568
3569 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3570
3571         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3572         GIL global lock when calling back into Python
3573
3574 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3575
3576         * Release 0.36.2
3577
3578         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3579
3580         * bus/policy.c (bus_policy_allow_user): change default "user is
3581         allowed" to be "user has same uid as the bus itself"; any
3582         allow/deny rules will override.
3583
3584         * bus/session.conf.in: don't allow all users, since now by default
3585         the user that ran the bus can connect.
3586
3587 2005-08-26  Colin Walters  <walters@verbum.org>
3588
3589         * tools/dbus-print-message.c (print_message): Flush stdout
3590         after printing a message, so that redirecting to a file, then
3591         hitting Ctrl-C works.
3592
3593 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3594
3595         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3596         (EmptyMessage): new class that subclasses Message.  This is a workaround
3597         to a Pyrex bug that fails to call __del__ when the Message object goes out
3598         of scope.  For some reason subclassing Message fixes this bug
3599         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3600         - s/Message(_create=0)/EmptyMessage everywhere else
3601         
3602         * test/python/test-{server|client}.py: add the python/.libs directory
3603         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3604         get picked up from the system
3605
3606 2005-08-25  Colin Walters  <walters@verbum.org>
3607
3608         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3609         to Ryan Lortie for the suggestion.
3610
3611 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3612
3613         * test/python: Add python regression test
3614
3615         * configure.in: Add test/python/Makefile
3616
3617         * test/Makefile.am: Add the python directory to SUBDIRS
3618
3619 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3620
3621         * Release 0.36.1
3622
3623         * python/_dbus.py: 
3624         (Interface::connect_to_signal): propigate keywords for match on args
3625         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3626
3627         * python/proxies.py (ProxyObject::connect_to_signal):
3628         propigate keywords for match on args
3629
3630         * Makefile.am: point everything to pyexecdir since python borks
3631         on multilib
3632
3633 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3634
3635         * Release 0.36
3636
3637 2005-08-23  Colin Walters  <walters@verbum.org>
3638
3639         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3640
3641 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3642
3643         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3644         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3645         of defining DBusConnection ourselves.
3646
3647 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3648
3649         * python/dbus.pth: New path file to fix up problems when installing
3650         c libraries to lib64 and python files to lib.
3651
3652         * python/Makefile.am: install dbus.pth in the correct spot
3653
3654 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3655         * ChangeLog: clean up my last entry a bit
3656
3657         * doc/introspect.xsl: New stylesheet for converting introspection data
3658         into browser renderable xhtml. Contributed by Lennart Poettering.
3659
3660         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3661         Poettering.
3662
3663         * doc/dbus-tutorial.xml: 
3664         - Add Colin Walter to the Authors section for authoring the GLib
3665         section
3666         - Add descriptions of the new signature and type functionality
3667         in the Python complex type mapping section
3668         - Add a sidenote on the new args matching functionality in 
3669         the Python bindings
3670         - Fixed up some of the examples to use the gobject.MainLoop
3671         instead of gtk.main
3672         
3673         * python/_dbus.py:
3674         (Bus::_create_args_dict): New. Converts a hash of arg matches
3675         to a more useable format
3676         (Bus::add_signal_receiver): add a **keywords parameter for catching
3677         arg match parameters
3678         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3679         arg match parameters
3680         
3681         * python/matchrules.py:
3682         (MatchTree::exec_matches): Check for arg matches
3683         (SignalMatchRule::add_args_match): New method
3684         (SignalMatchRule::execute): Added args_list parameter as an optimization
3685         so we don't have to marshal the args more than once
3686         (SignalMatchRule::match_args_from_list): New method that checks to see
3687         if the rule's arg matches match an argument list.  Only arguments
3688         set in the rule are checked.
3689         (SignalMatchRule::match_args_from_rule): New method that checks to see
3690         if the rule's arg matches match another rule's.  All args have to match
3691         in order for this method to return true.  If either rule has more args
3692         then it is not a match.
3693         (SignalMatchRule::is_match): Add args match
3694         (SignalMatchRule::repr): Add args to the final output if they exist
3695
3696 2005-08-17  Ross Burton  <ross@burtonini.com>
3697
3698         * glib/dbus-gproxy.c:
3699         (dbus_g_proxy_call_no_reply): unref the message once sent.
3700         (dbus_g_proxy_call): protect against NULL proxy.
3701
3702 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3703
3704         * python/__init__.py: Version updated (0, 43, 0)
3705         
3706         * python/dbus_bindings.pyx: 
3707         - Fixed type objects to have self passed into __init__
3708         - Added the Variant type
3709         - Add the ability to specify types or signatures for Array, Variant 
3710         and Dictionary
3711         (Connection::send_with_reply_handlers): return a PendingCall object
3712         (_pending_call_notification): handle the case when an error is returned 
3713         without an error message in the body
3714         (MessageIter::get_boolean): return True or False instead of an integer
3715         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3716         and add checks for objects with embeded signatures or types (Array, 
3717         Variant and Dictionary)
3718         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3719         (MessageIter::append_dict): handle embeded types or signatures
3720         (MessageIter::append_array): handle embeded types or signatures
3721         (MessageIter::append_variant): new method
3722         
3723         * python/proxies.py:
3724         (DeferedMethod): New. Dummy executable object used when queuing calls 
3725         blocking on introspection data
3726         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3727         or shorter timeouts for method calls
3728         (ProxyObject): Add first pass at an introspection state machine
3729         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3730         introspection. 
3731         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3732         the usual mechanisms for sending messages.  This is to avoid a deadlock
3733         where the Intospect call would be queued waiting for the Introspect 
3734         call to finish ;-)
3735         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3736         when introspection returns with no error
3737         (ProxyObject::_introspect_error_handler): New.  This method is called 
3738         when introspection encounters an error
3739         (ProxyObject::__getattr__): Code to handle different introspection 
3740         states.  Queue async calls or block blocking calls if we are 
3741         introspecting.  Pass through as normal if we are not or are done with 
3742         introspecting.
3743         
3744         * python/service.py: Import signal and method from decorators.py
3745
3746         * python/types.py: Add Variant type
3747
3748 2005-08-16  Colin Walters  <walters@verbum.org>
3749
3750         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3751         DBusError message is NULL.
3752
3753 2005-08-09  Havoc Pennington  <hp@redhat.com>
3754
3755         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3756         malloc'd copy of the name parameter
3757
3758 2005-08-09  Havoc Pennington  <hp@redhat.com>
3759
3760         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3761         warning if the reply serial is set to 0
3762
3763 2005-08-04  Colin Walters  <walters@verbum.org>
3764
3765         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3766         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3767         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3768         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3769         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3770         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3771         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3772         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3773         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3774         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3775         
3776         Prefix name with _ to ensure they're not exported.  All callers
3777         updated.
3778
3779         * glib/dbus-gvalue.c (typecode_to_gtype)
3780         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3781         (signature_iter_to_g_type_dict)
3782         (signature_iter_to_g_type_array)
3783         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3784         (dbus_gtypes_from_arg_signature):
3785         Move to dbus-gsignature.c.
3786
3787         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3788         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3789         (dbus_binding_tool_output_glib_client): Ditto.
3790
3791         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3792         and dbus-gsignature.h
3793
3794         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3795         unused variable.
3796
3797 2005-08-03  Colin Walters  <walters@verbum.org>
3798
3799         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3800         catch any incompatible changes accidentally made.
3801
3802 2005-08-03  Havoc Pennington  <hp@redhat.com>
3803
3804         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3805         typo, from Julien Puydt
3806
3807         * bus/connection.c (bus_connection_disconnected): we were always
3808         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3809
3810 2005-08-01  Colin Walters  <walters@verbum.org>
3811
3812         Patch from Joe Markus Clarke:   
3813         
3814         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3815         use-after-free.
3816
3817 2005-08-01  Colin Walters  <walters@verbum.org>
3818         
3819         Patch from Joe Markus Clarke:   
3820         
3821         * tools/dbus-send.c (main): 
3822         
3823         Don't use C99 style initializers (bug #3933).
3824         
3825 2005-08-01  Colin Walters  <walters@verbum.org>
3826
3827         Patch from Joe Markus Clarke:   
3828
3829         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3830         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3831         * glib/dbus-gobject.c (write_interface):
3832
3833         Don't use C99 style initializers (bug #3933).
3834
3835 2005-07-31  Havoc Pennington  <hp@redhat.com>
3836
3837         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3838         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3839
3840 2005-07-30  Havoc Pennington  <hp@redhat.com>
3841
3842         * fix a bunch of Doxygen warnings and mistakes
3843
3844 2005-07-30  Havoc Pennington  <hp@redhat.com>
3845
3846         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3847         DBUS_BUILD_TESTS since it's now used in production code
3848
3849 2005-07-29  Havoc Pennington  <hp@redhat.com>
3850
3851         * test/glib/test-profile.c (write_junk): initialize the junk
3852         buffer so valgrind doesn't have a breakdown
3853
3854 2005-07-29  Havoc Pennington  <hp@redhat.com>
3855
3856         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3857         (match_rule_matches): remove unused arg
3858         (test_matching): add tests for match_rule_matches()
3859
3860         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3861         do arg0='foo' arg5='bar' in the match rules
3862         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3863
3864         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3865
3866 2005-07-29  Ross Burton  <ross@openedhand.com>
3867
3868         * dbus/dbus-connection.c:
3869         Don't create a DBusCondVar which is never used.
3870
3871 2005-07-27  Ross Burton  <ross@openedhand.com>
3872
3873         * dbus/dbus-message.c:
3874         Reduce the size of the maximum cached message to 10K.
3875
3876 2005-07-25  Ross Burton  <ross@openedhand.com>
3877
3878         * glib/dbus-gproxy.c:
3879         Remove matches when all proxies are unregistered.
3880
3881 2005-07-24  Colin Walters  <walters@verbum.org>
3882
3883         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3884         typedata; recursive arrays won't have it.
3885
3886         * test/glib/test-dbus-glib.c:
3887         * test/glib/test-service-glib.c:
3888         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3889         
3890 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3891
3892         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3893         proxies.py, service.py: Cleanup of code after running it through the
3894         pyflakes code checker mostly dealing with undefined names.  
3895         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3896
3897 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3898
3899         * NEWS: Update to 0.35.2
3900
3901 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3902
3903         * python/_dbus.py: Remove import of the dbus.services
3904         module as it no longer exists (patch from Dimitur Kirov)
3905
3906         * python/service.py (Object::__init__): Fixed typo
3907         s/name/bus_name (patch from Dimitur Kirov)
3908
3909         * python/examples/example-signal-emitter.py: import dbus.glib
3910         to get the main loop and use glib mainloop instead of gtk so
3911         X doesn't have to be running.
3912
3913         * python/examples/example-signal-recipient.py: import dbus.glib
3914         to get the main loop and use glib mainloop instead of gtk so
3915         X doesn't have to be running. Import the decorators module
3916         directly.
3917
3918         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3919         didn't pick up on but are needed to build
3920
3921         * configure.in: upped version to 0.35.2
3922
3923         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3924         added Colin Walters' SELinux API rename patch from head 
3925         s/unix sercurity context/selinux security context/
3926
3927 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3928
3929         * python/Makefile.am: dbus_binding.pxd.in should be included 
3930         in EXTRA_DIST not dbus_binding.pxd
3931         fix up $(srcdir) hopefully for the last time
3932
3933         * NEWS: Update to 0.35.1
3934
3935 2005-07-16  Colin Walters  <walters@verbum.org>
3936
3937         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3938         from bus_driver_handle_get_connection_unix_security_context.  Update for
3939         error usage.
3940         (message_handlers): Update for renames.
3941
3942         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3943         _dbus_string_init failure correctly.
3944         (bus_selinux_append_context): Convert SID to context.  Append it
3945         as a byte array.
3946         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3947         hasn't been called.
3948
3949         * bus/selinux.h: Update prototype.
3950
3951         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3952         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3953
3954 2005-07-15  Colin Walters  <walters@verbum.org>
3955
3956         * doc/TODO: Add note about convenience wrappers.
3957
3958 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3959
3960         * NEWS: Update to 0.35
3961
3962 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3963
3964         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3965         so distcheck doesn't fail
3966
3967         * glib/examples/Makefile.am: Add example-service.xml and 
3968         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3969
3970         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3971         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3972
3973         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3974         compiler looks in the right places during distcheck
3975
3976 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3977
3978         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3979         to fail
3980
3981 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3982
3983         * python/examples/example-service.py,
3984         python/examples/example-signal-emitter.py: Fixed up examples
3985         for API changes
3986
3987 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3988
3989         * python/__init__.py: Upped to version (0,42,0) because of
3990         the API change
3991
3992 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3993
3994         * ChangeLog: fix date in last entry
3995
3996         * configure.in, bus/system.conf.in: add the ability to configure 
3997         the system bus user at compiletime with the --with-dbus-user flag
3998         (patch from Kristof Vansant)
3999
4000 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4001
4002         * bus/dispatch.c, test/test-service.c: Add testcase
4003         for sending messages to oneself (TODO item).
4004
4005         * python/service.py (class Object): Swap ordering of bus_name 
4006         and object_path parameters to better support inheritance.
4007
4008         * doc/dbus-tutorial.xml: change Python docs to reflect change
4009         in parameter ordering and fix the inheritance section.
4010
4011         * doc/TODO: remove sending message to oneself TODO item
4012
4013 2005-07-15  Ross Burton  <ross@openedhand.com>
4014
4015         * glib/dbus-gproxy.c:
4016         Fix a leak when calling methods via the proxy.
4017
4018 2005-07-15  Colin Walters  <walters@verbum.org>
4019
4020         * bus/selinux.c (bus_selinux_append_context): Wrap in
4021         HAVE_SELINUX.
4022
4023 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4024
4025         * python/_dbus.py (Bus::remove_signal_receiver):
4026         don't add a callback to the match if none has been passed in
4027         
4028         * python/matchrules.py (SignalMatchTree::remove): if the rule
4029         being matched does not have a callback treat it as a wildcard
4030         fix matching logic
4031
4032         * doc/dbus-tutorial.xml: Add Python tutorial
4033
4034 2005-07-14  Colin Walters  <walters@verbum.org>
4035
4036         * bus/driver.c
4037         (bus_driver_handle_get_connection_unix_security_context): New function.
4038         (message_handlers): Add.
4039
4040         * bus/selinux.c (bus_selinux_append_context): New function; appends
4041         security context to message.
4042
4043         * bus/selinux.h: Prototype.
4044
4045         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4046
4047 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4048
4049         * bus/activation.c: clean up all tabs to be 8 spaces 
4050         (bus_activation_activate_service): make sure we clean up
4051         if activation fails
4052
4053         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4054         (check_shell_fail_service_auto_start): New function
4055         tests to make sure we get fail properly when trying to auto start a service
4056         with a faulty command line
4057         (check_shell_service_success_auto_start): New function tests to make sure
4058         auto started services get the arguments on the command line
4059
4060         * test/test-shell-service.c: Added service for testing auto-starting with 
4061         command line arguments
4062
4063         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4064         test/data/valid-service-files/debug-shell-echo-success.service.in:
4065         Added service files for testing auto-starting with command line arguments
4066
4067         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4068
4069 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4070
4071         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4072         
4073         * dbus/Makefile.am: added new files to build.
4074
4075         * bus/activation.c (bus_activation_activate_service): support
4076         activation commands with parameters.
4077
4078         * test/shell-test.c: added test program for the shell parsing
4079         code.
4080
4081 2005-07-13  David Zeuthen  <davidz@redhat.com>
4082
4083         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4084         64 bit signed and unsigned parameters
4085
4086 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4087
4088         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4089
4090         * python/service.py (class Name): renamed BusName to make it clearer
4091         what the object is for (a name on the bus)
4092
4093         * python/examples/example-service.py,
4094         python/examples/example-signal-emitter.py: change the Name object to
4095         BusName
4096
4097 2005-07-12  Colin Walters  <walters@verbum.org>
4098
4099         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4100
4101         * tools/dbus-launch.c: Include sys/select.h.
4102
4103 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4104         * python/dbus_bindings.pyx.in: removed
4105
4106         * python/dbus_bindings.pyx: Added.
4107         - Fixed some memleaks (patch from 
4108         Sean Meiners <sean.meiners@linspireinc.com>)
4109         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4110         own pxd file (Pyrex definition)
4111         - Broke out glib dependancies into its own pyx module
4112         
4113         * python/dbus_bindings.pdx: Added.
4114         - Defines C class Connection for exporting to other modules
4115
4116         * python/dbus_glib_bindings.pyx: Added.
4117         - New module to handle lowlevel dbus-glib mainloop integration
4118
4119         * python/glib.py: Added.
4120         - Registers the glib mainloop when you import this module
4121
4122         * python/services.py: Removed (renamed to service.py)
4123         
4124         * python/service.py: Added.
4125         - (class Server): renamed Name
4126
4127         * python/__init__.py: Bump ro version (0,41,0)
4128         -don't import the decorators or service module
4129         by default.  These now reside in the dbus.service namespace
4130
4131         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4132         setup function on creation 
4133
4134         * python/examples/example-service.py,
4135         python/examples/example-signal-emitter.py: update examples
4136
4137         * python/examples/gconf-proxy-service.py,
4138         python/examples/gconf-proxy-service2.py: TODO fix these up
4139
4140         * doc/TODO: Addition
4141         - Added a Python Bindings 1.0 section
4142         - added "Add match on args or match on details to match rules"
4143
4144
4145 2005-07-12  Colin Walters  <walters@verbum.org>
4146
4147         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4148         (statemachine-glue.h): 
4149         * glib/examples/Makefile.am (example-service-glue.h) 
4150         (example-signal-emitter-glue.h): 
4151         * glib/Makefile.am (dbus-glib-error-switch.h): 
4152         Add libtool --mode=execute so we use the built library instead
4153         of any installed one.
4154
4155 2005-07-11  Colin Walters  <walters@verbum.org>
4156
4157         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4158         (dbus_g_value_types_init): Remove assertion.
4159         (dbus_g_value_get_g_type, dbus_g_value_open)
4160         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4161         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4162         functions related to DBusGValue.  Now we marshal/demarshal
4163         structures as GValueArray.
4164         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4165         structures.
4166         (signature_iter_to_g_type_array): Don't call
4167         signature_iter_to_g_type_struct.
4168         (signature_iter_to_g_type_struct): Delete.
4169         (dbus_gvalue_to_signature): Delete.
4170         (dbus_gvalue_to_signature): New function with same name as other
4171         one; we can convert structures to signatures.
4172         (demarshal_valuearray): New function.
4173         (get_type_demarshaller): Use it.
4174         (demarshal_recurse): Delete.
4175         (marshal_proxy): New function.
4176         (marshal_map): Warn if we can't determine signature from type.
4177         (marshal_collection_ptrarray): Ditto.
4178         (marshal_collection_array): Ditto.
4179         (get_type_marshaller): Use marshal_valuearray.
4180         (marshal_recurse): Delete.
4181         (_dbus_gvalue_test): Add some tests.
4182
4183         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4184         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4185         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4186         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4187         (dbus_g_value_free): Remove prototypes.
4188
4189         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4190         G_TYPE_VALUE_ARRAY.
4191
4192         * glib/examples/example-service.c:
4193         * glib/examples/example-client.c: Implement GetTuple.
4194
4195         * test/glib/test-dbus-glib.c:
4196         * test/glib/test-service-glib.c:
4197         * test/glib/test-service-glib.xml: Add structure tests.
4198
4199 2005-07-10  Colin Walters  <walters@verbum.org>
4200
4201         * doc/TODO: Knock off some GLib items with this patch.
4202
4203         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4204         (_dbus_gvalue_signals_error): New functions.
4205
4206         * glib/dbus-gvalue-utils.h: Prototype them.
4207
4208         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4209         and change to not output const/retval flags for input args.  All
4210         callers updated.
4211         (invoke_object_method): Refactor to handle return values.  Add
4212         some more comments in various places.  Remove debug g_print.
4213
4214         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4215
4216         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4217         Handle G_TYPE_NONE.
4218         (compute_gsignature): New function; refactored from code from
4219         compute_marshaller and compute_marshaller_name.  Enhance to
4220         handle return values and async ops more cleanly.  Update for
4221         async ops returning NONE instead of BOOLEAN.
4222         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4223         and output appropriate string.
4224         (generate_glue): Handle return value annotation.  Also don't dump
4225         constness flag for input arguments.
4226
4227         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4228         files shared between installed library and utilities.
4229         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4230         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4231         binding tool can access gtype utility functions.
4232
4233         * test/glib/test-service-glib.c: 
4234         * test/glib/test-service-glib.xml: 
4235         * test/glib/test-dbus-glib.c: Add some tests for return values.
4236
4237 2005-07-09  Colin Walters  <walters@verbum.org>
4238
4239         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4240         argument if available, not method.
4241
4242         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4243         (invoke_object_method): First, remove some redundant
4244         GValues (object_value, error_value) in favor of working on
4245         array directly.  Second, rework constness to be less buggy.
4246         Now we iterate directly over the argument metadata instead
4247         of parallel iterating over output signature and metadata.
4248
4249         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4250
4251         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4252         annotation on input args.
4253         
4254 2005-07-09  Colin Walters  <walters@verbum.org>
4255
4256         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4257         Define.
4258
4259         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4260         annotation.
4261
4262         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4263         (method_dir_signature_from_object_info): Handle arg_iterate change.
4264         (write_interface): Ditto.
4265         (lookup_object_info): Don't barf if format_version is > 0.
4266         (invoke_object_method): Handle arg constness.
4267
4268         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4269         (arg_info_new): Create.
4270         (arg_info_unref): Destroy.
4271         (arg_info_get_annotations, arg_info_get_annotation) 
4272         (arg_info_add_annotation): New functions.
4273
4274         * glib/dbus-gidl.h: Prototype them.
4275
4276         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4277         args, disallow them in properties.
4278         (parse_annotation): Handle arg annotations.
4279
4280         * test/glib/test-service-glib.xml: 
4281         * test/glib/test-service-glib.c: Update to make some methods
4282         const.
4283
4284 2005-07-08  Colin Walters  <walters@verbum.org>
4285
4286         * test/glib/test-service-glib.xml: 
4287         * test/glib/test-service-glib.c:
4288         * test/glib/test-dbus-glib.c: Test a{sv}.
4289
4290         * glib/examples/statemachine/statemachine.c:
4291         * glib/examples/statemachine/statemachine-server.c:
4292         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4293         add progress bar, etc.
4294
4295         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4296         needed anymore due to generic array/map marshalling.
4297         (dbus_g_value_types_init): Don't register basic arrays or the
4298         string/string hash.
4299         (dbus_gtype_from_signature_iter): Don't try to recurse into
4300         variants.
4301         (dbus_gtype_to_signature): Check collection/map before type
4302         metadata.
4303         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4304         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4305         generic map creation/append functions instead of hash table
4306         specifically.
4307         (get_type_demarshaller): Handle maps.
4308         (demarshal_collection): Dispatch on collection type to either
4309         demarshal_collection_ptrarray or demarshal_collection_array.
4310         (get_type_marshaller): Handle maps.
4311         (marshal_collection): Dispatch collection type to either
4312         marshal_collection_ptrarray or marshal_collection_array.
4313         (_dbus_gvalue_test): New test.
4314
4315         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4316         (hash_free_from_gtype): Use it to free GValues.
4317         (hashtable_append): New function.
4318         (ptrarray_append): Fix prototype.
4319         (slist_append): Ditto.
4320         (_dbus_gvalue_utils_test): Extend tests.
4321
4322         * glib/dbus-gtype-specialized.c
4323         (dbus_g_type_specialized_init_append): Renamed from
4324         dbus_g_type_specialized_collection_init_append.  Remove const from
4325         value, since we steal it.
4326         (dbus_g_type_specialized_map_append): New function.
4327
4328         * glib/dbus-gtype-specialized.h: Update prototypes.
4329         Add DBusGTypeSpecializedMapAppendFunc.
4330
4331         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4332         _dbus_gvalue_test.
4333         
4334         * glib/dbus-gtest.h: Prototype it.
4335
4336 2005-07-08  Ross Burton  <ross@openedhand.com>
4337
4338         * dbus/dbus-glib.h:
4339         Add DBysGAsyncData for the async bindings.
4340
4341         * glib/dbus-binding-tool-glib.c:
4342         Re-enable the async bindings.
4343
4344         * test/glib/test-dbus-glib.c:
4345         Add a test for the generated async bindings.
4346
4347 2005-07-08  Colin Walters  <walters@verbum.org>
4348
4349         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4350         connection concept.
4351         
4352 2005-07-08  Colin Walters  <walters@verbum.org>
4353         
4354         * tools/Makefile.am: Kill of print-introspect in favor of using
4355         dbus-send --print-reply=literal.
4356
4357         * test/glib/test-service-glib.xml: 
4358         * test/glib/test-service-glib.c (my_object_get_objs): New test
4359         for "ao".
4360
4361         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4362         (main): Test GetObjs.
4363
4364         * glib/examples/statemachine/Makefile.am:
4365         * glib/examples/statemachine/sm-marshal.list:
4366         * glib/examples/statemachine/statemachine-client.c:
4367         * glib/examples/statemachine/statemachine-server.c:
4368         * glib/examples/statemachine/statemachine-server.xml:
4369         * glib/examples/statemachine/statemachine.c:
4370         * glib/examples/statemachine/statemachine.h:
4371         * glib/examples/statemachine/statemachine.xml:
4372
4373         New example.
4374
4375         * glib/examples/example-service.c (main): Move invocation
4376         of dbus_g_object_type_install_info earlier, to emphasize it
4377         should only be done once.
4378
4379         * glib/examples/example-signal-emitter.c (main): Ditto.
4380
4381         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4382
4383         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4384         (dbus_gvalue_marshal): Update prototypes.
4385
4386         * glib/dbus-gvalue.c: Update all marshalling functions to take
4387         const GValue instead of GValue.
4388         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4389         types.
4390         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4391         change.
4392         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4393         Return a newly-allocated string.
4394         (demarshal_proxy, demarshal_object_path, demarshal_object)
4395         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4396         we get the wrong types from message.
4397         (get_type_demarshaller): New function, extracted from
4398         dbus_gvalue_demarshal.
4399         (demarshal_collection): New function, demarshals generic
4400         collection.
4401         (dbus_gvalue_demarshal): Just invoke result of
4402         get_type_demarshaller.  Throw error if we don't have one.
4403         (marshal_garray_basic): Abort on OOM.
4404         (get_type_marshaller): New function, extracted from
4405         dbus_gvalue_marshal.
4406         (collection_marshal_iterator, marshal_collection): New functions;
4407         implements generic marshalling for an iteratable specialized
4408         collection.
4409         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4410
4411         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4412         G_TYPE_STRING.
4413         (ptrarray_value_from_gvalue): Ditto.
4414         (ptrarray_append, ptrarray_free): New functions.
4415         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4416         (slist_append, slist_end_append, slist_free): New functions.
4417         (dbus_g_type_specialized_builtins_init): Add append fuctions
4418         for GPtrArray and GSList.  Register GSList.
4419         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4420
4421         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4422         New.
4423         (dbus_g_type_specialized_collection_init_append)
4424         (dbus_g_type_specialized_collection_append)
4425         (dbus_g_type_specialized_collection_end_append): Prototype.
4426         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4427         end_append_func.
4428
4429         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4430         (dbus_g_type_specialized_collection_append) 
4431         (dbus_g_type_specialized_collection_end_append): New functions.
4432         (dbus_g_type_map_value_iterate): Take const GValue.
4433         (dbus_g_type_collection_value_iterate): Ditto.
4434
4435         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4436         _dbus_gvalue_utils_test.
4437         
4438         * glib/dbus-gtest.h: Prototype it.
4439
4440         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4441         using uninitialized owner_list.
4442         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4443         public API.
4444         (dbus_g_proxy_end_call_internal): Update to use error set
4445         from dbus_gvalue_demarshal instead of setting it here.
4446         (dbus_g_proxy_begin_call): Move return_if_fail here.
4447
4448         * glib/dbus-gobject.c (write_interface): Update for
4449         dbus_gtype_to_signature returning new string.
4450
4451         * configure.in: Add glib/examples/statemachine.
4452
4453 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4454
4455         * configure.in: Add a configure option, --with-console-auth-dir
4456         
4457         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4458         new setting.  Patch from Kay Sievers.
4459
4460 2005-07-06  Colin Walters  <walters@verbum.org>
4461
4462         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4463         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4464         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4465         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4466         Delete in favor of dbus_g_proxy_begin_call and
4467         dbus_g_proxy_cancel_call.
4468         (DBusGProxyCall, DBusGProxyCallNotify): New.
4469         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4470         data, and destroy function.  This replaces
4471         dbus_g_pending_call_set_notify.
4472         (dbus_g_proxy_cancel_call): Prototype.
4473         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4474
4475         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4476         pending_calls map.
4477         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4478         internal proxy for calls to the bus. Remove
4479         pending_nameowner_calls, now the internal proxy keeps track.
4480         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4481         pending_nameowner_calls.
4482         (got_name_owner_cb): Update prototype, and use
4483         dbus_g_proxy_end_call.
4484         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4485         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4486         favor of using internal proxy.
4487         (dbus_g_proxy_manager_unregister): Update to use
4488         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4489         (dbus_g_proxy_init): Initialize pending calls map.
4490         (dbus_g_proxy_constructor): New.
4491         (dbus_g_proxy_class_init): Add get/set property functions,
4492         constructor, and add NAME, PATH, and INTERFACE properties.
4493         (cancel_pending_call): New function.
4494         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4495         cancel them.
4496         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4497         (GPendingNotifyClosure): New structure.
4498         (d_pending_call_notify, d_pending_call_free): Moved here from
4499         dbus-glib.c.
4500         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4501         ordering.
4502         (manager_begin_bus_call): New internal function for talking to
4503         internal bus proxy.
4504         (dbus_g_proxy_new): Construct object using GObjet properties.
4505         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4506         Create closure of same, and insert call into map of pending calls.
4507         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4508         call.  Look up pending call in current set.  Remove it when we've
4509         completed.
4510         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4511         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4512         and destroy function directly.
4513         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4514         (dbus_g_proxy_call): Invoke with NULL callback.
4515         (dbus_g_proxy_cancel_call): New function, replaces
4516         dbus_g_pending_call_cancel.
4517
4518         * glib/dbus-gparser.c (validate_signature): Fix call to
4519         dbus_set_g_error.
4520
4521         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4522         New quark for attaching metadata to GType.
4523         (info_hash): Delete.
4524         (lookup_object_info): Look up using quark.
4525         (dbus_g_object_type_install_info): Check that a type is classed,
4526         not that it's an object.  Also just install type data using quark
4527         instead of using global hash.
4528
4529         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4530         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4531         (GPendingNotifyClosure): Delete.
4532         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4533         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4534
4535         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4536         client method generation until we can fix it...
4537         
4538         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4539         (load_from_service_thread_func): Ditto.
4540
4541         * tools/dbus-names-model.c (struct NamesModel): Hold
4542         DBusGProxyCall.
4543         (have_names_notify): Update prototype, use
4544         dbus_g_proxy_cancel_call.
4545         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4546
4547         * tools/dbus-monitor.c (filter_func): Update for print_message
4548         API change.
4549
4550         * test/glib/test-dbus-glib.c: Add more tests for async
4551         invocations.  Update many begin_call/end_call pairs to just use
4552         dbus_g_proxy_call.
4553
4554         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4555         allows us to dump print-introspect.c.
4556
4557         * tools/dbus-print-message.h (print_message): Add literal argument
4558         to print_message which is intended to allow printing arguments without
4559         metadata like "string=".
4560
4561         * tools/dbus-print-message.c (print_iter): Add literal argument.
4562         (print_message): Allow printing string messages literally.
4563
4564 2005-07-05  Colin Walters  <walters@verbum.org>
4565
4566         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4567         Remove value refcount leak, original patch from Jorn Baayen
4568         <jorn@openedhand.com>.  Also remove useless extra value in favor
4569         of prepending to value array directly.
4570
4571 2005-07-02  Colin Walters  <walters@verbum.org>
4572
4573         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4574
4575 2005-07-01  Colin Walters  <walters@verbum.org>
4576
4577         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4578         
4579         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4580         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4581         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4582         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4583
4584 2005-06-30  Colin Walters  <walters@verbum.org>
4585
4586         * test/glib/test-dbus-glib.c:
4587         * test/glib/test-service-glib.c:
4588         * test/glib/test-service-glib.xml: Update tests for new error
4589         setting bits, also add async tests (patch from Ross Burton).
4590
4591         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4592         DBUS_GLIB_THREADS_LIBS.
4593
4594         * glib/dbus-gproxy.c (get_name_owner)
4595         (dbus_g_pending_call_end_valist): Ditto.
4596
4597         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4598         domain (GQuark) to DBusGErrorInfo.  
4599         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4600         quark in error_metadata.  Take message interface as default
4601         error message interface.
4602         (gerror_to_dbus_error_message): Pass message interface.
4603         (dbus_set_g_error): Resurrected.
4604         (dbus_g_error_info_free): New function.
4605         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4606         of _peek to actually create the object class if it hasn't been
4607         created yet.
4608         (dbus_g_error_domain_register): New function.
4609
4610         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4611
4612         * glib/dbus-gparser.c (validate_signature): Ditto.
4613
4614         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4615         (dbus_g_error_domain_register): Prototype.
4616
4617         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4618         Update tests.
4619
4620 2005-06-29  Colin Walters  <walters@verbum.org>
4621
4622         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4623         DBUS_TYPE_G_OBJECT_PATH.
4624
4625         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4626         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4627         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4628         (dbus_g_object_path_get_g_type): New function.
4629         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4630         to DBUS_TYPE_G_OBJECT_PATH by default.
4631         (demarshal_proxy): Remove unused name variable.
4632         (demarshal_object_path, marshal_object_path): New functions.
4633         (demarshal_proxy_array, marshal_proxy_array): Delete.
4634         
4635         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4636         DBUS_TYPE_G_OBJECT_PATH to char *.
4637         (dbus_g_type_get_lookup_function): Map builtin
4638         DBUS_TYPE_G_OBJECT_PATH.
4639
4640         * test/glib/test-dbus-glib.c
4641         * test/glib/test-service-glib.c (my_object_objpath): 
4642         Adapt tests to new object path marshalling.
4643
4644 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4645
4646         * configure.in: force check for Python >= 2.4
4647
4648 2005-06-29  Colin Walters  <walters@verbum.org>
4649         
4650         Patch from Ross Burton <ross@openedhand.com>
4651         
4652         * glib/dbus-gobject.c (invoke_object_method): Unset object
4653         value in all cases, not only in async case.
4654
4655 2005-06-29  Colin Walters  <walters@verbum.org>
4656
4657         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4658         name_call for keeping track of any outgoing GetNameOwner call.
4659         Also add for_owner and associated.
4660         (struct _DBusGProxyManager): Add owner_names, which is hash table
4661         that maps a base name to a list of names it owns (that we're
4662         interested in).  Add pending_nameowner_calls which is a list of
4663         all outstanding GetNameOwner; avoids us having to iterate over
4664         every proxy.  Add unassociated_proxies which keeps track of name
4665         proxies with no associated name owner.
4666         (dbus_g_proxy_manager_unref): Destroy owner_names.
4667         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4668         name refcounts.
4669         (find_name_in_info, name_owner_foreach)
4670         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4671         (dbus_g_proxy_manager_monitor_name_owner)
4672         (dbus_g_proxy_manager_unmonitor_name_owner)
4673         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4674         New functions; they manipulate the owner_names mapping.
4675         (got_name_owner_cb): New function.
4676         (get_name_owner): New function, extracted from
4677         dbus_g_proxy_new_for_name_owner.
4678         (dbus_g_proxy_manager_register): For now we need to keep track of
4679         all NameOwnerChanged.  Also if the proxy is for a name, if we
4680         don't already know the name owner, queue a new GetNameOwner
4681         request and add it to our list of unassociated proxies.  Otherwise
4682         inc the refcount.
4683         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4684         cancel any pending GetNameOwner call, etc.
4685         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4686         the owner_names mapping to look up the current names for the
4687         signal source, and dispatch to any proxies for that name.
4688         (dbus_g_proxy_new): Initialize new members.
4689         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4690         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4691         (dbus_g_pending_call_end_valist): New function, extracted from
4692         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4693         but want to use the GLib infrastructure.  Also note how many
4694         arguments in reply were over.
4695         (dbus_g_pending_call_end): New function, just call
4696         dbus_g_pending_call_end_valist.
4697         (dbus_g_proxy_end_call_internal): Just call
4698         dbus_g_pending_call_end_valist.
4699
4700         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4701         of builtin marshaller for STRING_STRING_STRING.
4702
4703         * test/glib/test-dbus-glib.c: 
4704         * test/glib/test-service-glib.c:
4705         * test/glib/test-service-glib.xml:
4706         Extend tests to cover name proxies, destruction of owner proxies,
4707         etc.
4708         
4709         * glib/examples/example-signal-recipient.c
4710         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4711         
4712         * tools/dbus-send.c (main): Print D-BUS error name in addition
4713         to message.
4714
4715 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4716
4717         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4718         cmessage_function_handler): Patch from 
4719         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4720         by using the Py_GILState_Ensure/Release to synchronize with the
4721         python runtime.
4722         
4723 2005-06-28  Ray Strode  <rstrode@redhat.com>
4724
4725         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4726         babysitter helper process on last unref, bug #2813.
4727
4728 2005-06-27  Colin Walters  <walters@verbum.org>
4729
4730         * test/glib/test-dbus-glib.c: 
4731         * test/glib/test-service-glib.c:
4732         * test/glib/test-service-glib.xml:
4733         Test hash table signal emitting.
4734
4735         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4736         types to their fundamental basis types, since this is what
4737         marshallers operate on.  Also add an entry for VOID__BOXED.
4738         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4739
4740 2005-06-26  Havoc Pennington  <hp@redhat.com>
4741
4742         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4743         from Don Park
4744
4745 2005-06-26  Colin Walters  <walters@verbum.org>
4746
4747         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4748         (dbus_g_error_set): New public function from its ashes; used by
4749         both service-side method implementation and GLib bindings
4750         internals.
4751         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4752         (_dbus_glib_test): Add some tests.
4753
4754         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4755
4756         * test/glib/test-service-glib.c (my_object_throw_error): Use
4757         dbus_g_error_set.
4758
4759         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4760         errors thrown by dbus_g_error_set.
4761
4762         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4763
4764         * glib/dbus-gparser.c (validate_signature): Ditto.
4765
4766         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4767         (dbus_g_proxy_end_call_internal): Ditto.
4768
4769         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4770         converts DBUS_ERROR_x to DBUS_GERROR_x.
4771         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4772
4773         * doc/TODO: Remove error TODO.
4774
4775         * doc/dbus-tutorial.xml: Update with documentation about error
4776         handling.
4777
4778         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4779         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4780         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4781
4782 2005-06-22  Colin Walters  <walters@verbum.org>
4783         
4784         Patch from Ross Burton <ross@openedhand.com>
4785
4786         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4787
4788 2005-06-20  Colin Walters  <walters@verbum.org>
4789
4790         * configure.in: Add glib/examples.
4791
4792         * glib/Makefile.am: Add examples/
4793
4794         * glib/examples/.cvsignore
4795         * glib/examples/Makefile.am
4796         * glib/examples/example-client.c
4797         * glib/examples/example-service.c
4798         * glib/examples/example-service.xml
4799         * glib/examples/example-signal-emitter.c
4800         * glib/examples/example-signal-emitter.xml
4801         * glib/examples/example-signal-recipient.c:
4802         New files; GLib binding examples, ported from
4803         python/examples.
4804
4805 2005-06-20  Colin Walters  <walters@verbum.org>
4806
4807         * dbus/dbus-glib.h: 
4808         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4809         dbus_g_proxy_call.
4810
4811         * glib/dbus-binding-tool-glib.c: 
4812         * doc/dbus-tutorial.xml: 
4813         * test/glib/test-dbus-glib.c: Update for rename.
4814         
4815 2005-06-20  Colin Walters  <walters@verbum.org>
4816
4817         Patch suggested by Ross Burton <ross@openedhand.com>
4818
4819         * glib/dbus-gobject.c (export_signals): Free signal name.
4820         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4821         memory leak.  Add a bit of documentation.
4822         (dbus_g_method_return_error): Free context, and note we do
4823         so.
4824
4825 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4826
4827         * dbus/dbus-glib.h:
4828         * glib/dbus-gobject.c:
4829         * glib/dbus-gproxy.c:
4830         * glib/dbus-gvalue.c: Predeclare structs as 
4831         typedef struct _Something Something instead of 
4832         typedef struct Something Something, so we can 
4833         redeclare the prototypes. Other GNOME libraries 
4834         do this already.
4835
4836 2005-06-17  Colin Walters  <walters@verbum.org>
4837
4838         * tools/dbus-names-model.c (have_names_notify): Fix call
4839         to dbus_g_proxy_end_call.
4840         
4841 2005-06-17  Colin Walters  <walters@verbum.org>
4842
4843         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4844         spew warnings if we get malformed remote signals.
4845
4846         * glib/dbus-gobject.c (propsig_iterate): New function.
4847         (lookup_object_info): New function, extracted from
4848         lookup_object_and_method.
4849         (introspect_properties, introspect_signals): Delete; these
4850         are merged into write_interface.
4851         (write_interface): Write out signals and properties here;
4852         dump the org.gtk.object stuff and use the interface given
4853         in the introspection data blob.  Also fix up property XML.
4854         (lookup_values): New function.
4855         (introspect_interfaces): Gather a mapping from interface to a
4856         list of its methods, signals, and properties, then write out
4857         each interface.
4858         (lookup_object_and_method): Use lookup_object_info.
4859         (struct DBusGSignalClosure): Add interface.
4860         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4861         we can just use the constant data.
4862         (dbus_g_signal_closure_finalize): Don't free signal name.
4863         (signal_emitter_marshaller): Use interface from signal closure.
4864         (export_signals): Only export signals mentioned in introspection
4865         blob.
4866         (dbus_g_connection_register_g_object): Warn if we have no
4867         introspection data for an object.
4868         (funcsig_equal): Remove unused variable.
4869         (dbus_g_object_register_marshaller): Take varargs instead of
4870         list.
4871         (dbus_g_object_register_marshaller_array): New function,
4872         extracted from old dbus_g_object_register_marshaller.
4873
4874         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4875         signals and property data.
4876         (write_quoted_string): New function, extracted from generate_glue.
4877         (generate_glue): Write signals and properties to introspection
4878         blob.
4879
4880         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4881         exported_signals and exported_properties.
4882         (dbus_g_object_register_marshaller): Update prototype.
4883         (dbus_g_object_register_marshaller_array): Prototype.
4884         
4885         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4886
4887         * test/glib/test-service-glib.c: Add new test signals and method
4888         to emit them.
4889
4890         * test/glib/test-service-glib.xml: Add some test signals.
4891
4892         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4893         and my-object-marshal.h
4894         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4895         my-object-marshal.c.
4896         (my-object-marshal.c, my-object-marshal.h): Implement.
4897
4898         * test/glib/.cvsignore: Update.
4899
4900         * doc/TODO: Remove two GLib TODO items fixed by this
4901         patch.
4902
4903 2005-06-16  Colin Walters  <walters@verbum.org>
4904
4905         * doc/TODO: Update for GLib bindings.
4906         
4907 2005-06-16  Colin Walters  <walters@verbum.org>
4908
4909         * glib/dbus-binding-tool-glib.c:
4910         * glib/dbus-gobject.c:
4911         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4912         from Ross Burton, for his GLib bindings work.
4913
4914 2005-06-16  Colin Walters  <walters@verbum.org>
4915
4916         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4917         to iterate instead of walking to G_TYPE_INVALID.
4918
4919         Patch based on a patch from Ryan Gammon.
4920
4921 2005-06-16  Colin Walters  <walters@verbum.org>
4922
4923         * bus/bus.c (bus_context_new): Set parser to NULL
4924         after we unref it (Patch from Chris Boscolo, #2174).
4925         
4926 2005-06-16  Colin Walters  <walters@verbum.org>
4927
4928         * python/dbus_bindings.pyx.in: Import size_t,
4929         __int64_t, __uint64_t, and __signed.
4930
4931         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4932         Define cmsg struct, output it.
4933         (_dbus_read_credentials_unix_socket):
4934         Use cmsg struct.
4935         
4936         Patch from Joe Markus Clarke for FreeBSD support.
4937         
4938 2005-06-16  Colin Walters  <walters@verbum.org>
4939
4940         * tools/dbus-send.c (append_array): Use strtok.
4941         (append_dict): New function.
4942         (type_from_name): New function, extracted from main.
4943         (main): Handle sending dicts.
4944
4945         * tools/dbus-print-message.c (print_iter): Print dict
4946         entries.
4947         
4948 2005-06-16  Colin Walters  <walters@verbum.org>
4949
4950         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4951         values as the empty string (#2948).
4952         
4953 2005-06-16  Colin Walters  <walters@verbum.org>
4954
4955         * dbus/Makefile.am:
4956         * mono/doc/Makefile.am:
4957         * test/glib/Makefile.am:
4958
4959         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4960
4961 2005-06-16  Colin Walters  <walters@verbum.org>
4962
4963         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4964         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4965
4966         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4967         Increment pointer after swapping fixed array.  Add assertion
4968         for array length.
4969                 
4970 2005-06-15  Colin Walters  <walters@verbum.org>
4971
4972         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4973         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4974         
4975 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4976
4977         * NEWS: Update to 0.34
4978
4979 2005-06-15  David Zeuthen  <davidz@redhat.com>
4980
4981         * configure.in (LT_CURRENT): Revert back to 1 as the library
4982         hasn't changed and we've certainly not committed to protocol
4983         stability yet.  All this does is to break ABI. See commit note
4984         from hp@redhat.com 2005-05-05 for details.
4985         
4986 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4987
4988         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4989         (_dbus_connection_run_builtin_filters): New method
4990         (dbus_connection_dispatch): Run the builtin filters which in turn
4991         runs the peer filter which handles Ping messages.
4992
4993         * doc/TODO: 
4994          - Ping isn't handled: This patch fixes it
4995          
4996          - Add a test case for the Ping message: added TODO item
4997
4998 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4999
5000         * dbus/dbus-message.c:
5001         (dbus_message_has_path): New method
5002         (dbus_message_has_interface): New method
5003         (dbus_message_has_member): New method
5004
5005         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5006         New method
5007
5008         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5009         the keyring directory is private to the user
5010
5011         * doc/TODO:
5012          - The convenience functions in dbus-bus.h should perhaps have
5013          the signatures that they would have if they were autogenerated
5014          stubs. e.g. the acquire service function. We should also evaluate
5015          which of these functions to include, in light of the fact that
5016          GLib/Qt native stubs will probably also exist.: Punted
5017
5018          - add dbus_message_has_path(), maybe has_member/interface:
5019          fixed in this patch
5020
5021          - in dbus-keyring.c, enforce that the keyring dir is not
5022          world readable/writable: Fixed in this patch
5023
5024 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5025
5026         * dbus/dbus-marshal-validate.h: Added a new validation
5027         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5028         out of memory errors when validating signitures
5029
5030         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5031         in places where we previously used DBUS_VALID and a FALSE return 
5032         value to indicate OOM
5033         
5034         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5035         Use a stack to track the number of elements inside containers.  The 
5036         stack values are then used to validate that dict entries have only two
5037         elements within them.
5038         (validate_body_helper): check the reason for failure when validating
5039         varients
5040         
5041         * dbus/dbus-message.c (load_message): use 
5042         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5043         DBUS_VALID and a FALSE return value to indicate OOM
5044
5045         * doc/TODO: remove "- validate dict entry number of fields" as this
5046         patch fixes it
5047
5048 2005-06-14  David Zeuthen  <davidz@redhat.com>
5049
5050         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5051         watches (if applicable) and add new watches
5052
5053         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5054         (main): Setup SIGIO signal handler if using D_NOTIFY
5055
5056         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5057
5058         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5059         (merge_included): Also merge conf_dirs list
5060         (bus_config_parser_unref): Clear conf_dirs list
5061         (include_dir): Add directory to conf_dirs list
5062         (bus_config_parser_get_conf_dirs): New function
5063
5064         * bus/dir-watch.[ch]: New files
5065
5066         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5067
5068         * configure.in: Add checks for D_NOTIFY on Linux
5069
5070 2005-06-14  Colin Walters  <walters@verbum.org>
5071
5072         * glib/dbus-binding-tool-glib.c:
5073         * glib/dbus-gobject.c:
5074         * glib/dbus-gvalue.c: Fix indentation and brace style.
5075         
5076 2005-06-14  Ross Burton <ross@openedhand.com>.
5077
5078         * glib/dbus-glib.h: Make DBusGMethodInvocation
5079         a private structure.  Rearrange prototypes a bit.
5080         
5081         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5082         documentation for first_arg_type.
5083         
5084         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5085         here, add documentation.  Move dbus_g_method_return
5086         and dbus_g_method_return_error into public API
5087         section.
5088
5089 2005-06-14  Colin Walters  <walters@verbum.org>
5090
5091         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5092         Add missing return statements, noticed by Ross Burton.
5093         
5094 2005-06-13  Ross Burton <ross@openedhand.com>.
5095
5096         * glib/dbus-gobject.c: Handle errors on message
5097         demarshalling by sending error message back.
5098         * glib/dbus-gvalue.c: Initialize return variables.
5099
5100 2005-06-13  Colin Walters  <walters@verbum.org>
5101
5102         * glib/Makefile.am: Fix thinko in last patch.
5103
5104 2005-06-13  Colin Walters  <walters@verbum.org>
5105
5106         * glib/Makefile.am: Move dbus-gtype-specialized.c
5107         and dbus-gtype-specialized.h into a _HEADERS variable,
5108         install them.
5109
5110 2005-06-12  Colin Walters  <walters@verbum.org>
5111
5112         Async signals and various bugfixes and testing by
5113         Ross Burton <ross@openedhand.com>.
5114
5115         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5116         (dbus_gvalue_genmarshal_name_from_type)
5117         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5118         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5119         (dbus_g_value_types_init, dbus_gtype_from_signature)
5120         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5121         (dbus_gtypes_from_arg_signature): New function prototypes.
5122         (dbus_gvalue_demarshal): Take context and error arguments.
5123         (dbus_gvalue_demarshal_variant): New function.
5124         (dbus_gvalue_demarshal_message): New function.
5125         (dbus_gvalue_store): Delete.
5126
5127         * glib/dbus-gvalue.c:
5128
5129         File has been almost entirely rewritten; now we special-case
5130         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5131         hash tables correctly, etc.  Full support for recursive values
5132         is not yet complete.
5133
5134         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5135         argument of signal to G_TYPE_POINTER since we now pass a
5136         structure.
5137         (lookup_g_marshaller): Delete in favor of
5138         _dbus_gobject_lookup_marshaller.
5139         (marshal_dbus_message_to_g_marshaller): Use
5140         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5141         to handle remote signal callbacks.
5142         (dbus_g_proxy_new_from_proxy): New function; creates a new
5143         DBusGProxy by copying an existing one.
5144         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5145         (dbus_g_proxy_get_path): New functions.
5146         (dbus_g_proxy_marshal_args_to_message): New function;
5147         factored out of existing code.
5148         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5149         from a varargs array.
5150         (dbus_g_proxy_begin_call_internal): New function.
5151         (dbus_g_proxy_end_call_internal): New function.
5152         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5153         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5154         after collecting args into value array.
5155         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5156         invoke dbus_g_proxy_end_call_internal.
5157         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5158         end_call_internal.
5159         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5160         types.
5161         (array_free_all): New function.
5162         (dbus_g_proxy_add_signal): Take GTypes.
5163
5164         * glib/dbus-gobject.h:
5165         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5166         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5167         Prototype.
5168
5169         * glib/dbus-gobject.c: Add a global marshal_table hash which
5170         stores mappings from type signatures to marshallers.  Change lots
5171         of invocations of dbus_gtype_to_dbus_type to
5172         dbus_gtype_to_signature.
5173         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5174         (introspect_signals): Fix test for query.return_type.
5175         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5176         (invoke_object_method): Many changes.  Handle asynchronous
5177         invocations.  Convert arguments with
5178         dbus_gvalue_demarshal_message.  Handle errors.  Use
5179         DBusSignatureIter instead of strlen on args. Handle all arguments
5180         generically.  Special-case variants.
5181         (dbus_g_method_return, dbus_g_method_return_error): New function.
5182         (DBusGSignalClosure): New structure, closes over signal
5183         information.
5184         (dbus_g_signal_closure_new): New function.
5185         (dbus_g_signal_closure_finalize): New function.
5186         (signal_emitter_marshaller): New function; is special marshaller
5187         which emits signals on bus.
5188         (export_signals): New function; introspects object signals and
5189         connects to them.
5190         (dbus_g_object_type_install_info): Take GType instead of
5191         GObjectClass.
5192         (dbus_g_connection_register_g_object): Invoke export_signals.
5193         (dbus_g_connection_lookup_g_object): New function.
5194         (DBusGFuncSignature) New structure; used for mapping type
5195         signatures to marshallers.
5196         (funcsig_hash): New function; hashes DBusGFuncSignature.
5197         (funcsig_equal): New function; compares DBusGFuncSignature.
5198         (_dbus_gobject_lookup_marshaller): New function.
5199         (dbus_g_object_register_marshaller): New function; used to
5200         register a marshaller at runtime for a particular signature.
5201
5202         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5203
5204         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5205         which notes a server method implementation should be
5206         asynchronous.
5207
5208         * glib/dbus-binding-tool-glib.c
5209         (dbus_binding_tool_output_glib_server): Call
5210         dbus_g_value_types_init.
5211         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5212         variants specially.
5213         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5214         of a lookup function.
5215         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5216         (write_untyped_out_args): New method; write output arguments.
5217         (write_formal_declarations_for_direction): Function for
5218         writing prototypes.
5219         (write_formal_parameters_for_direction): Function for
5220         writing implementations.
5221         (write_typed_args_for_direction): Function for writing
5222         arguments prefixed with GTypes.
5223         (write_async_method_client): Write out async version
5224         of method.
5225
5226         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5227         (dbus_g_type_get_marshal_name): Move mapping from GType
5228         to marshal name into here.
5229         (dbus_g_type_get_c_name): Move into here.
5230         (compute_marshaller): Convert signature to type with
5231         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5232         (compute_marshaller_name): Ditto.
5233         (compute_marshaller): Handle async signal annotations.
5234         (gather_marshallers): Return if we don't have a known
5235         prefix.
5236         (generate_glue): Collect introspection blob here, and
5237         write all of the blob at the end.  This allows an object
5238         with multiple interfaces to work.
5239         Mark async methods in introspection blob.
5240
5241         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5242         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5243         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5244
5245         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5246         avoids people accidentally using DBUS_TYPE_* which should
5247         not be necessary anymore.
5248         Do include dbus-gtype-specialized.h, which are utilities
5249         for GLib container types.
5250         Add various #defines for types such as
5251         DBUS_TYPE_G_BOOLEAN_ARRAY.
5252         (DBusGValueIterator, DBusGValue): Define, not fully used
5253         yet.
5254         (dbus_g_value_get_g_type): Type for recursive value.
5255         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5256         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5257         (dbus_g_value_free): Prototypes.
5258         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5259         (dbus_g_proxy_set_interface): Prototype.
5260         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5261         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5262         types.
5263         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5264         Accessors.
5265         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5266         doing async invocations.
5267         (dbus_g_method_return, dbus_g_method_return_error):
5268         Prototypes.
5269         * doc/dbus-tutorial.xml: Update GLib section.
5270         
5271         * tools/dbus-viewer.c (load_child_nodes): Update
5272         for new invocation type of dbus_g_proxy_end_call.
5273         (load_from_service_thread_func): Ditto.
5274
5275         * tools/print-introspect.c (main): Ditto.
5276
5277         * tools/dbus-names-model.c (have_names_notify)
5278         (names_model_reload, names_model_set_connection)
5279         Use GTypes.
5280
5281         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5282         needed since Python bindings use GLib bindings.
5283
5284         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5285         Add --prefix argument.
5286
5287         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5288         unneeded --ignore-unsupported arg.
5289         
5290         * test/glib/test-service-glib.c: 
5291         * test/glib/test-service-glib.xml:
5292         * test/glib/test-dbus-glib.c: Add many more tests.
5293
5294 2005-06-06  David Zeuthen  <davidz@redhat.com>
5295
5296         * doc/TODO: Add item about need to remove deprecated functions.
5297
5298         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5299
5300         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5301         to repair the ABI which was broken with the last commit.
5302
5303 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5304
5305         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5306         (dbus_connection_disconnect): renamed to dbus_connection_close 
5307         for API symmetry with dbus_connection_open
5308         (_dbus_connection_open_internal): 
5309         s/dbus_connection_disconnect/dbus_connection_close
5310
5311         * dbus/dbus-bus.c (dbus_bus_get):
5312         s/dbus_connection_disconnect/dbus_connection_close
5313
5314         * bus/connection.c (bus_connections_unref, 
5315         bus_connections_setup_connection, bus_connections_expire_incomplete):
5316         s/dbus_connection_disconnect/dbus_connection_close
5317
5318         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5319         kill_client_connection_unchecked, check_hello_connection):
5320         s/dbus_connection_disconnect/dbus_connection_close
5321
5322         * bus/bus.c (new_connection_callback):
5323         s/dbus_connection_disconnect/dbus_connection_close
5324
5325         * tools/dbus-send.c (main):
5326         s/dbus_connection_disconnect/dbus_connection_close
5327
5328         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5329         s/dbus_connection_disconnect/dbus_connection_close
5330         
5331         * test/test-service.c (path_message_func, filter_func):
5332         s/dbus_connection_disconnect/dbus_connection_close
5333         
5334         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5335         
5336 2005-05-25  Colin Walters  <walters@verbum.org>
5337
5338         * dbus/dbus-protocol.h: Move various bus service #defines such
5339           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5340           dbus/dbus-shared.h.
5341         * dbus/dbus-shared.h: Various defines moved here.
5342         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5343
5344 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5345
5346         * python/__init__.py: Python bindings deserve a minor version
5347         update.  Upped to (0, 40, 2)
5348
5349 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5350
5351         * python/decorators.py: add explicitly_pass_message decorator
5352         for passing in the dbus message as keyword for edge case signal
5353         handling
5354
5355         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5356         to conform with what dbus expects for match rules
5357         (SignalMatchRule.execute): add the dbus message as a keyword
5358         if the signal handler has requested it
5359
5360         * python/examples/example/signal-recipient.py: added some more
5361         examples on how to hook up to signals
5362
5363 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5364
5365         * python/decorators.py: import dbus_bindings
5366
5367         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5368         SignalMatchNode): new classes that implement wildcard signal
5369         callback matching using a tree lookup. Heavily modified from a
5370         patch sent by Celso Pinto (fd.o bug #3241)
5371
5372         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5373         use new match classes to handle signals.
5374
5375 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5376         
5377         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5378
5379 2005-05-18  Havoc Pennington  <hp@redhat.com>
5380
5381         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5382         gettext. Not really worth requiring yet perhaps, but any
5383         production quality 1.0 would require it so we should go ahead and
5384         get things set up. We do have a couple token calls to
5385         bindtextdomain in the code already.
5386
5387 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5388
5389         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5390         when using recursive g_main_loops
5391
5392         * python/_dbus.py (class Bus): add the ProxyObjectClass
5393         alias for ProxyObject to make it easier for the Twisted 
5394         networking framework to integrate dbus.
5395
5396         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5397         alias for ProxyMethod to make it easier for the Twisted 
5398         networking framework to integrate dbus. 
5399
5400 2005-05-11  Ross Burton  <ross@openedhand.com>
5401
5402         * glib/dbus-glib-tool.c: Add --prefix argument.
5403         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5404         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5405         Add prefix argument.
5406         (generate_glue): Pass prefix argument down.
5407         (dbus_binding_tool_output_glib_server): Pass prefix to
5408         glib-genmarshal.
5409         
5410 2005-05-11  Colin Walters  <walters@verbum.org>
5411
5412         * tools/dbus-send.c (append_array): New function.
5413         (append_arg): Broken out from main.
5414         (main): Add cheesy hack to send arrays and variants.
5415         (usage): Update.
5416         * tools/dbus-print-message.c (print_iter): Broken out
5417         from main.
5418
5419 2005-05-11  Colin Walters  <walters@verbum.org>
5420
5421         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5422         New function, returns signature string for signature iter.
5423         * dbus/dbus-signature.h: Prototype it.
5424         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5425         New function, returns signature string for message iter.
5426         (dbus_message_iter_get_array_len): New function, returns
5427         length of array.
5428         (dbus_message_iter_get_fixed_array): Fix assertion; this
5429         function should be used when the iter is pointing to the
5430         contents of an array
5431         * dbus/dbus-message.h: Prototypes.
5432         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5433         New function; returns length of an array.
5434         * dbus/dbus-marshal-recursive.h: Prototype it.
5435         
5436 2005-05-11  Colin Walters  <walters@verbum.org>
5437
5438         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5439         compilation error.
5440         
5441 2005-05-08  Havoc Pennington  <hp@redhat.com>
5442
5443         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5444         daemon's pid, not the parent's pid, to the file descriptor.
5445         Reported by Taj Morton.
5446
5447 2005-05-05  Havoc Pennington  <hp@redhat.com>
5448
5449         * configure.in (LT_*): add notes on how the libtool versioning
5450         works to save thinking. Increment soname to indicate protocol
5451         breakage (though really the library interface hasn't changed I
5452         guess)
5453
5454         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5455         verify the GUID received from server matches what we were
5456         expecting, if we had an expectation
5457
5458         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5459         (_dbus_auth_get_guid_from_server): new function
5460         (send_begin): parse the OK args
5461
5462         * doc/dbus-specification.xml: add GUID to the auth protocol
5463
5464 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5465
5466         * Fix my name in previous changelog ;)
5467
5468         * python/proxies.py (ProxyObject.__getattr__): add further patch
5469         from Anthony Baxter to throw an AttributeError when python 
5470         __special__ functions are called instead of marshling them over 
5471         the bus (Bug#1685 comment 3).
5472
5473 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5474
5475         * python/Makefile.am: changed to use pyexecdir for the binding
5476         shared libraries (Bug#2494)
5477
5478         * python/exceptions.py: bring exceptions over from the bindings
5479         so they can be used in applications (Bug#2036)
5480         Make all exceptions derive from DBusException
5481
5482         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5483         of classes so that print obj doesn't throw an exception (Bug #1685)
5484
5485 2005-05-03  Ross Burton  <ross@openedhand.com>
5486
5487         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5488         Return if we get an error during registration.  Set up a
5489         weak reference on object to unregister if object is destroyed.
5490         (unregister_gobject): New function.
5491         
5492 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5493
5494         * python/dbus_bindings.pyx.in: 
5495         - added new type classes for hinting to the marashaler what type 
5496         to send over the wire
5497         - added int16 and uint16 marshalers
5498         - Fixed a bug in the type constants that caused int32 to go out
5499         as uint16 over the wire
5500         * python/dbus.py: split up into different files and renamed _dbus.py
5501         * python/__init__.py, python/_util.py, python/decorators.py, 
5502         python/exceptions.py, python/proxies.py, python/services.py,
5503         python/types.py: new files split off from dbus.py
5504         * python/Makefile.am: Add new files, remove dbus.py and 
5505         install all python files to <python module dir>/dbus
5506         * python/examples/*: Added #!/usr/bin/env python to the top of
5507         every example.  Patch provided by Tatavarty Kalyan
5508
5509 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5510
5511         * NEWS: Update to 0.33
5512
5513 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5514
5515         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5516         method for doing async calls
5517         (_pending_call_notification): New C function for handling pendning call
5518         callbacks
5519         (set_notify): New method for setting pending call notification
5520         
5521         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5522         Async capabilities added to remote method calls
5523         (Sender): class removed
5524         (RemoteService): class removed
5525         (ObjectTree): class removed for now
5526         (RemoteObject): Renamed to ProxyObject
5527         (RemoteMethod): Renamed to ProxyMethod
5528         (method): Decorator added for decorating python methods as dbus methods
5529         (signal): Decorator added for decorating python methods as signal emitters
5530         (ObjectType): Metaclass added for generating introspection data and the
5531         method callback vtable
5532         (Interface): Wrapper class added to wrap objects in a dbus interface
5533         (Object): Uses ObjectType as its metaclass and exports Introspect
5534         of the org.freedesktop.DBus.Introspectable interface
5535         (ValidationException, UnknownMethodException): new exceptions
5536
5537         * python/examples/*: Modified to fit with the new bindings
5538
5539 2005-04-23  Havoc Pennington  <hp@redhat.com>
5540
5541         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5542         reported by Tony Houghton
5543
5544         * test/test-service.c (main): test
5545         dbus_connection_get_object_path_data()
5546
5547         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5548         the exact_match
5549         (_dbus_object_tree_get_user_data_unlocked): new function used by
5550         dbus_connection_get_object_path_data()
5551         (do_register): add assertion test for get_user_data_unlocked
5552         (object_tree_test_iteration): more tests
5553
5554         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5555         new function from Dan Reed to let you get the user data from 
5556         dbus_connection_register_object_path()
5557
5558 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5559
5560         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5561         in numerous places that did not account for the NULL terminator
5562         (signature_from_seed): changed the manual string copy loop to 
5563         just use strcpy instead
5564         make check should now pass
5565
5566 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5567
5568         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5569         so that it allows messages that are not signals to pass in 
5570         NULL as the interface.
5571
5572 2005-04-18  David Zeuthen  <davidz@redhat.com>
5573
5574         * glib/dbus-gmain.c (io_handler_destroy_source): 
5575         (timeout_handler_destroy_source, connection_setup_free): 
5576         Also unref the source to avoid memory leaks.
5577
5578 2005-04-13  David Zeuthen  <davidz@redhat.com>
5579
5580         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5581         more reasonable, yet still totally arbitrary, value :-). 
5582
5583 2005-04-13  David Zeuthen  <davidz@redhat.com>
5584
5585         * doc/TODO: Added an "important for 1.0" item about selinux
5586         allow/deny messages
5587
5588 2005-04-13  David Zeuthen  <davidz@redhat.com>
5589
5590         * bus/selinux.c: Add c-file-style to top of file
5591         (log_audit_callback): Don't free the data here anymore
5592         (bus_selinux_check): Don't take spid and tpid since appending
5593         that to auxdata may OOM.
5594         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5595         to the caller if we are OOM by taking an error object.
5596         (bus_selinux_allows_send): -do-
5597
5598         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5599         and bus_selinux_allows_send
5600
5601         * bus/bus.c (bus_context_check_security_policy): Pass error and
5602         pass on OOM thrown by bus_selinux_allows_send()
5603
5604         * bus/services.c (bus_registry_acquire_service): Pass error and
5605         pass on OOM thrown by bus_selinux_allows_acquire_service()
5606
5607 2005-04-13  Havoc Pennington  <hp@redhat.com>
5608
5609         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5610         message at a time to avoid monopolizing the main loop, bug 
5611         #2953 from Benjamin Otte
5612
5613 2005-04-09  Havoc Pennington  <hp@redhat.com>
5614
5615         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5616         possible overlap, fix from Daniel Reed
5617         (fixup_alignment): fix signedness warnings
5618         (_dbus_string_append_unichar): ditto
5619
5620 2005-04-09  Havoc Pennington  <hp@redhat.com>
5621
5622         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5623
5624         * glib/dbus-glib-tool.c (main): fix warning
5625
5626         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5627
5628         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5629         add a new function that can be used in simple applications that
5630         don't have a main loop and are willing to block
5631
5632 2005-04-05  David Zeuthen  <davidz@redhat.com>
5633
5634         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5635
5636         * glib/dbus-gmain.c:
5637         (io_handler_destroy_source): Remove from list of IO handlers
5638         of the ConnectionSetup object
5639         (timeout_handler_destroy_source): -do- for timeout handlers
5640         (io_handler_source_finalized): Don't remove from list since
5641         we now do that in io_handler_destroy_source(). Renamed from
5642         io_handler_source_destroyed
5643         (timeout_handler_source_destroyed): -do- for timeout handlers
5644         (connection_setup_free): It is now safe to iterate over all
5645         IO and timeout handlers as the _destroy_source removes them
5646         from the list synchronously
5647
5648 2005-03-30  Havoc Pennington  <hp@redhat.com>
5649
5650         * configure.in: change check to gtk 2.4
5651
5652         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5653         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5654         to 2.4
5655
5656 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5657
5658         * News: Update 0.32
5659
5660         * HACKING: Fixed realease instructions.  configure.in should be updated to
5661           the next release by the person who made the last release.
5662
5663 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5664
5665         * python/lvalue_cast_post_process.py - removed.  Patch has been
5666           submitted to Pyrex maintainers that fixes gcc4.0 errors
5667
5668         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5669
5670 2005-03-24  Daniel Reed  <n@ml.org>
5671
5672         * tools/Makefile.am: Make print-introspect and
5673         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5674
5675 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5676
5677         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5678
5679         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5680           had in Red Hat packages for a while but for some reason never 
5681           got merged upstream
5682           (_dbus_is_a_number): New checks if a string
5683           can be converted to a number and does the conversion if it can
5684           (_dbus_user_database_lookup): Add check to see if the given username
5685           is a udi.  This allows udi's to be used instead of usernames in the
5686           config file.
5687           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5688           is a gdi.  This allows gdi's to be used instead of groupnames in the
5689           config file.
5690
5691 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5692
5693         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5694           code so that it compiles with gcc4.0
5695
5696         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5697           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5698           results back to dbus_binding.c
5699
5700 2005-03-20  Colin Walters  <walters@verbum.org>
5701
5702         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5703
5704         * configure.in: Require GTK+ 2.6.
5705         
5706 2005-03-20  Colin Walters  <walters@verbum.org>
5707
5708         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5709
5710 2005-03-17  Tom Parker  <palfrey@tevp.net>
5711
5712         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5713         print DBUS_UID_UNSET; instead print passed username.  Also
5714         be sure to actually use gid looked up in cache.
5715         
5716         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5717         for DBUS_GID_UNSET and groupname.
5718
5719 2005-03-17  Colin Walters  <walters@verbum.org>
5720
5721         * bus/print-introspect.c: Move to tools/.
5722         * bus/run-with-tmp-session-bus.sh: Ditto.
5723         
5724         * glib/Makefile.am (dbus-glib-bindings.h): Move
5725         generation to tools/Makefile.am.
5726
5727         * test/glib/run-test.sh: Update to handle move
5728         of run-with-tmp-session-bus.sh.
5729
5730         * test/glib/test-service-glib.c: Update to handle
5731         move of dbus-glib-bindings.h.
5732
5733         * tools/print-introspect.c: Moved here
5734         from bus/, and ported to GLib bindings.
5735
5736         * tools/run-with-tmp-session-bus.sh: Moved here
5737         from bus/.
5738
5739         * tools/Makefile.am: Generate dbus-glib-bindings.h
5740         and dbus-bus-introspect.xml here.
5741
5742         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5743         Update.
5744
5745 2005-03-17  Colin Walters  <walters@verbum.org>
5746
5747         * bus/driver.c (write_args_for_direction): Use
5748         _dbus_string_get_const_data to retrieve string;
5749         _dbus_string_get_const_data_len doesn't actually return
5750         a NULL-terminated substring.
5751
5752         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5753         (main): Change to use org_freedesktop_DBus_request_name
5754         instead of using g_proxy_begin_call/end_call.
5755
5756 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5757
5758         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5759         generating the finalizer.  Fixes from Ben Maurer.
5760
5761 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5762
5763         * mono/BusDriver.cs: Update method names: ListServices
5764         becomes ListNames; GetOwner becomes GetNameOwner.
5765
5766         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5767         onto the eval stack when removing the delegate.
5768
5769 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5770
5771         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5772         LT_CURRENT.  Set it to the autoconf variable.
5773                                                                                 
5774         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5775         classes that disconnects the signal handler delegate from the
5776         service object.  Fixes a big leak of proxy objects on the
5777         client side of things.  Patch from Ben Maurer
5778         <bmaurer@ximian.com>
5779
5780 2005-03-12  Colin Walters  <walters@verbum.org>
5781
5782         * bus/driver.c (write_args_for_direction): New function,
5783         parses a type signature into arguments and outputs to
5784         XML.
5785         (bus_driver_handle_introspect): Use it instead of
5786         hardcoding XML for certain signatures.
5787         
5788         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5789         dependency on dbus-daemon.
5790
5791         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5792         argument, pass it to dbus_binding_tool_output_glib_client.
5793
5794         * glib/dbus-binding-tool-glib.c
5795         (generate_client_glue): Protect against multiple inclusion.
5796         (dbus_binding_tool_output_glib_client): Add
5797         G_BEGIN_DECLS/G_END_DECLS.
5798
5799         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5800         Change to just take iface prefix directly.
5801         (write_formal_parameters): Clarify error message.
5802         (check_supported_parameters): New function; checks to see type
5803         signatures of method parameters are supported.
5804         (generate_client_glue): Handle ignore_unsupported flag.
5805         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5806         parameter.
5807
5808         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5809         --ignore-unsupported by default until glib bindings
5810         support arrays.
5811
5812 2005-03-11  Colin Walters  <walters@verbum.org>
5813
5814         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5815         install it.
5816
5817         * bus/print-introspect.c: New file; prints introspection
5818         data for a given name and object path.
5819
5820         * bus/run-with-tmp-session-bus.sh: New file, refactored
5821         from test/glib/run-test.sh.  Creates a temporary session
5822         bus and runs another program.
5823
5824         * test/glib/run-test.sh: Refactor to invoke
5825         run-with-tmp-session-bus.sh.
5826
5827         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5828         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5829         macros instead of hardcoding.
5830
5831         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5832
5833 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5834
5835         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5836         this unref; it doesn't match up evenly in some codepaths.
5837         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5838         this evenly matches with the ref near the top of this function.
5839
5840 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5841
5842         * dbus/dbus-object-tree.c
5843         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5844         and we try to unregister a path that's not registered, still go
5845         through the process of unlocking and don't just return.
5846
5847 2005-03-09  Colin Walters  <walters@verbum.org>
5848
5849         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5850         to this are generated for client-side wrappers.  Invokes a
5851         D-BUS method and returns reply values.  
5852
5853         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5854         function; writes signature string for argument direction.
5855         (write_args_for_direction): Change to pass input values directly
5856         instead of via address, and fix indentation.
5857         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5858         make generated wrappers inlineable.
5859
5860         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5861         note about using dbus_type_is_fixed.
5862
5863         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5864         dbus/dbus-signature.c as dbus_type_is_fixed.
5865
5866         All callers updated.
5867
5868         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5869         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5870
5871         * dbus/dbus-signature.h: Prototype.
5872
5873         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5874         error printf code.
5875
5876         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5877         appropriate instead of just freeing it.
5878         (main): Free returned strings using g_free.
5879
5880         * test/glib/Makefile.am (test-service-glib-glue.h)
5881         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5882
5883         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5884         simply maps a simple D-BUS type to GType.
5885         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5886         GType.
5887         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5888         initialize the value with it.
5889         (dbus_gvalue_binding_type_from_type): Unused, delete.
5890         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5891         various types instead of unmarshalling to value data directly.
5892         Remove can_convert boolean.
5893         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5894         returning directly instead of using can_convert boolean.
5895         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5896         Stores a GValue in a pointer to a value of its corresponding C
5897         type.
5898
5899         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5900         add dbus_gvalue_store.
5901
5902 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5903
5904         Fix a bunch of lifecycle and memory management problems
5905         in the mono bindings.
5906
5907         * mono/Arguments.cs (Arguments): Implement IDisposable
5908
5909         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5910         strictly a static class.
5911
5912         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5913         delegates into this file.
5914         (Connection): Implement IDisposable.
5915         (Dispose): Disconnect the connection and set the raw connection
5916         pointer to IntPtr.Zero.
5917         (~Connection): Call Dispose().
5918         (RegisterObjectPath): Added.  Manages the registration of object
5919         paths so we can cleanly disconnect them at dispose/finalize time.
5920         (UnregisterObjectPath): Ditto.
5921         (set_RawConnection): Unregister all of the object paths when
5922         changing the underlying DBusConnection.  Add them back onto the
5923         new connection, if any.
5924
5925         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5926         more unmanaged resources anymore, so it's not necessary.  Move all
5927         the DBusObjectPathVTable stuff out of here.
5928         (Handler): Save references to our delegates so that they don't get
5929         finalized.  Call Connection.RegisterObjectPath() instead of
5930         dbus_connection_register_object_path() directly.
5931         (Message_Called): Dispose the message after we're finished with
5932         it.
5933
5934         * mono/Message.cs (Message): Implement IDisposable.
5935         (Dispose): Dispose the Arguments, and set the RawMessage to
5936         IntPtr.Zero.
5937         (SendWithReplyAndBlock): We own the ref to the reply that comes
5938         back from dbus_connection_send_with_reply_and_block() so add a
5939         comment about that and unref it after we've constructed a managed
5940         MethodReturn class around it.  Fixes a big, big leak.
5941
5942         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5943         method.
5944         (BuildSignalHandler): After we've sent the Signal message, dispose
5945         of it.
5946         (BuildMethod): Dispose of the method call and reply messages after
5947         we've sent the message and extracted the data we want from the
5948         reply.
5949
5950         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5951         anymore.
5952         (Service_FilterCalled): Dispose of the message after we're
5953         finished with it.
5954
5955 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5956
5957         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5958         After we attach our pending call to the connection, unref
5959         it.  Fixes a leak.
5960  
5961         * mono/Connection.cs (set_RawConnection): Disconnect our
5962         filter and match callbacks from the old connection and
5963         reconnect them to the new connection, if any.
5964
5965         * mono/DBusType/Array.cs: "Code" is a static member, so
5966         don't use "this" to refer to it.  Fix for stricter checking
5967         in Mono 1.1.4.
5968  
5969         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5970         object path that we pass into unmanaged code.
5971  
5972         * mono/DBusType/String.cs (Append): Don't leak the string
5973         that we pass into unmanged code.
5974
5975 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5976         * NEWS: Update for 0.31
5977
5978         * configure.in: Release 0.31
5979         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5980
5981         * qt/Makefile.am: fixed build
5982
5983         * dbus/Makefile.am: soname bump for libdbus
5984
5985         * glib/Makefile.am: soname bump for libdbus-glib
5986
5987 2005-03-05  Havoc Pennington  <hp@redhat.com>
5988
5989         * dbus/dbus-sysdeps.c:
5990         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5991         value
5992         (_dbus_generate_random_bytes_buffer): fix return value
5993
5994         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5995         checks actually work, from Tom Parker <fdo@tevp.net>
5996
5997 2005-03-01  Colin Walters  <walters@verbum.org>
5998
5999         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6000         functions copied from dbus-glib-tool.c.
6001         (main): Convert lots of error code to use them.
6002         Also add some testing for introspection bits.
6003
6004 2005-03-01  Colin Walters  <walters@verbum.org>
6005         
6006         * doc/TODO: Remove introspection signature TODO.
6007
6008 2005-02-27  Colin Walters  <walters@verbum.org>
6009
6010         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6011         Change return value to const char * instead of int so we can do
6012         full signatures.
6013         (struct PropertyInfo, struct ArgInfo): Store char *.
6014         (property_info_new, arg_info_new): Update parameters, strdup.
6015         (property_info_unref, arg_info_unref): Free.
6016
6017         * glib/dbus-gidl.h: Update prototypes.
6018
6019         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6020         (validate_signature): New function, just validates signature and
6021         sets GError.
6022         (parse_property, parse_arg): Invoke validate_signature.  Store
6023         signature instead of just type code.
6024
6025         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6026         function to return a primary type for a signature, dropping
6027         information about types in container types.
6028         (dbus_gvalue_genmarshal_name_from_type)
6029         (dbus_gvalue_binding_type_from_type)
6030         (dbus_gvalue_ctype_from_type): Update to take full signature
6031          instead of type code.
6032         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6033
6034         * glib/dbus-gvalue.h: Update prototypes for above.
6035
6036         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6037         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6038         (introspect_properties, introspect_signals, write_interface):
6039         Update to handle signatures, and remove usage of
6040         _dbus_gutils_type_to_string.
6041         (handle_introspect): Print out type codes instead of e.g. "string"
6042         in hardcoded introspection XML; also use x_AS_STRING constants
6043         instead of hardcoding in string.
6044
6045         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6046         to string.  Remove usage of _dbus_gutils_type_to_string.
6047
6048         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6049
6050         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6051         deletion.
6052         
6053         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6054         (compute_marshaller_name, generate_glue): Handle signature change
6055         to string.
6056         (write_formal_parameters, write_args_for_direction): Ditto, and
6057         remove FIXME.
6058
6059         * tools/dbus-tree-view.c (type_to_string): Delete.
6060         (info_set_func_text): Update to print full signatures.
6061
6062         * test/glib/test-service-glib.xml: Change types to new
6063         introspection format.
6064
6065 2005-02-26  Havoc Pennington  <hp@redhat.com>
6066
6067         * doc/TODO: remove the "guid" item
6068
6069         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6070         (with_bus_thread_func): use open_private
6071
6072         * dbus/dbus-connection.c (dbus_connection_open_private): new
6073         function that works like the old dbus_connection_open()
6074         (dbus_connection_open): now returns an existing connection if
6075         possible
6076
6077         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6078         through the GUID to the transport
6079
6080         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6081         GUID in hex-encoded form.
6082
6083         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6084         pass GUID argument in to the transport
6085
6086         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6087         guid argument
6088
6089         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6090
6091         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6092
6093 2005-02-25  Havoc Pennington  <hp@redhat.com>
6094
6095         * doc/dbus-specification.xml: document the GUID thing
6096
6097         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6098         globally unique ID for the server, and put a "guid=hexencoded"
6099         field in the address
6100
6101         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6102
6103         * dbus/dbus-message.c: ditto
6104
6105         * dbus/dbus-dataslot.c: ditto
6106
6107         * dbus/dbus-list.c: ditto
6108
6109         * dbus/dbus-internals.h: wait, just include
6110         dbus-threads-internal.h here
6111         
6112         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6113         use in main library
6114
6115         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6116
6117 2005-02-24  Colin Walters  <walters@verbum.org>
6118
6119         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6120
6121 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6122
6123         * glib/Makefile.am: added dbus-gobject.h to sources list
6124         so distcheck doesn't fail
6125         
6126 2005-02-24  Havoc Pennington  <hp@redhat.com>
6127
6128         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6129         you must disconnect before unref, since locking and other things
6130         are screwed up otherwise. Fix assorted other locking stuff.
6131
6132         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6133         fix compilation
6134
6135         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6136         into a private header and don't export from the library
6137
6138         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6139
6140 2005-02-24  Colin Walters  <walters@verbum.org>
6141         
6142         * dbus/dbus-signature.c: New file; implements various functions
6143         related to type signatures.  Includes an interator for parsing,
6144         validation functions.
6145         (dbus_type_is_basic): Moved here from
6146         dbus-marshal-basic.c:_dbus_type_is_basic.
6147         (dbus_type_is_container): Moved here from
6148         dbus-marshal-basic.c:_dbus_type_is_container.
6149
6150         All callers of _dbus_type_is_container and _dbus_type_is_basic
6151         updated, and include dbus-signature.h.
6152
6153         * dbus/dbus-signature.h: New file; prototypes for the above.
6154
6155         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6156         dbus-signature.h.
6157
6158         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6159         function factored out of _dbus_first_type_in_signature.
6160         (_dbus_first_type_in_signature_c_str): New function; returns first
6161         type code for a type signature character.
6162
6163         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6164         handle function moves.
6165
6166         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6167
6168         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6169         function; skips to next complete type in type signature.
6170         Implemented using previous skip_one_complete_type.  Now
6171         skip_one_complete_type just delegates to
6172         _dbus_type_signature_next.
6173
6174         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6175         to dbus-signature.c
6176         (_dbus_type_is_container): Ditto.
6177
6178         * doc/dbus-specification.xml: Update introspection sample to
6179         use real type signatures.
6180
6181         * dbus/dbus-test.h: Prototype signature test.
6182
6183         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6184         signature tests.
6185
6186         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6187
6188 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6189
6190         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6191         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6192
6193 2005-02-21  Colin Walters  <walters@verbum.org>
6194
6195         * dbus/dbus-test-main.c (main): Take optional specific test
6196         argument.
6197
6198         * dbus/dbus-test.c (run_test): New function, runs a test function
6199         with no data directory.
6200         (run_data_test): Like above, but takes data directory.
6201         (dbus_internal_do_not_use_run_tests): Take
6202         specific test argument.  Replace lots of cut n' paste code
6203         with run_test and run_data_test.
6204
6205         * dbus/dbus-test.h: Update prototype for
6206         dbus_internal_do_not_use_run_tests.
6207
6208 2005-02-20  Havoc Pennington  <hp@redhat.com>
6209
6210         Fix bugs reported by Daniel P. Berrange
6211         
6212         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6213         (protected_change_watch): new function
6214         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6215         (_dbus_server_add_watch): change to work like the
6216         dbus-connection.c equivalents; like those, probably kind of
6217         busted, but should at least mostly work for now
6218         (dbus_server_disconnect): drop the lock if we were already
6219         disconnected, patch from Daniel P. Berrange
6220
6221         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6222         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6223         same stuff
6224
6225         * doc/TODO: todo about unscrewing this mess
6226
6227 2005-02-19  Colin Walters  <walters@verbum.org>
6228
6229         * glib/dbus-binding-tool-glib.c
6230         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6231
6232         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6233         as errno.h and sys/stat.h.
6234         (lose): New function, prints error with
6235         newline and exits.
6236         (lose_gerror): Similar, but takes GError for message.
6237         (main): Add --output argument to specify output file to write to,
6238         instead of always printing to stdout.  In this mode, determine
6239         timestamps on source files to see whether any are newer than the
6240         target file.  If not, exit.  Also convert a number of error
6241         messages to use lose (since it's shorter), and switch to using
6242         g_io_channel_shutdown.
6243
6244 2005-02-19  Havoc Pennington  <hp@redhat.com>
6245
6246         * glib/dbus-gobject.c
6247         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6248
6249         * glib/dbus-glib.c: fix doxygen warnings
6250
6251         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6252         is found on an <arg>
6253
6254 2005-02-17  Colin Walters  <walters@verbum.org>
6255
6256         * glib/dbus-gobject.h: Don't export
6257         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6258         
6259         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6260         (invoke_object_method): Handle it.
6261
6262         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6263         Handle rename.
6264         
6265 2005-02-17  Colin Walters  <walters@verbum.org>
6266
6267         * bus/.cvsignore, doc/.cvsignore
6268         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6269         Update.
6270
6271 2005-02-17  Colin Walters  <walters@verbum.org>
6272         
6273         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6274         Rename to DBUS_SERVICE_DBUS.
6275         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6276         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6277         Change the value from "org.freedesktop.Local"
6278         to "org.freedesktop.DBus.Local".
6279         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6280         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6281         DBUS_INTERFACE_INTROSPECTABLE.
6282         Change the value from "org.freedesktop.Introspectable"
6283         to "org.freedesktop.DBus.Introspectable".
6284         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6285         DBUS_INTERFACE_PROPERTIES.
6286         Change the value from "org.freedesktop.Properties"
6287         to "org.freedesktop.DBus.Properties".
6288         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6289         DBUS_INTERFACE_PEER.
6290         Change the value from "org.freedesktop.Peer"
6291         to "org.freedesktop.DBus.Peer".
6292         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6293         DBUS_INTERFACE_LOCAL.
6294         Change the value from "org.freedesktop.Local"
6295         to "org.freedesktop.DBus.Local".
6296
6297         All other users of those constants have been changed.
6298
6299         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6300
6301         * glib/dbus-gobject.c (handle_introspect): Use constants.
6302
6303         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6304
6305 2005-02-17  Colin Walters  <walters@verbum.org>
6306
6307         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6308         (parse_node, parse_interface, parse_method, parse_signal)
6309         (parse_property, parse_annotation): Lose if we're currently in an
6310         annotation.
6311         (parse_annotation): New function.
6312         (parser_start_element, parser_end_element): Handle annotation.
6313         (parse_method, parse_interface): Remove support for c_name attribute,
6314         switch to annotations.
6315
6316         * glib/dbus-gidl.h (interface_info_get_binding_names)
6317         (method_info_get_binding_names)
6318         (interface_info_get_binding_name, method_info_get_binding_name)
6319         (interface_info_set_binding_name, method_info_set_binding_name):
6320         Remove.
6321         (interface_info_get_annotations, method_info_get_annotations)
6322         (interface_info_get_annotation, method_info_get_annotation)
6323         (interface_info_add_annotation, method_info_add_annotation):
6324         Prototype.
6325
6326         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6327         for "bindings".
6328         (struct MethodInfo): Ditto.
6329         Straightfoward conversion of binding methods into annotation methods
6330         as prototyped.
6331
6332         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6333
6334         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6335
6336         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6337         Use new annotation API.
6338
6339         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6340         annotation element.
6341         
6342         * doc/dbus-specification.xml: Discuss introspection annotations,
6343         include list of well-known annotations.
6344
6345         * test/glib/test-service-glib.xml: Make validate against new DTD.
6346
6347 2005-02-17  Colin Walters  <walters@verbum.org>
6348
6349         This patch is based on initial work from
6350         Paul Kuliniewicz <kuliniew@purdue.edu>.
6351
6352         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6353         initialization of GValue from dbus type to here.
6354         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6355         for the "glib-genmarshal" program from a DBus type.
6356         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6357         into the C name for it we use in the glib bindings.
6358         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6359         glib C type (not GValue).
6360         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6361
6362         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6363         from dbus-gobject.c.
6364
6365         * glib/dbus-gutils.h: Prototype it.
6366
6367         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6368         (marshal_dbus_message_to_g_marshaller): Use new shared function
6369         dbus_glib_marshal_dbus_message_to_gvalue_array.
6370
6371         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6372         Will be changed once we have annotations.
6373
6374         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6375         GStaticRWLock.  Callers updated.
6376         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6377         (string_table_next): New function for iterating over zero-terminated
6378         string value array.
6379         (string_table_lookup): New function; retrieves specific entry in
6380         array.
6381         (get_method_data): New function; look up method data in object data chunk.
6382         (object_error_domain_prefix_from_object_info)
6383         (object_error_code_from_object_info): New functions, but not implemented yet.
6384         (method_interface_from_object_info): New function; retrieve interface name.
6385         (method_name_from_object_info): New function; retrieve method name.
6386         (method_arg_info_from_object_info): New function; retrieve argument data.
6387         (arg_iterate): New function; iterates over serialized argument data.
6388         (method_dir_signature_from_object_info): New function; returns a
6389         GString holding type signature for arguments for just one
6390         direction (input or output).
6391         (method_input_signature_from_object_info)
6392         (method_output_signature_from_object_info): New functions.
6393         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6394         converts dbus message arguments into a GValue array.  Used for both
6395         signal handling and method invocation.
6396         (struct DBusGlibWriteIterfaceData): New utility structure.
6397         (write_interface): New function; generate introspection XML for
6398         an interface.
6399         (introspect_interfaces): New function; gathers all interface->methods,
6400         generates introspection XML for them.
6401         (handle_introspect): Invoke introspect_interfaces.
6402         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6403         (lookup_object_and_method): New function; examines an incoming message
6404         and attempts to match it up (via interface, method name, and argument
6405         signature) with a known object and method.
6406         (gerror_domaincode_to_dbus_error_name): New function; converts a
6407         GError domain and code into a DBus error name.  Needs GError data
6408         added to object introspection to work well.
6409         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6410         GError.
6411         (invoke_object_method): New function to invoke an object method
6412         looked up via lookup_object_and_method.  Parses the incoming
6413         message, turns it into a GValue array, then invokes the marshaller
6414         specified in the DBusGMethodInfo.  Creates a new message with
6415         either return values or error message as appropriate.
6416         (gobject_message_function): Invoke lookup_object_and_method and
6417         invoke_object_method.
6418
6419         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6420         (enum DBusBindingOutputMode): New enum for binding output modes.
6421         (pretty_print): Print binding names.
6422         (dbus_binding_tool_error_quark): GError bits.
6423         (version): Fix typo.
6424         (main): Create GIOChannel for output.  Parse new --mode argument,
6425         possible values are "pretty-print", "glib-server", "glib-client".
6426         Use mode to invoke appropriate function.
6427         
6428         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6429
6430         * glib/dbus-glib-tool.h: New header, just includes GError bits
6431         for now.
6432
6433         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6434         maps binding style to name.
6435         (struct MethodInfo): Ditto.
6436         (get_hash_keys, get_hash_key): Utility function, returns keys for
6437         a GHashTable.
6438         (interface_info_new, method_info_new): Initialize bindings.
6439         (interface_info_unref, method_info_unref): Destroy bindings.
6440         (method_info_get_binding_names, method_info_get_binding_name)
6441         (interface_info_get_binding_names, interface_info_get_binding_name):
6442         Functions for retrieving binding names.
6443         (method_info_set_binding_name, interface_info_set_binding_name):
6444         Functions for setting binding names.
6445
6446         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6447         for glib binding generation.
6448
6449         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6450         and client-side glib glue generation.
6451
6452         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6453         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6454         dbus-glib-tool.h.
6455
6456         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6457         of using GClosureMarshal directly.
6458         (struct DBusGObjectInfo): Add n_infos member.
6459
6460         * test/glib/test-service-glib.xml: New file; contains introspection data
6461         for MyTestObject used in test-service-glib.c.
6462
6463         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6464         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6465         (my_object_uppercase, my_object_many_args): New test methods.
6466         (main): Use dbus_g_object_class_install_info to include generated object
6467         info.
6468
6469         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6470         as well as client-side bindings.
6471
6472         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6473         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6474         using both the dbus_gproxy stuff directly as well as the generated bindings.
6475
6476 2005-02-15  Havoc Pennington  <hp@redhat.com>
6477
6478         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6479         complete a pending call, don't run filters first.
6480
6481         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6482         dbus_pending_call_steal_reply
6483
6484         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6485         _dbus_connection_block_pending_call
6486         (dbus_pending_call_get_reply): change to steal_reply and return a
6487         ref
6488
6489         * dbus/dbus-connection.c
6490         (dbus_connection_send_with_reply_and_block): port to work in terms
6491         of DBusPendingCall
6492         (_dbus_connection_block_pending_call): replace block_for_reply
6493         with this
6494
6495 2005-02-14  Havoc Pennington  <hp@redhat.com>
6496
6497         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6498         properly handle looking up group information by name; fix 
6499         from j@bootlab.org
6500
6501 2005-02-13  Havoc Pennington  <hp@redhat.com>
6502
6503         * dbus/dbus-connection.c (dbus_connection_return_message) 
6504         (dbus_connection_borrow_message): hold dispatch lock while message
6505         is outstanding
6506         (_dbus_connection_block_for_reply): hold dispatch lock while we
6507         block for the reply, so nobody steals our reply
6508         (dbus_connection_pop_message): hold the dispatch lock while we
6509         pluck the message
6510
6511 2005-02-13  Havoc Pennington  <hp@redhat.com>
6512
6513         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6514         (_dbus_connection_release_dispatch)
6515         (_dbus_connection_acquire_io_path)
6516         (_dbus_connection_release_io_path): make the mutex and condvar
6517         control access to the "acquired" flag. Drop the connection lock
6518         while waiting on the condvar. Hopefully these are baby steps in
6519         roughly the right direction.
6520
6521 2005-02-13  Havoc Pennington  <hp@redhat.com>
6522
6523         * dbus/dbus-connection.c: use separate mutexes for the condition
6524         variables; this is some kind of baseline for sanity, but the
6525         condition variables still aren't used correctly afaict
6526
6527 2005-02-13  Havoc Pennington  <hp@redhat.com>
6528
6529         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6530         fix a double-unlock
6531
6532         * dbus/dbus-connection.c
6533         (_dbus_connection_detach_pending_call_unlocked): add this
6534
6535         Initial semi-correct pass through to fix thread locking; there are
6536         still some issues with the condition variable paths I'm pretty
6537         sure
6538         
6539         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6540         lock/unlock calls
6541
6542         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6543         rename to add _unlocked
6544         (struct DBusConnection): move "dispatch_acquired" and
6545         "io_path_acquired" to use only one bit each.
6546         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6547         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6548         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6549         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6550         (_dbus_connection_remove_timeout) 
6551         (_dbus_connection_toggle_timeout): drop lock when calling out to
6552         user functions; done in a hacky/bad way.
6553         (_dbus_connection_send_and_unlock): add a missing unlock
6554         (_dbus_connection_block_for_reply): add a missing unlock
6555
6556         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6557         drop lock in a hacky probably unsafe way to call out to user
6558         function
6559
6560 2005-02-12  Havoc Pennington  <hp@redhat.com>
6561
6562         * tools/dbus-tree-view.c (info_set_func_text): display more
6563         details on args
6564
6565         * bus/driver.c (bus_driver_handle_list_services): list the bus
6566         driver
6567
6568         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6569
6570         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6571         (method_info_get_n_args): new function
6572
6573 2005-02-12  Havoc Pennington  <hp@redhat.com>
6574
6575         * bus/driver.c (bus_driver_handle_introspect): add introspection
6576         for bus driver
6577
6578 2005-02-12  Havoc Pennington  <hp@redhat.com>
6579
6580         * bus/driver.c: put the signature of each bus driver method in the
6581         table of handlers and check it on incoming calls; this isn't
6582         really useful, but going to add introspect support in a minute.
6583
6584 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6585
6586         * mono/Connection.cs: The unpredictability of finalizers in mono
6587         prevents us from deterministically disconnecting the filters from
6588         the Service class's finalizer, so move tracking of filters and
6589         matches here.  Add API for that.
6590
6591         * mono/Service.cs: Remove the code, add code which calls the
6592         methods now on the Connection class.
6593
6594 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6595
6596         * python/dbus.py (class Sender): added to support dbus signals better
6597         (Bus::add_signal_receiver): added expand_args parameter which defaults
6598         to True.  When expand args is True the signal handler will pass the 
6599         message arguments as parameters to the signal handler.  If False
6600         revert to previous behavior where the signal handler must get the
6601         argument list from the message.  This is to help port applications
6602         like HAL that have a tendancy to send variable length argument lists.
6603         self._match_rule_to_receivers is now a dict of dicts.
6604         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6605         removing it from a list
6606         (Bus::_signal_func): change signal handlers so that interface,
6607         signal_name, service, path and message are packed into a Sender
6608         object and that is passed to the handler.  If expand_args is True
6609         extract the args list from the message and append it to the parameter
6610         list
6611         
6612         * python/dbus_bindings.pyx.in (class Signature): added to support 
6613         signiature types
6614         (MessageIter::__init__): changed iteration limit to match D-BUS
6615         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6616         STRUCT and VARIENT type support
6617         (MessageIter::python_value_to_dbus_sig): made recursive to support
6618         recursive types
6619         (MessageIter::append*): added Signature, dict, tuple 
6620         support
6621
6622         * python/examples/example-client.py: added examples of getting tuples
6623         and dicts
6624
6625         * python/examples/example-service.py: added examples of sending tuples
6626         and dicts
6627
6628         * python/examples/example-signal-recipient.py: Fixed to handle new
6629         signal callback format
6630
6631 2005-02-10  Havoc Pennington  <hp@redhat.com>
6632
6633         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6634         (call dbus_g_proxy_add_signal)
6635
6636         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6637         escape the hostname
6638         (_dbus_server_new_for_domain_socket): escape the path
6639
6640         * dbus/dbus-address.c (dbus_address_escape_value): new
6641         (dbus_address_unescape_value): new
6642         (dbus_parse_address): unescape values
6643
6644         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6645
6646         * doc/dbus-specification.xml: explain how to escape values in
6647         addresses
6648
6649 2005-02-10  Havoc Pennington  <hp@redhat.com>
6650
6651         * dbus/dbus-message-factory.c (generate_special): modify test to
6652         avoid using a non-basic dict key
6653
6654         * dbus/dbus-marshal-validate-util.c: add test for the below
6655
6656         * doc/dbus-specification.xml: require that dict keys are a basic
6657         type
6658
6659         * dbus/dbus-marshal-validate.c
6660         (_dbus_validate_signature_with_reason): require that dict key is a
6661         basic type
6662
6663 2005-02-10  Havoc Pennington  <hp@redhat.com>
6664
6665         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6666         change to be _and_unlock instead of _unlocked
6667
6668         * dbus/dbus-connection.c
6669         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6670         have no_update so we can find this bug quickly in future
6671
6672 2005-02-10  Havoc Pennington  <hp@redhat.com>
6673
6674         * dbus/dbus-message-util.c (verify_test_message): tests for string
6675         array
6676
6677         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6678         support for arrays of string/signature/path
6679
6680 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6681
6682         * dbus/dbus-connection.c
6683         (_dbus_connection_queue_received_message_link,
6684         _dbus_connection_message_sent): Add the path to
6685         the verbose output.
6686         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6687         _dbus_connection_send_preallocated_unlocked(), updated the
6688         dispatch status, and unlocks.  Fixes a bug where certain
6689         situations (like a broken pipe) could cause a Disconnect message
6690         to not be sent, tricking the bus into thinking a service was still
6691         there when the process had quit.
6692         (_dbus_connection_send_preallocated): Call
6693         _dbus_connection_send_preallocated_and_unlock().
6694         (_dbus_connection_send_and_unlock): Added.  Calls
6695         _dbus_connection_send_preallocated_and_unlock().
6696         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6697         (dbus_connection_send_with_reply): Update the dispatch status and
6698         unlock.
6699
6700         * mono/Service.cs (~Service): Added.  Removes the filter so that
6701         we don't get unmanaged code calling back into a GCed delegate.
6702         (RemoveFilter); Added.
6703
6704 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6705
6706         * dbus/dbus-message.c (dbus_message_iter_open_container):
6707         - Removed check for iterator type being an array because
6708         get_arg_type does not work with writer iterators
6709         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6710
6711 2005-02-07  Havoc Pennington  <hp@redhat.com>
6712
6713         * doc/dbus-specification.xml: some more language cleanups; add
6714         stuff about how to deal with invalid protocol and extension
6715         points; add _ to allowed chars in auth commands; add EXTENSION_
6716         auth command prefix
6717
6718 2005-02-06  Havoc Pennington  <hp@redhat.com>
6719
6720         * s/expected/required/ in a couple places for clarity
6721
6722 2005-02-07  Colin Walters  <walters@verbum.org>
6723
6724         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6725         sender or proposed_recipient.
6726
6727 2005-02-06  Havoc Pennington  <hp@redhat.com>
6728
6729         * dbus/dbus-message-factory.c (generate_special): more tests
6730
6731         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6732         array length that exceeds the maximum
6733
6734 2005-02-05  Havoc Pennington  <hp@redhat.com>
6735
6736         * dbus/dbus-message-factory.c (generate_special): more test cases,
6737         increasing coverage
6738
6739         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6740         reason why a signature was invalid
6741
6742         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6743         skip the length of the string before we look at it in validation
6744
6745         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6746         equal_substring
6747
6748         * dbus/dbus-message.c (_dbus_message_loader_new): default
6749         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6750
6751 2005-02-05  Havoc Pennington  <hp@redhat.com>
6752
6753         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6754         if the signature of a variant was empty
6755         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6756         struct with no element type)
6757
6758         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6759         mangled messages to break things
6760
6761 2005-02-04  Havoc Pennington  <hp@redhat.com>
6762
6763         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6764         g_quark_try_string() so it actually can return 0
6765         (dbus_g_proxy_connect_signal): ditto
6766
6767 2005-02-04  Havoc Pennington  <hp@redhat.com>
6768
6769         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6770         bogus warning
6771         (tristring_from_message): assert cleanly on null path/interface
6772         (should not be possible though I decided later)
6773         (dbus_g_proxy_dispose): move proxy manager unregistration here
6774         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6775         g_return_if_fail() checks
6776
6777 2005-02-04  Havoc Pennington  <hp@redhat.com>
6778
6779         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6780
6781         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6782         (with some minor changes)
6783
6784         * doc/dbus-specification.xml: add deprecated attribute to
6785         introspection format
6786
6787 2005-01-31  Havoc Pennington  <hp@redhat.com>
6788
6789         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6790         think it's sort of right
6791
6792 2005-01-30  Havoc Pennington  <hp@redhat.com>
6793
6794         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6795
6796 2005-01-30  Havoc Pennington  <hp@redhat.com>
6797
6798         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6799
6800         * autogen.sh: change to autotools 1.9
6801
6802         * glib/dbus-gproxy.c: completely change how signals work
6803         (dbus_g_proxy_add_signal): new function to specify signature of a
6804         signal
6805         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6806         and g_warning if the incoming message has the wrong signature.
6807
6808 2005-01-30  Havoc Pennington  <hp@redhat.com>
6809
6810         * tools/dbus-names-model.c (have_names_notify): fix this
6811
6812         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6813         up the string array handling a bit 
6814
6815 2005-01-30  Havoc Pennington  <hp@redhat.com>
6816
6817         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6818         (dbus_g_pending_call_cancel): new function
6819
6820         * dbus/dbus-glib.h: move GType decls for connection/message here;
6821         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6822         here, just kind of rationalizing how we handle all that
6823
6824         * tools/dbus-names-model.c: new file for a tree model listing the
6825         services on a bus
6826
6827         * tools/dbus-tree-view.c (model_new): use proper typing on the
6828         model rows
6829
6830 2005-01-30  Havoc Pennington  <hp@redhat.com>
6831
6832         * glib/dbus-gmain.c: add a custom GSource back that just checks
6833         whether the message queue has anything in it; otherwise, there are 
6834         cases where we won't see messages in the queue since there was no 
6835         IO visible to the glib main loop
6836
6837         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6838         increase default message timeout to 25 seconds
6839
6840 2005-01-30  Havoc Pennington  <hp@redhat.com>
6841
6842         * test/glib/test-profile.c (no_bus_stop_server): remove the
6843         warning about the g_warning that I just fixed
6844
6845         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6846         custom source, seems to be a lot easier to understand and work
6847         better.
6848
6849 2005-01-30  Havoc Pennington  <hp@redhat.com>
6850
6851         I think this main loop thing is conceptually broken, but here are 
6852         some band aids. I'll maybe rewrite it in a minute.
6853         
6854         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6855         custom GSource, so don't pass it in; confusing
6856         (gsource_server_finalize, gsource_connection_finalize): add
6857         finalize handlers that remove all the watches.  
6858
6859 2005-01-30  Havoc Pennington  <hp@redhat.com>
6860
6861         * glib/dbus-gobject.c (introspect_properties): fix the XML
6862         generated
6863
6864         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6865         which effectively detects the use of freed messages
6866
6867         * glib/dbus-gobject.c (handle_introspect): modify and return the
6868         reply message instead of the incoming message
6869
6870         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6871         gee, maybe it should SEND THE XML instead of just making a string
6872         and freeing it again ;-)
6873
6874         * tools/dbus-print-message.c (print_message): improve printing of
6875         messages
6876
6877         * configure.in: add debug-glib.service to the output
6878
6879 2005-01-30  Havoc Pennington  <hp@redhat.com>
6880
6881         dbus-viewer introspected and displayed the bus driver
6882         
6883         * dbus/dbus-object-tree.c 
6884         (object_tree_test_iteration): add tests for a handler registered on "/"
6885
6886         * dbus/dbus-object-tree.c
6887         (_dbus_decompose_path): fix to handle path "/" properly
6888         (run_decompose_tests): add tests for path decomposition
6889         
6890         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6891         properly
6892
6893         * glib/dbus-gobject.c (handle_introspect): fix quotes
6894
6895         * test/glib/run-test.sh: support launching the bus, then running
6896         dbus-viewer
6897
6898         * test/glib/test-service-glib.c (main): put in a trivial gobject
6899         subclass and register it on the connection
6900
6901         * bus/driver.c (bus_driver_handle_introspect): implement
6902         introspection of the bus driver service
6903
6904         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6905         identifiers, doctype decl
6906
6907         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6908         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6909         returning the service unchanged.
6910         (bus_driver_handle_message): remove old check for reply_serial in
6911         method calls, now the message type deals with that
6912         (bus_driver_handle_message): handle NULL interface
6913
6914         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6915
6916         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6917         -1 for len
6918
6919         * tools/dbus-viewer.c: add support for introspecting a service on
6920         a bus
6921
6922         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6923         (dbus_g_pending_call_unref): add
6924
6925 2005-01-29  Havoc Pennington  <hp@redhat.com>
6926
6927         * tools/dbus-tree-view.c: add support for displaying properties.
6928         (run dbus-viewer with an introspect xml file as arg, then resize
6929         the window so the tree elements show up, not sure what that is)
6930
6931         * glib/dbus-gobject.c (handle_introspect): return
6932         org.freedesktop.Properties and org.freedesktop.Introspectable
6933         interfaces when we are introspected.
6934
6935         * doc/dbus-specification.xml: allow empty interface name when 
6936         Get/Set a property
6937
6938 2005-01-29  Havoc Pennington  <hp@redhat.com>
6939
6940         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6941         though it uses glib, it could be extended for any binding in
6942         principle
6943
6944         * glib/dbus-gobject.c (gobject_message_function): change to the
6945         new way properties work
6946
6947         * dbus/dbus-protocol.h: add the new interfaces
6948
6949         * doc/dbus-specification.xml: document the introspection format,
6950         Introspectable interface, and add an org.freedesktop.Properties
6951         interface.
6952
6953         * glib/dbus-gparser.c: add support for a <property> element
6954
6955         * glib/dbus-gidl.c: add PropertyInfo
6956
6957         * glib/dbus-gobject.c (handle_introspect): put the outermost
6958         <node> outside the signal and property descriptions.
6959         (introspect_properties): export properties as <property> rather
6960         than as method calls
6961
6962 2005-01-28  Havoc Pennington  <hp@redhat.com>
6963
6964         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6965         related to authentication protocol
6966
6967 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6968
6969         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6970                 - BUS_ACTIVATION -> BUS_STARTER
6971                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6972                 - class MessageIter (__init__): Added recursion checking 
6973                 so we throw a nice error instead of just disconnecting from the
6974                 bus.
6975                 (get): Added arg_type parameter for recursion.
6976                 Removed the nil type
6977                 Added signiture type placeholder (not implemented)
6978                 Added struct type placeholder (not implemented)
6979                 Added varient type placeholder (not implemented)
6980                 Commented out dict type for now     
6981                 (get_element_type): renamed from get_array_type
6982                 (get_*): changed to use the dbus_message_iter_get_basic API
6983                 (get_*_array): removed in favor of recursive get_array method
6984                 (get_array): new recursive method which calls get to marshal
6985                 the elements of the array
6986                 (value_to_dbus_sig): New method returns the corrasponding
6987                 dbus signiture to a python value
6988                 (append): Comment out dict handling for now
6989                 Handle lists with the new recursive API
6990                 Comment out None handling for now
6991                 (append_nil): removed
6992                 (append_*): changed to use dbus_message_iter_append_basic API
6993                 (append_*_array): removed in favor of recursive append_array 
6994                 method
6995                 (__str__): Make it easier to print out recursive iterators
6996                 for debugging
6997                 - class Message (__str__): moved type inspection to the
6998                 MessageIter class' __str__ method
6999                 (get_iter): Added an append parameter wich defaults to False
7000                 If True use the new API's to create an append iterator
7001
7002         * python/dbus.py: Update to use new bindings API
7003                 - TYPE_ACTIVATION -> TYPE_STARTER
7004                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7005                 - class ActivationBus -> class StarterBus
7006                 - class RemoteObject (__call__): get an append iterator
7007                 - (_dispatch_dbus_method_call): get an append iterator
7008                 - class Object (emit_signal): get an append iterator
7009
7010         * python/examples/: Fixed up the examples to work with the new API
7011                 
7012 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7013
7014         * configure.in: Bump version up to 0.30.
7015
7016         * HACKING: Add a release item to bump the version number up after 
7017         a release.
7018
7019 2005-01-28  Havoc Pennington  <hp@redhat.com>
7020
7021         * doc/dbus-specification.xml: update to describe 16-bit types and
7022         dict entries
7023
7024         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7025         assertion
7026
7027         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7028         type
7029
7030         * dbus/dbus-marshal-recursive.c: implement
7031
7032 2005-01-27  Havoc Pennington  <hp@redhat.com>
7033
7034         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7035
7036         * configure.in: find the right type for 16 and 32 bit ints as well
7037         as 64
7038
7039         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7040         the 16-bit types so people don't have to stuff them in 32-bit or
7041         byte arrays.
7042
7043 2005-01-27  Havoc Pennington  <hp@redhat.com>
7044
7045         * dbus/dbus-message.c: byteswap the message if you init an
7046         iterator to read/write from it
7047         
7048         * dbus/dbus-marshal-byteswap.c: new file implementing 
7049         _dbus_marshal_byteswap()
7050
7051         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7052
7053 2005-01-26  Havoc Pennington  <hp@redhat.com>
7054         
7055         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7056         build, apparently - nobody noticed?)
7057         
7058 2005-01-26  Havoc Pennington  <hp@redhat.com>
7059
7060         * dbus/dbus-marshal-recursive.h: remove todo comment
7061
7062 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7063
7064         * Land the mono binding changes to conform to the new APIs.
7065
7066         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7067         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7068
7069         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7070         type code as a string.
7071         (InitAppending): Rename dbus_message_append_iter_init() to
7072         dbus_message_iter_init_append().
7073
7074         * mono/BusDriver.cs: Rename ServiceEventHandler to
7075         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7076         Rename ServiceOwnerChanged to NameOwnerChanged.
7077
7078         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7079         underlying C call.
7080
7081         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7082
7083         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7084         dbus_bus_acquire_service() to dbus_bus_request_name().
7085
7086         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7087         of Type.UnderlyingSystemType to get the correct element type for
7088         the array.
7089         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7090         dbus_message_get_{element|arg}_type() instead of
7091         dbus_message_iter_init_array_iterator().
7092         (Append): Replace dbus_message_iter_append_array() with
7093         dbus_message_iter_open_container() and
7094         dbus_message_iter_close_container().
7095
7096         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7097         types have been removed.
7098         
7099         * mono/DBusType/*.cs: Replace calls of
7100         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7101         but specify the type in the DllImport extern declaration.  Ditto
7102         for dbus_message_iter_append_[type]() ->
7103         dbus_message_iter_append_basic().
7104
7105         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7106         NameOwnerChangedHandler.
7107
7108 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7109
7110         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7111                 - get_base_service -> get_unique_name
7112                 - bus_get_base_service -> bus_get_unique_name
7113                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7114                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7115                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7116                 - bus_activate_service -> bus_start_service_by_name
7117                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7118                 - bus_acquire_service -> bus_request_name
7119                 - dbus_bus_acquire_service -> dbus_bus_request_name
7120                 - bus_service_exists -> bus_name_has_owner
7121                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7122
7123         * python/dbus.py: Rename of methods
7124                 - activate_service -> start_service_by_name
7125                 - bus_acquire_service -> bus_request_name
7126                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7127                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7128
7129         
7130 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7131
7132         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7133         signature for the method that can't be found.
7134
7135         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7136         the message has any arguments, we need to call
7137         _dbus_type_reader_get_current_type(), not
7138         _dbus_type_reader_has_next().
7139
7140 2005-01-24  Havoc Pennington  <hp@redhat.com>
7141
7142         * dbus/dbus-message-factory.c: more testing of message validation
7143
7144         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7145         header
7146
7147 2005-01-23  Havoc Pennington  <hp@redhat.com>
7148
7149         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7150         get this all working, not many tests in the framework yet though
7151
7152 2005-01-22  Havoc Pennington  <hp@redhat.com>
7153
7154         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7155         tutorial, based on work from David Wheeler.
7156
7157 2005-01-21  Havoc Pennington  <hp@redhat.com>
7158
7159         * dbus/dbus-bus.c: add more return_if_fail checks
7160
7161         * dbus/dbus-message.c (load_message): have the "no validation"
7162         mode (have to edit the code to toggle the mode for now though)
7163
7164         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7165         skips all validation; I want to use this at least for benchmark
7166         baseline, I'm not sure if it should be a publicly-available switch.
7167
7168 2005-01-21  Havoc Pennington  <hp@redhat.com>
7169
7170         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7171         toplevel doxygen group as the low-level API stuff
7172
7173         * dbus/dbus.h: note that libdbus is the low-level API
7174
7175 2005-01-20  Havoc Pennington  <hp@redhat.com>
7176
7177         * update-dbus-docs.sh: script to update docs on the web site, only
7178         works for me though. neener.
7179
7180 2005-01-20  Havoc Pennington  <hp@redhat.com>
7181
7182         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7183         code can reveal bugs in it
7184
7185 2005-01-20  Havoc Pennington  <hp@redhat.com>
7186
7187         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7188         select() version, patches from Tor Lillqvist
7189
7190 2005-01-20  Havoc Pennington  <hp@redhat.com>
7191
7192         * doc/dbus-tutorial.xml: replace > with &gt;
7193
7194         * bus/services.c (bus_registry_acquire_service): validate the name
7195         and return a better error if it's no good.
7196
7197         * doc/dbus-specification.xml: note NO_AUTO_START change
7198
7199         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7200         from AUTO_START, we're toggling the default
7201
7202         * bus/dispatch.c: adapt the tests to change of auto-start default
7203
7204 2005-01-18  Havoc Pennington  <hp@redhat.com>
7205
7206         * rename dbus-daemon-1 to dbus-daemon throughout
7207
7208 2005-01-18  Havoc Pennington  <hp@redhat.com>
7209
7210         * Throughout, grand renaming to strip out the use of "service",
7211         just say "name" instead (or "bus name" when ambiguous).  Did not
7212         change the internal code of the message bus itself, only the
7213         programmer-facing API and messages.
7214         
7215         * doc/dbus-specification.xml: further update the message bus section
7216         
7217         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7218         in error case
7219
7220 2005-01-17  Havoc Pennington  <hp@redhat.com>
7221
7222         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7223         ever
7224
7225         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7226         "invalid name character" not only non-ASCII
7227
7228         * doc/dbus-specification.xml: further update spec, message bus 
7229         parts are still out-of-date but the marshaling etc. stuff is now
7230         accurate-ish
7231
7232 2005-01-17  Havoc Pennington  <hp@redhat.com>
7233
7234         * doc/dbus-specification.xml: partially update spec
7235
7236 2005-01-17  Havoc Pennington  <hp@redhat.com>
7237
7238         * Throughout, align variant bodies according to the contained
7239         type, rather than always to 8. Should save a fair bit of space in
7240         message headers.
7241         
7242         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7243         fix handling of case where p == end
7244
7245         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7246
7247 2005-01-17  Havoc Pennington  <hp@redhat.com>
7248
7249         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7250
7251         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7252         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7253         are marshaling/unmarshaling a boolean.
7254
7255 2005-01-16  Havoc Pennington  <hp@redhat.com>
7256
7257         This is about it on what can be disabled/deleted from libdbus
7258         easily, back below 150K anyhow. Deeper cuts are more work than 
7259         just turning the code off as I've done here.
7260         
7261         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7262         signed int convenience funcs
7263
7264         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7265         verbose mode
7266
7267         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7268         things out of libdbus
7269
7270         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7271         
7272         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7273         tests-enabled-only, though it should probably be deleted)
7274
7275         * dbus/dbus-message-util.c: same stuff
7276
7277         * dbus/dbus-auth-util.c: same stuff
7278
7279 2005-01-16  Havoc Pennington  <hp@redhat.com>
7280
7281         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7282
7283         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7284         way for stripping down dbus-userdb.c stuff included in libdbus.
7285         Rename _dbus_parse_uid for consistency.
7286
7287 2005-01-16  Havoc Pennington  <hp@redhat.com>
7288
7289         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7290         name the assertion failed in
7291
7292         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7293         (_dbus_return_val_if_fail): assert that the name of the function
7294         containing the check doesn't start with '_', since we only want to 
7295         use checks on public functions
7296         
7297         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7298         checks to assertions
7299
7300         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7301         change checks to asserts for private function
7302
7303         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7304         to asserts for private function
7305
7306         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7307         broken assertion that was breaking make check
7308         (_dbus_type_reader_array_is_empty): remove this rather than fix
7309         it, was only used in assertions
7310
7311 2005-01-16  Havoc Pennington  <hp@redhat.com>
7312
7313         * test/unused-code-gc.py: hacky script to find code that's used
7314         only by the bus (not libdbus) or used only by tests or not used at
7315         all. It has some false alarms, but looks like we can clean up a
7316         lot of size from libdbus.
7317
7318         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7319         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7320         
7321 2005-01-16  Havoc Pennington  <hp@redhat.com>
7322
7323         * Add and fix docs according to Doxygen warnings throughout
7324         source.
7325         
7326         * dbus/dbus-marshal-recursive.c
7327         (_dbus_type_reader_array_is_empty): change this to just call
7328         array_reader_get_array_len() and make it static
7329
7330         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7331         from get_array_type
7332         (dbus_message_iter_init_append): rename from append_iter_init
7333
7334         * dbus/dbus-marshal-recursive.c
7335         (_dbus_type_reader_get_element_type): rename from
7336         _dbus_type_reader_get_array_type
7337
7338 2005-01-15  Havoc Pennington  <hp@redhat.com>
7339
7340         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7341
7342         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7343         when DBUS_DISABLE_ASSERT
7344         (_dbus_marshal_set_basic): be sure we align for the string length
7345
7346         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7347         this look faster
7348
7349         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7350         inline macro version
7351         (_dbus_string_set_byte): provide inline macro version
7352
7353 2005-01-15  Havoc Pennington  <hp@redhat.com>
7354
7355         * Land the new message args API and type system.
7356
7357         This patch is huge, but the public API change is not 
7358         really large. The set of D-BUS types has changed somewhat, 
7359         and the arg "getters" are more geared toward language bindings;
7360         they don't make a copy, etc.
7361
7362         There are also some known issues. See these emails for details
7363         on this huge patch:
7364         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7365         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7366         
7367         * dbus/dbus-marshal-*: all the new stuff
7368
7369         * dbus/dbus-message.c: basically rewritten
7370
7371         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7372         freed blocks to be all non-nul bytes so using freed memory is less
7373         likely to work right
7374
7375         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7376         DBUS_FAIL_MALLOC=N environment variable, so you can do
7377         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7378         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7379         thorough.
7380
7381         * qt/message.cpp: port to the new message args API
7382         (operator<<): use str.utf8() rather than str.unicode()
7383         (pretty sure this is right from the Qt docs?)
7384
7385         * glib/dbus-gvalue.c: port to the new message args API
7386
7387         * bus/dispatch.c, bus/driver.c: port to the new message args API
7388
7389         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7390         "locked" flag to TRUE and align_offset to 0; I guess we never
7391         looked at these anyhow, but seems cleaner.
7392
7393         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7394         move allocation padding macro to this header; use it to implement
7395         (_DBUS_STRING_STATIC): ability to declare a static string.
7396
7397         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7398         change to return TRUE if the interface is not set.
7399
7400         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7401         to dbus-marshal-validate.[hc]
7402
7403         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7404         dbus-internals.c
7405
7406         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7407         to dbus-marshal-*.[hc]
7408
7409         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7410         function here from dbus-marshal.c
7411
7412 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7413
7414         * NEWS: Update for 0.23.
7415
7416         * configure.in: Release 0.23.
7417
7418 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7419
7420         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7421         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7422         behind.
7423
7424         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7425         uninstall"
7426
7427         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7428         is an enum, get the enum's underlying type.  Another mono
7429         1.1.3 fix.
7430
7431 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7432
7433         Patch from Sjoerd Simons <sjoerd@luon.net>
7434
7435         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7436         DESTDIR.  It breaks stuff.
7437
7438 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7439
7440         Patch from Tambet Ingo <tambet@ximian.com>
7441
7442         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7443         calling type.GetElementType().  The code previously depended on
7444         broken Mono behavior, which was fixed in Mono 1.1.3.
7445
7446         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7447         Activator.CreateInstance() so that the class's constructor is
7448         called with the right parameters.
7449
7450 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7451
7452         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7453
7454         * dbus/dbus-connection.c
7455         (_dbus_connection_queue_received_message_link): Call
7456         _dbus_connection_remove_timeout() instead of the _locked()
7457         variant, since it's always called from
7458         _dbus_connection_handle_watch(), which handles the locking.
7459         Removed the _locked() variant since it's no longer used.
7460
7461 2005-01-03  Havoc Pennington  <hp@redhat.com>
7462
7463         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7464         return
7465         
7466 2004-12-26  Havoc Pennington  <hp@redhat.com>
7467
7468         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7469
7470 2005-01-03  Havoc Pennington  <hp@redhat.com>
7471
7472         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7473         floating point
7474
7475         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7476
7477 2005-01-02  Havoc Pennington  <hp@redhat.com>
7478
7479         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7480
7481 2005-01-01  Havoc Pennington  <hp@redhat.com>
7482
7483         * configure.in: add -Wfloat-equal
7484
7485 2005-01-01  Havoc Pennington  <hp@redhat.com>
7486
7487         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7488         for a variety of reasons '==' doesn't do this.
7489
7490 2004-12-31  Havoc Pennington  <hp@redhat.com>
7491
7492         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7493         I keep wishing I had
7494
7495 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7496
7497         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7498
7499 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7500
7501         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7502         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7503         dbus-protocol.h.  Because they are defines and not enums they are not
7504         autogenerated.
7505
7506 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7507
7508         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7509         dbus_bus_activate_service
7510
7511         * python/dbus.py (Bus.activate_service): activate a service on the
7512         bus.
7513
7514 2004-12-24  Havoc Pennington  <hp@redhat.com>
7515
7516         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7517         file format has also changed and I haven't adapted to that yet
7518         
7519         * Makefile.am: load .gcno files from latest gcc
7520
7521 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7522         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7523
7524         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7525         lowlevel binding
7526
7527         * python/dbus.py (get_unix_user): Added binding to 
7528         call dbus_bindings.bus_get_unix_user
7529
7530         * python/extract.py: Modified the proto_pat regex to
7531         handle unsigned long
7532
7533 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7534
7535         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7536         better POSIX compliance.
7537
7538 2004-12-19  Havoc Pennington  <hp@redhat.com>
7539
7540         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7541         (_dbus_string_insert_8_aligned): new functions
7542
7543         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7544
7545 2004-12-18  Havoc Pennington  <hp@redhat.com>
7546
7547         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7548         macro
7549
7550         * dbus/dbus-message.c: fix a comment, and add a still-unused
7551         not-implemented function
7552
7553         * dbus/dbus-marshal.h: fix comment
7554
7555         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7556
7557 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7558
7559         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7560         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7561         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7562         Type.UnderlyingSystemType to get the actual system type
7563         underneath.  This code previously depended on the broken Mono
7564         behavior, which was fixed in 1.1.3.
7565
7566 2004-11-27  Havoc Pennington  <hp@redhat.com>
7567
7568         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7569         are disabled
7570         (_dbus_string_get_const_data): inline when asserts are disabled
7571
7572         * dbus/dbus-message.c: record the _dbus_current_generation of
7573         creation so we can complain if dbus_shutdown() is used improperly.
7574         Do this only if checks are enabled.
7575
7576         * dbus/dbus-connection.c: ditto
7577         
7578 2004-11-26  Havoc Pennington  <hp@redhat.com>
7579
7580         * test/glib/test-profile.c: add with_bus mode to profile echoes
7581         that go through the bus.
7582
7583         * test/glib/run-test.sh: add ability to run test-profile
7584
7585         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7586         config file reload.
7587
7588 2004-11-26  Havoc Pennington  <hp@redhat.com>
7589
7590         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7591         thing was implemented
7592
7593 2004-11-26  Havoc Pennington  <hp@redhat.com>
7594
7595         * test/glib/test-profile.c: tweak a bit, add support for some
7596         made-up minimal malloc overhead with plain sockets, since in 
7597         real life some sort of buffers are unavoidable thus we could 
7598         count them in the theoretical best case
7599
7600 2004-11-26  Havoc Pennington  <hp@redhat.com>
7601
7602         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7603         where I was trying to cache one too many messages
7604
7605 2004-11-26  Havoc Pennington  <hp@redhat.com>
7606
7607         * dbus/dbus-message.c: reimplement message cache as an array which 
7608         makes the cache about twice as fast and saves maybe 1.5% overall
7609
7610 2004-11-26  Havoc Pennington  <hp@redhat.com>
7611
7612         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7613         message cache lock here
7614
7615 2004-11-26  Havoc Pennington  <hp@redhat.com>
7616
7617         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7618         the "char byte_order" next to each other to save 4 bytes
7619         (dbus_message_new_empty_header): reduce preallocation, since the
7620         message cache should achieve a similar effect
7621         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7622         message cache that keeps a few DBusMessage around in a pool,
7623         another 8% speedup or so.
7624
7625         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7626
7627 2004-11-25  Havoc Pennington  <hp@redhat.com>
7628
7629         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7630         to write, without reading or blocking, try it before the poll()
7631         and skip the poll() if nothing remains to write. This is about a
7632         3% speedup in the echo client/server
7633
7634 2004-11-25  Havoc Pennington  <hp@redhat.com>
7635
7636         The primary change here is to always write() once before adding
7637         the write watch, which gives us about a 10% performance increase.
7638         
7639         * dbus/dbus-transport-unix.c: a number of modifications to cope
7640         with removing messages_pending
7641         (check_write_watch): properly handle
7642         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7643         messages_pending stuff
7644         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7645         AUTHENTICATED cases
7646         (unix_handle_watch): after writing, see if the write watch can be
7647         removed
7648         (unix_do_iteration): assert that write_watch/read_watch are
7649         non-NULL rather than testing that they aren't, since they 
7650         aren't allowed to be NULL. check_write_watch() at the end so 
7651         we add the watch if we did not finish writing (e.g. got EAGAIN)
7652
7653         * dbus/dbus-transport-protected.h: remove messages_pending call,
7654         since it resulted in too much inefficient watch adding/removing; 
7655         instead we now require that the transport user does an iteration 
7656         after queueing outgoing messages, and after trying the first
7657         write() we add a write watch if we got EAGAIN or exceeded our 
7658         max bytes to write per iteration setting
7659
7660         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7661         function
7662
7663         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7664         freed and then accessed, valgrind flagged this bug, fix it
7665
7666         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7667         as the last valid field plus 1, where really it is equal to the
7668         last valid field. Corrects some message corruption issues.
7669
7670         * dbus/dbus-mainloop.c: verbosity changes
7671
7672         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7673         instead of aborting in one of the test codepaths
7674
7675         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7676         caused not printing the pid ever again if a verbose was missing
7677         the newline at the end
7678         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7679
7680         * dbus/dbus-connection.c: verbosity changes; 
7681         (dbus_connection_has_messages_to_send): new function
7682         (_dbus_connection_message_sent): no longer call transport->messages_pending
7683         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7684         try to write() immediately, so we can avoid the write watch. This
7685         is the core purpose of this patchset
7686         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7687         dump the outgoing message queue, so nobody will get confused
7688         trying to send them or thinking stuff is pending to be sent
7689
7690         * bus/test.c: verbosity changes
7691
7692         * bus/driver.c: verbosity/assertion changes
7693
7694         * bus/dispatch.c: a bunch of little tweaks to get it working again
7695         because this patchset changes when/where you need to block.
7696
7697 2004-11-23  Havoc Pennington  <hp@redhat.com>
7698
7699         * test/glib/test-profile.c: modify to accept a plain_sockets
7700         argument in which case it will bench plain sockets instead of
7701         libdbus, for comparison purposes.
7702
7703 2004-11-22  Havoc Pennington  <hp@redhat.com>
7704
7705         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7706         threads for more time, so sysprof can get a grip on it.
7707
7708         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7709         pointless variable
7710
7711 2004-11-13  Havoc Pennington  <hp@redhat.com>
7712
7713         * test/glib/test-profile.c: fix this thing up a bit
7714
7715         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7716         preallocation sizes by a fair bit; not sure if this will be an
7717         overall performance win or not, but it does reduce reallocs.
7718
7719         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7720         the test hack that forced constant realloc if asserts are
7721         disabled, so we can profile sanely. Sprinkle in some
7722         _DBUS_UNLIKELY() which are probably pointless, but before I
7723         noticed the real performance problem I put them in.
7724         (_dbus_string_validate_utf8): micro-optimize this thing a little
7725         bit, though callgrind says it didn't help; then special-case
7726         ascii, which did help a lot; then be sure we detect nul bytes as
7727         invalid, which is a bugfix.
7728         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7729         superstition; use memset to nul the padding instead of a manual
7730         loop.
7731         (_dbus_string_get_length): inline this as a
7732         macro; it showed up in the profile because it's used for loop
7733         tests and so forth
7734
7735 2004-11-10  Colin Walters  <walters@verbum.org>
7736
7737         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7738         for extra paranoia.
7739
7740 2004-11-09  Colin Walters  <walters@verbum.org>
7741
7742         * dbus/dbus-string.c (_dbus_string_get_length): New
7743         function, writes DBusString to C buffer.
7744
7745         * dbus/dbus-string.h: Prototype it.
7746
7747         * dbus/dbus-message.c (dbus_message_type_to_string): New
7748         function, converts message type into C string.
7749
7750         * dbus/dbus-message.h: Prototype it.
7751
7752         * bus/selinux.c (bus_selinux_check): Take source pid,
7753         target pid, and audit data.  Pass audit data to
7754         avc_has_perm.
7755         (log_audit_callback): New function, appends extra
7756         audit information.
7757         (bus_selinux_allows_acquire_service): Also take
7758         service name, add it to audit data.
7759         (bus_selinux_allows_send): Also take message
7760         type, interface, method member, error name,
7761         and destination, and add them to audit data.
7762         (log_cb): Initialize func_audit.
7763         
7764         * bus/selinux.h (bus_selinux_allows_acquire_service)
7765         (bus_selinux_allows_send): Update prototypes 
7766
7767         * bus/services.c (bus_registry_acquire_service): Pass
7768         service name to bus_selinux_allows_acquire_service.
7769
7770         * bus/bus.c (bus_context_check_security_policy): Pass
7771         additional audit data.  Move assignment of dest
7772         to its own line.
7773
7774 2004-11-07  Colin Walters  <walters@verbum.org>
7775
7776         * dbus/dbus-transport-unix.c (do_authentication): Always
7777         initialize auth_completed.
7778         
7779 2004-11-07  Colin Walters  <walters@verbum.org>
7780
7781         * bus/bus.c (load_config): Break into three
7782         separate functions: process_config_first_time_only,
7783         process_config_every_time, and process_config_postinit.
7784         (process_config_every_time): Move call of
7785         bus_registry_set_service_context_table into
7786         process_config_postinit.
7787         (process_config_postinit): New function, does
7788         any processing that needs to happen late
7789         in initialization (and also on reload).
7790         (bus_context_new): Instead of calling load_config,
7791         open config parser here and call process_config_first_time_only
7792         and process_config_every_time directly.  Later, after
7793         we have forked but before changing UID,
7794         invoke bus_selinux_full_init, and then call
7795         process_config_postinit.
7796         (bus_context_reload_config): As in bus_context_new,
7797         load parse file inside here, and call process_config_every_time
7798         and process_config_postinit.
7799
7800         * bus/services.h, bus/services.c
7801         (bus_registry_set_service_context_table): Rename
7802         from bus_registry_set_sid_table.  Take string hash from config
7803         parser, and convert them here into SIDs.
7804
7805         * bus/config-parser.c (struct BusConfigParser): Have
7806         config parser only store a mapping of service->context
7807         string.
7808         (merge_service_context_hash): New function.
7809         (merge_included): Merge context string hashes instead
7810         of using bus_selinux_id_table_union.
7811         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7812         simply create a new string hash.
7813         (bus_config_parser_unref): Unref it.
7814         (start_selinux_child): Simply insert strings into hash,
7815         don't call bus_selinux_id_table_copy_over.
7816
7817         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7818         (bus_selinux_id_table_copy_over): Delete.
7819
7820 2004-11-03  Colin Walters  <walters@verbum.org>
7821
7822         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7823         variables.
7824         
7825 2004-11-03  Colin Walters  <walters@verbum.org>
7826
7827         * bus/test-main.c (test_pre_hook): Fix test logic,
7828         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7829
7830 2004-11-02  Colin Walters  <walters@redhat.com>
7831
7832         * bus/selinux.c (bus_selinux_init): Split into two functions,
7833         bus_selinux_pre_init and bus_selinux_post_init.
7834         (bus_selinux_pre_init): Just determine whether SELinux is
7835         enabled.
7836         (bus_selinux_post_init): Do everything else.
7837
7838         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7839         config file, and bus_selinux_post_init after.  This ensures that
7840         we don't lose the policyreload notification thread that
7841         bus_selinux_init created before forking previously.
7842         
7843         * bus/test-main.c (test_pre_hook): Update for split.
7844
7845 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7846
7847         Patch from Johan Fischer <linux@fischaz.com>
7848         
7849         * mono/doc/Makefile.am (install-data-local): Added directory
7850         install for DESTDIR
7851
7852 2004-10-29  Colin Walters  <walters@redhat.com>
7853
7854         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7855         parameter for fd to write pid to.       
7856
7857         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7858         
7859         * bus/bus.c (bus_context_new): Pass print_pid_fd
7860         to _dbus_become_daemon (bug #1720)
7861
7862 2004-10-29  Colin Walters  <walters@redhat.com>
7863
7864         Patch from Ed Catmur <ed@catmur.co.uk>
7865
7866         * mono/doc/Makefile.am (install-data-local): Handle
7867         DESTDIR.
7868
7869 2004-10-29  Colin Walters  <walters@redhat.com>
7870
7871         * bus/.cvsignore, qt/.cvsignore: Update.
7872
7873 2004-10-29  Colin Walters  <walters@redhat.com>
7874
7875         Patch from Kristof Vansant <de_lupus@pandora.be>
7876
7877         * configure.in: Detect Slackware.
7878         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7879         * bus/rc.messagebus.in: New file.
7880
7881 2004-10-29  Colin Walters  <walters@redhat.com>
7882
7883         * tools/dbus-monitor.c (filter_func): Return
7884         DBUS_HANDLER_RESULT_HANDLED in filter function
7885         for now.  See:
7886         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7887
7888 2004-10-29  Colin Walters  <walters@redhat.com>
7889
7890         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7891
7892         * bus/services.c (bus_registry_acquire_service): 
7893         Correctly retrieve service name from DBusString
7894         for printing.
7895
7896 2004-10-29  Colin Walters  <walters@redhat.com>
7897
7898         * dbus/dbus-glib.h: Update documentation to not
7899         refer to internal APIs.
7900
7901 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7902
7903         * mono/Arguments.cs (GetDBusTypeConstructor):
7904         type.UnderlyingSystemType will return "System.Byte" if you do it
7905         on "byte[]", which is not what we want.  So check the type.IsArray
7906         property and use System.Array instead.
7907
7908 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7909
7910         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7911         the DBusUserInfo structure since this is passed into the function.
7912         This would cause a double free when the function that allocated
7913         the structure would try to free it when an error occured.
7914
7915         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7916         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7917         for service activation to avoid 32bit/64bit parallel install issues
7918
7919 2004-10-21  Colin Walters  <walters@verbum.org>
7920
7921         * AUTHORS: Fix my email address, the @gnu.org one
7922         has been bouncing for some time.  Also add J5.
7923         
7924 2004-10-21  Colin Walters  <walters@verbum.org>
7925
7926         * dbus/dbus-transport-unix.c (do_authentication): Return
7927         authentication status to callers.
7928         (unix_handle_watch): If we completed authentication this round,
7929         don't do another read.  Instead wait until the next iteration,
7930         after we've read any pending data in the auth buffer.
7931         (unix_do_iteration): Ditto.
7932         (unix_handle_watch): Updated for new do_authentication prototype.
7933
7934 2004-10-18  Colin Walters  <walters@verbum.org>
7935
7936         * bus/selinux.c (bus_selinux_enabled): Handle
7937         --disable-selinux case.
7938         
7939 2004-10-18  Colin Walters  <walters@verbum.org>
7940
7941         * bus/selinux.h: Add bus_selinux_enabled.
7942         
7943         * bus/selinux.c (bus_selinux_enabled): Implement it.
7944         
7945         * bus/config-parser.c (struct include): Add
7946         if_selinux_enabled member.
7947         (start_busconfig_child): Parse if_selinux_enabled
7948         attribute for include.
7949         (bus_config_parser_content): Handle it.
7950
7951         * bus/session.conf.in, bus/system.conf.in: Add
7952         inclusion of context mapping to default config files;
7953         conditional on SELinux being enabled.
7954         
7955         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7956         
7957         * test/data/invalid-config-files/badselinux-1.conf, 
7958         test/data/invalid-config-files/badselinux-2.conf:
7959         Test files for bad syntax.
7960         
7961 2004-10-17  Colin Walters  <walters@verbum.org>
7962
7963         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7964         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7965         format specifier mismatches.
7966
7967 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7968
7969         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7970         format string.
7971
7972         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7973         pointer (bug #1540, Leonardo Boiko).
7974
7975 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7976
7977         * mono/BusDriver.cs: Changed BusDriver struct to remove
7978         the ServiceCreated and ServiceDeleted events and replace them
7979         with the new ServiceOwnerChanged event.
7980
7981         * mono/example/BusListener.cs: Added a new example program,
7982         which listens for and reports any ServiceOwnerChanged events
7983         on the bus driver.
7984
7985         * mono/example/Makefile.am (DESTDIR): Build changes for the
7986         new BusListener.cs example.
7987
7988 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7989
7990         * bus/signals.c (bus_match_rule_parse): validate the components of
7991         match rules (bug #1439).
7992
7993         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7994
7995 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7996
7997         * doc/dbus-specification.xml: document ServiceOwnerChanged
7998         signal.
7999         
8000         * bus/driver.c, bus/driver.h, bus/services.c: Use
8001         ServiceOwnerChanged signal instead of ServiceCreated and
8002         ServiceDeleted.
8003         
8004         * bus/dispatch.c: update testcase for the new signal.
8005
8006 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8007
8008         Patch from Nat Friedman <nat@novell.com>
8009
8010         * mono/Makefile.am: A number of small build fixes to allow "make
8011         distcheck" to succeed.
8012
8013         * mono/example/Makefile.am: "make distcheck" fixes.
8014
8015         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8016         key in @srcdir@.
8017
8018         * test/Makefile.am: "make distcheck" fixes.
8019
8020 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8021
8022         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8023
8024         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8025
8026         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8027         messages after the first one (bug #1389).
8028         
8029         * bus/dispatch.c (check_double_hello_message): add a test case for
8030         the double hello message bug.
8031         (check_existent_service_activation): fix check of spawning error.
8032         
8033 2004-09-16  David Zeuthen  <david@fubar.dk>
8034
8035         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8036
8037 2004-09-12  David Zeuthen  <david@fubar.dk>
8038
8039         Patch from Kay Sievers <kay.sievers@vrfy.org>
8040
8041         * bus/bus.c (bus_context_new):
8042         * bus/bus.h:
8043         * bus/main.c (usage)
8044         (main):
8045         Add commandline option --nofork to override configuration file
8046         setting.
8047
8048 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8049
8050         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8051         compilers don't like it (bug #974).
8052
8053 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8054
8055         * qt/connection.*: Applied patch by Jérôme Lodewyck
8056         <lodewyck@clipper.ens.fr> to integrate an existing
8057         connection into the Qt eventloop
8058
8059 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8060
8061         * mono/BusDriver.cs: Added.  This is a class for interacting with
8062         the org.freedesktop.DBus service.
8063
8064         * mono/Message.cs: Added a mechanism to expose the message that is
8065         currently being dispatched via the static Message.Current
8066         property.  Added Message.Sender and Message.Destination
8067         properties.
8068
8069         * mono/Handler.cs: Expose the dispatched message via
8070         Message.Current when handling method calls.
8071
8072         * mono/Service.cs: Expose the dispatched message via
8073         Message.Current when handling signal emissions.
8074         
8075         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8076         Connection.BaseService property.
8077
8078 2004-08-28  Havoc Pennington  <hp@redhat.com>
8079
8080         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8081
8082         More fixes from Steve Grubb
8083         
8084         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8085         (_dbus_listen_tcp_socket): fix fd leak
8086
8087         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8088         EINTR to a bit lower in the code
8089
8090 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8091
8092         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8093         TRUE if we are inquiring about the existence of the built-in
8094         org.freedesktop.DBus service.
8095
8096 2004-08-25  John Palmieri  <johnp@redhat.com>
8097         * bus/config-parser.c:
8098         (struct PolicyType): Add POLICY_CONSOLE
8099         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8100         (start_busconfig_child): Sets up console element when
8101         <policy at_console=""> is encountered in a policy file
8102         (append_rule_from_element): Convert console elements to console
8103         rules.
8104
8105         * bus/policy.c: 
8106         (bus_policy_create_client_policy): Add console rules to the client
8107         policy based on if the client is at the console
8108         (bus_policy_append_console_rule): New function for adding a
8109         console rule to a policy
8110         (bus_policy_merge): Handle console rule merging
8111
8112         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8113         where we check for console user files
8114         
8115         * dbus/dbus-sysdeps.c:
8116         (_dbus_file_exists): New function which checks if the given
8117         file exists
8118         (_dbus_user_at_console): New function which does the system
8119         specific process of checking if the user is at the console
8120
8121         * dbus/dbus-userdb.c:
8122         (_dbus_is_console_user): New function converts a UID to user name
8123         and then calls the system specific _dbus_user_at_console to 
8124         see if the user is at the console and therefor a console user
8125
8126 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8127
8128         * bus/config-parser.c (set_limit):
8129         * bus/dbus-daemon-1.1.in:
8130         * test/data/valid-config-files/many-rules.conf: set the
8131         max_match_rules_per_connection limt from the config file. 
8132
8133         * doc/busconfig.dtd: update the DTD.
8134
8135         * bus/driver.c: remove some unused variables.
8136
8137 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8138
8139         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8140         it's been replaced by dbus_g_bus_get
8141
8142 2004-08-23  Colin Walters  <walters@redhat.com>
8143
8144         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8145
8146         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8147
8148         * bus/selinux.c: Create a thread for policy reload notification.
8149         (bus_selinux_get_policy_root): Implement.
8150
8151         * bus/config-parser.c (start_busconfig_child)
8152         (bus_config_parser_content): Support SELinux-root relative
8153         inclusion.
8154
8155         * configure.in <HAVE_SELINUX>: Add -lpthread.
8156         
8157         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8158         (test_post_hook): Move memory checking into here.
8159         (test_pre_hook, test_post_hook): Move SELinux checks in
8160         here, but conditional on a DBUS_TEST_SELINUX environment
8161         variable.  Unfortunately we can't run the SELinux checks
8162         as a normal user, since they won't have any permissions
8163         for /selinux.  So this will have to be tested manually
8164         for now, until we have virtualization for most of
8165         libselinux.
8166         
8167 2004-08-23  Havoc Pennington  <hp@redhat.com>
8168
8169         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8170         drop supplementary groups, suggested by Steve Grubb
8171
8172 2004-08-20  Colin Walters  <walters@redhat.com>
8173
8174         * bus/config-parser.c (start_busconfig_child): Remove some unused
8175         variables.
8176         
8177         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8178         warning.
8179
8180 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8181
8182         * configure.in: If --enable-mono is passed in, if we can't find
8183         mono error out.
8184
8185         * mono/Makefile.am: Use /gacutil to install assemblies into the
8186         GAC and not /root.
8187
8188 2004-08-12  Havoc Pennington  <hp@redhat.com>
8189
8190         * NEWS: update for 0.22
8191
8192         * configure.in: release 0.22
8193
8194 2004-08-11  Colin Walters  <walters@redhat.com>
8195
8196         * tools/dbus-send.c (main, usage): Add --reply-timeout
8197         argument.
8198
8199 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8200
8201         * bus/bus.c (process_config_first_time_only): get rid of an unused
8202         DBusError that was causing a memoy leak (bug #989).
8203
8204         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8205         fix compilation on Solaris/Forte C (bug #974)
8206
8207         * bus/main.c (main): plug two minuscule memleaks.
8208
8209 2004-08-10  Havoc Pennington  <hp@redhat.com>
8210
8211         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8212
8213 2004-08-09  Havoc Pennington  <hp@redhat.com>
8214
8215         * COPYING: switch to Academic Free License version 2.1 instead of
8216         2.0, to resolve complaints about patent termination clause.
8217
8218 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8219
8220         * README: added documentation for the --enable-python 
8221         configure switch.
8222
8223 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8224
8225         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8226         _unref in the SELinux support.
8227
8228         * doc/busconfig.dtd: update DTD for SELinux support.
8229
8230         * bus/config-loader-libxml.c: fix error handler and parser
8231         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8232
8233         * configure.in: remove the warning about libxml2.
8234
8235         * dbus/dbus-bus.c: silence doxygen warning.
8236
8237 2004-07-31  Colin Walters  <walters@redhat.com>
8238
8239         * configure.in: Move #error in SELinux check to its own line.
8240
8241 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8242
8243         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8244         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8245         dbus_error_set.
8246
8247         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8248         broken by the change in the _SET_OOM macros.
8249
8250 2004-07-31  Colin Walters  <walters@redhat.com>
8251
8252         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8253         BUS_SET_OOM.
8254
8255 2004-07-31  Colin Walters  <walters@redhat.com>
8256
8257         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8258         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8259         AC_MSG_CHECKING.
8260
8261 2004-07-24  Havoc Pennington  <hp@redhat.com>
8262
8263         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8264
8265         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8266         functionality
8267
8268         * configure.in: add --enable-selinux
8269         
8270         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8271
8272         * bus/main.c (main): initialize and shut down selinux
8273
8274         * bus/connection.c: store SELinux ID on each connection, to avoid 
8275         repeated getting of the string context and converting it into 
8276         an ID
8277
8278         * bus/bus.c (bus_context_get_policy): new accessor, though it
8279         isn't used
8280         (bus_context_check_security_policy): check whether the security
8281         context of sender connection can send to the security context of
8282         recipient connection
8283
8284         * bus/config-parser.c: add parsing for <selinux> and <associate>
8285         
8286         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8287         implement dbus_connection_get_unix_fd()
8288
8289         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8290         function, used by the selinux stuff
8291         
8292 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8293
8294         * bus/config-loader-libxml.c: complete the implementation of
8295         libxml backend for config file loader. Doesn't work with full OOM
8296         test yet. 
8297         
8298         * configure.in: change error when selecting libxml into a warning.
8299         
8300         * test/data/invalid-config-files: add two non-well-formed XML
8301         files. 
8302         
8303         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8304         
8305         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8306         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8307         be necessary to read all the buffer. (bug #894)
8308
8309         * bus/activation.c (bus_activation_activate_service): fix a
8310         potential assertion failure (bug #896). Small optimization in the
8311         case of auto-activation messages.
8312
8313         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8314         add test case for byte-through-vararg bug (#901). patch by Kimmo
8315         Hämäläinen. 
8316
8317 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8318
8319         * python/dbus.py:
8320         * python/dbus_bindings.pyx.in:
8321         Add dbus.init_gthreads (), allow emit_signal to pass
8322         arguments to the signal.
8323         
8324 2004-07-24  Havoc Pennington  <hp@redhat.com>
8325
8326         * AUTHORS: add some people, not really comprehensively, let me
8327         know if I missed you
8328
8329 2004-07-24  Havoc Pennington  <hp@redhat.com>
8330
8331         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8332         Owen
8333
8334         * test/Makefile.am (DIST_SUBDIRS): here also
8335
8336 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8337
8338         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8339         breaking build on Solaris, reported by Farhad Saberi on the ML.
8340
8341         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8342         va_arg invocation to account for integer promotion in the case of
8343         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8344
8345         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8346         _dbus_list_get_first_link, not _dbus_list_get_first.
8347
8348         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8349
8350         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8351         handler functions so that the asserts in _dbus_object_subtree_unref
8352         do not fail.
8353
8354         * dbus/dbus-transport-unix.c (do_reading):
8355         _dbus_transport_queue_messages return value is of type
8356         dbus_bool_t, not DBusDispatchStatus.
8357         
8358 2004-07-19  David Zeuthen  <david@fubar.dk>
8359
8360         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8361
8362         * bus/dispatch.c:
8363         (check_get_connection_unix_user): Debug says GetProperty; but the
8364         method is called GetConnectionUnixUser
8365         (check_get_connection_unix_process_id): New function
8366         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8367         also call check_get_connection_unix_process_id()
8368         
8369         * bus/driver.c:
8370         (bus_driver_handle_get_connection_unix_process_id): New function,
8371         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8372         interface
8373         
8374         * dbus/dbus-auth.c:
8375         (handle_server_data_external_mech): Set pid from the credentials
8376         obtained from the socket
8377         
8378         * dbus/dbus-connection.c:
8379         (dbus_connection_get_unix_process_id): New function
8380         
8381         * dbus/dbus-connection.h: 
8382         Add prototype for dbus_connection_get_unix_process_id
8383         
8384         * dbus/dbus-transport.c:
8385         (_dbus_transport_get_unix_process_id): New function
8386         
8387         * dbus/dbus-transport.h:
8388         Add prototype for _dbus_transport_get_unix_process_id
8389         
8390 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8391
8392         * dbus/dbus-message.c: Message counter fix, patch by Christian
8393         Hammond <chipx86@gnupdate.org>
8394
8395 2004-07-18  Seth Nickell  <seth@gnome.org>
8396
8397         * python/dbus.py:
8398         * python/dbus_bindings.pyx.in:
8399         * python/tests/test-client.py:
8400
8401         Add dbus.ByteArray and dbus_bindings.ByteArray
8402         types so that byte streams can be passed back.
8403
8404         Give jdahlin the heaps of credit that are so
8405         rightfully his.
8406         
8407 2004-07-12  Seth Nickell  <seth@gnome.org>
8408
8409         * python/dbus.py:
8410
8411         Add message argument to the default object_method_handler
8412         function.
8413         
8414         * python/dbus_bindings.pyx.in:
8415
8416         Automatically return NIL when passed an empty list
8417         (we can't pass back a list since lists are typed
8418         and we don't have any idea what type the the client
8419         intended the list to be... :-( )
8420         
8421 2004-07-10  Seth Nickell  <seth@gnome.org>
8422
8423         * python/examples/Makefile.am:
8424
8425         Fix distcheck breakage caused by new examples.
8426
8427 2004-07-10  Seth Nickell  <seth@gnome.org>
8428
8429         * python/dbus.py:
8430
8431         Add "message" argument to service-side dbus.Object
8432         methods. This will break existing services written
8433         using the python bindings, but will allow extraction
8434         of all the message information (e.g. who its from).
8435
8436         Add improved "object oriented" signal handling/emission.
8437         
8438         * python/examples/example-service.py:
8439
8440         Nix this example.
8441         
8442         * python/examples/example-signal-emitter.py:
8443         * python/examples/example-signal-recipient.py:
8444
8445         Two new examples that show how to emit and receive
8446         signals using the new APIs.
8447         
8448         * python/examples/example-signals.py:
8449         * python/examples/gconf-proxy-service.py:
8450         * python/examples/gconf-proxy-service2.py:
8451
8452         Add "message" argument to service methods.
8453
8454 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8455
8456         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8457         * dbus/bus.c (dbus_bus_get_unix_user)
8458         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8459         method of org.freedesktop.DBus interface.
8460
8461         * bus/dispatch.c: test case
8462
8463 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8464
8465         * python/Makefile.am: switched include directory from glib/ to dbus/
8466         since dbus-glib.h moved
8467  
8468 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8469
8470         * configure.in: prevent building the gcj stuff and libxml loader
8471         since they are broken.
8472
8473 2004-06-20  Havoc Pennington  <hp@redhat.com>
8474
8475         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8476         codes from the dbus error names
8477         
8478         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8479         as dbus/dbus-glib.h and that breakage is now visible due to 
8480         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8481         
8482         * glib/dbus-glib.h: s/gproxy/g_proxy/
8483
8484         * dbus/dbus-shared.h: new header to hold stuff shared with
8485         binding APIs
8486         
8487         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8488         than dbus-errors.h
8489
8490         * glib/dbus-glib.h (dbus_set_g_error): move to
8491         dbus-glib-lowlevel.h
8492
8493         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8494         of stuff to enable this
8495
8496         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8497
8498         * a bunch of other changes with the same basic "separate glib 
8499         bindings from dbus.h" theme
8500         
8501 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8502
8503         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8504
8505         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8506
8507 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8508
8509         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8510         the reply value of the ServiceExists message.
8511
8512 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8513
8514         * python/dbus_bindings.pyx.in: No longer need to parse path
8515         elements and pass them as arrays of strings.  The C API now
8516         accepts plain path strings.
8517         (_build_parsed_path): removed 
8518
8519 2004-06-07  Havoc Pennington  <hp@redhat.com>
8520
8521         * doc/TODO: remove auto-activation item since it's done; sort
8522         items by importance/milestone
8523
8524 2004-06-07  Havoc Pennington  <hp@redhat.com>
8525
8526         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8527         random signature when using REQUIRED_FIELDS (this hack won't work
8528         in the long term)
8529
8530         * dbus/dbus-message.c: change the signature to be a header field,
8531         instead of message->signature special-case string. Incremental
8532         step forward. Then we can fix up code to send the signature in the
8533         message, then fix up code to validate said signature, then fix up
8534         code to not put the typecodes inline, etc.
8535         (load_one_message): don't make up the signature after the fact
8536         (decode_header_data): require signature field for the known
8537         message types
8538
8539         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8540
8541         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8542
8543 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8544
8545         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8546
8547         * mono/Handler.cs: Updated to follow new path argument for
8548         (un-)registering objects.
8549
8550         * mono/example/Makefile.am:
8551         * mono/Makefile.am:
8552         * configure.in: Bumped required version for mono and use new -pkg
8553         syntax for deps
8554
8555 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8556
8557         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8558         registration functions take the path argument as char* instead of
8559         char**.
8560
8561         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8562         split off the path decompostion part of
8563         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8564         warnings. 
8565
8566         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8567         
8568 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8569  
8570         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8571         machine approach.  A state is implemented as a function that
8572         handles incoming events as specified for that state.
8573         
8574         * doc/dbus-specification.xml: Update auth protocol state machine
8575         specification to match implementation.  Remove some leftover
8576         base64 examples.
8577
8578 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8579
8580         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8581         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8582         quiet doxygen.
8583
8584         * Doxyfile.in: remove deprecated options.
8585
8586         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8587         glib/test-thread.h, glib/test-thread-client.c,
8588         glib/test-thread-server.c, glib/test-profile.c,
8589         glib/test-dbus-glib.c: remove these unused files.
8590
8591 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8592
8593         * dbus/dbus-object-tree.c
8594         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8595         non-fallback handlers (bug #684).
8596         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8597         (find_subtree_recurse): report wether the returned subtree is an
8598         exact match or a "fallback" match higher up in the tree.
8599         (object_tree_test_iteration): update test case.
8600
8601 2004-06-01  Seth Nickell  <seth@gnome.org>
8602
8603         * python/dbus_bindings.pyx.in:
8604         * python/tests/test-client.py:
8605
8606         Round off basic type support. Add dicts (yay!), and 
8607         remaining array types.
8608
8609         Make MessageIter more general so it works for dicts too.
8610
8611         Mark all loop variables as C integers.
8612         
8613 2004-05-31  Havoc Pennington  <hp@redhat.com>
8614
8615         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8616         "in" before "out"
8617
8618         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8619
8620         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8621         option that runs the tests, and start filling in some code
8622         including for starters just dumping the interfaces to stdout
8623
8624         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8625
8626         * test/data/valid-introspection-files/lots-of-types.xml: test of
8627         an example introspection file
8628
8629         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8630         "node" (I think...)
8631
8632 2004-05-31  Seth Nickell  <seth@gnome.org>
8633
8634         * python/dbus_bindings.pyx.in:
8635         * python/tests/test-client.py:
8636
8637         Test Suite: 1
8638         Python Bindings: 0
8639
8640         Fix string array memory trashing bug... oops...
8641
8642 2004-05-30  Seth Nickell  <seth@gnome.org>
8643
8644         * python/dbus.py:
8645
8646         Add a nicer-but-less-flexible alternate API for handling 
8647         calls to virtual objects in dbus.ObjectTree.
8648
8649         Screw up the argument order to the dbus.Object constructor
8650         for consistency with dbus.ObjectTree (and to make dbus_methods
8651         optional for future extension)
8652         
8653         * python/examples/Makefile.am:
8654         * python/examples/gconf-proxy-service.py:
8655         * python/examples/gconf-proxy-service2.py:
8656
8657         Alternate implementation of gconf-proxy-service using the
8658         nicer dbus.ObjectTree API.
8659         
8660         * python/examples/example-service.py:
8661         * python/tests/test-server.py
8662
8663         Reverse the argument order to deal with dbus.Object constructor
8664         changes.
8665         
8666 2004-05-30  Seth Nickell  <seth@gnome.org>
8667
8668         * python/examples/example-client.py:
8669         * python/examples/example-service.py:
8670
8671         Take it back. Lists seem to work but they're broken
8672         in the test suite. Make the base examples use
8673         lists (works fine).
8674
8675 2004-05-30  Seth Nickell  <seth@gnome.org>
8676
8677         * python/dbus_bindings.pyx.in:
8678         * python/tests/test-client.py:
8679
8680         Add some more tests and fix errors that crop up.
8681         Unfortunately, currently it seems like marshalling
8682         and unmarshalling of lists is completely broken :-(
8683
8684 2004-05-30  Seth Nickell  <seth@gnome.org>
8685
8686         * python/dbus_bindings.pyx.in:
8687
8688         Add support for ObjectPath type.
8689
8690         * python/dbus.py:
8691
8692         Refactor message handling code to a common function.
8693         
8694         * python/tests/test-client.py:
8695         * python/tests/test-server.py:
8696
8697         Add tests that check to make sure values of all types
8698         can be echoed from a service w/o mangling.
8699         
8700 2004-05-29  Seth Nickell  <seth@gnome.org>
8701
8702         * python/dbus.py:
8703
8704         Add ObjectTree class which allows implementation
8705         of trees of "virtual" objects. Basically the python
8706         wrapper for "register_fallback".
8707         
8708         * python/examples/Makefile.am
8709         * python/examples/gconf-proxy-client.py:
8710         * python/examples/gconf-proxy-service.py:
8711
8712         Implement a simple GConf proxy service that supports
8713         get/set on string and int GConf keys using the ObjectTree.
8714         
8715 2004-05-29  Seth Nickell  <seth@gnome.org>
8716
8717         * python/dbus.py:
8718         * python/examples/example-client.py:
8719         * python/examples/example-service.py:
8720         * python/examples/list-system-services.py:
8721
8722         Add SessionBus, SystemBus and ActivationBus classes
8723         so you don't need to know the special little BUS_TYPE
8724         flag.
8725         
8726 2004-05-29  Havoc Pennington  <hp@redhat.com>
8727
8728         * bus/config-parser.c (process_test_valid_subdir): temporarily
8729         stop testing config parser OOM handling, since expat has issues
8730         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8731
8732         * bus/dbus-daemon-1.1.in: change requested_reply to
8733         send_requested_reply/receive_requested_reply so we can send the
8734         replies, not just receive them.
8735
8736         * bus/config-parser.c: parse the new
8737         send_requested_reply/receive_requested_reply
8738
8739         * bus/policy.c (bus_client_policy_check_can_send): add
8740         requested_reply argument and use it
8741
8742         * bus/bus.c (bus_context_check_security_policy): pass through
8743         requested_reply status to message send check
8744
8745         * bus/system.conf.in: adapt to requested_reply change
8746         
8747 2004-05-28  Havoc Pennington  <hp@redhat.com>
8748
8749         * test/glib/test-service-glib.c (main): remove unused variable
8750
8751         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8752
8753         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8754         from the enum, no longer in use.
8755
8756         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8757         works right.
8758
8759         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8760         whether error_name passed in is a valid error name.
8761
8762 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8763
8764         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8765         OBJECT_PATH and OBJECT_PATH_ARRAY
8766
8767 2004-05-28  Seth Nickell  <seth@gnome.org>
8768
8769         * python/examples/Makefile.am:
8770
8771         Forget to add Makefile.am. Do not pass go.
8772
8773 2004-05-28  Michael Meeks  <michael@ximian.com>
8774
8775         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8776         fix no int64 case.
8777
8778         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8779
8780         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8781         (_dbus_message_iter_get_basic_type_array): impl.
8782         drastically simplify ~all relevant _get methods to use these.
8783         (_dbus_message_iter_append_basic_array),
8784         (dbus_message_iter_append_basic): impl
8785         drastically simplify ~all relevant _append methods to use these.
8786
8787         * dbus/dbus-message-builder.c (parse_basic_type) 
8788         (parse_basic_array, lookup_basic_type): impl.
8789         (_dbus_message_data_load): prune scads of duplicate /
8790         cut & paste coding.
8791
8792         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8793         (_dbus_demarshal_basic_type): implement,
8794         (demarshal_and_validate_len/arg): beef up debug.
8795         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8796
8797 2004-05-27  Seth Nickell  <seth@gnome.org>
8798
8799         * configure.in:
8800         * python/Makefile.am:
8801
8802         Include the example python apps in the tarball.
8803         
8804         * python/examples/list-system-services.py
8805
8806         Add a python new example that fetches the list of services
8807         from the system bus.
8808         
8809 2004-05-27  Seth Nickell  <seth@gnome.org>
8810
8811         * python/dbus.py:
8812         * python/dbus_bindings.pyx.in:
8813
8814         Fix failure to notify that a signal was not handled,
8815         resulted in hung functions.
8816         
8817 2004-05-25  Colin Walters  <walters@redhat.com>
8818
8819         * tools/dbus-monitor.c (main): Monitor all types of messages.
8820
8821 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8822
8823         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8824         which unregisters the object path and disposes the handler.
8825
8826 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8827  
8828         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8829          
8830         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8831         operands to && so we call dbus_message_iter_next () for the last
8832         argument also.
8833
8834 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8835
8836         * dbus/dbus-object-tree.c
8837         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8838         children even if the requested path isn't registered.
8839         (object_tree_test_iteration): test object_tree_list_registered.
8840
8841         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8842         it to 0.
8843         
8844 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8845
8846         * doc/TODO: Remove resolved items.
8847
8848         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8849         field.
8850         
8851         * bus/connection.c (bus_connections_expect_reply): Enforce the
8852         per-connection limit on pending replies.
8853         
8854         Patch from Jon Trowbridge <trow@ximian.com>:
8855  
8856         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8857         up a watch that triggers a config reload when one end of the pipe
8858         becomes readable.
8859         (signal_handler): Instead of doing the config reload in our SIGHUP
8860         handler, just write to the reload pipe and let the associated
8861         watch handle the reload when control returns to the main loop.
8862  
8863         * bus/driver.c (bus_driver_handle_reload_config): Added.
8864         Implements a ReloadConfig method for requesting a configuration
8865         file reload via the bus driver.
8866  
8867 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8868
8869         * HACKING: Updated release instructions concerning the wiki page.
8870
8871 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8872
8873         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8874         filter against auth->allowed_mechs; we only add allowed mechs in
8875         record_mechanisms().
8876  
8877         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8878         ALLOWED_MECHS to auth-script format so we can set the list of
8879         allowed mechanisms.
8880  
8881         * data/auth/client-out-of-mechanisms.auth-script: New test to
8882         check client disconnects when it is out of mechanisms to try.
8883  
8884         * dbus/dbus-auth.c (process_command): Remove check for lines
8885         longer that 1 MB; we only buffer up maximum 16 kB.
8886  
8887         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8888         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8889         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8890         assume there might be unused bytes.
8891  
8892         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8893         client-out-of-mechs, it is handled in process_reject(). Move check
8894         for max failures to send_rejected(), as it's a server-only thing.
8895
8896         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8897         send_auth(), send_data(), send_rejected(), send_error(),
8898         send_ok(), send_begin() and send_cancel().
8899
8900 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8901
8902         Remove base64 encoding, replace with hex encoding. Original patch
8903         from trow@ximian.com, added error handling.
8904
8905         * dbus/dbus-string.c (_dbus_string_base64_encode)
8906         (_dbus_string_base64_decode): Remove.
8907         (_dbus_string_hex_decode): Add end_return argument so we can
8908         distinguish between OOM and invalid hex encoding.
8909         (_dbus_string_test): Remove base64 tests and add test case for
8910         invalid hex.
8911
8912         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8913         Replace base64 with hex.
8914
8915         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8916         for invalid hex encoded data in auth protocol.
8917
8918 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8919
8920         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8921         leak.
8922
8923 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8924
8925         * mono/dbus-sharp.dll.config.in: Added for GAC
8926         * mono/dbus-sharp.snk: Added for GAC
8927         * mono/Assembly.cs.in: Added for GAC
8928         * mono/Makefile.am: Changes for GAC installation        
8929         * configure.in: Added refs for dbus-sharp.dll.config.in and
8930         Assembly.cs.in. More fixes for mono testing
8931         * mono/example/Makefile.am: Changed var to CSC
8932         * Makefile.am: Changed flag name to DBUS_USE_CSC
8933
8934 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8935
8936         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8937         * mono/doc/*: Added documentation framework
8938         * configure.in: Added monodoc check
8939         * README: Added description of mono configure flags
8940
8941 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8942
8943         * doc/dbus-specification.xml: Added a "Required" column to the 
8944         header fields table and changed the "zero or more" verbage in
8945         the above paragraph to read "The header must contain the required 
8946         named header fields and zero or more of the optional named header 
8947         fields".
8948         * test/data/invalid-messages/*.message: Added the required PATH 
8949         named header field to the tests so that they don't fail on 
8950         'Missing path field'
8951
8952 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8953
8954         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8955         the stack by implicitly defining variable and parameter types and
8956         removing the hack of defining C pointers as python objects and later
8957         casting them.
8958
8959 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8960
8961         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8962
8963 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8964
8965         * mono/DBusType/Dict.cs: Handle empty dicts
8966         * mono/DBusType/Array.cs: Handle empty arrays
8967         * mono/Arguments.cs: Handle empty arguments
8968
8969 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8970
8971         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8972         field
8973
8974 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8975
8976         * test/data/valid-messages/standard-*.message: Update message
8977         test scripts to new header field names.
8978
8979 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8980
8981         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8982         overflow to times_we_did_each_thing array which would chop off the
8983         first character of the failure_dir string. Increased the size of
8984         the array to 7 to reflect the number of random mutation functions
8985         we have.
8986
8987 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8988
8989         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8990         unix_server->watch here, it is unreffed in disconnect.
8991         (_dbus_server_new_for_tcp_socket): convert NULL host to
8992         "localhost" here so we don't append NULL to address.
8993         
8994         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8995         various addresses, including tcp with no explicit host.
8996
8997 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8998
8999         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9000         fix incorrect setting of .name_offset in the HeaderField (it was
9001         off by two bytes, positioned right after the name and typecode)
9002
9003         * bus/bus.c (bus_context_new, bus_context_unref): test before
9004         calling dbus_server_free_data_slot and _dbus_user_database_unref
9005         in case of an error.
9006
9007         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9008         by libdbus-gtool.
9009
9010 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9011
9012         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9013         _dbus_poll() instead of select().
9014
9015 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9016
9017         * bus/main.c (signal_handler): Reload the configuration files
9018         on SIGHUP.
9019         (main): Set up our SIGHUP handler.
9020
9021         * bus/bus.c (struct BusContext): Store the config file, user and
9022         fork flag in the BusContext.
9023         (process_config_first_time_only): Added.  Contains the code
9024         (previously in bus_context_new) for setting up the BusContext from
9025         the BusConfigParser that should only be run the first time the
9026         config files are read.
9027         (process_config_every_time): Added.  Contains the code (previously
9028         in bus_context_new) for setting up the BusContext from the
9029         BusConfigParser that should be run every time the config files are
9030         read.
9031         (load_config): Added.  Builds a BusConfigParser from the config
9032         files and passes the resulting structure off to
9033         process_config_first_time_only (assuming this is the first time)
9034         and process_config_every_time.
9035         (bus_context_new): All of the config-related code has been moved
9036         to process_config_first_time_only and process_config_every_time.
9037         Now this function just does the non-config-related initializations
9038         and calls load_config.
9039         (bus_context_reload_config): Added.
9040
9041 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9042
9043         * bus/driver.c (bus_driver_handle_get_service_owner):
9044         implement a GetServiceOwner method.
9045         * doc/dbus-specification.xml: document it.
9046         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9047         
9048         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9049         implement, using the bus GetServiceOwner method.
9050
9051         * test/glib/test-dbus-glib.c:
9052         use dbus_gproxy_new_for_service_owner so that we can receive the
9053         signal. 
9054
9055 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9056
9057         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9058         dbus/dbus-message.c, dbus/dbus-protocol.h
9059         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9060
9061         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9062         dbus/dbus-message.c, dbus/dbus-protocol.h
9063         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9064
9065         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9066         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9067         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9068
9069         * doc/dbus-specification.xml (Header Fields Table):
9070         s/SERVICE/DESTINATION
9071         s/SENDER_SERVICE/SENDER
9072
9073
9074 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9075
9076         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9077         a few seconds.
9078
9079 2004-04-13  Michael Meeks  <michael@ximian.com>
9080
9081         * glib/dbus-gobject.c (handle_introspect): split out
9082         (introspect_properties): this.
9083         (handle_introspect): implement this.
9084
9085         * test/glib/Makefile.am: use the absolute path so the bus
9086         daemon's chdir ("/") doesn't kill us dead.
9087
9088         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9089
9090 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9091
9092         * bus/config-parser.c (struct BusConfigParser): Added
9093         included_files field.
9094         (seen_include): Added.  Checks whether or not a file has already
9095         been included by any parent BusConfigParser.
9096         (bus_config_parser_new): Copy the parent's included_files.
9097         (include_file): Track which files have been included, and fail on
9098         circular inclusions.
9099         (process_test_valid_subdir): Changed printf to report if we are
9100         testing valid or invalid conf files.
9101         (all_are_equiv): Changed printf to be a bit clearer about
9102         what we are actually doing.
9103         (bus_config_parser_test): Test invalid configuration files.
9104
9105 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9106
9107         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9108         argument.  If non-null, the newly-constructed BusConfigParser will
9109         be initialized with the parent's BusLimits instead of the default
9110         values.
9111         (include_file): When including a config file, pass in
9112         the current parser as the parent and then copy the BusLimits
9113         from the included BusConfigParser pack to the current parser.
9114         (process_test_valid_subdir): Renamed from process_test_subdir.
9115         (process_test_equiv_subdir): Added.  Walks through a directory,
9116         descending into each subdirectory and loading the config files
9117         it finds there.  If any subdirectory contains two config files
9118         that don't produce identical BusConfigParser structs, fail.
9119         For now, the BusConfigParser's BusPolicies are not compared.
9120         (bus_config_parser_test): Call both process_test_valid_subdir and
9121         process_test_equiv_subdir.
9122
9123         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9124         argument and pass it along to the call to bus_config_parser_new.
9125         Also made a few small changes to allow this code to compile.
9126
9127         * bus/config-loader-expat.c (bus_config_load): Take a parent
9128         argument and pass it along to the call to bus_config_parser_new.
9129
9130         * bus/bus.c (bus_context_new): Load the config file
9131         with a NULL parent argument.
9132
9133 2004-03-29  Michael Meeks  <michael@ximian.com>
9134
9135         * glib/dbus-gobject.c (introspect_properties): split
9136         out, fix mangled 'while' flow control.
9137         (introspect_signals): implement.
9138         (handle_introspect): update.
9139
9140 2004-03-29  Michael Meeks  <michael@ximian.com>
9141
9142         * glib/dbus-gobject.c (set_object_property): split out / 
9143         re-work, use the property type, and not the message type(!)
9144         (get_object_property): ditto.
9145
9146         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9147         (dbus_gvalue_marshal): make this code re-usable, needed
9148         for signals too, also on both proxy and server side.
9149         Re-write for more efficiency / readability.
9150
9151 2004-03-29  Michael Meeks  <michael@ximian.com>
9152
9153         * dbus/dbus-message.c
9154         (dbus_message_new_error_printf): impl.
9155
9156         * dbus/dbus-connection.c
9157         (dbus_connection_unregister_object_path): fix warning.
9158
9159         * configure.in: fix no-mono-installed situation.
9160
9161 2004-03-27  Havoc Pennington  <hp@redhat.com>
9162
9163         Patch from Timo Teräs:
9164         
9165         * tools/dbus-send.c (main): if --print-reply, assume type is
9166         method call; support boolean type args
9167         
9168         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9169         bunch of memleak and logic bugs
9170         
9171 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9172
9173         * mono/Arguments.cs:
9174         * mono/Introspector.cs:
9175         * mono/Handler.cs:
9176         * mono/InterfaceProxy.cs:
9177         * mono/Message.cs
9178         * mono/ProxyBuilder.cs:
9179         * mono/Service.cs:
9180         Added InterfaceProxy class to avoid building proxies for every
9181         object.
9182
9183         * dbus-message.h:
9184         * dbus-message.c (dbus_message_append_args_valist)
9185         (dbus_message_iter_get_object_path)
9186         (dbus_message_iter_get_object_path_array)
9187         (dbus_message_iter_append_object_path)
9188         (dbus_message_iter_append_object_path_array):
9189         Added object_path iter functions to handle OBJECT_PATH arguments
9190         
9191 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9192
9193         First checkin of mono bindings.
9194         * configure.in:
9195         * Makefile.am:
9196         Build stuff for the bindings
9197         * dbus-sharp.pc.in: Added for pkgconfig
9198         
9199 2004-03-21  Havoc Pennington  <hp@redhat.com>
9200
9201         * test/test-service.c (main): remove debug spew
9202
9203 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9204
9205         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9206         arrays
9207
9208         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9209         (dbus_message_iter_init_array_iterator)
9210         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9211         indicate whether the iterator is empty
9212
9213         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9214         warnings
9215
9216 2004-03-19  Havoc Pennington  <hp@redhat.com>
9217
9218         * NEWS: 0.21 updates
9219
9220         * configure.in: 0.21
9221
9222         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9223         
9224         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9225         you don't need pyrex to make dist
9226
9227         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9228         sources; run moc
9229         
9230 2004-03-18  Richard Hult  <richard@imendio.com>
9231
9232         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9233         (dbus_message_set_auto_activation): Add doxygen docs.
9234
9235 2004-03-16  Richard Hult  <richard@imendio.com>
9236
9237         * bus/activation.c: (bus_activation_service_created),
9238         (bus_activation_send_pending_auto_activation_messages),
9239         (bus_activation_activate_service):
9240         * bus/activation.h:
9241         * bus/dispatch.c: (bus_dispatch),
9242         (check_nonexistent_service_auto_activation),
9243         (check_service_auto_activated),
9244         (check_segfault_service_auto_activation),
9245         (check_existent_service_auto_activation), (bus_dispatch_test):
9246         * bus/driver.c: (bus_driver_handle_activate_service):
9247         * bus/services.c: (bus_registry_acquire_service):
9248         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9249         (dbus_message_get_auto_activation):
9250         * dbus/dbus-message.h:
9251         * dbus/dbus-protocol.h: Implement auto-activation.
9252         
9253         * doc/dbus-specification.xml: Add auto-activation to the spec.
9254
9255 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9256
9257         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9258         fix a bug with CUSTOM types.
9259
9260         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9261         a unit test for this bug (used to fail).
9262
9263 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9264
9265         * bus/activation.c:
9266         (babysitter_watch_callback): notify all pending activations waiting for
9267           the same exec that the activation failed.
9268         (bus_activation_activate_service): shortcut the activation if we 
9269           already waiting for the same executable to start up.
9270
9271 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9272
9273         * bus/activation.c: 
9274         - Added service file reloading. 
9275           Each service files directory is kept in an hash table in 
9276           BusActivation and each BusActivationEntry knows what .service-file it
9277           was read from. So when you try to activate a service the bus will 
9278           check if it's been updated, removed or if new .service-files has 
9279           been installed.
9280         - Test code at the bottom for the service file reloading.
9281         * bus/test-main.c: (main):
9282         * bus/test.h:
9283         - added service reloading test.
9284         * dbus/dbus-sysdeps.c: 
9285         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9286
9287 2004-03-08  Michael Meeks  <michael@ximian.com>
9288
9289         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9290         bail immediately if disconnected, to avoid busy loop.
9291
9292         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9293         cleanup cut/paste/inefficiency.
9294
9295 2004-03-01  David Zeuthen  <david@fubar.dk>
9296
9297         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9298         bug where args were used twice. This bug resulted in a segfault
9299         on a Debian/PPC system when starting the messagebus daemon. Include
9300         dbus-sysdeps.h for DBUS_VA_COPY
9301
9302         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9303
9304         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9305         appropriate va_copy implementation. From GLib
9306         
9307 2004-02-24  Joe Shaw  <joe@ximian.com>
9308
9309         * bus/services.c (bus_registry_acquire_service): We need to pass
9310         in the service name to dbus_set_error() to prevent a crash.
9311
9312 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9313
9314         * AUTHORS: Reveal my True identity.
9315
9316 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9317
9318         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9319         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9320
9321 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9322
9323         * doc/TODO: Added not about better error check of configuration files.
9324
9325 2003-12-02  Richard Hult  <richard@imendio.com>
9326
9327         * Update AFL version to 2.0 throughout the source files to reflect
9328         the update that was done a while ago.
9329
9330 2003-12-02  Richard Hult  <richard@imendio.com>
9331
9332         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9333         wrote_dict_key to FALSE on the iter that the dict is appended to,
9334         just like when appending other types. Fixes a bug where a dict
9335         couldn't be put inside a dict.
9336         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9337         (message_iter_test, _dbus_message_test): Add test case for dict
9338         inside dict.
9339
9340 2003-12-01  David Zeuthen  <david@fubar.dk>
9341
9342         * python/dbus.py: Add the actual message when calling the reciever
9343         of a signal such that parameters can be inspected. Add the method
9344         remove_signal_receiver
9345         
9346 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9347
9348         * bus/*.[ch]:
9349         * dbus/*.[ch]:
9350         * glib/*.[ch]: Made ref functions return the pointer
9351
9352 2003-11-25  Zack Rusin  <zack@kde.org>
9353
9354         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9355
9356         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9357         wrappers,
9358
9359         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9360         the Integrator and to better fit with the server,
9361
9362 2003-11-24  Zack Rusin  <zack@kde.org>
9363
9364         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9365         the integrator handles it now
9366
9367         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9368         since QTimer wasn't really meant to be used the way DBusTimeout is
9369
9370 2003-11-24  Zack Rusin  <zack@kde.org>
9371
9372         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9373         Integrator class which integrates D-BUS with the Qt event loop,
9374
9375         * qt/connection.h, qt/connection.cpp: Move all the code which
9376         was dealing with D-BUS integration to the Integrator class,
9377         and start using Integrator,
9378
9379 2003-11-23  Zack Rusin  <zack@kde.org>
9380
9381         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9382         wrapper
9383
9384         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9385         switching namespaces to DBusQt, reworking the class,
9386
9387         * Makefile.cvs: switching dependencies so that it matches KDE 
9388         schematics,
9389         
9390         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9391         the library
9392
9393 2003-11-19  Havoc Pennington  <hp@redhat.com>
9394
9395         * NEWS: update
9396
9397         * configure.in: bump version to 0.20
9398
9399         * configure.in (have_qt): add yet another place to look for qt
9400         (someone hand trolltech a .pc file...)
9401
9402 2003-11-01  Havoc Pennington  <hp@redhat.com>
9403
9404         * doc/dbus-specification.xml: add state machine docs on the auth
9405         protocol; just a first draft, I'm sure it's wrong.      
9406
9407 2003-10-28  David Zeuthen  <david@fubar.dk>
9408
9409         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9410         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9411         
9412 2003-10-28  Havoc Pennington  <hp@redhat.com>
9413
9414         * dbus/dbus-message.c (get_next_field): delete unused function
9415
9416 2003-10-28  Havoc Pennington  <hp@redhat.com>
9417
9418         * bus/expirelist.c (do_expiration_with_current_time): detect
9419         failure of the expire_func due to OOM
9420
9421         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9422
9423         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9424         NoReply error that's now created by the bus when the service exits
9425
9426 2003-10-28  Havoc Pennington  <hp@redhat.com>
9427
9428         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9429         tests for set_path, set_interface, set_member, etc.
9430
9431         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9432
9433         * dbus/dbus-message.c (set_string_field): always just delete and
9434         re-append the field; accept NULL for deletion
9435         (re_align_fields_recurse): reimplement
9436         
9437 2003-10-26  Havoc Pennington  <hp@redhat.com>
9438
9439         * dbus/dbus-connection.c: fix docs to properly describe the
9440         disconnected message
9441         (_dbus_connection_notify_disconnected): remove this function; 
9442         we can't synchronously add the disconnected message, we have to 
9443         do it after we've queued any remaining real messages
9444         (_dbus_connection_get_dispatch_status_unlocked): queue the
9445         disconnect message only if the transport has finished queueing all
9446         its real messages and is disconnected.
9447         (dbus_connection_disconnect): update the dispatch status here
9448
9449 2003-10-22  Havoc Pennington  <hp@redhat.com>
9450
9451         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9452
9453         * bus/connection.c (bus_transaction_send_from_driver): set the
9454         destination to the connection's base service
9455
9456 2003-10-20  Havoc Pennington  <hp@redhat.com>
9457
9458         hmm, make check is currently not passing.
9459         
9460         * doc/dbus-specification.xml: add requirement that custom type
9461         names follow the same rules as interface names.
9462
9463         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9464         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9465         'map'
9466
9467         * doc/dbus-specification.xml: update type codes to match
9468         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9469         CUSTOM. Add type OBJECT_PATH to the spec.
9470
9471 2003-10-17  Havoc Pennington  <hp@redhat.com>
9472
9473         * bus/driver.c (create_unique_client_name): use "." as separator
9474         in base service names instead of '-'
9475
9476         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9477         byte at the end of the string
9478
9479         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9480         optimization macros since string validation seems to be a slow
9481         point.
9482         
9483         * doc/dbus-specification.xml: restrict valid
9484         service/interface/member/error names. Add test suite code for the
9485         name validation.
9486
9487         * dbus/dbus-string.c: limit service/interface/member/error names 
9488         to [0-9][A-Z][a-z]_
9489
9490         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9491         format arg to verbose spew
9492
9493         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9494         memory, return instead of g_error
9495
9496         * test/test-service.c (path_message_func): support emitting a
9497         signal on request
9498
9499         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9500         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9501         assuming the activation bus was the session bus so that services
9502         started manually will still register.
9503         (init_connections_unlocked): fix so that in OOM situation we get
9504         the same semantics when retrying the function
9505         
9506         * test/test-service.c (main): change to use path registration, to
9507         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9508         than DBUS_BUS_SESSION
9509
9510 2003-10-16  Havoc Pennington  <hp@redhat.com>
9511
9512         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9513
9514         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9515         coverage of the tests
9516         (coverage-report.txt): don't move the .da and .bbg files around
9517
9518 2003-10-16  Havoc Pennington  <hp@redhat.com>
9519
9520         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9521         to put there
9522
9523 2003-10-16  Havoc Pennington  <hp@redhat.com>
9524
9525         * bus/connection.c (bus_pending_reply_expired): either cancel or
9526         execute, not both
9527         (bus_connections_check_reply): use unlink, not remove_link, as we
9528         don't want to free the link; fixes double free mess
9529
9530         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9531         where no reply was received
9532
9533         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9534         fix a refcount leak
9535
9536         * bus/signals.c (match_rule_matches): add special cases for the
9537         bus driver, so you can match on sender/destination for it.
9538
9539         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9540         DBUS_PRINT_BACKTRACE is set
9541
9542         * dbus/dbus-internals.c: add pid to assertion failure messages
9543
9544         * dbus/dbus-connection.c: add message type code to the debug spew
9545
9546         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9547         sender=foo not service=foo
9548
9549         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9550         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9551         DBUS_ACTIVATION_ADDRESS instead
9552
9553         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9554         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9555
9556         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9557         context struct
9558
9559         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9560         (dbus_message_iter_get_object_path_array): new function (half
9561         finished, disabled for the moment)
9562         
9563         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9564         DBUS_MESSAGE_TYPE_ERROR
9565
9566         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9567         avoid redirecting stderr to /dev/null
9568         (babysit): close stdin if not doing the "exit_with_session" thing
9569
9570         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9571         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9572         stdout/stdin, so things don't get confused
9573         
9574         * bus/system.conf.in: fix to allow replies, I modified .conf
9575         instead of .conf.in again.
9576
9577 2003-10-14  David Zeuthen  <david@fubar.dk>
9578
9579         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9580         argtype to arg_type when raising unknown arg type exception.
9581         Changed type list to reflect the changes in dbus-protocol.h so 
9582         the bindings actually work.
9583
9584 2003-10-14  Havoc Pennington  <hp@redhat.com>
9585
9586         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9587         to have a bug keeping it from outputting the .da files sometimes
9588         (string_get_string): don't append garbage nul bytes to the string.
9589
9590 2003-10-15  Seth Nickell  <seth@gnome.org>
9591
9592         * python/Makefile.am:
9593
9594         Include dbus_h_wrapper.h in the dist tarball.
9595
9596 2003-10-14  Havoc Pennington  <hp@redhat.com>
9597
9598         * bus/bus.c (bus_context_check_security_policy): revamp this to
9599         work more sanely with new policy-based requested reply setup
9600
9601         * bus/connection.c (bus_transaction_send_from_driver): set bus
9602         driver messages as no reply
9603
9604         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9605         requested_reply attribute on allow/deny rules
9606
9607         * bus/system.conf: add <allow requested_reply="true"/>
9608
9609         * bus/driver.c (bus_driver_handle_message): fix check for replies
9610         sent to the bus driver, which was backward. How did this ever work
9611         at all though? I think I'm missing something.
9612
9613         * dbus/dbus-message.c (decode_header_data): require error and
9614         method return messages to have a reply serial field to be valid
9615         (_dbus_message_loader_queue_messages): break up this function;
9616         validate that reply serial and plain serial are nonzero; 
9617         clean up the OOM/error handling.
9618         (get_uint_field): don't return -1 from this
9619         (dbus_message_create_header): fix signed/unsigned bug
9620
9621         * bus/connection.c (bus_connections_expect_reply): save serial of
9622         the incoming message, not reply serial
9623
9624 2003-10-14  Havoc Pennington  <hp@redhat.com>
9625
9626         * bus/connection.c: implement pending reply tracking using
9627         BusExpireList
9628
9629         * bus/bus.c (bus_context_check_security_policy): verify that a
9630         reply is pending in order to allow a reply to be sent. Deny 
9631         messages of unknown type.
9632
9633         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9634
9635         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9636         (bus_context_get_reply_timeout): new
9637
9638 2003-10-13  Seth Nickell  <seth@gnome.org>
9639
9640         * python/Makefile.am:
9641
9642         Pass "make distcheck": remove a couple files from DIST_FILES
9643         that weren't included in the final version.
9644
9645 2003-10-12  Havoc Pennington  <hp@pobox.com>
9646
9647         Added test code that 1) starts an actual bus daemon and 2) uses
9648         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9649         more testing possible, but this is the basic framework.
9650         
9651         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9652         empty proxy lists from the proxy list hash
9653
9654         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9655         couple of return_if_fail checks
9656
9657         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9658         to allocate, so everything is cleared to NULL as it should be.
9659
9660         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9661         source as data to dbus_connection_set_timeout_functions() as the 
9662         timeout functions expected
9663
9664         * test/glib/run-test.sh: add a little script to start up a message
9665         bus and run tests using it
9666
9667         * tools/dbus-launch.1: updates
9668
9669         * tools/dbus-launch.c (main): add --config-file option
9670
9671         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9672         that could never be reached.
9673
9674         * dbus/dbus-message.c (dbus_message_new_method_return) 
9675         (dbus_message_new_error, dbus_message_new_signal): set the
9676         no-reply-expected flag on all these. Redundant, but may
9677         as well be consistent.
9678
9679 2003-10-11  Havoc Pennington  <hp@pobox.com>
9680
9681         * test/decode-gcov.c (function_solve_graph): make broken block
9682         graph a nonfatal error since it seems to be broken. Need to debug
9683         this.
9684
9685         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9686         can't just check type > INVALID < LAST anymore
9687
9688         * dbus/dbus-message.c (dbus_message_get_signature): new function
9689         (dbus_message_has_signature): new function
9690         (struct DBusMessage): add signature field (right now it isn't sent
9691         over the wire, just generated on the fly)
9692         (dbus_message_copy): copy the signature, and init strings to
9693         proper length to avoid some reallocs
9694         (dbus_message_iter_init_array_iterator): return void, since it
9695         can't fail
9696         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9697         (_dbus_message_loader_queue_messages): add silly temporary hack to
9698         fill in message->signature on load
9699
9700         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9701         characters, so they are relatively human-readable.
9702
9703 2003-10-11  Havoc Pennington  <hp@pobox.com>
9704
9705         * dbus/dbus-message.c (_dbus_message_test): add more test
9706         coverage, but #if 0 for now since they uncover a bug 
9707         not fixed yet; I think in re_align_field_recurse()
9708         (re_align_field_recurse): add FIXME about broken assertion
9709
9710         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9711
9712         * bus/connection.c: share a couple code bits with expirelist.c
9713
9714         * bus/expirelist.h, bus/expirelist.c: implement a generic
9715         expire-items-after-N-seconds facility, was going to share between
9716         expiring connections and replies, decided not to use for expiring
9717         connections for now.
9718
9719         * COPYING: include AFL 2.0 (still need to change all the file headers)
9720
9721 2003-10-09  Havoc Pennington  <hp@redhat.com>
9722
9723         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9724         gcc 3.3. Not that we do anything about it yet.
9725
9726         * bus/signals.c (bus_match_rule_parse): impose max length on the
9727         match rule text
9728
9729         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9730
9731 2003-10-09  Havoc Pennington  <hp@redhat.com>
9732
9733         Make matching rules theoretically work (add parser).
9734         
9735         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9736         the case where destination is explicitly specified as bus driver
9737         and someone else is eavesdropping.
9738         
9739         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9740         definition of eavesdropping and assertion
9741
9742         * tools/dbus-send.c (main): use dbus_message_type_from_string
9743
9744         * bus/signals.c (bus_match_rule_parse): implement
9745
9746         * dbus/dbus-message.c (dbus_message_type_from_string): new
9747
9748         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9749
9750 2003-10-02  Havoc Pennington  <hp@pobox.com>
9751
9752         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9753         dbus_gproxy_oneway_call
9754
9755         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9756         (dbus_server_setup_with_g_main): fix to allow calling them more
9757         than once on the same args
9758         (dbus_bus_get_with_g_main): new function
9759
9760 2003-10-02  Havoc Pennington  <hp@redhat.com>
9761
9762         * doc/dbus-tutorial.xml: write some stuff
9763
9764 2003-09-29  Havoc Pennington  <hp@pobox.com>
9765
9766         * configure.in: split checks for Doxygen from XML docs, check for
9767         xmlto
9768
9769         * doc/Makefile.am: XML-ify all the docs, and add a blank
9770         dbus-tutorial.xml
9771
9772 2003-09-29  Havoc Pennington  <hp@pobox.com>
9773
9774         * Merge dbus-object-names branch. To see the entire patch 
9775         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9776         it's huuuuge though.
9777         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9778         
9779 2003-09-28  Havoc Pennington  <hp@pobox.com>
9780
9781         * HACKING: update to reflect new server
9782
9783 2003-09-26  Seth Nickell  <seth@gnome.org>
9784
9785         * python/dbus.py:
9786         * python/examples/example-signals.py:
9787
9788         Start implementing some notions of signals. The API
9789         is really terrible, but they sort of work (with the
9790         exception of being able to filter by service, and to
9791         transmit signals *as* a particular service). Need to
9792         figure out how to make messages come from the service
9793         we registered :-(
9794         
9795         * python/dbus_bindings.pyx.in:
9796
9797         Removed duplicate message_handler callbacks.
9798         
9799 2003-09-25  Havoc Pennington  <hp@redhat.com>
9800
9801         * bus/session.conf.in: fix my mess
9802
9803 2003-09-25  Havoc Pennington  <hp@pobox.com>
9804
9805         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9806
9807 2003-09-25  Seth Nickell  <seth@gnome.org>
9808
9809         * python/examples/example-service.py:
9810
9811         Johan notices complete wrong code in example-service, but
9812         completely wrong in a way that works exactly the same (!).
9813         Johan is confused, how could this possibly work? Example
9814         code fails to serve purpose of making things clear.
9815         Seth fixes.
9816
9817 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9818
9819         * doc/dbus-specification.sgml: don't require header fields
9820         to be 4-byte aligned and specify that fields should be
9821         distinguished from padding by the fact that zero is not
9822         a valid field name.
9823         
9824         * doc/TODO: remove re-alignment item and add item to doc
9825         the OBJECT_PATH type.
9826         
9827         * dbus/dbus-message.c:
9828         (HeaderField): rename the original member to value_offset
9829         and introduce a name_offset member to keep track of where
9830         the field actually begins.
9831         (adjust_field_offsets): remove.
9832         (append_int_field), (append_uint_field),
9833         (append_string_field): don't align the start of the header
9834         field to a 4-byte boundary.
9835         (get_next_field): impl finding the next marhsalled field
9836         after a given field.
9837         (re_align_field_recurse): impl re-aligning a number of
9838         already marshalled fields.
9839         (delete_field): impl deleting a field of any type and
9840         re-aligning any following fields.
9841         (delete_int_or_uint_field), (delete_string_field): remove.
9842         (set_int_field), (set_uint_field): no need to re-check
9843         that we have the correct type for the field.
9844         (set_string_field): ditto and impl re-aligning any
9845         following fields.
9846         (decode_header_data): update to take into account that
9847         the fields aren't 4-byte aligned any more and the new
9848         way to distinguish padding from header fields. Also,
9849         don't exit when there is too much header padding.
9850         (process_test_subdir): print the directory.
9851         (_dbus_message_test): add test to make sure a following
9852         field is re-aligned correctly after field deletion.
9853         
9854         * dbus/dbus-string.[ch]:
9855         (_dbus_string_insert_bytes): rename from insert_byte and
9856         allow the insert of multiple bytes.
9857         (_dbus_string_test): test inserting multiple bytes.
9858
9859         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9860         warning note to docs about having to re-align any
9861         marshalled values following the string.
9862         
9863         * dbus/dbus-message-builder.c:
9864         (append_string_field), (_dbus_message_data_load):
9865         don't align the header field.
9866         
9867         * dbus/dbus-auth.c: (process_test_subdir): print the
9868         directory.
9869         
9870         * test/break-loader.c: (randomly_add_one_byte): upd. for
9871         insert_byte change.
9872         
9873         * test/data/invalid-messages/bad-header-field-alignment.message:
9874         new test case.
9875         
9876         * test/data/valid-messages/unknown-header-field.message: shove
9877         a dict in the unknown field.
9878
9879 2003-09-25  Seth Nickell  <seth@gnome.org>
9880
9881         * python/dbus.py:
9882         * python/dbus_bindings.pyx.in:
9883
9884         Handle return values.
9885         
9886         * python/examples/example-client.py:
9887         * python/examples/example-service.py:
9888
9889         Pass back return values from the service to the client.
9890         
9891 2003-09-24  Seth Nickell  <seth@gnome.org>
9892
9893         * python/dbus.py:
9894
9895         Connect Object methods (when you are sharing an object) up... pass
9896         in a list of methods to be shared. Sharing all the methods just
9897         worked out too weird. You can now create nice Services over the
9898         DBus in Python. :-)
9899         
9900         * python/dbus_bindings.pyx.in:
9901
9902         Keep references to user_data tuples passed into C functions so 
9903         Python doesn't garbage collect on us.
9904
9905         Implement MethodReturn and Error subclasses of Message for creating
9906         DBusMessage's of those types.
9907         
9908         * python/examples/example-client.py:
9909         * python/examples/example-service.py:
9910
9911         Simple example code showing both how create DBus services and objects,
9912         and how to use them.
9913
9914 2003-09-23  Havoc Pennington  <hp@pobox.com>
9915
9916         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9917
9918 2003-09-23  Havoc Pennington  <hp@redhat.com>
9919
9920         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9921         (dbus_gproxy_disconnect_signal): implement
9922         (dbus_gproxy_manager_remove_signal_match): implement
9923         (dbus_gproxy_manager_add_signal_match): implement
9924         (dbus_gproxy_oneway_call): implement
9925
9926 2003-09-23  Havoc Pennington  <hp@pobox.com>
9927
9928         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9929         subclass. This means dropping the transparent thread safety of the
9930         proxy; you now need a separate proxy per-thread, or your own
9931         locking on the proxy. Probably right anyway.
9932         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9933
9934 2003-09-22  Havoc Pennington  <hp@redhat.com>
9935
9936         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9937
9938 2003-09-21  Seth Nickell  <seth@gnome.org>
9939
9940         First checkin of the Python bindings.
9941         
9942         * python/.cvsignore:
9943         * python/Makefile.am:
9944         * python/dbus_bindings.pyx.in:
9945         * python/dbus_h_wrapper.h:
9946
9947         Pieces for Pyrex to operate on, building a dbus_bindings.so
9948         python module for low-level access to the DBus APIs.
9949         
9950         * python/dbus.py:
9951
9952         High-level Python module for accessing DBus objects.
9953
9954         * configure.in:
9955         * Makefile.am:
9956
9957         Build stuff for the python bindings.
9958
9959         * acinclude.m4:
9960
9961         Extra macro needed for finding the Python C header files.
9962
9963 2003-09-21  Havoc Pennington  <hp@pobox.com>
9964
9965         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9966         implementing the proxy manager, didn't get very far.
9967
9968         * dbus/dbus-bus.c (dbus_bus_add_match): new
9969         (dbus_bus_remove_match): new
9970
9971         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9972         path_name argument; adjust the other not-yet-implemented 
9973         gproxy constructors to be what I think they should be.
9974
9975 2003-09-21  Havoc Pennington  <hp@pobox.com>
9976
9977         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9978         by default for message bus connections.
9979
9980         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9981         exit_on_disconnect flag is set and we process the disconnected
9982         signal.
9983         (dbus_connection_set_exit_on_disconnect): new function
9984
9985 2003-09-21  Havoc Pennington  <hp@pobox.com>
9986
9987         Get matching rules mostly working in the bus; only actually
9988         parsing the rule text remains. However, the client side of
9989         "signal connections" hasn't been started, this patch is only the
9990         bus side.
9991         
9992         * dbus/dispatch.c: fix for the matching rules changes
9993         
9994         * bus/driver.c (bus_driver_handle_remove_match)
9995         (bus_driver_handle_add_match): send an ack reply from these
9996         method calls
9997
9998         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9999         arguments, reported by Seth Nickell
10000
10001         * bus/config-parser.c (append_rule_from_element): support
10002         eavesdrop=true|false attribute on policies so match rules 
10003         can be prevented from snooping on the system bus.
10004
10005         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10006         and "destination" in attribute names; fix some docs bugs; 
10007         add eavesdrop=true|false attribute
10008
10009         * bus/driver.c (bus_driver_handle_add_match)
10010         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10011         messages
10012
10013         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10014         rid of broadcast service concept, signals are just always broadcast
10015
10016         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10017         mostly implement matching rules stuff (currently only exposed as signal
10018         connections)
10019
10020 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10021
10022         * doc/dbus-specification.sgml: Change the header field name
10023         to be an enum and update the rest of the spec to reference
10024         the fields using the conventinal name.
10025
10026         * dbus/dbus-protocol.h: update to reflect the spec.
10027
10028         * doc/TODO: add item to remove the 4 byte alignment requirement.
10029         
10030         * dbus/dbus-message.c: Remove the code to generalise the
10031         header/body length and serial number header fields as named
10032         header fields so we can reference field names using the 
10033         protocol values.
10034         (append_int_field), (append_uint_field), (append_string_field):
10035         Append the field name as a byte rather than four chars.
10036         (delete_int_or_uint_field), (delete_string_field): reflect the
10037         fact that the field name and typecode now occupy 4 bytes instead
10038         of 8.
10039         (decode_string_field), (decode_header_data): update to reflect
10040         protocol changes and move the field specific encoding from
10041         decode_string_field() back into decode_header_data().
10042         
10043         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10044         Add utility to aid debugging.
10045         
10046         * dbus/dbus-message-builder.c:
10047         (append_string_field), (_dbus_message_data_load): Update to
10048         reflect protocol changes; Change the FIELD_NAME directive
10049         to HEADER_FIELD and allow it to take the field's conventional
10050         name rather than the actual value.
10051         
10052         * test/data/*/*.message: Update to use HEADER_FIELD instead
10053         of FIELD_NAME; Always align the header on an 8 byte boundary
10054         *before* updating the header length.
10055
10056 2003-09-15  Havoc Pennington  <hp@pobox.com>
10057
10058         * dbus/dbus-pending-call.c: add the get/set object data
10059         boilerplate as for DBusConnection, etc. Use generic object data
10060         for the notify callback.
10061
10062         * glib/dbus-gparser.c (parse_node): parse child nodes
10063
10064         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10065         
10066         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10067         contain functions shared between the convenience lib and the
10068         installed lib
10069
10070         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10071         -export-symbols-regex to the GLib library
10072
10073         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10074         fix the locking in here, and add a default handler for
10075         Introspect() that just returns sub-nodes.
10076
10077 2003-09-14  Havoc Pennington  <hp@pobox.com>
10078
10079         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10080         rather than gfoo consistent
10081
10082         * glib/dbus-gproxy.h: delete for now, move contents to
10083         dbus-glib.h, because the include files don't work right since we
10084         aren't in the dbus/ subdir.
10085         
10086         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10087         (dbus_gproxy_end_call): finish
10088         (dbus_gproxy_begin_call): finish
10089
10090         * glib/dbus-gmain.c (dbus_set_g_error): new
10091
10092         * glib/dbus-gobject.c (handle_introspect): include information
10093         about child nodes in the introspection
10094
10095         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10096         function to help in implementation of introspection
10097
10098         * dbus/dbus-object-tree.c
10099         (_dbus_object_tree_list_registered_and_unlock): new function
10100
10101 2003-09-12  Havoc Pennington  <hp@pobox.com>
10102
10103         * glib/dbus-gidl.h: add common base class for all the foo_info
10104         types
10105
10106         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10107         similar to kdcop
10108
10109         * test/Makefile.am: try test srcdir -ef . in addition to test
10110         srcdir = ., one of them should work (yeah lame)
10111         
10112         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10113         library
10114         
10115         * glib/dbus-gparser.h: make description_load routines return
10116         NodeInfo* not Parser*
10117
10118         * Makefile.am (SUBDIRS): build test dir after all library dirs
10119
10120         * configure.in: add GTK+ detection
10121
10122 2003-09-07  Havoc Pennington  <hp@pobox.com>
10123
10124         * Make Doxygen contented.
10125
10126 2003-09-07  Havoc Pennington  <hp@pobox.com>
10127
10128         * doc/dbus-specification.sgml: more updates
10129
10130 2003-09-06  Havoc Pennington  <hp@pobox.com>
10131
10132         * doc/dbus-specification.sgml: partial updates
10133
10134         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10135         zillionth time; hopefully I edited the right file this time.
10136
10137         * bus/config-parser.c (append_rule_from_element): support
10138         send_type, send_path, receive_type, receive_path
10139
10140         * bus/policy.c: add message type and path to the list of things
10141         that can be "firewalled"
10142
10143 2003-09-06  Havoc Pennington  <hp@pobox.com>
10144
10145         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10146         (dbus_connection_register_object_path): make this not handle
10147         messages to paths below the given path
10148
10149 2003-09-03  Havoc Pennington  <hp@pobox.com>
10150
10151         * test/glib/Makefile.am: add this with random glib-linked test
10152         programs
10153
10154         * glib/Makefile.am: remove the random test programs from here,
10155         leave only the unit tests
10156
10157         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10158         uscore/javacaps conversion, and fix     
10159         (get_object_property, set_object_property): change to .NET
10160         convention for mapping props to methods, set_FooBar/get_FooBar, 
10161         since one language has such a convention we may as well copy it. 
10162         Plus real methods in either getFooBar or get_foo_bar style won't 
10163         collide with this convention.
10164
10165 2003-09-01  Havoc Pennington  <hp@pobox.com>
10166
10167         * glib/dbus-gparser.c: implement
10168
10169         * glib/dbus-gobject.c: start implementing skeletons support
10170
10171         * configure.in: when disabling checks/assert, also define
10172         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10173
10174 2003-09-01  Havoc Pennington  <hp@pobox.com>
10175
10176         * glib/Makefile.am: rearrange a bunch of files and get "make
10177         check" framework set up
10178
10179 2003-08-31  Havoc Pennington  <hp@pobox.com>
10180
10181         * fix build with --disable-tests
10182
10183 2003-08-30  Havoc Pennington  <hp@pobox.com>
10184
10185         * dbus/dbus-connection.c: purge DBusMessageHandler
10186
10187         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10188         use callbacks everywhere
10189
10190 2003-08-30  Havoc Pennington  <hp@pobox.com>
10191
10192         * test/data/valid-config-files/system.d/test.conf: change to 
10193         root for the user so warnings don't get printed
10194
10195         * dbus/dbus-message.c: add dbus_message_get_path,
10196         dbus_message_set_path
10197         
10198         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10199         dispatching to a path
10200
10201         * dbus/dbus-string.c (_dbus_string_validate_path): add
10202
10203         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10204         (_dbus_marshal_object_path): implement
10205
10206         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10207         to contain the path to the target object
10208         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10209         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10210
10211 2003-08-30  Havoc Pennington  <hp@pobox.com>
10212
10213         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10214
10215 2003-08-29  Havoc Pennington  <hp@pobox.com>
10216
10217         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10218         registered
10219         (struct DBusObjectSubtree): shrink this
10220         a lot, since we may have a lot of them
10221         (_dbus_object_tree_free_all_unlocked): implement
10222         (_dbus_object_tree_dispatch_and_unlock): implement
10223
10224 2003-08-29  Havoc Pennington  <hp@pobox.com>
10225
10226         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10227
10228 2003-08-28  Havoc Pennington  <hp@pobox.com>
10229
10230         purge DBusObjectID
10231         
10232         * dbus/dbus-connection.c: port to no ObjectID, create a
10233         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10234
10235         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10236         everything except UnregisterFunction and MessageFunction
10237         
10238         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10239         add DBUS_TYPE_OBJECT_PATH
10240         
10241         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10242         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10243         path-based object IDs
10244
10245 2003-08-25  Havoc Pennington  <hp@pobox.com>
10246
10247         Just noticed that dbus_message_test is hosed, I wonder when I
10248         broke that. I thought make check was passing earlier...
10249         
10250         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10251         container tree, will replace most of dbus-object-registry
10252
10253         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10254         screwup
10255
10256 2003-08-19  Havoc Pennington  <hp@pobox.com>
10257
10258         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10259         (dbus_message_is_error): fix this function
10260
10261         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10262         match
10263
10264         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10265         reflect clarified man page
10266         (bus_client_policy_check_can_send): ditto
10267         
10268         * bus/session.conf.in: fixup
10269
10270         * bus/system.conf.in: fixup
10271
10272 2003-08-18  Havoc Pennington  <hp@redhat.com>
10273
10274         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10275
10276         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10277         dumb bug created earlier (wrong order of args to
10278         decode_header_data())
10279         
10280         * tools/dbus-send.c: port
10281
10282         * tools/dbus-print-message.c (print_message): port
10283
10284         * test/data/*messages: port all messages over
10285         
10286         * dbus/dbus-message-builder.c: support including 
10287         message type
10288         
10289         * bus/driver.c: port over
10290         
10291         * bus/dispatch.c: port over to new stuff
10292
10293         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10294         rename disconnect signal to "Disconnected"
10295
10296 2003-08-17  Havoc Pennington  <hp@pobox.com>
10297
10298         This doesn't compile yet, but syncing up so I can hack on it from
10299         work. What are branches for if not broken code? ;-)
10300         
10301         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10302         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10303         DBUS_HEADER_FIELD_ERROR_NAME
10304         
10305         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10306         for the interface+member pairs
10307         (string_hash): change to use g_str_hash algorithm
10308         (find_direct_function, find_string_function): refactor these to
10309         share most code.
10310         
10311         * dbus/dbus-message.c: port all of this over to support 
10312         interface/member fields instead of name field
10313
10314         * dbus/dbus-object-registry.c: port over
10315         
10316         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10317         from _dbus_string_validate_name
10318
10319         * bus/dbus-daemon-1.1: change file format for the 
10320         <deny>/<allow> stuff to match new message naming scheme
10321
10322         * bus/policy.c: port over
10323
10324         * bus/config-parser.c: parse new format
10325         
10326 2003-08-16  Havoc Pennington  <hp@pobox.com>
10327
10328         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10329         broken assertion
10330
10331         * glib/dbus-gproxy.c: some hacking
10332
10333 2003-08-15  Havoc Pennington  <hp@redhat.com>
10334
10335         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10336
10337         * dbus/dbus-connection.c
10338         (dbus_connection_send_with_reply_and_block): factor out internals;
10339         change to convert any error replies to DBusError instead of 
10340         returning them as a message
10341
10342 2003-08-15  Havoc Pennington  <hp@pobox.com>
10343
10344         * dbus/dbus-connection.c, 
10345         dbus/dbus-pending-call.c: Finish the pending call stuff
10346
10347 2003-08-14  Havoc Pennington  <hp@redhat.com>
10348
10349         * dbus/dbus-pending-call.c: start on new object that will replace
10350         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10351         replies
10352
10353         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10354         with remote interfaces
10355
10356         * dbus/dbus-gidl.c: do the boring boilerplate in here
10357         
10358 2003-08-12  Havoc Pennington  <hp@pobox.com>
10359
10360         * bus/dispatch.c (bus_dispatch): make this return proper 
10361         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10362
10363         * dbus/dbus-errors.c (dbus_set_error): use
10364         _dbus_string_append_printf_valist
10365
10366         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10367         (_dbus_string_append_printf): new
10368
10369         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10370         UNKNOWN_METHOD
10371
10372         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10373         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10374         message is unhandled.
10375
10376 2003-08-11  Havoc Pennington  <hp@pobox.com>
10377
10378         * bus/test.c (client_disconnect_handler): change to return
10379         HANDLED (would have been REMOVE_MESSAGE)
10380
10381         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10382         HANDLED/NOT_YET_HANDLED instead of
10383         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10384         should be used.
10385
10386 2003-08-10  Havoc Pennington  <hp@pobox.com>
10387
10388         * tools/dbus-send.c (main): add --type argument, for now
10389         supporting only method_call and signal types.
10390
10391         * tools/dbus-print-message.c: print message type
10392
10393         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10394         init connection->objects
10395
10396         * doc/dbus-specification.sgml: fix sgml
10397
10398         * bus/*.c: port over to object-instance API changes
10399
10400         * test/test-service.c: ditto
10401         
10402         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10403         name, we will have to fix up the rest of the code to also handle
10404         this
10405         (dbus_message_new): generic message-creation call
10406         (set_string_field): allow appending name field
10407
10408 2003-08-06  Havoc Pennington  <hp@pobox.com>
10409
10410         * dbus/dbus-object-registry.c: implement signal connection 
10411         and dispatch
10412
10413         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10414
10415         * dbus/dbus-internals.c (_dbus_memdup): new function
10416
10417 2003-08-02  Havoc Pennington  <hp@pobox.com>
10418
10419         * dbus/dbus-message.c (dbus_message_get_no_reply)
10420         (dbus_message_set_no_reply): add these and remove
10421         set_is_error/get_is_error
10422
10423         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10424         remove the ERROR flag, since there's now an ERROR type
10425
10426 2003-08-01  Havoc Pennington  <hp@pobox.com>
10427
10428         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10429         implement
10430
10431         * dbus/dbus-message.c (dbus_message_get_type): new function
10432
10433         * doc/dbus-specification.sgml: add "type" byte to messages
10434
10435 2003-08-01  Havoc Pennington  <hp@pobox.com>
10436
10437         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10438         a message type enum to distinguish kinds of message
10439         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10440         that need not be replied to
10441
10442 2003-08-01  Havoc Pennington  <hp@pobox.com>
10443
10444         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10445         (unpack_8_octets): fix no-64-bit-int bug
10446
10447         * dbus/dbus-object-registry.c (validate_id): validate the 
10448         connection ID bits, not just the instance ID.
10449
10450         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10451         the connection-global 33 bits of the object ID
10452
10453         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10454         object ID in the new way
10455
10456         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10457         define server/client/instance bits.
10458
10459 2003-07-30  Havoc Pennington  <hp@pobox.com>
10460
10461         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10462         build
10463
10464 2003-07-13  Havoc Pennington  <hp@pobox.com>
10465
10466         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10467         fields to DBusObjectVTable and DBusObjectInfo
10468
10469 2003-07-12  Havoc Pennington  <hp@pobox.com>
10470
10471         * dbus/dbus-object-registry.c: implement unit test,
10472         fix bugs discovered in process
10473
10474         * dbus/dbus-connection.c: remove handler_table and
10475         register_handler(), add DBusObjectRegistry usage
10476
10477         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10478         (dbus_object_id_set_null): new functions
10479
10480 2003-07-08  Havoc Pennington  <hp@pobox.com>
10481
10482         * dbus/dbus-object.c: implement some of this
10483
10484         * dbus/dbus-object-registry.c
10485         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10486         param
10487         (_dbus_object_registry_new): handle OOM
10488
10489 2003-07-08  Havoc Pennington  <hp@pobox.com>
10490
10491         * dbus/dbus-object.h: sketch out an API for registering objects
10492         with a connection, that allows us to use as little as 24 bytes
10493         per object and lets application code represent an object in 
10494         any conceivable way.
10495
10496         * dbus/dbus-object-registry.c: implement the hard bits of the
10497         DBusConnection aspect of object API. Not yet wired up.
10498         
10499 2003-07-06  Havoc Pennington  <hp@pobox.com>
10500
10501         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10502         (_dbus_marshal_object_id): new
10503         (_dbus_demarshal_object_id): new
10504         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10505         consolidate identical switch cases. Don't conditionalize handling
10506         of DBUS_TYPE_UINT64, need to handle the type always.
10507         (_dbus_marshal_validate_arg): consolidate identical cases, and
10508         handle DBUS_TYPE_OBJECT_ID
10509
10510         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10511
10512         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10513
10514 2003-09-28  Havoc Pennington  <hp@pobox.com>
10515
10516         * real 0.13 release
10517
10518 2003-09-28  Havoc Pennington  <hp@pobox.com>
10519
10520         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10521         to work with Debian db2html
10522
10523 2003-09-28  Havoc Pennington  <hp@pobox.com>
10524
10525         * configure.in: 0.13
10526
10527         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10528         stylesheet-images for benefit of Debian
10529         
10530         Change back to using filesystem-linked sockets for the system
10531         bus, so only root can create the default system bus address.
10532         
10533         * bus/system.conf.in: change to use
10534         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10535
10536         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10537         from here.
10538
10539         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10540         here, and AC_DEFINE DBUS_SYSTEM_PATH
10541
10542 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10543
10544         * doc/TODO:
10545         * doc/busconfig.dtd:
10546         Add busconfig DTD.
10547         
10548 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10549
10550         * doc/dbus-specification.sgml:
10551         Add activation reply values.
10552         
10553 2003-08-05  Havoc Pennington  <hp@redhat.com>
10554
10555         * configure.in: 0.12
10556
10557 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10558
10559         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10560         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10561         (add_watch), (remove_watch), (create_source):
10562         Refcount fds, fixes some reentrancy issues.
10563         
10564 2003-07-30  Havoc Pennington  <hp@redhat.com>
10565
10566         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10567         bus address to be abstract if we have abstract sockets
10568
10569         * NEWS: update
10570
10571 2003-07-28  Havoc Pennington  <hp@redhat.com>
10572
10573         * bus/messagebus.in: fix to avoid processname/servicename 
10574         confusion, from Michael Kearey
10575         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10576         
10577 2003-07-23  Havoc Pennington  <hp@pobox.com>
10578
10579         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10580         fix from Andy Hanton to remove broken "+1"
10581
10582 2003-07-16  Havoc Pennington  <hp@pobox.com>
10583
10584         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10585         babysitter process, as suggested by Thomas Leonard, so 
10586         an "eval `dbus-launch --exit-with-session`" will actually 
10587         return
10588
10589 2003-07-16  Havoc Pennington  <hp@pobox.com>
10590
10591         * configure.in: print out EXPANDED_* variables in the summary at
10592         the end; clean up the code that computes EXPANDED_ variables and
10593         get the ones using exec_prefix right. Should make things work
10594         when you build without --prefix
10595
10596 2003-06-29  Havoc Pennington  <hp@pobox.com>
10597
10598         * mono/Test.cs (class Test): fire up a main loop and run it
10599
10600         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10601         done once, the app has to do it
10602
10603 2003-06-26  Havoc Pennington  <hp@pobox.com>
10604
10605         * mono/Connection.cs: set up connection with the glib main loop
10606
10607 2003-07-01  Havoc Pennington  <hp@redhat.com>
10608
10609         * doc/dbus-specification.sgml: clarify the format of a type code,
10610         change suggested by Jim Blandy
10611
10612 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10613
10614         * doc/Makefile.am:
10615         * tools/Makefile.am: Don't assume srcdir == builddir.
10616
10617         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10618         the allocated block.
10619         (_dbus_memory_test): New function.
10620         * dbus/dbus-test.h: Add _dbus_memory_test ().
10621         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10622
10623         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10624         of %c%c%c%c.
10625         (dbus_message_new): Remove obsolete @todo.
10626
10627         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10628         (_dbus_marshal_set_uint64): Fix comment.
10629
10630         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10631         hardcode FIELD_REPLY_SERIAL.
10632
10633         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10634         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10635
10636         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10637         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10638
10639 2003-06-24  Havoc Pennington  <hp@pobox.com>
10640
10641         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10642
10643 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10644
10645         * configure.in:
10646         * gcj/.cvsignore:
10647         * gcj/Hello.java:
10648         * gcj/Makefile.am:
10649         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10650         * gcj/org/.cvsignore:
10651         * gcj/org/Makefile.am:
10652         * gcj/org/freedesktop/.cvsignore:
10653         * gcj/org/freedesktop/Makefile.am:
10654         * gcj/org/freedesktop/dbus/.cvsignore:
10655         * gcj/org/freedesktop/dbus/Makefile.am:
10656         * gcj/org/freedesktop/dbus/Message.java: (Message),
10657         (Message.Message):
10658         * gcj/org/freedesktop/dbus/natMessage.cc:
10659         Fix the build system.
10660
10661 2003-06-22  Havoc Pennington  <hp@pobox.com>
10662
10663         * mono/Connection.cs: add more bindings
10664
10665         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10666         more than once.
10667
10668 2003-06-22  Havoc Pennington  <hp@pobox.com>
10669
10670         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10671         Start wrapping more stuff.
10672
10673 2003-06-22  Havoc Pennington  <hp@pobox.com>
10674
10675         * mono/Message.cs: implement Message.Wrap() that ensures we only
10676         have a single C# wrapper per DBusMessage, assuming it works which
10677         it probably doesn't.
10678
10679         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10680         (dbus_message_free_data_slot): new
10681         (dbus_message_set_data): new
10682         (dbus_message_get_data): new
10683
10684 2003-06-22  Havoc Pennington  <hp@pobox.com>
10685
10686         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10687         (_dbus_data_slot_allocator_alloc): rework these to keep a
10688         reference count on each slot and automatically manage a global
10689         slot ID variable passed in by address
10690
10691         * bus/bus.c: convert to new dataslot API
10692
10693         * dbus/dbus-bus.c: convert to new dataslot API
10694
10695         * dbus/dbus-connection.c: convert to new dataslot API
10696
10697         * dbus/dbus-server.c: convert to new dataslot API
10698
10699         * glib/dbus-gmain.c: ditto
10700
10701         * bus/test.c: ditto
10702
10703         * bus/connection.c: ditto
10704
10705 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10706
10707         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10708         after the gcj checks so that the correct configuration tags
10709         will be added to libtool.
10710
10711         * dbus-glib-1.pc.in: No need to specify any includes since
10712         dbus-1.pc.in has those.
10713
10714 2003-06-22  Havoc Pennington  <hp@pobox.com>
10715
10716         * mono/*, gcj/*, configure.in, Makefile.am:
10717         Check in makefiles and subdirs for mono and gcj bindings.
10718         Neither binding actually exists, just trying to get through
10719         all the build and other boring bits.
10720
10721 2003-06-21  Philip Blundell  <philb@gnu.org>
10722
10723         * tools/dbus-monitor.1: Updated.
10724
10725         * tools/dbus-send.1: Likewise.
10726
10727 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10728
10729         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10730         for hangup and error after checking read so we won't discard
10731         pending data if both hangup and read are set.
10732
10733 2003-06-19  Philip Blundell  <philb@gnu.org>
10734
10735         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10736
10737         * tools/dbus-send.c: Accept both --system and --session.
10738
10739         * tools/dbus-monitor.c: Same here.
10740
10741 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10742
10743         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10744         from C++ (Patch by Miloslav Trmac).
10745
10746 2003-06-15  Joe Shaw  <joe@assbarn.com>
10747
10748         * configure.in: Check for socklen_t.
10749
10750         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10751
10752         * test/test-segfault.c: Add #include <sys/time.h>
10753
10754         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10755         dbus-launch needs it.
10756
10757 2003-06-09  Havoc Pennington  <hp@redhat.com>
10758
10759         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10760         SUN_LEN, it breaks abstract socket usage
10761
10762         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10763         starts of lines.
10764
10765 2003-06-04  Havoc Pennington  <hp@pobox.com>
10766
10767         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10768         using unix:abstract=/foo, and when listening in a tmpdir
10769         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10770
10771         * dbus/dbus-transport.c (_dbus_transport_open): support
10772         unix:abstract=/foo
10773
10774         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10775         support abstract sockets
10776
10777         * dbus/dbus-transport-unix.c
10778         (_dbus_transport_new_for_domain_socket): support abstract sockets
10779
10780         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10781         toggle as an argument, implement abstract namespace support
10782         (_dbus_listen_unix_socket): ditto
10783
10784         * configure.in: add --enable-abstract-sockets and implement
10785         a configure check for autodetection of the right value.
10786
10787 2003-06-01  Havoc Pennington  <hp@pobox.com>
10788
10789         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10790         in /tmp (though on Linux this will end up being useless,
10791         when we add abstract namespace support)
10792
10793         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10794         subst'ing it
10795
10796 2003-05-28  Colin Walters  <walters@verbum.org>
10797
10798         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10799
10800 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10801
10802         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10803
10804 2003-05-17  Colin Walters  <walters@gnu.org>
10805
10806         * tools/dbus-send.c: Don't exit with an error code if --help was
10807         passed.  Default to using the session bus instead of the system
10808         one.
10809
10810         * tools/dbus-launch.c: Ditto.
10811
10812         * tools/dbus-monitor.c: Ditto.
10813
10814         * tools/dbus-send.1: Update with new arguments.
10815
10816         * tools/dbus-launch.c: Emit code to export variables.  New
10817         arguments -s and -c to specify shell syntax, and a bit of code to
10818         autodetect syntax.  Also, allow specifying a program to run.
10819
10820         * tools/dbus-launch.1: Update with new arguments.
10821
10822         * tools/dbus-send.1: Ditto.
10823
10824         * tools/dbus-monitor.1: Ditto.
10825
10826 2003-05-17  Havoc Pennington  <hp@pobox.com>
10827
10828         * bus/config-parser.c (merge_included): merge in policies from
10829         child configuration file.
10830
10831         * bus/policy.c (bus_policy_merge): function to merge two policies
10832         together
10833
10834 2003-05-16  Havoc Pennington  <hp@redhat.com>
10835
10836         * dbus/dbus-connection.c: disable verbose lock spew
10837
10838         * tools/dbus-send.c: add --print-reply command line option
10839
10840         * tools/dbus-print-message.h (print_message): new util function
10841         shared by dbus-send and dbus-monitor
10842
10843         * tools/dbus-monitor.c (handler_func): exit on disconnect
10844
10845         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10846         disconnected, don't try to use the read_watch
10847
10848         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10849         so we can find this bug more easily
10850
10851 2003-05-16  Havoc Pennington  <hp@redhat.com>
10852
10853         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10854         NULL as DBusHashTable is annoyingly likely to do.
10855
10856 2003-05-16  Colin Walters  <walters@verbum.org>
10857
10858         * tools/dbus-monitor.c: Add --session argument and usage()
10859         function.
10860
10861         * tools/dbus-monitor.1: Update with new --session arg.
10862
10863         * bus/Makefile.am (install-data-hook): Create
10864         $(libdir)/dbus-1.0/services so that the session bus is happy.
10865
10866 2003-05-15  Havoc Pennington  <hp@redhat.com>
10867
10868         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10869         on non-x86. ifdef's are evil.
10870
10871 2003-05-15  Havoc Pennington  <hp@redhat.com>
10872
10873         * configure.in: 0.11
10874
10875         * NEWS: update
10876
10877         * bus/Makefile.am (initddir): apparently we are supposed to put
10878         init scripts in /etc/rc.d/init.d not /etc/init.d
10879
10880         * bus/Makefile.am: remove the "you must --enable-tests to make
10881         check" as it broke distcheck
10882
10883         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10884
10885 2003-05-13  James Willcox  <jwillcox@gnome.org>
10886
10887         * configure.in:
10888         * bus/activation.c: (bus_activation_service_created),
10889         (bus_activation_activate_service):
10890         * bus/driver.c: (bus_driver_send_service_deleted),
10891         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10892         (bus_driver_send_service_acquired),
10893         (bus_driver_send_welcome_message),
10894         (bus_driver_handle_list_services):
10895         * bus/session.conf.in:
10896         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10897         (dbus_bus_service_exists), (dbus_bus_activate_service):
10898         * dbus/dbus-bus.h:
10899
10900         Add some convenience API which lets you activate a service, and did a
10901         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10902         and dbus_message_get_args()
10903
10904 2003-05-11  Havoc Pennington  <hp@pobox.com>
10905
10906         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10907         calling _dbus_marshal_validate_arg() for every byte in a byte
10908         array, etc.
10909
10910         * dbus/dbus-message-handler.c: use atomic reference counting to
10911         reduce number of locks slightly; the global lock in here sucks
10912
10913         * dbus/dbus-connection.c
10914         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10915         update_dispatch_status that can be called with lock held; then use
10916         in a couple places to reduce locking/unlocking
10917         (dbus_connection_send): hold the lock over the whole function
10918         instead of acquiring it twice.
10919
10920         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10921
10922         * bus/connection.c (bus_connections_setup_connection): fix access
10923         to already-freed memory.
10924
10925         * dbus/dbus-connection.c: keep a little cache of linked list
10926         nodes, to avoid using the global linked list alloc lock in the
10927         normal send-message case. Instead we just use the connection lock
10928         that we already have to take.
10929
10930         * dbus/dbus-list.c (_dbus_list_find_last): new function
10931
10932         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10933         change to use a struct for the atomic type; fix docs,
10934         they return value before increment, not after increment.
10935
10936         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10937         (_dbus_string_append_8_aligned): new functions to try to
10938         microoptimize this operation.
10939         (reallocate_for_length): break this out of set_length(), to
10940         improve profile info, and also so we can consider inlining the
10941         set_length() part.
10942
10943         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10944         strings with some preallocation, cuts down on our calls to realloc
10945         a fair bit. Though if we can get the "move entire string to empty
10946         string" optimization below to kick in here, it would be better.
10947
10948         * dbus/dbus-string.c (_dbus_string_move): just call
10949         _dbus_string_move_len
10950         (_dbus_string_move_len): add a special case for moving
10951         an entire string into an empty string; we can just
10952         swap the string data instead of doing any reallocs.
10953         (_dbus_string_init_preallocated): new function
10954
10955 2003-05-11  Havoc Pennington  <hp@pobox.com>
10956
10957         Write a "test-profile" that does echo client-server with threads;
10958         profile reveals lock contention, memcpy/realloc of buffers, and
10959         UTF-8 validation as hot spots. 20% of lock contention eliminated
10960         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10961         contention is global mempool locks for GList and DBusList.
10962
10963         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10964         x86 implementation
10965
10966         * dbus/dbus-connection.c (struct DBusConnection): use
10967         dbus_atomic_t for the reference count
10968
10969         * dbus/dbus-message.c (struct DBusMessage): declare
10970         dbus_atomic_t values as volatile
10971
10972         * configure.in: code to detect ability to use atomic integer
10973         operations in assembly, from GLib patch
10974
10975         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10976         time, tired of it being wrong in threads and forked processes
10977
10978         * glib/test-profile.c: a little program to bounce messages back
10979         and forth between threads and eat CPU
10980
10981         * dbus/dbus-connection.c: add debug spew macros for debugging
10982         thread locks; include config.h at top; fix deadlock in
10983         dbus_connection_flush()
10984
10985 2003-05-08  Havoc Pennington  <hp@pobox.com>
10986
10987         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10988         data from getting written, and there wasn't a good reason to
10989         use _exit really.
10990
10991         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10992         dbus_verbose lines in test coverage
10993         (main): add list of functions sorted by # of untested blocks
10994         to the coverage report
10995
10996         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10997
10998         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10999
11000         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11001         extend test coverage
11002
11003         * test/data/auth/cancel.auth-script: test canceling an
11004         authentication
11005
11006         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11007         aren't used. in CVS history if we end up needing them.
11008
11009 2003-05-04  Havoc Pennington  <hp@pobox.com>
11010
11011         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11012         unit test
11013
11014         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11015         function, which assumed length was in # of strings, not bytes
11016
11017         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11018         missing coverage
11019
11020         * dbus/dbus-connection.c
11021         (_dbus_connection_queue_received_message): disable function for
11022         now, we are only using it in test mode
11023
11024         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11025         remove a mistaken FIXME
11026
11027 2003-05-04  Havoc Pennington  <hp@pobox.com>
11028
11029         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11030         unlock mutex on successful return, patch from Anders Gustafsson
11031
11032 2003-05-04  Havoc Pennington  <hp@pobox.com>
11033
11034         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11035         Anders Gustafsson
11036
11037 2003-05-04  Havoc Pennington  <hp@pobox.com>
11038
11039         * tools/dbus-launch.c: implement
11040
11041         * bus/main.c (main), bus/bus.c (bus_context_new):
11042         implement --print-pid and --fork
11043
11044 2003-05-03  Havoc Pennington  <hp@redhat.com>
11045
11046         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11047         the address had no value, and add to test suite. Fix and
11048         regression test from Miloslav Trmac
11049
11050 2003-05-03  Havoc Pennington  <hp@pobox.com>
11051
11052         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11053         watch is invalid when handled
11054
11055         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11056         dbus-launch utility to launch the bus from a shell script.  Didn't
11057         actually implement dbus-launch yet, it's just a placeholder still.
11058
11059 2003-05-03  Havoc Pennington  <hp@pobox.com>
11060
11061         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11062         daemon; also documents daemon config file, so replaces
11063         doc/config-file.txt. Corrected some stuff from config-file.txt in
11064         the process of moving it.
11065
11066 2003-05-03  Havoc Pennington  <hp@pobox.com>
11067
11068         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11069         add some man pages
11070
11071 2003-05-03  Colin Walters  <walters@verbum.org>
11072
11073         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11074         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11075
11076         * Makefile.am: Update to use new .pc versioning scheme.
11077
11078 2003-05-02  Havoc Pennington  <hp@redhat.com>
11079
11080         * bus/system.conf.in: allow send/receive to/from message bus
11081         service
11082
11083 2003-04-30  Havoc Pennington  <hp@redhat.com>
11084
11085         * configure.in: print a note when building with unit tests and
11086         without assertions
11087
11088 2003-04-30  Havoc Pennington  <hp@redhat.com>
11089
11090         * Makefile.am: add a check-local that complains if you didn't
11091         configure with --enable-tests
11092
11093 2003-04-29  Havoc Pennington  <hp@redhat.com>
11094
11095         * glib/dbus-gmain.c: docs cleanups
11096
11097         * dbus/dbus-types.h: add docs on int64 types
11098
11099         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11100         public API docs section
11101
11102 2003-04-29  Havoc Pennington  <hp@redhat.com>
11103
11104         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11105         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11106         parallel install API version, not with the D-BUS package version.
11107
11108         * HACKING: move some of README over here
11109
11110         * README: updates, and document API/ABI policy
11111
11112         * configure.in: reindentation
11113
11114 2003-04-29  Havoc Pennington  <hp@redhat.com>
11115
11116         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11117         to use this library" to be sure people have the right
11118         expectations.
11119
11120 2003-04-28  Havoc Pennington  <hp@redhat.com>
11121
11122         * configure.in: add --enable-docs which by default is auto yes if
11123         doxygen and db2html found, no otherwise; but can be forced on/off
11124
11125         * doc/Makefile.am: conditionalize whether to build docs on
11126         --enable-docs
11127
11128 2003-04-28  Havoc Pennington  <hp@redhat.com>
11129
11130         * configure.in: 0.10
11131
11132         * NEWS: update
11133
11134         * bus/system.conf.in: add <includedir>system.d</includedir>
11135
11136         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11137         username was provided but not uid
11138
11139         * bus/config-parser.c (struct BusConfigParser): keep track of
11140         whether the parser is toplevel or was included; change some
11141         of the error handling if it's included.
11142
11143 2003-04-27  Havoc Pennington  <hp@pobox.com>
11144
11145         Unbreak my code...
11146
11147         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11148         report correct status if we finish processing authentication
11149         inside this function.
11150
11151         * bus/activation.c (try_send_activation_failure): use
11152         bus_transaction_send_error_reply
11153
11154         * bus/connection.c (bus_connection_get_groups): return an error
11155         explaining the problem
11156
11157         * bus/bus.c (bus_context_check_security_policy): implement
11158         restriction here that inactive connections can only send the
11159         hello message. Also, allow bus driver to send anything to
11160         any recipient.
11161
11162         * bus/connection.c (bus_connection_complete): create the
11163         BusClientPolicy here instead of on-demand.
11164         (bus_connection_get_policy): don't return an error
11165
11166         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11167         sender field in message being replied to
11168
11169         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11170         causing it to return FALSE always
11171
11172         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11173         we checked sender rather than destination
11174
11175 2003-04-25  Havoc Pennington  <hp@redhat.com>
11176
11177         test suite is slightly hosed at the moment, will fix soon
11178
11179         * bus/connection.c (bus_connections_expire_incomplete): fix to
11180         properly disable the timeout when required
11181         (bus_connection_set_name): check whether we can remove incomplete
11182         connections timeout after we complete each connection.
11183
11184         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11185         probably still broken.
11186
11187         * bus/services.c (bus_registry_acquire_service): implement max
11188         number of services owned, and honor allow/deny rules on which
11189         services a connection can own.
11190
11191         * bus/connection.c (bus_connection_get_policy): report errors here
11192
11193         * bus/activation.c: implement limit on number of pending
11194         activations
11195
11196 2003-04-25  Havoc Pennington  <hp@redhat.com>
11197
11198         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11199         where we used >= 0 instead of != DBUS_UID_UNSET.
11200
11201 2003-04-25  Havoc Pennington  <hp@redhat.com>
11202
11203         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11204         were toggled without add/remove, fix from Anders Gustafsson
11205
11206 2003-04-24  Havoc Pennington  <hp@redhat.com>
11207
11208         * test/data/valid-config-files/basic.conf: add <limit> tags to
11209         this test
11210
11211         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11212         <limit> tag in configuration file.
11213
11214 2003-04-24  Havoc Pennington  <hp@redhat.com>
11215
11216         * bus/dispatch.c: somehow missed some name_is
11217
11218         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11219         (_dbus_timeout_set_interval): new
11220
11221         * bus/connection.c (bus_connections_setup_connection): record time
11222         when each connection is first set up, and expire them after the
11223         auth timeout passes.
11224
11225 2003-04-24  Havoc Pennington  <hp@redhat.com>
11226
11227         * dbus/dbus-message.c (dbus_message_name_is): rename
11228         (dbus_message_service_is): rename
11229         (dbus_message_sender_is): rename
11230         (dbus_message_get_service): rename
11231
11232 2003-04-24  Havoc Pennington  <hp@redhat.com>
11233
11234         * configure.in: add --enable-checks
11235
11236         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11237
11238         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11239         to use thread locks.
11240         (_dbus_connection_handler_destroyed_locked): move some private
11241         functions into proper docs group
11242
11243         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11244         _dbus_return_val_if_fail
11245
11246         Throughout: use dbus_return_if_fail
11247
11248 2003-04-23  James Willcox  <jwillcox@gnome.org>
11249
11250         * glib/dbus-glib.h:
11251         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11252         (dbus_connection_setup_with_g_main),
11253         (dbus_server_setup_with_g_main):
11254         * glib/test-dbus-glib.c: (main):
11255         * glib/test-thread-client.c: (main):
11256         * glib/test-thread-server.c: (new_connection_callback), (main):
11257         * tools/dbus-monitor.c: (main):
11258
11259         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11260         and dbus_server_setup_with_g_main().
11261
11262 2003-04-20  Havoc Pennington  <hp@pobox.com>
11263
11264         * doc/dbus-specification.sgml: document the restrictions on
11265         message and service names
11266
11267 2003-04-22  Havoc Pennington  <hp@redhat.com>
11268
11269         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11270         support, and do some code cleanups to share more code and
11271         speed up array marshal/demarshal.
11272
11273         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11274
11275         * configure.in: generate dbus-arch-deps.h
11276
11277         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11278         64-bit typecodes
11279
11280 2003-04-22  Havoc Pennington  <hp@redhat.com>
11281
11282         * test/data/valid-messages/opposite-endian.message: fix test
11283         to use proper type for rply field
11284
11285         * test/data/invalid-messages: add tests for below validation
11286
11287         * dbus/dbus-message.c (decode_header_data): validate field types,
11288         and validate that named fields are valid names
11289         (decode_name_field): consider messages in the
11290         org.freedesktop.Local. namespace to be invalid.
11291
11292         * dbus/dbus-string.c (_dbus_string_validate_name): new
11293
11294 2003-04-19  Havoc Pennington  <hp@pobox.com>
11295
11296         * bus/driver.c (bus_driver_handle_hello): check limits and
11297         return an error if they are exceeded.
11298
11299         * bus/connection.c: maintain separate lists of active and inactive
11300         connections, and a count of each. Maintain count of completed
11301         connections per user. Implement code to check connection limits.
11302
11303         * dbus/dbus-list.c (_dbus_list_unlink): export
11304
11305         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11306         number of bytes in the message queue for a connection
11307
11308 2003-04-18  Havoc Pennington  <hp@pobox.com>
11309
11310         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11311
11312         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11313         memleaks
11314
11315         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11316         on realloc be sure to update the pointer in the keyring
11317
11318         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11319         offset to avoid writing to unallocated memory
11320
11321         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11322         try the next mechanism, so we properly handle OOM
11323
11324         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11325         on OOM.
11326         (_dbus_keyring_new): fix OOM bug
11327         (_dbus_keyring_new_homedir): always set error; impose a maximum
11328         number of keys we'll load from the file, mostly to speed up the
11329         test suite and make its OOM checks more useful, but also for
11330         general sanity.
11331
11332         * dbus/dbus-auth.c (process_error_server): reject authentication
11333         if we get an error from the client
11334         (process_cancel): on cancel, send REJECTED, per the spec
11335         (process_error_client): send CANCEL if we get an error from the
11336         server.
11337
11338 2003-04-18  Havoc Pennington  <hp@pobox.com>
11339
11340         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11341         debug spew
11342
11343         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11344         handling problem
11345
11346         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11347         about DBUS_TEST_HOMEDIR once
11348
11349         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11350         the environment
11351
11352         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11353         config file so we test the right thing
11354
11355         Throughout: assorted docs improvements
11356
11357 2003-04-18  Havoc Pennington  <hp@pobox.com>
11358
11359         * glib/dbus-gmain.c: adapt to watch changes
11360
11361         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11362
11363         * dbus/dbus-server.h: remove dbus_server_handle_watch
11364
11365         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11366
11367         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11368         like DBusTimeout, so we don't need dbus_connection_handle_watch
11369         etc.
11370
11371 2003-04-17  Havoc Pennington  <hp@redhat.com>
11372
11373         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11374         database usage so it all goes via the DBusUserDatabase cache.
11375
11376 2003-04-17  Havoc Pennington  <hp@redhat.com>
11377
11378         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11379         there was an OOM watch we skipped, we always return TRUE so we
11380         iterate again to have a look at it again. Fixes test suite hang.
11381         Code rearrangement also lets us lose some memset and only iterate
11382         over callbacks once.
11383
11384         * bus/driver.c (bus_driver_handle_message): sense of test for
11385         reply was backward
11386
11387 2003-04-16  Havoc Pennington  <hp@pobox.com>
11388
11389         * doc/dbus-specification.sgml: make spec say serials are unsigned
11390
11391         * dbus/dbus-message.h: change message serials to unsigned
11392
11393         * dbus/dbus-connection.c: adapt to message serials being unsigned
11394
11395 2003-04-15  Havoc Pennington  <hp@pobox.com>
11396
11397         * bus/bus.c: create and keep around a shared DBusUserDatabase
11398         object.
11399
11400         * bus/connection.c (bus_connection_get_groups): don't cache
11401         groups for user in the connection object, since user database
11402         object now does that.
11403
11404 2003-04-16  Havoc Pennington  <hp@redhat.com>
11405
11406         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11407         list of size counters
11408         (_dbus_message_loader_putback_message_link): put back a popped link
11409
11410         * dbus/dbus-connection.c
11411         (dbus_connection_set_max_live_messages_size): rename
11412         max_received_size
11413         (dbus_connection_get_outgoing_size): get size of outgoing
11414         queue
11415         (_dbus_connection_set_connection_counter): remove this cruft
11416
11417 2003-04-14  Havoc Pennington  <hp@redhat.com>
11418
11419         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11420         caching, but at some point we might want to be able to use a
11421         different database.
11422
11423         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11424         SHA1 conf file to test the sha1 auth mechanism, since the regular
11425         test always uses EXTERNAL when available.
11426
11427         * configure.in,
11428         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11429         add conf file that requires use of sha1 auth
11430
11431 2003-04-13  Havoc Pennington  <hp@pobox.com>
11432
11433         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11434         from Philip Blundell to send messages and monitor them.
11435
11436 2003-04-13  Havoc Pennington  <hp@pobox.com>
11437
11438         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11439         callbacks
11440
11441         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11442         users
11443
11444         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11445         fix to only recover unused bytes if we're already authenticated
11446         (_dbus_transport_get_is_authenticated): fix to still mark us
11447         authenticated if there are unused bytes.
11448
11449         * bus/dispatch.c: implement security policy checking
11450
11451         * bus/connection.c (bus_transaction_send_from_driver): new
11452
11453         * bus/bus.c (bus_context_check_security_policy): new
11454
11455         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11456         now we just set the DBusError and it gets converted to an error
11457         reply.
11458
11459         * bus/connection.c (allow_user_function): enable code using actual
11460         data from the config file
11461
11462         * bus/policy.c (list_allows_user): handle wildcard rules for
11463         user/group connection perms
11464
11465 2003-04-13  Havoc Pennington  <hp@pobox.com>
11466
11467         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11468
11469         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11470
11471         * bus/policy.c (bus_policy_append_mandatory_rule)
11472         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11473         (bus_policy_append_group_rule): new functions
11474
11475 2003-04-12  Havoc Pennington  <hp@pobox.com>
11476
11477         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11478
11479         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11480         the pid/gid/uid, just for paranoia.
11481
11482         * test/break-loader.c (randomly_do_n_things): find a byte
11483         containing a type code, and randomly change it to a different
11484         type code.
11485
11486 2003-04-12  Havoc Pennington  <hp@pobox.com>
11487
11488         * bus/policy.h: change BusPolicy to be the thing from the config
11489         file, and rename old BusPolicy to BusClientPolicy
11490
11491         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11492         match change in how policy works
11493
11494         * dbus/dbus-internals.h: mark assert_not_reached as
11495         __attribute((noreturn))__
11496
11497 2003-04-11  Havoc Pennington  <hp@redhat.com>
11498
11499         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11500         the broadcast service. Use boolean return for ServiceExists.
11501
11502 2003-04-11  Havoc Pennington  <hp@redhat.com>
11503
11504         * configure.in: add another directory to look for qt in.
11505
11506 2003-04-11  Havoc Pennington  <hp@redhat.com>
11507
11508         * AUTHORS: add Colin Walters
11509
11510 2003-04-11  Havoc Pennington  <hp@redhat.com>
11511
11512         * NEWS: update
11513
11514         * configure.in: 0.9
11515
11516 2003-04-11  Havoc Pennington  <hp@redhat.com>
11517
11518         * bus/messagebus.in: remove pid file when stopping the
11519         message bus, since the bus won't have privileges to remove it
11520         itself.
11521
11522 2003-04-11  Havoc Pennington  <hp@redhat.com>
11523
11524         * bus/bus.c (bus_context_new): move credentials change after
11525         creating pidfile
11526
11527 2003-04-11  Havoc Pennington  <hp@pobox.com>
11528
11529         * test/decode-gcov.c: add "below average functions" to the
11530         coverage report, and change how some of the code works.
11531
11532         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11533         not in the coverage stats.
11534
11535         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11536         couple places so running the test suite doesn't result in megaspam.
11537
11538 2003-04-11  Havoc Pennington  <hp@pobox.com>
11539
11540         * bus/dispatch.c (check_existent_service_activation): accept a no
11541         memory error in a place we didn't before
11542
11543         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11544         in case the first one failed," since the test suite is less
11545         broken now.
11546
11547 2003-04-10  Havoc Pennington  <hp@pobox.com>
11548
11549         * bus/dispatch.c (check_segfault_service_activation): add test
11550         for launching an executable that just crashes.
11551
11552         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11553         don't leave a million cores. We'll see how portable this is.
11554
11555 2003-04-10  Havoc Pennington  <hp@pobox.com>
11556
11557         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11558         the possible parent failures before we fork, so that we don't
11559         fail to create a babysitter after creating the child.
11560
11561         * bus/activation.c (bus_activation_activate_service): kill child
11562         if we don't successfully complete the activation.
11563
11564 2003-04-10  Havoc Pennington  <hp@redhat.com>
11565
11566         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11567         the connection if it's disconnected
11568
11569         * bus/activation.c (bus_activation_service_created): use new
11570         transaction features to roll back removal of pending activation if
11571         we don't successfully create the service after all. Don't remove
11572         pending activation if the function fails.
11573
11574         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11575         (_dbus_list_insert_after_link): new code to facilitate
11576         services.c fixes
11577
11578         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11579         new functionality, so we can preallocate the ability to insert
11580         into a hash table.
11581
11582         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11583         allowing us to put custom hooks in a transaction to be used for
11584         cancelling said transaction
11585
11586         * doc/dbus-specification.sgml: add some discussion of secondary
11587         service owners, and disallow zero-length service names
11588
11589         * bus/services.c (bus_registry_acquire_service): new function,
11590         splits out part of bus_driver_handle_acquire_service() and fixes
11591         a bug where we didn't remove the service doing the acquiring
11592         from the secondary queue if we failed to remove the current owner
11593         from the front of the queue.
11594
11595 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11596
11597         * doc/dbus-specification.sgml:
11598         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11599
11600 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11601
11602         * bus/.cvsignore:
11603         * glib/.cvsignore:
11604         * test/.cvsignore:
11605         Added files to cvsignore
11606
11607         * dbus/dbus-message.h:
11608         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11609         Make get_named() take two out argument and return a boolean.
11610         (dbus_message_iter_get_args_valist):
11611         Update usage of get_named().
11612         (dbus_message_iter_append_byte):
11613         Fix typo
11614         (dbus_message_iter_append_named)
11615         Fix typo
11616         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11617         More tests.
11618
11619 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11620
11621         * dbus/dbus-marshal.[ch]:
11622         Add array_type_pos argument to _dbus_marshal_validate_arg.
11623         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11624
11625         * dbus/dbus-message.[ch]:
11626         Multi-dimensional arrays have full type specification in the
11627         outermost array. Iter code re-arranged to handle this.
11628         Added some more iter tests.
11629
11630         * doc/dbus-specification.sgml:
11631         Add me to authors.
11632         Remove old FIXME.
11633         Update new array encoding description.
11634         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11635
11636         * test/data/invalid-messages/array-with-mixed-types.message:
11637         * test/data/valid-messages/array-of-array-of-uint32.message:
11638         Change to the new array format.
11639
11640         * test/data/invalid-messages/too-short-dict.message:
11641         Fix bug in test.
11642
11643         * test/data/valid-messages/recursive-types.message:
11644         Fix up and extend test.
11645
11646 2003-04-10  Havoc Pennington  <hp@pobox.com>
11647
11648         * bus/dispatch.c: lots of fixes
11649
11650         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11651         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11652         that was crack, broke the test service.
11653
11654         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11655         handling to avoid piling up errors if we get a failure on the
11656         first address.
11657
11658         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11659         pid in assertion failures.
11660
11661         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11662         to some fixed size of file descriptor array. Don't return TRUE
11663         anytime a timeout exists, that led to lots of busy loop silliness
11664         in the tests.
11665
11666 2003-04-09  Havoc Pennington  <hp@redhat.com>
11667
11668         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11669         I'd checked this in earlier but hadn't.
11670
11671 2003-04-09  Havoc Pennington  <hp@redhat.com>
11672
11673         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11674         the activation test (man this is getting old!)
11675
11676 2003-04-09  Havoc Pennington  <hp@redhat.com>
11677
11678         * test/test-utils.c: use dispatch status function to fix this up
11679
11680         * bus/connection.c (connection_watch_callback): don't dispatch
11681         from here
11682         (connection_timeout_callback): don't dispatch from here
11683         (bus_connections_setup_connection): set the dispatch status function
11684         (bus_connection_disconnected): unset it
11685
11686         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11687         used to add a connection to be dispatched
11688         (_dbus_loop_iterate): do the dispatching at the end of each
11689         iteration
11690
11691         * dbus/dbus-connection.c
11692         (dbus_connection_set_dispatch_status_function): new function
11693         allowing us to fix up main loop usage
11694         (_dbus_connection_last_unref): free all the various function
11695         user data
11696         (dbus_connection_dispatch): call the DispatchStatusFunction
11697         whenever this function returns
11698         (dbus_connection_handle_watch): call DispatchStatusFunction
11699         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11700         (reply_handler_timeout): call DispatchStatusFunction
11701         (dbus_connection_flush): call DispatchStatusFunction
11702
11703 2003-04-09  Havoc Pennington  <hp@redhat.com>
11704
11705         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11706         a memory leak
11707
11708         * bus/dispatch.c (check_service_activated): fix bug in test
11709
11710         * dbus/dbus-mainloop.c (check_timeout): fix this up
11711
11712         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11713         verbose output so we can sort out output from different processes,
11714         e.g. in the activation case.
11715
11716 2003-04-08  Colin Walters  <walters@gnu.org>
11717
11718         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11719         the pid file.
11720         (bus_context_new): Set it.
11721         (bus_context_unref): Use it to delete the pid file.
11722
11723 2003-04-08  Havoc Pennington  <hp@redhat.com>
11724
11725         * test/data/invalid-messages/array-with-mixed-types.message:
11726         regression test that fails for the moment
11727
11728         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11729         tests for convenience
11730
11731         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11732         array of nil, it broke things.
11733
11734         * test/data/invalid-messages/array-of-nil.message: regression test
11735
11736         * test/data/valid-messages/array-of-array-of-uint32.message:
11737         happened to write this so added it to suite
11738
11739 2003-04-08  Havoc Pennington  <hp@redhat.com>
11740
11741         * bus/driver.c (bus_driver_handle_acquire_service): init
11742         retval/reply before checking name
11743
11744         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11745         recursion depth argument
11746
11747         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11748         in the public struct for future extension
11749
11750         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11751         typo
11752
11753         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11754         message
11755
11756         * doc/dbus-specification.sgml: fix typo
11757
11758 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11759
11760         Implemented recursive types, named types and new-style iters
11761
11762         * bus/driver.c:
11763         * glib/test-thread-client.c: (thread_func):
11764         * glib/test-thread-server.c: (handle_test_message):
11765         * test/test-service.c: (handle_echo):
11766         Update to new api
11767
11768         * dbus/Makefile.am:
11769         * dbus/dbus-dict.c:
11770         * dbus/dbus-dict.h:
11771         * dbus/dbus.h
11772         Remove DBusDict
11773
11774         * dbus/dbus-internals.c: (_dbus_type_to_string):
11775         Update for new types.
11776
11777         * dbus/dbus-marshal.[ch]:
11778         Implement recursive types and the new marshalling format.
11779         Remove hardcoded dict marshalling.
11780         Marshal named types.
11781
11782         * dbus/dbus-message-builder.c:
11783         Add BYTE_ARRAY.
11784         Remove references to old types
11785
11786         * dbus/dbus-message.[ch]:
11787         New non-refcounted iter API that supports recursive iters.
11788         Use iters for appending, including support for recursive
11789         iters.
11790         Add byte and named type support.
11791         Update everything to new marshalling formats.
11792         Add tests for new API.
11793
11794         * dbus/dbus-protocol.h:
11795         Remove old array types.
11796         Add types: BYTE, ARRAY, DICT, NAMED
11797
11798         * dbus/dbus-string.c:
11799         * dbus/dbus-sysdeps.c:
11800         Make parse_double locale safe.
11801
11802         * dbus/dbus-test-main.c:
11803         Call setlocale.
11804
11805         * dbus/dbus-test.c:
11806         Kill dict test
11807
11808         * doc/dbus-specification.sgml:
11809         Update spec
11810
11811         * test/data/incomplete-messages/missing-body.message:
11812         * test/data/invalid-messages/bad-boolean.message:
11813         * test/data/invalid-messages/bad-boolean-array.message:
11814         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11815         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11816         * test/data/invalid-messages/too-short-dict.message:
11817         * test/data/valid-messages/dict-simple.message:
11818         * test/data/valid-messages/dict.message:
11819         * test/data/valid-messages/emptiness.message:
11820         * test/data/valid-messages/lots-of-arguments.message:
11821         * test/data/valid-messages/no-padding.message:
11822         * test/data/valid-messages/recursive-types.message:
11823         Add missing NAME fields
11824         Fix up dicts & arrays
11825
11826         * test/data/invalid-messages/dict-with-nil-value.message:
11827         Removed, this is not invalid anymore.
11828
11829         * test/data/valid-messages/recursive-types.message:
11830         Add new test for deeply recursive types.
11831
11832 2003-04-07  Havoc Pennington  <hp@pobox.com>
11833
11834         * bus/driver.c (bus_driver_handle_acquire_service): return an
11835         error if you try to acquire a service that starts with ':'
11836
11837 2003-04-07  Havoc Pennington  <hp@redhat.com>
11838
11839         * doc/dbus-specification.sgml: require that base service names
11840         start with ':' and that the base service is created/deleted
11841         as first and last things a connection does on the bus
11842
11843         * bus/dispatch.c (check_existent_service_activation): lots more
11844         work on the activation test; it doesn't fully pass yet...
11845
11846         * test/test-service.c (main): fix so we don't memleak the
11847         connection to the message bus
11848         (filter_func): accept a message asking us to exit
11849
11850 2003-04-06  Havoc Pennington  <hp@pobox.com>
11851
11852         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11853         from Colin Walters
11854
11855         * configure.in: fixes to Qt detection from Colin Walters
11856
11857         * doc/Makefile.am: Only remove generated docbook dirs if they
11858         exist, from Colin Walters
11859
11860         * dbus/dbus-bus.c: change how we set well-known connections to
11861         NULL, so that it works if a single connection is stored in
11862         two well-known array slots.
11863
11864         * test/Makefile.am: remove a lot of stuff that isn't immediately
11865         useful, it's in CVS history if we want it.
11866
11867         * test/test-service.c: use dbus-mainloop instead of that
11868         watch.[hc] crack
11869
11870 2003-04-06  Havoc Pennington  <hp@pobox.com>
11871
11872         * dbus/Makefile.am: split lists of sources into stuff that goes in
11873         the library, util functions that go in the lib and are also used
11874         elsewhere, and util functions that are used in tests/daemon but
11875         don't go in the lib.
11876
11877         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11878         here so it can be used in test binaries also
11879
11880 2003-04-06  Havoc Pennington  <hp@pobox.com>
11881
11882         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11883         here in the parent process, so we can return an error if it
11884         fails. Also, move some of the code into the child so the parent
11885         is less hosed if we fail midway through.
11886
11887         * bus/bus.c (bus_context_new): move pidfile detection further up
11888         in the function, before we start overwriting sockets and such.
11889
11890         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11891
11892         * configure.in: add --with-system-pid-file and --with-system-socket
11893
11894 2003-04-06  Colin Walters  <walters@verbum.org>
11895
11896         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11897
11898         * bus/system.conf.in: Declare a pidfile.
11899
11900         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11901         create one (if appropriate).
11902
11903         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11904         (struct BusConfigParser) [pidfile]: New.
11905         (element_type_to_name, merge_included, start_busconfig_child)
11906         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11907         (bus_config_parser_unref): Free it.
11908         (bus_config_parser_get_pidfile): New function.
11909
11910         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11911
11912         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11913
11914         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11915
11916         * dbus/dbus-sysdeps.h: Prototype it.
11917
11918 2003-04-06  Havoc Pennington  <hp@pobox.com>
11919
11920         * bus/bus.c (bus_context_new): print the address in here, rather
11921         than in main(), because we need to do it before forking the daemon
11922
11923         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11924         on the service nonexistent error
11925
11926         * bus/driver.c (bus_driver_handle_acquire_service): set the
11927         sender on the AcquireService reply
11928
11929         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11930         server also listen on a UNIX socket so services can connect to it.
11931
11932 2003-04-06  Havoc Pennington  <hp@pobox.com>
11933
11934         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11935         so it detects deadlocks and also we actually init threads when
11936         debugging.
11937
11938 2003-04-06  Havoc Pennington  <hp@pobox.com>
11939
11940         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11941         save the domain socket name, and unlink it when we disconnect the
11942         server. Means that at least when we exit normally, we won't leave
11943         a bunch of junk in /tmp
11944
11945         * dbus/dbus-transport-unix.c
11946         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11947         memory management). (I was making a real change here but then
11948         didn't)
11949
11950 2003-04-06  Havoc Pennington  <hp@pobox.com>
11951
11952         * bus/bus.c (bus_context_new): fix wrong handling of
11953         server_data_slot_unref() in the error case.
11954
11955         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11956         "(condition) != 0" to _dbus_real_assert so that
11957         "_dbus_assert (pointer)" doesn't cause a warning
11958
11959         * bus/main.c (main): accept --print-address option to print out
11960         the message bus address
11961
11962         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11963
11964         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11965         "tmpdir" option to unix: address on client side
11966
11967         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11968         to unix: address
11969
11970         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11971         we can use to create sockets in the test suite.
11972
11973         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11974         cleanly. To be used for testing.
11975
11976         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11977
11978         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11979
11980         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11981         handle trying to call this when there's no servers active
11982
11983 2003-04-05  Havoc Pennington  <hp@pobox.com>
11984
11985         * NEWS: update
11986
11987         * configure.in: 0.8
11988
11989 2003-04-05  Havoc Pennington  <hp@pobox.com>
11990
11991         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11992         crash on startup. Need to get "try starting the daemon"
11993         in the test suite I guess. ;-)
11994
11995         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11996         tracked the number of open connections; it's better done in
11997         application-specific code as you want it to span all servers etc.
11998
11999 2003-04-05  Havoc Pennington  <hp@pobox.com>
12000
12001         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12002         patch from Colin Walters
12003
12004 2003-04-05  Havoc Pennington  <hp@pobox.com>
12005
12006         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12007         reality; in fact multiple mechanisms are allowed.
12008
12009         * dbus/dbus-internals.c (_dbus_real_assert)
12010         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12011         _dbus_assert_not_reached() into functions, so that they don't show
12012         up in basic block counts for test coverage, and don't use up as
12013         much disk space. Does mean slower execution speed though, so
12014         assumes --disable-asserts is the normal production case.
12015
12016 2003-04-05  Havoc Pennington  <hp@pobox.com>
12017
12018         * test/Makefile.am (dist-hook): also dist *.in files
12019
12020         * NEWS: update
12021
12022         * configure.in: 0.7
12023
12024 2003-04-05  Havoc Pennington  <hp@pobox.com>
12025
12026         * dbus/dbus-string.c: docs warning
12027
12028         * dbus/dbus-spawn.c: missing docs
12029
12030         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12031
12032 2003-04-05  Havoc Pennington  <hp@pobox.com>
12033
12034         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12035         magic from GLib
12036
12037         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12038         to -1 once we've reaped the babysitter
12039         (_dbus_babysitter_handle_watch): do as much work as we can, not
12040         just one go of it
12041
12042         * bus/activation.c: add code using DBusBabysitter so that we
12043         handle it when a service fails to start up properly.
12044         (bus_activation_service_created): don't remove the activation
12045         entries as we go, just let them get removed when we free the pending
12046         activation. Unref reply messages after sending them.
12047
12048 2003-04-05  Havoc Pennington  <hp@pobox.com>
12049
12050         * test/decode-gcov.c (main): print per-directory stats in the report
12051
12052         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12053
12054 2003-04-05  Havoc Pennington  <hp@pobox.com>
12055
12056         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12057
12058         * test/decode-gcov.c: hack up a little program to suck data
12059         out of gcov files. Yes this is sort of silly.
12060
12061         * configure.in: define something in config.h and do an
12062         AM_CONDITIONAL when gcov is enabled
12063
12064 2003-04-04  Havoc Pennington  <hp@redhat.com>
12065
12066         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12067         return a "babysitter" object that is used to monitor the status of
12068         the spawned process and reap it when required.
12069
12070         * test/test-segfault.c, test/test-exit.c,
12071         test/test-sleep-forever.c: binaries that do various lame things,
12072         used in the test suite.
12073
12074         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12075
12076 2003-04-03  Havoc Pennington  <hp@pobox.com>
12077
12078         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12079         in preparation for modifying it, dbus-sysdeps is getting
12080         a bit unmanageable.
12081
12082 2003-04-03  Havoc Pennington  <hp@redhat.com>
12083
12084         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12085         have multiple ones
12086
12087         * bus/*.[hc]: adapt to mainloop change
12088
12089 2003-04-03  Havoc Pennington  <hp@redhat.com>
12090
12091         * bus/activation.c (load_directory): fix up memleaks
12092         (bus_activation_entry_free): free the entry
12093
12094         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12095         we get one from the message bus; fix memleaks.
12096
12097         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12098
12099 2003-04-03  Havoc Pennington  <hp@pobox.com>
12100
12101         * bus/config-parser.c (bus_config_parser_unref): free
12102         list of mechanisms, bug discovered by test suite enhancements
12103         (putting system.conf and session.conf into suite)
12104
12105         * test/Makefile.am, test/test-service.c: add placeholder for a
12106         test service that we'll activate as part of test suite. Doesn't
12107         do anything yet.
12108
12109         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12110         setting NULL value, and use system malloc not dbus_malloc()
12111         when we have unavoidable memleakage.
12112
12113         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12114         didn't work, and support DBUS_BUS_ACTIVATION.
12115
12116         * bus/activation.c (child_setup): pass our well-known bus type to
12117         the child
12118
12119         * bus/config-parser.c: support <type> to specify well-known type
12120
12121         * doc/dbus-specification.sgml: document the env variables to
12122         locate well-known buses and find service activator
12123
12124 2003-04-02  Havoc Pennington  <hp@redhat.com>
12125
12126         * test/Makefile.am (all-local): add a rule to copy tests to
12127         builddir, so we can have generated tests. Use this to remove the
12128         silly hack for testing system.conf and session.conf. Will use this
12129         shortly to generate .service files pointing to test binaries.
12130
12131 2003-04-02  Havoc Pennington  <hp@redhat.com>
12132
12133         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12134         current alloc and needed new length, not max of the doubled
12135         allocation and needed new length. Also, when building tests,
12136         don't do the double-allocation stuff, just realloc every time.
12137
12138 2003-04-02  Havoc Pennington  <hp@redhat.com>
12139
12140         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12141         in error messages
12142         (_dbus_string_get_dirname): new
12143         (_dbus_sysdeps_test): new
12144         (_dbus_directory_open): include dirnames in error messages
12145
12146         * bus/config-parser.c: interpret <include> and <includedir> and
12147         <servicedir> relative to config file location if the given
12148         filename is not absolute.
12149
12150         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12151
12152 2003-04-02  Havoc Pennington  <hp@redhat.com>
12153
12154         * bus/connection.c (bus_transaction_send_error_reply): set sender
12155         service for the error, and unref the reply on success
12156
12157         * bus/activation.c: convert to use BusTransaction so OOM can be
12158         handled correctly
12159         (bus_activation_service_created): set sender of the message
12160
12161 2003-04-01  Havoc Pennington  <hp@redhat.com>
12162
12163         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12164         <includedir> (at least mostly)
12165
12166         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12167         first, then the user ID
12168
12169 2003-04-01  Havoc Pennington  <hp@pobox.com>
12170
12171         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12172         function
12173
12174         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12175
12176         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12177
12178         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12179         socket 0777, and unlink any existing socket.
12180
12181         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12182         the configuration file so specifies; set up auth mechanism
12183         restrictions
12184
12185         * bus/config-parser.c (bus_config_parser_content): add support
12186         for <fork> option and fill in code for <auth>
12187
12188         * bus/system.conf.in: add <fork/> to default configuration,
12189         and limit auth mechanisms to EXTERNAL
12190
12191         * doc/config-file.txt (Elements): add <fork>
12192
12193         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12194         (_dbus_change_identity): new function
12195
12196 2003-03-31  Havoc Pennington  <hp@redhat.com>
12197
12198         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12199         (_dbus_listen_unix_socket): fix off-by-one error in null
12200         termination spotted by Nalin
12201
12202 2003-03-31  Havoc Pennington  <hp@redhat.com>
12203
12204         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12205         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12206         having a real home directory available.
12207
12208 2003-03-31  Havoc Pennington  <hp@redhat.com>
12209
12210         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12211
12212         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12213
12214         * configure.in: add support for specifying a style of init script
12215         to install
12216
12217 2003-03-31  Havoc Pennington  <hp@redhat.com>
12218
12219         Fix some annoying DBusString API and fix all affected code.
12220
12221         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12222         max_length argument
12223         (_dbus_string_get_data): change to return string instead of using
12224         an out param
12225         (_dbus_string_get_const_data): ditto
12226         (_dbus_string_get_data_len): ditto
12227         (_dbus_string_get_const_data_len): ditto
12228
12229 2003-03-31  Havoc Pennington  <hp@redhat.com>
12230
12231         * bus/main.c (main): fix up the command line arguments to be nicer
12232
12233 2003-03-31  Havoc Pennington  <hp@redhat.com>
12234
12235         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12236         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12237         final location that lands in the config file
12238
12239         * bus/config-loader-expat.c (bus_config_load): fix type of
12240         XML_Parser variable
12241
12242         * doc/TODO: remove TODO item for dbus_bus_get()
12243
12244         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12245
12246 2003-03-31  Havoc Pennington  <hp@pobox.com>
12247
12248         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12249         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12250         argument since they are always client side
12251
12252         * dbus/dbus-server.c (dbus_server_get_address): new function
12253
12254         * bus/main.c (main): take the configuration file as an argument.
12255
12256         * test/data/valid-config-files/debug-allow-all.conf: new file to
12257         use with dispatch.c tests for example
12258
12259         * bus/test-main.c (main): require test data dir
12260
12261         * bus/bus.c (bus_context_new): change this to take a
12262         configuration file name as argument
12263
12264         * doc/config-file.txt (Elements): add <servicedir>
12265
12266         * bus/system.conf, bus/session.conf: new files
12267
12268         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12269         well-known socket if none set
12270
12271         * configure.in: create system.conf and session.conf
12272
12273 2003-03-30  Havoc Pennington  <hp@pobox.com>
12274
12275         * bus/config-parser.c: hacking
12276
12277         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12278         to shut down, since it could cause weirdness with the DBusList
12279         lock
12280
12281         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12282         link-oriented stack routines
12283         (alloc_link): free the mempool if the first alloc from it fails
12284
12285         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12286
12287         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12288         from GLib
12289         (_dbus_string_skip_white): new
12290
12291         * doc/config-file.txt (Elements): add <includedir>
12292
12293 2003-03-28  Havoc Pennington  <hp@pobox.com>
12294
12295         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12296         (_dbus_string_copy_data): new functions
12297
12298 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12299
12300         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12301         * dbus/dbus-bus.h:
12302         Add dbus_bus_get.
12303
12304         * dbus/dbus-memory.c:
12305         Fix a doc comment.
12306
12307 2003-03-28  Havoc Pennington  <hp@pobox.com>
12308
12309         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12310         I think it may have just been superstition. Not sure.
12311
12312         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12313         failures that were not being handled.
12314
12315         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12316
12317         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12318         row that will fail on out-of-memory.
12319
12320         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12321         function for testing out-of-memory handling.
12322
12323         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12324         allocation functions, they do map exactly to the expat ones.
12325
12326 2003-03-27  Havoc Pennington  <hp@redhat.com>
12327
12328         * bus/config-loader-libxml.c (bus_config_load): add another error
12329         check
12330
12331 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12332
12333         * doc/TODO:
12334         Add note about automatic service activation.
12335
12336         * doc/dbus-specification.sgml:
12337         Rename the specification and clarify a few things.
12338
12339 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12340
12341         * Doxyfile.in:
12342         * dbus/dbus-address.c:
12343         * dbus/dbus-dict.c:
12344         * dbus/dbus-marshal.c:
12345         * dbus/dbus-server-debug-pipe.c:
12346         * dbus/dbus-transport-unix.c:
12347         Fix documentation warnings.
12348
12349 2003-03-26  Havoc Pennington  <hp@pobox.com>
12350
12351         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12352         after every test so it's quick and easy to see which leaked, and
12353         so we test multiple dbus_shutdown() calls
12354
12355         * configure.in: change configure.in XML stuff to also support
12356         expat
12357
12358         * config-loader-libxml.c: some hacking
12359
12360         * config-loader-expat.c: some hacking
12361
12362         * config-parser.c: some hacking, plus tests
12363
12364 2003-03-25  Havoc Pennington  <hp@redhat.com>
12365
12366         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12367
12368         * configure.in: add --with-xml option to specify XML library,
12369         right now only libxml is supported.
12370
12371         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12372         nonworking code between home and work, still just stubs
12373
12374 2003-03-24  Havoc Pennington  <hp@redhat.com>
12375
12376         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12377         file
12378
12379         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12380         NULL argument for "message" if the error is a well-known one,
12381         fill in a generic message in this case.
12382
12383         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12384         favor of DBusError
12385
12386         * bus/test.c (bus_test_flush_bus): add
12387
12388         * bus/policy.c (bus_policy_test): test code stub
12389
12390 2003-03-24  Havoc Pennington  <hp@pobox.com>
12391
12392         * bus/connection.c (bus_connections_setup_connection): set up
12393         the "can this user connect" function, but it always returns
12394         TRUE until we have a config file parser so we can have a config
12395         file that allows connections.
12396
12397 2003-03-23  Havoc Pennington  <hp@pobox.com>
12398
12399         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12400         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12401         the mutex, so we can check for proper memory management
12402         and OOM handling.
12403
12404         * dbus/dbus-dataslot.c: remove the mutex from
12405         DBusDataSlotAllocator and lock it manually when using it,
12406         to simplify fitting it into the global slots framework.
12407
12408         * dbus/dbus-threads.c (init_static_locks): rework how we're
12409         handling global locks so they are easily shut down.
12410
12411         * bus/policy.c (bus_policy_append_rule): fix
12412
12413         * bus/test-main.c (main): check for memleaks
12414
12415         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12416         test suite check for memleaks
12417
12418         * dbus/dbus-memory.c: add support in test mode for tracking
12419         number of outstanding blocks
12420
12421 2003-03-23  Havoc Pennington  <hp@pobox.com>
12422
12423         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12424         policies code
12425
12426         * dbus/dbus-hash.h: add ULONG hash keys
12427
12428         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12429         (_dbus_get_group_id): new function
12430
12431 2003-03-20  Havoc Pennington  <hp@redhat.com>
12432
12433         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12434         new function
12435         (dbus_connection_get_unix_user): new function
12436
12437 2003-03-20  Havoc Pennington  <hp@pobox.com>
12438
12439         * bus/connection.c (bus_connection_send_oom_error): assert that
12440         message has a sender
12441         (connection_execute_transaction): ditto
12442         (bus_connection_preallocate_oom_error): fix to set the sender, and
12443         set recipient to the destination service, not the bus driver
12444
12445         * bus/policy.c: hacking
12446
12447         * dbus/dbus-message.c (dbus_message_service_is): new function
12448         (dbus_message_sender_is): new
12449
12450 2003-03-19  Havoc Pennington  <hp@redhat.com>
12451
12452         * bus/policy.c: start sketching code for policy restrictions on
12453         what connections can do.
12454
12455 2003-03-18  Havoc Pennington  <hp@redhat.com>
12456
12457         * doc/TODO: some notes on high-level todo items. Little nitpick
12458         stuff is all in @todo, so no need to add it here.
12459
12460         * doc/config-file.txt: some notes on how config file might look
12461
12462 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12463
12464         * configure.in: 0.6
12465
12466         * NEWS: Update.
12467
12468 2003-03-17  Havoc Pennington  <hp@redhat.com>
12469
12470         * dbus/dbus-internals.h: add gcc attributes so that
12471         our printf-style functions warn on bad arguments to
12472         format
12473
12474         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12475         format bug
12476
12477         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12478         printf format bug
12479
12480 2003-03-17  Havoc Pennington  <hp@redhat.com>
12481
12482         * bus/test-main.c (main): make it print something as it runs
12483         so make check doesn't look stuck
12484
12485         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12486         from CVS, now obsolete
12487
12488 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12489
12490         * bus/dispatch.c: (bus_dispatch):
12491         Refetch the service name since it may have been reallocated
12492         when dbus_message_set_sender was called.
12493
12494         * dbus/dbus-sysdeps.c: (_dbus_accept):
12495         Add address and address length variables and use them to stop
12496         valgrind from complaining.
12497
12498 2003-03-17  Havoc Pennington  <hp@pobox.com>
12499
12500         All tests pass, no memleaks, no valgrind complaints.
12501
12502         * bus/test.c: refcount handler_slot
12503
12504         * bus/connection.c (bus_connections_new): refcount
12505         connection_data_slot
12506
12507         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12508         bytes so that auth scripts pass.
12509
12510         * bus/dispatch.c: init message_handler_slot so it gets allocated
12511         properly
12512
12513         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12514
12515         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12516         dealloc server_pipe_hash when no longer used for benefit of
12517         leak checking
12518
12519         * dbus/dbus-auth.c (process_command): memleak fix
12520
12521         * bus/dispatch.c (check_hello_message): memleak fix
12522
12523 2003-03-16  Havoc Pennington  <hp@pobox.com>
12524
12525         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12526
12527 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12528
12529         * bus/activation.c (bus_activation_activate_service): Append
12530         the pending activation entry to the list of pending activations.
12531
12532 2003-03-16  Havoc Pennington  <hp@pobox.com>
12533
12534         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12535         connections
12536
12537         * dbus/dbus-address.c (create_entry): fix OOM handling when
12538         failing to alloc entry->method
12539
12540 2003-03-16  Havoc Pennington  <hp@pobox.com>
12541
12542         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12543         the watch
12544
12545         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12546         add some missing dbus_set_result
12547
12548         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12549         alloc the DBusMessageHandler
12550
12551         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12552         the transport here, since we call this from the finalizer; it
12553         resulted in a double-finalize.
12554
12555         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12556         where we tried to use transport->connection that was NULL,
12557         happened when transport was disconnected early on due to OOM
12558
12559         * bus/*.c: adapt to handle OOM for watches/timeouts
12560
12561         * dbus/dbus-transport-unix.c: port to handle OOM during
12562         watch handling
12563
12564         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12565         reference to unused bytes instead of a copy
12566
12567         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12568         out of memory
12569
12570         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12571         FALSE on OOM
12572
12573         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12574         of memory
12575
12576 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12577
12578         * doc/dbus-specification.sgml:
12579         Document reply message for ActivateService.
12580
12581 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12582
12583         * bus/activation.c: (bus_pending_activation_entry_free),
12584         (bus_pending_activation_free), (bus_activation_new),
12585         (bus_activation_unref), (bus_activation_service_created),
12586         (bus_activation_activate_service):
12587         * bus/activation.h:
12588         * bus/bus.c: (bus_context_new):
12589         * bus/desktop-file.c: (new_section):
12590         * bus/driver.c: (bus_driver_send_service_deleted),
12591         (bus_driver_handle_activate_service):
12592         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12593         * bus/services.h:
12594         * dbus/dbus-connection.c:
12595         (dbus_connection_send_with_reply_and_block):
12596         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12597         * dbus/dbus-protocol.h:
12598         Make activation work better. Now pending activations will be queued
12599         and the daemon won't try to activate services that are already registered.
12600
12601 2003-03-16  Havoc Pennington  <hp@pobox.com>
12602
12603         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12604         connection data
12605
12606         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12607         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12608
12609 2003-03-16  Havoc Pennington  <hp@pobox.com>
12610
12611         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12612         this. always run the test suite before commit...
12613
12614         * bus/*: adapt to DBusConnection API changes
12615
12616         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12617         requires renaming stuff to avoid dbus_connection_dispatch name
12618         conflict.
12619
12620         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12621         function
12622
12623         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12624         separate from _dbus_message_loader_return_buffer()
12625
12626         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12627         this, because it's now always broken to use; the number of
12628         messages in queue vs. the number still buffered by the message
12629         loader is undefined/meaningless. Should use
12630         dbus_connection_get_dispatch_state().
12631         (dbus_connection_dispatch): rename from
12632         dbus_connection_dispatch_message
12633
12634 2003-03-16  Havoc Pennington  <hp@pobox.com>
12635
12636         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12637         implementation
12638
12639 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12640
12641         * dbus/dbus-connection.c:
12642         (dbus_connection_send_with_reply_and_block):
12643         Decrease connection->n_incoming when removing an entry
12644         from the list.
12645         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12646         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12647         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12648         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12649         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12650         (dbus_dict_get_byte_array):
12651         Handle NULL arrays and strings. Also add support for byte arrays.
12652
12653         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12654         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12655         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12656         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12657         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12658         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12659         * dbus/dbus-marshal.h:
12660         Add support for marshalling and demarshalling empty arrays and strings.
12661
12662         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12663         (dbus_message_append_string_array),
12664         (dbus_message_iter_get_boolean),
12665         (dbus_message_iter_get_boolean_array),
12666         (dbus_message_iter_get_int32_array),
12667         (dbus_message_iter_get_uint32_array),
12668         (dbus_message_iter_get_double_array),
12669         (dbus_message_iter_get_byte_array),
12670         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12671         (check_message_handling):
12672         Add support for getting empty arrays and dicts.
12673
12674         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12675         Don't do any validation at all for now, that's better than just checking
12676         for ASCII.
12677
12678         * test/data/valid-messages/emptiness.message:
12679         New test message with lots of empty arrays.
12680
12681 2003-03-16  Havoc Pennington  <hp@pobox.com>
12682
12683         * dbus/dbus-connection.c
12684         (_dbus_connection_queue_received_message_link): new function that
12685         can't fail due to OOM
12686
12687         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12688         new function pops a message together with a list link
12689         containing it.
12690
12691         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12692         message queuing functions to avoid needing to alloc memory
12693
12694 2003-03-16  Havoc Pennington  <hp@pobox.com>
12695
12696         Oops - test code was only testing failure of around 30 of the
12697         mallocs in the test path, but it turns out there are 500+
12698         mallocs. I believe this was due to misguided linking setup such
12699         that there was one copy of dbus_malloc etc. in the daemon and one
12700         in the shared lib, and only daemon mallocs were tested. In any
12701         case, the test case now tests all 500+ mallocs, and doesn't pass
12702         yet, though there are lots of fixes in this patch.
12703
12704         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12705         this so that it doesn't need to allocate memory, since it
12706         has no way of indicating failure due to OOM (and would be
12707         annoying if it did).
12708
12709         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12710
12711         * bus/Makefile.am: rearrange to create two self-contained
12712         libraries, to avoid having libraries with overlapping symbols.
12713         that was resulting in weirdness, e.g. I'm pretty sure there
12714         were two copies of global static variables.
12715
12716         * dbus/dbus-internals.c: move the malloc debug stuff to
12717         dbus-memory.c
12718
12719         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12720         empty.
12721
12722         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12723
12724         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12725         on failure.
12726
12727         * bus/dispatch.c (bus_dispatch_add_connection): free
12728         message_handler_slot when no longer using it, so
12729         memory leak checkers are happy for the test suite.
12730
12731         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12732
12733         * bus/bus.c (new_connection_callback): disconnect in here if
12734         bus_connections_setup_connection fails.
12735
12736         * bus/connection.c (bus_connections_unref): fix to free the
12737         connections
12738         (bus_connections_setup_connection): if this fails, don't
12739         disconnect the connection, just be sure there are no side
12740         effects.
12741
12742         * dbus/dbus-string.c (undo_alignment): unbreak this
12743
12744         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12745         leaking
12746         (_dbus_auth_new): fix the order in which we free strings
12747         on OOM failure
12748
12749         * bus/connection.c (bus_connection_disconnected): fix to
12750         not send ServiceDeleted multiple times in case of memory
12751         allocation failure
12752
12753         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12754         get the base service name
12755         (dbus_bus_register_client): don't return base service name,
12756         instead store it on the DBusConnection and have an accessor
12757         function for it.
12758         (dbus_bus_register_client): rename dbus_bus_register()
12759
12760         * bus/dispatch.c (check_hello_message): verify that other
12761         connections on the bus also got the correct results, not
12762         just the one sending hello
12763
12764 2003-03-15  Havoc Pennington  <hp@pobox.com>
12765
12766         Make it pass the Hello handling test including all OOM codepaths.
12767         Now to do other messages...
12768
12769         * bus/services.c (bus_service_remove_owner): fix crash when
12770         removing owner from an empty list of owners
12771         (bus_registry_ensure): don't leave service in the list of
12772         a connection's owned services if we fail to put the service
12773         in the hash table.
12774
12775         * bus/connection.c (bus_connection_preallocate_oom_error): set
12776         error flag on the OOM error.
12777
12778         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12779         handle _dbus_transport_set_connection failure
12780
12781         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12782         to create watches up front and simply enable/disable them as
12783         needed.
12784         (unix_connection_set): this can now fail on OOM
12785
12786         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12787         of enabling/disabling a watch or timeout.
12788
12789         * bus/loop.c (bus_loop_iterate): don't touch disabled
12790         watches/timeouts
12791
12792         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12793
12794 2003-03-15  Havoc Pennington  <hp@pobox.com>
12795
12796         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12797         write useful test code, after all that futzing around ;-)
12798
12799         Test does not yet pass because we can't handle OOM in
12800         _dbus_transport_messages_pending (basically,
12801         dbus_connection_preallocate_send() does not prealloc the write
12802         watch). To fix this, I think we need to add new stuff to
12803         set_watch_functions, namely a SetEnabled function so we can alloc
12804         the watch earlier, then enable it later.
12805
12806         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12807         dbus-memory.c to the convenience lib
12808
12809         * bus/test.c: rename some static functions to keep them clearly
12810         distinct from stuff in connection.c. Handle client disconnection.
12811
12812 2003-03-14  Havoc Pennington  <hp@pobox.com>
12813
12814         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12815         transport, tests more of the real codepath. Set up clients
12816         with bus_setup_debug_client.
12817
12818         * bus/test.c (bus_setup_debug_client): function to set up debug
12819         "clients" on the main loop
12820
12821         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12822         support
12823
12824         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12825         server type
12826
12827         * dbus/dbus-server-debug.c: support a debug server based on pipes
12828
12829         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12830         (_dbus_close): new function
12831
12832         * configure.in: check for socketpair
12833
12834 2003-03-14  Havoc Pennington  <hp@redhat.com>
12835
12836         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12837         cheesy hack
12838
12839         * dbus/dbus-transport-debug.c: rework this a good bit to be
12840         less complicated. hopefully still works.
12841
12842         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12843         manually
12844
12845         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12846         after running it
12847
12848         * dbus/dbus-message.c (dbus_message_copy): rename from
12849         dbus_message_new_from_message, fix it up to copy
12850         all the message fields, add test case
12851
12852         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12853         not quite passing yet
12854
12855 2003-03-14  Havoc Pennington  <hp@pobox.com>
12856
12857         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12858         until no work remains" in test code. (the large diff here
12859         is just code movement, no actual changes)
12860
12861         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12862         1, no point waiting around for test code.
12863         (_dbus_server_debug_accept_transport): unref the timeout
12864         after adding it (right?)
12865
12866         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12867
12868 2003-03-13  Havoc Pennington  <hp@redhat.com>
12869
12870         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12871         out of memory
12872
12873         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12874         of memory
12875
12876         * dbus/dbus-connection.h: Make AddWatchFunction and
12877         AddTimeoutFunction return a bool so they can fail on out-of-memory
12878
12879         * bus/bus.c (bus_context_new): set up timeout handlers
12880
12881         * bus/connection.c (bus_connections_setup_connection): set up
12882         timeout handlers
12883
12884         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12885         can fail
12886
12887         * bus/bus.c (bus_context_new): adapt to changes
12888
12889         * bus/connection.c: adapt to changes
12890
12891         * test/watch.c: adapt to DBusWatch changes
12892
12893         * bus/dispatch.c (bus_dispatch_test): started adding this but
12894         didn't finish
12895
12896 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12897
12898         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12899
12900 2003-03-13  Havoc Pennington  <hp@pobox.com>
12901
12902         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12903         set up a test framework as for the library
12904
12905 2003-03-12  Havoc Pennington  <hp@pobox.com>
12906
12907         Throughout: purge global variables, introduce BusActivation,
12908         BusConnections, BusRegistry, etc. objects instead.
12909
12910         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12911         message bus object
12912
12913         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12914         going to redo this a bit differently I think
12915
12916 2003-03-12  Havoc Pennington  <hp@redhat.com>
12917
12918         Mega-patch that gets the message bus daemon initially handling
12919         out-of-memory. Work still needed. Also lots of random
12920         moving stuff to DBusError instead of ResultCode.
12921
12922         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12923
12924         * dbus/dbus-connection.c
12925         (dbus_connection_send_with_reply_and_block): use DBusError
12926
12927         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12928         DBusResultCode
12929
12930         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12931         code here, as the only failure possible is OOM.
12932
12933         * bus/connection.c (bus_connection_disconnect):
12934         rename bus_connection_disconnected as it's a notification only
12935
12936         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12937         "name" on get_args failure, should be done by get_args;
12938         don't disconnect client for bad args, just return an error.
12939         (bus_driver_handle_service_exists): ditto
12940
12941         * bus/services.c (bus_services_list): NULL-terminate returned array
12942
12943         * bus/driver.c (bus_driver_send_service_lost)
12944         (bus_driver_send_service_acquired): send messages from driver to a
12945         specific client to the client's unique name, not to the broadcast
12946         service.
12947
12948         * dbus/dbus-message.c (decode_header_data): reject messages that
12949         contain no name field
12950         (_dbus_message_get_client_serial): rename to
12951         dbus_message_get_serial and make public
12952         (_dbus_message_set_serial): rename from set_client_serial
12953         (_dbus_message_set_reply_serial): make public
12954         (_dbus_message_get_reply_serial): make public
12955
12956         * bus/connection.c (bus_connection_foreach): allow stopping
12957         iteration by returning FALSE from foreach function.
12958
12959         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12960         (dbus_connection_free_preallocated_send)
12961         (dbus_connection_preallocate_send): new API for sending a message
12962         without possibility of malloc failure.
12963         (dbus_connection_send_message): rename to just
12964         dbus_connection_send (and same for whole function family)
12965
12966         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12967
12968         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12969
12970         * bus/activation.c: handle/return errors
12971
12972         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12973
12974         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12975         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12976         (_dbus_result_from_errno): move to this file
12977
12978 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12979
12980         * dbus/dbus-marshal.c:
12981         (_dbus_marshal_set_string):
12982         Take a length argument so we can marshal the correct string
12983         length.
12984
12985         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12986         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12987         (_dbus_marshal_test):
12988         * dbus/dbus-marshal.h:
12989         Add support for marshalling and demarshalling dicts.
12990
12991         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12992         Add support for TYPE DICT.
12993
12994         * dbus/dbus-message.c: (set_string_field):
12995         Adjust header padding.
12996
12997         (dbus_message_append_args_valist), (dbus_message_append_dict),
12998         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12999         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13000         (check_message_handling), (check_have_valid_message):
13001         * dbus/dbus-message.h:
13002         Add functions for setting and getting dicts.
13003
13004         * dbus/dbus-protocol.h:
13005         Add DBUS_TYPE_DICT.
13006
13007         * dbus/dbus.h:
13008         Add dbus-dict.h
13009
13010         * doc/dbus-specification.sgml:
13011         Add information about how dicts are marshalled.
13012
13013         * test/data/invalid-messages/dict-with-nil-value.message:
13014         * test/data/invalid-messages/too-short-dict.message:
13015         * test/data/valid-messages/dict-simple.message:
13016         * test/data/valid-messages/dict.message:
13017         Add sample messages containing dicts.
13018
13019 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13020
13021         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13022
13023 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13024
13025         * dbus/Makefile.am:
13026         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13027         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13028         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13029         (dbus_dict_set_double), (dbus_dict_set_string),
13030         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13031         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13032         (dbus_dict_set_string_array), (_dbus_dict_test):
13033         * dbus/dbus-dict.h:
13034         Fix according to comments from Havoc.
13035
13036 2003-03-06  Michael Meeks  <michael@server.home>
13037
13038         * configure.in: if we don't have kde-config, disable have_qt.
13039
13040 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13041
13042         * dbus/Makefile.am:
13043         Add dbus-dict.[ch]
13044
13045         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13046         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13047         (dbus_dict_remove), (dbus_dict_get_value_type),
13048         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13049         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13050         (dbus_dict_put_double), (dbus_dict_put_string),
13051         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13052         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13053         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13054         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13055         (dbus_dict_get_double), (dbus_dict_get_string),
13056         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13057         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13058         (dbus_dict_get_string_array), (_dbus_dict_test):
13059         * dbus/dbus-dict.h:
13060         Add DBusDict implementation
13061
13062         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13063         * dbus/dbus-test.h:
13064         Add _dbus_dict_test
13065
13066 2003-03-04  Havoc Pennington  <hp@pobox.com>
13067
13068         * test/data/auth/*: adapt to changes
13069
13070         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13071         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13072         userid
13073
13074         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13075         more stuff from being in a context name, to make the protocol
13076         simpler to deal with
13077
13078         * dbus/dbus-errors.c (dbus_error_has_name): new function
13079         (dbus_error_is_set): new function
13080
13081         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13082         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13083
13084         * dbus/dbus-connection.c (dbus_connection_flush): also read
13085         messages during a flush operation
13086
13087         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13088
13089 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13090
13091         * configure.in: Check for gethostbyname on Solaris.
13092
13093         * dbus/dbus-transport.c: (_dbus_transport_open):
13094         Remove duplicate "tcp" entry.
13095
13096         * doc/dbus-specification.sgml:
13097         Clarify some things.
13098
13099 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13100
13101         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13102         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13103         (_dbus_keyring_test):
13104         * dbus/dbus-md5.c: (_dbus_md5_compute):
13105         * dbus/dbus-sha.c: (_dbus_sha_compute):
13106         Plug memory leaks.
13107
13108 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13109
13110         * README: Add some things.
13111
13112 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13113
13114         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13115         after case DBUS_TYPE_BOOELAN.
13116
13117 2003-03-02  Havoc Pennington  <hp@pobox.com>
13118
13119         * test/break-loader.c (randomly_set_extreme_ints): add test that
13120         sets really huge and small integers
13121
13122         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13123         that length of boolean array fits in the string, and that
13124         string has room for boolean value in single-bool case.
13125
13126         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13127         optional value to "ALIGN" command which is what to fill the
13128         alignment with.
13129
13130         * test/data/valid-messages/no-padding.message: add regression
13131         test for the message padding problem
13132
13133 2003-03-02  Havoc Pennington  <hp@pobox.com>
13134
13135         * dbus/dbus-message.c (decode_header_data): fix to always init
13136         message_padding, from Benjamin Dauvergne
13137
13138 2003-03-02  Havoc Pennington  <hp@pobox.com>
13139
13140         * configure.in: 0.5
13141
13142         * NEWS: Update.
13143
13144 2003-03-01  Joe Shaw  <joe@assbarn.com>
13145
13146         * configure.in: Check for "struct cmsgcred" and try to access its
13147         members for BSD-like unices.
13148
13149         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13150         _dbus_read_credentials_unix_socket().
13151         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13152         read() for reading the credential byte off the unix socket.  Use
13153         struct cmsgcred on systems that support it.
13154
13155 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13156
13157         * glib/Makefile.am:
13158         * configure.in:
13159         Make gthreads-2.0 dependency optional. Don't build thread test if
13160         its not found.
13161
13162 2003-02-27  Havoc Pennington  <hp@pobox.com>
13163
13164         * dbus/dbus-connection.c
13165         (dbus_connection_send_message_with_reply_and_block): fix doh!
13166         doh! doh! bug that resulted in never removing a reply from the
13167         queue, no wonder we called get_reply_serial so much ;-)
13168
13169         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13170         and client serial instead of demarshaling them every time
13171
13172 2003-02-27  Havoc Pennington  <hp@pobox.com>
13173
13174         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13175         more inlined, using dbus-string-private.h, speeds things up
13176         substantially
13177
13178         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13179         when freeing the string
13180         (_dbus_string_steal_data): fix for align offset
13181         (undo_alignment): new function
13182
13183 2003-02-26  Havoc Pennington  <hp@redhat.com>
13184
13185         All kinds of audit fixes from Owen, plus initial attempt to
13186         handle unaligned memory returned from malloc.
13187
13188         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13189         leave room for align_offset and nul byte
13190         (fixup_alignment): function to track an align_offset and
13191         ensure real->str is aligned
13192         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13193         to allow a nul byte plus align offset
13194         (_dbus_string_lock): fix overflow issue
13195         (_dbus_string_init_const_len): add assertions on sanity of len,
13196         assign allocated to be ALLOCATION_PADDING larger than len
13197         (set_length): fixup the overflow handling
13198         (_dbus_string_get_data_len): fix overflow in assertion
13199         (open_gap): detect overflow in size of gap to be opened
13200         (_dbus_string_lengthen): add overflow check
13201         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13202         (_dbus_string_append): add overflow check
13203         (_dbus_string_append_unichar): overflow
13204         (_dbus_string_delete): fix overflow in assertion
13205         (_dbus_string_copy_len): overflow in assertion
13206         (_dbus_string_replace_len): overflows in assertions
13207         (_dbus_string_find): change to implement in terms of
13208         _dbus_string_find_to
13209         (_dbus_string_find_to): assorted fixage
13210         (_dbus_string_equal_c_str): assert c_str != NULL,
13211         fix logic so the function works
13212         (_dbus_string_ends_with_c_str): fix overflow thingy
13213         (_dbus_string_base64_encode): overflow fix
13214         (_dbus_string_validate_ascii): overflow
13215         (_dbus_string_validate_nul): overflow
13216
13217 2003-02-26  Havoc Pennington  <hp@redhat.com>
13218
13219         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13220
13221 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13222
13223         * configure.in:
13224         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13225
13226         * dbus/dbus-connection.c:
13227         * dbus/dbus-connection.h:
13228         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13229         Add dbus_connection_set_wakeup_main_function and use it when queueing
13230         incoming and outgoing messages.
13231
13232
13233         * dbus/dbus-dataslot.c:
13234         Threadsafe usage of DBusDataSlotAllocator
13235
13236         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13237         dbus_new can fail.
13238
13239         * dbus/dbus-server-unix.c:
13240         Add todo comment
13241
13242         * glib/dbus-gmain.c:
13243         Implement the new wakeup functions for glib.
13244
13245         * glib/Makefile.am:
13246         * glib/test-thread-client.c:
13247         * glib/test-thread-server.c:
13248         * glib/test-thread.h:
13249         Initial cut at some thread test code. Not really done yet.
13250
13251 2003-02-26  Havoc Pennington  <hp@pobox.com>
13252
13253         * dbus/dbus-connection.c
13254         (dbus_connection_send_message_with_reply_and_block): fix crash
13255         where we ref'd the outgoing message instead of the returned reply
13256
13257         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13258         at the end of this function, so if we didn't need to read for
13259         authentication, we reinstall it for receiving messages
13260
13261         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13262         a NULL sender for peer-to-peer case
13263
13264         * dbus/dbus-transport-unix.c (check_read_watch): handle
13265         !authenticated case correctly
13266
13267         * glib/dbus-gmain.c: add support for DBusServer
13268
13269         * dbus/dbus-server.c: add data slot support
13270
13271         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13272         return values and handle errors
13273
13274         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13275         DBusConnection
13276
13277         * Doxyfile.in (INPUT): add glib subdir
13278
13279         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13280         setup_with_g_main instead of hookup_with_g_main; write docs
13281
13282 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13283
13284         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13285         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13286         * dbus/dbus-message.c: (dbus_message_append_boolean),
13287         (dbus_message_append_boolean_array),
13288         (dbus_message_get_args_valist), (_dbus_message_test):
13289         * dbus/dbus-message.h:
13290         * doc/dbus-specification.sgml:
13291         Various fixes as pointed out by Havoc.
13292
13293         * test/data/invalid-messages/bad-boolean-array.message:
13294         * test/data/invalid-messages/bad-boolean.message:
13295         Add invalid boolean value test cases.
13296
13297 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13298
13299         * dbus/dbus-internals.c: (_dbus_type_to_string):
13300         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13301         (_dbus_marshal_validate_arg):
13302         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13303         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13304         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13305         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13306         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13307         (dbus_message_iter_get_double),
13308         (dbus_message_iter_get_boolean_array), (message_iter_test):
13309         * dbus/dbus-message.h:
13310         * dbus/dbus-protocol.h:
13311         * doc/dbus-specification.sgml:
13312         * test/data/valid-messages/lots-of-arguments.message:
13313         Add support for boolean and boolean array types.
13314
13315 2003-02-23  Havoc Pennington  <hp@pobox.com>
13316
13317         * dbus/dbus-keyring.c: finish most of this implementation and
13318         simple unit test
13319
13320         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13321         these barf if the error isn't cleared to NULL
13322
13323         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13324         (_dbus_create_directory): new function
13325
13326         * dbus/dbus-errors.c (dbus_set_error): fix warning
13327
13328         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13329         (_dbus_string_hex_decode): new function
13330         (test_hex_roundtrip): test code
13331
13332         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13333
13334         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13335
13336         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13337         the save-to-temp/rename trick to atomically write the new file
13338         (_dbus_string_parse_uint): new function
13339
13340 2003-02-22  Havoc Pennington  <hp@pobox.com>
13341
13342         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13343
13344 2003-02-22  Havoc Pennington  <hp@pobox.com>
13345
13346         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13347         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13348
13349         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13350
13351         * dbus/test/data/sha-1: add US government test suite for SHA-1
13352
13353 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13354
13355         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13356         Make string arrays NULL-terminated.
13357
13358         * dbus/dbus-memory.c: (dbus_free_string_array):
13359         * dbus/dbus-memory.h:
13360         New function for freeing NULL-terminated string arrays.
13361
13362         * dbus/dbus-message-builder.c: (append_quoted_string),
13363         (_dbus_message_data_load):
13364         Add support for array types.
13365
13366         * dbus/dbus-message.c: (check_message_handling):
13367         Add more types as test cases.
13368
13369         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13370         (_dbus_string_parse_double):
13371         Add the start offset to the end offset.
13372
13373         * test/data/valid-messages/lots-of-arguments.message:
13374         New test message with lots of arguments.
13375
13376 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13377
13378         * dbus/dbus-message.c: (dbus_message_append_nil),
13379         (dbus_message_append_int32), (dbus_message_append_uint32),
13380         (dbus_message_append_double), (dbus_message_append_string),
13381         (dbus_message_append_int32_array),
13382         (dbus_message_append_uint32_array),
13383         (dbus_message_append_double_array),
13384         (dbus_message_append_byte_array),
13385         (dbus_message_append_string_array):
13386         Fix all out-of-memory handling in these functions.
13387
13388 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13389
13390         * dbus/dbus-message.c: (dbus_message_append_nil):
13391         Fix a silly.
13392
13393 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13394
13395         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13396         (dbus_message_append_nil), (dbus_message_append_int32_array),
13397         (dbus_message_append_uint32_array),
13398         (dbus_message_append_double_array),
13399         (dbus_message_append_byte_array),
13400         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13401         (dbus_message_iter_get_int32_array),
13402         (dbus_message_iter_get_uint32_array),
13403         (dbus_message_iter_get_double_array),
13404         (dbus_message_iter_get_byte_array),
13405         (dbus_message_iter_get_string_array):
13406
13407         * dbus/dbus-message.h:
13408         Add functions for appending and getting arrays.
13409
13410 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13411
13412         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13413         element size at least 8 bytes, fixes mempool tests on
13414         64-bit machines.
13415
13416 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13417
13418         * dbus/dbus-transport-unix.c (unix_do_iteration):
13419         Unlock the connection mutex during a blocking select call.
13420         Add todo about how we need a way to wake up the select.
13421
13422         * dbus/dbus-connection-internal.h:
13423         * dbus/dbus-connection.c:
13424         Add _dbus_connection_lock and _dbus_connection_unlock.
13425
13426 2003-02-19  Havoc Pennington  <hp@pobox.com>
13427
13428         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13429         Doxyfile.in, not Doxyfile
13430
13431         * dbus/dbus-keyring.c: do some hacking on this
13432
13433         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13434
13435         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13436         dbus_error_init
13437         (dbus_set_error): remove dbus_error_init, check for message ==
13438         NULL *before* we sprintf into it, and add @todo about including
13439         system headers in this file
13440
13441         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13442
13443         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13444
13445         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13446         get various bits of user information based on either username
13447         or user ID
13448         (_dbus_homedir_from_username): new function
13449
13450 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13451
13452         * configure.in:
13453         Add check for nonposix getpwnam_r
13454
13455         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13456         Align the pool element size to a sizeof (void *) boundary.
13457
13458         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13459         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13460         General Solaris fixes.
13461
13462         * test/data/valid-messages/simplest-manual.message:
13463         Explicitly state that we want little-endian packing.
13464
13465 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13466
13467         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13468
13469         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13470         Added to create a transport connecting using a tcp/ip socket.
13471
13472         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13473         to a tcp socket at given host and port.
13474         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13475         hostname and port.
13476
13477         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13478
13479         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13480         Added to create a server listening on a TCP/IP socket.
13481
13482 2003-02-19  Havoc Pennington  <hp@pobox.com>
13483
13484         Throughout: mop up all the Doxygen warnings and undocumented
13485         stuff.
13486
13487         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13488         to search any paths.
13489
13490         * dbus/dbus-threads.c: move global mutex initializers to
13491         dbus-internals.h, multiple prototypes was confusing doxygen
13492         besides being kind of ugly
13493
13494         * Doxyfile (PREDEFINED): have Doxygen define
13495         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13496         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13497         (do not abuse the feature! it's for stuff like the autogenerated
13498         macros in dbus-md5.c, not just for things you don't feel like
13499         documenting...)
13500
13501 2003-02-18  Havoc Pennington  <hp@pobox.com>
13502
13503         * dbus/dbus-string.c (_dbus_string_zero): new function
13504
13505         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13506         wrap it in some dbus-friendly API
13507
13508         * dbus/dbus-types.h: add 16-bit types
13509
13510 2003-02-18  Joe Shaw  <joe@assbarn.com>
13511
13512         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13513         credentials from our currently running process.
13514         (get_word): Fix a buglet where we were copying the entire length
13515         instead of relative to our position.
13516
13517         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13518         keys on the stack... it's 640k of data.
13519
13520         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13521         read the credentials byte off the socket, even if we don't have
13522         SO_PEERCRED.
13523         (_dbus_poll): Implement poll() using select() for systems which
13524         don't have it.
13525
13526         * glib/test-dbus-glib.c (main): Print out an error if no
13527         parameters are given.
13528
13529         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13530         can fallback to a secondary auth mechanism if the first fails.
13531
13532 2003-02-18  Havoc Pennington  <hp@pobox.com>
13533
13534         * AUTHORS: add Alex
13535
13536 2003-02-17  Havoc Pennington  <hp@pobox.com>
13537
13538         * doc/dbus-specification.sgml: lots of cosmetic
13539         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13540         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13541         s/server/bus/ (except in authentication section). Add a section
13542         "Message Bus Message Routing"
13543
13544 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13545
13546         Release 0.4
13547
13548         * NEWS: Update
13549
13550 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13551
13552         * doc/dbus-specification.sgml:
13553         Specification updates.
13554
13555 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13556
13557         * bus/activation.c: (bus_activation_init), (child_setup),
13558         (bus_activation_activate_service):
13559         * bus/activation.h:
13560         * bus/main.c: (main):
13561         Set DBUS_ADDRESS environment variable.
13562
13563         * dbus/dbus-errors.c: (dbus_set_error):
13564         Don't use va_copy since that's a C99 feature.
13565
13566         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13567         (_dbus_spawn_async):
13568         * dbus/dbus-sysdeps.h:
13569         Add child_setup_func to _dbus_spawn_async.
13570
13571         * doc/dbus-specification.sgml:
13572         Update specification.
13573
13574         * test/spawn-test.c: (setup_func), (main):
13575         Fix test.
13576
13577 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13578
13579         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13580         Added todo.
13581
13582 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13583
13584         * doc/.cvsignore:
13585         * doc/Makefile.am:
13586         * doc/dbus-test-plan.sgml:
13587         Add test plan document.
13588
13589         * test/Makefile.am:
13590         Fix distcheck.
13591
13592 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13593
13594         * dbus/dbus-message.c: (decode_header_data),
13595         (_dbus_message_loader_return_buffer):
13596         Set the header padding amount when loading a message.
13597
13598 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13599
13600         * bus/dispatch.c: (send_one_message):
13601         Only send broadcast messages to registered connections.
13602
13603         * dbus/dbus-message.c: (dbus_message_name_is):
13604         * dbus/dbus-message.h:
13605         New convenience function.
13606
13607         * dbus/dbus-transport-debug.c: (do_reading):
13608         Only dispatch one message per run.
13609
13610         * test/Makefile.am:
13611         * test/bus-test.c: (new_connection_callback), (die),
13612         (test_hello_client1_handler), (test_hello_client2_handler),
13613         (test_hello_replies), (main):
13614
13615         * test/bus-test-loop.[ch]:
13616         Add these.
13617
13618 2003-02-16  Havoc Pennington  <hp@pobox.com>
13619
13620         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13621         backward conditional
13622
13623 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13624
13625         * dbus/dbus-connection.c:
13626         Implement sent_message_with_reply. (with_reply_and block is still
13627         busted).
13628         Made dispatch_message not lose message if OOM.
13629
13630         * dbus/dbus-errors.h:
13631         Add NoReply error (for reply timeouts).
13632
13633 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13634
13635         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13636         Actually free keys and values when destroying hashtable.
13637
13638 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13639
13640         * dbus/dbus-auth.c: (client_try_next_mechanism):
13641         Plug a leak.
13642
13643         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13644         Return TRUE if there's no thread implementation around.
13645
13646         * glib/dbus-gmain.c: (free_source),
13647         (dbus_connection_hookup_with_g_main):
13648         Make sure to remove the GSource when the connection is finalized.
13649
13650 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13651
13652         * bus/dispatch.c: (bus_dispatch_message_handler):
13653         * dbus/dbus-errors.h:
13654         Return an error if someone tries to send a message to a service
13655         that doesn't exist.
13656
13657 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13658
13659         * bus/activation.c: (load_directory), (bus_activation_init),
13660         (bus_activation_activate_service):
13661         * bus/activation.h:
13662         * bus/driver.c:
13663         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13664         More work on the activation handling.
13665
13666         * dbus/dbus-errors.h:
13667         Add some error messages
13668
13669         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13670         * dbus/dbus-message.h:
13671         New function that creates an error message.
13672
13673         * dbus/dbus-protocol.h:
13674         Add ACTIVATE_SERVER message.
13675
13676         * dbus/dbus-server-unix.c: (unix_handle_watch),
13677         (_dbus_server_new_for_domain_socket):
13678         Call _dbus_fd_set_close_on_exec.
13679
13680         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13681         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13682         (_dbus_fd_set_close_on_exec):
13683         * dbus/dbus-sysdeps.h:
13684         Add _dbus_fd_set_close_on exec function. Also add function that checks
13685         that all open fds are set to close-on-exec and warns otherwise.
13686
13687         * dbus/dbus-transport-unix.c:
13688         (_dbus_transport_new_for_domain_socket):
13689         Call _dbus_fd_set_close_on_exec.
13690
13691 2003-02-16  Havoc Pennington  <hp@pobox.com>
13692
13693         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13694         allow people to avoid setting SIGPIPE to SIG_IGN
13695         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13696         we've been asked not to
13697
13698 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13699
13700         * dbus/dbus-list.c: (_dbus_list_append_link),
13701         (_dbus_list_prepend_link):
13702         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13703         (dbus_realloc):
13704         Warning fixes.
13705
13706 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13707
13708         * bus/Makefile.am:
13709         * bus/activation.c: (bus_activation_entry_free),
13710         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13711         * bus/activation.h:
13712         * bus/main.c: (main):
13713         Add simple activation support, doesn't work yet though.
13714
13715 2003-02-15   Zack Rusin  <zack@kde.org>
13716
13717         * qt/dbus-qthread.cpp:  small casting fix
13718
13719 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13720
13721         * dbus/dbus-errors.c: (dbus_set_error):
13722         * dbus/dbus-errors.h:
13723         Add a few errors and make dbus_set_error void.
13724
13725         * dbus/dbus-sysdeps.c:
13726         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13727         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13728         * dbus/dbus-sysdeps.h:
13729         Add _dbus_spawn_async.
13730
13731         * test/spawn-test.c: (main):
13732         Test for _dbus_spawn_async.
13733
13734 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13735
13736         * dbus/dbus-internals.h:
13737         Fix build without tests.
13738
13739         * dbus/dbus-list.c: (alloc_link):
13740         Fix a segfault when a malloc fails.
13741
13742         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13743         (dbus_malloc0), (dbus_realloc):
13744         Add support for malloc debugging.
13745
13746 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13747
13748         * dbus/dbus-threads.c:
13749         * dbus/dbus-threads.h:
13750         Add condvars. Remove static mutext from API.
13751         Implement static mutexes by initializing them from threads_init.
13752
13753         * glib/dbus-gthread.c:
13754         * qt/dbus-qthread.cpp:
13755         Update with the thread api changes.
13756
13757
13758         * dbus/dbus-list.c:
13759         * dbus/dbus-list.h:
13760         Turn StaticMutex into normal mutex + init function.
13761         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13762         _dbus_list_append_link, _dbus_list_prepend_link
13763
13764
13765         * dbus/dbus-sysdeps.c:
13766         * dbus/dbus-sysdeps.h:
13767         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13768         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13769
13770         * dbus/dbus-protocol.h:
13771         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13772
13773         * dbus/dbus-message.c:
13774         Make ref/unref atomic.
13775         Fix some docs.
13776
13777         * dbus/dbus-connection-internal.h:
13778         * dbus/dbus-connection.c:
13779         * dbus/dbus-connection.h:
13780         Make threadsafe.
13781         Change _peek to _borrow,_return & _steal_borrowed.
13782         Change disconnect callback to event.
13783         Make dbus_connection_dispatch_messages reentrant.
13784
13785         * dbus/dbus-transport.c:
13786         Don't ref the connection on calls to the transport
13787         implementation.
13788
13789         * dbus/dbus-message-handler.c:
13790         Make threadsafe.
13791
13792         * glib/dbus-gmain.c:
13793         Don't use peek_message anymore
13794
13795         * test/Makefile.am:
13796         * test/debug-thread.c:
13797         * test/debug-thread.h:
13798         Simple thread implementation that asserts() on deadlocks in
13799         single-threaded code.
13800
13801         * test/bus-test.c:
13802         (main) Call debug_threads_init.
13803
13804         * test/watch.c:
13805         Use disconnect message instead of disconnect callback.
13806
13807         * bus/connection.c:
13808         * bus/connection.h:
13809         Don't call dbus_connection_set_disconnect_function. Instead export
13810         bus_connection_disconnect.
13811
13812         * bus/dispatch.c:
13813         Call bus_connection_disconnect when we get a disconnected message.
13814
13815 2003-02-15  Havoc Pennington  <hp@pobox.com>
13816
13817         * dbus/dbus-message.c (dbus_message_new): fool around with the
13818         docs
13819
13820 2003-02-14  Havoc Pennington  <hp@pobox.com>
13821
13822         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13823
13824         * dbus/dbus-memory.c: fail if the debug functions indicate we
13825         should
13826
13827         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13828         (_dbus_decrement_fail_alloc_counter): debug functions to
13829         simulate memory allocation failures
13830
13831 2003-02-14  Havoc Pennington  <hp@pobox.com>
13832
13833         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13834         to DBusError
13835
13836 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13837
13838         * bus/driver.c: (bus_driver_handle_hello):
13839         * bus/driver.h:
13840         * bus/services.c: (bus_service_lookup):
13841         Reorder message sending so we get a more sane order.
13842
13843         * test/bus-test.c: (message_handler):
13844         Fix tyop.
13845
13846 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * bus/driver.c: (bus_driver_send_service_deleted),
13849         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13850         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13851         (bus_driver_send_welcome_message),
13852         (bus_driver_handle_list_services),
13853         (bus_driver_handle_acquire_service),
13854         (bus_driver_handle_service_exists):
13855         * dbus/dbus-bus.c: (dbus_bus_register_client),
13856         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13857         * dbus/dbus-errors.c: (dbus_result_to_string):
13858         * dbus/dbus-errors.h:
13859         * dbus/dbus-message.c: (dbus_message_append_args),
13860         (dbus_message_append_args_valist), (dbus_message_get_args),
13861         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13862         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13863         (dbus_message_iter_get_byte_array),
13864         (dbus_message_iter_get_string_array), (message_iter_test),
13865         (check_message_handling), (_dbus_message_test):
13866         * dbus/dbus-message.h:
13867         * test/bus-test.c: (main):
13868         Change fields to arguments in messages, so that they won't be
13869         confused with header fields.
13870
13871         * glib/test-dbus-glib.c: (main):
13872         Remove append_fields from hello message.
13873
13874 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13875
13876         * dbus/dbus-errors.c:
13877         * dbus/dbus-message.c:
13878         * dbus/dbus-string.c:
13879         Documentation fixes.
13880
13881 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13882
13883         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13884         (remove_timeout):
13885         Implement support for timeouts in dbus-glib.
13886
13887 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13888
13889         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13890         * dbus/dbus-message.c: (process_test_subdir):
13891         * test/break-loader.c: (find_breaks_based_on):
13892         Plug some memory leaks.
13893
13894 2003-02-13  Richard Hult  <rhult@codefactory.se>
13895
13896         * bus/main.c: Fix build.
13897
13898         * dbus/dbus-errors.h:
13899         * dbus/dbus-errors.c: Fix copyright for Anders.
13900
13901 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13902
13903         * bus/Makefile.am:
13904         Add utils.[ch]
13905
13906         * bus/connection.c: (bus_connection_foreach):
13907         Fix a warning.
13908
13909         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13910         (unescape_string), (new_section), (parse_section_start),
13911         (parse_key_value), (report_error), (bus_desktop_file_load),
13912         (bus_desktop_file_get_string):
13913         * bus/desktop-file.h:
13914         Use DBusError for error reporting.
13915
13916         * bus/dispatch.c: (send_one_message),
13917         (bus_dispatch_message_handler):
13918         * bus/driver.c: (bus_driver_send_service_deleted),
13919         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13920         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13921         (bus_driver_send_welcome_message),
13922         (bus_driver_handle_list_services),
13923         (bus_driver_handle_acquire_service),
13924         (bus_driver_handle_service_exists):
13925         * bus/loop.c: (bus_loop_run):
13926         * bus/main.c:
13927         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13928
13929         * bus/utils.c: (bus_wait_for_memory):
13930         * bus/utils.h:
13931         New files with general utility functions.
13932
13933         * dbus/dbus-internals.h:
13934         Remove _DBUS_HANDLE_OOM.
13935
13936 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13937
13938         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13939         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13940         * dbus/dbus-errors.h:
13941         Add DBusError structure.
13942
13943 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13944
13945         * test/data/valid-messages/standard-acquire-service.message:
13946         * test/data/valid-messages/standard-hello.message:
13947         * test/data/valid-messages/standard-list-services.message:
13948         * test/data/valid-messages/standard-service-exists.message:
13949         Add some standard messages.
13950
13951 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13952
13953         * bus/driver.c: (bus_driver_send_welcome_message),
13954         (bus_driver_handle_list_services),
13955         (bus_driver_handle_acquire_service),
13956         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13957         Update for API changes in libdbus.
13958
13959         * dbus/dbus-message.c: (dbus_message_new_reply):
13960         * dbus/dbus-message.h:
13961         Remove the name argument. The spec states that replies shouldn't
13962         have a name.
13963
13964 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13965
13966         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13967         (report_error), (bus_desktop_file_load), (lookup_section),
13968         (lookup_line), (bus_desktop_file_get_raw),
13969         (bus_desktop_file_get_string):
13970         * bus/desktop-file.h:
13971         Some fixes, and new functions for getting a key value from a section.
13972
13973 2003-02-13  Havoc Pennington  <hp@pobox.com>
13974
13975         * test/data/auth/fail-after-n-attempts.auth-script: new test
13976
13977         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13978         reject the client.
13979
13980 2003-02-13  Havoc Pennington  <hp@pobox.com>
13981
13982         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13983         dbus_credentials_match were backward
13984
13985         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13986         NO_CREDENTIALS and ROOT_CREDENTIALS
13987
13988         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13989         into here. Never process more commands after we've reached an
13990         end state; store further data as unused bytes.
13991
13992         * test/data/auth/*: add more auth tests
13993
13994         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13995         command to match exact string and EXPECT_UNUSED to match unused
13996         bytes
13997
13998         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13999
14000 2003-02-12  Havoc Pennington  <hp@pobox.com>
14001
14002         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14003         \r off of popped lines
14004
14005         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14006         scripts
14007
14008         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14009         SEND, append \r\n
14010
14011 2003-02-12  Havoc Pennington  <hp@pobox.com>
14012
14013         * dbus/Makefile.am: remove break-loader from the build, since it
14014         moved.
14015
14016         * configure.in: add --enable-gcov to turn on coverage profiling
14017         flags and disable optimization
14018
14019 2003-02-10  Havoc Pennington  <hp@pobox.com>
14020
14021         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14022         initial cut at test framework for DBusAuth from laptop.
14023         Doesn't quite work yet but it compiles and I need to get
14024         it off the 266mhz laptop. ;-)
14025
14026         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14027         fix a memleak in error case
14028
14029 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14030
14031         * bus/Makefile.am:
14032         * bus/desktop-file.c:
14033         * bus/desktop-file.h:
14034         Add a desktop file parser.
14035
14036 2003-02-11  Zack Rusin  <zack@kde.org>
14037
14038         * qt/message.[h|cpp]: sample implementation
14039         of the KDE wrapper for DBusMessage
14040
14041 2003-02-09  Zack Rusin  <zack@kde.org>
14042
14043         * test/bus-test.c: make_it_compile
14044         * doc/dbus-specification.sgml: minimal semantic fix
14045
14046 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14047
14048         Release 0.3
14049
14050         * NEWS: Update
14051
14052 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14053
14054         * dbus/Makefile.am:
14055         * dbus/dbus-break-loader.c:
14056         * test/Makefile.am:
14057         * test/break-loader.c:
14058         Move dbus-break-loader to test/ and rename it to break-loader.
14059
14060 2003-02-02  Havoc Pennington  <hp@pobox.com>
14061
14062         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14063         for code to manage cookies in your home directory
14064
14065         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14066
14067         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14068         to authenticate, then disconnect the client.
14069
14070 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14071
14072         * dbus/dbus-message.c (dbus_message_append_fields):
14073         Correct docs.
14074
14075 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14076
14077         * doc/dbus-specification.sgml:
14078         Update address format section.
14079
14080 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14081
14082         * test/Makefile.am:
14083         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14084         (message_handler), (new_connection_callback), (loop_quit),
14085         (loop_run), (main):
14086         Add bus test.
14087
14088 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14089
14090         * bus/driver.c: (bus_driver_handle_service_exists):
14091         Simplify the code a bit.
14092
14093         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14094         Fix a silly.
14095
14096 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14097
14098         * bus/Makefile.am:
14099         Add libdbus-daemon.la and link to it.
14100
14101 2003-02-01  James Willcox  <jwillcox@gnome.org>
14102
14103         * bus/driver.c: (bus_driver_handle_own_service):
14104         Actually include the service reply code in the message.
14105
14106 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14107
14108         * bus/driver.c: (bus_driver_handle_service_exists):
14109         Don't unref the incoming message.
14110
14111 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14112
14113         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14114
14115 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14116
14117         * dbus/dbus-server.c: (dbus_server_listen):
14118         * dbus/dbus-transport.c: (_dbus_transport_open):
14119         ifdef out the calls to the debug transport and server.
14120
14121 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14122
14123         * dbus/dbus-watch.c (dbus_watch_get_flags):
14124         Add note in the docs that ERROR or HANGUP won't be returned
14125         and are assumed always on.
14126
14127         * glib/dbus-gmain.c (add_watch):
14128         Always add IO_ERR | IO_HUP
14129
14130         * dbus/dbus-message.h:
14131         Add semicolon after dbus_message_iter_get_string_array().
14132         Makes qt code build again
14133
14134 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14135
14136         * bus/driver.c: (create_unique_client_name),
14137         (bus_driver_handle_hello):
14138         Don't take a name, just use a numeric id to identify
14139         each client.
14140
14141         * dbus/Makefile.am:
14142         * dbus/dbus-bus.c: (dbus_bus_register_client),
14143         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14144         * dbus/dbus-bus.h:
14145         Add new convenience functions for communicating with the bus.
14146
14147         * dbus/dbus-message.h:
14148
14149         * dbus/dbus-protocol.h:
14150         Fix a typo.
14151
14152 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14153
14154         * dbus/dbus-message.c (dbus_message_append_fields):
14155         Add some more doc comments.
14156
14157 2003-02-01  Havoc Pennington  <hp@pobox.com>
14158
14159         * dbus/dbus-break-loader.c (randomly_modify_length): change
14160         a 4-byte value in the message as if it were a length
14161
14162         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14163         execute bit on saved files
14164
14165 2003-02-01  Havoc Pennington  <hp@pobox.com>
14166
14167         * dbus/dbus-break-loader.c (main): new program to find messages
14168         that break the loader.
14169
14170         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14171         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14172
14173         * dbus/dbus-string.c (_dbus_string_set_byte): new
14174
14175 2003-01-31  Havoc Pennington  <hp@pobox.com>
14176
14177         * dbus/dbus-message.c: refactor the test code to be more general,
14178         in preparation for writing a "randomly permute test cases to
14179         try to break the loader" program.
14180
14181 2003-01-31  Havoc Pennington  <hp@pobox.com>
14182
14183         * doc/dbus-specification.sgml: work on the specification
14184
14185         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14186         the protocol version of the message.
14187
14188         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14189         no longer specifies that.
14190         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14191         1/2/3/4)
14192
14193         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14194         "break" for DBUS_TYPE_NIL, remove @todo
14195
14196 2003-01-31  Havoc Pennington  <hp@pobox.com>
14197
14198         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14199         just set_is_error/get_is_error as this is a commonly-used
14200         function, and write docs.
14201
14202 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14203
14204         * dbus/dbus-address.c: (dbus_address_entry_free):
14205         Free key and value lists.
14206
14207         * dbus/dbus-internals.c: (_dbus_type_to_string):
14208         Add the types we didn't have.
14209
14210         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14211         (_dbus_marshal_validate_arg):
14212         Add NIL types.
14213
14214         * dbus/dbus-message.c: (dbus_message_set_sender):
14215         Remove todo about being able to set sender to NULL.
14216
14217         (dbus_message_set_is_error_reply),
14218         (dbus_message_get_is_error_reply):
14219         * dbus/dbus-message.h:
14220         New functions.
14221
14222         * dbus/dbus-protocol.h:
14223         Add error reply flag.
14224
14225         * test/data/valid-messages/opposite-endian.message:
14226         Add NIL type to test.
14227
14228 2003-01-31  Havoc Pennington  <hp@pobox.com>
14229
14230         * doc/dbus-specification.sgml: fully specify the header.  Add
14231         flags and major protocol version, and change header/body len to
14232         unsigned.
14233
14234         * dbus/dbus-message-builder.c (append_saved_length): append length
14235         as uint32
14236
14237         * dbus/dbus-message.c (dbus_message_create_header): change header
14238         length and body length to unsigned. Add the new fields from the
14239         spec
14240         (_dbus_message_loader_return_buffer): unsigned header/body len
14241
14242 2003-01-30  Havoc Pennington  <hp@pobox.com>
14243
14244         * dbus/dbus-auth.c: rework to use only REJECTED, no
14245         MECHANISMS
14246
14247         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14248         use REJECTED, suggested by Mark McLoughlin
14249
14250 2003-01-30  Havoc Pennington  <hp@pobox.com>
14251
14252         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14253         a better way to report errors here. e.g.  "unix address lacks
14254         path" or something. also "no such file" when the path doesn't
14255         exist, etc.
14256
14257         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14258         leaking list nodes
14259         (dbus_parse_address): add @todo about documenting address format,
14260         and allowing , and ; to be escaped
14261
14262 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14263
14264         * dbus/Makefile.am:
14265         Add dbus-address.[ch]
14266
14267         * dbus/dbus-address.c: (dbus_address_entry_free),
14268         (dbus_address_entries_free), (create_entry),
14269         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14270         (dbus_parse_address), (_dbus_address_test):
14271         * dbus/dbus-address.h:
14272         New files for dealing with address parsing.
14273
14274         * dbus/dbus-connection.c:
14275         Document timeout functions.
14276
14277         * dbus/dbus-message.c:
14278         Document dbus_message_new_from_message.
14279
14280         * dbus/dbus-server-debug.c:
14281         Document.
14282
14283         * dbus/dbus-server.c: (dbus_server_listen):
14284         Parse address and use correct server implementation.
14285
14286         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14287         * dbus/dbus-string.h:
14288         New function with test.
14289
14290         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14291         * dbus/dbus-test.h:
14292         Add address tests.
14293
14294         * dbus/dbus-transport-debug.c:
14295         Document.
14296
14297         * dbus/dbus-transport.c: (_dbus_transport_open):
14298         Parse address and use correct transport implementation.
14299
14300 2003-01-30  Havoc Pennington  <hp@pobox.com>
14301
14302         * dbus/dbus-message.c: use message->byte_order instead of
14303         DBUS_COMPILER_BYTE_ORDER throughout.
14304         (dbus_message_create_header): pad header to align the
14305         start of the body of the message to 8-byte boundary
14306
14307         * dbus/dbus-marshal.h: make all the demarshalers take const
14308         DBusString arguments.
14309
14310         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14311         validate message args here, so we don't have to do slow validation
14312         later, and so we catch bad messages as they are incoming. Also add
14313         better checks on header_len and body_len. Also fill in
14314         message->byte_order
14315
14316         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14317         implemented properly)
14318         (_dbus_string_validate_nul): new function to check all-nul
14319
14320         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14321         get_arg_end_pos and remove all validation
14322         (_dbus_marshal_validate_arg): actually do validation here.
14323
14324 2003-01-29  Havoc Pennington  <hp@pobox.com>
14325
14326         * dbus/dbus-message.c (check_message_handling): fix assertion
14327         failure on set_client_serial
14328
14329 2003-01-28  Havoc Pennington  <hp@pobox.com>
14330
14331         * dbus/dbus-server-debug.c: Add doc section comments
14332
14333         * dbus/dbus-transport-debug.c: add doc section comments
14334
14335 2003-01-28  Havoc Pennington  <hp@redhat.com>
14336
14337         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14338         the reverse order from how I had it
14339         (_dbus_string_base64_encode): reverse encoding order. I was
14340         basically byteswapping everything during encoding.
14341
14342 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14343
14344         * dbus/dbus-connection-internal.h:
14345         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14346         (_dbus_connection_remove_timeout):
14347         Add functions for adding and removing timeouts.
14348
14349         * dbus/dbus-message.c: (dbus_message_new_from_message):
14350         Add new function that takes a message and creates an exact
14351         copy of it, but with the refcount set to 1.
14352         (check_message_handling):
14353         Fix build error.
14354
14355         * dbus/dbus-server-protected.h:
14356         * dbus/dbus-server.c: (_dbus_server_init_base),
14357         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14358         (dbus_server_set_timeout_functions):
14359         (_dbus_server_remove_timeout):
14360         New functions so that a server can add and remove timeouts.
14361
14362         (dbus_server_listen):
14363         Add commented out call to dbus_server_debug_new.
14364
14365         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14366         Actually set the handler, doh.
14367
14368         * dbus/dbus-transport.c: (_dbus_transport_open):
14369         Add commented out call to dbus_transport_debug_client_new.
14370
14371         * dbus/Makefile.am:
14372         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14373
14374 2003-01-28  Havoc Pennington  <hp@pobox.com>
14375
14376         * dbus/dbus-message.c (check_message_handling): function to check
14377         on the loaded message, iterates over it etc.
14378
14379 2003-01-28  Havoc Pennington  <hp@pobox.com>
14380
14381         * test/Makefile.am (dist-hook): fix make distdir
14382
14383         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14384
14385 2003-01-27  Havoc Pennington  <hp@pobox.com>
14386
14387         * dbus/dbus-mempool.c (time_for_size): replace printf with
14388         _dbus_verbose
14389
14390         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14391         empty lines; fix the SAVE_LENGTH stuff to be
14392         START_LENGTH/END_LENGTH so it actually works; couple other
14393         bugfixes
14394
14395         * test/Makefile.am (dist-hook): add dist-hook for .message files
14396
14397         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14398         can be constant or locked.
14399         (_dbus_string_free): allow freeing a const string as
14400         documented/intended
14401
14402         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14403
14404         * dbus/dbus-test-main.c (main): take an argument which is the
14405         directory containing test data
14406
14407         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14408         argument to this and load all the messages in test/data/
14409         checking that they can be loaded or not loaded as appropriate.
14410
14411 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14412
14413         * bus/dispatch.c: (bus_dispatch_message_handler):
14414         Dispatch messages sent to services.
14415
14416         * bus/driver.c: (bus_driver_send_service_deleted),
14417         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14418         (bus_driver_send_service_acquired):
14419         Add helper functions for sending service related messages.
14420
14421         (bus_driver_send_welcome_message):
14422         Send HELLO_REPLY instead of WELCOME.
14423
14424         (bus_driver_handle_list_services):
14425         Send LIST_SERVICES_REPLY instead of SERVICES.
14426
14427         (bus_driver_handle_own_service),
14428         (bus_driver_handle_service_exists):
14429         New message handlers.
14430
14431         (bus_driver_handle_message):
14432         Invoke new message handlers.
14433
14434         (bus_driver_remove_connection):
14435         Don't remove any services here since that's done automatically
14436         by bus_service_remove_owner now.
14437
14438         * bus/driver.h:
14439         New function signatures.
14440
14441         * bus/services.c: (bus_service_add_owner):
14442         Send ServiceAcquired message if we're the only primary owner.
14443
14444         (bus_service_remove_owner):
14445         Send ServiceAcquired/ServiceLost messages.
14446
14447         (bus_service_set_prohibit_replacement),
14448         (bus_service_get_prohibit_replacement):
14449         Functions for setting prohibit replacement.
14450
14451         (bus_service_has_owner):
14452         New function that checks if a connection is in the owner queue of
14453         a certain service.
14454
14455         * bus/services.h:
14456         Add new function signatures.
14457
14458         * dbus/dbus-list.c: (_dbus_list_test):
14459         Add tests for _dbus_list_remove_last and traversing the list backwards.
14460
14461         * dbus/dbus-list.h:
14462         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14463         go any further, so return NULL then.
14464
14465         * dbus/dbus-protocol.h:
14466         Add new messages, service flags and service replies.
14467
14468 2003-01-26  Havoc Pennington  <hp@pobox.com>
14469
14470         * dbus/dbus-message-builder.c: implement, completely untested.
14471
14472         * test/data/*: add data to be used in testing.
14473         ".message" files are our simple loadable text format.
14474         ".message-raw" will be binary dumps of messages.
14475
14476         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14477
14478 2003-01-26  Havoc Pennington  <hp@pobox.com>
14479
14480         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14481
14482         * dbus/dbus-errors.c (dbus_result_to_string): add
14483         file errors
14484
14485         * dbus/dbus-message-builder.c: new file, will contain code to load
14486         up messages from files. Not implemented yet.
14487
14488 2003-01-26  Havoc Pennington  <hp@pobox.com>
14489
14490         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14491         the sender by setting to NULL
14492
14493 2003-01-26  Havoc Pennington  <hp@pobox.com>
14494
14495         The unit tests pass, but otherwise untested.  If it breaks, the
14496         tests should have been better. ;-)
14497
14498         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14499         the connection.
14500
14501         * dbus/dbus-message.c: redo everything so we maintain
14502         message->header as the only copy of the various fields.
14503         This avoids the possibility of out-of-memory in some cases,
14504         for example dbus_message_lock() can't run out of memory anymore,
14505         and avoids extra copying. Figured I may as well go ahead and do
14506         this since it was busted for dbus_message_lock to not return
14507         failure on OOM, and dbus_message_write_header was totally
14508         unchecked for OOM. Also fixed some random other bugs.
14509
14510         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14511         that strings are nul-terminated. Also, end_pos can be equal
14512         to string length just not greater than, I think.
14513         (_dbus_marshal_set_int32): new function
14514         (_dbus_marshal_set_uint32): new function
14515         (_dbus_marshal_set_string): new function
14516
14517         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14518         a warning, init timeout_list to NULL
14519         (dbus_connection_send_message): don't use uninitialized variable
14520         "serial"
14521
14522         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14523
14524 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14525
14526         * bus/driver.c: (bus_driver_handle_hello),
14527         (bus_driver_send_welcome_message):
14528         Plug leaks
14529
14530 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14531
14532         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14533         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14534         (dbus_connection_unref):
14535         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14536         * dbus/dbus-message.c: (dbus_message_unref),
14537         Plug memory leaks.
14538
14539         (dbus_message_get_fields):
14540         Remove debugging printout.
14541
14542         (_dbus_message_loader_return_buffer):
14543         Don't store the header string.
14544
14545         (_dbus_message_test):
14546         Plug leaks.
14547
14548 2003-01-26  Richard Hult  <rhult@codefactory.se>
14549
14550         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14551         the file descriptor list, since it can change under us.
14552
14553 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14554
14555         * glib/dbus-gmain.c: (dbus_connection_prepare),
14556         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14557         (remove_watch), (dbus_connection_hookup_with_g_main):
14558         Rewrite the glib handling to use its own GSource instead of a
14559         GIOChannel so we can catch messages put in the queue while waiting
14560         for a reply.
14561
14562 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14563
14564         * bus/Makefile.am:
14565         * bus/connection.c: (connection_disconnect_handler),
14566         (connection_watch_callback), (bus_connection_setup):
14567         * bus/dispatch.c: (send_one_message),
14568         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14569         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14570         * bus/dispatch.h:
14571         * bus/driver.c: (bus_driver_send_service_deleted),
14572         (bus_driver_send_service_created), (bus_driver_handle_hello),
14573         (bus_driver_send_welcome_message),
14574         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14575         (bus_driver_handle_message):
14576         * bus/driver.h:
14577         Refactor code, put the message dispatching in its own file. Use
14578         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14579         is disconnected.
14580
14581 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14582
14583         * dbus/dbus-internals.h:
14584         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14585
14586         * dbus/dbus-message.c: (dbus_message_get_sender):
14587         * dbus/dbus-message.h:
14588         Implement dbus_message_get_sender.
14589
14590         * dbus/dbus-protocol.h:
14591         Add message and service defines.
14592
14593 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14594
14595         * dbus/dbus-connection.c: (dbus_connection_send_message):
14596         * dbus/dbus-message-internal.h:
14597         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14598         (dbus_message_write_header):
14599         Remove _dbus_messag_unlock and don't set the client serial on a
14600         message if one already exists.
14601
14602 2003-01-24  Havoc Pennington  <hp@pobox.com>
14603
14604         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14605         list_pool
14606
14607         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14608         on OOM
14609
14610 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14611
14612         * dbus/dbus-list.c: (alloc_link), (free_link):
14613         Use a memory pool for the links.
14614
14615 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14616
14617         * bus/connection.c: (bus_connection_foreach):
14618         * bus/connection.h:
14619         Add new bus_connection_foreach function.
14620
14621         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14622         Add function that broadcasts a message to all clients.
14623
14624         (bus_driver_send_service_created), (bus_driver_handle_hello),
14625         (bus_driver_send_welcome_message),
14626         (bus_driver_handle_list_services), (bus_driver_message_handler):
14627         Implement functions that take care of listing services, and notifying
14628         clients when new services are created.
14629
14630         * bus/services.c: (bus_services_list):
14631         * bus/services.h:
14632         Add new function that returns an array of strings with the currently
14633         registered services.
14634
14635         * glib/dbus-glib.h:
14636         * glib/dbus-gmain.c:
14637         Update copyright year.
14638
14639 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14640
14641         * dbus/dbus-connection.c: (dbus_connection_send_message):
14642         Unlock the message in case it was sent earlier.
14643
14644         (dbus_connection_send_message_with_reply_and_block):
14645         Remove the reply message from the list.
14646
14647         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14648         Set array_len and new_pos correctly.
14649
14650         (_dbus_marshal_test):
14651         Remove debug output.
14652
14653         * dbus/dbus-message-internal.h:
14654         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14655         New function that returns the reply serial.
14656
14657         (_dbus_message_unlock):
14658         New function that unlocks a message and resets its header.
14659
14660         (dbus_message_append_string_array),
14661         (dbus_message_get_fields_valist),
14662         (dbus_message_iter_get_field_type),
14663         (dbus_message_iter_get_string_array),
14664         (dbus_message_get_fields),
14665         (dbus_message_append_fields_valist):
14666         Handle string arrays.
14667
14668         (dbus_message_set_sender):
14669         Make this function public since the bus daemon needs it.
14670
14671         (decode_header_data):
14672         Set the reply serial to -1 initially.
14673
14674         * dbus/dbus-message.h:
14675         Add dbus_message_set_sender.
14676
14677 2003-01-24  Havoc Pennington  <hp@pobox.com>
14678
14679         * doc/dbus-specification.sgml: add some stuff
14680
14681 2003-01-22  Havoc Pennington  <hp@pobox.com>
14682
14683         * doc/dbus-specification.sgml: Start to document the protocol.
14684
14685 2003-01-22  Havoc Pennington  <hp@pobox.com>
14686
14687         * dbus/dbus-connection.c
14688         (dbus_connection_send_message_with_reply_and_block): add some @todo
14689
14690         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14691
14692 2003-01-21  Havoc Pennington  <hp@pobox.com>
14693
14694         (patch untested because can't compile)
14695
14696         * bus/driver.c (create_unique_client_name): make this function
14697         never recycle client names. Also, caller should initialize
14698         the DBusString.
14699
14700         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14701
14702 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14703
14704         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14705         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14706         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14707         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14708         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14709         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14710         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14711         * dbus/dbus-marshal.h:
14712         * dbus/dbus-protocol.h:
14713         Add support for marshalling and demarshalling integer, double
14714         and string arrays.
14715
14716 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14717
14718         * bus/Makefile.am:
14719         Add driver.[ch]
14720
14721         * bus/connection.c: (connection_disconnect_handler):
14722         Remove the connection from the bus driver's list.
14723
14724         (connection_watch_callback): Dispatch messages.
14725
14726         (free_connection_data): Free connection name.
14727
14728         (bus_connection_setup): Add connection to the bus driver's list.
14729         (bus_connection_remove_owned_service):
14730         (bus_connection_set_name), (bus_connection_get_name):
14731         Add functions for setting and getting the connection's name.
14732
14733         * bus/connection.h:
14734         Add function headers.
14735
14736         * bus/driver.c: (create_unique_client_name),
14737         (bus_driver_handle_hello_message),
14738         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14739         (bus_driver_add_connection), (bus_driver_remove_connection):
14740         * bus/driver.h:
14741         * bus/main.c:
14742         * bus/services.c: (bus_service_free):
14743         * bus/services.h:
14744         New file that handles communication and registreation with the bus
14745         itself.
14746
14747 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14748
14749         * dbus/dbus-connection.c: (dbus_connection_send_message):
14750         Add a new client_serial parameter.
14751
14752         (dbus_connection_send_message_with_reply):
14753         Remove a @todo since we've implemented the blocking function.
14754
14755         (dbus_connection_send_message_with_reply_and_block):
14756         New function that sends a message and waits for a reply and
14757         then returns the reply.
14758
14759         * dbus/dbus-connection.h:
14760         Add new functions.
14761
14762         * dbus/dbus-errors.c: (dbus_result_to_string):
14763         * dbus/dbus-errors.h:
14764         Add new DBUS_RESULT.
14765
14766         * dbus/dbus-message-internal.h:
14767         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14768         (_dbus_message_set_sender), (dbus_message_write_header),
14769         (dbus_message_new_reply), (decode_header_data),
14770         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14771         * dbus/dbus-message.h:
14772         Add new functions that set the reply serial and sender.
14773         Also marshal and demarshal them correctly and add test.
14774
14775         * dbus/dbus-protocol.h:
14776         Add new DBUS_MESSAGE_TYPE_SENDER.
14777
14778         * glib/dbus-glib.h:
14779         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14780         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14781         (dbus_connection_hookup_with_g_main):
14782         * glib/test-dbus-glib.c: (main):
14783         Rewrite to use GIOChannel and remove the GSource crack.
14784
14785         * test/echo-client.c: (main):
14786         * test/watch.c: (check_messages):
14787         Update for changed APIs
14788
14789 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14790
14791         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14792
14793         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14794         Create a DBusTimeoutList.
14795         (dbus_connection_set_timeout_functions): Add new function to
14796         set timeout callbacks
14797
14798         * dbus/dbus-connection.h: Add public DBusTimeout API.
14799
14800         * dbus/dbus-message.c: (dbus_message_get_service):
14801         * dbus/dbus-message.h:  New function.
14802
14803         * dbus/dbus-server.c: Fix small doc typo.
14804
14805         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14806
14807 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14808
14809         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14810         of the string, just as long as specified.
14811
14812 2003-01-19  Havoc Pennington  <hp@pobox.com>
14813
14814         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14815         new function
14816
14817         * dbus/dbus-server.c (dbus_server_set_max_connections)
14818         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14819         keep track of current number of connections, and add API for
14820         setting a max (but haven't implemented enforcing the max yet)
14821
14822 2003-01-18  Havoc Pennington  <hp@pobox.com>
14823
14824         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14825         reading/writing if read_watch != NULL or write_watch != NULL.
14826
14827         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14828         the message loader code to actually load message->header and
14829         message->body into the newly-created message.
14830
14831         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14832         in OOM case
14833
14834         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14835         (dbus_connection_get_max_message_size)
14836         (dbus_connection_set_max_live_messages_size)
14837         (dbus_connection_get_max_live_messages_size): implement some
14838         resource limitation functions
14839
14840         * dbus/dbus-resources.c: new file implementing some of the
14841         resource limits stuff
14842
14843         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14844         missing docs, add @todo to handle OOM etc.
14845
14846         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14847         docs
14848
14849 2003-01-18  Havoc Pennington  <hp@pobox.com>
14850
14851         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14852         connection if it hasn't been already.
14853
14854         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14855         replace with DisconnectFunction.
14856
14857 2003-01-18  Havoc Pennington  <hp@pobox.com>
14858
14859         Building --disable-verbose-mode --disable-asserts --disable-tests
14860         cuts the library from 112K to 45K or so
14861
14862         * configure.in: check for varargs macro support,
14863         add --enable-verbose-mode, --enable-asserts.
14864
14865         * dbus/dbus-internals.h (_dbus_assert): support
14866         DBUS_DISABLE_ASSERT
14867         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14868
14869 2003-01-18  Havoc Pennington  <hp@pobox.com>
14870
14871         * dbus/dbus-test.c: include config.h so that tests actually run
14872
14873         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14874         so the failure mode when that assumption fails will be plenty
14875         obvious.
14876
14877 2003-01-18  Havoc Pennington  <hp@pobox.com>
14878
14879         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14880
14881         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14882         the distribution
14883
14884         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14885         since we don't want to use those in make check
14886
14887 2003-01-15  Havoc Pennington  <hp@redhat.com>
14888
14889         Release 0.2
14890
14891         * NEWS: update
14892
14893 2003-01-15  Havoc Pennington  <hp@redhat.com>
14894
14895         * test/Makefile.am: fix so that test source code ends up in the
14896         distribution on make distcheck
14897
14898 2003-01-15  Havoc Pennington  <hp@redhat.com>
14899
14900         Release 0.1.
14901
14902         * NEWS: update
14903
14904 2003-01-15  Havoc Pennington  <hp@redhat.com>
14905
14906         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14907         fix build when --disable-tests
14908
14909         * Makefile.am (EXTRA_DIST): put HACKING in here
14910
14911         * HACKING: document procedure for making a tarball release.
14912
14913 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14914
14915         * bus/connection.c: (connection_error_handler),
14916         (bus_connection_setup):
14917         * bus/main.c: (main):
14918         Make sure that the DBusConnectionData struct is NULLed
14919         out to prevent a segfault.
14920
14921         * dbus/dbus-errors.c: (dbus_result_to_string):
14922         * dbus/dbus-errors.h:
14923         * dbus/dbus-message.c: (dbus_message_get_fields),
14924         (dbus_message_get_fields_valist), (_dbus_message_test):
14925         * dbus/dbus-message.h:
14926         Make dbus_message_get_fields return a result code so we can
14927         track invalid fields as well as oom.
14928
14929 2003-01-11  Havoc Pennington  <hp@pobox.com>
14930
14931         * configure.in: change --enable-test/--enable-ansi action-if-given
14932         to enable_foo=$enableval instead of enable_foo=yes
14933
14934 2003-01-08  Havoc Pennington  <hp@pobox.com>
14935
14936         * dbus/dbus-string.c (_dbus_string_align_length): new function
14937
14938         * dbus/dbus-test-main.c: move main() for test app here
14939         * dbus/dbus-test.c
14940         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14941         symbol to run tests, because dbus-test isn't in the main
14942         library
14943
14944         Code review nitpicks.
14945
14946         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14947         for people with narrow emacs ;-). Assert client_serial was filled
14948         in. Assert message->name != NULL.
14949         (dbus_message_append_fields): have "first_field_type" arg separate
14950         from va list, needed for C++ binding that also uses varargs IIRC
14951         and helps with type safety
14952         (dbus_message_new): add @todo about using DBusString to store
14953         service/name internally
14954         (dbus_message_new): don't leak ->service and ->name on OOM later
14955         in the function
14956         (dbus_message_unref): free the service name
14957         (dbus_message_get_fields): same change to varargs
14958         i.e. first_field_type
14959         (_dbus_message_loader_return_buffer): assert that the message data
14960         is aligned (if not it's a bug in our code). Put in verbose griping
14961         about why we set corrupted = TRUE.
14962         (decode_header_data): add FIXME that char* is evil.  Was going to
14963         add FIXME about evil locale-specific string.h strncmp, but just
14964         switched to wacky string-as-uint32 optimization. Move check for
14965         "no room for field name" above get_const_data_len() to avoid
14966         assertion failure in get_const_data_len if we have trailing 2
14967         bytes or the like. Check for service and name fields being
14968         provided twice. Don't leak service/name on error. Require field
14969         names to be aligned to 4 bytes.
14970
14971         * dbus/dbus-marshal.c: move byte swap stuff to header
14972         (_dbus_pack_int32): uscore-prefix
14973         (_dbus_unpack_int32): uscore-prefix
14974         (_dbus_unpack_uint32): export
14975         (_dbus_demarshal_string): add @todo complaining about use of
14976         memcpy()
14977         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14978         handling allowing corrupt data to go unchecked
14979
14980 2003-01-08  Havoc Pennington  <hp@redhat.com>
14981
14982         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14983         to the select() as needed for authentication. (should be using
14984         _dbus_poll() not select, but for another day)
14985
14986         * dbus/dbus.h: include dbus/dbus-protocol.h
14987
14988 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14989
14990         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14991         dbus-connection.h
14992
14993 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14994
14995         * dbus/dbus-internals.c: (_dbus_type_to_string):
14996         New function that returns a string describing a type.
14997
14998         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14999         * dbus/dbus-marshal.h:
15000         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15001         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15002         (dbus_message_iter_get_byte_array):
15003         * dbus/dbus-message.h:
15004         Add new convenience functions for appending and getting message fields.
15005         Also add demarshalling routines for byte arrays.
15006
15007 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15008
15009         * dbus/dbus-connection-internal.h:
15010         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15011         (_dbus_connection_get_next_client_serial),
15012         (dbus_connection_send_message):
15013         * dbus/dbus-internals.h:
15014         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15015         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15016         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15017         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15018         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15019         (_dbus_verbose_bytes), (_dbus_marshal_test):
15020         * dbus/dbus-marshal.h:
15021         * dbus/dbus-message-internal.h:
15022         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15023         (dbus_message_write_header), (_dbus_message_lock),
15024         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15025         (dbus_message_get_name), (dbus_message_append_int32),
15026         (dbus_message_append_uint32), (dbus_message_append_double),
15027         (dbus_message_append_string), (dbus_message_append_byte_array),
15028         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15029         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15030         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15031         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15032         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15033         (decode_header_data), (_dbus_message_loader_return_buffer),
15034         (message_iter_test), (_dbus_message_test):
15035         * dbus/dbus-message.h:
15036         * dbus/dbus-protocol.h:
15037         * dbus/dbus-test.c: (main):
15038         * dbus/dbus-test.h:
15039         * glib/test-dbus-glib.c: (message_handler), (main):
15040         * test/echo-client.c: (main):
15041         * test/watch.c: (check_messages):
15042         Make messages sendable and receivable for real.
15043
15044 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15045
15046         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15047         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15048         * dbus/dbus-message.c: (dbus_message_append_int32),
15049         (dbus_message_append_uint32), (dbus_message_append_double),
15050         (dbus_message_append_string), (dbus_message_append_byte_array):
15051         Handle OOM restoration.
15052
15053 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15054
15055         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15056         (_dbus_demarshal_string), (_dbus_marshal_test):
15057         * dbus/dbus-marshal.h:
15058         * dbus/dbus-message.c: (dbus_message_get_name),
15059         Document these functions.
15060
15061         (dbus_message_append_int32), (dbus_message_append_uint32),
15062         (dbus_message_append_double), (dbus_message_append_string),
15063         (dbus_message_append_byte_array):
15064         * dbus/dbus-message.h:
15065         Add functions for adding message fields of different types.
15066
15067         * dbus/dbus-protocol.h:
15068         Add the different types.
15069
15070 2003-01-05  Havoc Pennington  <hp@pobox.com>
15071
15072         * bus/connection.c: implement routines for handling connections,
15073         first thing is keeping a list of owned services on each connection
15074         and setting up watches etc.
15075
15076         * bus/services.c: implement a mapping from service names to lists
15077         of connections
15078
15079         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15080
15081         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15082         to use static mutexes for global data
15083
15084         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15085         collection of functions to set/get application-specific data
15086         on the DBusConnection.
15087
15088 2003-01-04  Havoc Pennington  <hp@pobox.com>
15089
15090         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15091         (_dbus_poll): new function
15092
15093         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15094         copied from GLib
15095
15096         * bus/loop.c: initial code for the daemon main loop
15097
15098 2003-01-04  Havoc Pennington  <hp@pobox.com>
15099
15100         * test/watch.c (error_handler): make it safe if the error handler
15101         is called multiple times (if we s/error handler/disconnect
15102         handler/ we should just guarantee it's called only once)
15103
15104         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15105         error handler on disconnect (it's quite possible we should
15106         just change the error handler to a "disconnect handler," I'm
15107         not sure we have any other meaningful errors)
15108
15109         * configure.in: check for getpwnam_r
15110
15111         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15112         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15113         mechanism as in SASL spec, using socket credentials
15114
15115         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15116         (_dbus_send_credentials_unix_socket): new function
15117
15118         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15119         dbus_accept()
15120         (_dbus_write): only check errno if <0 returned
15121         (_dbus_write_two): ditto
15122
15123 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15124
15125         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15126         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15127         (_dbus_marshal_test):
15128         * dbus/dbus-marshal.h:
15129         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15130         to _dbus_marshal_utf8_string. Also fix some tests.
15131
15132 2002-12-28  Harri Porten  <porten@kde.org>
15133
15134         * configure.in: added check for C++ compiler and a very cheesy
15135         check for the Qt integration
15136
15137         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15138
15139         * qt/Makefile.am: added
15140
15141         * qt/.cvsignore: added
15142
15143         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15144         latter, added #ifdef QT_THREAD_SUPPORT guard.
15145
15146         * dbus/Makefile.am: added missing headers for make dist
15147
15148 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15149
15150         * dbus/Makefile.am: fixup export-symbols-regex.
15151
15152 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15153
15154         * acinclude.m4: Add this file and put the
15155         PKG_CHECK_MODULE macro in it.
15156
15157 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15158
15159         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15160         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15161         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15162         (_dbus_marshal_test):
15163         Make the demarshalling routines align the pos argument.
15164         Add string marshalling tests and fix the obvious bugs
15165         discovered.
15166
15167 2002-12-26  Havoc Pennington  <hp@pobox.com>
15168
15169         * dbus/dbus-auth.c: fixes fixes fixes
15170
15171         * dbus/dbus-transport-unix.c: wire up support for
15172         encoding/decoding data on the wire
15173
15174         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15175         (_dbus_auth_decode_data): append to target string
15176         instead of nuking it.
15177
15178 2002-12-26  Havoc Pennington  <hp@pobox.com>
15179
15180         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15181         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15182         doh
15183
15184         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15185         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15186         now). Main point is because I wanted unpack_uint32 to implement
15187         _dbus_verbose_bytes
15188         (_dbus_verbose_bytes): new function
15189
15190         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15191
15192         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15193         mechanism to handle a corrupt message stream
15194         (_dbus_message_loader_new): fix preallocation to only prealloc,
15195         not prelengthen
15196
15197         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15198         (_dbus_string_test): enhance tests for copy/move and fix the
15199         functions
15200
15201         * dbus/dbus-transport-unix.c: Hold references in more places to
15202         avoid reentrancy problems
15203
15204         * dbus/dbus-transport.c: ditto
15205
15206         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15207         leak reference count in no-message case
15208
15209         * test/watch.c (do_mainloop): handle adding/removing watches
15210         during iteration over the watches. Also, ref the connection/server
15211         stored on a watch, so we don't try to mangle a destroyed one.
15212
15213         * dbus/dbus-transport-unix.c (do_authentication): perform
15214         authentication
15215
15216         * dbus/dbus-auth.c (get_state): add a state
15217         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15218         (_dbus_auth_get_unused_bytes): append the unused bytes
15219         to the passed in string, rather than prepend
15220
15221         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15222         the auth conversation DBusAuth
15223
15224         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15225         (_dbus_transport_new_for_domain_socket): when creating a
15226         transport, pass in whether it's a client-side or server-side
15227         transport so we know which DBusAuth to create
15228
15229 2002-12-03  Havoc Pennington  <hp@pobox.com>
15230
15231         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15232         _after_ finalizing the derived members
15233         (unix_connection_set): unref watch if we fail to add it
15234
15235         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15236         transport first, so that the connection owned by the
15237         transport will be valid as the transport finalizes.
15238
15239         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15240         if necessary, and remove watches from the connection.
15241
15242         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15243
15244 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15245
15246         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15247         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15248         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15249         (_dbus_marshal_test):
15250         * dbus/dbus-marshal.h:
15251         Add string marshal functions and have the demarshal functions
15252         return the new position.
15253
15254 2002-12-25  Havoc Pennington  <hp@pobox.com>
15255
15256         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15257         it is a simple protocol that just maps directly to SASL.
15258
15259         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15260         initial implementation, not actually used yet.
15261
15262         * dbus/dbus-string.c (_dbus_string_find): new function
15263         (_dbus_string_equal): new function
15264         (_dbus_string_base64_encode): new function
15265         (_dbus_string_base64_decode): new function
15266
15267 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15268
15269         * dbus/Makefile.am:
15270         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15271         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15272         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15273         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15274         * dbus/dbus-marshal.h:
15275         * dbus/dbus-protocol.h:
15276         * dbus/dbus-test.c: (main):
15277         * dbus/dbus-test.h:
15278         Add un-optimized marshalling/demarshalling routines.
15279
15280 2002-12-25  Harri Porten  <porten@kde.org>
15281
15282         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15283
15284 2002-12-24  Zack Rusin  <zack@kde.org>
15285
15286         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15287         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15288         main loop stuff
15289
15290 2002-12-24  Havoc Pennington  <hp@pobox.com>
15291
15292         * glib/dbus-gthread.c: fix include
15293
15294         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15295         I think glib API needs to change, though, as you don't
15296         want to use DBusMessageFunction, you want to use the
15297         DBusMessageHandler object. Probably
15298         dbus_connection_open_with_g_main_loop()
15299         and dbus_connection_setup_g_main_loop() or something like that
15300         (but think of better names...) that just create a connection
15301         that has watch/timeout functions etc. already set up.
15302
15303         * dbus/dbus-connection.c
15304         (dbus_connection_send_message_with_reply): new function just to
15305         show how the message handler helps us deal with replies.
15306
15307         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15308
15309         * dbus/dbus-string.c (_dbus_string_test): free a string that
15310         wasn't
15311
15312         * dbus/dbus-hash.c: use memory pools for the hash entries
15313         (rebuild_table): be more paranoid about overflow, and
15314         shrink table when we can
15315         (_dbus_hash_test): reduce number of sprintfs and write
15316         valid C89. Add tests for case where we grow and then
15317         shrink the hash table.
15318
15319         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15320
15321         * dbus/dbus-connection.c (dbus_connection_register_handler)
15322         (dbus_connection_unregister_handler): new functions
15323
15324         * dbus/dbus-message.c (dbus_message_get_name): new
15325
15326         * dbus/dbus-list.c: fix docs typo
15327
15328         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15329         an object representing a handler for messages.
15330
15331 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15332
15333         * glib/dbus-glib.h:
15334         * glib/dbus-gthread.c: (dbus_gthread_init):
15335         Don't use the gdbus prefix for public functions.
15336
15337 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15338
15339         * Makefile.am:
15340         * configure.in:
15341         Add GLib checks and fixup .pc files
15342
15343         * glib/Makefile.am:
15344         * glib/dbus-glib.h:
15345         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15346         (gdbus_connection_check), (gdbus_connection_dispatch),
15347         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15348         (dbus_connection_gsource_new):
15349         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15350         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15351         * glib/test-dbus-glib.c: (message_handler), (main):
15352         Add GLib support.
15353
15354 2002-12-15  Harri Porten  <porten@kde.org>
15355
15356         * autogen.sh: check for libtoolize before attempting to use it
15357
15358         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15359         struct.
15360
15361         * .cvsignore: ignore more stamp files
15362
15363         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15364
15365         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15366         without make install.
15367
15368 2002-12-15  Havoc Pennington  <hp@pobox.com>
15369
15370         * dbus/dbus-threads.c: add thread stubs that a higher library
15371         layer can fill in. e.g. the GLib wrapper might fill them in with
15372         GThread stuff. We still need to use this thread API to
15373         thread-safe-ize the library.
15374
15375 2002-12-12  Havoc Pennington  <hp@pobox.com>
15376
15377         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15378         below new interfaces and include fewer system headers.
15379
15380         * dbus/dbus-sysdeps.c (_dbus_read): new function
15381         (_dbus_write): new function
15382         (_dbus_write_two): new function
15383         (_dbus_connect_unix_socket): new function
15384         (_dbus_listen_unix_socket): new function
15385
15386         * dbus/dbus-message-internal.h: change interfaces to use
15387         DBusString
15388
15389 2002-12-11  Havoc Pennington  <hp@pobox.com>
15390
15391         * dbus/dbus-types.h: add dbus_unichar
15392
15393         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15394
15395         * dbus/dbus-connection.c (dbus_connection_send_message): return
15396         TRUE on success
15397
15398         * dbus/dbus-transport.c: include dbus-watch.h
15399
15400         * dbus/dbus-connection.c: include dbus-message-internal.h
15401
15402         * HACKING: add file with coding guidelines stuff.
15403
15404         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15405         handling here, for security purposes (as in vsftpd). Not actually
15406         using this class yet.
15407
15408         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15409         system/libc usage here, as in vsftpd, for ease of auditing (and
15410         should also simplify portability). Haven't actually moved all the
15411         system/libc usage into here yet.
15412
15413 2002-11-25  Havoc Pennington  <hp@pobox.com>
15414
15415         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15416         always print the first verbose message.
15417
15418 2002-11-24  Havoc Pennington  <hp@pobox.com>
15419
15420         * test/echo-client.c, test/echo-server.c: cheesy test
15421         clients.
15422
15423         * configure.in (AC_CHECK_FUNCS): check for writev
15424
15425         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15426         function
15427
15428         * dbus/dbus-list.c (_dbus_list_foreach): new function
15429
15430         * dbus/dbus-internals.c (_dbus_verbose): new function
15431
15432         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15433         representing a server that listens for connections.
15434
15435         * dbus/.cvsignore: create
15436
15437         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15438         public API for reporting errors
15439
15440         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15441         public object representing a connection that
15442         sends/receives messages. (Same object used for
15443         both client and server.)
15444
15445         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15446         Basic abstraction for different kinds of stream
15447         that we might read/write messages from.
15448
15449 2002-11-23  Havoc Pennington  <hp@pobox.com>
15450
15451         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15452         _DBUS_INT_MAX
15453
15454         * dbus/dbus-test.c (main): add list test, and include
15455         dbus-test.h as intended
15456
15457         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15458         (_dbus_hash_table_remove_int): return value indicates
15459         whether the entry existed to remove
15460
15461         * dbus/dbus-list.c: add linked list utility class,
15462         with docs and tests
15463
15464         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15465         array sometimes.
15466
15467 2002-11-23  Havoc Pennington  <hp@pobox.com>
15468
15469         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15470         DBUS_END_DECLS to nothing, that should fix this once and for all
15471
15472         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15473
15474         * dbus/dbus-message.c, dbus/dbus-hash.c:
15475         add some missing @brief
15476
15477 2002-11-23  Havoc Pennington  <hp@pobox.com>
15478
15479         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15480         to avoid confusing Doxygen
15481
15482         * dbus/dbus-hash.c: @} not }@
15483
15484         * dbus/dbus-message.c (struct DBusMessage): split out
15485         internals docs
15486
15487 2002-11-23  Havoc Pennington  <hp@pobox.com>
15488
15489         * configure.in: pile on more warning flags if using gcc
15490
15491         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15492         to document static functions
15493
15494         * configure.in: add summary to end of configure so it
15495         looks nice and attractive
15496
15497         * dbus/dbus-hash.c: finish implementation and write unit
15498         tests and docs
15499
15500         * configure.in: add --enable-tests to enable unit tests
15501
15502         * dbus/dbus-test.c: test program to run unit tests
15503         for all files in dbus/*, initially runs a test for
15504         dbus-hash.c
15505
15506         * dbus/dbus-internals.h: file to hold some internal utility stuff
15507
15508 2002-11-22  Havoc Pennington  <hp@redhat.com>
15509
15510         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15511         "ported" away from Tcl
15512
15513         * dbus/dbus-types.h: header for types such as dbus_bool_t
15514
15515 2002-11-22  Havoc Pennington  <hp@redhat.com>
15516
15517         * dbus/dbus.h: fixups for doc warnings
15518
15519         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15520         macros
15521         (QUIET): make it quiet so we can see warnings
15522
15523         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15524
15525 2002-11-22  Havoc Pennington  <hp@redhat.com>
15526
15527         * Makefile.am: include "Doxyfile" target in all-local
15528
15529         * configure.in: generate the Doxyfile
15530
15531         * Doxyfile.in: move Doxyfile here, so we can use
15532         configure to generate a Doxyfile with the right
15533         version number etc.
15534
15535 2002-11-22  Havoc Pennington  <hp@redhat.com>
15536
15537         * dbus/dbus-message.c: move inline docs into .c file
15538
15539         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15540         so all docs are under doc/
15541         (MAN_EXTENSION): generate man pages. Use extension
15542         ".3dbus" which matches ".3qt" on my system,
15543         I guess this is OK, I don't know really.
15544         (FILE_PATTERNS): look for .c files not .h, makes sense
15545         for plain C I think
15546
15547 2002-11-22  Havoc Pennington  <hp@pobox.com>
15548
15549         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15550         because any app can be a server, and any app can be a client,
15551         the bus is a special kind of server.
15552
15553 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15554
15555         * Doxyfile : adding. Still needs Makefile rules to be generated
15556         automatically (just run "doxygen" in the toplevel dir for now to
15557         generate docs)
15558
15559         * dbus/dbus-message.h : Adding sample docs (javadoc since
15560         resembles gtk-doc a little more)
15561
15562         * dbus/dbus.h : Adding sample docs
15563
15564 2002-11-21  Havoc Pennington  <hp@redhat.com>
15565
15566         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15567         so we can allow ourselves to include files directly,
15568         instead of having to use dbus.h
15569
15570         * dbus/dbus.h: fill in
15571
15572         * dbus/dbus-message.h: sketch out a sample header file.
15573         Include griping if you include it directly instead of
15574         via dbus.h
15575
15576         * dbus/dbus-macros.h: new file with macros for extern "C",
15577         TRUE/FALSE, NULL, etc.
15578
15579         * doc/file-boilerplate.c: put include guards in here
15580
15581 2002-11-21  Havoc Pennington  <hp@redhat.com>
15582
15583         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15584
15585         * COPYING: include the GPL as well, and license code
15586         under both AFL and GPL.
15587
15588 2002-11-21  Havoc Pennington  <hp@redhat.com>
15589
15590         * acconfig.h: get rid of this
15591
15592         * autogen.sh (run_configure): add --no-configure option
15593
15594         * configure.in: remove AC_ARG_PROGRAM to make
15595         autoconf complain less. add AC_PREREQ.
15596         add AC_DEFINE third arg.
15597
15598 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15599
15600         * doc/Makefile.am:
15601         Fix references so we can distcheck.
15602
15603 2002-11-21  Havoc Pennington  <hp@redhat.com>
15604
15605         * Initial module creation
15606