* dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-util-win.c...
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
4         dbus/dbus-sysdeps-util-win.c: renamed functions 
5         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
6         struct name DBusFile. 
7
8 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
9
10         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
11         fix _dbus_pid_fd check. 
12
13 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
14
15         * tools/dbus-print-message.c (print_message):
16         added printing of the reply serial to method returns and 
17         errors, so you can actually figure out the message/reply 
18         pairs - patch by olli.salli at collabora.co.uk.
19
20 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
21
22         * dbus-win.patch: removed committed patches. 
23
24 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
25
26         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
27         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
28         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
29         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
30         completed _dbus_pipe support. 
31
32 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
33
34         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
35         changed type or port to pointer, because the port is given back.
36
37         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
38         implemented returning tcp port. Skipping port parameter
39         and non integer port values in config <listen> statement
40         needs more effort.
41
42         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
43         (_dbus_listen_tcp_socket): return the real used tcp port.
44
45         * bus/dbus-daemon.1.in: added <listen> tcp examples
46
47 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
48
49         * cmake/config.h.cmake: win32 msvc bug fix
50
51 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
52
53         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
54         using _WINCE does not work.
55
56 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
57
58         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
59         committed.
60
61 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
62
63         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
64         rename pipe related write() function calls to _dbus_write_pipe().
65
66 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
67
68         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
69         uses DBUS_WIN for alls win32 related #ifdefs, 
70         some minor cleanups
71
72 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
73
74         * dbus-win.patch: updated patch for bus/dispatch.c.
75
76 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
77
78         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
79         dbus_connection_get_unix_process_id): Let return them valid user id's, 
80         otherwise bus-test fails. How to replace on win32 ?.
81         
82         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
83         fix memory leak.
84
85 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
86
87         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
88         use dbus friendly error name.
89         (fill_win_user_info_homedir): print user name in error case too.
90
91 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
92
93         * cmake/ConfigureChecks.cmake: fixed socketpair check
94
95 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
96
97         * bus/dispatch.c: disabled segfault test on win32 for now
98
99 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
100
101         * configure.in, cmake/ConfigureChecks.cmake: added check 
102         for setrlimit. 
103         * test/test-segfault.c: only include setrlimit stuff only 
104         when available.  
105
106 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
107
108         * test/test-segfault.c: unix compile fix.
109         * dbus-win.patch: removed obsolate patches.
110
111 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
112
113         * bus/activation.c: removed obsolate include header.
114         * test/test-segfault.c: win32 compile fix, rlimit 
115         isn't available on win32.
116         * dbus-win.patch: removed some more patches, they
117         are applied or obsolate 
118
119 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
120
121         * bus-win.patch: fixes unix listen problems, dbus-test 
122         now runs.
123
124 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
125
126         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
127         cmake/CMakeLists.txt: win32 compile fix
128
129 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
130
131         * dbus-win.patch, README.win: added available win32 
132         patches from windbus project (http://sf.net/projects/windbus)
133
134 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
135
136         * bus/activation.c: (bus_activation_activate_service):
137         fixed call to _dbus_spawn_async_with_babysitter().
138
139 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
140
141         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
142         added environment pointer as function parameter, used on win32.
143
144         * test/spawn-test.c: fixed call to above mentioned function.
145
146 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
147
148         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
149         added configure check for unistd.h.
150
151 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
152
153         * test/Makefile.am: fixed test data copy problem in 
154         out of source build, when sources came from svn or cvs. 
155
156 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
157
158         * dbus/*-win.*,bus/*-win.*: added win32 platform related
159         files. These files are only added to the cmake build system.  
160         The missing dbus-win.patch file will be added later. 
161
162 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
163
164         * cmake: new directory, contains cmake build support.
165         See http://www.cmake.org for more informations.
166         Currently only unix will be buildable because some 
167         win32 required files are still missing. 
168
169 2007-03-03  Thiago Macieira  <thiago@kde.org>
170
171         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
172         output and add it to the DBusError message we return.
173
174         * tools/dbus-launch.1:
175         * tools/dbus-launch.c: Add option --close-stderr to, well,
176         close stderr before starting dbus-daemon.
177
178 2007-01-31  Havoc Pennington  <hp@redhat.com>
179
180         * bus/dbus-daemon.1.in: write a section in the man page on running
181         a test daemon for debugging purposes
182
183 2007-01-26  Havoc Pennington  <hp@redhat.com>
184
185         * bus/session.conf.in: override all the default limits with much
186         higher limits on the session bus, there is no reason the session
187         bus should have low limits
188
189         * bus/config-parser.c (bus_config_parser_new): increase default
190         limits so they are less likely to be hit; in particular the max
191         replies per connection was way too low
192
193 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
194
195         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
196         a pointer to the tutorial maintained as part of dbus-python
197
198 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
199
200         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
201         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
202         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
203
204 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
205
206         * tools/dbus-monitor.c: gettimeofday() is not available 
207         on windows so we have to provide our own. It's taken from 
208         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
209
210 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
211
212         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
213         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
214         is in dbus-sysdeps-win.c (not in this patch).
215
216         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
217         with InterlockedInc/Decrement. 
218         - Patches from Christian Ehrlicher
219         
220 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
221
222         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
223
224 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
225
226         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
227         fix mispaced const statement. - Patch from Peter Kümmel
228
229 2006-12-19  Ray Strode  <rstrode@redhat.com>
230
231         * bus/bus.c (process_config_every_time):
232         don't overwrite existing bus context activation object
233         until after we've checked that the new activation is
234         valid.
235
236         * bus/main.c 
237         (signal_handler), (handle_reload_watch):
238         don't call exit() on failure, instead make do and keep
239         going.
240         (close_reload_pipe): new function to turn off
241         hangup-causes-config-reload behavior if an unexpected
242         error occurs
243
244 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
245
246         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
247         correctness fix. - Patch from Christian Ehrlicher
248
249 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
250
251         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
252         we should also use it. - Patch from Christian Ehrlicher
253
254 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
255   
256         * dbus-sysdeps-util.c: added win32 related tests
257
258 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
259
260         * dbus/dbus-string.c (_dbus_string_pop_line),
261         bus/desktop-file.c (parse_section_start,
262         parse_comment_or_blank,parse_key_value,): uses
263         _dbus_string_find_eol() to support platform independent eol style.
264
265 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
266
267         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
268         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
269               _dbus_string_find_eol().
270         Approved by: Havoc Pennington.
271
272 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
273
274         * configure.in: Added switch to disable user_database caching.
275
276         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
277         be able disable user_dabase caching.
278
279 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
280
281         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
282         struct. It is unnecessary we have a global one already. Also remove 
283         bus_context_get_user_database function, it is no longer needed.
284         Flush the global database on reload.
285
286         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
287         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
288
289         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
290         Add _dbus_user_database_flush_system. 
291         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
292         Small unrelated change in _dbus_is_a_number: change 
293         _dbus_string_parse_int to _dbus_string_parse_uint. 
294
295         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
296         _dbus_groups_from_uid.
297
298         * bus/policy.c, bus/policy.h: Change call to 
299         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
300         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
301         needs it.
302
303 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
304
305         * bus/signal.c: Fix match_rule_equal errata
306         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
307         <kimmo.hamalainen@nokia.com>)
308
309 2006-11-19  Thiago Macieira  <thiago@kde.org>
310
311         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
312         _dbus_pthread_condvar_wait,
313         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
314         pthread_self() after coming back from a conditional variable
315         wait as well as in one codepath where it was forgotten.
316         Approved by: Havoc Pennington.
317
318 2006-11-17  Havoc Pennington  <hp@redhat.com>
319
320         * update-dbus-docs.sh: allow setting fd.org username via env
321         variable. Make it run autogen with --enable-xml-docs=yes
322         --enable-doxygen-docs=yes so configure will fail if the required
323         tools are missing.
324
325 2006-11-17  Havoc Pennington  <hp@redhat.com>
326
327         * doc/dbus-faq.xml: minor FAQ tweaks
328
329 2006-11-14  Havoc Pennington  <hp@redhat.com>
330         
331         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
332         dbus_get_local_machine_id() to its own file, no substantive
333         changes. There are a couple other things we might want to add that
334         are "misc" so moving out of dbus-connection.[hc] which is big
335         enough already.
336         
337 2006-11-14  Havoc Pennington  <hp@redhat.com>
338
339         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
340         UUID had the timestamp last, but the implementation had it first;
341         move it to last since I think it's a tiny bit nicer (easier to
342         compare at a glance, faster to sort, less code), and will not
343         cause any practical compatibility problems. Also, always convert
344         the timestamp to big endian.
345
346         * doc/dbus-specification.xml: Clean up the docs on the UUID.
347
348         * tools/dbus-uuidgen.1: more prominently say it is not suitable
349         as a replacement for regular uuidgen/RFC4122.
350
351 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
352
353         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
354         the correct value so we don't assert when initalizing recursive threads
355
356         * test/name-test/test-thread-init.c: call dbus_threads_init_default
357         instead of _dbus_threads_init_debug since it is more of a real world
358         test
359
360 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
361
362         * Released 1.0.0
363
364 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
365
366         * AUTHORS: added Peter and Tor of windows porting fame
367
368 2006-11-08  Havoc Pennington  <hp@redhat.com>
369
370         * doc/dbus-specification.xml: add a note about protocol stability
371
372         * doc/TODO: Remove "important for 1.0" section, replace with
373         "important for 1.2" section
374         
375 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
376
377         * README: remove some of the out of date flags
378
379         * doc/TODO: Remove todo items which are done
380
381 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
382
383         * tools/dbus-monitor.c: Handle sigint so we flush stdout
384         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
385
386 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
387
388         * tools/dbus-monitor.1: update the manpage for dbus-monitor
389         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
390
391 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
392
393         * AUTHORS: Update with all people listed in the ChangeLog
394
395 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
396
397         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
398         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
399
400 2006-11-07  Havoc Pennington  <hp@redhat.com>
401
402         * HACKING: Update release instructions to include stuff about
403         stable releases, branching, etc. May not be totally correct,
404         please fix if needed, but keep instructions up-to-date so we do
405         each stable release consistently in the future.
406
407 2006-11-07  Havoc Pennington  <hp@redhat.com>
408
409         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
410         documentation updates. Bump faq/spec versions (not to 1.0; I don't
411         think the spec will be "finished"/1.0 when we ship the 1.0 library).
412
413 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
414
415         * bus/bus.c: Missed patch - pass in the context to the directory watch
416
417 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
418
419         * Released D-Bus 1.0 RC 3(0.95)
420
421 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
422
423         * bus/activation.c (bus_activation_new): don't fail if we can not read
424         the directory as it may not exist
425
426 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
427
428         * bus/config-parser.c (service_dirs_find_dir): use 
429         _dbus_list_get_next_link so we don't get stuck in an infinite loop
430         (start_busconfig_child): move processing of standard_session_servicedirs
431         tags here because they have no content
432         (bus_config_parser_content): check we don't have content in 
433         standard_session_servicedirs tag
434
435 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
436
437         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
438         Packagers need to own this directory
439
440 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
441
442         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
443         <standard_session_servicedirs> tag with a <sevicedir> tag that
444         points to the test service directory
445
446 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
447
448         * configure.in: Add a check for DIR *dirp->dd_fd
449
450         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
451         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
452         of both Solaris and Irix
453
454 2006-11-01  Havoc Pennington  <hp@redhat.com>
455
456         * bus/dbus-daemon.1.in: document standard_session_servicedirs
457
458 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
459
460         * configure.in: expose DBUS_DATADIR
461         
462         * bus/config-parser.c: add the standard_session_servicedirs element
463         to the parser
464         (bus_config_parser_content): process the standard_session_servicedirs
465         element by getting the standard directories from sysdeps and merging
466         them into the service directory list
467         (test_default_session_servicedirs): make sure we get what we expect
468
469         * bus/session.conf.in: replace the servicedir tag with the 
470         standard_session_servicedirs tag
471
472         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
473         dbus-sysdeps.h to avoid circular header dependencies
474
475         * dbus/dbus-sysdeps.h: add the typedef of DBusList
476
477         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
478         which takes a string of directories delimited by colons, parses them 
479         out, appends a suffix and puts them in a list ignoring empty elements
480         (_dbus_get_standard_session_servicedirs): returns the standard 
481         directories for a session bus to look for service activation files
482         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
483         DBUS_DATADIR directories
484
485         * test/data/valid-config-files/many-rules.conf: add the 
486         standard_session_servicedirs tag to the valid config file tests
487
488 2006-10-30  Havoc Pennington  <hp@redhat.com>
489
490         * tools/dbus-launch.1, doc/TODO: capture intent to change the
491         command line options of dbus-launch a bit post 1.0
492
493 2006-10-27  Havoc Pennington  <hp@redhat.com>
494         
495         * dbus/dbus-connection.c (dbus_connection_open_private): document
496         how to choose shared vs. private connections
497
498 2006-10-27  Havoc Pennington  <hp@redhat.com>
499
500         * dbus/dbus-test.c: enclose more of the file in the
501         DBUS_BUILD_TESTS check.
502
503         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
504         DBUS_DISABLE_ASSERT case.
505
506         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
507         that it only works on the server side
508
509         * dbus/dbus-bus.c: add a global lock covering the BusData we
510         attach to each connection
511         (internal_bus_get): lock our access to the BusData
512         (dbus_bus_register): lock the entire registration process
513         with _DBUS_LOCK(bus_datas). If we get the lock and 
514         registration is already complete, silently return (vs. previous
515         behavior of aborting).
516         (dbus_bus_set_unique_name): lock the BusData
517         (dbus_bus_get_unique_name): lock the BusData
518
519 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
520
521         * bus/config-parser.c (service_dirs_find_dir, 
522         service_dirs_append_unique_or_free, 
523         service_dirs_append_link_unique_or_free): New static methods
524         for only appending unique service directory names into
525         the service directory list
526         (merge_included, bus_config_parser_content): Only add unique
527         service directory names into the list
528
529 2006-10-27  Havoc Pennington  <hp@redhat.com>
530
531         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
532         variables volatile, suggested by Thiago. Document struct fields.
533         (PTHREAD_CHECK): remove pthread error checking if assertions are
534         disabled, should reduce the no-assertions case to the bare
535         minimum code.
536
537 2006-10-26  Havoc Pennington  <hp@redhat.com>
538         
539         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
540         to be recursive
541         (_dbus_pthread_mutex_unlock): make it recursive
542         (_dbus_pthread_condvar_wait): save/restore the recursion count
543         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
544
545 2006-10-26  Havoc Pennington  <hp@redhat.com>
546
547         * doc/dbus-specification.xml: clarify the UUID text slightly
548
549         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
550         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
551         in preparation for being able to extend them for e.g. recursive
552         mutexes.
553
554 2006-10-26  Havoc Pennington  <hp@redhat.com>
555
556         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
557         condition variables relate to recursive mutexes.
558         
559         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
560         dbus/dbus-threads.c: Split the platforms-specific thread 
561         implementations into their own files.
562         
563         * dbus/dbus-sysdeps-pthread.c
564         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
565         was backward. Not that anything uses it.
566
567 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
568
569         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
570         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
571         needs to be cleaned up more.
572
573         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
574         up the CREDS issue.
575
576 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
577
578         * configure.in, dbus-1.pc.in: Check to see if thread methods 
579         are in glibc or libpthread and add -lpthread to the link stage 
580         if it is the latter
581
582 2006-10-26  Thiago Macieira  <thiago@kde.org>
583
584         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
585         bug 8780: the connection lock is only required while recording
586         the shared connection, so protect only that code
587         section. Don't require connection_lookup_shared to return a
588         locked connection.
589
590 2006-10-26  Thiago Macieira  <thiago@kde.org>
591
592         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
593         check if get_machine_uuid() returns NULL before proceeding any
594         further: we can't init the X atoms or create a session file
595         name if there is no machine ID.
596         This solves a crash reported by some users if
597         --exit-with-session was used without --autolaunch=<machine-id>
598
599 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
600
601         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
602         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
603
604         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
605         before we run dbus-launch
606
607         * configure.in: define TEST_BUS_BINARY to be the full path to 
608         dbus-daemon in the build root 
609
610 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
611
612         * dbus/Makefile.am:
613         * tools/Makefile.am:
614         * toos/dbus-uuidgen.1:
615                 Move the machine-id file to /var/lib/dbus 
616
617 2006-10-24  David Zeuthen  <davidz@redhat.com>
618
619         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
620         _dbus_assert (thread_init_generation != _dbus_current_generation)
621         not _dbus_assert (thread_init_generation == _dbus_current_generation)
622
623 2006-10-24  Thiago Macieira  <thiago@kde.org>
624
625         * dbus/dbus-sysdeps.h:
626         * dbus/dbus-sysdeps-unix.c: Add function
627         _dbus_make_file_world_readable that chmods a file to 0644.
628
629         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
630         Avoid writing to the static "argv" array, thereby avoiding a
631         COW on the child process.
632
633         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
634         call _dbus_make_file_world_readable on the created file.
635
636 2006-10-23  David Zeuthen  <davidz@redhat.com>
637
638         * dbus/dbus-memory.c: Use atomic variable to protect
639         n_blocks_outstanding otherwise OOM will be reported using SMP on
640         some arches
641         
642         * bus/dispatch.c: Add missing end of line characters
643
644         * bus/desktop-file.c (parse_section_start, parse_key_value) 
645         (bus_desktop_file_load): Propertly handle OOM
646
647         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
648         thread_init_generation equals _dbus_current_generation, not 0
649
650 2006-10-22  Havoc Pennington  <hp@redhat.com>
651
652         * dbus/dbus-connection-internal.h: move prototype of
653         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
654         it isn't in a public header and doesn't end up in the DBusBus
655         group in Doxygen
656
657 2006-10-21  Havoc Pennington  <hp@redhat.com>
658
659         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
660         the tarball if packagers want to run it
661
662         * cleanup-man-pages.sh: Add a script which munges all the internal
663         API man pages out of the Doxygen output. This reduces the size of
664         the installed man pages from 7 to 2 megs, and avoids
665         namespace-polluting pages. Right now (like Doxygen) this script
666         isn't in the build, it's something packagers can do manually.
667
668 2006-10-21  Havoc Pennington  <hp@redhat.com>
669
670         * dbus/dbus-connection.h: don't include the watch/timeout
671         functions in connection section
672
673 2006-10-21  Havoc Pennington  <hp@redhat.com>
674
675         * Documentation! Whee! Doxygen now 100% silent. If you make it
676         angry again, you will be punished.
677         
678 2006-10-21  Havoc Pennington  <hp@redhat.com>
679
680         * More documentation - all public API now documented according to
681         Doxygen
682
683 2006-10-21  Havoc Pennington  <hp@redhat.com>
684
685         * Document a bunch of undocumented stuff
686         
687 2006-10-21  Havoc Pennington  <hp@redhat.com>
688
689         * Clean up Doxygen group markers for public API so Doxygen finds
690         everything (not comprehensively fixed for private API).
691         Means all remaining Doxygen warnings are just about missing docs
692         and thus pretty simple to resolve.
693         
694 2006-10-21  Havoc Pennington  <hp@redhat.com>
695         
696         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
697
698         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
699         as DBUS_GNUC_DEPRECATED
700
701 2006-10-21  Havoc Pennington  <hp@redhat.com>
702
703         * Move all private API into the private Doxygen group sections of
704         the files, so they don't show up in the public API docs
705         
706 2006-10-21  Havoc Pennington  <hp@redhat.com>
707
708         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
709         dbus_message_iter_get_array_len().
710
711         * throughout: documentation improvements.
712
713 2006-10-20  Havoc Pennington  <hp@redhat.com>
714
715         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
716         matter, and the message-loader-breaker thing since nobody is going
717         to do it.  Add an item to 1.0 about supporting recursive locks
718         in dbus_threads_init_default() though, since it should be easy.
719
720         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
721         Fix this in the !dispatch case to avoid busy-looping after
722         disconnection
723
724         * More misc docs improvements
725
726 2006-10-19  Havoc Pennington  <hp@redhat.com>
727
728         * more Doxygen-related fixes (lots of moving things from the
729         public to internal section in dbus-connection.c)
730
731 2006-10-19  Havoc Pennington  <hp@redhat.com>
732
733         * Fix a pile of Doxygen warnings and missing docs
734
735 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
736
737         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
738         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
739         instead of a void *.  kqueue uses this to get the context's loop
740         while the other modules ignore the parameter.  This allows us to
741         avoid platform conditionals
742
743         * bus/bus.c (process_config_postinit): Pass in the context to the 
744         watch
745
746 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
747
748         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
749         when starting the system bus
750
751 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
752
753         * configure.in: More fixups for cross compile (Patch from 
754         Marco Pracucci <development at pracucci dot com>)
755
756 2006-10-17  Havoc Pennington  <hp@redhat.com>
757
758         * tools/dbus-send.c (main): don't close shared connection, fix
759         from Timo Hoenig
760
761 2006-10-17  Havoc Pennington  <hp@redhat.com>
762
763         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
764
765         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
766         since realistically it doesn't look like we'll be changing it
767         anymore.
768
769 2006-10-17  Havoc Pennington  <hp@redhat.com>
770
771         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
772         be used for return_if_fail type warnings; prefixes the pid, and
773         fatal by default.
774
775 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
776
777         * configure.in: Released 1.0 RC 2(0.94)
778         Add check for -fPIC and enable it if available
779
780 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
781
782         * doc/TODO: Remove the check TODO item
783
784 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
785
786         * dbus-transport-socket.c (exchange_credentials):
787         Print out more detailed errors if reading or sending
788         credentials fail (Patch from Julio M. Merino Vidal 
789         <jmmv at NetBSD dot org>)
790
791 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
792
793         * configure.in: when checking for posix getpwnam_r assume true
794         for cross compiles
795
796 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
797
798         * configure.in: Check for gethostbyname first before we check for it
799         in libnsl.  On gnu systems it is implemeneted 
800
801 2006-10-13  Havoc Pennington  <hp@redhat.com>
802
803         * dbus/dbus-connection.c
804         (dbus_connection_send_with_reply_and_block): fix to handle closed
805         connections, from Tambet Ingo bug #8631
806
807 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
808
809         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
810
811 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
812
813         * test/name-test/Makefile.am: don't link against both libdbus and
814         libdbus-convenience
815
816 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
817
818         * configure.in: check for dirfd even if it is a macro
819         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
820
821 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
822
823         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
824         avoid using dirfd on systems that don't have dirfd 
825         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
826
827 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
828
829         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
830         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
831
832         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
833         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
834         macro because _dbus_abort calls it
835
836         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
837         works
838
839 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
840
841         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
842         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
843
844 2006-10-02  Thiago Macieira  <thiago@kde.org>
845
846         * tools/dbus-launch.c (main): make it complain and abort
847         execution in case an unknown option is given. Also, process
848         the '--' argument as the end of arguments.
849
850 2006-10-01  Havoc Pennington  <hp@redhat.com>
851
852         * tools/dbus-launch.c (print_variables): if no syntax is given,
853         don't print something that's sort-of-half-sh-syntax, just print
854         a plain key-value pairs thing.
855
856         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
857         the local machine representation (but still have the hostname in
858         the display). Remove the hostname from the display if it is
859         localhost. Change session files to be named
860         ~/.dbus/session-bus/machine-display. Change X atoms to be
861         underscore-prefixed so nobody whines about ICCCM compliance.
862         Otherwise name them the same as the env variables.
863         Change session file format to include key-value pairs and an
864         explanatory comment. Keys are the same as the env variables.
865         (set_address_in_x11): X property format can't depend on
866         sizeof(pid_t) on a particular machine, fix to always be 32 bits
867
868         * tools/dbus-launch.c: make --autolaunch take a machine id
869         argument. If --autolaunch is used with a program to run, complain
870         for now (but add a FIXME). Also, don't look for existing bus if 
871         there's a program to run (but add a FIXME).
872
873         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
874         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
875         just to get this, and avoids duplicating uuid-reading code).
876
877         * tools/dbus-launch.1: clarify various things
878         
879 2006-10-01  Havoc Pennington  <hp@redhat.com>
880
881         * test/test-service.c (path_message_func): remove broken extra
882         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
883
884         * test/test-shell-service.c (path_message_func): same fix
885         
886         * dbus/dbus-connection.c
887         (_dbus_connection_get_dispatch_status_unlocked): break up the
888         function a little for clarity and fix the notification of
889         dbus-bus.c to not require dispatch to be complete
890
891         * dbus/dbus-connection.c (dbus_connection_unref): improve the
892         warning when you try to finalize an open connection.
893         
894 2006-10-01  Havoc Pennington  <hp@redhat.com>
895
896         * dbus/dbus-bus.c
897         (internal_bus_get): only weak ref the connection; this means 
898         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
899         called safely in any context
900         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
901         unref
902
903         * dbus/dbus-connection.c
904         (_dbus_connection_get_dispatch_status_unlocked): move
905         _dbus_bus_notify_shared_connection_disconnected_unlocked here
906         when queuing Disconnected instead of when the Disconnected message
907         arrives, so dbus_bus_get() won't return closed connections.
908         
909 2006-10-01  Havoc Pennington  <hp@redhat.com>
910
911         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
912         Add a hack to make DBusNewConnectionFunction work right.
913
914         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
915         the hack here. Also, fix the todo about refcount leak.
916         
917         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
918         and use the hack here
919         
920         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
921         "shareable" flag; this was completely broken, since it meant 
922         dbus_connection_open() returned a connection of unknown
923         shared-ness. Now, we always hold a ref on anything opened 
924         as shareable.
925
926         Move the call to notify dbus-bus.c into
927         connection_forget_shared_unlocked, so libdbus consistently forgets
928         all its knowledge of a connection at once. This exposed numerous
929         places where things were totally broken if we dropped a ref inside
930         get_dispatch_status_unlocked where
931         connection_forget_shared_unlocked was previously, so move
932         connection_forget_shared_unlocked into
933         _dbus_connection_update_dispatch_status_and_unlock. Also move the
934         exit_on_disconnect here.
935
936         (shared_connections_shutdown): this assumed weak refs to the
937         shared connections; since we have strong refs now, the assertion 
938         was failing and stuff was left in the hash. Fix it to close
939         still-open shared connections.
940         
941         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
942         debug pipe connections
943         
944         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
945         dbus-bus.c if the closed connection is in fact shared
946         (_dbus_connection_close_possibly_shared): rename from 
947         _dbus_connection_close_internal
948         (dbus_connection_close, dbus_connection_open,
949         dbus_connection_open_private): Improve docs to explain the deal
950         with when you should close or unref or both
951
952         * dbus/dbus-bus.c
953         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
954         from _dbus_bus_check_connection_and_unref_unlocked and modify to
955         loop over all connections
956
957         * test/test-utils.c (test_connection_shutdown): don't try to close
958         shared connections.
959
960         * test/name-test/test-threads-init.c (main): fix warnings in here
961
962         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
963         env variable to cause blocking waiting for gdb; drop
964         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
965         unconditionally.
966
967         * configure.in: add -export-dynamic to libtool flags if assertions enabled
968         so _dbus_print_backtrace works.
969
970         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
971         instead of _dbus_verbose to print the backtrace, and diagnose lack 
972         of -rdynamic/-export-dynamic
973         
974 2006-09-30  Havoc Pennington  <hp@redhat.com>
975
976         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
977         (internal_bus_get): fix screwy code formatting. whoever committed
978         that was not paying attention!
979
980 2006-09-30  Havoc Pennington  <hp@redhat.com>
981
982         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
983         reflect addition of interfaces.
984
985         * doc/dbus-specification.xml: describe a new
986         org.freedesktop.DBus.Peer.GetMachineId method
987
988         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
989         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
990         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
991         at end of skip_white
992         (_dbus_string_chop_white): new function
993
994         * bus/connection.c (bus_connections_setup_connection): call
995         dbus_connection_set_route_peer_messages.
996
997         * dbus/dbus-connection.c
998         (_dbus_connection_peer_filter_unlocked_no_update): modify to
999         support a GetMachineId method.
1000
1001         Also, support a new flag to let the bus pass peer methods through
1002         to apps on the bus, which can be set with
1003         dbus_connection_set_route_peer_messages.
1004
1005         Finally, handle and return an error for anything unknown on the
1006         Peer interface, which will allow us to extend the Peer interface
1007         in the future without fear that we're now intercepting something
1008         apps were wanting to see.
1009         
1010         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1011         dbus/dbus-uuidgen.c
1012
1013         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1014         binary here, since most of the code is already in libdbus
1015
1016         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1017         uuid from the system config file
1018
1019         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1020         (_dbus_read_uuid_file_without_creating) 
1021         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1022         uuid-related functions, partly factored out from dbus-server.c
1023
1024         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1025         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1026
1027         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1028
1029         * tools/dbus-cleanup-sockets.1: explain what the point of this
1030         thing is a bit more
1031
1032         * autogen.sh (run_configure): add --config-cache to default
1033         configure args
1034
1035         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1036         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1037
1038         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1039         don't try to save address, fixes crash in make check
1040         
1041 2006-09-30  Thiago Macieira  <thiago@kde.org>
1042
1043         * configure.in: add DBUS_BINDIR as a #define to C source code.
1044
1045         * tools/dbus-launch.c
1046         * tools/dbus-launch.h
1047         * tools/dbus-launch-x11.c:
1048         * tools/dbus-launch.1: Add the --autolaunch option to
1049         dbus-launch, which makes it scan for an existing session
1050         started with --autolaunch. With that option, it also creates
1051         an X11 window and saves the bus address and PID to it.
1052
1053         * dbus/dbus-sysdeps.h:
1054         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1055         a function that runs "dbus-launch --autolaunch" to retrieve
1056         the running D-Bus session address (or start one if none was running)
1057
1058         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1059         address protocol, which tries to get the running session from
1060         dbus-launch.
1061
1062         * dbus/dbus-bus.c:
1063         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1064         D-Bus session bus address.
1065
1066         * dbus/dbus-connection.c: Fix horrible typo in error message.
1067
1068 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1069
1070         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1071
1072 2006-09-17  Havoc Pennington  <hp@redhat.com>
1073
1074         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1075         fix so that if unix_user_function is set on windows, we still
1076         do the default check that the auth identity matches the bus identity
1077
1078 2006-09-16  Havoc Pennington  <hp@redhat.com>
1079
1080         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1081         to _dbus_transport_open_platform_specific,
1082         _dbus_transport_open_socket,
1083         and _dbus_transport_open_debug_pipe
1084
1085         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1086
1087 2006-09-16  Havoc Pennington  <hp@redhat.com>
1088
1089         Attempt auditing public API to remove all cases where a Unix
1090         function returns weird emulated goo to Windows. This probably 
1091         breaks the bus daemon on Windows, to fix it again we may 
1092         need to stop processing unix-specific config options on Windows,
1093         and may need to add Windows-specific public API or config options.
1094         
1095         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1096         to reflect added interfaces; should not break soname.
1097         
1098         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1099         not invoke unix user function on Windows. Kind of a hacky fix, but 
1100         we don't want a "unix uid" leaking out on Windows.
1101
1102         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1103         to get the socket fd on Windows or UNIX
1104         (dbus_connection_get_unix_fd): make this always fail on Windows
1105
1106 2006-09-16  Havoc Pennington  <hp@redhat.com>
1107
1108         * dbus/dbus-server.c (dbus_server_listen): change how this works
1109         to be able to delegate to a set of handlers that can succeed,
1110         fail, or choose not to handle. Allows us to have 
1111         dbus_server_listen_platform_specific.
1112
1113         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1114         factor out the tcp socket stuff to be used on windows, leaving
1115         unix domain socket only in dbus-socket-unix.c
1116
1117         * dbus/dbus-transport-socket.c
1118         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1119         stuff to be used on windows, leaving unix domain socket only 
1120         in dbus-transport-unix.c
1121
1122         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1123         temporary hack to be sure this fails on windows
1124         (dbus_connection_get_unix_process_id): ditto
1125
1126 2006-09-16  Havoc Pennington  <hp@redhat.com>
1127
1128         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1129         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1130         _dbus_open_socket so the domain/type/protocol from system headers
1131         are not required. This is kind of pointless though unless we move
1132         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1133         sysdeps-unix.c, which would mean adding a wrapper around
1134         bind/listen/etc.
1135         Also, add DBusError to the socket-opening functions so they 
1136         don't require use of errno.
1137
1138 2006-09-16  Havoc Pennington  <hp@redhat.com>
1139
1140         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1141         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1142
1143         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1144         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1145         functions specifically for sockets only, and move generic 
1146         read/write/open/close into unix-specific code.
1147
1148 2006-09-14  Havoc Pennington  <hp@redhat.com>
1149
1150         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1151         complaint about accessing revents when poll returns 0, from Julian Seward.
1152
1153 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1154
1155         * Released 1.0 RC 1 (0.93) 
1156
1157 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1160         use _dbus_close instead of close
1161
1162 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1163
1164         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1165         credentials.  Fixes "external" authentication under e.g. NetBSD
1166         which does not support any other socket credentials mechanism.
1167         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1168
1169 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1170
1171         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1172         dbus_threads_init and be used by the dbus mutex functions to
1173         avoid deadlocks.
1174
1175         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1176
1177 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1178
1179         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1180         use threadsafe readdir_r instead of readdir
1181
1182 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1183
1184         * dbus-threads.c (dbus_threads_init_default): New method for
1185         initializing the internal thread implementation (Patch from
1186         Alexander Larsson <alexl at redhat dot com>)
1187
1188 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1189
1190         * remove a bunch of todo items from the 1.0 list
1191
1192 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1195         key not found
1196
1197 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1198
1199         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1200         complex debugging code
1201
1202         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1203         between the test suite ifdefs
1204         (_dbus_verbose_bytes): return if verbosity is not enabled 
1205
1206 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1207
1208         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1209         remove DBusMark
1210
1211 2006-09-10  Havoc Pennington  <hp@redhat.com>
1212
1213        patch mostly by Peter Kümmel, bug #8211
1214         
1215         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1216         unix-specific stuff in dbus-sysdeps.c
1217
1218         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1219         and move unix-specific stuff to dbus-sysdeps-unix.c
1220
1221         * configure.in: check HAVE_ERRNO_H
1222         
1223 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1224
1225         * bus/test-main.c (main): Initialize threading during tests
1226
1227         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1228         Unlock connection on error
1229         (generate_local_error_message): static method for generating
1230         an error message when we don't have a message to reply to
1231         (_dbus_connection_block_pending_call): Send a disconnect error
1232         instead of just a timeout (NULL) when the bus gets disconnected
1233         while blocking for a reply.
1234         
1235 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1236
1237         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1238         filters (Patch from Kimmo Hämäläinen 
1239         <kimmo dot hamalainen at nokia dot com>)
1240
1241 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1242
1243         * dbus/dbus-connection-internal.h: Add prototype for 
1244         _dbus_connection_test_get_locks to remove warning
1245
1246 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1247
1248         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1249         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1250         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1251
1252 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * Clean up close calls to use _dbus_close (Patch from 
1255         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1256
1257 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1258
1259         * doc/TODO:
1260         - Remove pending call locking todo item
1261         - dbus_connection_open now holds hard ref.  Remove todo item
1262         - do proper locking on _dbus_bus_check_connection_and_unref
1263           and handle DBUS_BUS_STARTER. Remove todo item
1264         - Warn on closing of a shared connection.  Remove todo item
1265
1266         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1267         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1268         so we don't get the warning when closing shared connections
1269
1270         * test/test-service.c, test/test-shell-service.c: Applications
1271         don't close shared connections themselves so we unref instead of
1272         close
1273
1274         * test/test-utils.c (test_connection_shutdown): Close the connection
1275
1276         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1277         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1278         method on a locked connection.  
1279         Make sure we call _dbus_connection_unref_unlocked instead of 
1280         dbus_connection_unref also.
1281         Handle DBUS_BUS_STARTER correctly
1282
1283         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1284         Mark as shared and hard ref the connection
1285         (connection_forget_shared_unlocked): Remove the hard ref from the 
1286         connection
1287         (_dbus_connection_close_internal_and_unlock):  New internal function
1288         which takes a locked connection and unlocks it after closing it
1289         (_dbus_connection_close_internal): New internal function which acts
1290         like the origonal dbus_connection_close method by grabbing a connection
1291         lock and calling _dbus_connection_close_internal_and_unlock
1292         (dbus_connection_close): Public close method, warns when the app
1293         trys to close a shared connection
1294
1295 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1296
1297         * bus/driver.c:
1298         (bus_driver_generate_introspect_string): New method for populating
1299         a DBusString with the introspect data
1300         (bus_driver_handle_introspect): Move introspect generation code to 
1301         bus_driver_generate_introspect_string
1302
1303         * bus/main.c:
1304         (introspect): New function which prints out the intropect data and
1305         exits
1306         (main): Add a --introspect switch
1307
1308 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * doc/TODO: Removed dtd publishing item.  
1311         It seems the dtd has already been added at
1312         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1313
1314 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1315
1316         * doc/TODO, various source files: Audited todo's and FIXME's and
1317         prepended the ones we should be looking at with 1.0.  Those
1318         prepended with 1.0? need clerification or might not be needed
1319         for 1.0
1320
1321 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1324         NULL in the public API (Patch from Kimmo Hämäläinen 
1325         <kimmo dot hamalainen at nokia dot com>)
1326
1327 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * configure.in: Fix for OS-X compile time endian issues (patch from
1330         Benjamin Reed <ranger at befunk dot com>)
1331
1332 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1333
1334         * configure.in: Check for no-common compiler flag (OS-X fix from
1335         Benjamin Reed <ranger at befunk dot com>)
1336
1337 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1338
1339         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1340         <fcrozat at mandriva dot com>)
1341
1342 2006-08-29  Havoc Pennington  <hp@redhat.com>
1343
1344         * test/test-service.c (path_message_func): fix lack of return value
1345
1346         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1347         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1348         any more sense than on anything else in this file.
1349         (_dbus_get_tmpdir): add const to return value, and keep the
1350         results of the various getenv around in a static variable.
1351
1352 2006-08-29  Havoc Pennington  <hp@redhat.com>
1353
1354         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1355         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1356
1357 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1358
1359         * test/Makefile.am: change find to use syntax that works with non
1360         gnu versions of find
1361
1362 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1363
1364         * dbus/dbus-transport.c: fix invalid deref when checking if
1365         a vtable method exists (Patch from Christian Ehrlicher 
1366         <ch dot ehrlicher at gmx dot de>)
1367
1368 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1369
1370         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1371         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1372         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1373         <bernard at brenda-arkle dot demon dot co dot uk>)
1374
1375 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1378         default case
1379
1380 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1381
1382         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1383         it works on any system providing this interface, not only FreeBSD.
1384         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1385
1386 2006-08-20  Havoc Pennington  <hp@redhat.com>
1387
1388         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1389         the docs
1390
1391 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * Released 0.92 
1394
1395 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1396
1397         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1398         to reflect the init late change
1399
1400         * bus/bus.c (bus_context_new): Check user before we fork so we can
1401         print out an error message a user will be able to see
1402
1403 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1404
1405         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1406
1407         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1408         Add two more global locks for use on windows platforms.  These are
1409         unused on non-windows platforms but are not ifdefed out to avoid
1410         potential bugs (i.e. the few bytes lost does not warrent the extra
1411         maintanence and complexity that having seperate sets of locks would
1412         cause)
1413
1414 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * bus/services.c (bus_registry_acquire_service): Return an error
1417         when an application tries to register the org.freedesktop.DBus Bus Name
1418
1419         * bus/services.c (bus_registry_release_service): Return an error
1420         when an application tries to release the org.freedesktop.DBus Bus Name
1421
1422 2006-08-17  Alp Toker  <alp@atoker.com>
1423
1424         * doc/dbus-specification.xml: Fix some minor typos.
1425
1426 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1427
1428         * configure.in: use $with_init_scripts instead of $operating_system
1429         to determine where to store the pid since the init scripts manipulate 
1430         the pid file (patch from Marcelo Ricardo Leitner 
1431         <marcelo dot leitner at terra dot com dot br>.  
1432
1433 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1436         static DBusList *uninitialized_condvar_list to support new late 
1437         initialization threading model.  In this model threads can be initialized
1438         even after the D-Bus API has been used but still needs to be initialized 
1439         before the second thread has been started.  Mutexes and condvar addresses
1440         are stored in the two static lists and are replaced with actuall locks
1441         when threads are initalized.
1442         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1443         the location into the static list
1444         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1445         from the static list and freeing the mutex
1446         (_dbus_condvar_new_at_location): New method for creating a conditional 
1447         variable and placing the location into the static list
1448         (_dbus_condvar_free_at_location): New method for removing a conditional
1449         variable location from the static list and freeing the conditional variable 
1450         (init_uninitialized_locks): Atomic method which goes through the static 
1451         lists of mutex and condvar location and updates them with actuall locks
1452         (init_global_locks): changed to init_locks
1453         
1454         * dbus/dbus-connection.c:
1455         (_dbus_connection_test_get_locks): New method for tests to check connections
1456         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1457         condvar API
1458         (dbus_connection_allocate_data_slot): Pass in the global lock address
1459         to _dbus_data_slot_allocator_alloc
1460
1461         * dbus/dbus-dataslot.c:
1462         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1463         instead of the mutex itself
1464
1465         * dbus/dbus-message.c:
1466         (dbus_message_allocate_data_slot): Pass in the global lock address
1467         to _dbus_data_slot_allocator_alloc
1468
1469         * dbus/dbus-pending-call.c:
1470         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1471         to _dbus_data_slot_allocator_alloc
1472
1473         * dbus/dbus-server.c:
1474         (_dbus_server_init_base): Use the new at_location mutex API
1475         (dbus_server_allocate_data_slot): Pass in the global lock address
1476         to _dbus_data_slot_allocator_alloc
1477
1478         * test/name-test/test-threads-init.c: New test case for late thread
1479         initialization
1480
1481 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1484         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1485         causes compile problems when asserts are turned off
1486         Keeping _dbus_warn for printing out the message so even if
1487         asserts are turned off the user gets the messages that something is 
1488         wrong 
1489
1490 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1491
1492         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1493
1494         * bus/services.c (bus_service_list_queued_owners):
1495         Add a pointer cast to fix compiler warning
1496
1497         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1498         return a NULL instead of FALSE since the return type
1499         is not expecting a boolean
1500
1501         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1502         Remove unused variable
1503
1504         * dbus/dbus-marshal-recursive-util.c (node_new):
1505         return a NULL instead of FALSE since the return type
1506         is not expecting a boolean
1507
1508         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1509         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1510         because we are expecting a pointer not a boolean
1511
1512         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1513         add void as the parameter so some compilers
1514         don't complain
1515
1516         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1517           _dbus_transport_new_for_tcp_socket):
1518         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1519         because we are expecting a pointer not a boolean
1520
1521         * test/shell-test.c (test_command_line):
1522         cast the second argument to _dbus_list_append to avoid compiler
1523         warnings
1524
1525         * test/test-names.c (main): remove unused variable
1526
1527         * test/test-service.c (check_hello_from_self_reply):
1528         Initialize echo_message and echo_reply to NULL
1529         
1530         * test/test-shell-service.c (handle_echo):
1531         Remove unused variable and cast the third parameter passed to
1532         dbus_connection_get_object_path_data to avoid compiler warrnings
1533
1534         * test/name-test/test-names.c (clear_message_queue):
1535         Remove unused function
1536
1537         * test/name-test/test-pending-call-dispatch.c:
1538         Fix format string in printf
1539
1540
1541 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1542
1543         * dbus/dbus-bus.c:
1544         * test/name-test/test-names.c:
1545         Remove test method dbus_bus_connection_get_unique_name because 
1546         we already have public method dbus_bus_get_unique_name that 
1547         does the exact same thing
1548
1549 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1550
1551         * dbus/dbus-signature.c:
1552         fix typos in Julio's previous patch which cause make check to fail
1553
1554 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1557         In any case it was wrong since this is a test checking to see if
1558         address parsing is correct.  There was no need to get the true
1559         tmp directory.  
1560
1561 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1562
1563         * dbus/dbus-macros.h: Revert the addition of stddef.h
1564         as we should not be adding it to library headers 
1565
1566 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1567
1568         * dbus/dbus-signature.c:
1569         Fix the unit tests so that they work if assertions are not enabled.
1570         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1571
1572 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1573
1574         * tools/run-with-tmp-session-bus.sh:
1575         * test/name-test/run-test.sh:
1576         Remove bashisms (patch from Julio M. Merino Vidal
1577         <jmmv at NetBSD dot org>)
1578
1579 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1580
1581         * configure.in: add a version (>= 2.6.0) check for libxml2
1582
1583 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1584
1585         * configure.in: make sure the compiler supports -Wfloat-equal
1586         
1587         * bus/dir-watch-dnotify.c: move functional code after 
1588         variable declerations (C99 fix)  (patches from Jens Granseuer
1589         <jensgr at gmx dot net>
1590
1591 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1592
1593         * dbus/dbus-macros.h:
1594         add #include <stddef.h> so that Sun compilers don't complain about
1595         the defining NULL
1596
1597 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1598
1599         * dbus/dbus-sysdeps.c:
1600         * dbus/dbus-address.c:
1601         * bus/activation.c:
1602         * test/shell-test.c:
1603         don't hardcode tmp directory (patch from Dave Meikle 
1604         <dmk at davemeikle dot co dot uk>)
1605
1606 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1607
1608         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1609         Change an assert to a detailed warning and abort.  
1610         When allocator->lock != mutex it indicates that the user has failed
1611         to initalize threads before using the D-Bus library.  This warning
1612         helps the user identify the issue and fix their app.
1613
1614 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1615
1616         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1617         with cleanups of bugs found from Coverity reports:
1618
1619         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1620         close the file on error to avoid a leak
1621
1622         * bus/expirelist.c (bus_expire_list_test):
1623         Check for NULL on dbus_new0
1624
1625         * bus/activation.c (update_directory):
1626         remove dead code
1627
1628         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1629         Fix some leaks
1630
1631         * bus/bus.c (process_config_every_time):
1632         Fixed a leak
1633
1634         * bus/desktop-file.c (parse_key_value):
1635         Fixed leak
1636
1637         * bus/selinux.c (bus_selinux_id_table_insert):
1638         Fixed leak
1639
1640 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1641
1642         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1643         remove dead code
1644
1645 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1646
1647         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1648         #!/bin/bash
1649
1650 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * Doxyfile.in: fix the INPUT line so we can generate docs 
1653         when sourcedir != builddir (patch from Cygwin Ports maintainer
1654         <yselkowitz at users dot sourceforge dot net>
1655
1656 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1657
1658         * dbus/dbus-sysdeps.h:
1659         * dbus/dbus-sysdeps.c: 
1660         * dbus/dbus-string.c: 
1661         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1662         GLib's function which does the same thing
1663
1664         * configure.in:
1665         * bus/Makefile.am:
1666         * bus/dir-watch-default.c:
1667         * bus/dir-watch-dnotify.c:
1668         * bus/dir-watch-kqueue.c:
1669         Add kqueue directory watching for freebsd and split the directory
1670         watching code into seperate files per method/arch
1671         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1672
1673 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * configure.in:
1676         * tools/Makefile.am:
1677         * tools/dbus-launch.c:
1678         * bus/Makefile.am:
1679         allow --with-dbus-daemondir switch to be used to make the
1680         daemon install to a seperate bindir like /usr/libexec
1681         (patch from Brian Cameron <brian dot cameron at sun dot com)
1682
1683 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1684
1685         * bus/Makefile.am (install-data-hook): removed the slash after 
1686         $(DESTDIR) so we don't get the double slash which does not work
1687         in windows (patch from Andras Porjesz 
1688         <andras dot porjesz at siemens dot com>)
1689
1690 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1691
1692         * dbus/dbus-sysdeps.h:
1693         * dbus/dbus-sysdeps.c: 
1694           add _dbus_printf_length (patch from Peter Kümmel 
1695           <syntheticpp at gmx dot net>)
1696
1697 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1698
1699         * dbus/dbus-internals.c: unistd.h is not used 
1700         (_dbus_verbose_real): only enable verbose printing 
1701         if DBUS_VERBOSE environment var is set to '1'
1702         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1703
1704 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1707         so we still compile on older gcc (patch from Frederic Peters 
1708         <fpeters at 0d dot be>
1709
1710 2006-08-04  Havoc Pennington  <hp@redhat.com>
1711
1712         * configure.in: add -Wdeclaration-after-statement
1713
1714         * dbus/dbus-connection.c: change all the pending call stuff to
1715         reflect the fact that pending call operations use the connection
1716         lock
1717
1718         * dbus/dbus-pending-call.c: add locking here
1719
1720         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1721         field const consistent with how message field is done
1722
1723 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1724
1725         * s/D-BUS/D-Bus/g
1726
1727 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1728
1729         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1730         <in7y118 at public.uni-hamburg dot de> - fix invalid
1731         read/write reported by valgrind
1732
1733 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1734
1735         * Released 0.91
1736
1737 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1738
1739         * dbus/dbus-connection.c:
1740         (_dbus_connection_attach_pending_call_unlocked):
1741         (connection_timeout_and_complete_all_pending_calls_unlocked):
1742         Make sure we set timeout_added on pending calls to FALSE when
1743         we remove the timeout from the connection
1744
1745 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1746
1747         * Removed some extra bindings stuff lingering around (thanks timo)
1748         * dbus-pendingcall.c (_dbus_pending_call_new): 
1749         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1750         when we tried to take a lock on an already locked connection
1751
1752 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1753
1754         * Released 0.90
1755
1756 2006-07-17  Havoc Pennington  <hp@redhat.com>
1757
1758         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1759         ints, reported by Owen Taylor
1760
1761 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1762
1763         * doc/TODO:
1764         * dbus/dbus-bus.c:
1765         * dbus-errors.c:
1766         * dbus/dbus-marshal-validate.c:
1767           Removed TODO items which were fixed or are no longer relevent
1768
1769 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1770
1771         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1772         Remove stray files from the stripped bindings
1773
1774 2006-07-16  Havoc Pennington  <hp@redhat.com>
1775
1776         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1777         Improve the error message on reply timeout
1778
1779 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1780
1781         * Remove all bindings
1782
1783 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1784
1785         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1786         and set pending_reply out arg to NULL is connection is disconnected
1787         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1788         static method for cleaning up pending calls on disconnect
1789         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1790         calls queued timeouts on disconnect 
1791
1792          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1793         Remove 
1794
1795 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1796
1797         * bus/activation.[ch] (bus_activation_list_services): new function to 
1798         get the list of services that can be activated
1799
1800         * bus/dispatch.c: test coverage for the new bus method
1801         ListActivatableNames
1802
1803         * bus/driver.c: new bus method ListActivatableNames to get the list of
1804         services that can be activated
1805
1806         * doc/dbus-specification.xml: ListActivatableNames method documentation
1807
1808 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1809         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1810         source files
1811
1812 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1813         * dbus/dbus-message-factory.c:
1814         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1815
1816 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1817         * dbus/dbus-connection-internal.h:
1818         * dbus/dbus-connection.c:
1819         * file dbus/dbus-pending-call.c:
1820         * dbus/dbus-pending-call.h:
1821         Make DBusPendingCall an opaque type even to D-Bus internals
1822
1823 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1824
1825         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1826         connection_close
1827
1828         * dbus/dbus-connection.c: include dbus-bus.h
1829         (_dbus_connection_read_write_dispatch): make static
1830
1831 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1832
1833         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1834         function
1835         (dbus_connection_dispatch): On disconnect unref any shared connections
1836
1837         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1838         for cleaning up shared connections on disconnect
1839         (internal_bus_get): get a hard refrence to shared connections when
1840         they are created
1841         
1842         * doc/TODO: Remove items which are no longer relevent or have been fixed
1843         Split 1.0 todo items with a 0.90 freeze todo list
1844  
1845 2006-06-14  Ross Burton  <ross@openedhand.com>
1846
1847         * glib/dbus-gobject.c:
1848         Free a leaking GArray (surely not!) in dbus_g_method_return.
1849
1850 2006-06-14  Ross Burton  <ross@openedhand.com>
1851
1852         * tools/Makefile.am:
1853         * tools/dbus-monitor.c:
1854         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1855         Habacker).
1856         
1857 2006-06-14  Ross Burton  <ross@openedhand.com>
1858
1859         * tools/dbus-print-message.c:
1860         Also print the object path when outputting signals or method calls.
1861
1862 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1863
1864         * qt/src/Makefile.am: install the qdbus.h header.
1865         This allows people to actually use the installed code.
1866
1867 2006-06-12  Ross Burton  <ross@openedhand.com>
1868
1869         * glib/dbus-gproxy.c:
1870         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1871
1872 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1873
1874         * Released 0.62
1875
1876 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1877
1878         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1879         break pedantic builds. Closes bug 6043 (patch approved by
1880         Havoc back in February).
1881
1882 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1883
1884         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1885         that took a QDBusMessage parameter.
1886         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1887         * qt/tools/dbus.cpp: Don't use automatic call because we might
1888         be calling an async method: request a reply.
1889
1890 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1891
1892         * test/qt/*: Update the testcases, including testing the new
1893         functionality of sending null QByteArray and QString over the
1894         bus. Add new headertest test and restore the old
1895         qdbusxmlparser test.
1896
1897 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1898
1899         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1900         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1901
1902         * qt/examples/Makefile.am:
1903         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1904         form.
1905
1906         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1907         QByteArray() (nulls) over the bus.
1908         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1909         the one that has the signature suffix stripped.
1910         * qt/src/qdbusreply.h: Make some methods const.
1911
1912 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1913
1914         Patch from Timo Hoenig <thoenig@suse.de>.
1915
1916         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1917         required during build to EXTRA_DIST.
1918         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1919         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1920         * configure.in: Fix "make dist", take care that the Makefile for
1921         qt/dbus is being generated.
1922
1923 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1924
1925         * bus/bus.c: Fix eavesdropping on method calls
1926
1927 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1928
1929         * configure.in:
1930         * dbus/dbus-userdb-util.c:
1931         Add Solaris console owner patch from Artem Kachitchkine
1932
1933 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1934
1935         * qt/Makfile.am:
1936         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1937         reorganisation. Thanks to Timo Hoenig for pointing this out.
1938
1939 2006-06-06  Robert McQueen  <robot101@debian.org>
1940
1941         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1942           call to dbus_g_type_get_struct.
1943
1944 2006-06-06  Robert McQueen  <robot101@debian.org>
1945
1946         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1947           pointers were put into a GPtrArray-based specialised collection, and
1948           then freed along with the array. GValues which you add into
1949           collections or maps which have the NOCOPY flag set are assumed to not
1950           belong to the caller, so rather than the existing pointer-stealing
1951           semantics, they are copied instead. Given that the main consumers of
1952           this abstraction are the bindings themselves, I don't think this is
1953           too bad, but others should watch their choice of take vs set_static.
1954
1955 2006-06-06  Robert McQueen  <robot101@debian.org>
1956
1957         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1958           of g_slist_prepend not being used. Fixed copying of slist-based
1959           specialised collections, then wrote a test case and found that it was
1960           all broken. Went on to fix iterating and appending too. Good thing
1961           nobody uses this code yet.
1962
1963 2006-06-06  Robert McQueen  <robot101@debian.org>
1964
1965         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1966           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1967           are discarded without unsetting, so it makes no difference whether
1968           we take or set_static). Remove cases for G_TYPE_POINTER because
1969           there really is nothing useful we can do with them in our
1970           specialised types - we *need* boxed copy/free functions at the very
1971           least.
1972
1973 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1974
1975         * qt/dbus: Add directory. I had forgotten to add this
1976         yesterday after the move...
1977
1978         * qt/examples/Makefile.am:
1979         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1980
1981         * qt/tools/Makefile.am:
1982         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1983         Added feature to get and set properties.
1984         Added validation of service, object path and interface names.
1985
1986         * qt/tools/dbusidl2cpp.cpp: Two new features:
1987         1) Allow specifying both the header and the source file names,
1988         by separating them with a colon.
1989         2) Don't write an interface output if the -p switch wasn't
1990         given, but the -a was.
1991
1992         * qt/src/*: Fix usage of Iterators and ConstIterators.
1993         Fix shadowing of variables by other variables (-Wshadow).
1994         Fix keyword-cleanliness in headers.
1995         Fix ASCII-cast (QLatin1String, QLatin1Char).
1996         Fix validation of member names.
1997         Add extra checking of introspection data during XML parsing.
1998         Various bug fixes.
1999
2000 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2001
2002         * dbus/Makefile.am:
2003         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2004         qt/dbus/qdbus.h now.
2005
2006 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2007
2008         * configure.in: Make --disable-qt actually do
2009           something. Patch inspired by Zack Rusin.
2010
2011 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2012
2013         * qt/: Update to Subversion r548032.
2014         This includes a big reorganisation of the files inside the
2015         subdir.
2016
2017 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2018
2019         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2020         clear:  
2021         "Failed to connect to socket <host>:<port> <error>" instead of
2022         "Failed to connect to socket <host>: <error>:<port>"
2023
2024         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2025         for a tcp transport. 
2026
2027 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2028
2029         * qt/*: Update the QtDBus bindings up to revision 546310 in
2030         Subversion.
2031         This adds the dbuscpp2xml tool, that parses a C++ header and
2032         outputs a D-BUS Introspection XML.
2033
2034 2006-05-21  Havoc Pennington  <hp@redhat.com>
2035
2036         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2037         is not NULL when it shouldn't be. Also a couple of possible fixes
2038         for #4637 though I don't understand why the bug happens, to be
2039         honest... also the object constructor has an assert name != NULL
2040         and the name is only currently NULL for peer-to-peer proxies that 
2041         I don't think anyone uses? So it should be asserting.
2042         Anyway, for now at least see if we get an earlier assertion failure.
2043
2044         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2045         apparently broken code to be sure the tests fail and someone 
2046         will fix them...
2047
2048 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2049
2050         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2051         and arrays when they had a single element: has_next returns
2052         false, even before you read the element. So, instead, check
2053         the array length.
2054
2055 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2056
2057         * qt/qdbusmessage.cpp:
2058         * qt/qdbustypehelper_p.h:
2059         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2060         the list is a const-reference
2061
2062 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2063
2064         * Adding old doc patch that never got applied
2065         
2066         * dbus/bus.c (dbus_bus_add_match): Add documentation
2067
2068         * doc/dbus-specification.xml: Add documentation for the match rules
2069           and the AddMatch and RemoveMatch methods
2070
2071 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2072
2073         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2074         call (r535506)
2075
2076         * qt/dbusidl2cpp.cpp:
2077         * qt/qdbusabstractadaptor.cpp:
2078         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2079         sibling of the QDBusAbstractAdaptor objects instead of the
2080         parent. (r535848)
2081
2082         * qt/dbusidl2cpp.cpp:
2083         * qt/qdbusabstractinterface.cpp:
2084         * qt/qdbusabstractinterface.h:
2085         * qt/qdbusabstractinterface_p.h:
2086         * qt/qdbusinterface.cpp: Make properties in interfaces
2087         actually work. The code that was generated would not compile,
2088         due to moc calls to functions that did not exist. They now
2089         shall. (r536571)
2090
2091 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2092
2093         * Makefile.am:
2094         * configure.in:
2095         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2096         Thanks to Brad Hards for providing the patch
2097
2098 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2099
2100         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2101         call. (r535506)
2102
2103 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2104
2105         * qt/examples/dbus.cpp: Enhance error messages and use
2106         QDBusInterfacePtr.
2107
2108 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2109
2110         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2111         and disable the copy operators. (r533772, r534746)
2112
2113         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2114
2115         * qt/qdbusabstractinterface.cpp:
2116         * qt/qdbusabstractinterface.h: Change the default call mode to
2117         not use the event loop. Add convenience call() methods that
2118         take a CallMode parameter. (r534042)
2119
2120         * qt/qdbusconnection.h: Change the default call mode to not
2121         use the event loop. (r534042)
2122
2123         * qt/qdbusinterface.cpp:
2124         * qt/qdbusinterface.h: Add a method to tell us if the
2125         interface is valid (since we don't return a null pointer
2126         anymore) (r534099)
2127
2128         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2129         (r534101)
2130
2131         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2132         function in two so taht we get the chance to introspect
2133         without having a QDBusMessage (r534102)
2134
2135         * qt/qdbusbus.h:
2136         * qt/qdbusconnection.cpp:
2137         * qt/qdbusconnection_p.h:
2138         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2139         avoid a round-trip to the server when attempting to introspect
2140         one of our own objects. Also make sure the filter functions
2141         match the empty interface as well. (r534108)
2142         Don't keep the connection names. Instead, trust the unique
2143         connection name (r534111)
2144         Remove event loop usage (r534112)
2145
2146 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2147
2148         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2149         Brad Hards.
2150
2151 2006-04-28  Robert McQueen  <robot101@debian.org>
2152
2153         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2154         any order, making it easier for people who inherit from this
2155         object.
2156
2157 2006-04-28  Robert McQueen  <robot101@debian.org>
2158
2159         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2160         of memory from within pointer arrays and lists. Fixes bug #6300.
2161
2162 2006-04-28  Robert McQueen  <robot101@debian.org>
2163
2164         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2165         generating struct signatures. Fixes bug #6083.
2166
2167 2006-04-28  Robert McQueen  <robot101@debian.org>
2168
2169         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2170         to qdbusconnection_p.moc.
2171
2172 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2173
2174         * README, INSTALL: Doc fixes
2175         Patch from Brad Hards <bradh at frogmouth.net>
2176
2177 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2178
2179         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2180         the dynamic meta object. No need to guess which interface to
2181         call.
2182
2183 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2184
2185         * qt/qdbusconnection_p.h:
2186         * qt/qdbusmetaobject.cpp:
2187         * qt/qdbusmetaobject_p.h:
2188         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2189         for the dynamic meta object. No need to guess which
2190         interface to call.
2191         * qt/qdbusabstractinterface_p.h:
2192         * qt/qdbusconnection.cpp:
2193         * qt/qdbusintegrator.cpp:
2194         * qt/qdbusinterface.cpp:
2195         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2196         Add a QDBusRef that looks and behaves like DCOPRef.
2197
2198 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2199
2200         * dbus/dbus-connection.c: Interfaces are optional in method
2201         calls, so don't give up if the interface parameter is NULL.
2202         Patch reviewed by Havoc Pennington.
2203
2204 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2205
2206         * qt/qdbusreply.h: Add default constructor and operator=
2207           (r532625)
2208         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2209           in public headers (r532952)
2210         * qt/qdbusabstractinterface.cpp:
2211         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2212           make it the default (r532951)
2213
2214 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2215
2216         * dbus/dbus-connection.c: Fix asserts
2217         Patch from Tim Moloney <t.moloney at verizon.net>
2218
2219 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2220
2221         * mono/Connection.cs, mono/Message.cs: Check Target type
2222         Patch from Aaron Bockover (abockover at novell.com)
2223
2224 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2225
2226         * INSTALL: fine-tune the requirements for the Qt4 binding.
2227
2228 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2229
2230         * tools/dbus-print-message.c: Added support for printing of all 
2231           remaining data types. Fixed logic for indentation of compound
2232           data types.
2233         
2234 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2235
2236         * INSTALL: fill out content of file providing DBus specific
2237           build installations, followed by generic Auto* INSTALL file
2238           content
2239         
2240 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2241
2242         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2243           Patch by Stefan Eilers. (r529537)
2244
2245 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2246
2247         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2248           contents (r528208)
2249
2250 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2251
2252         * qt/Makefile.am: fix the dependency for
2253           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2254           not in qdbusconnection.cpp.
2255           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2256           spotting this.
2257
2258 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2259
2260         * qt/examples/listnames.cpp:
2261         * qt/examples/Makefile.am: Three ways to list the names on the
2262           bus.
2263
2264 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2265
2266         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2267           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2268
2269 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2270
2271         Merge from Subversion:
2272         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2273           something that exists (r526315)
2274         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2275           slots/signals (r526316)
2276         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2277           also return an unknown-method error if the parameters don't
2278           match for org.freedesktop.DBus.Properties. (r526842)
2279         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2280         * qt/qdbusintegrator.cpp: Restore the proper order of
2281           delivery: don't make method returns be delivered on priority
2282           (r528150)
2283
2284 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2285
2286         * configure.in qt/Makefile.am: add qt/examples
2287         * qt/examples: Add QtDBus example programs:
2288           - hello: Hello, World
2289           - ping: Simple method-calling program
2290           - pong: Simple object-exporting program (not using adaptors)
2291           - complexping: Interactive method-calling program 
2292                 (also gets and sets properties).
2293           - complexpong: Sample program exporting methods, signals and
2294                 properties, using adaptors.
2295           - dbus: Simple implementation of a generic method-calling
2296                 program, similar to 'dbus-send', but with semantics
2297                 similar to 'dcop'.
2298           - chat: Simplistic chat program, implemented using signals
2299                 and the system bus. Looks like IRC.
2300
2301 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2302
2303         * configure.in: Detect QtGui (necessary for one of the
2304           example programs). Note: this increases the minimum required
2305           version of Qt to 4.1.3.
2306
2307 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2308
2309         * test/qt/*: Sync with KDE Subversion revision 523647.
2310         Update the testcases to the new API. Remove testcases for
2311         classes that are no longer public or have been removed.
2312
2313 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2314
2315         * qt/*: 
2316         * dbus/qdbus.h: Sync with KDE Subversion revision
2317         523647. Hopefully, this will be the last of the
2318         source-incompatible changes. Documentation has been improved;
2319         support for QList<basic-types> has been added; QDBusObject is
2320         gone; QDBus(Abstract)Interface is now a QObject with
2321         auto-generated meta-object; QDBusIntrospection is marked
2322         private, since QMetaObject can be used now; lots of bugfixes.
2323
2324 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2325
2326         Patch from Milosz Derezynski <internalerror at gmail.com>
2327         
2328         * configure.in:
2329         Output the service directory in the configure summary
2330
2331         * dbus-1.pc.in:
2332         Add session_bus_services_dir
2333
2334 2006-03-10  Ross Burton  <ross@openedhand.com>
2335
2336         * tools/dbus-print-message.c:
2337         Add support for object paths and signatures.
2338
2339 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2340
2341         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2342         config reload.
2343         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2344         information caches
2345         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2346         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2347         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2348         * dbus/dbus-userdb.h: Add function to flush all user/group information
2349         caches.
2350
2351 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2352
2353         * qt/dbusidl2cpp.cpp:
2354         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2355         for dcopidl2cpp, found in the KDE installations (or the more
2356         modern kalyptus): generate Qt4 C++ code for the input XML
2357         introspection. Currently no IDL parsing.
2358
2359 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2360
2361         * test/qt/*: Update the self-tests.
2362
2363 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2364
2365         * qt/*: 
2366         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2367         represents the first feature-complete version of the Qt4
2368         bindings since I took ove maintainership.
2369
2370 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2371
2372         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2373         dir. This is C++, so we can't use the DBus ones.
2374
2375 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2376
2377         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2378         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2379
2380 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2381
2382         * dbus/dbus-connection.c: 
2383         (_dbus_connection_block_pending_call):
2384         Check to see if our data has already been read off the connection
2385         by another blocking pending call before we block in poll.
2386         (check_for_reply_and_update_dispatch_unlocked):
2387         Code taken from _dbus_connection_block_pending_call - checks for
2388         an already read reply and updates the dispatch if there is one.
2389
2390         * test/name-test/test-pending-call-dispatch.c:
2391         New test for making sure we don't get stuck polling a 
2392         dbus connection which has no data on the socket when
2393         blocking out of order on two or more pending calls.
2394
2395 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2396
2397         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2398         make/automake don't detect that we're talking about the same
2399         .lo file if I specify the full path to the source files.
2400
2401 2006-02-26  Havoc Pennington  <hp@redhat.com>
2402
2403         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2404
2405         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2406         session bus variable is unset, suggest "man dbus-launch" and "man
2407         dbus-daemon" to figure out how to fix the problem
2408
2409 2006-02-25  Havoc Pennington  <hp@redhat.com>
2410
2411         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2412         should make this thing use the new glib options parser
2413
2414 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2415
2416         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2417         .lo files taking moc sources.
2418
2419 2006-02-25  Havoc Pennington  <hp@redhat.com>
2420
2421         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2422         and install it as a public header
2423
2424 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2425
2426         * Released 0.61
2427
2428 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2429         
2430         * proxies.py: Fix the callchain
2431
2432 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2433         
2434         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2435
2436         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2437         dbus/dbus-sysdeps.c
2438
2439         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2440         call _dbus_group_info_free_allocated which causes infinite loop,
2441         correctly call _dbus_group_info_free
2442
2443 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2444
2445         * qt/qdbusinterface_p.h:
2446         * qt/qdbusinterface.cpp: Use the standard
2447         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2448         calls instead of creating one for us.
2449
2450         * qt/qdbusconnection_p.h:
2451         * qt/qdbusintegrator.cpp: Remove debugging code.
2452
2453         * qt/qdbusintegrator.cpp:
2454         * qt/qdbusmessage.cpp:
2455         * qt/qdbusmessage_p.h:
2456         * qt/qdbusmessage.h: Change the behaviour of automatic
2457         reply-sending: now a reply is always sent, unless the caller
2458         didn't request one or if the user slot has already sent one.
2459
2460 2006-02-16  Robert McQueen  <robot101@debian.org>
2461
2462         * configure.in: Patch from Debian packages by Sjoerd Simons
2463         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2464         arguments so it's possible to build both bindings in the
2465         same tree.
2466
2467         * qt/Makefile.am: Fix truncated value so that make dist works.
2468
2469 2006-02-16  Robert McQueen  <robot101@debian.org>
2470
2471         * acinclude.m4, configure.in: Patch from Brad Hards
2472         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2473         improving quoting, re-ordering a few checks, and a few other
2474         aesthetic tidy-ups.
2475
2476 2006-02-16  Robert McQueen  <robot101@debian.org>
2477
2478         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2479         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2480         assertion that the next element to read from the iter is fixed in
2481         size. This is not the case when you are at the end of the iter,
2482         because the next element type is INVALID.
2483
2484         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2485         a bogus assert which means that you may not initialise a 0-length
2486         string unless you provide a non-NULL pointer. This prevented
2487         you from marshalling messages containing zero-length arrays in
2488         some cases.
2489
2490         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2491         from Rob to correct bogus asserts when trying to demarshal an
2492         array and get_fixed_array got you 0 elements. Append nothing to
2493         the GArray in this case.
2494
2495         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2496         an empty array via the glib bindings. Without all of the above
2497         patches, this new test fails.
2498
2499 2006-02-16  Robert McQueen  <robot101@debian.org>
2500
2501         * glib/dbus-gmain.c: Make the previous commit compile.
2502
2503         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2504         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2505         specify sender_keyword="foo", path_keyword="bar" when adding
2506         a signal listener, so that you can bind to signals generically
2507         but still do something useful in your callback.
2508
2509         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2510         chars so that they're not cast to chars and made negative. Thanks
2511         to Jakub Stachowski for reporting this and testing the fix.
2512
2513 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2514
2515         * dbus/dbus-glib.h:
2516         * glib/dbus-gmain.h:
2517         (dbus_g_connection_open): new method for openning
2518         a connection to an arbitrary address in the glib bindings
2519
2520         * ChangeLog: checkin last entry which doesn't seem to be commited
2521
2522 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2523
2524         * tools/dbus-launch.c: Fixed sh syntax output
2525
2526 2006-02-13  Robert McQueen  <robot101@debian.org>
2527
2528         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2529         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2530         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2531         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2532         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2533         missing piece of the glib bindings jigsaw puzzle. This modifies
2534         the existing specialised types to have N type parameters (rather
2535         than the current 1 or 2 for arrays and dictionaries respectively).
2536         You can then use this to get a glib type to represent any arbitrary
2537         D-Bus struct type using dbus_g_type_get_struct. The only
2538         implementation of these types is with GValueArrays as before,
2539         but it's now possible to store these in arrays, emit them in
2540         signals, etc.
2541
2542 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2543
2544         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2545         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2546         <thiago.macieira at trolltech.com>
2547
2548 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2549
2550         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2551         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2552
2553 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2554
2555         * bus/connection.c (bus_connections_expect_reply): Make
2556         pending reply limit not common to all connections (Bug #5416)
2557         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2558
2559 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2560
2561         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2562
2563 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2564
2565         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2566         patch from Doug Goldstein <cardoe at gentoo.org>
2567
2568 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2569
2570         * mono/Arguments.cs: Fix a magic number in the mono bindings
2571         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2572
2573 2006-01-27  Robert McQueen  <robot101@debian.org>
2574
2575         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2576         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2577         when generating the client-side methods, instead of overloading
2578         CSymbol which broke everything horribly. My apologies.
2579
2580 2006-01-27  Robert McQueen  <robot101@debian.org>
2581
2582         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2583         by me and Rob Taylor to add a simple_free function to D-Bus map
2584         and collection types, which allows those types which can be freed
2585         with a GDestroyNotify (such as GHashTables and GArrays, but not
2586         GPtrArrays) to be stored as the values in hashtables.
2587
2588         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2589         Patch by Rob Taylor to add nested dicts to the glib tests to check
2590         the above code works, and appears not to leak when called repeatedly.
2591
2592 2006-01-27  Robert McQueen  <robot101@debian.org>
2593
2594         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2595         to free a D-Bus allocated string with dbus_free () instead of
2596         g_free ().
2597
2598 2006-01-27  Iain Holmes  <iain@openedhand.com>
2599
2600         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2601         method from being called multiple times.
2602
2603 2006-01-19  Robert McQueen  <robot101@debian.org>
2604
2605         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2606         <rob.taylor@collabora.co.uk> to add support for generating bindings
2607         to arrays that are represented as GPtrArrays rather than GArrays (ie
2608         size-variable things, such as strings, objects, structs, etc).
2609
2610 2006-01-05  Robert McQueen  <robot101@debian.org>
2611
2612         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2613         <ricardo.kekki@movial.fi> to make it possible to inherit from
2614         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2615         a private part, and moving the setting of the DBusGProxyManager into a
2616         connection property, allowing proper GObject construction.
2617
2618 2006-01-05  Robert McQueen  <robot101@debian.org>
2619
2620         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2621         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2622         annotations when generating glib client bindings.
2623
2624 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2625
2626         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2627
2628         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2629
2630 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2631
2632         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2633
2634 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2635
2636         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2637
2638 2005-12-19  Ross Burton  <ross@openedhand.com>
2639
2640         * doc/dbus-tutorial.xml:
2641         Document the Glib client-side bindings, and list all possible annotations.
2642
2643 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2644
2645         * dbus/bus.c (dbus_bus_release_name): Add documentation
2646
2647 2005-12-06  Robert McQueen  <robot101@debian.org>
2648
2649         * python/service.py: s/sucessful/successful/ so we're allocating to
2650         and reading from the same variable. Oops.
2651
2652 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2653
2654         * Released 0.60
2655
2656 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2657
2658         * test/qt/Makefile.am: build from srcdir
2659
2660         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2661         Note - this code is wrong and needs to be fixed by the Qt binding
2662         developers.  The flags should be treated as bitfields and not enums.
2663
2664         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2665
2666 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2667
2668         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2669           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2670           in production code
2671
2672 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2673
2674         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2675         method for getting messages off the bus in the absence of a
2676         mainloop.  This method is much like 
2677         dbus_connection_read_write_dispatch except it does not dispatch
2678         the messages to a registered filter function.  Instead it
2679         allows a developer to process messages by directly popping
2680         them off the bus.
2681
2682 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2683
2684         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2685         the parser to continue instead of returning error
2686         (bus_desktop_file_load): Do not free parser data when
2687         parse_section_start or parse_key_value fails because it was 
2688         already freed by parser_free (patch from Carlos Garcia Campos  
2689         <carlosgc at gnome.org>)
2690
2691 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2692
2693         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2694         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2695         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2696         test/test-segfault.c, test/test-utils.c,
2697         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2698         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2699         Various cleanup of dead code and compiler warnings (patch from
2700         Kjartan Maraas <kmaraas at gnome.org>) 
2701
2702 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2703
2704         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2705         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2706
2707 2005-11-27  Robert McQueen  <robot101@debian.org>
2708
2709         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2710         part of the preceding one. Oops. Merge patch by Johan Hedberg
2711         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2712         on big-endian platforms.
2713
2714         * test/python/test-client.py: Add some 16-bit integers to the test
2715         values.
2716
2717 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2718
2719         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2720         method return message for property getters
2721
2722 2005-11-27  Robert McQueen  <robot101@debian.org>
2723
2724         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2725         with type v of an instance of dbus.Variant(foo, type='x') caused
2726         it to be boxed twice before sending over the bus.
2727
2728         * python/dbus_bindings.pyx, python/service.py,
2729         test/python/test-client.py: Update the constants for the new
2730         request_name flags, and update comments/test cases now that queueing
2731         is the default action.
2732
2733 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2734
2735         * configure.in:
2736         - Change version to 0.60 for impending release
2737         - upped the sonames because of ABI and API breakage
2738
2739 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2740
2741         * configure.in: Add test/name-test/Makefile to the generated
2742         Makefile list
2743
2744         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2745         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2746         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2747         not to queue an ower if it can't be the primary owner
2748
2749         * bus/bus.h: Add new internal BusOwner struct
2750
2751         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2752         to bus_registry_ensure and don't set the prohibit_replacement flag
2753         since they are now set per BusOwner and not per name.
2754         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2755         that returns the list of connections in a name's connection queue
2756         
2757         * bus/services.c (struct BusService): remove prohibit_replacement field
2758         (struct BusOwner): new struct for keeping track of queued connections
2759         and their associated flags for the queue
2760         (struct BusRegistry): add a BusOwner memory pool
2761         (bus_registry_new): initialize the BusOwner memory pool
2762         (bus_registry_unref): free the BusOwner memory pool
2763         (_bus_service_find_owner_link): new internal method for
2764         searching the queue for a specific connection
2765         (bus_owner_set_flags): new method for adding setting the flags on a
2766         bus owner
2767         (bus_owner_new): new method that creates a BusOwner object from the
2768         pool and sets its flags
2769         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2770         (bus_registry_ensure): Add the flags parameter
2771         (bus_registry_acquire_service): Switch from using raw connections to
2772         using the BusOwner struct
2773         Add new state machine for dealing with the new set of flags
2774         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2775         cancel_ownership, free_ownership_cancel_data, 
2776         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2777         restore_ownership, free_ownership_restore_data, 
2778         add_restore_ownership_to_transaction): Switch to using BusOwner 
2779         instead of raw connections
2780         (bus_service_add_owner): Add flags parameter
2781         Switch to using BusOwner instead of raw connections
2782         Add state machine for dealing with the new set of flags
2783         (bus_service_swap_owner): Swaps the first and second owners in the
2784         queue.  Used to make sure proper signals are sent when a service looses 
2785         or gains primary ownership.  We never insert an owner at the top of the
2786         queue.  Instead we insert it in the second position and then swap.
2787         (bus_service_remove_owner): Remove the owner from the queue sending
2788         out the NameLost and NameOwnerChanged signals if the we were the 
2789         primary owner
2790         (bus_service_get_primary_owners_connection): New method that extracts
2791         the connection from the primary owner
2792         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2793         connection
2794         (bus_service_get_allow_replacement): Changed from the old 
2795         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2796         primary owner and returns if it can be replaced or not
2797         (bus_service_set_prohibit_replacement): removed
2798         (bus_service_has_owner): returns TRUE if and owner with
2799         the specified connection exists in the queue
2800         
2801         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2802         method that only compiles if tests are enabled.  Allows us to get the 
2803         unique name of a connection so we can check it against the queue when
2804         doing regression tests
2805
2806         * bus/activation.c (bus_activation_send_pending_auto_activate),
2807         bus/dispatch.c (bus_dispatch),  
2808         bus/driver.c (bus_driver_handle_get_service_owner, 
2809         bus_driver_handle_get_connection_unix_user, 
2810         bus_driver_handle_get_connection_unix_process_id,
2811         bus_driver_handle_get_connection_selinux_security_context),
2812         bus/signals.c (connection_is_primary_owner): 
2813         use bus_service_get_primary_owners_connection instead of
2814         bus_service_get_primary_owner
2815
2816         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2817         _dbus_listen_unix_socket): Calculate the length of the socket
2818         path and use that instead of using a fixed length which was
2819         causing socket names to contain many trailing Nul bytes.
2820
2821         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2822         (dbus_g_method_get_sender): New method for extracting the sender 
2823         from a DBusGMethodInvocation
2824         (dbus_g_method_return_get_reply): changed name to 
2825         dbus_g_method_get_reply
2826         (dbus_g_method_return_send_reply): changed name to
2827         dbus_g_method_send reply
2828
2829         * doc/dbus-specification.xml: New docs that describe how the new
2830         queueing system works and talks about the changes to the how
2831         we specify socket names
2832
2833         * glib/examples/example-service.c, 
2834         glib/examples/example-signal-emitter.c,
2835         glib/examples/statemachine/statemachine-server.c:
2836         Changed the RequestName flags to the new system
2837
2838         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2839         regression test suite for testing various states of the new
2840         queueing system
2841         
2842 2005-11-15  Robert McQueen  <robot101@debian.org>
2843
2844         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2845         Taylor to add two methods, dbus_g_method_return_get_reply and
2846         dbus_g_method_return_send_reply, to allow you to get the reply
2847         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2848         and send it. The GLib bindings can't marshal a return value of
2849         something like a(s) if the array is empty - ultimately they should be
2850         made to heed the signature of the out arguments as the Python bindings
2851         now can, but this is a workable interim solution which might have
2852         other applications.
2853
2854 2005-11-15  Robert McQueen  <robot101@debian.org>
2855
2856         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2857         method to org.freedesktop.DBus to release a bus name or give up
2858         waiting in the queue for it.
2859
2860         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2861         dbus_bus_release_name method to send the ReleaseName method calls.
2862         Add constants for the return values to dbus/dbus-shared.h.
2863
2864         * doc/dbus-specification.xml: Document the new ReleaseName method
2865         in the specification.
2866
2867         * python/dbus_bindings.pyx: Add a low-level python binding for the
2868         release name method.
2869
2870         * python/exceptions.py, python/service.py: Make freeing BusName
2871         objects release the name. Add a NameExistsException, and fix a
2872         bug with creating UnknownMethodException.
2873
2874         * test/python/test-client.py: Add tests for freeing BusName
2875         objects causing names to be released.
2876
2877 2005-11-14  Robert McQueen  <robot101@debian.org>
2878
2879         * python/service.py: Include the traceback in the error reply when we
2880         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2881
2882 2005-11-14  David Zeuthen  <davidz@redhat.com>
2883
2884         Patch from Timo Hoenig <thoenig@suse.de>.
2885
2886         * bus/bus.c: I've recently investigated why the automatic reload
2887         of configuration files does not work as expected.
2888
2889         Currently, reloading configuration files does only work when
2890         running dbus-daemon with --nodaemon.  If we are running as daemon
2891         we're hitting a dnotify bug once we fork the process.
2892
2893         We're initializing the dnotify fds before calling fork().  Once
2894         the child process forked it does still have the fds (and they
2895         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2896         getting SIGIO as changes are made to the configuration files.
2897
2898         The attached patch moves the initialization of the dnotify fds to
2899         process_config_postinit().  This is safe for all current code
2900         paths and solves the dnotify disfunction.  If we're running
2901         dbus-daemon as daemon the fds for dnotify are now being
2902         initialized after fork() for the child process.
2903
2904         * configure.in: The current configure.in check for dnotify probes
2905         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2906         match for 'xlinux', too. Additionally I have adapted the configure
2907         option's style to match with the others.
2908
2909 2005-11-14  Robert McQueen  <robot101@debian.org>
2910
2911         * python/decorators.py, python/service.py: Add a new argument to the
2912         dbus.service.method decorator called sender_keyword, which if set,
2913         specifies the name of an argument which will be provided the bus
2914         name of the method caller.
2915
2916         * test/python/test-client.py, test/python/test-service.py: Add a
2917         method and test to check the sender_keyword functionality.
2918
2919 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2920
2921         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2922         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2923         Simons <sjoerd at luon.net>)
2924
2925         * AUTHORS: Add Robert McQueen for his work on the Python
2926         Bindings and other parts of D-Bus
2927
2928 2005-11-07  Robert McQueen  <robot101@debian.org>
2929
2930         * python/decorators.py: Change emit_signal function to use the
2931         signature annotation of the signal when marhsalling the arguments from
2932         the service. Fix a bug where the code checking signature length
2933         against argument length referenced the wrong variable.
2934
2935         * python/introspect_parser.py: Avoid adding the type signature of
2936         signal arguments to any methods which occur after them in the
2937         introspection data (!) by making the parser a little more careful
2938         about its current state.
2939
2940         * python/service.py: Remove debug prints from last commit (again :D).
2941
2942         * test/python/test-client.py, test/python/test-service.py: Add test
2943         signals with signature decorators to test the strict marshalling code
2944         gives errors at the right time. Could do with checking the signals
2945         actually get emitted too, given that the test does nothing with
2946         signals at the moment...
2947
2948 2005-11-07  Robert McQueen  <robot101@debian.org>
2949
2950         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2951         instances to stop madness of creating new instances representing
2952         the same bus connection all the time, rendering any tracking of
2953         match rules and bus names quite meaningless. Caught a bug where
2954         the private argument to SessionBus() and friends was being passed
2955         in as use_default_mainloop by mistake. Still some problems with
2956         multiple dbus_binding.Connection instances representing the same
2957         low-level connection (eg when you use both SessionBus() and
2958         StarterBus() in same process), but it's a lot better now than it
2959         was.
2960
2961         * python/dbus_bindings.pyx: Add constants with the return values
2962         for bus_request_name().
2963
2964         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2965         and retrieve the same instances for the same name, so deletion can be
2966         done with refcounting. Also now throws some kind of error if you
2967         don't actually get the name you requested, unlike previously...
2968
2969         * test/python/test-client.py: Add tests for instance caching of buses
2970         and bus name objects.
2971
2972 2005-11-04  Robert McQueen  <robot101@debian.org>
2973
2974         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2975         marshalling of boolean values. Add some booleans to the values in
2976         the test client.
2977
2978         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2979         argument to the dbus.service.method decorator, which allows you to
2980         name arguments to take two callback functions for replying with
2981         return values or an exception.
2982
2983         * test/python/test-client.py, test/python/test-service.py: Add test
2984         case using asynchronous method reply functions, both return values and
2985         errors, and from within both the function itself and from a mainloop
2986         callback.
2987
2988         * python/decorators.py, python/service.py: Perform checking that the
2989         number of method/signal arguments matches the number of types in the
2990         signature at class loading time, not when you first introspect the
2991         class.
2992
2993         * python/service.py: Remove debug print left by the last commit.
2994
2995 2005-11-03  Robert McQueen  <robot101@debian.org>
2996
2997         * python/service.py: Heavy refactoring of method invocation, with
2998         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2999         in favour of a new _message_cb that uses seperate functions for
3000         looking up the method to call, marshalling the return values, and
3001         sending exceptions as errors, and is easier to follow as a
3002         consequence.  Fixes some corner cases about returning things that
3003         don't match your declared out_signature, allows exceptions to define
3004         _dbus_error_name and have it be sent over the bus as the error name,
3005         and paves the way for cool stuff like heeding the message no reply
3006         flag, asynchronous method implementations, informing the method of the
3007         sender, and including backtraces in the error messages.
3008
3009         * test/python/test-client.py: Catch and print exceptions thrown in the
3010         async callback tests, rather than passing them to the low-level
3011         bindings to be ignored in a noisy and frustrating manner.
3012
3013 2005-11-03  Robert McQueen  <robot101@debian.org>
3014
3015         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3016         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3017         tweak others to be consistent.
3018
3019         * test/python/test-client.py: Tweak output of testInheritance.
3020
3021 2005-10-29  Robert McQueen  <robot101@debian.org>
3022
3023         * python/service.py: Major changes to allow multiple inheritance
3024         from classes that define D-Bus interfaces:
3025         
3026          1. Create a new Interface class which is the parent class of
3027             Object, and make the ObjectType metaclass into InterfaceType.
3028         
3029          2. Patch written with Rob Taylor to replace use of method_vtable
3030             with code that walks the class's __MRO__ (method resolution order)
3031             to behave like Python does when invoking methods and allow
3032             overriding as you'd expect. Code is quite tricky because
3033             we have to find two methods, the one to invoke which has the
3034             right name and isn't decorated with the /wrong/ interface,
3035             and the one to pick up the signatures from which is decorated
3036             with the right interface.
3037         
3038             The same caveats apply as to normal multiple inheritance -
3039             this has undefined behaviour if you try and inherit from two
3040             classes that define a method with the same name but are
3041             decorated with different interfaces. You should decorate
3042             your overriding method with the interface you want.
3043         
3044          3. Replace grungy introspection XML generation code in the metaclass
3045             with dictionaries that cope correctly with multiple inheritance
3046             and the overriding of methods. This also uses the signature
3047             decorations to provide correct introspection data, including
3048             the debut appearance of the types of your return values. :D
3049
3050         * test/python/test-client.py, test/python/test-service.py: Add a test
3051         case to try invoking an method that overrides one inherited from a
3052         D-Bus interface class.
3053
3054 2005-10-29  Robert McQueen  <robot101@debian.org>
3055
3056         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3057         Add checking for the end of struct character when marshalling a
3058         struct in MessageIter.append_strict.
3059
3060         * python/examples/example-service.py,
3061         python/examples/gconf-proxy-service.py,
3062         python/examples/gconf-proxy-service2.py: Update to use gobject
3063         mainloop directly rather than appearing to depend on gtk.
3064
3065         * python/test/test-client.py, python/test/test-server.py: Remove
3066         obsolete and broken test scripts for old bindings. We have up to date
3067         and working tests in test/python/.
3068
3069 2005-10-29  Robert McQueen  <robot101@debian.org>
3070
3071         * python/decorators.py: Add optional arguments to the method and
3072         signal decorators to allow you to specify the signature of arguments
3073         and return values. Preserve the doc strings of signal functions in the
3074         decorated version, for pydoc and friends.
3075
3076         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3077         parse_signature_block function with an iterable dbus.Signature()
3078         type. Fix a bug in MessageIter.append_strict where you could append
3079         anything by claiming it was a string.
3080
3081         * python/service.py: Use the out_signature decoration on methods to
3082         marshal return values, meaning you no longer require dbus.Array()
3083         or dbus.Dictionary() to indicate the type when returning empty
3084         arrays or dictionaries. Fix a bug where exceptions which are defined
3085         in __main__ are not turned into error replies.
3086
3087         * test/python/test-client.py, test/python/test-service.py: Add test
3088         for correct marshalling of return values according to out_signature.
3089         Fix a bug in the async call test where the error_handler is missing a
3090         self argument.
3091
3092 2005-10-29  Robert McQueen  <robot101@debian.org>
3093
3094         * glib/Makefile.am, glib/examples/Makefile.am,
3095         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3096         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3097
3098         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3099
3100         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3101         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3102         the command line.
3103
3104 2005-10-27  Ross Burton  <ross@openedhand.com>
3105
3106         * dbus/dbus-marshal-header.c:
3107         Remove dead code.
3108
3109         * glib/dbus-gobject.c:
3110         Stop compiler warning.
3111
3112 2005-10-25  Ross Burton  <ross@openedhand.com>
3113
3114         * dbus/dbus-auth.c:
3115         * dbus/dbus-server-unix.c:
3116         * dbus/dbus-transport-unix.c:
3117         * glib/dbus-gmain.c:
3118         * glib/dbus-gobject.c:
3119         Add some const keywords.
3120
3121 2005-10-25  Ross Burton  <ross@openedhand.com>
3122
3123         * doc/dbus-specification.xml:
3124         Document the NoReply annotation.
3125
3126         * glib/dbus-binding-tool-glib.h:
3127         * glib/dbus-binding-tool-glib.c:
3128         Respect the NoReply annotation.
3129
3130 2005-10-24  Robert McQueen <robot101@debian.org>
3131
3132         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3133         derive from unicode instead of str, and encode/decode UTF-8 when
3134         marshalling/unmarshalling bus messages
3135
3136         * python/introspect_parser.py: encode introspection data as UTF-8
3137         before passing the buffer into libxml2
3138
3139         * test/python/test-client.py: add unicode test strings
3140
3141         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3142         ignore generated python test files
3143
3144 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3145
3146         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3147         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3148         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3149
3150         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3151         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3152         when constructing struct signatures
3153
3154         * python/_dbus.py (Bus): handle private connections using the
3155         private keyword in the constructor. defaults to private=False
3156         (Bus::close): new method to close a connection to the bus
3157
3158         * python/dbus_bindings.pyx (Connection::close): renamed method
3159         was previously called disconnect
3160         (bus_get): now supports getting a private connection
3161
3162         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3163         keyword is set to True.  if it is, execute the method without waiting
3164         for a reply
3165         (ProxyObject::_introspect_execute_queue): new method for executing
3166         all the pending methods that were waiting for the introspect to
3167         finish.  this is called when introspect either succeeds or fails
3168         (ProxyObject::_introspect_error_handler): call queued methods
3169
3170 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3171
3172         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3173         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3174
3175         * python/service.py (Object::_message_cb): handle exceptions correctly
3176         by sending them over the wire to the calling app.  This makes sure
3177         the client returns immediately instead of waiting the 15 seconds to
3178         timeout.
3179
3180         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3181         Add a test to benchmark how long it takes to introspect a service and 
3182         call a method which returns a large element (pretty fast)
3183
3184         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3185         method which pushes a lot of data
3186
3187 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3188
3189         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3190         reclaim memory outside of the loop and use del istead of just setting
3191         the key to None
3192
3193 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3194
3195         * python/service.py (ObjectType::_reflect_on_signal): Always close
3196         signal tag even when there are no arguments
3197
3198 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3199
3200         * configure.in: Set mono, mono-docs and Qt3 to default
3201         to no instead of auto when building.  These bindings do not
3202         have full time maintainers and will not be supported for the
3203         1.0 release.
3204
3205 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3206
3207         patches from Michael Krivoruchko <misha at sun.com>: 
3208         
3209         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3210         _dbus_connection_message_sent, 
3211         _dbus_connection_send_preallocated_unlocked_no_update, 
3212         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3213         is NULL when calling _dbus_verbose
3214
3215         * configure.in: check for functions getpeerucred and getpeereid
3216
3217         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3218         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3219         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3220         Patch was only tested on Solaris 10 x86 so it might be issues
3221         with other platforms (i.e. BSDs and MacOSX)
3222         
3223
3224 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3225
3226         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3227         instead of marshal basic so we can handle recursive types in a variant
3228
3229         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3230         in variants
3231
3232         * test/glib/test-service-glib.c, test-service-glib.xml
3233         (my_object_echo_variant [EchoVariant], 
3234         my_object_process_variant_of_array_of_ints123
3235         [ProcessVariantOfArrayOfInts123]): 
3236         Add two test methods
3237
3238         * python/introspect_parser.py: New module for parsing introspect
3239         data.
3240
3241         * python/dbus_bindings.pyx:
3242         (various places): when throwing errors fix to use errormsg instead 
3243         of message local variable because Pyrex can get confused with other 
3244         message variables (initial patch by Robert McQueen 
3245         <robert.mcqueen at collabora.co.uk>)
3246         (MessageIter::parse_signature_block): new method for getting the next
3247         block in a signiture.
3248         (MessageIter::append_strict): new method for appending values strictly
3249         using the passed in signature instead of guessing at the type
3250         (MessageItter:: append_dict, append_struct, append_array): use 
3251         signatures to marshal children if the signature is available
3252         
3253         * python/exceptions.py (IntrospectionParserException): new exception
3254
3255         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3256         introspected signatures if available, else we fall back to the
3257         old way of doing things.
3258         (ProxyObject::_introspect_reply_handler ): parse introspection data
3259         
3260         * python/service.py (ObjectType::_reflect_on_method): Properly
3261         terminate <method> if there are no args in the reflection data
3262
3263         * test/python/test-client.py: add tests for talking with the GLib
3264         test server.  This gives us better coverage for introspection since
3265         python to python will always generate arguments as variants.  It also
3266         allows us to test the robustness of the GLib bindings and interlanguage
3267         communications.
3268
3269         
3270 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3271
3272         * bus/driver.c (bus_driver_handle_introspect): Add signals
3273         to the introspect data. (patch from Daniel P. Berrange 
3274         <dan at berrange.com>)
3275
3276         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3277         
3278         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3279         _dbus_connection_run_builtin_filters): Changed these to
3280         be unlock_no_update functions and call 
3281         _dbus_connection_send_unlocked_no_update instead of
3282         dbus_connection_send to avoid locking errors.
3283         
3284         * doc/TODO: Removed the make Ping test TODO
3285         
3286 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3287
3288         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3289         We now copy the message from a DBusError and then free 
3290         the error object befor throwing the error
3291
3292         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3293         DBusBindingOutputMode enum which was causing a warning.
3294         #include <time.h> so using time_t is explicitly defined
3295
3296 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3297
3298         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3299         - dbus/dbus-bus.c
3300         (internal_bus_get): new method that take over the heavy lifting
3301         of dbus_bus_get and adds the ability to get a private connection
3302         to the bus
3303         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3304         interface as in previous versions
3305         (dbus_bus_get_private): new method that is a wrapper to 
3306         internal_bus_get to get a private connection to the bus
3307
3308         - dbus/dbus-bus.h
3309         (dbus_bus_get_private): add as a public libdbus interface
3310
3311         - dbus-1.pc.in: output system_bus_default_address and 
3312         sysconfdir variables so apps can use them when compiling
3313
3314 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3315         * dbus/qt: New Qt bindings
3316
3317 2005-09-12  Waldo Bastian  <bastian@kde.org>
3318
3319         * dbus/dbus-marshal-validate.c,
3320         doc/dbus-specification.xml, test/Makefile.am,
3321         test/test-names.c: allow hyphens in bus names.
3322
3323 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3324
3325         * test/data/auth/fallback.auth-script: we don't
3326         retry the EXTERNAL method when we know its going
3327         to fail anymore.
3328
3329 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3330
3331         * dbus/dbus-connection-internal.h: rename
3332         (add|remove|toggle)_(watch|timeout) to unlocked()
3333         
3334         * dbus/dbus-connection.c: ditto.
3335         
3336         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3337         Update some callers for the renaming.
3338
3339 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3340
3341         * dbus/dbus-auth.c: (record_mechanisms): don't
3342         retry the first auth mechanism because we know
3343         we're just going to get rejected again.
3344         
3345         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3346         Fix thinko ... and what a nasty little bugger to
3347         track down you were ...
3348
3349         * dbus/dbus-connection.c:
3350         (_dbus_connection_add_watch),
3351         (_dbus_connection_remove_watch): add note about
3352         these needing the connection to be locked.
3353         (_dbus_connection_get_dispatch_status_unlocked):
3354         set status to DATA_REMAINS when we queue the
3355         disconnected message.
3356         
3357         * bus/dispatch.c:
3358         (bus_dispatch): fix warning.
3359         (check_existent_service_no_auto_start):
3360         Expect ChildSignaled error too.
3361         (check_existent_hello_from_self): fix another
3362         couple of warnings.
3363         
3364 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3365
3366         Patches from James Willcox <snorp@snorp.net>
3367
3368         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3369
3370         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3371         support array "out" parameters.
3372
3373         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3374         for 16-bit int support.
3375
3376 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3377
3378         * Released 0.50
3379
3380         * Patch from Steve Grubb:
3381         - bus/activation.c (bus_activation_service_reload_test): clean up
3382         some indentation
3383         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3384         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3385         buffer overflows in the test suite.  This is non critical because
3386         it can not be exploited and this code is only run when doing a 
3387         make check.
3388
3389         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3390         - configure.in: Don't check and link against kdecore, only qt headers
3391         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3392         - gcj/org/freedesktop/dbus/Makefile.am:
3393         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3394         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3395         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3396         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3397         - tools/Makefile.am: Add platform extentions to binaries 
3398         (i.e. .exe on windows)
3399
3400         * configure.in: 
3401         - Make it so if no suitable version of python is found we only 
3402         disable building python instead of exiting the configure script
3403         - Require version 2.4 of glib for glib bindings
3404         - Up version to 0.50
3405
3406         * python/__init__.py: Sync version with libdbus to (0,50,0)
3407         
3408 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3409
3410         * dbus/dbus-object-tree.c (find_subtree_recurse):
3411         a couple of optimizations (bug #710):
3412         - do a binary search in the tree
3413         - insert a new child at the right place directly, no need for
3414           qsort anymore
3415         - do the "double alloc" thing when allocating children
3416
3417 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3418
3419         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3420
3421         * python/dbus_bindings.pyx: Memory management foo
3422         (global): remove hacky _user_data_references global list
3423         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3424         tuples. Unref user_data
3425         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3426         (Connection::__del__): Remove and replace with __dealloc__ method
3427         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3428         to keep tuple from being deallocated instead of the global var hack
3429         (Connection::register_object_path): Stuff user_data into a tuple.
3430         Use Py_INCREF to keep tuple from being deallocated instead of the 
3431         global var hack
3432         (Connection::register_fallback): Stuff user_data into a tuple.
3433         Use Py_INCREF to keep tuple from being deallocated instead of the 
3434         global var hack
3435         (GIL_safe_pending_call_notification): Don't unref the message
3436         because it gets unreffed when going out of scope.  Py_XDECREF
3437         the user_data
3438         (PendingCall::__del__): Remove and replace with __dealloc__ method
3439         (PendingCall::set_notify): ref the pending call because we will
3440         need it to stick around for when the notify callback gets called
3441         (Message::__del__): Remove and replace with __dealloc__ method
3442
3443         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3444         gthreads_init to match up with the dbus call
3445
3446         * python/glib.py (init_threads): Changed to threads_init to match
3447         up with gobject.threads_init().  init_threads is kept for backwards
3448         compat but will most likely be deprecated in the future
3449
3450         * test/python/test-client.py: 
3451         - revamp to use Python's unittest functionality
3452         - add async call tests
3453         - setup threads in glib and dbus so we make sure locks are working
3454         
3455 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3456
3457         * python/dbus_bindings.pyx 
3458         (_pending_call_notification, cunregister_function_handler, 
3459         cmessage_function_handler): All callback functions have been rearranged 
3460         to workaround a bug in Pyrex when working with the GIL which is Python's 
3461         global lock when dealing with threads.  They have been split into
3462         a wrapper function (which assumes the name of the old function) and
3463         a _GIL_safe_<function name> function which contains the functionality
3464         of the old function.  This ensures that Pyrex does not write code
3465         the lock is released.
3466         
3467
3468 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3469
3470         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3471         GIL global lock when calling back into Python
3472
3473 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3474
3475         * Release 0.36.2
3476
3477         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3478
3479         * bus/policy.c (bus_policy_allow_user): change default "user is
3480         allowed" to be "user has same uid as the bus itself"; any
3481         allow/deny rules will override.
3482
3483         * bus/session.conf.in: don't allow all users, since now by default
3484         the user that ran the bus can connect.
3485
3486 2005-08-26  Colin Walters  <walters@verbum.org>
3487
3488         * tools/dbus-print-message.c (print_message): Flush stdout
3489         after printing a message, so that redirecting to a file, then
3490         hitting Ctrl-C works.
3491
3492 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3493
3494         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3495         (EmptyMessage): new class that subclasses Message.  This is a workaround
3496         to a Pyrex bug that fails to call __del__ when the Message object goes out
3497         of scope.  For some reason subclassing Message fixes this bug
3498         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3499         - s/Message(_create=0)/EmptyMessage everywhere else
3500         
3501         * test/python/test-{server|client}.py: add the python/.libs directory
3502         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3503         get picked up from the system
3504
3505 2005-08-25  Colin Walters  <walters@verbum.org>
3506
3507         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3508         to Ryan Lortie for the suggestion.
3509
3510 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3511
3512         * test/python: Add python regression test
3513
3514         * configure.in: Add test/python/Makefile
3515
3516         * test/Makefile.am: Add the python directory to SUBDIRS
3517
3518 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3519
3520         * Release 0.36.1
3521
3522         * python/_dbus.py: 
3523         (Interface::connect_to_signal): propigate keywords for match on args
3524         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3525
3526         * python/proxies.py (ProxyObject::connect_to_signal):
3527         propigate keywords for match on args
3528
3529         * Makefile.am: point everything to pyexecdir since python borks
3530         on multilib
3531
3532 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3533
3534         * Release 0.36
3535
3536 2005-08-23  Colin Walters  <walters@verbum.org>
3537
3538         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3539
3540 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3541
3542         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3543         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3544         of defining DBusConnection ourselves.
3545
3546 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3547
3548         * python/dbus.pth: New path file to fix up problems when installing
3549         c libraries to lib64 and python files to lib.
3550
3551         * python/Makefile.am: install dbus.pth in the correct spot
3552
3553 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3554         * ChangeLog: clean up my last entry a bit
3555
3556         * doc/introspect.xsl: New stylesheet for converting introspection data
3557         into browser renderable xhtml. Contributed by Lennart Poettering.
3558
3559         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3560         Poettering.
3561
3562         * doc/dbus-tutorial.xml: 
3563         - Add Colin Walter to the Authors section for authoring the GLib
3564         section
3565         - Add descriptions of the new signature and type functionality
3566         in the Python complex type mapping section
3567         - Add a sidenote on the new args matching functionality in 
3568         the Python bindings
3569         - Fixed up some of the examples to use the gobject.MainLoop
3570         instead of gtk.main
3571         
3572         * python/_dbus.py:
3573         (Bus::_create_args_dict): New. Converts a hash of arg matches
3574         to a more useable format
3575         (Bus::add_signal_receiver): add a **keywords parameter for catching
3576         arg match parameters
3577         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3578         arg match parameters
3579         
3580         * python/matchrules.py:
3581         (MatchTree::exec_matches): Check for arg matches
3582         (SignalMatchRule::add_args_match): New method
3583         (SignalMatchRule::execute): Added args_list parameter as an optimization
3584         so we don't have to marshal the args more than once
3585         (SignalMatchRule::match_args_from_list): New method that checks to see
3586         if the rule's arg matches match an argument list.  Only arguments
3587         set in the rule are checked.
3588         (SignalMatchRule::match_args_from_rule): New method that checks to see
3589         if the rule's arg matches match another rule's.  All args have to match
3590         in order for this method to return true.  If either rule has more args
3591         then it is not a match.
3592         (SignalMatchRule::is_match): Add args match
3593         (SignalMatchRule::repr): Add args to the final output if they exist
3594
3595 2005-08-17  Ross Burton  <ross@burtonini.com>
3596
3597         * glib/dbus-gproxy.c:
3598         (dbus_g_proxy_call_no_reply): unref the message once sent.
3599         (dbus_g_proxy_call): protect against NULL proxy.
3600
3601 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3602
3603         * python/__init__.py: Version updated (0, 43, 0)
3604         
3605         * python/dbus_bindings.pyx: 
3606         - Fixed type objects to have self passed into __init__
3607         - Added the Variant type
3608         - Add the ability to specify types or signatures for Array, Variant 
3609         and Dictionary
3610         (Connection::send_with_reply_handlers): return a PendingCall object
3611         (_pending_call_notification): handle the case when an error is returned 
3612         without an error message in the body
3613         (MessageIter::get_boolean): return True or False instead of an integer
3614         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3615         and add checks for objects with embeded signatures or types (Array, 
3616         Variant and Dictionary)
3617         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3618         (MessageIter::append_dict): handle embeded types or signatures
3619         (MessageIter::append_array): handle embeded types or signatures
3620         (MessageIter::append_variant): new method
3621         
3622         * python/proxies.py:
3623         (DeferedMethod): New. Dummy executable object used when queuing calls 
3624         blocking on introspection data
3625         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3626         or shorter timeouts for method calls
3627         (ProxyObject): Add first pass at an introspection state machine
3628         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3629         introspection. 
3630         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3631         the usual mechanisms for sending messages.  This is to avoid a deadlock
3632         where the Intospect call would be queued waiting for the Introspect 
3633         call to finish ;-)
3634         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3635         when introspection returns with no error
3636         (ProxyObject::_introspect_error_handler): New.  This method is called 
3637         when introspection encounters an error
3638         (ProxyObject::__getattr__): Code to handle different introspection 
3639         states.  Queue async calls or block blocking calls if we are 
3640         introspecting.  Pass through as normal if we are not or are done with 
3641         introspecting.
3642         
3643         * python/service.py: Import signal and method from decorators.py
3644
3645         * python/types.py: Add Variant type
3646
3647 2005-08-16  Colin Walters  <walters@verbum.org>
3648
3649         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3650         DBusError message is NULL.
3651
3652 2005-08-09  Havoc Pennington  <hp@redhat.com>
3653
3654         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3655         malloc'd copy of the name parameter
3656
3657 2005-08-09  Havoc Pennington  <hp@redhat.com>
3658
3659         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3660         warning if the reply serial is set to 0
3661
3662 2005-08-04  Colin Walters  <walters@verbum.org>
3663
3664         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3665         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3666         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3667         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3668         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3669         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3670         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3671         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3672         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3673         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3674         
3675         Prefix name with _ to ensure they're not exported.  All callers
3676         updated.
3677
3678         * glib/dbus-gvalue.c (typecode_to_gtype)
3679         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3680         (signature_iter_to_g_type_dict)
3681         (signature_iter_to_g_type_array)
3682         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3683         (dbus_gtypes_from_arg_signature):
3684         Move to dbus-gsignature.c.
3685
3686         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3687         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3688         (dbus_binding_tool_output_glib_client): Ditto.
3689
3690         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3691         and dbus-gsignature.h
3692
3693         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3694         unused variable.
3695
3696 2005-08-03  Colin Walters  <walters@verbum.org>
3697
3698         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3699         catch any incompatible changes accidentally made.
3700
3701 2005-08-03  Havoc Pennington  <hp@redhat.com>
3702
3703         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3704         typo, from Julien Puydt
3705
3706         * bus/connection.c (bus_connection_disconnected): we were always
3707         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3708
3709 2005-08-01  Colin Walters  <walters@verbum.org>
3710
3711         Patch from Joe Markus Clarke:   
3712         
3713         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3714         use-after-free.
3715
3716 2005-08-01  Colin Walters  <walters@verbum.org>
3717         
3718         Patch from Joe Markus Clarke:   
3719         
3720         * tools/dbus-send.c (main): 
3721         
3722         Don't use C99 style initializers (bug #3933).
3723         
3724 2005-08-01  Colin Walters  <walters@verbum.org>
3725
3726         Patch from Joe Markus Clarke:   
3727
3728         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3729         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3730         * glib/dbus-gobject.c (write_interface):
3731
3732         Don't use C99 style initializers (bug #3933).
3733
3734 2005-07-31  Havoc Pennington  <hp@redhat.com>
3735
3736         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3737         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3738
3739 2005-07-30  Havoc Pennington  <hp@redhat.com>
3740
3741         * fix a bunch of Doxygen warnings and mistakes
3742
3743 2005-07-30  Havoc Pennington  <hp@redhat.com>
3744
3745         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3746         DBUS_BUILD_TESTS since it's now used in production code
3747
3748 2005-07-29  Havoc Pennington  <hp@redhat.com>
3749
3750         * test/glib/test-profile.c (write_junk): initialize the junk
3751         buffer so valgrind doesn't have a breakdown
3752
3753 2005-07-29  Havoc Pennington  <hp@redhat.com>
3754
3755         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3756         (match_rule_matches): remove unused arg
3757         (test_matching): add tests for match_rule_matches()
3758
3759         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3760         do arg0='foo' arg5='bar' in the match rules
3761         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3762
3763         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3764
3765 2005-07-29  Ross Burton  <ross@openedhand.com>
3766
3767         * dbus/dbus-connection.c:
3768         Don't create a DBusCondVar which is never used.
3769
3770 2005-07-27  Ross Burton  <ross@openedhand.com>
3771
3772         * dbus/dbus-message.c:
3773         Reduce the size of the maximum cached message to 10K.
3774
3775 2005-07-25  Ross Burton  <ross@openedhand.com>
3776
3777         * glib/dbus-gproxy.c:
3778         Remove matches when all proxies are unregistered.
3779
3780 2005-07-24  Colin Walters  <walters@verbum.org>
3781
3782         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3783         typedata; recursive arrays won't have it.
3784
3785         * test/glib/test-dbus-glib.c:
3786         * test/glib/test-service-glib.c:
3787         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3788         
3789 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3790
3791         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3792         proxies.py, service.py: Cleanup of code after running it through the
3793         pyflakes code checker mostly dealing with undefined names.  
3794         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3795
3796 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3797
3798         * NEWS: Update to 0.35.2
3799
3800 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3801
3802         * python/_dbus.py: Remove import of the dbus.services
3803         module as it no longer exists (patch from Dimitur Kirov)
3804
3805         * python/service.py (Object::__init__): Fixed typo
3806         s/name/bus_name (patch from Dimitur Kirov)
3807
3808         * python/examples/example-signal-emitter.py: import dbus.glib
3809         to get the main loop and use glib mainloop instead of gtk so
3810         X doesn't have to be running.
3811
3812         * python/examples/example-signal-recipient.py: import dbus.glib
3813         to get the main loop and use glib mainloop instead of gtk so
3814         X doesn't have to be running. Import the decorators module
3815         directly.
3816
3817         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3818         didn't pick up on but are needed to build
3819
3820         * configure.in: upped version to 0.35.2
3821
3822         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3823         added Colin Walters' SELinux API rename patch from head 
3824         s/unix sercurity context/selinux security context/
3825
3826 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3827
3828         * python/Makefile.am: dbus_binding.pxd.in should be included 
3829         in EXTRA_DIST not dbus_binding.pxd
3830         fix up $(srcdir) hopefully for the last time
3831
3832         * NEWS: Update to 0.35.1
3833
3834 2005-07-16  Colin Walters  <walters@verbum.org>
3835
3836         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3837         from bus_driver_handle_get_connection_unix_security_context.  Update for
3838         error usage.
3839         (message_handlers): Update for renames.
3840
3841         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3842         _dbus_string_init failure correctly.
3843         (bus_selinux_append_context): Convert SID to context.  Append it
3844         as a byte array.
3845         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3846         hasn't been called.
3847
3848         * bus/selinux.h: Update prototype.
3849
3850         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3851         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3852
3853 2005-07-15  Colin Walters  <walters@verbum.org>
3854
3855         * doc/TODO: Add note about convenience wrappers.
3856
3857 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3858
3859         * NEWS: Update to 0.35
3860
3861 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3862
3863         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3864         so distcheck doesn't fail
3865
3866         * glib/examples/Makefile.am: Add example-service.xml and 
3867         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3868
3869         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3870         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3871
3872         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3873         compiler looks in the right places during distcheck
3874
3875 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3876
3877         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3878         to fail
3879
3880 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3881
3882         * python/examples/example-service.py,
3883         python/examples/example-signal-emitter.py: Fixed up examples
3884         for API changes
3885
3886 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3887
3888         * python/__init__.py: Upped to version (0,42,0) because of
3889         the API change
3890
3891 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3892
3893         * ChangeLog: fix date in last entry
3894
3895         * configure.in, bus/system.conf.in: add the ability to configure 
3896         the system bus user at compiletime with the --with-dbus-user flag
3897         (patch from Kristof Vansant)
3898
3899 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3900
3901         * bus/dispatch.c, test/test-service.c: Add testcase
3902         for sending messages to oneself (TODO item).
3903
3904         * python/service.py (class Object): Swap ordering of bus_name 
3905         and object_path parameters to better support inheritance.
3906
3907         * doc/dbus-tutorial.xml: change Python docs to reflect change
3908         in parameter ordering and fix the inheritance section.
3909
3910         * doc/TODO: remove sending message to oneself TODO item
3911
3912 2005-07-15  Ross Burton  <ross@openedhand.com>
3913
3914         * glib/dbus-gproxy.c:
3915         Fix a leak when calling methods via the proxy.
3916
3917 2005-07-15  Colin Walters  <walters@verbum.org>
3918
3919         * bus/selinux.c (bus_selinux_append_context): Wrap in
3920         HAVE_SELINUX.
3921
3922 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3923
3924         * python/_dbus.py (Bus::remove_signal_receiver):
3925         don't add a callback to the match if none has been passed in
3926         
3927         * python/matchrules.py (SignalMatchTree::remove): if the rule
3928         being matched does not have a callback treat it as a wildcard
3929         fix matching logic
3930
3931         * doc/dbus-tutorial.xml: Add Python tutorial
3932
3933 2005-07-14  Colin Walters  <walters@verbum.org>
3934
3935         * bus/driver.c
3936         (bus_driver_handle_get_connection_unix_security_context): New function.
3937         (message_handlers): Add.
3938
3939         * bus/selinux.c (bus_selinux_append_context): New function; appends
3940         security context to message.
3941
3942         * bus/selinux.h: Prototype.
3943
3944         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3945
3946 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3947
3948         * bus/activation.c: clean up all tabs to be 8 spaces 
3949         (bus_activation_activate_service): make sure we clean up
3950         if activation fails
3951
3952         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3953         (check_shell_fail_service_auto_start): New function
3954         tests to make sure we get fail properly when trying to auto start a service
3955         with a faulty command line
3956         (check_shell_service_success_auto_start): New function tests to make sure
3957         auto started services get the arguments on the command line
3958
3959         * test/test-shell-service.c: Added service for testing auto-starting with 
3960         command line arguments
3961
3962         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3963         test/data/valid-service-files/debug-shell-echo-success.service.in:
3964         Added service files for testing auto-starting with command line arguments
3965
3966         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3967
3968 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3969
3970         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3971         
3972         * dbus/Makefile.am: added new files to build.
3973
3974         * bus/activation.c (bus_activation_activate_service): support
3975         activation commands with parameters.
3976
3977         * test/shell-test.c: added test program for the shell parsing
3978         code.
3979
3980 2005-07-13  David Zeuthen  <davidz@redhat.com>
3981
3982         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3983         64 bit signed and unsigned parameters
3984
3985 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3986
3987         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3988
3989         * python/service.py (class Name): renamed BusName to make it clearer
3990         what the object is for (a name on the bus)
3991
3992         * python/examples/example-service.py,
3993         python/examples/example-signal-emitter.py: change the Name object to
3994         BusName
3995
3996 2005-07-12  Colin Walters  <walters@verbum.org>
3997
3998         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3999
4000         * tools/dbus-launch.c: Include sys/select.h.
4001
4002 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4003         * python/dbus_bindings.pyx.in: removed
4004
4005         * python/dbus_bindings.pyx: Added.
4006         - Fixed some memleaks (patch from 
4007         Sean Meiners <sean.meiners@linspireinc.com>)
4008         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4009         own pxd file (Pyrex definition)
4010         - Broke out glib dependancies into its own pyx module
4011         
4012         * python/dbus_bindings.pdx: Added.
4013         - Defines C class Connection for exporting to other modules
4014
4015         * python/dbus_glib_bindings.pyx: Added.
4016         - New module to handle lowlevel dbus-glib mainloop integration
4017
4018         * python/glib.py: Added.
4019         - Registers the glib mainloop when you import this module
4020
4021         * python/services.py: Removed (renamed to service.py)
4022         
4023         * python/service.py: Added.
4024         - (class Server): renamed Name
4025
4026         * python/__init__.py: Bump ro version (0,41,0)
4027         -don't import the decorators or service module
4028         by default.  These now reside in the dbus.service namespace
4029
4030         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4031         setup function on creation 
4032
4033         * python/examples/example-service.py,
4034         python/examples/example-signal-emitter.py: update examples
4035
4036         * python/examples/gconf-proxy-service.py,
4037         python/examples/gconf-proxy-service2.py: TODO fix these up
4038
4039         * doc/TODO: Addition
4040         - Added a Python Bindings 1.0 section
4041         - added "Add match on args or match on details to match rules"
4042
4043
4044 2005-07-12  Colin Walters  <walters@verbum.org>
4045
4046         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4047         (statemachine-glue.h): 
4048         * glib/examples/Makefile.am (example-service-glue.h) 
4049         (example-signal-emitter-glue.h): 
4050         * glib/Makefile.am (dbus-glib-error-switch.h): 
4051         Add libtool --mode=execute so we use the built library instead
4052         of any installed one.
4053
4054 2005-07-11  Colin Walters  <walters@verbum.org>
4055
4056         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4057         (dbus_g_value_types_init): Remove assertion.
4058         (dbus_g_value_get_g_type, dbus_g_value_open)
4059         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4060         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4061         functions related to DBusGValue.  Now we marshal/demarshal
4062         structures as GValueArray.
4063         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4064         structures.
4065         (signature_iter_to_g_type_array): Don't call
4066         signature_iter_to_g_type_struct.
4067         (signature_iter_to_g_type_struct): Delete.
4068         (dbus_gvalue_to_signature): Delete.
4069         (dbus_gvalue_to_signature): New function with same name as other
4070         one; we can convert structures to signatures.
4071         (demarshal_valuearray): New function.
4072         (get_type_demarshaller): Use it.
4073         (demarshal_recurse): Delete.
4074         (marshal_proxy): New function.
4075         (marshal_map): Warn if we can't determine signature from type.
4076         (marshal_collection_ptrarray): Ditto.
4077         (marshal_collection_array): Ditto.
4078         (get_type_marshaller): Use marshal_valuearray.
4079         (marshal_recurse): Delete.
4080         (_dbus_gvalue_test): Add some tests.
4081
4082         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4083         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4084         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4085         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4086         (dbus_g_value_free): Remove prototypes.
4087
4088         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4089         G_TYPE_VALUE_ARRAY.
4090
4091         * glib/examples/example-service.c:
4092         * glib/examples/example-client.c: Implement GetTuple.
4093
4094         * test/glib/test-dbus-glib.c:
4095         * test/glib/test-service-glib.c:
4096         * test/glib/test-service-glib.xml: Add structure tests.
4097
4098 2005-07-10  Colin Walters  <walters@verbum.org>
4099
4100         * doc/TODO: Knock off some GLib items with this patch.
4101
4102         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4103         (_dbus_gvalue_signals_error): New functions.
4104
4105         * glib/dbus-gvalue-utils.h: Prototype them.
4106
4107         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4108         and change to not output const/retval flags for input args.  All
4109         callers updated.
4110         (invoke_object_method): Refactor to handle return values.  Add
4111         some more comments in various places.  Remove debug g_print.
4112
4113         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4114
4115         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4116         Handle G_TYPE_NONE.
4117         (compute_gsignature): New function; refactored from code from
4118         compute_marshaller and compute_marshaller_name.  Enhance to
4119         handle return values and async ops more cleanly.  Update for
4120         async ops returning NONE instead of BOOLEAN.
4121         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4122         and output appropriate string.
4123         (generate_glue): Handle return value annotation.  Also don't dump
4124         constness flag for input arguments.
4125
4126         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4127         files shared between installed library and utilities.
4128         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4129         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4130         binding tool can access gtype utility functions.
4131
4132         * test/glib/test-service-glib.c: 
4133         * test/glib/test-service-glib.xml: 
4134         * test/glib/test-dbus-glib.c: Add some tests for return values.
4135
4136 2005-07-09  Colin Walters  <walters@verbum.org>
4137
4138         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4139         argument if available, not method.
4140
4141         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4142         (invoke_object_method): First, remove some redundant
4143         GValues (object_value, error_value) in favor of working on
4144         array directly.  Second, rework constness to be less buggy.
4145         Now we iterate directly over the argument metadata instead
4146         of parallel iterating over output signature and metadata.
4147
4148         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4149
4150         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4151         annotation on input args.
4152         
4153 2005-07-09  Colin Walters  <walters@verbum.org>
4154
4155         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4156         Define.
4157
4158         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4159         annotation.
4160
4161         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4162         (method_dir_signature_from_object_info): Handle arg_iterate change.
4163         (write_interface): Ditto.
4164         (lookup_object_info): Don't barf if format_version is > 0.
4165         (invoke_object_method): Handle arg constness.
4166
4167         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4168         (arg_info_new): Create.
4169         (arg_info_unref): Destroy.
4170         (arg_info_get_annotations, arg_info_get_annotation) 
4171         (arg_info_add_annotation): New functions.
4172
4173         * glib/dbus-gidl.h: Prototype them.
4174
4175         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4176         args, disallow them in properties.
4177         (parse_annotation): Handle arg annotations.
4178
4179         * test/glib/test-service-glib.xml: 
4180         * test/glib/test-service-glib.c: Update to make some methods
4181         const.
4182
4183 2005-07-08  Colin Walters  <walters@verbum.org>
4184
4185         * test/glib/test-service-glib.xml: 
4186         * test/glib/test-service-glib.c:
4187         * test/glib/test-dbus-glib.c: Test a{sv}.
4188
4189         * glib/examples/statemachine/statemachine.c:
4190         * glib/examples/statemachine/statemachine-server.c:
4191         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4192         add progress bar, etc.
4193
4194         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4195         needed anymore due to generic array/map marshalling.
4196         (dbus_g_value_types_init): Don't register basic arrays or the
4197         string/string hash.
4198         (dbus_gtype_from_signature_iter): Don't try to recurse into
4199         variants.
4200         (dbus_gtype_to_signature): Check collection/map before type
4201         metadata.
4202         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4203         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4204         generic map creation/append functions instead of hash table
4205         specifically.
4206         (get_type_demarshaller): Handle maps.
4207         (demarshal_collection): Dispatch on collection type to either
4208         demarshal_collection_ptrarray or demarshal_collection_array.
4209         (get_type_marshaller): Handle maps.
4210         (marshal_collection): Dispatch collection type to either
4211         marshal_collection_ptrarray or marshal_collection_array.
4212         (_dbus_gvalue_test): New test.
4213
4214         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4215         (hash_free_from_gtype): Use it to free GValues.
4216         (hashtable_append): New function.
4217         (ptrarray_append): Fix prototype.
4218         (slist_append): Ditto.
4219         (_dbus_gvalue_utils_test): Extend tests.
4220
4221         * glib/dbus-gtype-specialized.c
4222         (dbus_g_type_specialized_init_append): Renamed from
4223         dbus_g_type_specialized_collection_init_append.  Remove const from
4224         value, since we steal it.
4225         (dbus_g_type_specialized_map_append): New function.
4226
4227         * glib/dbus-gtype-specialized.h: Update prototypes.
4228         Add DBusGTypeSpecializedMapAppendFunc.
4229
4230         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4231         _dbus_gvalue_test.
4232         
4233         * glib/dbus-gtest.h: Prototype it.
4234
4235 2005-07-08  Ross Burton  <ross@openedhand.com>
4236
4237         * dbus/dbus-glib.h:
4238         Add DBysGAsyncData for the async bindings.
4239
4240         * glib/dbus-binding-tool-glib.c:
4241         Re-enable the async bindings.
4242
4243         * test/glib/test-dbus-glib.c:
4244         Add a test for the generated async bindings.
4245
4246 2005-07-08  Colin Walters  <walters@verbum.org>
4247
4248         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4249         connection concept.
4250         
4251 2005-07-08  Colin Walters  <walters@verbum.org>
4252         
4253         * tools/Makefile.am: Kill of print-introspect in favor of using
4254         dbus-send --print-reply=literal.
4255
4256         * test/glib/test-service-glib.xml: 
4257         * test/glib/test-service-glib.c (my_object_get_objs): New test
4258         for "ao".
4259
4260         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4261         (main): Test GetObjs.
4262
4263         * glib/examples/statemachine/Makefile.am:
4264         * glib/examples/statemachine/sm-marshal.list:
4265         * glib/examples/statemachine/statemachine-client.c:
4266         * glib/examples/statemachine/statemachine-server.c:
4267         * glib/examples/statemachine/statemachine-server.xml:
4268         * glib/examples/statemachine/statemachine.c:
4269         * glib/examples/statemachine/statemachine.h:
4270         * glib/examples/statemachine/statemachine.xml:
4271
4272         New example.
4273
4274         * glib/examples/example-service.c (main): Move invocation
4275         of dbus_g_object_type_install_info earlier, to emphasize it
4276         should only be done once.
4277
4278         * glib/examples/example-signal-emitter.c (main): Ditto.
4279
4280         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4281
4282         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4283         (dbus_gvalue_marshal): Update prototypes.
4284
4285         * glib/dbus-gvalue.c: Update all marshalling functions to take
4286         const GValue instead of GValue.
4287         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4288         types.
4289         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4290         change.
4291         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4292         Return a newly-allocated string.
4293         (demarshal_proxy, demarshal_object_path, demarshal_object)
4294         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4295         we get the wrong types from message.
4296         (get_type_demarshaller): New function, extracted from
4297         dbus_gvalue_demarshal.
4298         (demarshal_collection): New function, demarshals generic
4299         collection.
4300         (dbus_gvalue_demarshal): Just invoke result of
4301         get_type_demarshaller.  Throw error if we don't have one.
4302         (marshal_garray_basic): Abort on OOM.
4303         (get_type_marshaller): New function, extracted from
4304         dbus_gvalue_marshal.
4305         (collection_marshal_iterator, marshal_collection): New functions;
4306         implements generic marshalling for an iteratable specialized
4307         collection.
4308         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4309
4310         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4311         G_TYPE_STRING.
4312         (ptrarray_value_from_gvalue): Ditto.
4313         (ptrarray_append, ptrarray_free): New functions.
4314         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4315         (slist_append, slist_end_append, slist_free): New functions.
4316         (dbus_g_type_specialized_builtins_init): Add append fuctions
4317         for GPtrArray and GSList.  Register GSList.
4318         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4319
4320         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4321         New.
4322         (dbus_g_type_specialized_collection_init_append)
4323         (dbus_g_type_specialized_collection_append)
4324         (dbus_g_type_specialized_collection_end_append): Prototype.
4325         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4326         end_append_func.
4327
4328         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4329         (dbus_g_type_specialized_collection_append) 
4330         (dbus_g_type_specialized_collection_end_append): New functions.
4331         (dbus_g_type_map_value_iterate): Take const GValue.
4332         (dbus_g_type_collection_value_iterate): Ditto.
4333
4334         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4335         _dbus_gvalue_utils_test.
4336         
4337         * glib/dbus-gtest.h: Prototype it.
4338
4339         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4340         using uninitialized owner_list.
4341         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4342         public API.
4343         (dbus_g_proxy_end_call_internal): Update to use error set
4344         from dbus_gvalue_demarshal instead of setting it here.
4345         (dbus_g_proxy_begin_call): Move return_if_fail here.
4346
4347         * glib/dbus-gobject.c (write_interface): Update for
4348         dbus_gtype_to_signature returning new string.
4349
4350         * configure.in: Add glib/examples/statemachine.
4351
4352 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4353
4354         * configure.in: Add a configure option, --with-console-auth-dir
4355         
4356         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4357         new setting.  Patch from Kay Sievers.
4358
4359 2005-07-06  Colin Walters  <walters@verbum.org>
4360
4361         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4362         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4363         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4364         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4365         Delete in favor of dbus_g_proxy_begin_call and
4366         dbus_g_proxy_cancel_call.
4367         (DBusGProxyCall, DBusGProxyCallNotify): New.
4368         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4369         data, and destroy function.  This replaces
4370         dbus_g_pending_call_set_notify.
4371         (dbus_g_proxy_cancel_call): Prototype.
4372         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4373
4374         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4375         pending_calls map.
4376         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4377         internal proxy for calls to the bus. Remove
4378         pending_nameowner_calls, now the internal proxy keeps track.
4379         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4380         pending_nameowner_calls.
4381         (got_name_owner_cb): Update prototype, and use
4382         dbus_g_proxy_end_call.
4383         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4384         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4385         favor of using internal proxy.
4386         (dbus_g_proxy_manager_unregister): Update to use
4387         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4388         (dbus_g_proxy_init): Initialize pending calls map.
4389         (dbus_g_proxy_constructor): New.
4390         (dbus_g_proxy_class_init): Add get/set property functions,
4391         constructor, and add NAME, PATH, and INTERFACE properties.
4392         (cancel_pending_call): New function.
4393         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4394         cancel them.
4395         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4396         (GPendingNotifyClosure): New structure.
4397         (d_pending_call_notify, d_pending_call_free): Moved here from
4398         dbus-glib.c.
4399         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4400         ordering.
4401         (manager_begin_bus_call): New internal function for talking to
4402         internal bus proxy.
4403         (dbus_g_proxy_new): Construct object using GObjet properties.
4404         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4405         Create closure of same, and insert call into map of pending calls.
4406         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4407         call.  Look up pending call in current set.  Remove it when we've
4408         completed.
4409         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4410         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4411         and destroy function directly.
4412         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4413         (dbus_g_proxy_call): Invoke with NULL callback.
4414         (dbus_g_proxy_cancel_call): New function, replaces
4415         dbus_g_pending_call_cancel.
4416
4417         * glib/dbus-gparser.c (validate_signature): Fix call to
4418         dbus_set_g_error.
4419
4420         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4421         New quark for attaching metadata to GType.
4422         (info_hash): Delete.
4423         (lookup_object_info): Look up using quark.
4424         (dbus_g_object_type_install_info): Check that a type is classed,
4425         not that it's an object.  Also just install type data using quark
4426         instead of using global hash.
4427
4428         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4429         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4430         (GPendingNotifyClosure): Delete.
4431         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4432         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4433
4434         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4435         client method generation until we can fix it...
4436         
4437         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4438         (load_from_service_thread_func): Ditto.
4439
4440         * tools/dbus-names-model.c (struct NamesModel): Hold
4441         DBusGProxyCall.
4442         (have_names_notify): Update prototype, use
4443         dbus_g_proxy_cancel_call.
4444         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4445
4446         * tools/dbus-monitor.c (filter_func): Update for print_message
4447         API change.
4448
4449         * test/glib/test-dbus-glib.c: Add more tests for async
4450         invocations.  Update many begin_call/end_call pairs to just use
4451         dbus_g_proxy_call.
4452
4453         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4454         allows us to dump print-introspect.c.
4455
4456         * tools/dbus-print-message.h (print_message): Add literal argument
4457         to print_message which is intended to allow printing arguments without
4458         metadata like "string=".
4459
4460         * tools/dbus-print-message.c (print_iter): Add literal argument.
4461         (print_message): Allow printing string messages literally.
4462
4463 2005-07-05  Colin Walters  <walters@verbum.org>
4464
4465         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4466         Remove value refcount leak, original patch from Jorn Baayen
4467         <jorn@openedhand.com>.  Also remove useless extra value in favor
4468         of prepending to value array directly.
4469
4470 2005-07-02  Colin Walters  <walters@verbum.org>
4471
4472         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4473
4474 2005-07-01  Colin Walters  <walters@verbum.org>
4475
4476         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4477         
4478         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4479         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4480         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4481         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4482
4483 2005-06-30  Colin Walters  <walters@verbum.org>
4484
4485         * test/glib/test-dbus-glib.c:
4486         * test/glib/test-service-glib.c:
4487         * test/glib/test-service-glib.xml: Update tests for new error
4488         setting bits, also add async tests (patch from Ross Burton).
4489
4490         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4491         DBUS_GLIB_THREADS_LIBS.
4492
4493         * glib/dbus-gproxy.c (get_name_owner)
4494         (dbus_g_pending_call_end_valist): Ditto.
4495
4496         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4497         domain (GQuark) to DBusGErrorInfo.  
4498         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4499         quark in error_metadata.  Take message interface as default
4500         error message interface.
4501         (gerror_to_dbus_error_message): Pass message interface.
4502         (dbus_set_g_error): Resurrected.
4503         (dbus_g_error_info_free): New function.
4504         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4505         of _peek to actually create the object class if it hasn't been
4506         created yet.
4507         (dbus_g_error_domain_register): New function.
4508
4509         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4510
4511         * glib/dbus-gparser.c (validate_signature): Ditto.
4512
4513         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4514         (dbus_g_error_domain_register): Prototype.
4515
4516         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4517         Update tests.
4518
4519 2005-06-29  Colin Walters  <walters@verbum.org>
4520
4521         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4522         DBUS_TYPE_G_OBJECT_PATH.
4523
4524         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4525         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4526         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4527         (dbus_g_object_path_get_g_type): New function.
4528         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4529         to DBUS_TYPE_G_OBJECT_PATH by default.
4530         (demarshal_proxy): Remove unused name variable.
4531         (demarshal_object_path, marshal_object_path): New functions.
4532         (demarshal_proxy_array, marshal_proxy_array): Delete.
4533         
4534         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4535         DBUS_TYPE_G_OBJECT_PATH to char *.
4536         (dbus_g_type_get_lookup_function): Map builtin
4537         DBUS_TYPE_G_OBJECT_PATH.
4538
4539         * test/glib/test-dbus-glib.c
4540         * test/glib/test-service-glib.c (my_object_objpath): 
4541         Adapt tests to new object path marshalling.
4542
4543 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4544
4545         * configure.in: force check for Python >= 2.4
4546
4547 2005-06-29  Colin Walters  <walters@verbum.org>
4548         
4549         Patch from Ross Burton <ross@openedhand.com>
4550         
4551         * glib/dbus-gobject.c (invoke_object_method): Unset object
4552         value in all cases, not only in async case.
4553
4554 2005-06-29  Colin Walters  <walters@verbum.org>
4555
4556         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4557         name_call for keeping track of any outgoing GetNameOwner call.
4558         Also add for_owner and associated.
4559         (struct _DBusGProxyManager): Add owner_names, which is hash table
4560         that maps a base name to a list of names it owns (that we're
4561         interested in).  Add pending_nameowner_calls which is a list of
4562         all outstanding GetNameOwner; avoids us having to iterate over
4563         every proxy.  Add unassociated_proxies which keeps track of name
4564         proxies with no associated name owner.
4565         (dbus_g_proxy_manager_unref): Destroy owner_names.
4566         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4567         name refcounts.
4568         (find_name_in_info, name_owner_foreach)
4569         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4570         (dbus_g_proxy_manager_monitor_name_owner)
4571         (dbus_g_proxy_manager_unmonitor_name_owner)
4572         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4573         New functions; they manipulate the owner_names mapping.
4574         (got_name_owner_cb): New function.
4575         (get_name_owner): New function, extracted from
4576         dbus_g_proxy_new_for_name_owner.
4577         (dbus_g_proxy_manager_register): For now we need to keep track of
4578         all NameOwnerChanged.  Also if the proxy is for a name, if we
4579         don't already know the name owner, queue a new GetNameOwner
4580         request and add it to our list of unassociated proxies.  Otherwise
4581         inc the refcount.
4582         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4583         cancel any pending GetNameOwner call, etc.
4584         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4585         the owner_names mapping to look up the current names for the
4586         signal source, and dispatch to any proxies for that name.
4587         (dbus_g_proxy_new): Initialize new members.
4588         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4589         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4590         (dbus_g_pending_call_end_valist): New function, extracted from
4591         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4592         but want to use the GLib infrastructure.  Also note how many
4593         arguments in reply were over.
4594         (dbus_g_pending_call_end): New function, just call
4595         dbus_g_pending_call_end_valist.
4596         (dbus_g_proxy_end_call_internal): Just call
4597         dbus_g_pending_call_end_valist.
4598
4599         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4600         of builtin marshaller for STRING_STRING_STRING.
4601
4602         * test/glib/test-dbus-glib.c: 
4603         * test/glib/test-service-glib.c:
4604         * test/glib/test-service-glib.xml:
4605         Extend tests to cover name proxies, destruction of owner proxies,
4606         etc.
4607         
4608         * glib/examples/example-signal-recipient.c
4609         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4610         
4611         * tools/dbus-send.c (main): Print D-BUS error name in addition
4612         to message.
4613
4614 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4615
4616         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4617         cmessage_function_handler): Patch from 
4618         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4619         by using the Py_GILState_Ensure/Release to synchronize with the
4620         python runtime.
4621         
4622 2005-06-28  Ray Strode  <rstrode@redhat.com>
4623
4624         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4625         babysitter helper process on last unref, bug #2813.
4626
4627 2005-06-27  Colin Walters  <walters@verbum.org>
4628
4629         * test/glib/test-dbus-glib.c: 
4630         * test/glib/test-service-glib.c:
4631         * test/glib/test-service-glib.xml:
4632         Test hash table signal emitting.
4633
4634         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4635         types to their fundamental basis types, since this is what
4636         marshallers operate on.  Also add an entry for VOID__BOXED.
4637         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4638
4639 2005-06-26  Havoc Pennington  <hp@redhat.com>
4640
4641         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4642         from Don Park
4643
4644 2005-06-26  Colin Walters  <walters@verbum.org>
4645
4646         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4647         (dbus_g_error_set): New public function from its ashes; used by
4648         both service-side method implementation and GLib bindings
4649         internals.
4650         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4651         (_dbus_glib_test): Add some tests.
4652
4653         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4654
4655         * test/glib/test-service-glib.c (my_object_throw_error): Use
4656         dbus_g_error_set.
4657
4658         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4659         errors thrown by dbus_g_error_set.
4660
4661         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4662
4663         * glib/dbus-gparser.c (validate_signature): Ditto.
4664
4665         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4666         (dbus_g_proxy_end_call_internal): Ditto.
4667
4668         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4669         converts DBUS_ERROR_x to DBUS_GERROR_x.
4670         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4671
4672         * doc/TODO: Remove error TODO.
4673
4674         * doc/dbus-tutorial.xml: Update with documentation about error
4675         handling.
4676
4677         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4678         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4679         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4680
4681 2005-06-22  Colin Walters  <walters@verbum.org>
4682         
4683         Patch from Ross Burton <ross@openedhand.com>
4684
4685         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4686
4687 2005-06-20  Colin Walters  <walters@verbum.org>
4688
4689         * configure.in: Add glib/examples.
4690
4691         * glib/Makefile.am: Add examples/
4692
4693         * glib/examples/.cvsignore
4694         * glib/examples/Makefile.am
4695         * glib/examples/example-client.c
4696         * glib/examples/example-service.c
4697         * glib/examples/example-service.xml
4698         * glib/examples/example-signal-emitter.c
4699         * glib/examples/example-signal-emitter.xml
4700         * glib/examples/example-signal-recipient.c:
4701         New files; GLib binding examples, ported from
4702         python/examples.
4703
4704 2005-06-20  Colin Walters  <walters@verbum.org>
4705
4706         * dbus/dbus-glib.h: 
4707         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4708         dbus_g_proxy_call.
4709
4710         * glib/dbus-binding-tool-glib.c: 
4711         * doc/dbus-tutorial.xml: 
4712         * test/glib/test-dbus-glib.c: Update for rename.
4713         
4714 2005-06-20  Colin Walters  <walters@verbum.org>
4715
4716         Patch suggested by Ross Burton <ross@openedhand.com>
4717
4718         * glib/dbus-gobject.c (export_signals): Free signal name.
4719         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4720         memory leak.  Add a bit of documentation.
4721         (dbus_g_method_return_error): Free context, and note we do
4722         so.
4723
4724 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4725
4726         * dbus/dbus-glib.h:
4727         * glib/dbus-gobject.c:
4728         * glib/dbus-gproxy.c:
4729         * glib/dbus-gvalue.c: Predeclare structs as 
4730         typedef struct _Something Something instead of 
4731         typedef struct Something Something, so we can 
4732         redeclare the prototypes. Other GNOME libraries 
4733         do this already.
4734
4735 2005-06-17  Colin Walters  <walters@verbum.org>
4736
4737         * tools/dbus-names-model.c (have_names_notify): Fix call
4738         to dbus_g_proxy_end_call.
4739         
4740 2005-06-17  Colin Walters  <walters@verbum.org>
4741
4742         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4743         spew warnings if we get malformed remote signals.
4744
4745         * glib/dbus-gobject.c (propsig_iterate): New function.
4746         (lookup_object_info): New function, extracted from
4747         lookup_object_and_method.
4748         (introspect_properties, introspect_signals): Delete; these
4749         are merged into write_interface.
4750         (write_interface): Write out signals and properties here;
4751         dump the org.gtk.object stuff and use the interface given
4752         in the introspection data blob.  Also fix up property XML.
4753         (lookup_values): New function.
4754         (introspect_interfaces): Gather a mapping from interface to a
4755         list of its methods, signals, and properties, then write out
4756         each interface.
4757         (lookup_object_and_method): Use lookup_object_info.
4758         (struct DBusGSignalClosure): Add interface.
4759         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4760         we can just use the constant data.
4761         (dbus_g_signal_closure_finalize): Don't free signal name.
4762         (signal_emitter_marshaller): Use interface from signal closure.
4763         (export_signals): Only export signals mentioned in introspection
4764         blob.
4765         (dbus_g_connection_register_g_object): Warn if we have no
4766         introspection data for an object.
4767         (funcsig_equal): Remove unused variable.
4768         (dbus_g_object_register_marshaller): Take varargs instead of
4769         list.
4770         (dbus_g_object_register_marshaller_array): New function,
4771         extracted from old dbus_g_object_register_marshaller.
4772
4773         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4774         signals and property data.
4775         (write_quoted_string): New function, extracted from generate_glue.
4776         (generate_glue): Write signals and properties to introspection
4777         blob.
4778
4779         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4780         exported_signals and exported_properties.
4781         (dbus_g_object_register_marshaller): Update prototype.
4782         (dbus_g_object_register_marshaller_array): Prototype.
4783         
4784         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4785
4786         * test/glib/test-service-glib.c: Add new test signals and method
4787         to emit them.
4788
4789         * test/glib/test-service-glib.xml: Add some test signals.
4790
4791         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4792         and my-object-marshal.h
4793         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4794         my-object-marshal.c.
4795         (my-object-marshal.c, my-object-marshal.h): Implement.
4796
4797         * test/glib/.cvsignore: Update.
4798
4799         * doc/TODO: Remove two GLib TODO items fixed by this
4800         patch.
4801
4802 2005-06-16  Colin Walters  <walters@verbum.org>
4803
4804         * doc/TODO: Update for GLib bindings.
4805         
4806 2005-06-16  Colin Walters  <walters@verbum.org>
4807
4808         * glib/dbus-binding-tool-glib.c:
4809         * glib/dbus-gobject.c:
4810         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4811         from Ross Burton, for his GLib bindings work.
4812
4813 2005-06-16  Colin Walters  <walters@verbum.org>
4814
4815         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4816         to iterate instead of walking to G_TYPE_INVALID.
4817
4818         Patch based on a patch from Ryan Gammon.
4819
4820 2005-06-16  Colin Walters  <walters@verbum.org>
4821
4822         * bus/bus.c (bus_context_new): Set parser to NULL
4823         after we unref it (Patch from Chris Boscolo, #2174).
4824         
4825 2005-06-16  Colin Walters  <walters@verbum.org>
4826
4827         * python/dbus_bindings.pyx.in: Import size_t,
4828         __int64_t, __uint64_t, and __signed.
4829
4830         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4831         Define cmsg struct, output it.
4832         (_dbus_read_credentials_unix_socket):
4833         Use cmsg struct.
4834         
4835         Patch from Joe Markus Clarke for FreeBSD support.
4836         
4837 2005-06-16  Colin Walters  <walters@verbum.org>
4838
4839         * tools/dbus-send.c (append_array): Use strtok.
4840         (append_dict): New function.
4841         (type_from_name): New function, extracted from main.
4842         (main): Handle sending dicts.
4843
4844         * tools/dbus-print-message.c (print_iter): Print dict
4845         entries.
4846         
4847 2005-06-16  Colin Walters  <walters@verbum.org>
4848
4849         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4850         values as the empty string (#2948).
4851         
4852 2005-06-16  Colin Walters  <walters@verbum.org>
4853
4854         * dbus/Makefile.am:
4855         * mono/doc/Makefile.am:
4856         * test/glib/Makefile.am:
4857
4858         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4859
4860 2005-06-16  Colin Walters  <walters@verbum.org>
4861
4862         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4863         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4864
4865         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4866         Increment pointer after swapping fixed array.  Add assertion
4867         for array length.
4868                 
4869 2005-06-15  Colin Walters  <walters@verbum.org>
4870
4871         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4872         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4873         
4874 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4875
4876         * NEWS: Update to 0.34
4877
4878 2005-06-15  David Zeuthen  <davidz@redhat.com>
4879
4880         * configure.in (LT_CURRENT): Revert back to 1 as the library
4881         hasn't changed and we've certainly not committed to protocol
4882         stability yet.  All this does is to break ABI. See commit note
4883         from hp@redhat.com 2005-05-05 for details.
4884         
4885 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4886
4887         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4888         (_dbus_connection_run_builtin_filters): New method
4889         (dbus_connection_dispatch): Run the builtin filters which in turn
4890         runs the peer filter which handles Ping messages.
4891
4892         * doc/TODO: 
4893          - Ping isn't handled: This patch fixes it
4894          
4895          - Add a test case for the Ping message: added TODO item
4896
4897 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4898
4899         * dbus/dbus-message.c:
4900         (dbus_message_has_path): New method
4901         (dbus_message_has_interface): New method
4902         (dbus_message_has_member): New method
4903
4904         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4905         New method
4906
4907         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4908         the keyring directory is private to the user
4909
4910         * doc/TODO:
4911          - The convenience functions in dbus-bus.h should perhaps have
4912          the signatures that they would have if they were autogenerated
4913          stubs. e.g. the acquire service function. We should also evaluate
4914          which of these functions to include, in light of the fact that
4915          GLib/Qt native stubs will probably also exist.: Punted
4916
4917          - add dbus_message_has_path(), maybe has_member/interface:
4918          fixed in this patch
4919
4920          - in dbus-keyring.c, enforce that the keyring dir is not
4921          world readable/writable: Fixed in this patch
4922
4923 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4924
4925         * dbus/dbus-marshal-validate.h: Added a new validation
4926         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4927         out of memory errors when validating signitures
4928
4929         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4930         in places where we previously used DBUS_VALID and a FALSE return 
4931         value to indicate OOM
4932         
4933         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4934         Use a stack to track the number of elements inside containers.  The 
4935         stack values are then used to validate that dict entries have only two
4936         elements within them.
4937         (validate_body_helper): check the reason for failure when validating
4938         varients
4939         
4940         * dbus/dbus-message.c (load_message): use 
4941         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4942         DBUS_VALID and a FALSE return value to indicate OOM
4943
4944         * doc/TODO: remove "- validate dict entry number of fields" as this
4945         patch fixes it
4946
4947 2005-06-14  David Zeuthen  <davidz@redhat.com>
4948
4949         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4950         watches (if applicable) and add new watches
4951
4952         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4953         (main): Setup SIGIO signal handler if using D_NOTIFY
4954
4955         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4956
4957         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4958         (merge_included): Also merge conf_dirs list
4959         (bus_config_parser_unref): Clear conf_dirs list
4960         (include_dir): Add directory to conf_dirs list
4961         (bus_config_parser_get_conf_dirs): New function
4962
4963         * bus/dir-watch.[ch]: New files
4964
4965         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4966
4967         * configure.in: Add checks for D_NOTIFY on Linux
4968
4969 2005-06-14  Colin Walters  <walters@verbum.org>
4970
4971         * glib/dbus-binding-tool-glib.c:
4972         * glib/dbus-gobject.c:
4973         * glib/dbus-gvalue.c: Fix indentation and brace style.
4974         
4975 2005-06-14  Ross Burton <ross@openedhand.com>.
4976
4977         * glib/dbus-glib.h: Make DBusGMethodInvocation
4978         a private structure.  Rearrange prototypes a bit.
4979         
4980         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4981         documentation for first_arg_type.
4982         
4983         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4984         here, add documentation.  Move dbus_g_method_return
4985         and dbus_g_method_return_error into public API
4986         section.
4987
4988 2005-06-14  Colin Walters  <walters@verbum.org>
4989
4990         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4991         Add missing return statements, noticed by Ross Burton.
4992         
4993 2005-06-13  Ross Burton <ross@openedhand.com>.
4994
4995         * glib/dbus-gobject.c: Handle errors on message
4996         demarshalling by sending error message back.
4997         * glib/dbus-gvalue.c: Initialize return variables.
4998
4999 2005-06-13  Colin Walters  <walters@verbum.org>
5000
5001         * glib/Makefile.am: Fix thinko in last patch.
5002
5003 2005-06-13  Colin Walters  <walters@verbum.org>
5004
5005         * glib/Makefile.am: Move dbus-gtype-specialized.c
5006         and dbus-gtype-specialized.h into a _HEADERS variable,
5007         install them.
5008
5009 2005-06-12  Colin Walters  <walters@verbum.org>
5010
5011         Async signals and various bugfixes and testing by
5012         Ross Burton <ross@openedhand.com>.
5013
5014         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5015         (dbus_gvalue_genmarshal_name_from_type)
5016         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5017         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5018         (dbus_g_value_types_init, dbus_gtype_from_signature)
5019         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5020         (dbus_gtypes_from_arg_signature): New function prototypes.
5021         (dbus_gvalue_demarshal): Take context and error arguments.
5022         (dbus_gvalue_demarshal_variant): New function.
5023         (dbus_gvalue_demarshal_message): New function.
5024         (dbus_gvalue_store): Delete.
5025
5026         * glib/dbus-gvalue.c:
5027
5028         File has been almost entirely rewritten; now we special-case
5029         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5030         hash tables correctly, etc.  Full support for recursive values
5031         is not yet complete.
5032
5033         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5034         argument of signal to G_TYPE_POINTER since we now pass a
5035         structure.
5036         (lookup_g_marshaller): Delete in favor of
5037         _dbus_gobject_lookup_marshaller.
5038         (marshal_dbus_message_to_g_marshaller): Use
5039         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5040         to handle remote signal callbacks.
5041         (dbus_g_proxy_new_from_proxy): New function; creates a new
5042         DBusGProxy by copying an existing one.
5043         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5044         (dbus_g_proxy_get_path): New functions.
5045         (dbus_g_proxy_marshal_args_to_message): New function;
5046         factored out of existing code.
5047         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5048         from a varargs array.
5049         (dbus_g_proxy_begin_call_internal): New function.
5050         (dbus_g_proxy_end_call_internal): New function.
5051         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5052         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5053         after collecting args into value array.
5054         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5055         invoke dbus_g_proxy_end_call_internal.
5056         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5057         end_call_internal.
5058         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5059         types.
5060         (array_free_all): New function.
5061         (dbus_g_proxy_add_signal): Take GTypes.
5062
5063         * glib/dbus-gobject.h:
5064         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5065         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5066         Prototype.
5067
5068         * glib/dbus-gobject.c: Add a global marshal_table hash which
5069         stores mappings from type signatures to marshallers.  Change lots
5070         of invocations of dbus_gtype_to_dbus_type to
5071         dbus_gtype_to_signature.
5072         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5073         (introspect_signals): Fix test for query.return_type.
5074         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5075         (invoke_object_method): Many changes.  Handle asynchronous
5076         invocations.  Convert arguments with
5077         dbus_gvalue_demarshal_message.  Handle errors.  Use
5078         DBusSignatureIter instead of strlen on args. Handle all arguments
5079         generically.  Special-case variants.
5080         (dbus_g_method_return, dbus_g_method_return_error): New function.
5081         (DBusGSignalClosure): New structure, closes over signal
5082         information.
5083         (dbus_g_signal_closure_new): New function.
5084         (dbus_g_signal_closure_finalize): New function.
5085         (signal_emitter_marshaller): New function; is special marshaller
5086         which emits signals on bus.
5087         (export_signals): New function; introspects object signals and
5088         connects to them.
5089         (dbus_g_object_type_install_info): Take GType instead of
5090         GObjectClass.
5091         (dbus_g_connection_register_g_object): Invoke export_signals.
5092         (dbus_g_connection_lookup_g_object): New function.
5093         (DBusGFuncSignature) New structure; used for mapping type
5094         signatures to marshallers.
5095         (funcsig_hash): New function; hashes DBusGFuncSignature.
5096         (funcsig_equal): New function; compares DBusGFuncSignature.
5097         (_dbus_gobject_lookup_marshaller): New function.
5098         (dbus_g_object_register_marshaller): New function; used to
5099         register a marshaller at runtime for a particular signature.
5100
5101         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5102
5103         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5104         which notes a server method implementation should be
5105         asynchronous.
5106
5107         * glib/dbus-binding-tool-glib.c
5108         (dbus_binding_tool_output_glib_server): Call
5109         dbus_g_value_types_init.
5110         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5111         variants specially.
5112         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5113         of a lookup function.
5114         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5115         (write_untyped_out_args): New method; write output arguments.
5116         (write_formal_declarations_for_direction): Function for
5117         writing prototypes.
5118         (write_formal_parameters_for_direction): Function for
5119         writing implementations.
5120         (write_typed_args_for_direction): Function for writing
5121         arguments prefixed with GTypes.
5122         (write_async_method_client): Write out async version
5123         of method.
5124
5125         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5126         (dbus_g_type_get_marshal_name): Move mapping from GType
5127         to marshal name into here.
5128         (dbus_g_type_get_c_name): Move into here.
5129         (compute_marshaller): Convert signature to type with
5130         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5131         (compute_marshaller_name): Ditto.
5132         (compute_marshaller): Handle async signal annotations.
5133         (gather_marshallers): Return if we don't have a known
5134         prefix.
5135         (generate_glue): Collect introspection blob here, and
5136         write all of the blob at the end.  This allows an object
5137         with multiple interfaces to work.
5138         Mark async methods in introspection blob.
5139
5140         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5141         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5142         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5143
5144         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5145         avoids people accidentally using DBUS_TYPE_* which should
5146         not be necessary anymore.
5147         Do include dbus-gtype-specialized.h, which are utilities
5148         for GLib container types.
5149         Add various #defines for types such as
5150         DBUS_TYPE_G_BOOLEAN_ARRAY.
5151         (DBusGValueIterator, DBusGValue): Define, not fully used
5152         yet.
5153         (dbus_g_value_get_g_type): Type for recursive value.
5154         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5155         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5156         (dbus_g_value_free): Prototypes.
5157         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5158         (dbus_g_proxy_set_interface): Prototype.
5159         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5160         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5161         types.
5162         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5163         Accessors.
5164         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5165         doing async invocations.
5166         (dbus_g_method_return, dbus_g_method_return_error):
5167         Prototypes.
5168         * doc/dbus-tutorial.xml: Update GLib section.
5169         
5170         * tools/dbus-viewer.c (load_child_nodes): Update
5171         for new invocation type of dbus_g_proxy_end_call.
5172         (load_from_service_thread_func): Ditto.
5173
5174         * tools/print-introspect.c (main): Ditto.
5175
5176         * tools/dbus-names-model.c (have_names_notify)
5177         (names_model_reload, names_model_set_connection)
5178         Use GTypes.
5179
5180         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5181         needed since Python bindings use GLib bindings.
5182
5183         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5184         Add --prefix argument.
5185
5186         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5187         unneeded --ignore-unsupported arg.
5188         
5189         * test/glib/test-service-glib.c: 
5190         * test/glib/test-service-glib.xml:
5191         * test/glib/test-dbus-glib.c: Add many more tests.
5192
5193 2005-06-06  David Zeuthen  <davidz@redhat.com>
5194
5195         * doc/TODO: Add item about need to remove deprecated functions.
5196
5197         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5198
5199         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5200         to repair the ABI which was broken with the last commit.
5201
5202 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5203
5204         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5205         (dbus_connection_disconnect): renamed to dbus_connection_close 
5206         for API symmetry with dbus_connection_open
5207         (_dbus_connection_open_internal): 
5208         s/dbus_connection_disconnect/dbus_connection_close
5209
5210         * dbus/dbus-bus.c (dbus_bus_get):
5211         s/dbus_connection_disconnect/dbus_connection_close
5212
5213         * bus/connection.c (bus_connections_unref, 
5214         bus_connections_setup_connection, bus_connections_expire_incomplete):
5215         s/dbus_connection_disconnect/dbus_connection_close
5216
5217         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5218         kill_client_connection_unchecked, check_hello_connection):
5219         s/dbus_connection_disconnect/dbus_connection_close
5220
5221         * bus/bus.c (new_connection_callback):
5222         s/dbus_connection_disconnect/dbus_connection_close
5223
5224         * tools/dbus-send.c (main):
5225         s/dbus_connection_disconnect/dbus_connection_close
5226
5227         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5228         s/dbus_connection_disconnect/dbus_connection_close
5229         
5230         * test/test-service.c (path_message_func, filter_func):
5231         s/dbus_connection_disconnect/dbus_connection_close
5232         
5233         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5234         
5235 2005-05-25  Colin Walters  <walters@verbum.org>
5236
5237         * dbus/dbus-protocol.h: Move various bus service #defines such
5238           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5239           dbus/dbus-shared.h.
5240         * dbus/dbus-shared.h: Various defines moved here.
5241         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5242
5243 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5244
5245         * python/__init__.py: Python bindings deserve a minor version
5246         update.  Upped to (0, 40, 2)
5247
5248 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5249
5250         * python/decorators.py: add explicitly_pass_message decorator
5251         for passing in the dbus message as keyword for edge case signal
5252         handling
5253
5254         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5255         to conform with what dbus expects for match rules
5256         (SignalMatchRule.execute): add the dbus message as a keyword
5257         if the signal handler has requested it
5258
5259         * python/examples/example/signal-recipient.py: added some more
5260         examples on how to hook up to signals
5261
5262 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5263
5264         * python/decorators.py: import dbus_bindings
5265
5266         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5267         SignalMatchNode): new classes that implement wildcard signal
5268         callback matching using a tree lookup. Heavily modified from a
5269         patch sent by Celso Pinto (fd.o bug #3241)
5270
5271         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5272         use new match classes to handle signals.
5273
5274 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5275         
5276         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5277
5278 2005-05-18  Havoc Pennington  <hp@redhat.com>
5279
5280         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5281         gettext. Not really worth requiring yet perhaps, but any
5282         production quality 1.0 would require it so we should go ahead and
5283         get things set up. We do have a couple token calls to
5284         bindtextdomain in the code already.
5285
5286 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5287
5288         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5289         when using recursive g_main_loops
5290
5291         * python/_dbus.py (class Bus): add the ProxyObjectClass
5292         alias for ProxyObject to make it easier for the Twisted 
5293         networking framework to integrate dbus.
5294
5295         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5296         alias for ProxyMethod to make it easier for the Twisted 
5297         networking framework to integrate dbus. 
5298
5299 2005-05-11  Ross Burton  <ross@openedhand.com>
5300
5301         * glib/dbus-glib-tool.c: Add --prefix argument.
5302         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5303         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5304         Add prefix argument.
5305         (generate_glue): Pass prefix argument down.
5306         (dbus_binding_tool_output_glib_server): Pass prefix to
5307         glib-genmarshal.
5308         
5309 2005-05-11  Colin Walters  <walters@verbum.org>
5310
5311         * tools/dbus-send.c (append_array): New function.
5312         (append_arg): Broken out from main.
5313         (main): Add cheesy hack to send arrays and variants.
5314         (usage): Update.
5315         * tools/dbus-print-message.c (print_iter): Broken out
5316         from main.
5317
5318 2005-05-11  Colin Walters  <walters@verbum.org>
5319
5320         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5321         New function, returns signature string for signature iter.
5322         * dbus/dbus-signature.h: Prototype it.
5323         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5324         New function, returns signature string for message iter.
5325         (dbus_message_iter_get_array_len): New function, returns
5326         length of array.
5327         (dbus_message_iter_get_fixed_array): Fix assertion; this
5328         function should be used when the iter is pointing to the
5329         contents of an array
5330         * dbus/dbus-message.h: Prototypes.
5331         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5332         New function; returns length of an array.
5333         * dbus/dbus-marshal-recursive.h: Prototype it.
5334         
5335 2005-05-11  Colin Walters  <walters@verbum.org>
5336
5337         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5338         compilation error.
5339         
5340 2005-05-08  Havoc Pennington  <hp@redhat.com>
5341
5342         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5343         daemon's pid, not the parent's pid, to the file descriptor.
5344         Reported by Taj Morton.
5345
5346 2005-05-05  Havoc Pennington  <hp@redhat.com>
5347
5348         * configure.in (LT_*): add notes on how the libtool versioning
5349         works to save thinking. Increment soname to indicate protocol
5350         breakage (though really the library interface hasn't changed I
5351         guess)
5352
5353         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5354         verify the GUID received from server matches what we were
5355         expecting, if we had an expectation
5356
5357         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5358         (_dbus_auth_get_guid_from_server): new function
5359         (send_begin): parse the OK args
5360
5361         * doc/dbus-specification.xml: add GUID to the auth protocol
5362
5363 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5364
5365         * Fix my name in previous changelog ;)
5366
5367         * python/proxies.py (ProxyObject.__getattr__): add further patch
5368         from Anthony Baxter to throw an AttributeError when python 
5369         __special__ functions are called instead of marshling them over 
5370         the bus (Bug#1685 comment 3).
5371
5372 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5373
5374         * python/Makefile.am: changed to use pyexecdir for the binding
5375         shared libraries (Bug#2494)
5376
5377         * python/exceptions.py: bring exceptions over from the bindings
5378         so they can be used in applications (Bug#2036)
5379         Make all exceptions derive from DBusException
5380
5381         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5382         of classes so that print obj doesn't throw an exception (Bug #1685)
5383
5384 2005-05-03  Ross Burton  <ross@openedhand.com>
5385
5386         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5387         Return if we get an error during registration.  Set up a
5388         weak reference on object to unregister if object is destroyed.
5389         (unregister_gobject): New function.
5390         
5391 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5392
5393         * python/dbus_bindings.pyx.in: 
5394         - added new type classes for hinting to the marashaler what type 
5395         to send over the wire
5396         - added int16 and uint16 marshalers
5397         - Fixed a bug in the type constants that caused int32 to go out
5398         as uint16 over the wire
5399         * python/dbus.py: split up into different files and renamed _dbus.py
5400         * python/__init__.py, python/_util.py, python/decorators.py, 
5401         python/exceptions.py, python/proxies.py, python/services.py,
5402         python/types.py: new files split off from dbus.py
5403         * python/Makefile.am: Add new files, remove dbus.py and 
5404         install all python files to <python module dir>/dbus
5405         * python/examples/*: Added #!/usr/bin/env python to the top of
5406         every example.  Patch provided by Tatavarty Kalyan
5407
5408 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5409
5410         * NEWS: Update to 0.33
5411
5412 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5413
5414         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5415         method for doing async calls
5416         (_pending_call_notification): New C function for handling pendning call
5417         callbacks
5418         (set_notify): New method for setting pending call notification
5419         
5420         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5421         Async capabilities added to remote method calls
5422         (Sender): class removed
5423         (RemoteService): class removed
5424         (ObjectTree): class removed for now
5425         (RemoteObject): Renamed to ProxyObject
5426         (RemoteMethod): Renamed to ProxyMethod
5427         (method): Decorator added for decorating python methods as dbus methods
5428         (signal): Decorator added for decorating python methods as signal emitters
5429         (ObjectType): Metaclass added for generating introspection data and the
5430         method callback vtable
5431         (Interface): Wrapper class added to wrap objects in a dbus interface
5432         (Object): Uses ObjectType as its metaclass and exports Introspect
5433         of the org.freedesktop.DBus.Introspectable interface
5434         (ValidationException, UnknownMethodException): new exceptions
5435
5436         * python/examples/*: Modified to fit with the new bindings
5437
5438 2005-04-23  Havoc Pennington  <hp@redhat.com>
5439
5440         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5441         reported by Tony Houghton
5442
5443         * test/test-service.c (main): test
5444         dbus_connection_get_object_path_data()
5445
5446         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5447         the exact_match
5448         (_dbus_object_tree_get_user_data_unlocked): new function used by
5449         dbus_connection_get_object_path_data()
5450         (do_register): add assertion test for get_user_data_unlocked
5451         (object_tree_test_iteration): more tests
5452
5453         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5454         new function from Dan Reed to let you get the user data from 
5455         dbus_connection_register_object_path()
5456
5457 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5458
5459         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5460         in numerous places that did not account for the NULL terminator
5461         (signature_from_seed): changed the manual string copy loop to 
5462         just use strcpy instead
5463         make check should now pass
5464
5465 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5466
5467         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5468         so that it allows messages that are not signals to pass in 
5469         NULL as the interface.
5470
5471 2005-04-18  David Zeuthen  <davidz@redhat.com>
5472
5473         * glib/dbus-gmain.c (io_handler_destroy_source): 
5474         (timeout_handler_destroy_source, connection_setup_free): 
5475         Also unref the source to avoid memory leaks.
5476
5477 2005-04-13  David Zeuthen  <davidz@redhat.com>
5478
5479         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5480         more reasonable, yet still totally arbitrary, value :-). 
5481
5482 2005-04-13  David Zeuthen  <davidz@redhat.com>
5483
5484         * doc/TODO: Added an "important for 1.0" item about selinux
5485         allow/deny messages
5486
5487 2005-04-13  David Zeuthen  <davidz@redhat.com>
5488
5489         * bus/selinux.c: Add c-file-style to top of file
5490         (log_audit_callback): Don't free the data here anymore
5491         (bus_selinux_check): Don't take spid and tpid since appending
5492         that to auxdata may OOM.
5493         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5494         to the caller if we are OOM by taking an error object.
5495         (bus_selinux_allows_send): -do-
5496
5497         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5498         and bus_selinux_allows_send
5499
5500         * bus/bus.c (bus_context_check_security_policy): Pass error and
5501         pass on OOM thrown by bus_selinux_allows_send()
5502
5503         * bus/services.c (bus_registry_acquire_service): Pass error and
5504         pass on OOM thrown by bus_selinux_allows_acquire_service()
5505
5506 2005-04-13  Havoc Pennington  <hp@redhat.com>
5507
5508         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5509         message at a time to avoid monopolizing the main loop, bug 
5510         #2953 from Benjamin Otte
5511
5512 2005-04-09  Havoc Pennington  <hp@redhat.com>
5513
5514         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5515         possible overlap, fix from Daniel Reed
5516         (fixup_alignment): fix signedness warnings
5517         (_dbus_string_append_unichar): ditto
5518
5519 2005-04-09  Havoc Pennington  <hp@redhat.com>
5520
5521         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5522
5523         * glib/dbus-glib-tool.c (main): fix warning
5524
5525         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5526
5527         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5528         add a new function that can be used in simple applications that
5529         don't have a main loop and are willing to block
5530
5531 2005-04-05  David Zeuthen  <davidz@redhat.com>
5532
5533         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5534
5535         * glib/dbus-gmain.c:
5536         (io_handler_destroy_source): Remove from list of IO handlers
5537         of the ConnectionSetup object
5538         (timeout_handler_destroy_source): -do- for timeout handlers
5539         (io_handler_source_finalized): Don't remove from list since
5540         we now do that in io_handler_destroy_source(). Renamed from
5541         io_handler_source_destroyed
5542         (timeout_handler_source_destroyed): -do- for timeout handlers
5543         (connection_setup_free): It is now safe to iterate over all
5544         IO and timeout handlers as the _destroy_source removes them
5545         from the list synchronously
5546
5547 2005-03-30  Havoc Pennington  <hp@redhat.com>
5548
5549         * configure.in: change check to gtk 2.4
5550
5551         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5552         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5553         to 2.4
5554
5555 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5556
5557         * News: Update 0.32
5558
5559         * HACKING: Fixed realease instructions.  configure.in should be updated to
5560           the next release by the person who made the last release.
5561
5562 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5563
5564         * python/lvalue_cast_post_process.py - removed.  Patch has been
5565           submitted to Pyrex maintainers that fixes gcc4.0 errors
5566
5567         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5568
5569 2005-03-24  Daniel Reed  <n@ml.org>
5570
5571         * tools/Makefile.am: Make print-introspect and
5572         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5573
5574 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5575
5576         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5577
5578         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5579           had in Red Hat packages for a while but for some reason never 
5580           got merged upstream
5581           (_dbus_is_a_number): New checks if a string
5582           can be converted to a number and does the conversion if it can
5583           (_dbus_user_database_lookup): Add check to see if the given username
5584           is a udi.  This allows udi's to be used instead of usernames in the
5585           config file.
5586           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5587           is a gdi.  This allows gdi's to be used instead of groupnames in the
5588           config file.
5589
5590 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5591
5592         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5593           code so that it compiles with gcc4.0
5594
5595         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5596           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5597           results back to dbus_binding.c
5598
5599 2005-03-20  Colin Walters  <walters@verbum.org>
5600
5601         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5602
5603         * configure.in: Require GTK+ 2.6.
5604         
5605 2005-03-20  Colin Walters  <walters@verbum.org>
5606
5607         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5608
5609 2005-03-17  Tom Parker  <palfrey@tevp.net>
5610
5611         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5612         print DBUS_UID_UNSET; instead print passed username.  Also
5613         be sure to actually use gid looked up in cache.
5614         
5615         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5616         for DBUS_GID_UNSET and groupname.
5617
5618 2005-03-17  Colin Walters  <walters@verbum.org>
5619
5620         * bus/print-introspect.c: Move to tools/.
5621         * bus/run-with-tmp-session-bus.sh: Ditto.
5622         
5623         * glib/Makefile.am (dbus-glib-bindings.h): Move
5624         generation to tools/Makefile.am.
5625
5626         * test/glib/run-test.sh: Update to handle move
5627         of run-with-tmp-session-bus.sh.
5628
5629         * test/glib/test-service-glib.c: Update to handle
5630         move of dbus-glib-bindings.h.
5631
5632         * tools/print-introspect.c: Moved here
5633         from bus/, and ported to GLib bindings.
5634
5635         * tools/run-with-tmp-session-bus.sh: Moved here
5636         from bus/.
5637
5638         * tools/Makefile.am: Generate dbus-glib-bindings.h
5639         and dbus-bus-introspect.xml here.
5640
5641         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5642         Update.
5643
5644 2005-03-17  Colin Walters  <walters@verbum.org>
5645
5646         * bus/driver.c (write_args_for_direction): Use
5647         _dbus_string_get_const_data to retrieve string;
5648         _dbus_string_get_const_data_len doesn't actually return
5649         a NULL-terminated substring.
5650
5651         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5652         (main): Change to use org_freedesktop_DBus_request_name
5653         instead of using g_proxy_begin_call/end_call.
5654
5655 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5656
5657         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5658         generating the finalizer.  Fixes from Ben Maurer.
5659
5660 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5661
5662         * mono/BusDriver.cs: Update method names: ListServices
5663         becomes ListNames; GetOwner becomes GetNameOwner.
5664
5665         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5666         onto the eval stack when removing the delegate.
5667
5668 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5669
5670         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5671         LT_CURRENT.  Set it to the autoconf variable.
5672                                                                                 
5673         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5674         classes that disconnects the signal handler delegate from the
5675         service object.  Fixes a big leak of proxy objects on the
5676         client side of things.  Patch from Ben Maurer
5677         <bmaurer@ximian.com>
5678
5679 2005-03-12  Colin Walters  <walters@verbum.org>
5680
5681         * bus/driver.c (write_args_for_direction): New function,
5682         parses a type signature into arguments and outputs to
5683         XML.
5684         (bus_driver_handle_introspect): Use it instead of
5685         hardcoding XML for certain signatures.
5686         
5687         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5688         dependency on dbus-daemon.
5689
5690         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5691         argument, pass it to dbus_binding_tool_output_glib_client.
5692
5693         * glib/dbus-binding-tool-glib.c
5694         (generate_client_glue): Protect against multiple inclusion.
5695         (dbus_binding_tool_output_glib_client): Add
5696         G_BEGIN_DECLS/G_END_DECLS.
5697
5698         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5699         Change to just take iface prefix directly.
5700         (write_formal_parameters): Clarify error message.
5701         (check_supported_parameters): New function; checks to see type
5702         signatures of method parameters are supported.
5703         (generate_client_glue): Handle ignore_unsupported flag.
5704         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5705         parameter.
5706
5707         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5708         --ignore-unsupported by default until glib bindings
5709         support arrays.
5710
5711 2005-03-11  Colin Walters  <walters@verbum.org>
5712
5713         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5714         install it.
5715
5716         * bus/print-introspect.c: New file; prints introspection
5717         data for a given name and object path.
5718
5719         * bus/run-with-tmp-session-bus.sh: New file, refactored
5720         from test/glib/run-test.sh.  Creates a temporary session
5721         bus and runs another program.
5722
5723         * test/glib/run-test.sh: Refactor to invoke
5724         run-with-tmp-session-bus.sh.
5725
5726         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5727         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5728         macros instead of hardcoding.
5729
5730         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5731
5732 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5733
5734         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5735         this unref; it doesn't match up evenly in some codepaths.
5736         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5737         this evenly matches with the ref near the top of this function.
5738
5739 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5740
5741         * dbus/dbus-object-tree.c
5742         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5743         and we try to unregister a path that's not registered, still go
5744         through the process of unlocking and don't just return.
5745
5746 2005-03-09  Colin Walters  <walters@verbum.org>
5747
5748         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5749         to this are generated for client-side wrappers.  Invokes a
5750         D-BUS method and returns reply values.  
5751
5752         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5753         function; writes signature string for argument direction.
5754         (write_args_for_direction): Change to pass input values directly
5755         instead of via address, and fix indentation.
5756         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5757         make generated wrappers inlineable.
5758
5759         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5760         note about using dbus_type_is_fixed.
5761
5762         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5763         dbus/dbus-signature.c as dbus_type_is_fixed.
5764
5765         All callers updated.
5766
5767         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5768         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5769
5770         * dbus/dbus-signature.h: Prototype.
5771
5772         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5773         error printf code.
5774
5775         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5776         appropriate instead of just freeing it.
5777         (main): Free returned strings using g_free.
5778
5779         * test/glib/Makefile.am (test-service-glib-glue.h)
5780         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5781
5782         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5783         simply maps a simple D-BUS type to GType.
5784         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5785         GType.
5786         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5787         initialize the value with it.
5788         (dbus_gvalue_binding_type_from_type): Unused, delete.
5789         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5790         various types instead of unmarshalling to value data directly.
5791         Remove can_convert boolean.
5792         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5793         returning directly instead of using can_convert boolean.
5794         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5795         Stores a GValue in a pointer to a value of its corresponding C
5796         type.
5797
5798         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5799         add dbus_gvalue_store.
5800
5801 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5802
5803         Fix a bunch of lifecycle and memory management problems
5804         in the mono bindings.
5805
5806         * mono/Arguments.cs (Arguments): Implement IDisposable
5807
5808         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5809         strictly a static class.
5810
5811         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5812         delegates into this file.
5813         (Connection): Implement IDisposable.
5814         (Dispose): Disconnect the connection and set the raw connection
5815         pointer to IntPtr.Zero.
5816         (~Connection): Call Dispose().
5817         (RegisterObjectPath): Added.  Manages the registration of object
5818         paths so we can cleanly disconnect them at dispose/finalize time.
5819         (UnregisterObjectPath): Ditto.
5820         (set_RawConnection): Unregister all of the object paths when
5821         changing the underlying DBusConnection.  Add them back onto the
5822         new connection, if any.
5823
5824         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5825         more unmanaged resources anymore, so it's not necessary.  Move all
5826         the DBusObjectPathVTable stuff out of here.
5827         (Handler): Save references to our delegates so that they don't get
5828         finalized.  Call Connection.RegisterObjectPath() instead of
5829         dbus_connection_register_object_path() directly.
5830         (Message_Called): Dispose the message after we're finished with
5831         it.
5832
5833         * mono/Message.cs (Message): Implement IDisposable.
5834         (Dispose): Dispose the Arguments, and set the RawMessage to
5835         IntPtr.Zero.
5836         (SendWithReplyAndBlock): We own the ref to the reply that comes
5837         back from dbus_connection_send_with_reply_and_block() so add a
5838         comment about that and unref it after we've constructed a managed
5839         MethodReturn class around it.  Fixes a big, big leak.
5840
5841         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5842         method.
5843         (BuildSignalHandler): After we've sent the Signal message, dispose
5844         of it.
5845         (BuildMethod): Dispose of the method call and reply messages after
5846         we've sent the message and extracted the data we want from the
5847         reply.
5848
5849         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5850         anymore.
5851         (Service_FilterCalled): Dispose of the message after we're
5852         finished with it.
5853
5854 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5855
5856         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5857         After we attach our pending call to the connection, unref
5858         it.  Fixes a leak.
5859  
5860         * mono/Connection.cs (set_RawConnection): Disconnect our
5861         filter and match callbacks from the old connection and
5862         reconnect them to the new connection, if any.
5863
5864         * mono/DBusType/Array.cs: "Code" is a static member, so
5865         don't use "this" to refer to it.  Fix for stricter checking
5866         in Mono 1.1.4.
5867  
5868         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5869         object path that we pass into unmanaged code.
5870  
5871         * mono/DBusType/String.cs (Append): Don't leak the string
5872         that we pass into unmanged code.
5873
5874 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5875         * NEWS: Update for 0.31
5876
5877         * configure.in: Release 0.31
5878         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5879
5880         * qt/Makefile.am: fixed build
5881
5882         * dbus/Makefile.am: soname bump for libdbus
5883
5884         * glib/Makefile.am: soname bump for libdbus-glib
5885
5886 2005-03-05  Havoc Pennington  <hp@redhat.com>
5887
5888         * dbus/dbus-sysdeps.c:
5889         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5890         value
5891         (_dbus_generate_random_bytes_buffer): fix return value
5892
5893         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5894         checks actually work, from Tom Parker <fdo@tevp.net>
5895
5896 2005-03-01  Colin Walters  <walters@verbum.org>
5897
5898         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5899         functions copied from dbus-glib-tool.c.
5900         (main): Convert lots of error code to use them.
5901         Also add some testing for introspection bits.
5902
5903 2005-03-01  Colin Walters  <walters@verbum.org>
5904         
5905         * doc/TODO: Remove introspection signature TODO.
5906
5907 2005-02-27  Colin Walters  <walters@verbum.org>
5908
5909         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5910         Change return value to const char * instead of int so we can do
5911         full signatures.
5912         (struct PropertyInfo, struct ArgInfo): Store char *.
5913         (property_info_new, arg_info_new): Update parameters, strdup.
5914         (property_info_unref, arg_info_unref): Free.
5915
5916         * glib/dbus-gidl.h: Update prototypes.
5917
5918         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5919         (validate_signature): New function, just validates signature and
5920         sets GError.
5921         (parse_property, parse_arg): Invoke validate_signature.  Store
5922         signature instead of just type code.
5923
5924         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5925         function to return a primary type for a signature, dropping
5926         information about types in container types.
5927         (dbus_gvalue_genmarshal_name_from_type)
5928         (dbus_gvalue_binding_type_from_type)
5929         (dbus_gvalue_ctype_from_type): Update to take full signature
5930          instead of type code.
5931         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5932
5933         * glib/dbus-gvalue.h: Update prototypes for above.
5934
5935         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5936         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5937         (introspect_properties, introspect_signals, write_interface):
5938         Update to handle signatures, and remove usage of
5939         _dbus_gutils_type_to_string.
5940         (handle_introspect): Print out type codes instead of e.g. "string"
5941         in hardcoded introspection XML; also use x_AS_STRING constants
5942         instead of hardcoding in string.
5943
5944         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5945         to string.  Remove usage of _dbus_gutils_type_to_string.
5946
5947         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5948
5949         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5950         deletion.
5951         
5952         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5953         (compute_marshaller_name, generate_glue): Handle signature change
5954         to string.
5955         (write_formal_parameters, write_args_for_direction): Ditto, and
5956         remove FIXME.
5957
5958         * tools/dbus-tree-view.c (type_to_string): Delete.
5959         (info_set_func_text): Update to print full signatures.
5960
5961         * test/glib/test-service-glib.xml: Change types to new
5962         introspection format.
5963
5964 2005-02-26  Havoc Pennington  <hp@redhat.com>
5965
5966         * doc/TODO: remove the "guid" item
5967
5968         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5969         (with_bus_thread_func): use open_private
5970
5971         * dbus/dbus-connection.c (dbus_connection_open_private): new
5972         function that works like the old dbus_connection_open()
5973         (dbus_connection_open): now returns an existing connection if
5974         possible
5975
5976         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5977         through the GUID to the transport
5978
5979         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5980         GUID in hex-encoded form.
5981
5982         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5983         pass GUID argument in to the transport
5984
5985         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5986         guid argument
5987
5988         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5989
5990         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5991
5992 2005-02-25  Havoc Pennington  <hp@redhat.com>
5993
5994         * doc/dbus-specification.xml: document the GUID thing
5995
5996         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5997         globally unique ID for the server, and put a "guid=hexencoded"
5998         field in the address
5999
6000         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6001
6002         * dbus/dbus-message.c: ditto
6003
6004         * dbus/dbus-dataslot.c: ditto
6005
6006         * dbus/dbus-list.c: ditto
6007
6008         * dbus/dbus-internals.h: wait, just include
6009         dbus-threads-internal.h here
6010         
6011         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6012         use in main library
6013
6014         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6015
6016 2005-02-24  Colin Walters  <walters@verbum.org>
6017
6018         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6019
6020 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6021
6022         * glib/Makefile.am: added dbus-gobject.h to sources list
6023         so distcheck doesn't fail
6024         
6025 2005-02-24  Havoc Pennington  <hp@redhat.com>
6026
6027         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6028         you must disconnect before unref, since locking and other things
6029         are screwed up otherwise. Fix assorted other locking stuff.
6030
6031         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6032         fix compilation
6033
6034         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6035         into a private header and don't export from the library
6036
6037         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6038
6039 2005-02-24  Colin Walters  <walters@verbum.org>
6040         
6041         * dbus/dbus-signature.c: New file; implements various functions
6042         related to type signatures.  Includes an interator for parsing,
6043         validation functions.
6044         (dbus_type_is_basic): Moved here from
6045         dbus-marshal-basic.c:_dbus_type_is_basic.
6046         (dbus_type_is_container): Moved here from
6047         dbus-marshal-basic.c:_dbus_type_is_container.
6048
6049         All callers of _dbus_type_is_container and _dbus_type_is_basic
6050         updated, and include dbus-signature.h.
6051
6052         * dbus/dbus-signature.h: New file; prototypes for the above.
6053
6054         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6055         dbus-signature.h.
6056
6057         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6058         function factored out of _dbus_first_type_in_signature.
6059         (_dbus_first_type_in_signature_c_str): New function; returns first
6060         type code for a type signature character.
6061
6062         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6063         handle function moves.
6064
6065         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6066
6067         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6068         function; skips to next complete type in type signature.
6069         Implemented using previous skip_one_complete_type.  Now
6070         skip_one_complete_type just delegates to
6071         _dbus_type_signature_next.
6072
6073         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6074         to dbus-signature.c
6075         (_dbus_type_is_container): Ditto.
6076
6077         * doc/dbus-specification.xml: Update introspection sample to
6078         use real type signatures.
6079
6080         * dbus/dbus-test.h: Prototype signature test.
6081
6082         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6083         signature tests.
6084
6085         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6086
6087 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6088
6089         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6090         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6091
6092 2005-02-21  Colin Walters  <walters@verbum.org>
6093
6094         * dbus/dbus-test-main.c (main): Take optional specific test
6095         argument.
6096
6097         * dbus/dbus-test.c (run_test): New function, runs a test function
6098         with no data directory.
6099         (run_data_test): Like above, but takes data directory.
6100         (dbus_internal_do_not_use_run_tests): Take
6101         specific test argument.  Replace lots of cut n' paste code
6102         with run_test and run_data_test.
6103
6104         * dbus/dbus-test.h: Update prototype for
6105         dbus_internal_do_not_use_run_tests.
6106
6107 2005-02-20  Havoc Pennington  <hp@redhat.com>
6108
6109         Fix bugs reported by Daniel P. Berrange
6110         
6111         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6112         (protected_change_watch): new function
6113         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6114         (_dbus_server_add_watch): change to work like the
6115         dbus-connection.c equivalents; like those, probably kind of
6116         busted, but should at least mostly work for now
6117         (dbus_server_disconnect): drop the lock if we were already
6118         disconnected, patch from Daniel P. Berrange
6119
6120         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6121         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6122         same stuff
6123
6124         * doc/TODO: todo about unscrewing this mess
6125
6126 2005-02-19  Colin Walters  <walters@verbum.org>
6127
6128         * glib/dbus-binding-tool-glib.c
6129         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6130
6131         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6132         as errno.h and sys/stat.h.
6133         (lose): New function, prints error with
6134         newline and exits.
6135         (lose_gerror): Similar, but takes GError for message.
6136         (main): Add --output argument to specify output file to write to,
6137         instead of always printing to stdout.  In this mode, determine
6138         timestamps on source files to see whether any are newer than the
6139         target file.  If not, exit.  Also convert a number of error
6140         messages to use lose (since it's shorter), and switch to using
6141         g_io_channel_shutdown.
6142
6143 2005-02-19  Havoc Pennington  <hp@redhat.com>
6144
6145         * glib/dbus-gobject.c
6146         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6147
6148         * glib/dbus-glib.c: fix doxygen warnings
6149
6150         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6151         is found on an <arg>
6152
6153 2005-02-17  Colin Walters  <walters@verbum.org>
6154
6155         * glib/dbus-gobject.h: Don't export
6156         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6157         
6158         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6159         (invoke_object_method): Handle it.
6160
6161         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6162         Handle rename.
6163         
6164 2005-02-17  Colin Walters  <walters@verbum.org>
6165
6166         * bus/.cvsignore, doc/.cvsignore
6167         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6168         Update.
6169
6170 2005-02-17  Colin Walters  <walters@verbum.org>
6171         
6172         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6173         Rename to DBUS_SERVICE_DBUS.
6174         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6175         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6176         Change the value from "org.freedesktop.Local"
6177         to "org.freedesktop.DBus.Local".
6178         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6179         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6180         DBUS_INTERFACE_INTROSPECTABLE.
6181         Change the value from "org.freedesktop.Introspectable"
6182         to "org.freedesktop.DBus.Introspectable".
6183         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6184         DBUS_INTERFACE_PROPERTIES.
6185         Change the value from "org.freedesktop.Properties"
6186         to "org.freedesktop.DBus.Properties".
6187         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6188         DBUS_INTERFACE_PEER.
6189         Change the value from "org.freedesktop.Peer"
6190         to "org.freedesktop.DBus.Peer".
6191         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6192         DBUS_INTERFACE_LOCAL.
6193         Change the value from "org.freedesktop.Local"
6194         to "org.freedesktop.DBus.Local".
6195
6196         All other users of those constants have been changed.
6197
6198         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6199
6200         * glib/dbus-gobject.c (handle_introspect): Use constants.
6201
6202         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6203
6204 2005-02-17  Colin Walters  <walters@verbum.org>
6205
6206         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6207         (parse_node, parse_interface, parse_method, parse_signal)
6208         (parse_property, parse_annotation): Lose if we're currently in an
6209         annotation.
6210         (parse_annotation): New function.
6211         (parser_start_element, parser_end_element): Handle annotation.
6212         (parse_method, parse_interface): Remove support for c_name attribute,
6213         switch to annotations.
6214
6215         * glib/dbus-gidl.h (interface_info_get_binding_names)
6216         (method_info_get_binding_names)
6217         (interface_info_get_binding_name, method_info_get_binding_name)
6218         (interface_info_set_binding_name, method_info_set_binding_name):
6219         Remove.
6220         (interface_info_get_annotations, method_info_get_annotations)
6221         (interface_info_get_annotation, method_info_get_annotation)
6222         (interface_info_add_annotation, method_info_add_annotation):
6223         Prototype.
6224
6225         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6226         for "bindings".
6227         (struct MethodInfo): Ditto.
6228         Straightfoward conversion of binding methods into annotation methods
6229         as prototyped.
6230
6231         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6232
6233         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6234
6235         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6236         Use new annotation API.
6237
6238         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6239         annotation element.
6240         
6241         * doc/dbus-specification.xml: Discuss introspection annotations,
6242         include list of well-known annotations.
6243
6244         * test/glib/test-service-glib.xml: Make validate against new DTD.
6245
6246 2005-02-17  Colin Walters  <walters@verbum.org>
6247
6248         This patch is based on initial work from
6249         Paul Kuliniewicz <kuliniew@purdue.edu>.
6250
6251         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6252         initialization of GValue from dbus type to here.
6253         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6254         for the "glib-genmarshal" program from a DBus type.
6255         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6256         into the C name for it we use in the glib bindings.
6257         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6258         glib C type (not GValue).
6259         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6260
6261         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6262         from dbus-gobject.c.
6263
6264         * glib/dbus-gutils.h: Prototype it.
6265
6266         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6267         (marshal_dbus_message_to_g_marshaller): Use new shared function
6268         dbus_glib_marshal_dbus_message_to_gvalue_array.
6269
6270         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6271         Will be changed once we have annotations.
6272
6273         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6274         GStaticRWLock.  Callers updated.
6275         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6276         (string_table_next): New function for iterating over zero-terminated
6277         string value array.
6278         (string_table_lookup): New function; retrieves specific entry in
6279         array.
6280         (get_method_data): New function; look up method data in object data chunk.
6281         (object_error_domain_prefix_from_object_info)
6282         (object_error_code_from_object_info): New functions, but not implemented yet.
6283         (method_interface_from_object_info): New function; retrieve interface name.
6284         (method_name_from_object_info): New function; retrieve method name.
6285         (method_arg_info_from_object_info): New function; retrieve argument data.
6286         (arg_iterate): New function; iterates over serialized argument data.
6287         (method_dir_signature_from_object_info): New function; returns a
6288         GString holding type signature for arguments for just one
6289         direction (input or output).
6290         (method_input_signature_from_object_info)
6291         (method_output_signature_from_object_info): New functions.
6292         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6293         converts dbus message arguments into a GValue array.  Used for both
6294         signal handling and method invocation.
6295         (struct DBusGlibWriteIterfaceData): New utility structure.
6296         (write_interface): New function; generate introspection XML for
6297         an interface.
6298         (introspect_interfaces): New function; gathers all interface->methods,
6299         generates introspection XML for them.
6300         (handle_introspect): Invoke introspect_interfaces.
6301         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6302         (lookup_object_and_method): New function; examines an incoming message
6303         and attempts to match it up (via interface, method name, and argument
6304         signature) with a known object and method.
6305         (gerror_domaincode_to_dbus_error_name): New function; converts a
6306         GError domain and code into a DBus error name.  Needs GError data
6307         added to object introspection to work well.
6308         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6309         GError.
6310         (invoke_object_method): New function to invoke an object method
6311         looked up via lookup_object_and_method.  Parses the incoming
6312         message, turns it into a GValue array, then invokes the marshaller
6313         specified in the DBusGMethodInfo.  Creates a new message with
6314         either return values or error message as appropriate.
6315         (gobject_message_function): Invoke lookup_object_and_method and
6316         invoke_object_method.
6317
6318         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6319         (enum DBusBindingOutputMode): New enum for binding output modes.
6320         (pretty_print): Print binding names.
6321         (dbus_binding_tool_error_quark): GError bits.
6322         (version): Fix typo.
6323         (main): Create GIOChannel for output.  Parse new --mode argument,
6324         possible values are "pretty-print", "glib-server", "glib-client".
6325         Use mode to invoke appropriate function.
6326         
6327         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6328
6329         * glib/dbus-glib-tool.h: New header, just includes GError bits
6330         for now.
6331
6332         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6333         maps binding style to name.
6334         (struct MethodInfo): Ditto.
6335         (get_hash_keys, get_hash_key): Utility function, returns keys for
6336         a GHashTable.
6337         (interface_info_new, method_info_new): Initialize bindings.
6338         (interface_info_unref, method_info_unref): Destroy bindings.
6339         (method_info_get_binding_names, method_info_get_binding_name)
6340         (interface_info_get_binding_names, interface_info_get_binding_name):
6341         Functions for retrieving binding names.
6342         (method_info_set_binding_name, interface_info_set_binding_name):
6343         Functions for setting binding names.
6344
6345         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6346         for glib binding generation.
6347
6348         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6349         and client-side glib glue generation.
6350
6351         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6352         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6353         dbus-glib-tool.h.
6354
6355         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6356         of using GClosureMarshal directly.
6357         (struct DBusGObjectInfo): Add n_infos member.
6358
6359         * test/glib/test-service-glib.xml: New file; contains introspection data
6360         for MyTestObject used in test-service-glib.c.
6361
6362         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6363         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6364         (my_object_uppercase, my_object_many_args): New test methods.
6365         (main): Use dbus_g_object_class_install_info to include generated object
6366         info.
6367
6368         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6369         as well as client-side bindings.
6370
6371         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6372         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6373         using both the dbus_gproxy stuff directly as well as the generated bindings.
6374
6375 2005-02-15  Havoc Pennington  <hp@redhat.com>
6376
6377         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6378         complete a pending call, don't run filters first.
6379
6380         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6381         dbus_pending_call_steal_reply
6382
6383         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6384         _dbus_connection_block_pending_call
6385         (dbus_pending_call_get_reply): change to steal_reply and return a
6386         ref
6387
6388         * dbus/dbus-connection.c
6389         (dbus_connection_send_with_reply_and_block): port to work in terms
6390         of DBusPendingCall
6391         (_dbus_connection_block_pending_call): replace block_for_reply
6392         with this
6393
6394 2005-02-14  Havoc Pennington  <hp@redhat.com>
6395
6396         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6397         properly handle looking up group information by name; fix 
6398         from j@bootlab.org
6399
6400 2005-02-13  Havoc Pennington  <hp@redhat.com>
6401
6402         * dbus/dbus-connection.c (dbus_connection_return_message) 
6403         (dbus_connection_borrow_message): hold dispatch lock while message
6404         is outstanding
6405         (_dbus_connection_block_for_reply): hold dispatch lock while we
6406         block for the reply, so nobody steals our reply
6407         (dbus_connection_pop_message): hold the dispatch lock while we
6408         pluck the message
6409
6410 2005-02-13  Havoc Pennington  <hp@redhat.com>
6411
6412         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6413         (_dbus_connection_release_dispatch)
6414         (_dbus_connection_acquire_io_path)
6415         (_dbus_connection_release_io_path): make the mutex and condvar
6416         control access to the "acquired" flag. Drop the connection lock
6417         while waiting on the condvar. Hopefully these are baby steps in
6418         roughly the right direction.
6419
6420 2005-02-13  Havoc Pennington  <hp@redhat.com>
6421
6422         * dbus/dbus-connection.c: use separate mutexes for the condition
6423         variables; this is some kind of baseline for sanity, but the
6424         condition variables still aren't used correctly afaict
6425
6426 2005-02-13  Havoc Pennington  <hp@redhat.com>
6427
6428         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6429         fix a double-unlock
6430
6431         * dbus/dbus-connection.c
6432         (_dbus_connection_detach_pending_call_unlocked): add this
6433
6434         Initial semi-correct pass through to fix thread locking; there are
6435         still some issues with the condition variable paths I'm pretty
6436         sure
6437         
6438         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6439         lock/unlock calls
6440
6441         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6442         rename to add _unlocked
6443         (struct DBusConnection): move "dispatch_acquired" and
6444         "io_path_acquired" to use only one bit each.
6445         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6446         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6447         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6448         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6449         (_dbus_connection_remove_timeout) 
6450         (_dbus_connection_toggle_timeout): drop lock when calling out to
6451         user functions; done in a hacky/bad way.
6452         (_dbus_connection_send_and_unlock): add a missing unlock
6453         (_dbus_connection_block_for_reply): add a missing unlock
6454
6455         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6456         drop lock in a hacky probably unsafe way to call out to user
6457         function
6458
6459 2005-02-12  Havoc Pennington  <hp@redhat.com>
6460
6461         * tools/dbus-tree-view.c (info_set_func_text): display more
6462         details on args
6463
6464         * bus/driver.c (bus_driver_handle_list_services): list the bus
6465         driver
6466
6467         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6468
6469         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6470         (method_info_get_n_args): new function
6471
6472 2005-02-12  Havoc Pennington  <hp@redhat.com>
6473
6474         * bus/driver.c (bus_driver_handle_introspect): add introspection
6475         for bus driver
6476
6477 2005-02-12  Havoc Pennington  <hp@redhat.com>
6478
6479         * bus/driver.c: put the signature of each bus driver method in the
6480         table of handlers and check it on incoming calls; this isn't
6481         really useful, but going to add introspect support in a minute.
6482
6483 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6484
6485         * mono/Connection.cs: The unpredictability of finalizers in mono
6486         prevents us from deterministically disconnecting the filters from
6487         the Service class's finalizer, so move tracking of filters and
6488         matches here.  Add API for that.
6489
6490         * mono/Service.cs: Remove the code, add code which calls the
6491         methods now on the Connection class.
6492
6493 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6494
6495         * python/dbus.py (class Sender): added to support dbus signals better
6496         (Bus::add_signal_receiver): added expand_args parameter which defaults
6497         to True.  When expand args is True the signal handler will pass the 
6498         message arguments as parameters to the signal handler.  If False
6499         revert to previous behavior where the signal handler must get the
6500         argument list from the message.  This is to help port applications
6501         like HAL that have a tendancy to send variable length argument lists.
6502         self._match_rule_to_receivers is now a dict of dicts.
6503         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6504         removing it from a list
6505         (Bus::_signal_func): change signal handlers so that interface,
6506         signal_name, service, path and message are packed into a Sender
6507         object and that is passed to the handler.  If expand_args is True
6508         extract the args list from the message and append it to the parameter
6509         list
6510         
6511         * python/dbus_bindings.pyx.in (class Signature): added to support 
6512         signiature types
6513         (MessageIter::__init__): changed iteration limit to match D-BUS
6514         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6515         STRUCT and VARIENT type support
6516         (MessageIter::python_value_to_dbus_sig): made recursive to support
6517         recursive types
6518         (MessageIter::append*): added Signature, dict, tuple 
6519         support
6520
6521         * python/examples/example-client.py: added examples of getting tuples
6522         and dicts
6523
6524         * python/examples/example-service.py: added examples of sending tuples
6525         and dicts
6526
6527         * python/examples/example-signal-recipient.py: Fixed to handle new
6528         signal callback format
6529
6530 2005-02-10  Havoc Pennington  <hp@redhat.com>
6531
6532         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6533         (call dbus_g_proxy_add_signal)
6534
6535         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6536         escape the hostname
6537         (_dbus_server_new_for_domain_socket): escape the path
6538
6539         * dbus/dbus-address.c (dbus_address_escape_value): new
6540         (dbus_address_unescape_value): new
6541         (dbus_parse_address): unescape values
6542
6543         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6544
6545         * doc/dbus-specification.xml: explain how to escape values in
6546         addresses
6547
6548 2005-02-10  Havoc Pennington  <hp@redhat.com>
6549
6550         * dbus/dbus-message-factory.c (generate_special): modify test to
6551         avoid using a non-basic dict key
6552
6553         * dbus/dbus-marshal-validate-util.c: add test for the below
6554
6555         * doc/dbus-specification.xml: require that dict keys are a basic
6556         type
6557
6558         * dbus/dbus-marshal-validate.c
6559         (_dbus_validate_signature_with_reason): require that dict key is a
6560         basic type
6561
6562 2005-02-10  Havoc Pennington  <hp@redhat.com>
6563
6564         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6565         change to be _and_unlock instead of _unlocked
6566
6567         * dbus/dbus-connection.c
6568         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6569         have no_update so we can find this bug quickly in future
6570
6571 2005-02-10  Havoc Pennington  <hp@redhat.com>
6572
6573         * dbus/dbus-message-util.c (verify_test_message): tests for string
6574         array
6575
6576         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6577         support for arrays of string/signature/path
6578
6579 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6580
6581         * dbus/dbus-connection.c
6582         (_dbus_connection_queue_received_message_link,
6583         _dbus_connection_message_sent): Add the path to
6584         the verbose output.
6585         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6586         _dbus_connection_send_preallocated_unlocked(), updated the
6587         dispatch status, and unlocks.  Fixes a bug where certain
6588         situations (like a broken pipe) could cause a Disconnect message
6589         to not be sent, tricking the bus into thinking a service was still
6590         there when the process had quit.
6591         (_dbus_connection_send_preallocated): Call
6592         _dbus_connection_send_preallocated_and_unlock().
6593         (_dbus_connection_send_and_unlock): Added.  Calls
6594         _dbus_connection_send_preallocated_and_unlock().
6595         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6596         (dbus_connection_send_with_reply): Update the dispatch status and
6597         unlock.
6598
6599         * mono/Service.cs (~Service): Added.  Removes the filter so that
6600         we don't get unmanaged code calling back into a GCed delegate.
6601         (RemoveFilter); Added.
6602
6603 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6604
6605         * dbus/dbus-message.c (dbus_message_iter_open_container):
6606         - Removed check for iterator type being an array because
6607         get_arg_type does not work with writer iterators
6608         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6609
6610 2005-02-07  Havoc Pennington  <hp@redhat.com>
6611
6612         * doc/dbus-specification.xml: some more language cleanups; add
6613         stuff about how to deal with invalid protocol and extension
6614         points; add _ to allowed chars in auth commands; add EXTENSION_
6615         auth command prefix
6616
6617 2005-02-06  Havoc Pennington  <hp@redhat.com>
6618
6619         * s/expected/required/ in a couple places for clarity
6620
6621 2005-02-07  Colin Walters  <walters@verbum.org>
6622
6623         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6624         sender or proposed_recipient.
6625
6626 2005-02-06  Havoc Pennington  <hp@redhat.com>
6627
6628         * dbus/dbus-message-factory.c (generate_special): more tests
6629
6630         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6631         array length that exceeds the maximum
6632
6633 2005-02-05  Havoc Pennington  <hp@redhat.com>
6634
6635         * dbus/dbus-message-factory.c (generate_special): more test cases,
6636         increasing coverage
6637
6638         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6639         reason why a signature was invalid
6640
6641         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6642         skip the length of the string before we look at it in validation
6643
6644         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6645         equal_substring
6646
6647         * dbus/dbus-message.c (_dbus_message_loader_new): default
6648         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6649
6650 2005-02-05  Havoc Pennington  <hp@redhat.com>
6651
6652         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6653         if the signature of a variant was empty
6654         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6655         struct with no element type)
6656
6657         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6658         mangled messages to break things
6659
6660 2005-02-04  Havoc Pennington  <hp@redhat.com>
6661
6662         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6663         g_quark_try_string() so it actually can return 0
6664         (dbus_g_proxy_connect_signal): ditto
6665
6666 2005-02-04  Havoc Pennington  <hp@redhat.com>
6667
6668         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6669         bogus warning
6670         (tristring_from_message): assert cleanly on null path/interface
6671         (should not be possible though I decided later)
6672         (dbus_g_proxy_dispose): move proxy manager unregistration here
6673         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6674         g_return_if_fail() checks
6675
6676 2005-02-04  Havoc Pennington  <hp@redhat.com>
6677
6678         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6679
6680         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6681         (with some minor changes)
6682
6683         * doc/dbus-specification.xml: add deprecated attribute to
6684         introspection format
6685
6686 2005-01-31  Havoc Pennington  <hp@redhat.com>
6687
6688         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6689         think it's sort of right
6690
6691 2005-01-30  Havoc Pennington  <hp@redhat.com>
6692
6693         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6694
6695 2005-01-30  Havoc Pennington  <hp@redhat.com>
6696
6697         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6698
6699         * autogen.sh: change to autotools 1.9
6700
6701         * glib/dbus-gproxy.c: completely change how signals work
6702         (dbus_g_proxy_add_signal): new function to specify signature of a
6703         signal
6704         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6705         and g_warning if the incoming message has the wrong signature.
6706
6707 2005-01-30  Havoc Pennington  <hp@redhat.com>
6708
6709         * tools/dbus-names-model.c (have_names_notify): fix this
6710
6711         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6712         up the string array handling a bit 
6713
6714 2005-01-30  Havoc Pennington  <hp@redhat.com>
6715
6716         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6717         (dbus_g_pending_call_cancel): new function
6718
6719         * dbus/dbus-glib.h: move GType decls for connection/message here;
6720         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6721         here, just kind of rationalizing how we handle all that
6722
6723         * tools/dbus-names-model.c: new file for a tree model listing the
6724         services on a bus
6725
6726         * tools/dbus-tree-view.c (model_new): use proper typing on the
6727         model rows
6728
6729 2005-01-30  Havoc Pennington  <hp@redhat.com>
6730
6731         * glib/dbus-gmain.c: add a custom GSource back that just checks
6732         whether the message queue has anything in it; otherwise, there are 
6733         cases where we won't see messages in the queue since there was no 
6734         IO visible to the glib main loop
6735
6736         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6737         increase default message timeout to 25 seconds
6738
6739 2005-01-30  Havoc Pennington  <hp@redhat.com>
6740
6741         * test/glib/test-profile.c (no_bus_stop_server): remove the
6742         warning about the g_warning that I just fixed
6743
6744         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6745         custom source, seems to be a lot easier to understand and work
6746         better.
6747
6748 2005-01-30  Havoc Pennington  <hp@redhat.com>
6749
6750         I think this main loop thing is conceptually broken, but here are 
6751         some band aids. I'll maybe rewrite it in a minute.
6752         
6753         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6754         custom GSource, so don't pass it in; confusing
6755         (gsource_server_finalize, gsource_connection_finalize): add
6756         finalize handlers that remove all the watches.  
6757
6758 2005-01-30  Havoc Pennington  <hp@redhat.com>
6759
6760         * glib/dbus-gobject.c (introspect_properties): fix the XML
6761         generated
6762
6763         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6764         which effectively detects the use of freed messages
6765
6766         * glib/dbus-gobject.c (handle_introspect): modify and return the
6767         reply message instead of the incoming message
6768
6769         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6770         gee, maybe it should SEND THE XML instead of just making a string
6771         and freeing it again ;-)
6772
6773         * tools/dbus-print-message.c (print_message): improve printing of
6774         messages
6775
6776         * configure.in: add debug-glib.service to the output
6777
6778 2005-01-30  Havoc Pennington  <hp@redhat.com>
6779
6780         dbus-viewer introspected and displayed the bus driver
6781         
6782         * dbus/dbus-object-tree.c 
6783         (object_tree_test_iteration): add tests for a handler registered on "/"
6784
6785         * dbus/dbus-object-tree.c
6786         (_dbus_decompose_path): fix to handle path "/" properly
6787         (run_decompose_tests): add tests for path decomposition
6788         
6789         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6790         properly
6791
6792         * glib/dbus-gobject.c (handle_introspect): fix quotes
6793
6794         * test/glib/run-test.sh: support launching the bus, then running
6795         dbus-viewer
6796
6797         * test/glib/test-service-glib.c (main): put in a trivial gobject
6798         subclass and register it on the connection
6799
6800         * bus/driver.c (bus_driver_handle_introspect): implement
6801         introspection of the bus driver service
6802
6803         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6804         identifiers, doctype decl
6805
6806         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6807         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6808         returning the service unchanged.
6809         (bus_driver_handle_message): remove old check for reply_serial in
6810         method calls, now the message type deals with that
6811         (bus_driver_handle_message): handle NULL interface
6812
6813         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6814
6815         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6816         -1 for len
6817
6818         * tools/dbus-viewer.c: add support for introspecting a service on
6819         a bus
6820
6821         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6822         (dbus_g_pending_call_unref): add
6823
6824 2005-01-29  Havoc Pennington  <hp@redhat.com>
6825
6826         * tools/dbus-tree-view.c: add support for displaying properties.
6827         (run dbus-viewer with an introspect xml file as arg, then resize
6828         the window so the tree elements show up, not sure what that is)
6829
6830         * glib/dbus-gobject.c (handle_introspect): return
6831         org.freedesktop.Properties and org.freedesktop.Introspectable
6832         interfaces when we are introspected.
6833
6834         * doc/dbus-specification.xml: allow empty interface name when 
6835         Get/Set a property
6836
6837 2005-01-29  Havoc Pennington  <hp@redhat.com>
6838
6839         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6840         though it uses glib, it could be extended for any binding in
6841         principle
6842
6843         * glib/dbus-gobject.c (gobject_message_function): change to the
6844         new way properties work
6845
6846         * dbus/dbus-protocol.h: add the new interfaces
6847
6848         * doc/dbus-specification.xml: document the introspection format,
6849         Introspectable interface, and add an org.freedesktop.Properties
6850         interface.
6851
6852         * glib/dbus-gparser.c: add support for a <property> element
6853
6854         * glib/dbus-gidl.c: add PropertyInfo
6855
6856         * glib/dbus-gobject.c (handle_introspect): put the outermost
6857         <node> outside the signal and property descriptions.
6858         (introspect_properties): export properties as <property> rather
6859         than as method calls
6860
6861 2005-01-28  Havoc Pennington  <hp@redhat.com>
6862
6863         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6864         related to authentication protocol
6865
6866 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6867
6868         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6869                 - BUS_ACTIVATION -> BUS_STARTER
6870                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6871                 - class MessageIter (__init__): Added recursion checking 
6872                 so we throw a nice error instead of just disconnecting from the
6873                 bus.
6874                 (get): Added arg_type parameter for recursion.
6875                 Removed the nil type
6876                 Added signiture type placeholder (not implemented)
6877                 Added struct type placeholder (not implemented)
6878                 Added varient type placeholder (not implemented)
6879                 Commented out dict type for now     
6880                 (get_element_type): renamed from get_array_type
6881                 (get_*): changed to use the dbus_message_iter_get_basic API
6882                 (get_*_array): removed in favor of recursive get_array method
6883                 (get_array): new recursive method which calls get to marshal
6884                 the elements of the array
6885                 (value_to_dbus_sig): New method returns the corrasponding
6886                 dbus signiture to a python value
6887                 (append): Comment out dict handling for now
6888                 Handle lists with the new recursive API
6889                 Comment out None handling for now
6890                 (append_nil): removed
6891                 (append_*): changed to use dbus_message_iter_append_basic API
6892                 (append_*_array): removed in favor of recursive append_array 
6893                 method
6894                 (__str__): Make it easier to print out recursive iterators
6895                 for debugging
6896                 - class Message (__str__): moved type inspection to the
6897                 MessageIter class' __str__ method
6898                 (get_iter): Added an append parameter wich defaults to False
6899                 If True use the new API's to create an append iterator
6900
6901         * python/dbus.py: Update to use new bindings API
6902                 - TYPE_ACTIVATION -> TYPE_STARTER
6903                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6904                 - class ActivationBus -> class StarterBus
6905                 - class RemoteObject (__call__): get an append iterator
6906                 - (_dispatch_dbus_method_call): get an append iterator
6907                 - class Object (emit_signal): get an append iterator
6908
6909         * python/examples/: Fixed up the examples to work with the new API
6910                 
6911 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6912
6913         * configure.in: Bump version up to 0.30.
6914
6915         * HACKING: Add a release item to bump the version number up after 
6916         a release.
6917
6918 2005-01-28  Havoc Pennington  <hp@redhat.com>
6919
6920         * doc/dbus-specification.xml: update to describe 16-bit types and
6921         dict entries
6922
6923         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6924         assertion
6925
6926         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6927         type
6928
6929         * dbus/dbus-marshal-recursive.c: implement
6930
6931 2005-01-27  Havoc Pennington  <hp@redhat.com>
6932
6933         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6934
6935         * configure.in: find the right type for 16 and 32 bit ints as well
6936         as 64
6937
6938         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6939         the 16-bit types so people don't have to stuff them in 32-bit or
6940         byte arrays.
6941
6942 2005-01-27  Havoc Pennington  <hp@redhat.com>
6943
6944         * dbus/dbus-message.c: byteswap the message if you init an
6945         iterator to read/write from it
6946         
6947         * dbus/dbus-marshal-byteswap.c: new file implementing 
6948         _dbus_marshal_byteswap()
6949
6950         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6951
6952 2005-01-26  Havoc Pennington  <hp@redhat.com>
6953         
6954         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6955         build, apparently - nobody noticed?)
6956         
6957 2005-01-26  Havoc Pennington  <hp@redhat.com>
6958
6959         * dbus/dbus-marshal-recursive.h: remove todo comment
6960
6961 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6962
6963         * Land the mono binding changes to conform to the new APIs.
6964
6965         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6966         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6967
6968         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6969         type code as a string.
6970         (InitAppending): Rename dbus_message_append_iter_init() to
6971         dbus_message_iter_init_append().
6972
6973         * mono/BusDriver.cs: Rename ServiceEventHandler to
6974         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6975         Rename ServiceOwnerChanged to NameOwnerChanged.
6976
6977         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6978         underlying C call.
6979
6980         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6981
6982         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6983         dbus_bus_acquire_service() to dbus_bus_request_name().
6984
6985         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6986         of Type.UnderlyingSystemType to get the correct element type for
6987         the array.
6988         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6989         dbus_message_get_{element|arg}_type() instead of
6990         dbus_message_iter_init_array_iterator().
6991         (Append): Replace dbus_message_iter_append_array() with
6992         dbus_message_iter_open_container() and
6993         dbus_message_iter_close_container().
6994
6995         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6996         types have been removed.
6997         
6998         * mono/DBusType/*.cs: Replace calls of
6999         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7000         but specify the type in the DllImport extern declaration.  Ditto
7001         for dbus_message_iter_append_[type]() ->
7002         dbus_message_iter_append_basic().
7003
7004         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7005         NameOwnerChangedHandler.
7006
7007 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7008
7009         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7010                 - get_base_service -> get_unique_name
7011                 - bus_get_base_service -> bus_get_unique_name
7012                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7013                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7014                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7015                 - bus_activate_service -> bus_start_service_by_name
7016                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7017                 - bus_acquire_service -> bus_request_name
7018                 - dbus_bus_acquire_service -> dbus_bus_request_name
7019                 - bus_service_exists -> bus_name_has_owner
7020                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7021
7022         * python/dbus.py: Rename of methods
7023                 - activate_service -> start_service_by_name
7024                 - bus_acquire_service -> bus_request_name
7025                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7026                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7027
7028         
7029 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7030
7031         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7032         signature for the method that can't be found.
7033
7034         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7035         the message has any arguments, we need to call
7036         _dbus_type_reader_get_current_type(), not
7037         _dbus_type_reader_has_next().
7038
7039 2005-01-24  Havoc Pennington  <hp@redhat.com>
7040
7041         * dbus/dbus-message-factory.c: more testing of message validation
7042
7043         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7044         header
7045
7046 2005-01-23  Havoc Pennington  <hp@redhat.com>
7047
7048         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7049         get this all working, not many tests in the framework yet though
7050
7051 2005-01-22  Havoc Pennington  <hp@redhat.com>
7052
7053         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7054         tutorial, based on work from David Wheeler.
7055
7056 2005-01-21  Havoc Pennington  <hp@redhat.com>
7057
7058         * dbus/dbus-bus.c: add more return_if_fail checks
7059
7060         * dbus/dbus-message.c (load_message): have the "no validation"
7061         mode (have to edit the code to toggle the mode for now though)
7062
7063         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7064         skips all validation; I want to use this at least for benchmark
7065         baseline, I'm not sure if it should be a publicly-available switch.
7066
7067 2005-01-21  Havoc Pennington  <hp@redhat.com>
7068
7069         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7070         toplevel doxygen group as the low-level API stuff
7071
7072         * dbus/dbus.h: note that libdbus is the low-level API
7073
7074 2005-01-20  Havoc Pennington  <hp@redhat.com>
7075
7076         * update-dbus-docs.sh: script to update docs on the web site, only
7077         works for me though. neener.
7078
7079 2005-01-20  Havoc Pennington  <hp@redhat.com>
7080
7081         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7082         code can reveal bugs in it
7083
7084 2005-01-20  Havoc Pennington  <hp@redhat.com>
7085
7086         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7087         select() version, patches from Tor Lillqvist
7088
7089 2005-01-20  Havoc Pennington  <hp@redhat.com>
7090
7091         * doc/dbus-tutorial.xml: replace > with &gt;
7092
7093         * bus/services.c (bus_registry_acquire_service): validate the name
7094         and return a better error if it's no good.
7095
7096         * doc/dbus-specification.xml: note NO_AUTO_START change
7097
7098         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7099         from AUTO_START, we're toggling the default
7100
7101         * bus/dispatch.c: adapt the tests to change of auto-start default
7102
7103 2005-01-18  Havoc Pennington  <hp@redhat.com>
7104
7105         * rename dbus-daemon-1 to dbus-daemon throughout
7106
7107 2005-01-18  Havoc Pennington  <hp@redhat.com>
7108
7109         * Throughout, grand renaming to strip out the use of "service",
7110         just say "name" instead (or "bus name" when ambiguous).  Did not
7111         change the internal code of the message bus itself, only the
7112         programmer-facing API and messages.
7113         
7114         * doc/dbus-specification.xml: further update the message bus section
7115         
7116         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7117         in error case
7118
7119 2005-01-17  Havoc Pennington  <hp@redhat.com>
7120
7121         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7122         ever
7123
7124         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7125         "invalid name character" not only non-ASCII
7126
7127         * doc/dbus-specification.xml: further update spec, message bus 
7128         parts are still out-of-date but the marshaling etc. stuff is now
7129         accurate-ish
7130
7131 2005-01-17  Havoc Pennington  <hp@redhat.com>
7132
7133         * doc/dbus-specification.xml: partially update spec
7134
7135 2005-01-17  Havoc Pennington  <hp@redhat.com>
7136
7137         * Throughout, align variant bodies according to the contained
7138         type, rather than always to 8. Should save a fair bit of space in
7139         message headers.
7140         
7141         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7142         fix handling of case where p == end
7143
7144         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7145
7146 2005-01-17  Havoc Pennington  <hp@redhat.com>
7147
7148         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7149
7150         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7151         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7152         are marshaling/unmarshaling a boolean.
7153
7154 2005-01-16  Havoc Pennington  <hp@redhat.com>
7155
7156         This is about it on what can be disabled/deleted from libdbus
7157         easily, back below 150K anyhow. Deeper cuts are more work than 
7158         just turning the code off as I've done here.
7159         
7160         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7161         signed int convenience funcs
7162
7163         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7164         verbose mode
7165
7166         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7167         things out of libdbus
7168
7169         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7170         
7171         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7172         tests-enabled-only, though it should probably be deleted)
7173
7174         * dbus/dbus-message-util.c: same stuff
7175
7176         * dbus/dbus-auth-util.c: same stuff
7177
7178 2005-01-16  Havoc Pennington  <hp@redhat.com>
7179
7180         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7181
7182         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7183         way for stripping down dbus-userdb.c stuff included in libdbus.
7184         Rename _dbus_parse_uid for consistency.
7185
7186 2005-01-16  Havoc Pennington  <hp@redhat.com>
7187
7188         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7189         name the assertion failed in
7190
7191         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7192         (_dbus_return_val_if_fail): assert that the name of the function
7193         containing the check doesn't start with '_', since we only want to 
7194         use checks on public functions
7195         
7196         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7197         checks to assertions
7198
7199         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7200         change checks to asserts for private function
7201
7202         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7203         to asserts for private function
7204
7205         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7206         broken assertion that was breaking make check
7207         (_dbus_type_reader_array_is_empty): remove this rather than fix
7208         it, was only used in assertions
7209
7210 2005-01-16  Havoc Pennington  <hp@redhat.com>
7211
7212         * test/unused-code-gc.py: hacky script to find code that's used
7213         only by the bus (not libdbus) or used only by tests or not used at
7214         all. It has some false alarms, but looks like we can clean up a
7215         lot of size from libdbus.
7216
7217         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7218         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7219         
7220 2005-01-16  Havoc Pennington  <hp@redhat.com>
7221
7222         * Add and fix docs according to Doxygen warnings throughout
7223         source.
7224         
7225         * dbus/dbus-marshal-recursive.c
7226         (_dbus_type_reader_array_is_empty): change this to just call
7227         array_reader_get_array_len() and make it static
7228
7229         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7230         from get_array_type
7231         (dbus_message_iter_init_append): rename from append_iter_init
7232
7233         * dbus/dbus-marshal-recursive.c
7234         (_dbus_type_reader_get_element_type): rename from
7235         _dbus_type_reader_get_array_type
7236
7237 2005-01-15  Havoc Pennington  <hp@redhat.com>
7238
7239         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7240
7241         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7242         when DBUS_DISABLE_ASSERT
7243         (_dbus_marshal_set_basic): be sure we align for the string length
7244
7245         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7246         this look faster
7247
7248         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7249         inline macro version
7250         (_dbus_string_set_byte): provide inline macro version
7251
7252 2005-01-15  Havoc Pennington  <hp@redhat.com>
7253
7254         * Land the new message args API and type system.
7255
7256         This patch is huge, but the public API change is not 
7257         really large. The set of D-BUS types has changed somewhat, 
7258         and the arg "getters" are more geared toward language bindings;
7259         they don't make a copy, etc.
7260
7261         There are also some known issues. See these emails for details
7262         on this huge patch:
7263         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7264         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7265         
7266         * dbus/dbus-marshal-*: all the new stuff
7267
7268         * dbus/dbus-message.c: basically rewritten
7269
7270         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7271         freed blocks to be all non-nul bytes so using freed memory is less
7272         likely to work right
7273
7274         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7275         DBUS_FAIL_MALLOC=N environment variable, so you can do
7276         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7277         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7278         thorough.
7279
7280         * qt/message.cpp: port to the new message args API
7281         (operator<<): use str.utf8() rather than str.unicode()
7282         (pretty sure this is right from the Qt docs?)
7283
7284         * glib/dbus-gvalue.c: port to the new message args API
7285
7286         * bus/dispatch.c, bus/driver.c: port to the new message args API
7287
7288         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7289         "locked" flag to TRUE and align_offset to 0; I guess we never
7290         looked at these anyhow, but seems cleaner.
7291
7292         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7293         move allocation padding macro to this header; use it to implement
7294         (_DBUS_STRING_STATIC): ability to declare a static string.
7295
7296         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7297         change to return TRUE if the interface is not set.
7298
7299         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7300         to dbus-marshal-validate.[hc]
7301
7302         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7303         dbus-internals.c
7304
7305         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7306         to dbus-marshal-*.[hc]
7307
7308         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7309         function here from dbus-marshal.c
7310
7311 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7312
7313         * NEWS: Update for 0.23.
7314
7315         * configure.in: Release 0.23.
7316
7317 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7318
7319         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7320         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7321         behind.
7322
7323         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7324         uninstall"
7325
7326         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7327         is an enum, get the enum's underlying type.  Another mono
7328         1.1.3 fix.
7329
7330 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7331
7332         Patch from Sjoerd Simons <sjoerd@luon.net>
7333
7334         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7335         DESTDIR.  It breaks stuff.
7336
7337 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7338
7339         Patch from Tambet Ingo <tambet@ximian.com>
7340
7341         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7342         calling type.GetElementType().  The code previously depended on
7343         broken Mono behavior, which was fixed in Mono 1.1.3.
7344
7345         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7346         Activator.CreateInstance() so that the class's constructor is
7347         called with the right parameters.
7348
7349 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7350
7351         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7352
7353         * dbus/dbus-connection.c
7354         (_dbus_connection_queue_received_message_link): Call
7355         _dbus_connection_remove_timeout() instead of the _locked()
7356         variant, since it's always called from
7357         _dbus_connection_handle_watch(), which handles the locking.
7358         Removed the _locked() variant since it's no longer used.
7359
7360 2005-01-03  Havoc Pennington  <hp@redhat.com>
7361
7362         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7363         return
7364         
7365 2004-12-26  Havoc Pennington  <hp@redhat.com>
7366
7367         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7368
7369 2005-01-03  Havoc Pennington  <hp@redhat.com>
7370
7371         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7372         floating point
7373
7374         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7375
7376 2005-01-02  Havoc Pennington  <hp@redhat.com>
7377
7378         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7379
7380 2005-01-01  Havoc Pennington  <hp@redhat.com>
7381
7382         * configure.in: add -Wfloat-equal
7383
7384 2005-01-01  Havoc Pennington  <hp@redhat.com>
7385
7386         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7387         for a variety of reasons '==' doesn't do this.
7388
7389 2004-12-31  Havoc Pennington  <hp@redhat.com>
7390
7391         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7392         I keep wishing I had
7393
7394 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7395
7396         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7397
7398 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7399
7400         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7401         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7402         dbus-protocol.h.  Because they are defines and not enums they are not
7403         autogenerated.
7404
7405 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7406
7407         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7408         dbus_bus_activate_service
7409
7410         * python/dbus.py (Bus.activate_service): activate a service on the
7411         bus.
7412
7413 2004-12-24  Havoc Pennington  <hp@redhat.com>
7414
7415         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7416         file format has also changed and I haven't adapted to that yet
7417         
7418         * Makefile.am: load .gcno files from latest gcc
7419
7420 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7421         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7422
7423         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7424         lowlevel binding
7425
7426         * python/dbus.py (get_unix_user): Added binding to 
7427         call dbus_bindings.bus_get_unix_user
7428
7429         * python/extract.py: Modified the proto_pat regex to
7430         handle unsigned long
7431
7432 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7433
7434         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7435         better POSIX compliance.
7436
7437 2004-12-19  Havoc Pennington  <hp@redhat.com>
7438
7439         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7440         (_dbus_string_insert_8_aligned): new functions
7441
7442         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7443
7444 2004-12-18  Havoc Pennington  <hp@redhat.com>
7445
7446         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7447         macro
7448
7449         * dbus/dbus-message.c: fix a comment, and add a still-unused
7450         not-implemented function
7451
7452         * dbus/dbus-marshal.h: fix comment
7453
7454         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7455
7456 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7457
7458         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7459         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7460         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7461         Type.UnderlyingSystemType to get the actual system type
7462         underneath.  This code previously depended on the broken Mono
7463         behavior, which was fixed in 1.1.3.
7464
7465 2004-11-27  Havoc Pennington  <hp@redhat.com>
7466
7467         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7468         are disabled
7469         (_dbus_string_get_const_data): inline when asserts are disabled
7470
7471         * dbus/dbus-message.c: record the _dbus_current_generation of
7472         creation so we can complain if dbus_shutdown() is used improperly.
7473         Do this only if checks are enabled.
7474
7475         * dbus/dbus-connection.c: ditto
7476         
7477 2004-11-26  Havoc Pennington  <hp@redhat.com>
7478
7479         * test/glib/test-profile.c: add with_bus mode to profile echoes
7480         that go through the bus.
7481
7482         * test/glib/run-test.sh: add ability to run test-profile
7483
7484         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7485         config file reload.
7486
7487 2004-11-26  Havoc Pennington  <hp@redhat.com>
7488
7489         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7490         thing was implemented
7491
7492 2004-11-26  Havoc Pennington  <hp@redhat.com>
7493
7494         * test/glib/test-profile.c: tweak a bit, add support for some
7495         made-up minimal malloc overhead with plain sockets, since in 
7496         real life some sort of buffers are unavoidable thus we could 
7497         count them in the theoretical best case
7498
7499 2004-11-26  Havoc Pennington  <hp@redhat.com>
7500
7501         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7502         where I was trying to cache one too many messages
7503
7504 2004-11-26  Havoc Pennington  <hp@redhat.com>
7505
7506         * dbus/dbus-message.c: reimplement message cache as an array which 
7507         makes the cache about twice as fast and saves maybe 1.5% overall
7508
7509 2004-11-26  Havoc Pennington  <hp@redhat.com>
7510
7511         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7512         message cache lock here
7513
7514 2004-11-26  Havoc Pennington  <hp@redhat.com>
7515
7516         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7517         the "char byte_order" next to each other to save 4 bytes
7518         (dbus_message_new_empty_header): reduce preallocation, since the
7519         message cache should achieve a similar effect
7520         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7521         message cache that keeps a few DBusMessage around in a pool,
7522         another 8% speedup or so.
7523
7524         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7525
7526 2004-11-25  Havoc Pennington  <hp@redhat.com>
7527
7528         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7529         to write, without reading or blocking, try it before the poll()
7530         and skip the poll() if nothing remains to write. This is about a
7531         3% speedup in the echo client/server
7532
7533 2004-11-25  Havoc Pennington  <hp@redhat.com>
7534
7535         The primary change here is to always write() once before adding
7536         the write watch, which gives us about a 10% performance increase.
7537         
7538         * dbus/dbus-transport-unix.c: a number of modifications to cope
7539         with removing messages_pending
7540         (check_write_watch): properly handle
7541         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7542         messages_pending stuff
7543         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7544         AUTHENTICATED cases
7545         (unix_handle_watch): after writing, see if the write watch can be
7546         removed
7547         (unix_do_iteration): assert that write_watch/read_watch are
7548         non-NULL rather than testing that they aren't, since they 
7549         aren't allowed to be NULL. check_write_watch() at the end so 
7550         we add the watch if we did not finish writing (e.g. got EAGAIN)
7551
7552         * dbus/dbus-transport-protected.h: remove messages_pending call,
7553         since it resulted in too much inefficient watch adding/removing; 
7554         instead we now require that the transport user does an iteration 
7555         after queueing outgoing messages, and after trying the first
7556         write() we add a write watch if we got EAGAIN or exceeded our 
7557         max bytes to write per iteration setting
7558
7559         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7560         function
7561
7562         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7563         freed and then accessed, valgrind flagged this bug, fix it
7564
7565         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7566         as the last valid field plus 1, where really it is equal to the
7567         last valid field. Corrects some message corruption issues.
7568
7569         * dbus/dbus-mainloop.c: verbosity changes
7570
7571         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7572         instead of aborting in one of the test codepaths
7573
7574         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7575         caused not printing the pid ever again if a verbose was missing
7576         the newline at the end
7577         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7578
7579         * dbus/dbus-connection.c: verbosity changes; 
7580         (dbus_connection_has_messages_to_send): new function
7581         (_dbus_connection_message_sent): no longer call transport->messages_pending
7582         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7583         try to write() immediately, so we can avoid the write watch. This
7584         is the core purpose of this patchset
7585         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7586         dump the outgoing message queue, so nobody will get confused
7587         trying to send them or thinking stuff is pending to be sent
7588
7589         * bus/test.c: verbosity changes
7590
7591         * bus/driver.c: verbosity/assertion changes
7592
7593         * bus/dispatch.c: a bunch of little tweaks to get it working again
7594         because this patchset changes when/where you need to block.
7595
7596 2004-11-23  Havoc Pennington  <hp@redhat.com>
7597
7598         * test/glib/test-profile.c: modify to accept a plain_sockets
7599         argument in which case it will bench plain sockets instead of
7600         libdbus, for comparison purposes.
7601
7602 2004-11-22  Havoc Pennington  <hp@redhat.com>
7603
7604         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7605         threads for more time, so sysprof can get a grip on it.
7606
7607         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7608         pointless variable
7609
7610 2004-11-13  Havoc Pennington  <hp@redhat.com>
7611
7612         * test/glib/test-profile.c: fix this thing up a bit
7613
7614         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7615         preallocation sizes by a fair bit; not sure if this will be an
7616         overall performance win or not, but it does reduce reallocs.
7617
7618         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7619         the test hack that forced constant realloc if asserts are
7620         disabled, so we can profile sanely. Sprinkle in some
7621         _DBUS_UNLIKELY() which are probably pointless, but before I
7622         noticed the real performance problem I put them in.
7623         (_dbus_string_validate_utf8): micro-optimize this thing a little
7624         bit, though callgrind says it didn't help; then special-case
7625         ascii, which did help a lot; then be sure we detect nul bytes as
7626         invalid, which is a bugfix.
7627         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7628         superstition; use memset to nul the padding instead of a manual
7629         loop.
7630         (_dbus_string_get_length): inline this as a
7631         macro; it showed up in the profile because it's used for loop
7632         tests and so forth
7633
7634 2004-11-10  Colin Walters  <walters@verbum.org>
7635
7636         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7637         for extra paranoia.
7638
7639 2004-11-09  Colin Walters  <walters@verbum.org>
7640
7641         * dbus/dbus-string.c (_dbus_string_get_length): New
7642         function, writes DBusString to C buffer.
7643
7644         * dbus/dbus-string.h: Prototype it.
7645
7646         * dbus/dbus-message.c (dbus_message_type_to_string): New
7647         function, converts message type into C string.
7648
7649         * dbus/dbus-message.h: Prototype it.
7650
7651         * bus/selinux.c (bus_selinux_check): Take source pid,
7652         target pid, and audit data.  Pass audit data to
7653         avc_has_perm.
7654         (log_audit_callback): New function, appends extra
7655         audit information.
7656         (bus_selinux_allows_acquire_service): Also take
7657         service name, add it to audit data.
7658         (bus_selinux_allows_send): Also take message
7659         type, interface, method member, error name,
7660         and destination, and add them to audit data.
7661         (log_cb): Initialize func_audit.
7662         
7663         * bus/selinux.h (bus_selinux_allows_acquire_service)
7664         (bus_selinux_allows_send): Update prototypes 
7665
7666         * bus/services.c (bus_registry_acquire_service): Pass
7667         service name to bus_selinux_allows_acquire_service.
7668
7669         * bus/bus.c (bus_context_check_security_policy): Pass
7670         additional audit data.  Move assignment of dest
7671         to its own line.
7672
7673 2004-11-07  Colin Walters  <walters@verbum.org>
7674
7675         * dbus/dbus-transport-unix.c (do_authentication): Always
7676         initialize auth_completed.
7677         
7678 2004-11-07  Colin Walters  <walters@verbum.org>
7679
7680         * bus/bus.c (load_config): Break into three
7681         separate functions: process_config_first_time_only,
7682         process_config_every_time, and process_config_postinit.
7683         (process_config_every_time): Move call of
7684         bus_registry_set_service_context_table into
7685         process_config_postinit.
7686         (process_config_postinit): New function, does
7687         any processing that needs to happen late
7688         in initialization (and also on reload).
7689         (bus_context_new): Instead of calling load_config,
7690         open config parser here and call process_config_first_time_only
7691         and process_config_every_time directly.  Later, after
7692         we have forked but before changing UID,
7693         invoke bus_selinux_full_init, and then call
7694         process_config_postinit.
7695         (bus_context_reload_config): As in bus_context_new,
7696         load parse file inside here, and call process_config_every_time
7697         and process_config_postinit.
7698
7699         * bus/services.h, bus/services.c
7700         (bus_registry_set_service_context_table): Rename
7701         from bus_registry_set_sid_table.  Take string hash from config
7702         parser, and convert them here into SIDs.
7703
7704         * bus/config-parser.c (struct BusConfigParser): Have
7705         config parser only store a mapping of service->context
7706         string.
7707         (merge_service_context_hash): New function.
7708         (merge_included): Merge context string hashes instead
7709         of using bus_selinux_id_table_union.
7710         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7711         simply create a new string hash.
7712         (bus_config_parser_unref): Unref it.
7713         (start_selinux_child): Simply insert strings into hash,
7714         don't call bus_selinux_id_table_copy_over.
7715
7716         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7717         (bus_selinux_id_table_copy_over): Delete.
7718
7719 2004-11-03  Colin Walters  <walters@verbum.org>
7720
7721         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7722         variables.
7723         
7724 2004-11-03  Colin Walters  <walters@verbum.org>
7725
7726         * bus/test-main.c (test_pre_hook): Fix test logic,
7727         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7728
7729 2004-11-02  Colin Walters  <walters@redhat.com>
7730
7731         * bus/selinux.c (bus_selinux_init): Split into two functions,
7732         bus_selinux_pre_init and bus_selinux_post_init.
7733         (bus_selinux_pre_init): Just determine whether SELinux is
7734         enabled.
7735         (bus_selinux_post_init): Do everything else.
7736
7737         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7738         config file, and bus_selinux_post_init after.  This ensures that
7739         we don't lose the policyreload notification thread that
7740         bus_selinux_init created before forking previously.
7741         
7742         * bus/test-main.c (test_pre_hook): Update for split.
7743
7744 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7745
7746         Patch from Johan Fischer <linux@fischaz.com>
7747         
7748         * mono/doc/Makefile.am (install-data-local): Added directory
7749         install for DESTDIR
7750
7751 2004-10-29  Colin Walters  <walters@redhat.com>
7752
7753         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7754         parameter for fd to write pid to.       
7755
7756         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7757         
7758         * bus/bus.c (bus_context_new): Pass print_pid_fd
7759         to _dbus_become_daemon (bug #1720)
7760
7761 2004-10-29  Colin Walters  <walters@redhat.com>
7762
7763         Patch from Ed Catmur <ed@catmur.co.uk>
7764
7765         * mono/doc/Makefile.am (install-data-local): Handle
7766         DESTDIR.
7767
7768 2004-10-29  Colin Walters  <walters@redhat.com>
7769
7770         * bus/.cvsignore, qt/.cvsignore: Update.
7771
7772 2004-10-29  Colin Walters  <walters@redhat.com>
7773
7774         Patch from Kristof Vansant <de_lupus@pandora.be>
7775
7776         * configure.in: Detect Slackware.
7777         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7778         * bus/rc.messagebus.in: New file.
7779
7780 2004-10-29  Colin Walters  <walters@redhat.com>
7781
7782         * tools/dbus-monitor.c (filter_func): Return
7783         DBUS_HANDLER_RESULT_HANDLED in filter function
7784         for now.  See:
7785         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7786
7787 2004-10-29  Colin Walters  <walters@redhat.com>
7788
7789         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7790
7791         * bus/services.c (bus_registry_acquire_service): 
7792         Correctly retrieve service name from DBusString
7793         for printing.
7794
7795 2004-10-29  Colin Walters  <walters@redhat.com>
7796
7797         * dbus/dbus-glib.h: Update documentation to not
7798         refer to internal APIs.
7799
7800 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7801
7802         * mono/Arguments.cs (GetDBusTypeConstructor):
7803         type.UnderlyingSystemType will return "System.Byte" if you do it
7804         on "byte[]", which is not what we want.  So check the type.IsArray
7805         property and use System.Array instead.
7806
7807 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7808
7809         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7810         the DBusUserInfo structure since this is passed into the function.
7811         This would cause a double free when the function that allocated
7812         the structure would try to free it when an error occured.
7813
7814         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7815         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7816         for service activation to avoid 32bit/64bit parallel install issues
7817
7818 2004-10-21  Colin Walters  <walters@verbum.org>
7819
7820         * AUTHORS: Fix my email address, the @gnu.org one
7821         has been bouncing for some time.  Also add J5.
7822         
7823 2004-10-21  Colin Walters  <walters@verbum.org>
7824
7825         * dbus/dbus-transport-unix.c (do_authentication): Return
7826         authentication status to callers.
7827         (unix_handle_watch): If we completed authentication this round,
7828         don't do another read.  Instead wait until the next iteration,
7829         after we've read any pending data in the auth buffer.
7830         (unix_do_iteration): Ditto.
7831         (unix_handle_watch): Updated for new do_authentication prototype.
7832
7833 2004-10-18  Colin Walters  <walters@verbum.org>
7834
7835         * bus/selinux.c (bus_selinux_enabled): Handle
7836         --disable-selinux case.
7837         
7838 2004-10-18  Colin Walters  <walters@verbum.org>
7839
7840         * bus/selinux.h: Add bus_selinux_enabled.
7841         
7842         * bus/selinux.c (bus_selinux_enabled): Implement it.
7843         
7844         * bus/config-parser.c (struct include): Add
7845         if_selinux_enabled member.
7846         (start_busconfig_child): Parse if_selinux_enabled
7847         attribute for include.
7848         (bus_config_parser_content): Handle it.
7849
7850         * bus/session.conf.in, bus/system.conf.in: Add
7851         inclusion of context mapping to default config files;
7852         conditional on SELinux being enabled.
7853         
7854         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7855         
7856         * test/data/invalid-config-files/badselinux-1.conf, 
7857         test/data/invalid-config-files/badselinux-2.conf:
7858         Test files for bad syntax.
7859         
7860 2004-10-17  Colin Walters  <walters@verbum.org>
7861
7862         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7863         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7864         format specifier mismatches.
7865
7866 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7867
7868         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7869         format string.
7870
7871         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7872         pointer (bug #1540, Leonardo Boiko).
7873
7874 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7875
7876         * mono/BusDriver.cs: Changed BusDriver struct to remove
7877         the ServiceCreated and ServiceDeleted events and replace them
7878         with the new ServiceOwnerChanged event.
7879
7880         * mono/example/BusListener.cs: Added a new example program,
7881         which listens for and reports any ServiceOwnerChanged events
7882         on the bus driver.
7883
7884         * mono/example/Makefile.am (DESTDIR): Build changes for the
7885         new BusListener.cs example.
7886
7887 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7888
7889         * bus/signals.c (bus_match_rule_parse): validate the components of
7890         match rules (bug #1439).
7891
7892         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7893
7894 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7895
7896         * doc/dbus-specification.xml: document ServiceOwnerChanged
7897         signal.
7898         
7899         * bus/driver.c, bus/driver.h, bus/services.c: Use
7900         ServiceOwnerChanged signal instead of ServiceCreated and
7901         ServiceDeleted.
7902         
7903         * bus/dispatch.c: update testcase for the new signal.
7904
7905 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7906
7907         Patch from Nat Friedman <nat@novell.com>
7908
7909         * mono/Makefile.am: A number of small build fixes to allow "make
7910         distcheck" to succeed.
7911
7912         * mono/example/Makefile.am: "make distcheck" fixes.
7913
7914         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7915         key in @srcdir@.
7916
7917         * test/Makefile.am: "make distcheck" fixes.
7918
7919 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7920
7921         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7922
7923         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7924
7925         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7926         messages after the first one (bug #1389).
7927         
7928         * bus/dispatch.c (check_double_hello_message): add a test case for
7929         the double hello message bug.
7930         (check_existent_service_activation): fix check of spawning error.
7931         
7932 2004-09-16  David Zeuthen  <david@fubar.dk>
7933
7934         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7935
7936 2004-09-12  David Zeuthen  <david@fubar.dk>
7937
7938         Patch from Kay Sievers <kay.sievers@vrfy.org>
7939
7940         * bus/bus.c (bus_context_new):
7941         * bus/bus.h:
7942         * bus/main.c (usage)
7943         (main):
7944         Add commandline option --nofork to override configuration file
7945         setting.
7946
7947 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7948
7949         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7950         compilers don't like it (bug #974).
7951
7952 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7953
7954         * qt/connection.*: Applied patch by Jérôme Lodewyck
7955         <lodewyck@clipper.ens.fr> to integrate an existing
7956         connection into the Qt eventloop
7957
7958 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7959
7960         * mono/BusDriver.cs: Added.  This is a class for interacting with
7961         the org.freedesktop.DBus service.
7962
7963         * mono/Message.cs: Added a mechanism to expose the message that is
7964         currently being dispatched via the static Message.Current
7965         property.  Added Message.Sender and Message.Destination
7966         properties.
7967
7968         * mono/Handler.cs: Expose the dispatched message via
7969         Message.Current when handling method calls.
7970
7971         * mono/Service.cs: Expose the dispatched message via
7972         Message.Current when handling signal emissions.
7973         
7974         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7975         Connection.BaseService property.
7976
7977 2004-08-28  Havoc Pennington  <hp@redhat.com>
7978
7979         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7980
7981         More fixes from Steve Grubb
7982         
7983         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7984         (_dbus_listen_tcp_socket): fix fd leak
7985
7986         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7987         EINTR to a bit lower in the code
7988
7989 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7990
7991         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7992         TRUE if we are inquiring about the existence of the built-in
7993         org.freedesktop.DBus service.
7994
7995 2004-08-25  John Palmieri  <johnp@redhat.com>
7996         * bus/config-parser.c:
7997         (struct PolicyType): Add POLICY_CONSOLE
7998         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7999         (start_busconfig_child): Sets up console element when
8000         <policy at_console=""> is encountered in a policy file
8001         (append_rule_from_element): Convert console elements to console
8002         rules.
8003
8004         * bus/policy.c: 
8005         (bus_policy_create_client_policy): Add console rules to the client
8006         policy based on if the client is at the console
8007         (bus_policy_append_console_rule): New function for adding a
8008         console rule to a policy
8009         (bus_policy_merge): Handle console rule merging
8010
8011         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8012         where we check for console user files
8013         
8014         * dbus/dbus-sysdeps.c:
8015         (_dbus_file_exists): New function which checks if the given
8016         file exists
8017         (_dbus_user_at_console): New function which does the system
8018         specific process of checking if the user is at the console
8019
8020         * dbus/dbus-userdb.c:
8021         (_dbus_is_console_user): New function converts a UID to user name
8022         and then calls the system specific _dbus_user_at_console to 
8023         see if the user is at the console and therefor a console user
8024
8025 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8026
8027         * bus/config-parser.c (set_limit):
8028         * bus/dbus-daemon-1.1.in:
8029         * test/data/valid-config-files/many-rules.conf: set the
8030         max_match_rules_per_connection limt from the config file. 
8031
8032         * doc/busconfig.dtd: update the DTD.
8033
8034         * bus/driver.c: remove some unused variables.
8035
8036 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8037
8038         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8039         it's been replaced by dbus_g_bus_get
8040
8041 2004-08-23  Colin Walters  <walters@redhat.com>
8042
8043         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8044
8045         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8046
8047         * bus/selinux.c: Create a thread for policy reload notification.
8048         (bus_selinux_get_policy_root): Implement.
8049
8050         * bus/config-parser.c (start_busconfig_child)
8051         (bus_config_parser_content): Support SELinux-root relative
8052         inclusion.
8053
8054         * configure.in <HAVE_SELINUX>: Add -lpthread.
8055         
8056         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8057         (test_post_hook): Move memory checking into here.
8058         (test_pre_hook, test_post_hook): Move SELinux checks in
8059         here, but conditional on a DBUS_TEST_SELINUX environment
8060         variable.  Unfortunately we can't run the SELinux checks
8061         as a normal user, since they won't have any permissions
8062         for /selinux.  So this will have to be tested manually
8063         for now, until we have virtualization for most of
8064         libselinux.
8065         
8066 2004-08-23  Havoc Pennington  <hp@redhat.com>
8067
8068         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8069         drop supplementary groups, suggested by Steve Grubb
8070
8071 2004-08-20  Colin Walters  <walters@redhat.com>
8072
8073         * bus/config-parser.c (start_busconfig_child): Remove some unused
8074         variables.
8075         
8076         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8077         warning.
8078
8079 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8080
8081         * configure.in: If --enable-mono is passed in, if we can't find
8082         mono error out.
8083
8084         * mono/Makefile.am: Use /gacutil to install assemblies into the
8085         GAC and not /root.
8086
8087 2004-08-12  Havoc Pennington  <hp@redhat.com>
8088
8089         * NEWS: update for 0.22
8090
8091         * configure.in: release 0.22
8092
8093 2004-08-11  Colin Walters  <walters@redhat.com>
8094
8095         * tools/dbus-send.c (main, usage): Add --reply-timeout
8096         argument.
8097
8098 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8099
8100         * bus/bus.c (process_config_first_time_only): get rid of an unused
8101         DBusError that was causing a memoy leak (bug #989).
8102
8103         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8104         fix compilation on Solaris/Forte C (bug #974)
8105
8106         * bus/main.c (main): plug two minuscule memleaks.
8107
8108 2004-08-10  Havoc Pennington  <hp@redhat.com>
8109
8110         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8111
8112 2004-08-09  Havoc Pennington  <hp@redhat.com>
8113
8114         * COPYING: switch to Academic Free License version 2.1 instead of
8115         2.0, to resolve complaints about patent termination clause.
8116
8117 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8118
8119         * README: added documentation for the --enable-python 
8120         configure switch.
8121
8122 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8123
8124         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8125         _unref in the SELinux support.
8126
8127         * doc/busconfig.dtd: update DTD for SELinux support.
8128
8129         * bus/config-loader-libxml.c: fix error handler and parser
8130         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8131
8132         * configure.in: remove the warning about libxml2.
8133
8134         * dbus/dbus-bus.c: silence doxygen warning.
8135
8136 2004-07-31  Colin Walters  <walters@redhat.com>
8137
8138         * configure.in: Move #error in SELinux check to its own line.
8139
8140 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8141
8142         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8143         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8144         dbus_error_set.
8145
8146         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8147         broken by the change in the _SET_OOM macros.
8148
8149 2004-07-31  Colin Walters  <walters@redhat.com>
8150
8151         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8152         BUS_SET_OOM.
8153
8154 2004-07-31  Colin Walters  <walters@redhat.com>
8155
8156         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8157         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8158         AC_MSG_CHECKING.
8159
8160 2004-07-24  Havoc Pennington  <hp@redhat.com>
8161
8162         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8163
8164         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8165         functionality
8166
8167         * configure.in: add --enable-selinux
8168         
8169         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8170
8171         * bus/main.c (main): initialize and shut down selinux
8172
8173         * bus/connection.c: store SELinux ID on each connection, to avoid 
8174         repeated getting of the string context and converting it into 
8175         an ID
8176
8177         * bus/bus.c (bus_context_get_policy): new accessor, though it
8178         isn't used
8179         (bus_context_check_security_policy): check whether the security
8180         context of sender connection can send to the security context of
8181         recipient connection
8182
8183         * bus/config-parser.c: add parsing for <selinux> and <associate>
8184         
8185         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8186         implement dbus_connection_get_unix_fd()
8187
8188         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8189         function, used by the selinux stuff
8190         
8191 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8192
8193         * bus/config-loader-libxml.c: complete the implementation of
8194         libxml backend for config file loader. Doesn't work with full OOM
8195         test yet. 
8196         
8197         * configure.in: change error when selecting libxml into a warning.
8198         
8199         * test/data/invalid-config-files: add two non-well-formed XML
8200         files. 
8201         
8202         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8203         
8204         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8205         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8206         be necessary to read all the buffer. (bug #894)
8207
8208         * bus/activation.c (bus_activation_activate_service): fix a
8209         potential assertion failure (bug #896). Small optimization in the
8210         case of auto-activation messages.
8211
8212         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8213         add test case for byte-through-vararg bug (#901). patch by Kimmo
8214         Hämäläinen. 
8215
8216 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8217
8218         * python/dbus.py:
8219         * python/dbus_bindings.pyx.in:
8220         Add dbus.init_gthreads (), allow emit_signal to pass
8221         arguments to the signal.
8222         
8223 2004-07-24  Havoc Pennington  <hp@redhat.com>
8224
8225         * AUTHORS: add some people, not really comprehensively, let me
8226         know if I missed you
8227
8228 2004-07-24  Havoc Pennington  <hp@redhat.com>
8229
8230         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8231         Owen
8232
8233         * test/Makefile.am (DIST_SUBDIRS): here also
8234
8235 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8236
8237         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8238         breaking build on Solaris, reported by Farhad Saberi on the ML.
8239
8240         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8241         va_arg invocation to account for integer promotion in the case of
8242         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8243
8244         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8245         _dbus_list_get_first_link, not _dbus_list_get_first.
8246
8247         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8248
8249         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8250         handler functions so that the asserts in _dbus_object_subtree_unref
8251         do not fail.
8252
8253         * dbus/dbus-transport-unix.c (do_reading):
8254         _dbus_transport_queue_messages return value is of type
8255         dbus_bool_t, not DBusDispatchStatus.
8256         
8257 2004-07-19  David Zeuthen  <david@fubar.dk>
8258
8259         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8260
8261         * bus/dispatch.c:
8262         (check_get_connection_unix_user): Debug says GetProperty; but the
8263         method is called GetConnectionUnixUser
8264         (check_get_connection_unix_process_id): New function
8265         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8266         also call check_get_connection_unix_process_id()
8267         
8268         * bus/driver.c:
8269         (bus_driver_handle_get_connection_unix_process_id): New function,
8270         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8271         interface
8272         
8273         * dbus/dbus-auth.c:
8274         (handle_server_data_external_mech): Set pid from the credentials
8275         obtained from the socket
8276         
8277         * dbus/dbus-connection.c:
8278         (dbus_connection_get_unix_process_id): New function
8279         
8280         * dbus/dbus-connection.h: 
8281         Add prototype for dbus_connection_get_unix_process_id
8282         
8283         * dbus/dbus-transport.c:
8284         (_dbus_transport_get_unix_process_id): New function
8285         
8286         * dbus/dbus-transport.h:
8287         Add prototype for _dbus_transport_get_unix_process_id
8288         
8289 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8290
8291         * dbus/dbus-message.c: Message counter fix, patch by Christian
8292         Hammond <chipx86@gnupdate.org>
8293
8294 2004-07-18  Seth Nickell  <seth@gnome.org>
8295
8296         * python/dbus.py:
8297         * python/dbus_bindings.pyx.in:
8298         * python/tests/test-client.py:
8299
8300         Add dbus.ByteArray and dbus_bindings.ByteArray
8301         types so that byte streams can be passed back.
8302
8303         Give jdahlin the heaps of credit that are so
8304         rightfully his.
8305         
8306 2004-07-12  Seth Nickell  <seth@gnome.org>
8307
8308         * python/dbus.py:
8309
8310         Add message argument to the default object_method_handler
8311         function.
8312         
8313         * python/dbus_bindings.pyx.in:
8314
8315         Automatically return NIL when passed an empty list
8316         (we can't pass back a list since lists are typed
8317         and we don't have any idea what type the the client
8318         intended the list to be... :-( )
8319         
8320 2004-07-10  Seth Nickell  <seth@gnome.org>
8321
8322         * python/examples/Makefile.am:
8323
8324         Fix distcheck breakage caused by new examples.
8325
8326 2004-07-10  Seth Nickell  <seth@gnome.org>
8327
8328         * python/dbus.py:
8329
8330         Add "message" argument to service-side dbus.Object
8331         methods. This will break existing services written
8332         using the python bindings, but will allow extraction
8333         of all the message information (e.g. who its from).
8334
8335         Add improved "object oriented" signal handling/emission.
8336         
8337         * python/examples/example-service.py:
8338
8339         Nix this example.
8340         
8341         * python/examples/example-signal-emitter.py:
8342         * python/examples/example-signal-recipient.py:
8343
8344         Two new examples that show how to emit and receive
8345         signals using the new APIs.
8346         
8347         * python/examples/example-signals.py:
8348         * python/examples/gconf-proxy-service.py:
8349         * python/examples/gconf-proxy-service2.py:
8350
8351         Add "message" argument to service methods.
8352
8353 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8354
8355         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8356         * dbus/bus.c (dbus_bus_get_unix_user)
8357         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8358         method of org.freedesktop.DBus interface.
8359
8360         * bus/dispatch.c: test case
8361
8362 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8363
8364         * python/Makefile.am: switched include directory from glib/ to dbus/
8365         since dbus-glib.h moved
8366  
8367 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8368
8369         * configure.in: prevent building the gcj stuff and libxml loader
8370         since they are broken.
8371
8372 2004-06-20  Havoc Pennington  <hp@redhat.com>
8373
8374         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8375         codes from the dbus error names
8376         
8377         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8378         as dbus/dbus-glib.h and that breakage is now visible due to 
8379         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8380         
8381         * glib/dbus-glib.h: s/gproxy/g_proxy/
8382
8383         * dbus/dbus-shared.h: new header to hold stuff shared with
8384         binding APIs
8385         
8386         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8387         than dbus-errors.h
8388
8389         * glib/dbus-glib.h (dbus_set_g_error): move to
8390         dbus-glib-lowlevel.h
8391
8392         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8393         of stuff to enable this
8394
8395         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8396
8397         * a bunch of other changes with the same basic "separate glib 
8398         bindings from dbus.h" theme
8399         
8400 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8401
8402         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8403
8404         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8405
8406 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8407
8408         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8409         the reply value of the ServiceExists message.
8410
8411 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8412
8413         * python/dbus_bindings.pyx.in: No longer need to parse path
8414         elements and pass them as arrays of strings.  The C API now
8415         accepts plain path strings.
8416         (_build_parsed_path): removed 
8417
8418 2004-06-07  Havoc Pennington  <hp@redhat.com>
8419
8420         * doc/TODO: remove auto-activation item since it's done; sort
8421         items by importance/milestone
8422
8423 2004-06-07  Havoc Pennington  <hp@redhat.com>
8424
8425         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8426         random signature when using REQUIRED_FIELDS (this hack won't work
8427         in the long term)
8428
8429         * dbus/dbus-message.c: change the signature to be a header field,
8430         instead of message->signature special-case string. Incremental
8431         step forward. Then we can fix up code to send the signature in the
8432         message, then fix up code to validate said signature, then fix up
8433         code to not put the typecodes inline, etc.
8434         (load_one_message): don't make up the signature after the fact
8435         (decode_header_data): require signature field for the known
8436         message types
8437
8438         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8439
8440         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8441
8442 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8443
8444         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8445
8446         * mono/Handler.cs: Updated to follow new path argument for
8447         (un-)registering objects.
8448
8449         * mono/example/Makefile.am:
8450         * mono/Makefile.am:
8451         * configure.in: Bumped required version for mono and use new -pkg
8452         syntax for deps
8453
8454 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8455
8456         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8457         registration functions take the path argument as char* instead of
8458         char**.
8459
8460         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8461         split off the path decompostion part of
8462         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8463         warnings. 
8464
8465         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8466         
8467 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8468  
8469         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8470         machine approach.  A state is implemented as a function that
8471         handles incoming events as specified for that state.
8472         
8473         * doc/dbus-specification.xml: Update auth protocol state machine
8474         specification to match implementation.  Remove some leftover
8475         base64 examples.
8476
8477 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8478
8479         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8480         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8481         quiet doxygen.
8482
8483         * Doxyfile.in: remove deprecated options.
8484
8485         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8486         glib/test-thread.h, glib/test-thread-client.c,
8487         glib/test-thread-server.c, glib/test-profile.c,
8488         glib/test-dbus-glib.c: remove these unused files.
8489
8490 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8491
8492         * dbus/dbus-object-tree.c
8493         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8494         non-fallback handlers (bug #684).
8495         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8496         (find_subtree_recurse): report wether the returned subtree is an
8497         exact match or a "fallback" match higher up in the tree.
8498         (object_tree_test_iteration): update test case.
8499
8500 2004-06-01  Seth Nickell  <seth@gnome.org>
8501
8502         * python/dbus_bindings.pyx.in:
8503         * python/tests/test-client.py:
8504
8505         Round off basic type support. Add dicts (yay!), and 
8506         remaining array types.
8507
8508         Make MessageIter more general so it works for dicts too.
8509
8510         Mark all loop variables as C integers.
8511         
8512 2004-05-31  Havoc Pennington  <hp@redhat.com>
8513
8514         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8515         "in" before "out"
8516
8517         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8518
8519         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8520         option that runs the tests, and start filling in some code
8521         including for starters just dumping the interfaces to stdout
8522
8523         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8524
8525         * test/data/valid-introspection-files/lots-of-types.xml: test of
8526         an example introspection file
8527
8528         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8529         "node" (I think...)
8530
8531 2004-05-31  Seth Nickell  <seth@gnome.org>
8532
8533         * python/dbus_bindings.pyx.in:
8534         * python/tests/test-client.py:
8535
8536         Test Suite: 1
8537         Python Bindings: 0
8538
8539         Fix string array memory trashing bug... oops...
8540
8541 2004-05-30  Seth Nickell  <seth@gnome.org>
8542
8543         * python/dbus.py:
8544
8545         Add a nicer-but-less-flexible alternate API for handling 
8546         calls to virtual objects in dbus.ObjectTree.
8547
8548         Screw up the argument order to the dbus.Object constructor
8549         for consistency with dbus.ObjectTree (and to make dbus_methods
8550         optional for future extension)
8551         
8552         * python/examples/Makefile.am:
8553         * python/examples/gconf-proxy-service.py:
8554         * python/examples/gconf-proxy-service2.py:
8555
8556         Alternate implementation of gconf-proxy-service using the
8557         nicer dbus.ObjectTree API.
8558         
8559         * python/examples/example-service.py:
8560         * python/tests/test-server.py
8561
8562         Reverse the argument order to deal with dbus.Object constructor
8563         changes.
8564         
8565 2004-05-30  Seth Nickell  <seth@gnome.org>
8566
8567         * python/examples/example-client.py:
8568         * python/examples/example-service.py:
8569
8570         Take it back. Lists seem to work but they're broken
8571         in the test suite. Make the base examples use
8572         lists (works fine).
8573
8574 2004-05-30  Seth Nickell  <seth@gnome.org>
8575
8576         * python/dbus_bindings.pyx.in:
8577         * python/tests/test-client.py:
8578
8579         Add some more tests and fix errors that crop up.
8580         Unfortunately, currently it seems like marshalling
8581         and unmarshalling of lists is completely broken :-(
8582
8583 2004-05-30  Seth Nickell  <seth@gnome.org>
8584
8585         * python/dbus_bindings.pyx.in:
8586
8587         Add support for ObjectPath type.
8588
8589         * python/dbus.py:
8590
8591         Refactor message handling code to a common function.
8592         
8593         * python/tests/test-client.py:
8594         * python/tests/test-server.py:
8595
8596         Add tests that check to make sure values of all types
8597         can be echoed from a service w/o mangling.
8598         
8599 2004-05-29  Seth Nickell  <seth@gnome.org>
8600
8601         * python/dbus.py:
8602
8603         Add ObjectTree class which allows implementation
8604         of trees of "virtual" objects. Basically the python
8605         wrapper for "register_fallback".
8606         
8607         * python/examples/Makefile.am
8608         * python/examples/gconf-proxy-client.py:
8609         * python/examples/gconf-proxy-service.py:
8610
8611         Implement a simple GConf proxy service that supports
8612         get/set on string and int GConf keys using the ObjectTree.
8613         
8614 2004-05-29  Seth Nickell  <seth@gnome.org>
8615
8616         * python/dbus.py:
8617         * python/examples/example-client.py:
8618         * python/examples/example-service.py:
8619         * python/examples/list-system-services.py:
8620
8621         Add SessionBus, SystemBus and ActivationBus classes
8622         so you don't need to know the special little BUS_TYPE
8623         flag.
8624         
8625 2004-05-29  Havoc Pennington  <hp@redhat.com>
8626
8627         * bus/config-parser.c (process_test_valid_subdir): temporarily
8628         stop testing config parser OOM handling, since expat has issues
8629         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8630
8631         * bus/dbus-daemon-1.1.in: change requested_reply to
8632         send_requested_reply/receive_requested_reply so we can send the
8633         replies, not just receive them.
8634
8635         * bus/config-parser.c: parse the new
8636         send_requested_reply/receive_requested_reply
8637
8638         * bus/policy.c (bus_client_policy_check_can_send): add
8639         requested_reply argument and use it
8640
8641         * bus/bus.c (bus_context_check_security_policy): pass through
8642         requested_reply status to message send check
8643
8644         * bus/system.conf.in: adapt to requested_reply change
8645         
8646 2004-05-28  Havoc Pennington  <hp@redhat.com>
8647
8648         * test/glib/test-service-glib.c (main): remove unused variable
8649
8650         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8651
8652         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8653         from the enum, no longer in use.
8654
8655         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8656         works right.
8657
8658         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8659         whether error_name passed in is a valid error name.
8660
8661 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8662
8663         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8664         OBJECT_PATH and OBJECT_PATH_ARRAY
8665
8666 2004-05-28  Seth Nickell  <seth@gnome.org>
8667
8668         * python/examples/Makefile.am:
8669
8670         Forget to add Makefile.am. Do not pass go.
8671
8672 2004-05-28  Michael Meeks  <michael@ximian.com>
8673
8674         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8675         fix no int64 case.
8676
8677         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8678
8679         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8680         (_dbus_message_iter_get_basic_type_array): impl.
8681         drastically simplify ~all relevant _get methods to use these.
8682         (_dbus_message_iter_append_basic_array),
8683         (dbus_message_iter_append_basic): impl
8684         drastically simplify ~all relevant _append methods to use these.
8685
8686         * dbus/dbus-message-builder.c (parse_basic_type) 
8687         (parse_basic_array, lookup_basic_type): impl.
8688         (_dbus_message_data_load): prune scads of duplicate /
8689         cut & paste coding.
8690
8691         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8692         (_dbus_demarshal_basic_type): implement,
8693         (demarshal_and_validate_len/arg): beef up debug.
8694         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8695
8696 2004-05-27  Seth Nickell  <seth@gnome.org>
8697
8698         * configure.in:
8699         * python/Makefile.am:
8700
8701         Include the example python apps in the tarball.
8702         
8703         * python/examples/list-system-services.py
8704
8705         Add a python new example that fetches the list of services
8706         from the system bus.
8707         
8708 2004-05-27  Seth Nickell  <seth@gnome.org>
8709
8710         * python/dbus.py:
8711         * python/dbus_bindings.pyx.in:
8712
8713         Fix failure to notify that a signal was not handled,
8714         resulted in hung functions.
8715         
8716 2004-05-25  Colin Walters  <walters@redhat.com>
8717
8718         * tools/dbus-monitor.c (main): Monitor all types of messages.
8719
8720 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8721
8722         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8723         which unregisters the object path and disposes the handler.
8724
8725 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8726  
8727         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8728          
8729         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8730         operands to && so we call dbus_message_iter_next () for the last
8731         argument also.
8732
8733 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8734
8735         * dbus/dbus-object-tree.c
8736         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8737         children even if the requested path isn't registered.
8738         (object_tree_test_iteration): test object_tree_list_registered.
8739
8740         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8741         it to 0.
8742         
8743 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8744
8745         * doc/TODO: Remove resolved items.
8746
8747         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8748         field.
8749         
8750         * bus/connection.c (bus_connections_expect_reply): Enforce the
8751         per-connection limit on pending replies.
8752         
8753         Patch from Jon Trowbridge <trow@ximian.com>:
8754  
8755         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8756         up a watch that triggers a config reload when one end of the pipe
8757         becomes readable.
8758         (signal_handler): Instead of doing the config reload in our SIGHUP
8759         handler, just write to the reload pipe and let the associated
8760         watch handle the reload when control returns to the main loop.
8761  
8762         * bus/driver.c (bus_driver_handle_reload_config): Added.
8763         Implements a ReloadConfig method for requesting a configuration
8764         file reload via the bus driver.
8765  
8766 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8767
8768         * HACKING: Updated release instructions concerning the wiki page.
8769
8770 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8771
8772         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8773         filter against auth->allowed_mechs; we only add allowed mechs in
8774         record_mechanisms().
8775  
8776         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8777         ALLOWED_MECHS to auth-script format so we can set the list of
8778         allowed mechanisms.
8779  
8780         * data/auth/client-out-of-mechanisms.auth-script: New test to
8781         check client disconnects when it is out of mechanisms to try.
8782  
8783         * dbus/dbus-auth.c (process_command): Remove check for lines
8784         longer that 1 MB; we only buffer up maximum 16 kB.
8785  
8786         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8787         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8788         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8789         assume there might be unused bytes.
8790  
8791         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8792         client-out-of-mechs, it is handled in process_reject(). Move check
8793         for max failures to send_rejected(), as it's a server-only thing.
8794
8795         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8796         send_auth(), send_data(), send_rejected(), send_error(),
8797         send_ok(), send_begin() and send_cancel().
8798
8799 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8800
8801         Remove base64 encoding, replace with hex encoding. Original patch
8802         from trow@ximian.com, added error handling.
8803
8804         * dbus/dbus-string.c (_dbus_string_base64_encode)
8805         (_dbus_string_base64_decode): Remove.
8806         (_dbus_string_hex_decode): Add end_return argument so we can
8807         distinguish between OOM and invalid hex encoding.
8808         (_dbus_string_test): Remove base64 tests and add test case for
8809         invalid hex.
8810
8811         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8812         Replace base64 with hex.
8813
8814         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8815         for invalid hex encoded data in auth protocol.
8816
8817 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8818
8819         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8820         leak.
8821
8822 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8823
8824         * mono/dbus-sharp.dll.config.in: Added for GAC
8825         * mono/dbus-sharp.snk: Added for GAC
8826         * mono/Assembly.cs.in: Added for GAC
8827         * mono/Makefile.am: Changes for GAC installation        
8828         * configure.in: Added refs for dbus-sharp.dll.config.in and
8829         Assembly.cs.in. More fixes for mono testing
8830         * mono/example/Makefile.am: Changed var to CSC
8831         * Makefile.am: Changed flag name to DBUS_USE_CSC
8832
8833 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8834
8835         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8836         * mono/doc/*: Added documentation framework
8837         * configure.in: Added monodoc check
8838         * README: Added description of mono configure flags
8839
8840 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8841
8842         * doc/dbus-specification.xml: Added a "Required" column to the 
8843         header fields table and changed the "zero or more" verbage in
8844         the above paragraph to read "The header must contain the required 
8845         named header fields and zero or more of the optional named header 
8846         fields".
8847         * test/data/invalid-messages/*.message: Added the required PATH 
8848         named header field to the tests so that they don't fail on 
8849         'Missing path field'
8850
8851 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8852
8853         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8854         the stack by implicitly defining variable and parameter types and
8855         removing the hack of defining C pointers as python objects and later
8856         casting them.
8857
8858 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8859
8860         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8861
8862 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8863
8864         * mono/DBusType/Dict.cs: Handle empty dicts
8865         * mono/DBusType/Array.cs: Handle empty arrays
8866         * mono/Arguments.cs: Handle empty arguments
8867
8868 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8869
8870         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8871         field
8872
8873 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8874
8875         * test/data/valid-messages/standard-*.message: Update message
8876         test scripts to new header field names.
8877
8878 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8879
8880         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8881         overflow to times_we_did_each_thing array which would chop off the
8882         first character of the failure_dir string. Increased the size of
8883         the array to 7 to reflect the number of random mutation functions
8884         we have.
8885
8886 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8887
8888         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8889         unix_server->watch here, it is unreffed in disconnect.
8890         (_dbus_server_new_for_tcp_socket): convert NULL host to
8891         "localhost" here so we don't append NULL to address.
8892         
8893         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8894         various addresses, including tcp with no explicit host.
8895
8896 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8897
8898         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8899         fix incorrect setting of .name_offset in the HeaderField (it was
8900         off by two bytes, positioned right after the name and typecode)
8901
8902         * bus/bus.c (bus_context_new, bus_context_unref): test before
8903         calling dbus_server_free_data_slot and _dbus_user_database_unref
8904         in case of an error.
8905
8906         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8907         by libdbus-gtool.
8908
8909 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8910
8911         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8912         _dbus_poll() instead of select().
8913
8914 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8915
8916         * bus/main.c (signal_handler): Reload the configuration files
8917         on SIGHUP.
8918         (main): Set up our SIGHUP handler.
8919
8920         * bus/bus.c (struct BusContext): Store the config file, user and
8921         fork flag in the BusContext.
8922         (process_config_first_time_only): Added.  Contains the code
8923         (previously in bus_context_new) for setting up the BusContext from
8924         the BusConfigParser that should only be run the first time the
8925         config files are read.
8926         (process_config_every_time): Added.  Contains the code (previously
8927         in bus_context_new) for setting up the BusContext from the
8928         BusConfigParser that should be run every time the config files are
8929         read.
8930         (load_config): Added.  Builds a BusConfigParser from the config
8931         files and passes the resulting structure off to
8932         process_config_first_time_only (assuming this is the first time)
8933         and process_config_every_time.
8934         (bus_context_new): All of the config-related code has been moved
8935         to process_config_first_time_only and process_config_every_time.
8936         Now this function just does the non-config-related initializations
8937         and calls load_config.
8938         (bus_context_reload_config): Added.
8939
8940 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8941
8942         * bus/driver.c (bus_driver_handle_get_service_owner):
8943         implement a GetServiceOwner method.
8944         * doc/dbus-specification.xml: document it.
8945         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8946         
8947         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8948         implement, using the bus GetServiceOwner method.
8949
8950         * test/glib/test-dbus-glib.c:
8951         use dbus_gproxy_new_for_service_owner so that we can receive the
8952         signal. 
8953
8954 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8955
8956         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8957         dbus/dbus-message.c, dbus/dbus-protocol.h
8958         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8959
8960         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8961         dbus/dbus-message.c, dbus/dbus-protocol.h
8962         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8963
8964         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8965         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8966         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8967
8968         * doc/dbus-specification.xml (Header Fields Table):
8969         s/SERVICE/DESTINATION
8970         s/SENDER_SERVICE/SENDER
8971
8972
8973 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8974
8975         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8976         a few seconds.
8977
8978 2004-04-13  Michael Meeks  <michael@ximian.com>
8979
8980         * glib/dbus-gobject.c (handle_introspect): split out
8981         (introspect_properties): this.
8982         (handle_introspect): implement this.
8983
8984         * test/glib/Makefile.am: use the absolute path so the bus
8985         daemon's chdir ("/") doesn't kill us dead.
8986
8987         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8988
8989 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8990
8991         * bus/config-parser.c (struct BusConfigParser): Added
8992         included_files field.
8993         (seen_include): Added.  Checks whether or not a file has already
8994         been included by any parent BusConfigParser.
8995         (bus_config_parser_new): Copy the parent's included_files.
8996         (include_file): Track which files have been included, and fail on
8997         circular inclusions.
8998         (process_test_valid_subdir): Changed printf to report if we are
8999         testing valid or invalid conf files.
9000         (all_are_equiv): Changed printf to be a bit clearer about
9001         what we are actually doing.
9002         (bus_config_parser_test): Test invalid configuration files.
9003
9004 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9005
9006         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9007         argument.  If non-null, the newly-constructed BusConfigParser will
9008         be initialized with the parent's BusLimits instead of the default
9009         values.
9010         (include_file): When including a config file, pass in
9011         the current parser as the parent and then copy the BusLimits
9012         from the included BusConfigParser pack to the current parser.
9013         (process_test_valid_subdir): Renamed from process_test_subdir.
9014         (process_test_equiv_subdir): Added.  Walks through a directory,
9015         descending into each subdirectory and loading the config files
9016         it finds there.  If any subdirectory contains two config files
9017         that don't produce identical BusConfigParser structs, fail.
9018         For now, the BusConfigParser's BusPolicies are not compared.
9019         (bus_config_parser_test): Call both process_test_valid_subdir and
9020         process_test_equiv_subdir.
9021
9022         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9023         argument and pass it along to the call to bus_config_parser_new.
9024         Also made a few small changes to allow this code to compile.
9025
9026         * bus/config-loader-expat.c (bus_config_load): Take a parent
9027         argument and pass it along to the call to bus_config_parser_new.
9028
9029         * bus/bus.c (bus_context_new): Load the config file
9030         with a NULL parent argument.
9031
9032 2004-03-29  Michael Meeks  <michael@ximian.com>
9033
9034         * glib/dbus-gobject.c (introspect_properties): split
9035         out, fix mangled 'while' flow control.
9036         (introspect_signals): implement.
9037         (handle_introspect): update.
9038
9039 2004-03-29  Michael Meeks  <michael@ximian.com>
9040
9041         * glib/dbus-gobject.c (set_object_property): split out / 
9042         re-work, use the property type, and not the message type(!)
9043         (get_object_property): ditto.
9044
9045         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9046         (dbus_gvalue_marshal): make this code re-usable, needed
9047         for signals too, also on both proxy and server side.
9048         Re-write for more efficiency / readability.
9049
9050 2004-03-29  Michael Meeks  <michael@ximian.com>
9051
9052         * dbus/dbus-message.c
9053         (dbus_message_new_error_printf): impl.
9054
9055         * dbus/dbus-connection.c
9056         (dbus_connection_unregister_object_path): fix warning.
9057
9058         * configure.in: fix no-mono-installed situation.
9059
9060 2004-03-27  Havoc Pennington  <hp@redhat.com>
9061
9062         Patch from Timo Teräs:
9063         
9064         * tools/dbus-send.c (main): if --print-reply, assume type is
9065         method call; support boolean type args
9066         
9067         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9068         bunch of memleak and logic bugs
9069         
9070 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9071
9072         * mono/Arguments.cs:
9073         * mono/Introspector.cs:
9074         * mono/Handler.cs:
9075         * mono/InterfaceProxy.cs:
9076         * mono/Message.cs
9077         * mono/ProxyBuilder.cs:
9078         * mono/Service.cs:
9079         Added InterfaceProxy class to avoid building proxies for every
9080         object.
9081
9082         * dbus-message.h:
9083         * dbus-message.c (dbus_message_append_args_valist)
9084         (dbus_message_iter_get_object_path)
9085         (dbus_message_iter_get_object_path_array)
9086         (dbus_message_iter_append_object_path)
9087         (dbus_message_iter_append_object_path_array):
9088         Added object_path iter functions to handle OBJECT_PATH arguments
9089         
9090 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9091
9092         First checkin of mono bindings.
9093         * configure.in:
9094         * Makefile.am:
9095         Build stuff for the bindings
9096         * dbus-sharp.pc.in: Added for pkgconfig
9097         
9098 2004-03-21  Havoc Pennington  <hp@redhat.com>
9099
9100         * test/test-service.c (main): remove debug spew
9101
9102 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9103
9104         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9105         arrays
9106
9107         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9108         (dbus_message_iter_init_array_iterator)
9109         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9110         indicate whether the iterator is empty
9111
9112         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9113         warnings
9114
9115 2004-03-19  Havoc Pennington  <hp@redhat.com>
9116
9117         * NEWS: 0.21 updates
9118
9119         * configure.in: 0.21
9120
9121         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9122         
9123         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9124         you don't need pyrex to make dist
9125
9126         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9127         sources; run moc
9128         
9129 2004-03-18  Richard Hult  <richard@imendio.com>
9130
9131         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9132         (dbus_message_set_auto_activation): Add doxygen docs.
9133
9134 2004-03-16  Richard Hult  <richard@imendio.com>
9135
9136         * bus/activation.c: (bus_activation_service_created),
9137         (bus_activation_send_pending_auto_activation_messages),
9138         (bus_activation_activate_service):
9139         * bus/activation.h:
9140         * bus/dispatch.c: (bus_dispatch),
9141         (check_nonexistent_service_auto_activation),
9142         (check_service_auto_activated),
9143         (check_segfault_service_auto_activation),
9144         (check_existent_service_auto_activation), (bus_dispatch_test):
9145         * bus/driver.c: (bus_driver_handle_activate_service):
9146         * bus/services.c: (bus_registry_acquire_service):
9147         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9148         (dbus_message_get_auto_activation):
9149         * dbus/dbus-message.h:
9150         * dbus/dbus-protocol.h: Implement auto-activation.
9151         
9152         * doc/dbus-specification.xml: Add auto-activation to the spec.
9153
9154 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9155
9156         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9157         fix a bug with CUSTOM types.
9158
9159         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9160         a unit test for this bug (used to fail).
9161
9162 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9163
9164         * bus/activation.c:
9165         (babysitter_watch_callback): notify all pending activations waiting for
9166           the same exec that the activation failed.
9167         (bus_activation_activate_service): shortcut the activation if we 
9168           already waiting for the same executable to start up.
9169
9170 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9171
9172         * bus/activation.c: 
9173         - Added service file reloading. 
9174           Each service files directory is kept in an hash table in 
9175           BusActivation and each BusActivationEntry knows what .service-file it
9176           was read from. So when you try to activate a service the bus will 
9177           check if it's been updated, removed or if new .service-files has 
9178           been installed.
9179         - Test code at the bottom for the service file reloading.
9180         * bus/test-main.c: (main):
9181         * bus/test.h:
9182         - added service reloading test.
9183         * dbus/dbus-sysdeps.c: 
9184         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9185
9186 2004-03-08  Michael Meeks  <michael@ximian.com>
9187
9188         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9189         bail immediately if disconnected, to avoid busy loop.
9190
9191         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9192         cleanup cut/paste/inefficiency.
9193
9194 2004-03-01  David Zeuthen  <david@fubar.dk>
9195
9196         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9197         bug where args were used twice. This bug resulted in a segfault
9198         on a Debian/PPC system when starting the messagebus daemon. Include
9199         dbus-sysdeps.h for DBUS_VA_COPY
9200
9201         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9202
9203         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9204         appropriate va_copy implementation. From GLib
9205         
9206 2004-02-24  Joe Shaw  <joe@ximian.com>
9207
9208         * bus/services.c (bus_registry_acquire_service): We need to pass
9209         in the service name to dbus_set_error() to prevent a crash.
9210
9211 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9212
9213         * AUTHORS: Reveal my True identity.
9214
9215 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9216
9217         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9218         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9219
9220 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9221
9222         * doc/TODO: Added not about better error check of configuration files.
9223
9224 2003-12-02  Richard Hult  <richard@imendio.com>
9225
9226         * Update AFL version to 2.0 throughout the source files to reflect
9227         the update that was done a while ago.
9228
9229 2003-12-02  Richard Hult  <richard@imendio.com>
9230
9231         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9232         wrote_dict_key to FALSE on the iter that the dict is appended to,
9233         just like when appending other types. Fixes a bug where a dict
9234         couldn't be put inside a dict.
9235         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9236         (message_iter_test, _dbus_message_test): Add test case for dict
9237         inside dict.
9238
9239 2003-12-01  David Zeuthen  <david@fubar.dk>
9240
9241         * python/dbus.py: Add the actual message when calling the reciever
9242         of a signal such that parameters can be inspected. Add the method
9243         remove_signal_receiver
9244         
9245 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9246
9247         * bus/*.[ch]:
9248         * dbus/*.[ch]:
9249         * glib/*.[ch]: Made ref functions return the pointer
9250
9251 2003-11-25  Zack Rusin  <zack@kde.org>
9252
9253         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9254
9255         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9256         wrappers,
9257
9258         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9259         the Integrator and to better fit with the server,
9260
9261 2003-11-24  Zack Rusin  <zack@kde.org>
9262
9263         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9264         the integrator handles it now
9265
9266         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9267         since QTimer wasn't really meant to be used the way DBusTimeout is
9268
9269 2003-11-24  Zack Rusin  <zack@kde.org>
9270
9271         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9272         Integrator class which integrates D-BUS with the Qt event loop,
9273
9274         * qt/connection.h, qt/connection.cpp: Move all the code which
9275         was dealing with D-BUS integration to the Integrator class,
9276         and start using Integrator,
9277
9278 2003-11-23  Zack Rusin  <zack@kde.org>
9279
9280         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9281         wrapper
9282
9283         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9284         switching namespaces to DBusQt, reworking the class,
9285
9286         * Makefile.cvs: switching dependencies so that it matches KDE 
9287         schematics,
9288         
9289         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9290         the library
9291
9292 2003-11-19  Havoc Pennington  <hp@redhat.com>
9293
9294         * NEWS: update
9295
9296         * configure.in: bump version to 0.20
9297
9298         * configure.in (have_qt): add yet another place to look for qt
9299         (someone hand trolltech a .pc file...)
9300
9301 2003-11-01  Havoc Pennington  <hp@redhat.com>
9302
9303         * doc/dbus-specification.xml: add state machine docs on the auth
9304         protocol; just a first draft, I'm sure it's wrong.      
9305
9306 2003-10-28  David Zeuthen  <david@fubar.dk>
9307
9308         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9309         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9310         
9311 2003-10-28  Havoc Pennington  <hp@redhat.com>
9312
9313         * dbus/dbus-message.c (get_next_field): delete unused function
9314
9315 2003-10-28  Havoc Pennington  <hp@redhat.com>
9316
9317         * bus/expirelist.c (do_expiration_with_current_time): detect
9318         failure of the expire_func due to OOM
9319
9320         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9321
9322         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9323         NoReply error that's now created by the bus when the service exits
9324
9325 2003-10-28  Havoc Pennington  <hp@redhat.com>
9326
9327         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9328         tests for set_path, set_interface, set_member, etc.
9329
9330         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9331
9332         * dbus/dbus-message.c (set_string_field): always just delete and
9333         re-append the field; accept NULL for deletion
9334         (re_align_fields_recurse): reimplement
9335         
9336 2003-10-26  Havoc Pennington  <hp@redhat.com>
9337
9338         * dbus/dbus-connection.c: fix docs to properly describe the
9339         disconnected message
9340         (_dbus_connection_notify_disconnected): remove this function; 
9341         we can't synchronously add the disconnected message, we have to 
9342         do it after we've queued any remaining real messages
9343         (_dbus_connection_get_dispatch_status_unlocked): queue the
9344         disconnect message only if the transport has finished queueing all
9345         its real messages and is disconnected.
9346         (dbus_connection_disconnect): update the dispatch status here
9347
9348 2003-10-22  Havoc Pennington  <hp@redhat.com>
9349
9350         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9351
9352         * bus/connection.c (bus_transaction_send_from_driver): set the
9353         destination to the connection's base service
9354
9355 2003-10-20  Havoc Pennington  <hp@redhat.com>
9356
9357         hmm, make check is currently not passing.
9358         
9359         * doc/dbus-specification.xml: add requirement that custom type
9360         names follow the same rules as interface names.
9361
9362         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9363         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9364         'map'
9365
9366         * doc/dbus-specification.xml: update type codes to match
9367         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9368         CUSTOM. Add type OBJECT_PATH to the spec.
9369
9370 2003-10-17  Havoc Pennington  <hp@redhat.com>
9371
9372         * bus/driver.c (create_unique_client_name): use "." as separator
9373         in base service names instead of '-'
9374
9375         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9376         byte at the end of the string
9377
9378         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9379         optimization macros since string validation seems to be a slow
9380         point.
9381         
9382         * doc/dbus-specification.xml: restrict valid
9383         service/interface/member/error names. Add test suite code for the
9384         name validation.
9385
9386         * dbus/dbus-string.c: limit service/interface/member/error names 
9387         to [0-9][A-Z][a-z]_
9388
9389         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9390         format arg to verbose spew
9391
9392         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9393         memory, return instead of g_error
9394
9395         * test/test-service.c (path_message_func): support emitting a
9396         signal on request
9397
9398         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9399         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9400         assuming the activation bus was the session bus so that services
9401         started manually will still register.
9402         (init_connections_unlocked): fix so that in OOM situation we get
9403         the same semantics when retrying the function
9404         
9405         * test/test-service.c (main): change to use path registration, to
9406         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9407         than DBUS_BUS_SESSION
9408
9409 2003-10-16  Havoc Pennington  <hp@redhat.com>
9410
9411         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9412
9413         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9414         coverage of the tests
9415         (coverage-report.txt): don't move the .da and .bbg files around
9416
9417 2003-10-16  Havoc Pennington  <hp@redhat.com>
9418
9419         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9420         to put there
9421
9422 2003-10-16  Havoc Pennington  <hp@redhat.com>
9423
9424         * bus/connection.c (bus_pending_reply_expired): either cancel or
9425         execute, not both
9426         (bus_connections_check_reply): use unlink, not remove_link, as we
9427         don't want to free the link; fixes double free mess
9428
9429         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9430         where no reply was received
9431
9432         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9433         fix a refcount leak
9434
9435         * bus/signals.c (match_rule_matches): add special cases for the
9436         bus driver, so you can match on sender/destination for it.
9437
9438         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9439         DBUS_PRINT_BACKTRACE is set
9440
9441         * dbus/dbus-internals.c: add pid to assertion failure messages
9442
9443         * dbus/dbus-connection.c: add message type code to the debug spew
9444
9445         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9446         sender=foo not service=foo
9447
9448         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9449         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9450         DBUS_ACTIVATION_ADDRESS instead
9451
9452         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9453         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9454
9455         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9456         context struct
9457
9458         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9459         (dbus_message_iter_get_object_path_array): new function (half
9460         finished, disabled for the moment)
9461         
9462         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9463         DBUS_MESSAGE_TYPE_ERROR
9464
9465         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9466         avoid redirecting stderr to /dev/null
9467         (babysit): close stdin if not doing the "exit_with_session" thing
9468
9469         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9470         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9471         stdout/stdin, so things don't get confused
9472         
9473         * bus/system.conf.in: fix to allow replies, I modified .conf
9474         instead of .conf.in again.
9475
9476 2003-10-14  David Zeuthen  <david@fubar.dk>
9477
9478         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9479         argtype to arg_type when raising unknown arg type exception.
9480         Changed type list to reflect the changes in dbus-protocol.h so 
9481         the bindings actually work.
9482
9483 2003-10-14  Havoc Pennington  <hp@redhat.com>
9484
9485         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9486         to have a bug keeping it from outputting the .da files sometimes
9487         (string_get_string): don't append garbage nul bytes to the string.
9488
9489 2003-10-15  Seth Nickell  <seth@gnome.org>
9490
9491         * python/Makefile.am:
9492
9493         Include dbus_h_wrapper.h in the dist tarball.
9494
9495 2003-10-14  Havoc Pennington  <hp@redhat.com>
9496
9497         * bus/bus.c (bus_context_check_security_policy): revamp this to
9498         work more sanely with new policy-based requested reply setup
9499
9500         * bus/connection.c (bus_transaction_send_from_driver): set bus
9501         driver messages as no reply
9502
9503         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9504         requested_reply attribute on allow/deny rules
9505
9506         * bus/system.conf: add <allow requested_reply="true"/>
9507
9508         * bus/driver.c (bus_driver_handle_message): fix check for replies
9509         sent to the bus driver, which was backward. How did this ever work
9510         at all though? I think I'm missing something.
9511
9512         * dbus/dbus-message.c (decode_header_data): require error and
9513         method return messages to have a reply serial field to be valid
9514         (_dbus_message_loader_queue_messages): break up this function;
9515         validate that reply serial and plain serial are nonzero; 
9516         clean up the OOM/error handling.
9517         (get_uint_field): don't return -1 from this
9518         (dbus_message_create_header): fix signed/unsigned bug
9519
9520         * bus/connection.c (bus_connections_expect_reply): save serial of
9521         the incoming message, not reply serial
9522
9523 2003-10-14  Havoc Pennington  <hp@redhat.com>
9524
9525         * bus/connection.c: implement pending reply tracking using
9526         BusExpireList
9527
9528         * bus/bus.c (bus_context_check_security_policy): verify that a
9529         reply is pending in order to allow a reply to be sent. Deny 
9530         messages of unknown type.
9531
9532         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9533
9534         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9535         (bus_context_get_reply_timeout): new
9536
9537 2003-10-13  Seth Nickell  <seth@gnome.org>
9538
9539         * python/Makefile.am:
9540
9541         Pass "make distcheck": remove a couple files from DIST_FILES
9542         that weren't included in the final version.
9543
9544 2003-10-12  Havoc Pennington  <hp@pobox.com>
9545
9546         Added test code that 1) starts an actual bus daemon and 2) uses
9547         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9548         more testing possible, but this is the basic framework.
9549         
9550         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9551         empty proxy lists from the proxy list hash
9552
9553         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9554         couple of return_if_fail checks
9555
9556         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9557         to allocate, so everything is cleared to NULL as it should be.
9558
9559         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9560         source as data to dbus_connection_set_timeout_functions() as the 
9561         timeout functions expected
9562
9563         * test/glib/run-test.sh: add a little script to start up a message
9564         bus and run tests using it
9565
9566         * tools/dbus-launch.1: updates
9567
9568         * tools/dbus-launch.c (main): add --config-file option
9569
9570         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9571         that could never be reached.
9572
9573         * dbus/dbus-message.c (dbus_message_new_method_return) 
9574         (dbus_message_new_error, dbus_message_new_signal): set the
9575         no-reply-expected flag on all these. Redundant, but may
9576         as well be consistent.
9577
9578 2003-10-11  Havoc Pennington  <hp@pobox.com>
9579
9580         * test/decode-gcov.c (function_solve_graph): make broken block
9581         graph a nonfatal error since it seems to be broken. Need to debug
9582         this.
9583
9584         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9585         can't just check type > INVALID < LAST anymore
9586
9587         * dbus/dbus-message.c (dbus_message_get_signature): new function
9588         (dbus_message_has_signature): new function
9589         (struct DBusMessage): add signature field (right now it isn't sent
9590         over the wire, just generated on the fly)
9591         (dbus_message_copy): copy the signature, and init strings to
9592         proper length to avoid some reallocs
9593         (dbus_message_iter_init_array_iterator): return void, since it
9594         can't fail
9595         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9596         (_dbus_message_loader_queue_messages): add silly temporary hack to
9597         fill in message->signature on load
9598
9599         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9600         characters, so they are relatively human-readable.
9601
9602 2003-10-11  Havoc Pennington  <hp@pobox.com>
9603
9604         * dbus/dbus-message.c (_dbus_message_test): add more test
9605         coverage, but #if 0 for now since they uncover a bug 
9606         not fixed yet; I think in re_align_field_recurse()
9607         (re_align_field_recurse): add FIXME about broken assertion
9608
9609         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9610
9611         * bus/connection.c: share a couple code bits with expirelist.c
9612
9613         * bus/expirelist.h, bus/expirelist.c: implement a generic
9614         expire-items-after-N-seconds facility, was going to share between
9615         expiring connections and replies, decided not to use for expiring
9616         connections for now.
9617
9618         * COPYING: include AFL 2.0 (still need to change all the file headers)
9619
9620 2003-10-09  Havoc Pennington  <hp@redhat.com>
9621
9622         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9623         gcc 3.3. Not that we do anything about it yet.
9624
9625         * bus/signals.c (bus_match_rule_parse): impose max length on the
9626         match rule text
9627
9628         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9629
9630 2003-10-09  Havoc Pennington  <hp@redhat.com>
9631
9632         Make matching rules theoretically work (add parser).
9633         
9634         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9635         the case where destination is explicitly specified as bus driver
9636         and someone else is eavesdropping.
9637         
9638         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9639         definition of eavesdropping and assertion
9640
9641         * tools/dbus-send.c (main): use dbus_message_type_from_string
9642
9643         * bus/signals.c (bus_match_rule_parse): implement
9644
9645         * dbus/dbus-message.c (dbus_message_type_from_string): new
9646
9647         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9648
9649 2003-10-02  Havoc Pennington  <hp@pobox.com>
9650
9651         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9652         dbus_gproxy_oneway_call
9653
9654         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9655         (dbus_server_setup_with_g_main): fix to allow calling them more
9656         than once on the same args
9657         (dbus_bus_get_with_g_main): new function
9658
9659 2003-10-02  Havoc Pennington  <hp@redhat.com>
9660
9661         * doc/dbus-tutorial.xml: write some stuff
9662
9663 2003-09-29  Havoc Pennington  <hp@pobox.com>
9664
9665         * configure.in: split checks for Doxygen from XML docs, check for
9666         xmlto
9667
9668         * doc/Makefile.am: XML-ify all the docs, and add a blank
9669         dbus-tutorial.xml
9670
9671 2003-09-29  Havoc Pennington  <hp@pobox.com>
9672
9673         * Merge dbus-object-names branch. To see the entire patch 
9674         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9675         it's huuuuge though.
9676         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9677         
9678 2003-09-28  Havoc Pennington  <hp@pobox.com>
9679
9680         * HACKING: update to reflect new server
9681
9682 2003-09-26  Seth Nickell  <seth@gnome.org>
9683
9684         * python/dbus.py:
9685         * python/examples/example-signals.py:
9686
9687         Start implementing some notions of signals. The API
9688         is really terrible, but they sort of work (with the
9689         exception of being able to filter by service, and to
9690         transmit signals *as* a particular service). Need to
9691         figure out how to make messages come from the service
9692         we registered :-(
9693         
9694         * python/dbus_bindings.pyx.in:
9695
9696         Removed duplicate message_handler callbacks.
9697         
9698 2003-09-25  Havoc Pennington  <hp@redhat.com>
9699
9700         * bus/session.conf.in: fix my mess
9701
9702 2003-09-25  Havoc Pennington  <hp@pobox.com>
9703
9704         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9705
9706 2003-09-25  Seth Nickell  <seth@gnome.org>
9707
9708         * python/examples/example-service.py:
9709
9710         Johan notices complete wrong code in example-service, but
9711         completely wrong in a way that works exactly the same (!).
9712         Johan is confused, how could this possibly work? Example
9713         code fails to serve purpose of making things clear.
9714         Seth fixes.
9715
9716 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9717
9718         * doc/dbus-specification.sgml: don't require header fields
9719         to be 4-byte aligned and specify that fields should be
9720         distinguished from padding by the fact that zero is not
9721         a valid field name.
9722         
9723         * doc/TODO: remove re-alignment item and add item to doc
9724         the OBJECT_PATH type.
9725         
9726         * dbus/dbus-message.c:
9727         (HeaderField): rename the original member to value_offset
9728         and introduce a name_offset member to keep track of where
9729         the field actually begins.
9730         (adjust_field_offsets): remove.
9731         (append_int_field), (append_uint_field),
9732         (append_string_field): don't align the start of the header
9733         field to a 4-byte boundary.
9734         (get_next_field): impl finding the next marhsalled field
9735         after a given field.
9736         (re_align_field_recurse): impl re-aligning a number of
9737         already marshalled fields.
9738         (delete_field): impl deleting a field of any type and
9739         re-aligning any following fields.
9740         (delete_int_or_uint_field), (delete_string_field): remove.
9741         (set_int_field), (set_uint_field): no need to re-check
9742         that we have the correct type for the field.
9743         (set_string_field): ditto and impl re-aligning any
9744         following fields.
9745         (decode_header_data): update to take into account that
9746         the fields aren't 4-byte aligned any more and the new
9747         way to distinguish padding from header fields. Also,
9748         don't exit when there is too much header padding.
9749         (process_test_subdir): print the directory.
9750         (_dbus_message_test): add test to make sure a following
9751         field is re-aligned correctly after field deletion.
9752         
9753         * dbus/dbus-string.[ch]:
9754         (_dbus_string_insert_bytes): rename from insert_byte and
9755         allow the insert of multiple bytes.
9756         (_dbus_string_test): test inserting multiple bytes.
9757
9758         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9759         warning note to docs about having to re-align any
9760         marshalled values following the string.
9761         
9762         * dbus/dbus-message-builder.c:
9763         (append_string_field), (_dbus_message_data_load):
9764         don't align the header field.
9765         
9766         * dbus/dbus-auth.c: (process_test_subdir): print the
9767         directory.
9768         
9769         * test/break-loader.c: (randomly_add_one_byte): upd. for
9770         insert_byte change.
9771         
9772         * test/data/invalid-messages/bad-header-field-alignment.message:
9773         new test case.
9774         
9775         * test/data/valid-messages/unknown-header-field.message: shove
9776         a dict in the unknown field.
9777
9778 2003-09-25  Seth Nickell  <seth@gnome.org>
9779
9780         * python/dbus.py:
9781         * python/dbus_bindings.pyx.in:
9782
9783         Handle return values.
9784         
9785         * python/examples/example-client.py:
9786         * python/examples/example-service.py:
9787
9788         Pass back return values from the service to the client.
9789         
9790 2003-09-24  Seth Nickell  <seth@gnome.org>
9791
9792         * python/dbus.py:
9793
9794         Connect Object methods (when you are sharing an object) up... pass
9795         in a list of methods to be shared. Sharing all the methods just
9796         worked out too weird. You can now create nice Services over the
9797         DBus in Python. :-)
9798         
9799         * python/dbus_bindings.pyx.in:
9800
9801         Keep references to user_data tuples passed into C functions so 
9802         Python doesn't garbage collect on us.
9803
9804         Implement MethodReturn and Error subclasses of Message for creating
9805         DBusMessage's of those types.
9806         
9807         * python/examples/example-client.py:
9808         * python/examples/example-service.py:
9809
9810         Simple example code showing both how create DBus services and objects,
9811         and how to use them.
9812
9813 2003-09-23  Havoc Pennington  <hp@pobox.com>
9814
9815         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9816
9817 2003-09-23  Havoc Pennington  <hp@redhat.com>
9818
9819         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9820         (dbus_gproxy_disconnect_signal): implement
9821         (dbus_gproxy_manager_remove_signal_match): implement
9822         (dbus_gproxy_manager_add_signal_match): implement
9823         (dbus_gproxy_oneway_call): implement
9824
9825 2003-09-23  Havoc Pennington  <hp@pobox.com>
9826
9827         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9828         subclass. This means dropping the transparent thread safety of the
9829         proxy; you now need a separate proxy per-thread, or your own
9830         locking on the proxy. Probably right anyway.
9831         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9832
9833 2003-09-22  Havoc Pennington  <hp@redhat.com>
9834
9835         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9836
9837 2003-09-21  Seth Nickell  <seth@gnome.org>
9838
9839         First checkin of the Python bindings.
9840         
9841         * python/.cvsignore:
9842         * python/Makefile.am:
9843         * python/dbus_bindings.pyx.in:
9844         * python/dbus_h_wrapper.h:
9845
9846         Pieces for Pyrex to operate on, building a dbus_bindings.so
9847         python module for low-level access to the DBus APIs.
9848         
9849         * python/dbus.py:
9850
9851         High-level Python module for accessing DBus objects.
9852
9853         * configure.in:
9854         * Makefile.am:
9855
9856         Build stuff for the python bindings.
9857
9858         * acinclude.m4:
9859
9860         Extra macro needed for finding the Python C header files.
9861
9862 2003-09-21  Havoc Pennington  <hp@pobox.com>
9863
9864         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9865         implementing the proxy manager, didn't get very far.
9866
9867         * dbus/dbus-bus.c (dbus_bus_add_match): new
9868         (dbus_bus_remove_match): new
9869
9870         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9871         path_name argument; adjust the other not-yet-implemented 
9872         gproxy constructors to be what I think they should be.
9873
9874 2003-09-21  Havoc Pennington  <hp@pobox.com>
9875
9876         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9877         by default for message bus connections.
9878
9879         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9880         exit_on_disconnect flag is set and we process the disconnected
9881         signal.
9882         (dbus_connection_set_exit_on_disconnect): new function
9883
9884 2003-09-21  Havoc Pennington  <hp@pobox.com>
9885
9886         Get matching rules mostly working in the bus; only actually
9887         parsing the rule text remains. However, the client side of
9888         "signal connections" hasn't been started, this patch is only the
9889         bus side.
9890         
9891         * dbus/dispatch.c: fix for the matching rules changes
9892         
9893         * bus/driver.c (bus_driver_handle_remove_match)
9894         (bus_driver_handle_add_match): send an ack reply from these
9895         method calls
9896
9897         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9898         arguments, reported by Seth Nickell
9899
9900         * bus/config-parser.c (append_rule_from_element): support
9901         eavesdrop=true|false attribute on policies so match rules 
9902         can be prevented from snooping on the system bus.
9903
9904         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9905         and "destination" in attribute names; fix some docs bugs; 
9906         add eavesdrop=true|false attribute
9907
9908         * bus/driver.c (bus_driver_handle_add_match)
9909         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9910         messages
9911
9912         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9913         rid of broadcast service concept, signals are just always broadcast
9914
9915         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9916         mostly implement matching rules stuff (currently only exposed as signal
9917         connections)
9918
9919 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9920
9921         * doc/dbus-specification.sgml: Change the header field name
9922         to be an enum and update the rest of the spec to reference
9923         the fields using the conventinal name.
9924
9925         * dbus/dbus-protocol.h: update to reflect the spec.
9926
9927         * doc/TODO: add item to remove the 4 byte alignment requirement.
9928         
9929         * dbus/dbus-message.c: Remove the code to generalise the
9930         header/body length and serial number header fields as named
9931         header fields so we can reference field names using the 
9932         protocol values.
9933         (append_int_field), (append_uint_field), (append_string_field):
9934         Append the field name as a byte rather than four chars.
9935         (delete_int_or_uint_field), (delete_string_field): reflect the
9936         fact that the field name and typecode now occupy 4 bytes instead
9937         of 8.
9938         (decode_string_field), (decode_header_data): update to reflect
9939         protocol changes and move the field specific encoding from
9940         decode_string_field() back into decode_header_data().
9941         
9942         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9943         Add utility to aid debugging.
9944         
9945         * dbus/dbus-message-builder.c:
9946         (append_string_field), (_dbus_message_data_load): Update to
9947         reflect protocol changes; Change the FIELD_NAME directive
9948         to HEADER_FIELD and allow it to take the field's conventional
9949         name rather than the actual value.
9950         
9951         * test/data/*/*.message: Update to use HEADER_FIELD instead
9952         of FIELD_NAME; Always align the header on an 8 byte boundary
9953         *before* updating the header length.
9954
9955 2003-09-15  Havoc Pennington  <hp@pobox.com>
9956
9957         * dbus/dbus-pending-call.c: add the get/set object data
9958         boilerplate as for DBusConnection, etc. Use generic object data
9959         for the notify callback.
9960
9961         * glib/dbus-gparser.c (parse_node): parse child nodes
9962
9963         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9964         
9965         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9966         contain functions shared between the convenience lib and the
9967         installed lib
9968
9969         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9970         -export-symbols-regex to the GLib library
9971
9972         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9973         fix the locking in here, and add a default handler for
9974         Introspect() that just returns sub-nodes.
9975
9976 2003-09-14  Havoc Pennington  <hp@pobox.com>
9977
9978         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9979         rather than gfoo consistent
9980
9981         * glib/dbus-gproxy.h: delete for now, move contents to
9982         dbus-glib.h, because the include files don't work right since we
9983         aren't in the dbus/ subdir.
9984         
9985         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9986         (dbus_gproxy_end_call): finish
9987         (dbus_gproxy_begin_call): finish
9988
9989         * glib/dbus-gmain.c (dbus_set_g_error): new
9990
9991         * glib/dbus-gobject.c (handle_introspect): include information
9992         about child nodes in the introspection
9993
9994         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9995         function to help in implementation of introspection
9996
9997         * dbus/dbus-object-tree.c
9998         (_dbus_object_tree_list_registered_and_unlock): new function
9999
10000 2003-09-12  Havoc Pennington  <hp@pobox.com>
10001
10002         * glib/dbus-gidl.h: add common base class for all the foo_info
10003         types
10004
10005         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10006         similar to kdcop
10007
10008         * test/Makefile.am: try test srcdir -ef . in addition to test
10009         srcdir = ., one of them should work (yeah lame)
10010         
10011         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10012         library
10013         
10014         * glib/dbus-gparser.h: make description_load routines return
10015         NodeInfo* not Parser*
10016
10017         * Makefile.am (SUBDIRS): build test dir after all library dirs
10018
10019         * configure.in: add GTK+ detection
10020
10021 2003-09-07  Havoc Pennington  <hp@pobox.com>
10022
10023         * Make Doxygen contented.
10024
10025 2003-09-07  Havoc Pennington  <hp@pobox.com>
10026
10027         * doc/dbus-specification.sgml: more updates
10028
10029 2003-09-06  Havoc Pennington  <hp@pobox.com>
10030
10031         * doc/dbus-specification.sgml: partial updates
10032
10033         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10034         zillionth time; hopefully I edited the right file this time.
10035
10036         * bus/config-parser.c (append_rule_from_element): support
10037         send_type, send_path, receive_type, receive_path
10038
10039         * bus/policy.c: add message type and path to the list of things
10040         that can be "firewalled"
10041
10042 2003-09-06  Havoc Pennington  <hp@pobox.com>
10043
10044         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10045         (dbus_connection_register_object_path): make this not handle
10046         messages to paths below the given path
10047
10048 2003-09-03  Havoc Pennington  <hp@pobox.com>
10049
10050         * test/glib/Makefile.am: add this with random glib-linked test
10051         programs
10052
10053         * glib/Makefile.am: remove the random test programs from here,
10054         leave only the unit tests
10055
10056         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10057         uscore/javacaps conversion, and fix     
10058         (get_object_property, set_object_property): change to .NET
10059         convention for mapping props to methods, set_FooBar/get_FooBar, 
10060         since one language has such a convention we may as well copy it. 
10061         Plus real methods in either getFooBar or get_foo_bar style won't 
10062         collide with this convention.
10063
10064 2003-09-01  Havoc Pennington  <hp@pobox.com>
10065
10066         * glib/dbus-gparser.c: implement
10067
10068         * glib/dbus-gobject.c: start implementing skeletons support
10069
10070         * configure.in: when disabling checks/assert, also define
10071         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10072
10073 2003-09-01  Havoc Pennington  <hp@pobox.com>
10074
10075         * glib/Makefile.am: rearrange a bunch of files and get "make
10076         check" framework set up
10077
10078 2003-08-31  Havoc Pennington  <hp@pobox.com>
10079
10080         * fix build with --disable-tests
10081
10082 2003-08-30  Havoc Pennington  <hp@pobox.com>
10083
10084         * dbus/dbus-connection.c: purge DBusMessageHandler
10085
10086         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10087         use callbacks everywhere
10088
10089 2003-08-30  Havoc Pennington  <hp@pobox.com>
10090
10091         * test/data/valid-config-files/system.d/test.conf: change to 
10092         root for the user so warnings don't get printed
10093
10094         * dbus/dbus-message.c: add dbus_message_get_path,
10095         dbus_message_set_path
10096         
10097         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10098         dispatching to a path
10099
10100         * dbus/dbus-string.c (_dbus_string_validate_path): add
10101
10102         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10103         (_dbus_marshal_object_path): implement
10104
10105         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10106         to contain the path to the target object
10107         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10108         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10109
10110 2003-08-30  Havoc Pennington  <hp@pobox.com>
10111
10112         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10113
10114 2003-08-29  Havoc Pennington  <hp@pobox.com>
10115
10116         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10117         registered
10118         (struct DBusObjectSubtree): shrink this
10119         a lot, since we may have a lot of them
10120         (_dbus_object_tree_free_all_unlocked): implement
10121         (_dbus_object_tree_dispatch_and_unlock): implement
10122
10123 2003-08-29  Havoc Pennington  <hp@pobox.com>
10124
10125         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10126
10127 2003-08-28  Havoc Pennington  <hp@pobox.com>
10128
10129         purge DBusObjectID
10130         
10131         * dbus/dbus-connection.c: port to no ObjectID, create a
10132         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10133
10134         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10135         everything except UnregisterFunction and MessageFunction
10136         
10137         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10138         add DBUS_TYPE_OBJECT_PATH
10139         
10140         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10141         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10142         path-based object IDs
10143
10144 2003-08-25  Havoc Pennington  <hp@pobox.com>
10145
10146         Just noticed that dbus_message_test is hosed, I wonder when I
10147         broke that. I thought make check was passing earlier...
10148         
10149         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10150         container tree, will replace most of dbus-object-registry
10151
10152         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10153         screwup
10154
10155 2003-08-19  Havoc Pennington  <hp@pobox.com>
10156
10157         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10158         (dbus_message_is_error): fix this function
10159
10160         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10161         match
10162
10163         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10164         reflect clarified man page
10165         (bus_client_policy_check_can_send): ditto
10166         
10167         * bus/session.conf.in: fixup
10168
10169         * bus/system.conf.in: fixup
10170
10171 2003-08-18  Havoc Pennington  <hp@redhat.com>
10172
10173         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10174
10175         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10176         dumb bug created earlier (wrong order of args to
10177         decode_header_data())
10178         
10179         * tools/dbus-send.c: port
10180
10181         * tools/dbus-print-message.c (print_message): port
10182
10183         * test/data/*messages: port all messages over
10184         
10185         * dbus/dbus-message-builder.c: support including 
10186         message type
10187         
10188         * bus/driver.c: port over
10189         
10190         * bus/dispatch.c: port over to new stuff
10191
10192         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10193         rename disconnect signal to "Disconnected"
10194
10195 2003-08-17  Havoc Pennington  <hp@pobox.com>
10196
10197         This doesn't compile yet, but syncing up so I can hack on it from
10198         work. What are branches for if not broken code? ;-)
10199         
10200         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10201         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10202         DBUS_HEADER_FIELD_ERROR_NAME
10203         
10204         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10205         for the interface+member pairs
10206         (string_hash): change to use g_str_hash algorithm
10207         (find_direct_function, find_string_function): refactor these to
10208         share most code.
10209         
10210         * dbus/dbus-message.c: port all of this over to support 
10211         interface/member fields instead of name field
10212
10213         * dbus/dbus-object-registry.c: port over
10214         
10215         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10216         from _dbus_string_validate_name
10217
10218         * bus/dbus-daemon-1.1: change file format for the 
10219         <deny>/<allow> stuff to match new message naming scheme
10220
10221         * bus/policy.c: port over
10222
10223         * bus/config-parser.c: parse new format
10224         
10225 2003-08-16  Havoc Pennington  <hp@pobox.com>
10226
10227         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10228         broken assertion
10229
10230         * glib/dbus-gproxy.c: some hacking
10231
10232 2003-08-15  Havoc Pennington  <hp@redhat.com>
10233
10234         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10235
10236         * dbus/dbus-connection.c
10237         (dbus_connection_send_with_reply_and_block): factor out internals;
10238         change to convert any error replies to DBusError instead of 
10239         returning them as a message
10240
10241 2003-08-15  Havoc Pennington  <hp@pobox.com>
10242
10243         * dbus/dbus-connection.c, 
10244         dbus/dbus-pending-call.c: Finish the pending call stuff
10245
10246 2003-08-14  Havoc Pennington  <hp@redhat.com>
10247
10248         * dbus/dbus-pending-call.c: start on new object that will replace
10249         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10250         replies
10251
10252         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10253         with remote interfaces
10254
10255         * dbus/dbus-gidl.c: do the boring boilerplate in here
10256         
10257 2003-08-12  Havoc Pennington  <hp@pobox.com>
10258
10259         * bus/dispatch.c (bus_dispatch): make this return proper 
10260         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10261
10262         * dbus/dbus-errors.c (dbus_set_error): use
10263         _dbus_string_append_printf_valist
10264
10265         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10266         (_dbus_string_append_printf): new
10267
10268         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10269         UNKNOWN_METHOD
10270
10271         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10272         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10273         message is unhandled.
10274
10275 2003-08-11  Havoc Pennington  <hp@pobox.com>
10276
10277         * bus/test.c (client_disconnect_handler): change to return
10278         HANDLED (would have been REMOVE_MESSAGE)
10279
10280         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10281         HANDLED/NOT_YET_HANDLED instead of
10282         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10283         should be used.
10284
10285 2003-08-10  Havoc Pennington  <hp@pobox.com>
10286
10287         * tools/dbus-send.c (main): add --type argument, for now
10288         supporting only method_call and signal types.
10289
10290         * tools/dbus-print-message.c: print message type
10291
10292         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10293         init connection->objects
10294
10295         * doc/dbus-specification.sgml: fix sgml
10296
10297         * bus/*.c: port over to object-instance API changes
10298
10299         * test/test-service.c: ditto
10300         
10301         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10302         name, we will have to fix up the rest of the code to also handle
10303         this
10304         (dbus_message_new): generic message-creation call
10305         (set_string_field): allow appending name field
10306
10307 2003-08-06  Havoc Pennington  <hp@pobox.com>
10308
10309         * dbus/dbus-object-registry.c: implement signal connection 
10310         and dispatch
10311
10312         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10313
10314         * dbus/dbus-internals.c (_dbus_memdup): new function
10315
10316 2003-08-02  Havoc Pennington  <hp@pobox.com>
10317
10318         * dbus/dbus-message.c (dbus_message_get_no_reply)
10319         (dbus_message_set_no_reply): add these and remove
10320         set_is_error/get_is_error
10321
10322         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10323         remove the ERROR flag, since there's now an ERROR type
10324
10325 2003-08-01  Havoc Pennington  <hp@pobox.com>
10326
10327         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10328         implement
10329
10330         * dbus/dbus-message.c (dbus_message_get_type): new function
10331
10332         * doc/dbus-specification.sgml: add "type" byte to messages
10333
10334 2003-08-01  Havoc Pennington  <hp@pobox.com>
10335
10336         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10337         a message type enum to distinguish kinds of message
10338         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10339         that need not be replied to
10340
10341 2003-08-01  Havoc Pennington  <hp@pobox.com>
10342
10343         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10344         (unpack_8_octets): fix no-64-bit-int bug
10345
10346         * dbus/dbus-object-registry.c (validate_id): validate the 
10347         connection ID bits, not just the instance ID.
10348
10349         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10350         the connection-global 33 bits of the object ID
10351
10352         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10353         object ID in the new way
10354
10355         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10356         define server/client/instance bits.
10357
10358 2003-07-30  Havoc Pennington  <hp@pobox.com>
10359
10360         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10361         build
10362
10363 2003-07-13  Havoc Pennington  <hp@pobox.com>
10364
10365         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10366         fields to DBusObjectVTable and DBusObjectInfo
10367
10368 2003-07-12  Havoc Pennington  <hp@pobox.com>
10369
10370         * dbus/dbus-object-registry.c: implement unit test,
10371         fix bugs discovered in process
10372
10373         * dbus/dbus-connection.c: remove handler_table and
10374         register_handler(), add DBusObjectRegistry usage
10375
10376         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10377         (dbus_object_id_set_null): new functions
10378
10379 2003-07-08  Havoc Pennington  <hp@pobox.com>
10380
10381         * dbus/dbus-object.c: implement some of this
10382
10383         * dbus/dbus-object-registry.c
10384         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10385         param
10386         (_dbus_object_registry_new): handle OOM
10387
10388 2003-07-08  Havoc Pennington  <hp@pobox.com>
10389
10390         * dbus/dbus-object.h: sketch out an API for registering objects
10391         with a connection, that allows us to use as little as 24 bytes
10392         per object and lets application code represent an object in 
10393         any conceivable way.
10394
10395         * dbus/dbus-object-registry.c: implement the hard bits of the
10396         DBusConnection aspect of object API. Not yet wired up.
10397         
10398 2003-07-06  Havoc Pennington  <hp@pobox.com>
10399
10400         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10401         (_dbus_marshal_object_id): new
10402         (_dbus_demarshal_object_id): new
10403         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10404         consolidate identical switch cases. Don't conditionalize handling
10405         of DBUS_TYPE_UINT64, need to handle the type always.
10406         (_dbus_marshal_validate_arg): consolidate identical cases, and
10407         handle DBUS_TYPE_OBJECT_ID
10408
10409         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10410
10411         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10412
10413 2003-09-28  Havoc Pennington  <hp@pobox.com>
10414
10415         * real 0.13 release
10416
10417 2003-09-28  Havoc Pennington  <hp@pobox.com>
10418
10419         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10420         to work with Debian db2html
10421
10422 2003-09-28  Havoc Pennington  <hp@pobox.com>
10423
10424         * configure.in: 0.13
10425
10426         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10427         stylesheet-images for benefit of Debian
10428         
10429         Change back to using filesystem-linked sockets for the system
10430         bus, so only root can create the default system bus address.
10431         
10432         * bus/system.conf.in: change to use
10433         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10434
10435         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10436         from here.
10437
10438         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10439         here, and AC_DEFINE DBUS_SYSTEM_PATH
10440
10441 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10442
10443         * doc/TODO:
10444         * doc/busconfig.dtd:
10445         Add busconfig DTD.
10446         
10447 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10448
10449         * doc/dbus-specification.sgml:
10450         Add activation reply values.
10451         
10452 2003-08-05  Havoc Pennington  <hp@redhat.com>
10453
10454         * configure.in: 0.12
10455
10456 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10457
10458         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10459         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10460         (add_watch), (remove_watch), (create_source):
10461         Refcount fds, fixes some reentrancy issues.
10462         
10463 2003-07-30  Havoc Pennington  <hp@redhat.com>
10464
10465         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10466         bus address to be abstract if we have abstract sockets
10467
10468         * NEWS: update
10469
10470 2003-07-28  Havoc Pennington  <hp@redhat.com>
10471
10472         * bus/messagebus.in: fix to avoid processname/servicename 
10473         confusion, from Michael Kearey
10474         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10475         
10476 2003-07-23  Havoc Pennington  <hp@pobox.com>
10477
10478         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10479         fix from Andy Hanton to remove broken "+1"
10480
10481 2003-07-16  Havoc Pennington  <hp@pobox.com>
10482
10483         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10484         babysitter process, as suggested by Thomas Leonard, so 
10485         an "eval `dbus-launch --exit-with-session`" will actually 
10486         return
10487
10488 2003-07-16  Havoc Pennington  <hp@pobox.com>
10489
10490         * configure.in: print out EXPANDED_* variables in the summary at
10491         the end; clean up the code that computes EXPANDED_ variables and
10492         get the ones using exec_prefix right. Should make things work
10493         when you build without --prefix
10494
10495 2003-06-29  Havoc Pennington  <hp@pobox.com>
10496
10497         * mono/Test.cs (class Test): fire up a main loop and run it
10498
10499         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10500         done once, the app has to do it
10501
10502 2003-06-26  Havoc Pennington  <hp@pobox.com>
10503
10504         * mono/Connection.cs: set up connection with the glib main loop
10505
10506 2003-07-01  Havoc Pennington  <hp@redhat.com>
10507
10508         * doc/dbus-specification.sgml: clarify the format of a type code,
10509         change suggested by Jim Blandy
10510
10511 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10512
10513         * doc/Makefile.am:
10514         * tools/Makefile.am: Don't assume srcdir == builddir.
10515
10516         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10517         the allocated block.
10518         (_dbus_memory_test): New function.
10519         * dbus/dbus-test.h: Add _dbus_memory_test ().
10520         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10521
10522         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10523         of %c%c%c%c.
10524         (dbus_message_new): Remove obsolete @todo.
10525
10526         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10527         (_dbus_marshal_set_uint64): Fix comment.
10528
10529         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10530         hardcode FIELD_REPLY_SERIAL.
10531
10532         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10533         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10534
10535         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10536         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10537
10538 2003-06-24  Havoc Pennington  <hp@pobox.com>
10539
10540         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10541
10542 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10543
10544         * configure.in:
10545         * gcj/.cvsignore:
10546         * gcj/Hello.java:
10547         * gcj/Makefile.am:
10548         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10549         * gcj/org/.cvsignore:
10550         * gcj/org/Makefile.am:
10551         * gcj/org/freedesktop/.cvsignore:
10552         * gcj/org/freedesktop/Makefile.am:
10553         * gcj/org/freedesktop/dbus/.cvsignore:
10554         * gcj/org/freedesktop/dbus/Makefile.am:
10555         * gcj/org/freedesktop/dbus/Message.java: (Message),
10556         (Message.Message):
10557         * gcj/org/freedesktop/dbus/natMessage.cc:
10558         Fix the build system.
10559
10560 2003-06-22  Havoc Pennington  <hp@pobox.com>
10561
10562         * mono/Connection.cs: add more bindings
10563
10564         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10565         more than once.
10566
10567 2003-06-22  Havoc Pennington  <hp@pobox.com>
10568
10569         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10570         Start wrapping more stuff.
10571
10572 2003-06-22  Havoc Pennington  <hp@pobox.com>
10573
10574         * mono/Message.cs: implement Message.Wrap() that ensures we only
10575         have a single C# wrapper per DBusMessage, assuming it works which
10576         it probably doesn't.
10577
10578         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10579         (dbus_message_free_data_slot): new
10580         (dbus_message_set_data): new
10581         (dbus_message_get_data): new
10582
10583 2003-06-22  Havoc Pennington  <hp@pobox.com>
10584
10585         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10586         (_dbus_data_slot_allocator_alloc): rework these to keep a
10587         reference count on each slot and automatically manage a global
10588         slot ID variable passed in by address
10589
10590         * bus/bus.c: convert to new dataslot API
10591
10592         * dbus/dbus-bus.c: convert to new dataslot API
10593
10594         * dbus/dbus-connection.c: convert to new dataslot API
10595
10596         * dbus/dbus-server.c: convert to new dataslot API
10597
10598         * glib/dbus-gmain.c: ditto
10599
10600         * bus/test.c: ditto
10601
10602         * bus/connection.c: ditto
10603
10604 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10605
10606         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10607         after the gcj checks so that the correct configuration tags
10608         will be added to libtool.
10609
10610         * dbus-glib-1.pc.in: No need to specify any includes since
10611         dbus-1.pc.in has those.
10612
10613 2003-06-22  Havoc Pennington  <hp@pobox.com>
10614
10615         * mono/*, gcj/*, configure.in, Makefile.am:
10616         Check in makefiles and subdirs for mono and gcj bindings.
10617         Neither binding actually exists, just trying to get through
10618         all the build and other boring bits.
10619
10620 2003-06-21  Philip Blundell  <philb@gnu.org>
10621
10622         * tools/dbus-monitor.1: Updated.
10623
10624         * tools/dbus-send.1: Likewise.
10625
10626 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10627
10628         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10629         for hangup and error after checking read so we won't discard
10630         pending data if both hangup and read are set.
10631
10632 2003-06-19  Philip Blundell  <philb@gnu.org>
10633
10634         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10635
10636         * tools/dbus-send.c: Accept both --system and --session.
10637
10638         * tools/dbus-monitor.c: Same here.
10639
10640 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10641
10642         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10643         from C++ (Patch by Miloslav Trmac).
10644
10645 2003-06-15  Joe Shaw  <joe@assbarn.com>
10646
10647         * configure.in: Check for socklen_t.
10648
10649         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10650
10651         * test/test-segfault.c: Add #include <sys/time.h>
10652
10653         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10654         dbus-launch needs it.
10655
10656 2003-06-09  Havoc Pennington  <hp@redhat.com>
10657
10658         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10659         SUN_LEN, it breaks abstract socket usage
10660
10661         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10662         starts of lines.
10663
10664 2003-06-04  Havoc Pennington  <hp@pobox.com>
10665
10666         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10667         using unix:abstract=/foo, and when listening in a tmpdir
10668         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10669
10670         * dbus/dbus-transport.c (_dbus_transport_open): support
10671         unix:abstract=/foo
10672
10673         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10674         support abstract sockets
10675
10676         * dbus/dbus-transport-unix.c
10677         (_dbus_transport_new_for_domain_socket): support abstract sockets
10678
10679         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10680         toggle as an argument, implement abstract namespace support
10681         (_dbus_listen_unix_socket): ditto
10682
10683         * configure.in: add --enable-abstract-sockets and implement
10684         a configure check for autodetection of the right value.
10685
10686 2003-06-01  Havoc Pennington  <hp@pobox.com>
10687
10688         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10689         in /tmp (though on Linux this will end up being useless,
10690         when we add abstract namespace support)
10691
10692         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10693         subst'ing it
10694
10695 2003-05-28  Colin Walters  <walters@verbum.org>
10696
10697         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10698
10699 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10700
10701         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10702
10703 2003-05-17  Colin Walters  <walters@gnu.org>
10704
10705         * tools/dbus-send.c: Don't exit with an error code if --help was
10706         passed.  Default to using the session bus instead of the system
10707         one.
10708
10709         * tools/dbus-launch.c: Ditto.
10710
10711         * tools/dbus-monitor.c: Ditto.
10712
10713         * tools/dbus-send.1: Update with new arguments.
10714
10715         * tools/dbus-launch.c: Emit code to export variables.  New
10716         arguments -s and -c to specify shell syntax, and a bit of code to
10717         autodetect syntax.  Also, allow specifying a program to run.
10718
10719         * tools/dbus-launch.1: Update with new arguments.
10720
10721         * tools/dbus-send.1: Ditto.
10722
10723         * tools/dbus-monitor.1: Ditto.
10724
10725 2003-05-17  Havoc Pennington  <hp@pobox.com>
10726
10727         * bus/config-parser.c (merge_included): merge in policies from
10728         child configuration file.
10729
10730         * bus/policy.c (bus_policy_merge): function to merge two policies
10731         together
10732
10733 2003-05-16  Havoc Pennington  <hp@redhat.com>
10734
10735         * dbus/dbus-connection.c: disable verbose lock spew
10736
10737         * tools/dbus-send.c: add --print-reply command line option
10738
10739         * tools/dbus-print-message.h (print_message): new util function
10740         shared by dbus-send and dbus-monitor
10741
10742         * tools/dbus-monitor.c (handler_func): exit on disconnect
10743
10744         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10745         disconnected, don't try to use the read_watch
10746
10747         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10748         so we can find this bug more easily
10749
10750 2003-05-16  Havoc Pennington  <hp@redhat.com>
10751
10752         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10753         NULL as DBusHashTable is annoyingly likely to do.
10754
10755 2003-05-16  Colin Walters  <walters@verbum.org>
10756
10757         * tools/dbus-monitor.c: Add --session argument and usage()
10758         function.
10759
10760         * tools/dbus-monitor.1: Update with new --session arg.
10761
10762         * bus/Makefile.am (install-data-hook): Create
10763         $(libdir)/dbus-1.0/services so that the session bus is happy.
10764
10765 2003-05-15  Havoc Pennington  <hp@redhat.com>
10766
10767         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10768         on non-x86. ifdef's are evil.
10769
10770 2003-05-15  Havoc Pennington  <hp@redhat.com>
10771
10772         * configure.in: 0.11
10773
10774         * NEWS: update
10775
10776         * bus/Makefile.am (initddir): apparently we are supposed to put
10777         init scripts in /etc/rc.d/init.d not /etc/init.d
10778
10779         * bus/Makefile.am: remove the "you must --enable-tests to make
10780         check" as it broke distcheck
10781
10782         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10783
10784 2003-05-13  James Willcox  <jwillcox@gnome.org>
10785
10786         * configure.in:
10787         * bus/activation.c: (bus_activation_service_created),
10788         (bus_activation_activate_service):
10789         * bus/driver.c: (bus_driver_send_service_deleted),
10790         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10791         (bus_driver_send_service_acquired),
10792         (bus_driver_send_welcome_message),
10793         (bus_driver_handle_list_services):
10794         * bus/session.conf.in:
10795         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10796         (dbus_bus_service_exists), (dbus_bus_activate_service):
10797         * dbus/dbus-bus.h:
10798
10799         Add some convenience API which lets you activate a service, and did a
10800         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10801         and dbus_message_get_args()
10802
10803 2003-05-11  Havoc Pennington  <hp@pobox.com>
10804
10805         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10806         calling _dbus_marshal_validate_arg() for every byte in a byte
10807         array, etc.
10808
10809         * dbus/dbus-message-handler.c: use atomic reference counting to
10810         reduce number of locks slightly; the global lock in here sucks
10811
10812         * dbus/dbus-connection.c
10813         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10814         update_dispatch_status that can be called with lock held; then use
10815         in a couple places to reduce locking/unlocking
10816         (dbus_connection_send): hold the lock over the whole function
10817         instead of acquiring it twice.
10818
10819         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10820
10821         * bus/connection.c (bus_connections_setup_connection): fix access
10822         to already-freed memory.
10823
10824         * dbus/dbus-connection.c: keep a little cache of linked list
10825         nodes, to avoid using the global linked list alloc lock in the
10826         normal send-message case. Instead we just use the connection lock
10827         that we already have to take.
10828
10829         * dbus/dbus-list.c (_dbus_list_find_last): new function
10830
10831         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10832         change to use a struct for the atomic type; fix docs,
10833         they return value before increment, not after increment.
10834
10835         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10836         (_dbus_string_append_8_aligned): new functions to try to
10837         microoptimize this operation.
10838         (reallocate_for_length): break this out of set_length(), to
10839         improve profile info, and also so we can consider inlining the
10840         set_length() part.
10841
10842         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10843         strings with some preallocation, cuts down on our calls to realloc
10844         a fair bit. Though if we can get the "move entire string to empty
10845         string" optimization below to kick in here, it would be better.
10846
10847         * dbus/dbus-string.c (_dbus_string_move): just call
10848         _dbus_string_move_len
10849         (_dbus_string_move_len): add a special case for moving
10850         an entire string into an empty string; we can just
10851         swap the string data instead of doing any reallocs.
10852         (_dbus_string_init_preallocated): new function
10853
10854 2003-05-11  Havoc Pennington  <hp@pobox.com>
10855
10856         Write a "test-profile" that does echo client-server with threads;
10857         profile reveals lock contention, memcpy/realloc of buffers, and
10858         UTF-8 validation as hot spots. 20% of lock contention eliminated
10859         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10860         contention is global mempool locks for GList and DBusList.
10861
10862         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10863         x86 implementation
10864
10865         * dbus/dbus-connection.c (struct DBusConnection): use
10866         dbus_atomic_t for the reference count
10867
10868         * dbus/dbus-message.c (struct DBusMessage): declare
10869         dbus_atomic_t values as volatile
10870
10871         * configure.in: code to detect ability to use atomic integer
10872         operations in assembly, from GLib patch
10873
10874         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10875         time, tired of it being wrong in threads and forked processes
10876
10877         * glib/test-profile.c: a little program to bounce messages back
10878         and forth between threads and eat CPU
10879
10880         * dbus/dbus-connection.c: add debug spew macros for debugging
10881         thread locks; include config.h at top; fix deadlock in
10882         dbus_connection_flush()
10883
10884 2003-05-08  Havoc Pennington  <hp@pobox.com>
10885
10886         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10887         data from getting written, and there wasn't a good reason to
10888         use _exit really.
10889
10890         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10891         dbus_verbose lines in test coverage
10892         (main): add list of functions sorted by # of untested blocks
10893         to the coverage report
10894
10895         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10896
10897         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10898
10899         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10900         extend test coverage
10901
10902         * test/data/auth/cancel.auth-script: test canceling an
10903         authentication
10904
10905         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10906         aren't used. in CVS history if we end up needing them.
10907
10908 2003-05-04  Havoc Pennington  <hp@pobox.com>
10909
10910         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10911         unit test
10912
10913         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10914         function, which assumed length was in # of strings, not bytes
10915
10916         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10917         missing coverage
10918
10919         * dbus/dbus-connection.c
10920         (_dbus_connection_queue_received_message): disable function for
10921         now, we are only using it in test mode
10922
10923         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10924         remove a mistaken FIXME
10925
10926 2003-05-04  Havoc Pennington  <hp@pobox.com>
10927
10928         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10929         unlock mutex on successful return, patch from Anders Gustafsson
10930
10931 2003-05-04  Havoc Pennington  <hp@pobox.com>
10932
10933         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10934         Anders Gustafsson
10935
10936 2003-05-04  Havoc Pennington  <hp@pobox.com>
10937
10938         * tools/dbus-launch.c: implement
10939
10940         * bus/main.c (main), bus/bus.c (bus_context_new):
10941         implement --print-pid and --fork
10942
10943 2003-05-03  Havoc Pennington  <hp@redhat.com>
10944
10945         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10946         the address had no value, and add to test suite. Fix and
10947         regression test from Miloslav Trmac
10948
10949 2003-05-03  Havoc Pennington  <hp@pobox.com>
10950
10951         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10952         watch is invalid when handled
10953
10954         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10955         dbus-launch utility to launch the bus from a shell script.  Didn't
10956         actually implement dbus-launch yet, it's just a placeholder still.
10957
10958 2003-05-03  Havoc Pennington  <hp@pobox.com>
10959
10960         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10961         daemon; also documents daemon config file, so replaces
10962         doc/config-file.txt. Corrected some stuff from config-file.txt in
10963         the process of moving it.
10964
10965 2003-05-03  Havoc Pennington  <hp@pobox.com>
10966
10967         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10968         add some man pages
10969
10970 2003-05-03  Colin Walters  <walters@verbum.org>
10971
10972         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10973         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10974
10975         * Makefile.am: Update to use new .pc versioning scheme.
10976
10977 2003-05-02  Havoc Pennington  <hp@redhat.com>
10978
10979         * bus/system.conf.in: allow send/receive to/from message bus
10980         service
10981
10982 2003-04-30  Havoc Pennington  <hp@redhat.com>
10983
10984         * configure.in: print a note when building with unit tests and
10985         without assertions
10986
10987 2003-04-30  Havoc Pennington  <hp@redhat.com>
10988
10989         * Makefile.am: add a check-local that complains if you didn't
10990         configure with --enable-tests
10991
10992 2003-04-29  Havoc Pennington  <hp@redhat.com>
10993
10994         * glib/dbus-gmain.c: docs cleanups
10995
10996         * dbus/dbus-types.h: add docs on int64 types
10997
10998         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10999         public API docs section
11000
11001 2003-04-29  Havoc Pennington  <hp@redhat.com>
11002
11003         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11004         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11005         parallel install API version, not with the D-BUS package version.
11006
11007         * HACKING: move some of README over here
11008
11009         * README: updates, and document API/ABI policy
11010
11011         * configure.in: reindentation
11012
11013 2003-04-29  Havoc Pennington  <hp@redhat.com>
11014
11015         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11016         to use this library" to be sure people have the right
11017         expectations.
11018
11019 2003-04-28  Havoc Pennington  <hp@redhat.com>
11020
11021         * configure.in: add --enable-docs which by default is auto yes if
11022         doxygen and db2html found, no otherwise; but can be forced on/off
11023
11024         * doc/Makefile.am: conditionalize whether to build docs on
11025         --enable-docs
11026
11027 2003-04-28  Havoc Pennington  <hp@redhat.com>
11028
11029         * configure.in: 0.10
11030
11031         * NEWS: update
11032
11033         * bus/system.conf.in: add <includedir>system.d</includedir>
11034
11035         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11036         username was provided but not uid
11037
11038         * bus/config-parser.c (struct BusConfigParser): keep track of
11039         whether the parser is toplevel or was included; change some
11040         of the error handling if it's included.
11041
11042 2003-04-27  Havoc Pennington  <hp@pobox.com>
11043
11044         Unbreak my code...
11045
11046         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11047         report correct status if we finish processing authentication
11048         inside this function.
11049
11050         * bus/activation.c (try_send_activation_failure): use
11051         bus_transaction_send_error_reply
11052
11053         * bus/connection.c (bus_connection_get_groups): return an error
11054         explaining the problem
11055
11056         * bus/bus.c (bus_context_check_security_policy): implement
11057         restriction here that inactive connections can only send the
11058         hello message. Also, allow bus driver to send anything to
11059         any recipient.
11060
11061         * bus/connection.c (bus_connection_complete): create the
11062         BusClientPolicy here instead of on-demand.
11063         (bus_connection_get_policy): don't return an error
11064
11065         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11066         sender field in message being replied to
11067
11068         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11069         causing it to return FALSE always
11070
11071         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11072         we checked sender rather than destination
11073
11074 2003-04-25  Havoc Pennington  <hp@redhat.com>
11075
11076         test suite is slightly hosed at the moment, will fix soon
11077
11078         * bus/connection.c (bus_connections_expire_incomplete): fix to
11079         properly disable the timeout when required
11080         (bus_connection_set_name): check whether we can remove incomplete
11081         connections timeout after we complete each connection.
11082
11083         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11084         probably still broken.
11085
11086         * bus/services.c (bus_registry_acquire_service): implement max
11087         number of services owned, and honor allow/deny rules on which
11088         services a connection can own.
11089
11090         * bus/connection.c (bus_connection_get_policy): report errors here
11091
11092         * bus/activation.c: implement limit on number of pending
11093         activations
11094
11095 2003-04-25  Havoc Pennington  <hp@redhat.com>
11096
11097         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11098         where we used >= 0 instead of != DBUS_UID_UNSET.
11099
11100 2003-04-25  Havoc Pennington  <hp@redhat.com>
11101
11102         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11103         were toggled without add/remove, fix from Anders Gustafsson
11104
11105 2003-04-24  Havoc Pennington  <hp@redhat.com>
11106
11107         * test/data/valid-config-files/basic.conf: add <limit> tags to
11108         this test
11109
11110         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11111         <limit> tag in configuration file.
11112
11113 2003-04-24  Havoc Pennington  <hp@redhat.com>
11114
11115         * bus/dispatch.c: somehow missed some name_is
11116
11117         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11118         (_dbus_timeout_set_interval): new
11119
11120         * bus/connection.c (bus_connections_setup_connection): record time
11121         when each connection is first set up, and expire them after the
11122         auth timeout passes.
11123
11124 2003-04-24  Havoc Pennington  <hp@redhat.com>
11125
11126         * dbus/dbus-message.c (dbus_message_name_is): rename
11127         (dbus_message_service_is): rename
11128         (dbus_message_sender_is): rename
11129         (dbus_message_get_service): rename
11130
11131 2003-04-24  Havoc Pennington  <hp@redhat.com>
11132
11133         * configure.in: add --enable-checks
11134
11135         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11136
11137         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11138         to use thread locks.
11139         (_dbus_connection_handler_destroyed_locked): move some private
11140         functions into proper docs group
11141
11142         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11143         _dbus_return_val_if_fail
11144
11145         Throughout: use dbus_return_if_fail
11146
11147 2003-04-23  James Willcox  <jwillcox@gnome.org>
11148
11149         * glib/dbus-glib.h:
11150         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11151         (dbus_connection_setup_with_g_main),
11152         (dbus_server_setup_with_g_main):
11153         * glib/test-dbus-glib.c: (main):
11154         * glib/test-thread-client.c: (main):
11155         * glib/test-thread-server.c: (new_connection_callback), (main):
11156         * tools/dbus-monitor.c: (main):
11157
11158         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11159         and dbus_server_setup_with_g_main().
11160
11161 2003-04-20  Havoc Pennington  <hp@pobox.com>
11162
11163         * doc/dbus-specification.sgml: document the restrictions on
11164         message and service names
11165
11166 2003-04-22  Havoc Pennington  <hp@redhat.com>
11167
11168         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11169         support, and do some code cleanups to share more code and
11170         speed up array marshal/demarshal.
11171
11172         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11173
11174         * configure.in: generate dbus-arch-deps.h
11175
11176         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11177         64-bit typecodes
11178
11179 2003-04-22  Havoc Pennington  <hp@redhat.com>
11180
11181         * test/data/valid-messages/opposite-endian.message: fix test
11182         to use proper type for rply field
11183
11184         * test/data/invalid-messages: add tests for below validation
11185
11186         * dbus/dbus-message.c (decode_header_data): validate field types,
11187         and validate that named fields are valid names
11188         (decode_name_field): consider messages in the
11189         org.freedesktop.Local. namespace to be invalid.
11190
11191         * dbus/dbus-string.c (_dbus_string_validate_name): new
11192
11193 2003-04-19  Havoc Pennington  <hp@pobox.com>
11194
11195         * bus/driver.c (bus_driver_handle_hello): check limits and
11196         return an error if they are exceeded.
11197
11198         * bus/connection.c: maintain separate lists of active and inactive
11199         connections, and a count of each. Maintain count of completed
11200         connections per user. Implement code to check connection limits.
11201
11202         * dbus/dbus-list.c (_dbus_list_unlink): export
11203
11204         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11205         number of bytes in the message queue for a connection
11206
11207 2003-04-18  Havoc Pennington  <hp@pobox.com>
11208
11209         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11210
11211         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11212         memleaks
11213
11214         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11215         on realloc be sure to update the pointer in the keyring
11216
11217         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11218         offset to avoid writing to unallocated memory
11219
11220         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11221         try the next mechanism, so we properly handle OOM
11222
11223         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11224         on OOM.
11225         (_dbus_keyring_new): fix OOM bug
11226         (_dbus_keyring_new_homedir): always set error; impose a maximum
11227         number of keys we'll load from the file, mostly to speed up the
11228         test suite and make its OOM checks more useful, but also for
11229         general sanity.
11230
11231         * dbus/dbus-auth.c (process_error_server): reject authentication
11232         if we get an error from the client
11233         (process_cancel): on cancel, send REJECTED, per the spec
11234         (process_error_client): send CANCEL if we get an error from the
11235         server.
11236
11237 2003-04-18  Havoc Pennington  <hp@pobox.com>
11238
11239         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11240         debug spew
11241
11242         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11243         handling problem
11244
11245         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11246         about DBUS_TEST_HOMEDIR once
11247
11248         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11249         the environment
11250
11251         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11252         config file so we test the right thing
11253
11254         Throughout: assorted docs improvements
11255
11256 2003-04-18  Havoc Pennington  <hp@pobox.com>
11257
11258         * glib/dbus-gmain.c: adapt to watch changes
11259
11260         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11261
11262         * dbus/dbus-server.h: remove dbus_server_handle_watch
11263
11264         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11265
11266         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11267         like DBusTimeout, so we don't need dbus_connection_handle_watch
11268         etc.
11269
11270 2003-04-17  Havoc Pennington  <hp@redhat.com>
11271
11272         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11273         database usage so it all goes via the DBusUserDatabase cache.
11274
11275 2003-04-17  Havoc Pennington  <hp@redhat.com>
11276
11277         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11278         there was an OOM watch we skipped, we always return TRUE so we
11279         iterate again to have a look at it again. Fixes test suite hang.
11280         Code rearrangement also lets us lose some memset and only iterate
11281         over callbacks once.
11282
11283         * bus/driver.c (bus_driver_handle_message): sense of test for
11284         reply was backward
11285
11286 2003-04-16  Havoc Pennington  <hp@pobox.com>
11287
11288         * doc/dbus-specification.sgml: make spec say serials are unsigned
11289
11290         * dbus/dbus-message.h: change message serials to unsigned
11291
11292         * dbus/dbus-connection.c: adapt to message serials being unsigned
11293
11294 2003-04-15  Havoc Pennington  <hp@pobox.com>
11295
11296         * bus/bus.c: create and keep around a shared DBusUserDatabase
11297         object.
11298
11299         * bus/connection.c (bus_connection_get_groups): don't cache
11300         groups for user in the connection object, since user database
11301         object now does that.
11302
11303 2003-04-16  Havoc Pennington  <hp@redhat.com>
11304
11305         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11306         list of size counters
11307         (_dbus_message_loader_putback_message_link): put back a popped link
11308
11309         * dbus/dbus-connection.c
11310         (dbus_connection_set_max_live_messages_size): rename
11311         max_received_size
11312         (dbus_connection_get_outgoing_size): get size of outgoing
11313         queue
11314         (_dbus_connection_set_connection_counter): remove this cruft
11315
11316 2003-04-14  Havoc Pennington  <hp@redhat.com>
11317
11318         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11319         caching, but at some point we might want to be able to use a
11320         different database.
11321
11322         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11323         SHA1 conf file to test the sha1 auth mechanism, since the regular
11324         test always uses EXTERNAL when available.
11325
11326         * configure.in,
11327         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11328         add conf file that requires use of sha1 auth
11329
11330 2003-04-13  Havoc Pennington  <hp@pobox.com>
11331
11332         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11333         from Philip Blundell to send messages and monitor them.
11334
11335 2003-04-13  Havoc Pennington  <hp@pobox.com>
11336
11337         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11338         callbacks
11339
11340         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11341         users
11342
11343         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11344         fix to only recover unused bytes if we're already authenticated
11345         (_dbus_transport_get_is_authenticated): fix to still mark us
11346         authenticated if there are unused bytes.
11347
11348         * bus/dispatch.c: implement security policy checking
11349
11350         * bus/connection.c (bus_transaction_send_from_driver): new
11351
11352         * bus/bus.c (bus_context_check_security_policy): new
11353
11354         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11355         now we just set the DBusError and it gets converted to an error
11356         reply.
11357
11358         * bus/connection.c (allow_user_function): enable code using actual
11359         data from the config file
11360
11361         * bus/policy.c (list_allows_user): handle wildcard rules for
11362         user/group connection perms
11363
11364 2003-04-13  Havoc Pennington  <hp@pobox.com>
11365
11366         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11367
11368         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11369
11370         * bus/policy.c (bus_policy_append_mandatory_rule)
11371         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11372         (bus_policy_append_group_rule): new functions
11373
11374 2003-04-12  Havoc Pennington  <hp@pobox.com>
11375
11376         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11377
11378         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11379         the pid/gid/uid, just for paranoia.
11380
11381         * test/break-loader.c (randomly_do_n_things): find a byte
11382         containing a type code, and randomly change it to a different
11383         type code.
11384
11385 2003-04-12  Havoc Pennington  <hp@pobox.com>
11386
11387         * bus/policy.h: change BusPolicy to be the thing from the config
11388         file, and rename old BusPolicy to BusClientPolicy
11389
11390         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11391         match change in how policy works
11392
11393         * dbus/dbus-internals.h: mark assert_not_reached as
11394         __attribute((noreturn))__
11395
11396 2003-04-11  Havoc Pennington  <hp@redhat.com>
11397
11398         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11399         the broadcast service. Use boolean return for ServiceExists.
11400
11401 2003-04-11  Havoc Pennington  <hp@redhat.com>
11402
11403         * configure.in: add another directory to look for qt in.
11404
11405 2003-04-11  Havoc Pennington  <hp@redhat.com>
11406
11407         * AUTHORS: add Colin Walters
11408
11409 2003-04-11  Havoc Pennington  <hp@redhat.com>
11410
11411         * NEWS: update
11412
11413         * configure.in: 0.9
11414
11415 2003-04-11  Havoc Pennington  <hp@redhat.com>
11416
11417         * bus/messagebus.in: remove pid file when stopping the
11418         message bus, since the bus won't have privileges to remove it
11419         itself.
11420
11421 2003-04-11  Havoc Pennington  <hp@redhat.com>
11422
11423         * bus/bus.c (bus_context_new): move credentials change after
11424         creating pidfile
11425
11426 2003-04-11  Havoc Pennington  <hp@pobox.com>
11427
11428         * test/decode-gcov.c: add "below average functions" to the
11429         coverage report, and change how some of the code works.
11430
11431         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11432         not in the coverage stats.
11433
11434         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11435         couple places so running the test suite doesn't result in megaspam.
11436
11437 2003-04-11  Havoc Pennington  <hp@pobox.com>
11438
11439         * bus/dispatch.c (check_existent_service_activation): accept a no
11440         memory error in a place we didn't before
11441
11442         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11443         in case the first one failed," since the test suite is less
11444         broken now.
11445
11446 2003-04-10  Havoc Pennington  <hp@pobox.com>
11447
11448         * bus/dispatch.c (check_segfault_service_activation): add test
11449         for launching an executable that just crashes.
11450
11451         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11452         don't leave a million cores. We'll see how portable this is.
11453
11454 2003-04-10  Havoc Pennington  <hp@pobox.com>
11455
11456         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11457         the possible parent failures before we fork, so that we don't
11458         fail to create a babysitter after creating the child.
11459
11460         * bus/activation.c (bus_activation_activate_service): kill child
11461         if we don't successfully complete the activation.
11462
11463 2003-04-10  Havoc Pennington  <hp@redhat.com>
11464
11465         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11466         the connection if it's disconnected
11467
11468         * bus/activation.c (bus_activation_service_created): use new
11469         transaction features to roll back removal of pending activation if
11470         we don't successfully create the service after all. Don't remove
11471         pending activation if the function fails.
11472
11473         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11474         (_dbus_list_insert_after_link): new code to facilitate
11475         services.c fixes
11476
11477         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11478         new functionality, so we can preallocate the ability to insert
11479         into a hash table.
11480
11481         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11482         allowing us to put custom hooks in a transaction to be used for
11483         cancelling said transaction
11484
11485         * doc/dbus-specification.sgml: add some discussion of secondary
11486         service owners, and disallow zero-length service names
11487
11488         * bus/services.c (bus_registry_acquire_service): new function,
11489         splits out part of bus_driver_handle_acquire_service() and fixes
11490         a bug where we didn't remove the service doing the acquiring
11491         from the secondary queue if we failed to remove the current owner
11492         from the front of the queue.
11493
11494 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11495
11496         * doc/dbus-specification.sgml:
11497         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11498
11499 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11500
11501         * bus/.cvsignore:
11502         * glib/.cvsignore:
11503         * test/.cvsignore:
11504         Added files to cvsignore
11505
11506         * dbus/dbus-message.h:
11507         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11508         Make get_named() take two out argument and return a boolean.
11509         (dbus_message_iter_get_args_valist):
11510         Update usage of get_named().
11511         (dbus_message_iter_append_byte):
11512         Fix typo
11513         (dbus_message_iter_append_named)
11514         Fix typo
11515         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11516         More tests.
11517
11518 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11519
11520         * dbus/dbus-marshal.[ch]:
11521         Add array_type_pos argument to _dbus_marshal_validate_arg.
11522         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11523
11524         * dbus/dbus-message.[ch]:
11525         Multi-dimensional arrays have full type specification in the
11526         outermost array. Iter code re-arranged to handle this.
11527         Added some more iter tests.
11528
11529         * doc/dbus-specification.sgml:
11530         Add me to authors.
11531         Remove old FIXME.
11532         Update new array encoding description.
11533         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11534
11535         * test/data/invalid-messages/array-with-mixed-types.message:
11536         * test/data/valid-messages/array-of-array-of-uint32.message:
11537         Change to the new array format.
11538
11539         * test/data/invalid-messages/too-short-dict.message:
11540         Fix bug in test.
11541
11542         * test/data/valid-messages/recursive-types.message:
11543         Fix up and extend test.
11544
11545 2003-04-10  Havoc Pennington  <hp@pobox.com>
11546
11547         * bus/dispatch.c: lots of fixes
11548
11549         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11550         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11551         that was crack, broke the test service.
11552
11553         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11554         handling to avoid piling up errors if we get a failure on the
11555         first address.
11556
11557         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11558         pid in assertion failures.
11559
11560         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11561         to some fixed size of file descriptor array. Don't return TRUE
11562         anytime a timeout exists, that led to lots of busy loop silliness
11563         in the tests.
11564
11565 2003-04-09  Havoc Pennington  <hp@redhat.com>
11566
11567         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11568         I'd checked this in earlier but hadn't.
11569
11570 2003-04-09  Havoc Pennington  <hp@redhat.com>
11571
11572         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11573         the activation test (man this is getting old!)
11574
11575 2003-04-09  Havoc Pennington  <hp@redhat.com>
11576
11577         * test/test-utils.c: use dispatch status function to fix this up
11578
11579         * bus/connection.c (connection_watch_callback): don't dispatch
11580         from here
11581         (connection_timeout_callback): don't dispatch from here
11582         (bus_connections_setup_connection): set the dispatch status function
11583         (bus_connection_disconnected): unset it
11584
11585         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11586         used to add a connection to be dispatched
11587         (_dbus_loop_iterate): do the dispatching at the end of each
11588         iteration
11589
11590         * dbus/dbus-connection.c
11591         (dbus_connection_set_dispatch_status_function): new function
11592         allowing us to fix up main loop usage
11593         (_dbus_connection_last_unref): free all the various function
11594         user data
11595         (dbus_connection_dispatch): call the DispatchStatusFunction
11596         whenever this function returns
11597         (dbus_connection_handle_watch): call DispatchStatusFunction
11598         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11599         (reply_handler_timeout): call DispatchStatusFunction
11600         (dbus_connection_flush): call DispatchStatusFunction
11601
11602 2003-04-09  Havoc Pennington  <hp@redhat.com>
11603
11604         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11605         a memory leak
11606
11607         * bus/dispatch.c (check_service_activated): fix bug in test
11608
11609         * dbus/dbus-mainloop.c (check_timeout): fix this up
11610
11611         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11612         verbose output so we can sort out output from different processes,
11613         e.g. in the activation case.
11614
11615 2003-04-08  Colin Walters  <walters@gnu.org>
11616
11617         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11618         the pid file.
11619         (bus_context_new): Set it.
11620         (bus_context_unref): Use it to delete the pid file.
11621
11622 2003-04-08  Havoc Pennington  <hp@redhat.com>
11623
11624         * test/data/invalid-messages/array-with-mixed-types.message:
11625         regression test that fails for the moment
11626
11627         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11628         tests for convenience
11629
11630         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11631         array of nil, it broke things.
11632
11633         * test/data/invalid-messages/array-of-nil.message: regression test
11634
11635         * test/data/valid-messages/array-of-array-of-uint32.message:
11636         happened to write this so added it to suite
11637
11638 2003-04-08  Havoc Pennington  <hp@redhat.com>
11639
11640         * bus/driver.c (bus_driver_handle_acquire_service): init
11641         retval/reply before checking name
11642
11643         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11644         recursion depth argument
11645
11646         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11647         in the public struct for future extension
11648
11649         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11650         typo
11651
11652         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11653         message
11654
11655         * doc/dbus-specification.sgml: fix typo
11656
11657 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11658
11659         Implemented recursive types, named types and new-style iters
11660
11661         * bus/driver.c:
11662         * glib/test-thread-client.c: (thread_func):
11663         * glib/test-thread-server.c: (handle_test_message):
11664         * test/test-service.c: (handle_echo):
11665         Update to new api
11666
11667         * dbus/Makefile.am:
11668         * dbus/dbus-dict.c:
11669         * dbus/dbus-dict.h:
11670         * dbus/dbus.h
11671         Remove DBusDict
11672
11673         * dbus/dbus-internals.c: (_dbus_type_to_string):
11674         Update for new types.
11675
11676         * dbus/dbus-marshal.[ch]:
11677         Implement recursive types and the new marshalling format.
11678         Remove hardcoded dict marshalling.
11679         Marshal named types.
11680
11681         * dbus/dbus-message-builder.c:
11682         Add BYTE_ARRAY.
11683         Remove references to old types
11684
11685         * dbus/dbus-message.[ch]:
11686         New non-refcounted iter API that supports recursive iters.
11687         Use iters for appending, including support for recursive
11688         iters.
11689         Add byte and named type support.
11690         Update everything to new marshalling formats.
11691         Add tests for new API.
11692
11693         * dbus/dbus-protocol.h:
11694         Remove old array types.
11695         Add types: BYTE, ARRAY, DICT, NAMED
11696
11697         * dbus/dbus-string.c:
11698         * dbus/dbus-sysdeps.c:
11699         Make parse_double locale safe.
11700
11701         * dbus/dbus-test-main.c:
11702         Call setlocale.
11703
11704         * dbus/dbus-test.c:
11705         Kill dict test
11706
11707         * doc/dbus-specification.sgml:
11708         Update spec
11709
11710         * test/data/incomplete-messages/missing-body.message:
11711         * test/data/invalid-messages/bad-boolean.message:
11712         * test/data/invalid-messages/bad-boolean-array.message:
11713         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11714         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11715         * test/data/invalid-messages/too-short-dict.message:
11716         * test/data/valid-messages/dict-simple.message:
11717         * test/data/valid-messages/dict.message:
11718         * test/data/valid-messages/emptiness.message:
11719         * test/data/valid-messages/lots-of-arguments.message:
11720         * test/data/valid-messages/no-padding.message:
11721         * test/data/valid-messages/recursive-types.message:
11722         Add missing NAME fields
11723         Fix up dicts & arrays
11724
11725         * test/data/invalid-messages/dict-with-nil-value.message:
11726         Removed, this is not invalid anymore.
11727
11728         * test/data/valid-messages/recursive-types.message:
11729         Add new test for deeply recursive types.
11730
11731 2003-04-07  Havoc Pennington  <hp@pobox.com>
11732
11733         * bus/driver.c (bus_driver_handle_acquire_service): return an
11734         error if you try to acquire a service that starts with ':'
11735
11736 2003-04-07  Havoc Pennington  <hp@redhat.com>
11737
11738         * doc/dbus-specification.sgml: require that base service names
11739         start with ':' and that the base service is created/deleted
11740         as first and last things a connection does on the bus
11741
11742         * bus/dispatch.c (check_existent_service_activation): lots more
11743         work on the activation test; it doesn't fully pass yet...
11744
11745         * test/test-service.c (main): fix so we don't memleak the
11746         connection to the message bus
11747         (filter_func): accept a message asking us to exit
11748
11749 2003-04-06  Havoc Pennington  <hp@pobox.com>
11750
11751         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11752         from Colin Walters
11753
11754         * configure.in: fixes to Qt detection from Colin Walters
11755
11756         * doc/Makefile.am: Only remove generated docbook dirs if they
11757         exist, from Colin Walters
11758
11759         * dbus/dbus-bus.c: change how we set well-known connections to
11760         NULL, so that it works if a single connection is stored in
11761         two well-known array slots.
11762
11763         * test/Makefile.am: remove a lot of stuff that isn't immediately
11764         useful, it's in CVS history if we want it.
11765
11766         * test/test-service.c: use dbus-mainloop instead of that
11767         watch.[hc] crack
11768
11769 2003-04-06  Havoc Pennington  <hp@pobox.com>
11770
11771         * dbus/Makefile.am: split lists of sources into stuff that goes in
11772         the library, util functions that go in the lib and are also used
11773         elsewhere, and util functions that are used in tests/daemon but
11774         don't go in the lib.
11775
11776         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11777         here so it can be used in test binaries also
11778
11779 2003-04-06  Havoc Pennington  <hp@pobox.com>
11780
11781         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11782         here in the parent process, so we can return an error if it
11783         fails. Also, move some of the code into the child so the parent
11784         is less hosed if we fail midway through.
11785
11786         * bus/bus.c (bus_context_new): move pidfile detection further up
11787         in the function, before we start overwriting sockets and such.
11788
11789         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11790
11791         * configure.in: add --with-system-pid-file and --with-system-socket
11792
11793 2003-04-06  Colin Walters  <walters@verbum.org>
11794
11795         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11796
11797         * bus/system.conf.in: Declare a pidfile.
11798
11799         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11800         create one (if appropriate).
11801
11802         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11803         (struct BusConfigParser) [pidfile]: New.
11804         (element_type_to_name, merge_included, start_busconfig_child)
11805         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11806         (bus_config_parser_unref): Free it.
11807         (bus_config_parser_get_pidfile): New function.
11808
11809         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11810
11811         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11812
11813         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11814
11815         * dbus/dbus-sysdeps.h: Prototype it.
11816
11817 2003-04-06  Havoc Pennington  <hp@pobox.com>
11818
11819         * bus/bus.c (bus_context_new): print the address in here, rather
11820         than in main(), because we need to do it before forking the daemon
11821
11822         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11823         on the service nonexistent error
11824
11825         * bus/driver.c (bus_driver_handle_acquire_service): set the
11826         sender on the AcquireService reply
11827
11828         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11829         server also listen on a UNIX socket so services can connect to it.
11830
11831 2003-04-06  Havoc Pennington  <hp@pobox.com>
11832
11833         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11834         so it detects deadlocks and also we actually init threads when
11835         debugging.
11836
11837 2003-04-06  Havoc Pennington  <hp@pobox.com>
11838
11839         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11840         save the domain socket name, and unlink it when we disconnect the
11841         server. Means that at least when we exit normally, we won't leave
11842         a bunch of junk in /tmp
11843
11844         * dbus/dbus-transport-unix.c
11845         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11846         memory management). (I was making a real change here but then
11847         didn't)
11848
11849 2003-04-06  Havoc Pennington  <hp@pobox.com>
11850
11851         * bus/bus.c (bus_context_new): fix wrong handling of
11852         server_data_slot_unref() in the error case.
11853
11854         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11855         "(condition) != 0" to _dbus_real_assert so that
11856         "_dbus_assert (pointer)" doesn't cause a warning
11857
11858         * bus/main.c (main): accept --print-address option to print out
11859         the message bus address
11860
11861         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11862
11863         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11864         "tmpdir" option to unix: address on client side
11865
11866         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11867         to unix: address
11868
11869         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11870         we can use to create sockets in the test suite.
11871
11872         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11873         cleanly. To be used for testing.
11874
11875         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11876
11877         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11878
11879         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11880         handle trying to call this when there's no servers active
11881
11882 2003-04-05  Havoc Pennington  <hp@pobox.com>
11883
11884         * NEWS: update
11885
11886         * configure.in: 0.8
11887
11888 2003-04-05  Havoc Pennington  <hp@pobox.com>
11889
11890         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11891         crash on startup. Need to get "try starting the daemon"
11892         in the test suite I guess. ;-)
11893
11894         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11895         tracked the number of open connections; it's better done in
11896         application-specific code as you want it to span all servers etc.
11897
11898 2003-04-05  Havoc Pennington  <hp@pobox.com>
11899
11900         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11901         patch from Colin Walters
11902
11903 2003-04-05  Havoc Pennington  <hp@pobox.com>
11904
11905         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11906         reality; in fact multiple mechanisms are allowed.
11907
11908         * dbus/dbus-internals.c (_dbus_real_assert)
11909         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11910         _dbus_assert_not_reached() into functions, so that they don't show
11911         up in basic block counts for test coverage, and don't use up as
11912         much disk space. Does mean slower execution speed though, so
11913         assumes --disable-asserts is the normal production case.
11914
11915 2003-04-05  Havoc Pennington  <hp@pobox.com>
11916
11917         * test/Makefile.am (dist-hook): also dist *.in files
11918
11919         * NEWS: update
11920
11921         * configure.in: 0.7
11922
11923 2003-04-05  Havoc Pennington  <hp@pobox.com>
11924
11925         * dbus/dbus-string.c: docs warning
11926
11927         * dbus/dbus-spawn.c: missing docs
11928
11929         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11930
11931 2003-04-05  Havoc Pennington  <hp@pobox.com>
11932
11933         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11934         magic from GLib
11935
11936         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11937         to -1 once we've reaped the babysitter
11938         (_dbus_babysitter_handle_watch): do as much work as we can, not
11939         just one go of it
11940
11941         * bus/activation.c: add code using DBusBabysitter so that we
11942         handle it when a service fails to start up properly.
11943         (bus_activation_service_created): don't remove the activation
11944         entries as we go, just let them get removed when we free the pending
11945         activation. Unref reply messages after sending them.
11946
11947 2003-04-05  Havoc Pennington  <hp@pobox.com>
11948
11949         * test/decode-gcov.c (main): print per-directory stats in the report
11950
11951         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11952
11953 2003-04-05  Havoc Pennington  <hp@pobox.com>
11954
11955         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11956
11957         * test/decode-gcov.c: hack up a little program to suck data
11958         out of gcov files. Yes this is sort of silly.
11959
11960         * configure.in: define something in config.h and do an
11961         AM_CONDITIONAL when gcov is enabled
11962
11963 2003-04-04  Havoc Pennington  <hp@redhat.com>
11964
11965         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11966         return a "babysitter" object that is used to monitor the status of
11967         the spawned process and reap it when required.
11968
11969         * test/test-segfault.c, test/test-exit.c,
11970         test/test-sleep-forever.c: binaries that do various lame things,
11971         used in the test suite.
11972
11973         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11974
11975 2003-04-03  Havoc Pennington  <hp@pobox.com>
11976
11977         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11978         in preparation for modifying it, dbus-sysdeps is getting
11979         a bit unmanageable.
11980
11981 2003-04-03  Havoc Pennington  <hp@redhat.com>
11982
11983         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11984         have multiple ones
11985
11986         * bus/*.[hc]: adapt to mainloop change
11987
11988 2003-04-03  Havoc Pennington  <hp@redhat.com>
11989
11990         * bus/activation.c (load_directory): fix up memleaks
11991         (bus_activation_entry_free): free the entry
11992
11993         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11994         we get one from the message bus; fix memleaks.
11995
11996         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11997
11998 2003-04-03  Havoc Pennington  <hp@pobox.com>
11999
12000         * bus/config-parser.c (bus_config_parser_unref): free
12001         list of mechanisms, bug discovered by test suite enhancements
12002         (putting system.conf and session.conf into suite)
12003
12004         * test/Makefile.am, test/test-service.c: add placeholder for a
12005         test service that we'll activate as part of test suite. Doesn't
12006         do anything yet.
12007
12008         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12009         setting NULL value, and use system malloc not dbus_malloc()
12010         when we have unavoidable memleakage.
12011
12012         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12013         didn't work, and support DBUS_BUS_ACTIVATION.
12014
12015         * bus/activation.c (child_setup): pass our well-known bus type to
12016         the child
12017
12018         * bus/config-parser.c: support <type> to specify well-known type
12019
12020         * doc/dbus-specification.sgml: document the env variables to
12021         locate well-known buses and find service activator
12022
12023 2003-04-02  Havoc Pennington  <hp@redhat.com>
12024
12025         * test/Makefile.am (all-local): add a rule to copy tests to
12026         builddir, so we can have generated tests. Use this to remove the
12027         silly hack for testing system.conf and session.conf. Will use this
12028         shortly to generate .service files pointing to test binaries.
12029
12030 2003-04-02  Havoc Pennington  <hp@redhat.com>
12031
12032         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12033         current alloc and needed new length, not max of the doubled
12034         allocation and needed new length. Also, when building tests,
12035         don't do the double-allocation stuff, just realloc every time.
12036
12037 2003-04-02  Havoc Pennington  <hp@redhat.com>
12038
12039         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12040         in error messages
12041         (_dbus_string_get_dirname): new
12042         (_dbus_sysdeps_test): new
12043         (_dbus_directory_open): include dirnames in error messages
12044
12045         * bus/config-parser.c: interpret <include> and <includedir> and
12046         <servicedir> relative to config file location if the given
12047         filename is not absolute.
12048
12049         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12050
12051 2003-04-02  Havoc Pennington  <hp@redhat.com>
12052
12053         * bus/connection.c (bus_transaction_send_error_reply): set sender
12054         service for the error, and unref the reply on success
12055
12056         * bus/activation.c: convert to use BusTransaction so OOM can be
12057         handled correctly
12058         (bus_activation_service_created): set sender of the message
12059
12060 2003-04-01  Havoc Pennington  <hp@redhat.com>
12061
12062         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12063         <includedir> (at least mostly)
12064
12065         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12066         first, then the user ID
12067
12068 2003-04-01  Havoc Pennington  <hp@pobox.com>
12069
12070         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12071         function
12072
12073         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12074
12075         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12076
12077         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12078         socket 0777, and unlink any existing socket.
12079
12080         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12081         the configuration file so specifies; set up auth mechanism
12082         restrictions
12083
12084         * bus/config-parser.c (bus_config_parser_content): add support
12085         for <fork> option and fill in code for <auth>
12086
12087         * bus/system.conf.in: add <fork/> to default configuration,
12088         and limit auth mechanisms to EXTERNAL
12089
12090         * doc/config-file.txt (Elements): add <fork>
12091
12092         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12093         (_dbus_change_identity): new function
12094
12095 2003-03-31  Havoc Pennington  <hp@redhat.com>
12096
12097         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12098         (_dbus_listen_unix_socket): fix off-by-one error in null
12099         termination spotted by Nalin
12100
12101 2003-03-31  Havoc Pennington  <hp@redhat.com>
12102
12103         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12104         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12105         having a real home directory available.
12106
12107 2003-03-31  Havoc Pennington  <hp@redhat.com>
12108
12109         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12110
12111         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12112
12113         * configure.in: add support for specifying a style of init script
12114         to install
12115
12116 2003-03-31  Havoc Pennington  <hp@redhat.com>
12117
12118         Fix some annoying DBusString API and fix all affected code.
12119
12120         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12121         max_length argument
12122         (_dbus_string_get_data): change to return string instead of using
12123         an out param
12124         (_dbus_string_get_const_data): ditto
12125         (_dbus_string_get_data_len): ditto
12126         (_dbus_string_get_const_data_len): ditto
12127
12128 2003-03-31  Havoc Pennington  <hp@redhat.com>
12129
12130         * bus/main.c (main): fix up the command line arguments to be nicer
12131
12132 2003-03-31  Havoc Pennington  <hp@redhat.com>
12133
12134         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12135         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12136         final location that lands in the config file
12137
12138         * bus/config-loader-expat.c (bus_config_load): fix type of
12139         XML_Parser variable
12140
12141         * doc/TODO: remove TODO item for dbus_bus_get()
12142
12143         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12144
12145 2003-03-31  Havoc Pennington  <hp@pobox.com>
12146
12147         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12148         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12149         argument since they are always client side
12150
12151         * dbus/dbus-server.c (dbus_server_get_address): new function
12152
12153         * bus/main.c (main): take the configuration file as an argument.
12154
12155         * test/data/valid-config-files/debug-allow-all.conf: new file to
12156         use with dispatch.c tests for example
12157
12158         * bus/test-main.c (main): require test data dir
12159
12160         * bus/bus.c (bus_context_new): change this to take a
12161         configuration file name as argument
12162
12163         * doc/config-file.txt (Elements): add <servicedir>
12164
12165         * bus/system.conf, bus/session.conf: new files
12166
12167         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12168         well-known socket if none set
12169
12170         * configure.in: create system.conf and session.conf
12171
12172 2003-03-30  Havoc Pennington  <hp@pobox.com>
12173
12174         * bus/config-parser.c: hacking
12175
12176         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12177         to shut down, since it could cause weirdness with the DBusList
12178         lock
12179
12180         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12181         link-oriented stack routines
12182         (alloc_link): free the mempool if the first alloc from it fails
12183
12184         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12185
12186         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12187         from GLib
12188         (_dbus_string_skip_white): new
12189
12190         * doc/config-file.txt (Elements): add <includedir>
12191
12192 2003-03-28  Havoc Pennington  <hp@pobox.com>
12193
12194         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12195         (_dbus_string_copy_data): new functions
12196
12197 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12198
12199         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12200         * dbus/dbus-bus.h:
12201         Add dbus_bus_get.
12202
12203         * dbus/dbus-memory.c:
12204         Fix a doc comment.
12205
12206 2003-03-28  Havoc Pennington  <hp@pobox.com>
12207
12208         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12209         I think it may have just been superstition. Not sure.
12210
12211         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12212         failures that were not being handled.
12213
12214         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12215
12216         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12217         row that will fail on out-of-memory.
12218
12219         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12220         function for testing out-of-memory handling.
12221
12222         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12223         allocation functions, they do map exactly to the expat ones.
12224
12225 2003-03-27  Havoc Pennington  <hp@redhat.com>
12226
12227         * bus/config-loader-libxml.c (bus_config_load): add another error
12228         check
12229
12230 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12231
12232         * doc/TODO:
12233         Add note about automatic service activation.
12234
12235         * doc/dbus-specification.sgml:
12236         Rename the specification and clarify a few things.
12237
12238 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12239
12240         * Doxyfile.in:
12241         * dbus/dbus-address.c:
12242         * dbus/dbus-dict.c:
12243         * dbus/dbus-marshal.c:
12244         * dbus/dbus-server-debug-pipe.c:
12245         * dbus/dbus-transport-unix.c:
12246         Fix documentation warnings.
12247
12248 2003-03-26  Havoc Pennington  <hp@pobox.com>
12249
12250         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12251         after every test so it's quick and easy to see which leaked, and
12252         so we test multiple dbus_shutdown() calls
12253
12254         * configure.in: change configure.in XML stuff to also support
12255         expat
12256
12257         * config-loader-libxml.c: some hacking
12258
12259         * config-loader-expat.c: some hacking
12260
12261         * config-parser.c: some hacking, plus tests
12262
12263 2003-03-25  Havoc Pennington  <hp@redhat.com>
12264
12265         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12266
12267         * configure.in: add --with-xml option to specify XML library,
12268         right now only libxml is supported.
12269
12270         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12271         nonworking code between home and work, still just stubs
12272
12273 2003-03-24  Havoc Pennington  <hp@redhat.com>
12274
12275         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12276         file
12277
12278         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12279         NULL argument for "message" if the error is a well-known one,
12280         fill in a generic message in this case.
12281
12282         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12283         favor of DBusError
12284
12285         * bus/test.c (bus_test_flush_bus): add
12286
12287         * bus/policy.c (bus_policy_test): test code stub
12288
12289 2003-03-24  Havoc Pennington  <hp@pobox.com>
12290
12291         * bus/connection.c (bus_connections_setup_connection): set up
12292         the "can this user connect" function, but it always returns
12293         TRUE until we have a config file parser so we can have a config
12294         file that allows connections.
12295
12296 2003-03-23  Havoc Pennington  <hp@pobox.com>
12297
12298         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12299         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12300         the mutex, so we can check for proper memory management
12301         and OOM handling.
12302
12303         * dbus/dbus-dataslot.c: remove the mutex from
12304         DBusDataSlotAllocator and lock it manually when using it,
12305         to simplify fitting it into the global slots framework.
12306
12307         * dbus/dbus-threads.c (init_static_locks): rework how we're
12308         handling global locks so they are easily shut down.
12309
12310         * bus/policy.c (bus_policy_append_rule): fix
12311
12312         * bus/test-main.c (main): check for memleaks
12313
12314         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12315         test suite check for memleaks
12316
12317         * dbus/dbus-memory.c: add support in test mode for tracking
12318         number of outstanding blocks
12319
12320 2003-03-23  Havoc Pennington  <hp@pobox.com>
12321
12322         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12323         policies code
12324
12325         * dbus/dbus-hash.h: add ULONG hash keys
12326
12327         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12328         (_dbus_get_group_id): new function
12329
12330 2003-03-20  Havoc Pennington  <hp@redhat.com>
12331
12332         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12333         new function
12334         (dbus_connection_get_unix_user): new function
12335
12336 2003-03-20  Havoc Pennington  <hp@pobox.com>
12337
12338         * bus/connection.c (bus_connection_send_oom_error): assert that
12339         message has a sender
12340         (connection_execute_transaction): ditto
12341         (bus_connection_preallocate_oom_error): fix to set the sender, and
12342         set recipient to the destination service, not the bus driver
12343
12344         * bus/policy.c: hacking
12345
12346         * dbus/dbus-message.c (dbus_message_service_is): new function
12347         (dbus_message_sender_is): new
12348
12349 2003-03-19  Havoc Pennington  <hp@redhat.com>
12350
12351         * bus/policy.c: start sketching code for policy restrictions on
12352         what connections can do.
12353
12354 2003-03-18  Havoc Pennington  <hp@redhat.com>
12355
12356         * doc/TODO: some notes on high-level todo items. Little nitpick
12357         stuff is all in @todo, so no need to add it here.
12358
12359         * doc/config-file.txt: some notes on how config file might look
12360
12361 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12362
12363         * configure.in: 0.6
12364
12365         * NEWS: Update.
12366
12367 2003-03-17  Havoc Pennington  <hp@redhat.com>
12368
12369         * dbus/dbus-internals.h: add gcc attributes so that
12370         our printf-style functions warn on bad arguments to
12371         format
12372
12373         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12374         format bug
12375
12376         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12377         printf format bug
12378
12379 2003-03-17  Havoc Pennington  <hp@redhat.com>
12380
12381         * bus/test-main.c (main): make it print something as it runs
12382         so make check doesn't look stuck
12383
12384         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12385         from CVS, now obsolete
12386
12387 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12388
12389         * bus/dispatch.c: (bus_dispatch):
12390         Refetch the service name since it may have been reallocated
12391         when dbus_message_set_sender was called.
12392
12393         * dbus/dbus-sysdeps.c: (_dbus_accept):
12394         Add address and address length variables and use them to stop
12395         valgrind from complaining.
12396
12397 2003-03-17  Havoc Pennington  <hp@pobox.com>
12398
12399         All tests pass, no memleaks, no valgrind complaints.
12400
12401         * bus/test.c: refcount handler_slot
12402
12403         * bus/connection.c (bus_connections_new): refcount
12404         connection_data_slot
12405
12406         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12407         bytes so that auth scripts pass.
12408
12409         * bus/dispatch.c: init message_handler_slot so it gets allocated
12410         properly
12411
12412         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12413
12414         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12415         dealloc server_pipe_hash when no longer used for benefit of
12416         leak checking
12417
12418         * dbus/dbus-auth.c (process_command): memleak fix
12419
12420         * bus/dispatch.c (check_hello_message): memleak fix
12421
12422 2003-03-16  Havoc Pennington  <hp@pobox.com>
12423
12424         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12425
12426 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12427
12428         * bus/activation.c (bus_activation_activate_service): Append
12429         the pending activation entry to the list of pending activations.
12430
12431 2003-03-16  Havoc Pennington  <hp@pobox.com>
12432
12433         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12434         connections
12435
12436         * dbus/dbus-address.c (create_entry): fix OOM handling when
12437         failing to alloc entry->method
12438
12439 2003-03-16  Havoc Pennington  <hp@pobox.com>
12440
12441         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12442         the watch
12443
12444         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12445         add some missing dbus_set_result
12446
12447         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12448         alloc the DBusMessageHandler
12449
12450         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12451         the transport here, since we call this from the finalizer; it
12452         resulted in a double-finalize.
12453
12454         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12455         where we tried to use transport->connection that was NULL,
12456         happened when transport was disconnected early on due to OOM
12457
12458         * bus/*.c: adapt to handle OOM for watches/timeouts
12459
12460         * dbus/dbus-transport-unix.c: port to handle OOM during
12461         watch handling
12462
12463         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12464         reference to unused bytes instead of a copy
12465
12466         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12467         out of memory
12468
12469         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12470         FALSE on OOM
12471
12472         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12473         of memory
12474
12475 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12476
12477         * doc/dbus-specification.sgml:
12478         Document reply message for ActivateService.
12479
12480 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12481
12482         * bus/activation.c: (bus_pending_activation_entry_free),
12483         (bus_pending_activation_free), (bus_activation_new),
12484         (bus_activation_unref), (bus_activation_service_created),
12485         (bus_activation_activate_service):
12486         * bus/activation.h:
12487         * bus/bus.c: (bus_context_new):
12488         * bus/desktop-file.c: (new_section):
12489         * bus/driver.c: (bus_driver_send_service_deleted),
12490         (bus_driver_handle_activate_service):
12491         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12492         * bus/services.h:
12493         * dbus/dbus-connection.c:
12494         (dbus_connection_send_with_reply_and_block):
12495         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12496         * dbus/dbus-protocol.h:
12497         Make activation work better. Now pending activations will be queued
12498         and the daemon won't try to activate services that are already registered.
12499
12500 2003-03-16  Havoc Pennington  <hp@pobox.com>
12501
12502         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12503         connection data
12504
12505         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12506         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12507
12508 2003-03-16  Havoc Pennington  <hp@pobox.com>
12509
12510         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12511         this. always run the test suite before commit...
12512
12513         * bus/*: adapt to DBusConnection API changes
12514
12515         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12516         requires renaming stuff to avoid dbus_connection_dispatch name
12517         conflict.
12518
12519         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12520         function
12521
12522         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12523         separate from _dbus_message_loader_return_buffer()
12524
12525         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12526         this, because it's now always broken to use; the number of
12527         messages in queue vs. the number still buffered by the message
12528         loader is undefined/meaningless. Should use
12529         dbus_connection_get_dispatch_state().
12530         (dbus_connection_dispatch): rename from
12531         dbus_connection_dispatch_message
12532
12533 2003-03-16  Havoc Pennington  <hp@pobox.com>
12534
12535         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12536         implementation
12537
12538 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12539
12540         * dbus/dbus-connection.c:
12541         (dbus_connection_send_with_reply_and_block):
12542         Decrease connection->n_incoming when removing an entry
12543         from the list.
12544         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12545         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12546         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12547         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12548         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12549         (dbus_dict_get_byte_array):
12550         Handle NULL arrays and strings. Also add support for byte arrays.
12551
12552         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12553         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12554         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12555         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12556         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12557         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12558         * dbus/dbus-marshal.h:
12559         Add support for marshalling and demarshalling empty arrays and strings.
12560
12561         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12562         (dbus_message_append_string_array),
12563         (dbus_message_iter_get_boolean),
12564         (dbus_message_iter_get_boolean_array),
12565         (dbus_message_iter_get_int32_array),
12566         (dbus_message_iter_get_uint32_array),
12567         (dbus_message_iter_get_double_array),
12568         (dbus_message_iter_get_byte_array),
12569         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12570         (check_message_handling):
12571         Add support for getting empty arrays and dicts.
12572
12573         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12574         Don't do any validation at all for now, that's better than just checking
12575         for ASCII.
12576
12577         * test/data/valid-messages/emptiness.message:
12578         New test message with lots of empty arrays.
12579
12580 2003-03-16  Havoc Pennington  <hp@pobox.com>
12581
12582         * dbus/dbus-connection.c
12583         (_dbus_connection_queue_received_message_link): new function that
12584         can't fail due to OOM
12585
12586         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12587         new function pops a message together with a list link
12588         containing it.
12589
12590         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12591         message queuing functions to avoid needing to alloc memory
12592
12593 2003-03-16  Havoc Pennington  <hp@pobox.com>
12594
12595         Oops - test code was only testing failure of around 30 of the
12596         mallocs in the test path, but it turns out there are 500+
12597         mallocs. I believe this was due to misguided linking setup such
12598         that there was one copy of dbus_malloc etc. in the daemon and one
12599         in the shared lib, and only daemon mallocs were tested. In any
12600         case, the test case now tests all 500+ mallocs, and doesn't pass
12601         yet, though there are lots of fixes in this patch.
12602
12603         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12604         this so that it doesn't need to allocate memory, since it
12605         has no way of indicating failure due to OOM (and would be
12606         annoying if it did).
12607
12608         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12609
12610         * bus/Makefile.am: rearrange to create two self-contained
12611         libraries, to avoid having libraries with overlapping symbols.
12612         that was resulting in weirdness, e.g. I'm pretty sure there
12613         were two copies of global static variables.
12614
12615         * dbus/dbus-internals.c: move the malloc debug stuff to
12616         dbus-memory.c
12617
12618         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12619         empty.
12620
12621         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12622
12623         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12624         on failure.
12625
12626         * bus/dispatch.c (bus_dispatch_add_connection): free
12627         message_handler_slot when no longer using it, so
12628         memory leak checkers are happy for the test suite.
12629
12630         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12631
12632         * bus/bus.c (new_connection_callback): disconnect in here if
12633         bus_connections_setup_connection fails.
12634
12635         * bus/connection.c (bus_connections_unref): fix to free the
12636         connections
12637         (bus_connections_setup_connection): if this fails, don't
12638         disconnect the connection, just be sure there are no side
12639         effects.
12640
12641         * dbus/dbus-string.c (undo_alignment): unbreak this
12642
12643         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12644         leaking
12645         (_dbus_auth_new): fix the order in which we free strings
12646         on OOM failure
12647
12648         * bus/connection.c (bus_connection_disconnected): fix to
12649         not send ServiceDeleted multiple times in case of memory
12650         allocation failure
12651
12652         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12653         get the base service name
12654         (dbus_bus_register_client): don't return base service name,
12655         instead store it on the DBusConnection and have an accessor
12656         function for it.
12657         (dbus_bus_register_client): rename dbus_bus_register()
12658
12659         * bus/dispatch.c (check_hello_message): verify that other
12660         connections on the bus also got the correct results, not
12661         just the one sending hello
12662
12663 2003-03-15  Havoc Pennington  <hp@pobox.com>
12664
12665         Make it pass the Hello handling test including all OOM codepaths.
12666         Now to do other messages...
12667
12668         * bus/services.c (bus_service_remove_owner): fix crash when
12669         removing owner from an empty list of owners
12670         (bus_registry_ensure): don't leave service in the list of
12671         a connection's owned services if we fail to put the service
12672         in the hash table.
12673
12674         * bus/connection.c (bus_connection_preallocate_oom_error): set
12675         error flag on the OOM error.
12676
12677         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12678         handle _dbus_transport_set_connection failure
12679
12680         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12681         to create watches up front and simply enable/disable them as
12682         needed.
12683         (unix_connection_set): this can now fail on OOM
12684
12685         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12686         of enabling/disabling a watch or timeout.
12687
12688         * bus/loop.c (bus_loop_iterate): don't touch disabled
12689         watches/timeouts
12690
12691         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12692
12693 2003-03-15  Havoc Pennington  <hp@pobox.com>
12694
12695         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12696         write useful test code, after all that futzing around ;-)
12697
12698         Test does not yet pass because we can't handle OOM in
12699         _dbus_transport_messages_pending (basically,
12700         dbus_connection_preallocate_send() does not prealloc the write
12701         watch). To fix this, I think we need to add new stuff to
12702         set_watch_functions, namely a SetEnabled function so we can alloc
12703         the watch earlier, then enable it later.
12704
12705         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12706         dbus-memory.c to the convenience lib
12707
12708         * bus/test.c: rename some static functions to keep them clearly
12709         distinct from stuff in connection.c. Handle client disconnection.
12710
12711 2003-03-14  Havoc Pennington  <hp@pobox.com>
12712
12713         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12714         transport, tests more of the real codepath. Set up clients
12715         with bus_setup_debug_client.
12716
12717         * bus/test.c (bus_setup_debug_client): function to set up debug
12718         "clients" on the main loop
12719
12720         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12721         support
12722
12723         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12724         server type
12725
12726         * dbus/dbus-server-debug.c: support a debug server based on pipes
12727
12728         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12729         (_dbus_close): new function
12730
12731         * configure.in: check for socketpair
12732
12733 2003-03-14  Havoc Pennington  <hp@redhat.com>
12734
12735         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12736         cheesy hack
12737
12738         * dbus/dbus-transport-debug.c: rework this a good bit to be
12739         less complicated. hopefully still works.
12740
12741         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12742         manually
12743
12744         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12745         after running it
12746
12747         * dbus/dbus-message.c (dbus_message_copy): rename from
12748         dbus_message_new_from_message, fix it up to copy
12749         all the message fields, add test case
12750
12751         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12752         not quite passing yet
12753
12754 2003-03-14  Havoc Pennington  <hp@pobox.com>
12755
12756         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12757         until no work remains" in test code. (the large diff here
12758         is just code movement, no actual changes)
12759
12760         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12761         1, no point waiting around for test code.
12762         (_dbus_server_debug_accept_transport): unref the timeout
12763         after adding it (right?)
12764
12765         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12766
12767 2003-03-13  Havoc Pennington  <hp@redhat.com>
12768
12769         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12770         out of memory
12771
12772         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12773         of memory
12774
12775         * dbus/dbus-connection.h: Make AddWatchFunction and
12776         AddTimeoutFunction return a bool so they can fail on out-of-memory
12777
12778         * bus/bus.c (bus_context_new): set up timeout handlers
12779
12780         * bus/connection.c (bus_connections_setup_connection): set up
12781         timeout handlers
12782
12783         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12784         can fail
12785
12786         * bus/bus.c (bus_context_new): adapt to changes
12787
12788         * bus/connection.c: adapt to changes
12789
12790         * test/watch.c: adapt to DBusWatch changes
12791
12792         * bus/dispatch.c (bus_dispatch_test): started adding this but
12793         didn't finish
12794
12795 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12796
12797         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12798
12799 2003-03-13  Havoc Pennington  <hp@pobox.com>
12800
12801         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12802         set up a test framework as for the library
12803
12804 2003-03-12  Havoc Pennington  <hp@pobox.com>
12805
12806         Throughout: purge global variables, introduce BusActivation,
12807         BusConnections, BusRegistry, etc. objects instead.
12808
12809         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12810         message bus object
12811
12812         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12813         going to redo this a bit differently I think
12814
12815 2003-03-12  Havoc Pennington  <hp@redhat.com>
12816
12817         Mega-patch that gets the message bus daemon initially handling
12818         out-of-memory. Work still needed. Also lots of random
12819         moving stuff to DBusError instead of ResultCode.
12820
12821         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12822
12823         * dbus/dbus-connection.c
12824         (dbus_connection_send_with_reply_and_block): use DBusError
12825
12826         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12827         DBusResultCode
12828
12829         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12830         code here, as the only failure possible is OOM.
12831
12832         * bus/connection.c (bus_connection_disconnect):
12833         rename bus_connection_disconnected as it's a notification only
12834
12835         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12836         "name" on get_args failure, should be done by get_args;
12837         don't disconnect client for bad args, just return an error.
12838         (bus_driver_handle_service_exists): ditto
12839
12840         * bus/services.c (bus_services_list): NULL-terminate returned array
12841
12842         * bus/driver.c (bus_driver_send_service_lost)
12843         (bus_driver_send_service_acquired): send messages from driver to a
12844         specific client to the client's unique name, not to the broadcast
12845         service.
12846
12847         * dbus/dbus-message.c (decode_header_data): reject messages that
12848         contain no name field
12849         (_dbus_message_get_client_serial): rename to
12850         dbus_message_get_serial and make public
12851         (_dbus_message_set_serial): rename from set_client_serial
12852         (_dbus_message_set_reply_serial): make public
12853         (_dbus_message_get_reply_serial): make public
12854
12855         * bus/connection.c (bus_connection_foreach): allow stopping
12856         iteration by returning FALSE from foreach function.
12857
12858         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12859         (dbus_connection_free_preallocated_send)
12860         (dbus_connection_preallocate_send): new API for sending a message
12861         without possibility of malloc failure.
12862         (dbus_connection_send_message): rename to just
12863         dbus_connection_send (and same for whole function family)
12864
12865         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12866
12867         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12868
12869         * bus/activation.c: handle/return errors
12870
12871         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12872
12873         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12874         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12875         (_dbus_result_from_errno): move to this file
12876
12877 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12878
12879         * dbus/dbus-marshal.c:
12880         (_dbus_marshal_set_string):
12881         Take a length argument so we can marshal the correct string
12882         length.
12883
12884         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12885         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12886         (_dbus_marshal_test):
12887         * dbus/dbus-marshal.h:
12888         Add support for marshalling and demarshalling dicts.
12889
12890         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12891         Add support for TYPE DICT.
12892
12893         * dbus/dbus-message.c: (set_string_field):
12894         Adjust header padding.
12895
12896         (dbus_message_append_args_valist), (dbus_message_append_dict),
12897         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12898         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12899         (check_message_handling), (check_have_valid_message):
12900         * dbus/dbus-message.h:
12901         Add functions for setting and getting dicts.
12902
12903         * dbus/dbus-protocol.h:
12904         Add DBUS_TYPE_DICT.
12905
12906         * dbus/dbus.h:
12907         Add dbus-dict.h
12908
12909         * doc/dbus-specification.sgml:
12910         Add information about how dicts are marshalled.
12911
12912         * test/data/invalid-messages/dict-with-nil-value.message:
12913         * test/data/invalid-messages/too-short-dict.message:
12914         * test/data/valid-messages/dict-simple.message:
12915         * test/data/valid-messages/dict.message:
12916         Add sample messages containing dicts.
12917
12918 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12919
12920         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12921
12922 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12923
12924         * dbus/Makefile.am:
12925         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12926         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12927         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12928         (dbus_dict_set_double), (dbus_dict_set_string),
12929         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12930         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12931         (dbus_dict_set_string_array), (_dbus_dict_test):
12932         * dbus/dbus-dict.h:
12933         Fix according to comments from Havoc.
12934
12935 2003-03-06  Michael Meeks  <michael@server.home>
12936
12937         * configure.in: if we don't have kde-config, disable have_qt.
12938
12939 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12940
12941         * dbus/Makefile.am:
12942         Add dbus-dict.[ch]
12943
12944         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12945         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12946         (dbus_dict_remove), (dbus_dict_get_value_type),
12947         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12948         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12949         (dbus_dict_put_double), (dbus_dict_put_string),
12950         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12951         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12952         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12953         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12954         (dbus_dict_get_double), (dbus_dict_get_string),
12955         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12956         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12957         (dbus_dict_get_string_array), (_dbus_dict_test):
12958         * dbus/dbus-dict.h:
12959         Add DBusDict implementation
12960
12961         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12962         * dbus/dbus-test.h:
12963         Add _dbus_dict_test
12964
12965 2003-03-04  Havoc Pennington  <hp@pobox.com>
12966
12967         * test/data/auth/*: adapt to changes
12968
12969         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12970         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12971         userid
12972
12973         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12974         more stuff from being in a context name, to make the protocol
12975         simpler to deal with
12976
12977         * dbus/dbus-errors.c (dbus_error_has_name): new function
12978         (dbus_error_is_set): new function
12979
12980         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12981         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12982
12983         * dbus/dbus-connection.c (dbus_connection_flush): also read
12984         messages during a flush operation
12985
12986         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12987
12988 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12989
12990         * configure.in: Check for gethostbyname on Solaris.
12991
12992         * dbus/dbus-transport.c: (_dbus_transport_open):
12993         Remove duplicate "tcp" entry.
12994
12995         * doc/dbus-specification.sgml:
12996         Clarify some things.
12997
12998 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12999
13000         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13001         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13002         (_dbus_keyring_test):
13003         * dbus/dbus-md5.c: (_dbus_md5_compute):
13004         * dbus/dbus-sha.c: (_dbus_sha_compute):
13005         Plug memory leaks.
13006
13007 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13008
13009         * README: Add some things.
13010
13011 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13012
13013         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13014         after case DBUS_TYPE_BOOELAN.
13015
13016 2003-03-02  Havoc Pennington  <hp@pobox.com>
13017
13018         * test/break-loader.c (randomly_set_extreme_ints): add test that
13019         sets really huge and small integers
13020
13021         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13022         that length of boolean array fits in the string, and that
13023         string has room for boolean value in single-bool case.
13024
13025         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13026         optional value to "ALIGN" command which is what to fill the
13027         alignment with.
13028
13029         * test/data/valid-messages/no-padding.message: add regression
13030         test for the message padding problem
13031
13032 2003-03-02  Havoc Pennington  <hp@pobox.com>
13033
13034         * dbus/dbus-message.c (decode_header_data): fix to always init
13035         message_padding, from Benjamin Dauvergne
13036
13037 2003-03-02  Havoc Pennington  <hp@pobox.com>
13038
13039         * configure.in: 0.5
13040
13041         * NEWS: Update.
13042
13043 2003-03-01  Joe Shaw  <joe@assbarn.com>
13044
13045         * configure.in: Check for "struct cmsgcred" and try to access its
13046         members for BSD-like unices.
13047
13048         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13049         _dbus_read_credentials_unix_socket().
13050         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13051         read() for reading the credential byte off the unix socket.  Use
13052         struct cmsgcred on systems that support it.
13053
13054 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13055
13056         * glib/Makefile.am:
13057         * configure.in:
13058         Make gthreads-2.0 dependency optional. Don't build thread test if
13059         its not found.
13060
13061 2003-02-27  Havoc Pennington  <hp@pobox.com>
13062
13063         * dbus/dbus-connection.c
13064         (dbus_connection_send_message_with_reply_and_block): fix doh!
13065         doh! doh! bug that resulted in never removing a reply from the
13066         queue, no wonder we called get_reply_serial so much ;-)
13067
13068         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13069         and client serial instead of demarshaling them every time
13070
13071 2003-02-27  Havoc Pennington  <hp@pobox.com>
13072
13073         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13074         more inlined, using dbus-string-private.h, speeds things up
13075         substantially
13076
13077         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13078         when freeing the string
13079         (_dbus_string_steal_data): fix for align offset
13080         (undo_alignment): new function
13081
13082 2003-02-26  Havoc Pennington  <hp@redhat.com>
13083
13084         All kinds of audit fixes from Owen, plus initial attempt to
13085         handle unaligned memory returned from malloc.
13086
13087         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13088         leave room for align_offset and nul byte
13089         (fixup_alignment): function to track an align_offset and
13090         ensure real->str is aligned
13091         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13092         to allow a nul byte plus align offset
13093         (_dbus_string_lock): fix overflow issue
13094         (_dbus_string_init_const_len): add assertions on sanity of len,
13095         assign allocated to be ALLOCATION_PADDING larger than len
13096         (set_length): fixup the overflow handling
13097         (_dbus_string_get_data_len): fix overflow in assertion
13098         (open_gap): detect overflow in size of gap to be opened
13099         (_dbus_string_lengthen): add overflow check
13100         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13101         (_dbus_string_append): add overflow check
13102         (_dbus_string_append_unichar): overflow
13103         (_dbus_string_delete): fix overflow in assertion
13104         (_dbus_string_copy_len): overflow in assertion
13105         (_dbus_string_replace_len): overflows in assertions
13106         (_dbus_string_find): change to implement in terms of
13107         _dbus_string_find_to
13108         (_dbus_string_find_to): assorted fixage
13109         (_dbus_string_equal_c_str): assert c_str != NULL,
13110         fix logic so the function works
13111         (_dbus_string_ends_with_c_str): fix overflow thingy
13112         (_dbus_string_base64_encode): overflow fix
13113         (_dbus_string_validate_ascii): overflow
13114         (_dbus_string_validate_nul): overflow
13115
13116 2003-02-26  Havoc Pennington  <hp@redhat.com>
13117
13118         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13119
13120 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13121
13122         * configure.in:
13123         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13124
13125         * dbus/dbus-connection.c:
13126         * dbus/dbus-connection.h:
13127         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13128         Add dbus_connection_set_wakeup_main_function and use it when queueing
13129         incoming and outgoing messages.
13130
13131
13132         * dbus/dbus-dataslot.c:
13133         Threadsafe usage of DBusDataSlotAllocator
13134
13135         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13136         dbus_new can fail.
13137
13138         * dbus/dbus-server-unix.c:
13139         Add todo comment
13140
13141         * glib/dbus-gmain.c:
13142         Implement the new wakeup functions for glib.
13143
13144         * glib/Makefile.am:
13145         * glib/test-thread-client.c:
13146         * glib/test-thread-server.c:
13147         * glib/test-thread.h:
13148         Initial cut at some thread test code. Not really done yet.
13149
13150 2003-02-26  Havoc Pennington  <hp@pobox.com>
13151
13152         * dbus/dbus-connection.c
13153         (dbus_connection_send_message_with_reply_and_block): fix crash
13154         where we ref'd the outgoing message instead of the returned reply
13155
13156         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13157         at the end of this function, so if we didn't need to read for
13158         authentication, we reinstall it for receiving messages
13159
13160         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13161         a NULL sender for peer-to-peer case
13162
13163         * dbus/dbus-transport-unix.c (check_read_watch): handle
13164         !authenticated case correctly
13165
13166         * glib/dbus-gmain.c: add support for DBusServer
13167
13168         * dbus/dbus-server.c: add data slot support
13169
13170         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13171         return values and handle errors
13172
13173         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13174         DBusConnection
13175
13176         * Doxyfile.in (INPUT): add glib subdir
13177
13178         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13179         setup_with_g_main instead of hookup_with_g_main; write docs
13180
13181 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13182
13183         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13184         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13185         * dbus/dbus-message.c: (dbus_message_append_boolean),
13186         (dbus_message_append_boolean_array),
13187         (dbus_message_get_args_valist), (_dbus_message_test):
13188         * dbus/dbus-message.h:
13189         * doc/dbus-specification.sgml:
13190         Various fixes as pointed out by Havoc.
13191
13192         * test/data/invalid-messages/bad-boolean-array.message:
13193         * test/data/invalid-messages/bad-boolean.message:
13194         Add invalid boolean value test cases.
13195
13196 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13197
13198         * dbus/dbus-internals.c: (_dbus_type_to_string):
13199         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13200         (_dbus_marshal_validate_arg):
13201         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13202         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13203         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13204         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13205         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13206         (dbus_message_iter_get_double),
13207         (dbus_message_iter_get_boolean_array), (message_iter_test):
13208         * dbus/dbus-message.h:
13209         * dbus/dbus-protocol.h:
13210         * doc/dbus-specification.sgml:
13211         * test/data/valid-messages/lots-of-arguments.message:
13212         Add support for boolean and boolean array types.
13213
13214 2003-02-23  Havoc Pennington  <hp@pobox.com>
13215
13216         * dbus/dbus-keyring.c: finish most of this implementation and
13217         simple unit test
13218
13219         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13220         these barf if the error isn't cleared to NULL
13221
13222         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13223         (_dbus_create_directory): new function
13224
13225         * dbus/dbus-errors.c (dbus_set_error): fix warning
13226
13227         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13228         (_dbus_string_hex_decode): new function
13229         (test_hex_roundtrip): test code
13230
13231         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13232
13233         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13234
13235         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13236         the save-to-temp/rename trick to atomically write the new file
13237         (_dbus_string_parse_uint): new function
13238
13239 2003-02-22  Havoc Pennington  <hp@pobox.com>
13240
13241         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13242
13243 2003-02-22  Havoc Pennington  <hp@pobox.com>
13244
13245         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13246         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13247
13248         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13249
13250         * dbus/test/data/sha-1: add US government test suite for SHA-1
13251
13252 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13253
13254         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13255         Make string arrays NULL-terminated.
13256
13257         * dbus/dbus-memory.c: (dbus_free_string_array):
13258         * dbus/dbus-memory.h:
13259         New function for freeing NULL-terminated string arrays.
13260
13261         * dbus/dbus-message-builder.c: (append_quoted_string),
13262         (_dbus_message_data_load):
13263         Add support for array types.
13264
13265         * dbus/dbus-message.c: (check_message_handling):
13266         Add more types as test cases.
13267
13268         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13269         (_dbus_string_parse_double):
13270         Add the start offset to the end offset.
13271
13272         * test/data/valid-messages/lots-of-arguments.message:
13273         New test message with lots of arguments.
13274
13275 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13276
13277         * dbus/dbus-message.c: (dbus_message_append_nil),
13278         (dbus_message_append_int32), (dbus_message_append_uint32),
13279         (dbus_message_append_double), (dbus_message_append_string),
13280         (dbus_message_append_int32_array),
13281         (dbus_message_append_uint32_array),
13282         (dbus_message_append_double_array),
13283         (dbus_message_append_byte_array),
13284         (dbus_message_append_string_array):
13285         Fix all out-of-memory handling in these functions.
13286
13287 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13288
13289         * dbus/dbus-message.c: (dbus_message_append_nil):
13290         Fix a silly.
13291
13292 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13293
13294         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13295         (dbus_message_append_nil), (dbus_message_append_int32_array),
13296         (dbus_message_append_uint32_array),
13297         (dbus_message_append_double_array),
13298         (dbus_message_append_byte_array),
13299         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13300         (dbus_message_iter_get_int32_array),
13301         (dbus_message_iter_get_uint32_array),
13302         (dbus_message_iter_get_double_array),
13303         (dbus_message_iter_get_byte_array),
13304         (dbus_message_iter_get_string_array):
13305
13306         * dbus/dbus-message.h:
13307         Add functions for appending and getting arrays.
13308
13309 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13310
13311         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13312         element size at least 8 bytes, fixes mempool tests on
13313         64-bit machines.
13314
13315 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13316
13317         * dbus/dbus-transport-unix.c (unix_do_iteration):
13318         Unlock the connection mutex during a blocking select call.
13319         Add todo about how we need a way to wake up the select.
13320
13321         * dbus/dbus-connection-internal.h:
13322         * dbus/dbus-connection.c:
13323         Add _dbus_connection_lock and _dbus_connection_unlock.
13324
13325 2003-02-19  Havoc Pennington  <hp@pobox.com>
13326
13327         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13328         Doxyfile.in, not Doxyfile
13329
13330         * dbus/dbus-keyring.c: do some hacking on this
13331
13332         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13333
13334         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13335         dbus_error_init
13336         (dbus_set_error): remove dbus_error_init, check for message ==
13337         NULL *before* we sprintf into it, and add @todo about including
13338         system headers in this file
13339
13340         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13341
13342         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13343
13344         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13345         get various bits of user information based on either username
13346         or user ID
13347         (_dbus_homedir_from_username): new function
13348
13349 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13350
13351         * configure.in:
13352         Add check for nonposix getpwnam_r
13353
13354         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13355         Align the pool element size to a sizeof (void *) boundary.
13356
13357         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13358         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13359         General Solaris fixes.
13360
13361         * test/data/valid-messages/simplest-manual.message:
13362         Explicitly state that we want little-endian packing.
13363
13364 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13365
13366         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13367
13368         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13369         Added to create a transport connecting using a tcp/ip socket.
13370
13371         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13372         to a tcp socket at given host and port.
13373         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13374         hostname and port.
13375
13376         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13377
13378         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13379         Added to create a server listening on a TCP/IP socket.
13380
13381 2003-02-19  Havoc Pennington  <hp@pobox.com>
13382
13383         Throughout: mop up all the Doxygen warnings and undocumented
13384         stuff.
13385
13386         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13387         to search any paths.
13388
13389         * dbus/dbus-threads.c: move global mutex initializers to
13390         dbus-internals.h, multiple prototypes was confusing doxygen
13391         besides being kind of ugly
13392
13393         * Doxyfile (PREDEFINED): have Doxygen define
13394         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13395         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13396         (do not abuse the feature! it's for stuff like the autogenerated
13397         macros in dbus-md5.c, not just for things you don't feel like
13398         documenting...)
13399
13400 2003-02-18  Havoc Pennington  <hp@pobox.com>
13401
13402         * dbus/dbus-string.c (_dbus_string_zero): new function
13403
13404         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13405         wrap it in some dbus-friendly API
13406
13407         * dbus/dbus-types.h: add 16-bit types
13408
13409 2003-02-18  Joe Shaw  <joe@assbarn.com>
13410
13411         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13412         credentials from our currently running process.
13413         (get_word): Fix a buglet where we were copying the entire length
13414         instead of relative to our position.
13415
13416         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13417         keys on the stack... it's 640k of data.
13418
13419         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13420         read the credentials byte off the socket, even if we don't have
13421         SO_PEERCRED.
13422         (_dbus_poll): Implement poll() using select() for systems which
13423         don't have it.
13424
13425         * glib/test-dbus-glib.c (main): Print out an error if no
13426         parameters are given.
13427
13428         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13429         can fallback to a secondary auth mechanism if the first fails.
13430
13431 2003-02-18  Havoc Pennington  <hp@pobox.com>
13432
13433         * AUTHORS: add Alex
13434
13435 2003-02-17  Havoc Pennington  <hp@pobox.com>
13436
13437         * doc/dbus-specification.sgml: lots of cosmetic
13438         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13439         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13440         s/server/bus/ (except in authentication section). Add a section
13441         "Message Bus Message Routing"
13442
13443 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13444
13445         Release 0.4
13446
13447         * NEWS: Update
13448
13449 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13450
13451         * doc/dbus-specification.sgml:
13452         Specification updates.
13453
13454 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13455
13456         * bus/activation.c: (bus_activation_init), (child_setup),
13457         (bus_activation_activate_service):
13458         * bus/activation.h:
13459         * bus/main.c: (main):
13460         Set DBUS_ADDRESS environment variable.
13461
13462         * dbus/dbus-errors.c: (dbus_set_error):
13463         Don't use va_copy since that's a C99 feature.
13464
13465         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13466         (_dbus_spawn_async):
13467         * dbus/dbus-sysdeps.h:
13468         Add child_setup_func to _dbus_spawn_async.
13469
13470         * doc/dbus-specification.sgml:
13471         Update specification.
13472
13473         * test/spawn-test.c: (setup_func), (main):
13474         Fix test.
13475
13476 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13477
13478         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13479         Added todo.
13480
13481 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13482
13483         * doc/.cvsignore:
13484         * doc/Makefile.am:
13485         * doc/dbus-test-plan.sgml:
13486         Add test plan document.
13487
13488         * test/Makefile.am:
13489         Fix distcheck.
13490
13491 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13492
13493         * dbus/dbus-message.c: (decode_header_data),
13494         (_dbus_message_loader_return_buffer):
13495         Set the header padding amount when loading a message.
13496
13497 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13498
13499         * bus/dispatch.c: (send_one_message):
13500         Only send broadcast messages to registered connections.
13501
13502         * dbus/dbus-message.c: (dbus_message_name_is):
13503         * dbus/dbus-message.h:
13504         New convenience function.
13505
13506         * dbus/dbus-transport-debug.c: (do_reading):
13507         Only dispatch one message per run.
13508
13509         * test/Makefile.am:
13510         * test/bus-test.c: (new_connection_callback), (die),
13511         (test_hello_client1_handler), (test_hello_client2_handler),
13512         (test_hello_replies), (main):
13513
13514         * test/bus-test-loop.[ch]:
13515         Add these.
13516
13517 2003-02-16  Havoc Pennington  <hp@pobox.com>
13518
13519         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13520         backward conditional
13521
13522 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13523
13524         * dbus/dbus-connection.c:
13525         Implement sent_message_with_reply. (with_reply_and block is still
13526         busted).
13527         Made dispatch_message not lose message if OOM.
13528
13529         * dbus/dbus-errors.h:
13530         Add NoReply error (for reply timeouts).
13531
13532 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13533
13534         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13535         Actually free keys and values when destroying hashtable.
13536
13537 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13538
13539         * dbus/dbus-auth.c: (client_try_next_mechanism):
13540         Plug a leak.
13541
13542         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13543         Return TRUE if there's no thread implementation around.
13544
13545         * glib/dbus-gmain.c: (free_source),
13546         (dbus_connection_hookup_with_g_main):
13547         Make sure to remove the GSource when the connection is finalized.
13548
13549 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13550
13551         * bus/dispatch.c: (bus_dispatch_message_handler):
13552         * dbus/dbus-errors.h:
13553         Return an error if someone tries to send a message to a service
13554         that doesn't exist.
13555
13556 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13557
13558         * bus/activation.c: (load_directory), (bus_activation_init),
13559         (bus_activation_activate_service):
13560         * bus/activation.h:
13561         * bus/driver.c:
13562         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13563         More work on the activation handling.
13564
13565         * dbus/dbus-errors.h:
13566         Add some error messages
13567
13568         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13569         * dbus/dbus-message.h:
13570         New function that creates an error message.
13571
13572         * dbus/dbus-protocol.h:
13573         Add ACTIVATE_SERVER message.
13574
13575         * dbus/dbus-server-unix.c: (unix_handle_watch),
13576         (_dbus_server_new_for_domain_socket):
13577         Call _dbus_fd_set_close_on_exec.
13578
13579         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13580         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13581         (_dbus_fd_set_close_on_exec):
13582         * dbus/dbus-sysdeps.h:
13583         Add _dbus_fd_set_close_on exec function. Also add function that checks
13584         that all open fds are set to close-on-exec and warns otherwise.
13585
13586         * dbus/dbus-transport-unix.c:
13587         (_dbus_transport_new_for_domain_socket):
13588         Call _dbus_fd_set_close_on_exec.
13589
13590 2003-02-16  Havoc Pennington  <hp@pobox.com>
13591
13592         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13593         allow people to avoid setting SIGPIPE to SIG_IGN
13594         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13595         we've been asked not to
13596
13597 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13598
13599         * dbus/dbus-list.c: (_dbus_list_append_link),
13600         (_dbus_list_prepend_link):
13601         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13602         (dbus_realloc):
13603         Warning fixes.
13604
13605 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13606
13607         * bus/Makefile.am:
13608         * bus/activation.c: (bus_activation_entry_free),
13609         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13610         * bus/activation.h:
13611         * bus/main.c: (main):
13612         Add simple activation support, doesn't work yet though.
13613
13614 2003-02-15   Zack Rusin  <zack@kde.org>
13615
13616         * qt/dbus-qthread.cpp:  small casting fix
13617
13618 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13619
13620         * dbus/dbus-errors.c: (dbus_set_error):
13621         * dbus/dbus-errors.h:
13622         Add a few errors and make dbus_set_error void.
13623
13624         * dbus/dbus-sysdeps.c:
13625         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13626         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13627         * dbus/dbus-sysdeps.h:
13628         Add _dbus_spawn_async.
13629
13630         * test/spawn-test.c: (main):
13631         Test for _dbus_spawn_async.
13632
13633 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13634
13635         * dbus/dbus-internals.h:
13636         Fix build without tests.
13637
13638         * dbus/dbus-list.c: (alloc_link):
13639         Fix a segfault when a malloc fails.
13640
13641         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13642         (dbus_malloc0), (dbus_realloc):
13643         Add support for malloc debugging.
13644
13645 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13646
13647         * dbus/dbus-threads.c:
13648         * dbus/dbus-threads.h:
13649         Add condvars. Remove static mutext from API.
13650         Implement static mutexes by initializing them from threads_init.
13651
13652         * glib/dbus-gthread.c:
13653         * qt/dbus-qthread.cpp:
13654         Update with the thread api changes.
13655
13656
13657         * dbus/dbus-list.c:
13658         * dbus/dbus-list.h:
13659         Turn StaticMutex into normal mutex + init function.
13660         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13661         _dbus_list_append_link, _dbus_list_prepend_link
13662
13663
13664         * dbus/dbus-sysdeps.c:
13665         * dbus/dbus-sysdeps.h:
13666         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13667         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13668
13669         * dbus/dbus-protocol.h:
13670         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13671
13672         * dbus/dbus-message.c:
13673         Make ref/unref atomic.
13674         Fix some docs.
13675
13676         * dbus/dbus-connection-internal.h:
13677         * dbus/dbus-connection.c:
13678         * dbus/dbus-connection.h:
13679         Make threadsafe.
13680         Change _peek to _borrow,_return & _steal_borrowed.
13681         Change disconnect callback to event.
13682         Make dbus_connection_dispatch_messages reentrant.
13683
13684         * dbus/dbus-transport.c:
13685         Don't ref the connection on calls to the transport
13686         implementation.
13687
13688         * dbus/dbus-message-handler.c:
13689         Make threadsafe.
13690
13691         * glib/dbus-gmain.c:
13692         Don't use peek_message anymore
13693
13694         * test/Makefile.am:
13695         * test/debug-thread.c:
13696         * test/debug-thread.h:
13697         Simple thread implementation that asserts() on deadlocks in
13698         single-threaded code.
13699
13700         * test/bus-test.c:
13701         (main) Call debug_threads_init.
13702
13703         * test/watch.c:
13704         Use disconnect message instead of disconnect callback.
13705
13706         * bus/connection.c:
13707         * bus/connection.h:
13708         Don't call dbus_connection_set_disconnect_function. Instead export
13709         bus_connection_disconnect.
13710
13711         * bus/dispatch.c:
13712         Call bus_connection_disconnect when we get a disconnected message.
13713
13714 2003-02-15  Havoc Pennington  <hp@pobox.com>
13715
13716         * dbus/dbus-message.c (dbus_message_new): fool around with the
13717         docs
13718
13719 2003-02-14  Havoc Pennington  <hp@pobox.com>
13720
13721         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13722
13723         * dbus/dbus-memory.c: fail if the debug functions indicate we
13724         should
13725
13726         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13727         (_dbus_decrement_fail_alloc_counter): debug functions to
13728         simulate memory allocation failures
13729
13730 2003-02-14  Havoc Pennington  <hp@pobox.com>
13731
13732         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13733         to DBusError
13734
13735 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13736
13737         * bus/driver.c: (bus_driver_handle_hello):
13738         * bus/driver.h:
13739         * bus/services.c: (bus_service_lookup):
13740         Reorder message sending so we get a more sane order.
13741
13742         * test/bus-test.c: (message_handler):
13743         Fix tyop.
13744
13745 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13746
13747         * bus/driver.c: (bus_driver_send_service_deleted),
13748         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13749         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13750         (bus_driver_send_welcome_message),
13751         (bus_driver_handle_list_services),
13752         (bus_driver_handle_acquire_service),
13753         (bus_driver_handle_service_exists):
13754         * dbus/dbus-bus.c: (dbus_bus_register_client),
13755         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13756         * dbus/dbus-errors.c: (dbus_result_to_string):
13757         * dbus/dbus-errors.h:
13758         * dbus/dbus-message.c: (dbus_message_append_args),
13759         (dbus_message_append_args_valist), (dbus_message_get_args),
13760         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13761         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13762         (dbus_message_iter_get_byte_array),
13763         (dbus_message_iter_get_string_array), (message_iter_test),
13764         (check_message_handling), (_dbus_message_test):
13765         * dbus/dbus-message.h:
13766         * test/bus-test.c: (main):
13767         Change fields to arguments in messages, so that they won't be
13768         confused with header fields.
13769
13770         * glib/test-dbus-glib.c: (main):
13771         Remove append_fields from hello message.
13772
13773 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13774
13775         * dbus/dbus-errors.c:
13776         * dbus/dbus-message.c:
13777         * dbus/dbus-string.c:
13778         Documentation fixes.
13779
13780 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13781
13782         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13783         (remove_timeout):
13784         Implement support for timeouts in dbus-glib.
13785
13786 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13787
13788         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13789         * dbus/dbus-message.c: (process_test_subdir):
13790         * test/break-loader.c: (find_breaks_based_on):
13791         Plug some memory leaks.
13792
13793 2003-02-13  Richard Hult  <rhult@codefactory.se>
13794
13795         * bus/main.c: Fix build.
13796
13797         * dbus/dbus-errors.h:
13798         * dbus/dbus-errors.c: Fix copyright for Anders.
13799
13800 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13801
13802         * bus/Makefile.am:
13803         Add utils.[ch]
13804
13805         * bus/connection.c: (bus_connection_foreach):
13806         Fix a warning.
13807
13808         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13809         (unescape_string), (new_section), (parse_section_start),
13810         (parse_key_value), (report_error), (bus_desktop_file_load),
13811         (bus_desktop_file_get_string):
13812         * bus/desktop-file.h:
13813         Use DBusError for error reporting.
13814
13815         * bus/dispatch.c: (send_one_message),
13816         (bus_dispatch_message_handler):
13817         * bus/driver.c: (bus_driver_send_service_deleted),
13818         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13819         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13820         (bus_driver_send_welcome_message),
13821         (bus_driver_handle_list_services),
13822         (bus_driver_handle_acquire_service),
13823         (bus_driver_handle_service_exists):
13824         * bus/loop.c: (bus_loop_run):
13825         * bus/main.c:
13826         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13827
13828         * bus/utils.c: (bus_wait_for_memory):
13829         * bus/utils.h:
13830         New files with general utility functions.
13831
13832         * dbus/dbus-internals.h:
13833         Remove _DBUS_HANDLE_OOM.
13834
13835 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13836
13837         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13838         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13839         * dbus/dbus-errors.h:
13840         Add DBusError structure.
13841
13842 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13843
13844         * test/data/valid-messages/standard-acquire-service.message:
13845         * test/data/valid-messages/standard-hello.message:
13846         * test/data/valid-messages/standard-list-services.message:
13847         * test/data/valid-messages/standard-service-exists.message:
13848         Add some standard messages.
13849
13850 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13851
13852         * bus/driver.c: (bus_driver_send_welcome_message),
13853         (bus_driver_handle_list_services),
13854         (bus_driver_handle_acquire_service),
13855         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13856         Update for API changes in libdbus.
13857
13858         * dbus/dbus-message.c: (dbus_message_new_reply):
13859         * dbus/dbus-message.h:
13860         Remove the name argument. The spec states that replies shouldn't
13861         have a name.
13862
13863 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13864
13865         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13866         (report_error), (bus_desktop_file_load), (lookup_section),
13867         (lookup_line), (bus_desktop_file_get_raw),
13868         (bus_desktop_file_get_string):
13869         * bus/desktop-file.h:
13870         Some fixes, and new functions for getting a key value from a section.
13871
13872 2003-02-13  Havoc Pennington  <hp@pobox.com>
13873
13874         * test/data/auth/fail-after-n-attempts.auth-script: new test
13875
13876         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13877         reject the client.
13878
13879 2003-02-13  Havoc Pennington  <hp@pobox.com>
13880
13881         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13882         dbus_credentials_match were backward
13883
13884         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13885         NO_CREDENTIALS and ROOT_CREDENTIALS
13886
13887         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13888         into here. Never process more commands after we've reached an
13889         end state; store further data as unused bytes.
13890
13891         * test/data/auth/*: add more auth tests
13892
13893         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13894         command to match exact string and EXPECT_UNUSED to match unused
13895         bytes
13896
13897         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13898
13899 2003-02-12  Havoc Pennington  <hp@pobox.com>
13900
13901         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13902         \r off of popped lines
13903
13904         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13905         scripts
13906
13907         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13908         SEND, append \r\n
13909
13910 2003-02-12  Havoc Pennington  <hp@pobox.com>
13911
13912         * dbus/Makefile.am: remove break-loader from the build, since it
13913         moved.
13914
13915         * configure.in: add --enable-gcov to turn on coverage profiling
13916         flags and disable optimization
13917
13918 2003-02-10  Havoc Pennington  <hp@pobox.com>
13919
13920         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13921         initial cut at test framework for DBusAuth from laptop.
13922         Doesn't quite work yet but it compiles and I need to get
13923         it off the 266mhz laptop. ;-)
13924
13925         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13926         fix a memleak in error case
13927
13928 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13929
13930         * bus/Makefile.am:
13931         * bus/desktop-file.c:
13932         * bus/desktop-file.h:
13933         Add a desktop file parser.
13934
13935 2003-02-11  Zack Rusin  <zack@kde.org>
13936
13937         * qt/message.[h|cpp]: sample implementation
13938         of the KDE wrapper for DBusMessage
13939
13940 2003-02-09  Zack Rusin  <zack@kde.org>
13941
13942         * test/bus-test.c: make_it_compile
13943         * doc/dbus-specification.sgml: minimal semantic fix
13944
13945 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13946
13947         Release 0.3
13948
13949         * NEWS: Update
13950
13951 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13952
13953         * dbus/Makefile.am:
13954         * dbus/dbus-break-loader.c:
13955         * test/Makefile.am:
13956         * test/break-loader.c:
13957         Move dbus-break-loader to test/ and rename it to break-loader.
13958
13959 2003-02-02  Havoc Pennington  <hp@pobox.com>
13960
13961         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13962         for code to manage cookies in your home directory
13963
13964         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13965
13966         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13967         to authenticate, then disconnect the client.
13968
13969 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13970
13971         * dbus/dbus-message.c (dbus_message_append_fields):
13972         Correct docs.
13973
13974 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13975
13976         * doc/dbus-specification.sgml:
13977         Update address format section.
13978
13979 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13980
13981         * test/Makefile.am:
13982         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13983         (message_handler), (new_connection_callback), (loop_quit),
13984         (loop_run), (main):
13985         Add bus test.
13986
13987 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13988
13989         * bus/driver.c: (bus_driver_handle_service_exists):
13990         Simplify the code a bit.
13991
13992         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13993         Fix a silly.
13994
13995 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13996
13997         * bus/Makefile.am:
13998         Add libdbus-daemon.la and link to it.
13999
14000 2003-02-01  James Willcox  <jwillcox@gnome.org>
14001
14002         * bus/driver.c: (bus_driver_handle_own_service):
14003         Actually include the service reply code in the message.
14004
14005 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14006
14007         * bus/driver.c: (bus_driver_handle_service_exists):
14008         Don't unref the incoming message.
14009
14010 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14011
14012         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14013
14014 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14015
14016         * dbus/dbus-server.c: (dbus_server_listen):
14017         * dbus/dbus-transport.c: (_dbus_transport_open):
14018         ifdef out the calls to the debug transport and server.
14019
14020 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14021
14022         * dbus/dbus-watch.c (dbus_watch_get_flags):
14023         Add note in the docs that ERROR or HANGUP won't be returned
14024         and are assumed always on.
14025
14026         * glib/dbus-gmain.c (add_watch):
14027         Always add IO_ERR | IO_HUP
14028
14029         * dbus/dbus-message.h:
14030         Add semicolon after dbus_message_iter_get_string_array().
14031         Makes qt code build again
14032
14033 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14034
14035         * bus/driver.c: (create_unique_client_name),
14036         (bus_driver_handle_hello):
14037         Don't take a name, just use a numeric id to identify
14038         each client.
14039
14040         * dbus/Makefile.am:
14041         * dbus/dbus-bus.c: (dbus_bus_register_client),
14042         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14043         * dbus/dbus-bus.h:
14044         Add new convenience functions for communicating with the bus.
14045
14046         * dbus/dbus-message.h:
14047
14048         * dbus/dbus-protocol.h:
14049         Fix a typo.
14050
14051 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14052
14053         * dbus/dbus-message.c (dbus_message_append_fields):
14054         Add some more doc comments.
14055
14056 2003-02-01  Havoc Pennington  <hp@pobox.com>
14057
14058         * dbus/dbus-break-loader.c (randomly_modify_length): change
14059         a 4-byte value in the message as if it were a length
14060
14061         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14062         execute bit on saved files
14063
14064 2003-02-01  Havoc Pennington  <hp@pobox.com>
14065
14066         * dbus/dbus-break-loader.c (main): new program to find messages
14067         that break the loader.
14068
14069         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14070         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14071
14072         * dbus/dbus-string.c (_dbus_string_set_byte): new
14073
14074 2003-01-31  Havoc Pennington  <hp@pobox.com>
14075
14076         * dbus/dbus-message.c: refactor the test code to be more general,
14077         in preparation for writing a "randomly permute test cases to
14078         try to break the loader" program.
14079
14080 2003-01-31  Havoc Pennington  <hp@pobox.com>
14081
14082         * doc/dbus-specification.sgml: work on the specification
14083
14084         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14085         the protocol version of the message.
14086
14087         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14088         no longer specifies that.
14089         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14090         1/2/3/4)
14091
14092         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14093         "break" for DBUS_TYPE_NIL, remove @todo
14094
14095 2003-01-31  Havoc Pennington  <hp@pobox.com>
14096
14097         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14098         just set_is_error/get_is_error as this is a commonly-used
14099         function, and write docs.
14100
14101 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14102
14103         * dbus/dbus-address.c: (dbus_address_entry_free):
14104         Free key and value lists.
14105
14106         * dbus/dbus-internals.c: (_dbus_type_to_string):
14107         Add the types we didn't have.
14108
14109         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14110         (_dbus_marshal_validate_arg):
14111         Add NIL types.
14112
14113         * dbus/dbus-message.c: (dbus_message_set_sender):
14114         Remove todo about being able to set sender to NULL.
14115
14116         (dbus_message_set_is_error_reply),
14117         (dbus_message_get_is_error_reply):
14118         * dbus/dbus-message.h:
14119         New functions.
14120
14121         * dbus/dbus-protocol.h:
14122         Add error reply flag.
14123
14124         * test/data/valid-messages/opposite-endian.message:
14125         Add NIL type to test.
14126
14127 2003-01-31  Havoc Pennington  <hp@pobox.com>
14128
14129         * doc/dbus-specification.sgml: fully specify the header.  Add
14130         flags and major protocol version, and change header/body len to
14131         unsigned.
14132
14133         * dbus/dbus-message-builder.c (append_saved_length): append length
14134         as uint32
14135
14136         * dbus/dbus-message.c (dbus_message_create_header): change header
14137         length and body length to unsigned. Add the new fields from the
14138         spec
14139         (_dbus_message_loader_return_buffer): unsigned header/body len
14140
14141 2003-01-30  Havoc Pennington  <hp@pobox.com>
14142
14143         * dbus/dbus-auth.c: rework to use only REJECTED, no
14144         MECHANISMS
14145
14146         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14147         use REJECTED, suggested by Mark McLoughlin
14148
14149 2003-01-30  Havoc Pennington  <hp@pobox.com>
14150
14151         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14152         a better way to report errors here. e.g.  "unix address lacks
14153         path" or something. also "no such file" when the path doesn't
14154         exist, etc.
14155
14156         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14157         leaking list nodes
14158         (dbus_parse_address): add @todo about documenting address format,
14159         and allowing , and ; to be escaped
14160
14161 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14162
14163         * dbus/Makefile.am:
14164         Add dbus-address.[ch]
14165
14166         * dbus/dbus-address.c: (dbus_address_entry_free),
14167         (dbus_address_entries_free), (create_entry),
14168         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14169         (dbus_parse_address), (_dbus_address_test):
14170         * dbus/dbus-address.h:
14171         New files for dealing with address parsing.
14172
14173         * dbus/dbus-connection.c:
14174         Document timeout functions.
14175
14176         * dbus/dbus-message.c:
14177         Document dbus_message_new_from_message.
14178
14179         * dbus/dbus-server-debug.c:
14180         Document.
14181
14182         * dbus/dbus-server.c: (dbus_server_listen):
14183         Parse address and use correct server implementation.
14184
14185         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14186         * dbus/dbus-string.h:
14187         New function with test.
14188
14189         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14190         * dbus/dbus-test.h:
14191         Add address tests.
14192
14193         * dbus/dbus-transport-debug.c:
14194         Document.
14195
14196         * dbus/dbus-transport.c: (_dbus_transport_open):
14197         Parse address and use correct transport implementation.
14198
14199 2003-01-30  Havoc Pennington  <hp@pobox.com>
14200
14201         * dbus/dbus-message.c: use message->byte_order instead of
14202         DBUS_COMPILER_BYTE_ORDER throughout.
14203         (dbus_message_create_header): pad header to align the
14204         start of the body of the message to 8-byte boundary
14205
14206         * dbus/dbus-marshal.h: make all the demarshalers take const
14207         DBusString arguments.
14208
14209         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14210         validate message args here, so we don't have to do slow validation
14211         later, and so we catch bad messages as they are incoming. Also add
14212         better checks on header_len and body_len. Also fill in
14213         message->byte_order
14214
14215         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14216         implemented properly)
14217         (_dbus_string_validate_nul): new function to check all-nul
14218
14219         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14220         get_arg_end_pos and remove all validation
14221         (_dbus_marshal_validate_arg): actually do validation here.
14222
14223 2003-01-29  Havoc Pennington  <hp@pobox.com>
14224
14225         * dbus/dbus-message.c (check_message_handling): fix assertion
14226         failure on set_client_serial
14227
14228 2003-01-28  Havoc Pennington  <hp@pobox.com>
14229
14230         * dbus/dbus-server-debug.c: Add doc section comments
14231
14232         * dbus/dbus-transport-debug.c: add doc section comments
14233
14234 2003-01-28  Havoc Pennington  <hp@redhat.com>
14235
14236         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14237         the reverse order from how I had it
14238         (_dbus_string_base64_encode): reverse encoding order. I was
14239         basically byteswapping everything during encoding.
14240
14241 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14242
14243         * dbus/dbus-connection-internal.h:
14244         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14245         (_dbus_connection_remove_timeout):
14246         Add functions for adding and removing timeouts.
14247
14248         * dbus/dbus-message.c: (dbus_message_new_from_message):
14249         Add new function that takes a message and creates an exact
14250         copy of it, but with the refcount set to 1.
14251         (check_message_handling):
14252         Fix build error.
14253
14254         * dbus/dbus-server-protected.h:
14255         * dbus/dbus-server.c: (_dbus_server_init_base),
14256         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14257         (dbus_server_set_timeout_functions):
14258         (_dbus_server_remove_timeout):
14259         New functions so that a server can add and remove timeouts.
14260
14261         (dbus_server_listen):
14262         Add commented out call to dbus_server_debug_new.
14263
14264         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14265         Actually set the handler, doh.
14266
14267         * dbus/dbus-transport.c: (_dbus_transport_open):
14268         Add commented out call to dbus_transport_debug_client_new.
14269
14270         * dbus/Makefile.am:
14271         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14272
14273 2003-01-28  Havoc Pennington  <hp@pobox.com>
14274
14275         * dbus/dbus-message.c (check_message_handling): function to check
14276         on the loaded message, iterates over it etc.
14277
14278 2003-01-28  Havoc Pennington  <hp@pobox.com>
14279
14280         * test/Makefile.am (dist-hook): fix make distdir
14281
14282         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14283
14284 2003-01-27  Havoc Pennington  <hp@pobox.com>
14285
14286         * dbus/dbus-mempool.c (time_for_size): replace printf with
14287         _dbus_verbose
14288
14289         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14290         empty lines; fix the SAVE_LENGTH stuff to be
14291         START_LENGTH/END_LENGTH so it actually works; couple other
14292         bugfixes
14293
14294         * test/Makefile.am (dist-hook): add dist-hook for .message files
14295
14296         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14297         can be constant or locked.
14298         (_dbus_string_free): allow freeing a const string as
14299         documented/intended
14300
14301         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14302
14303         * dbus/dbus-test-main.c (main): take an argument which is the
14304         directory containing test data
14305
14306         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14307         argument to this and load all the messages in test/data/
14308         checking that they can be loaded or not loaded as appropriate.
14309
14310 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14311
14312         * bus/dispatch.c: (bus_dispatch_message_handler):
14313         Dispatch messages sent to services.
14314
14315         * bus/driver.c: (bus_driver_send_service_deleted),
14316         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14317         (bus_driver_send_service_acquired):
14318         Add helper functions for sending service related messages.
14319
14320         (bus_driver_send_welcome_message):
14321         Send HELLO_REPLY instead of WELCOME.
14322
14323         (bus_driver_handle_list_services):
14324         Send LIST_SERVICES_REPLY instead of SERVICES.
14325
14326         (bus_driver_handle_own_service),
14327         (bus_driver_handle_service_exists):
14328         New message handlers.
14329
14330         (bus_driver_handle_message):
14331         Invoke new message handlers.
14332
14333         (bus_driver_remove_connection):
14334         Don't remove any services here since that's done automatically
14335         by bus_service_remove_owner now.
14336
14337         * bus/driver.h:
14338         New function signatures.
14339
14340         * bus/services.c: (bus_service_add_owner):
14341         Send ServiceAcquired message if we're the only primary owner.
14342
14343         (bus_service_remove_owner):
14344         Send ServiceAcquired/ServiceLost messages.
14345
14346         (bus_service_set_prohibit_replacement),
14347         (bus_service_get_prohibit_replacement):
14348         Functions for setting prohibit replacement.
14349
14350         (bus_service_has_owner):
14351         New function that checks if a connection is in the owner queue of
14352         a certain service.
14353
14354         * bus/services.h:
14355         Add new function signatures.
14356
14357         * dbus/dbus-list.c: (_dbus_list_test):
14358         Add tests for _dbus_list_remove_last and traversing the list backwards.
14359
14360         * dbus/dbus-list.h:
14361         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14362         go any further, so return NULL then.
14363
14364         * dbus/dbus-protocol.h:
14365         Add new messages, service flags and service replies.
14366
14367 2003-01-26  Havoc Pennington  <hp@pobox.com>
14368
14369         * dbus/dbus-message-builder.c: implement, completely untested.
14370
14371         * test/data/*: add data to be used in testing.
14372         ".message" files are our simple loadable text format.
14373         ".message-raw" will be binary dumps of messages.
14374
14375         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14376
14377 2003-01-26  Havoc Pennington  <hp@pobox.com>
14378
14379         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14380
14381         * dbus/dbus-errors.c (dbus_result_to_string): add
14382         file errors
14383
14384         * dbus/dbus-message-builder.c: new file, will contain code to load
14385         up messages from files. Not implemented yet.
14386
14387 2003-01-26  Havoc Pennington  <hp@pobox.com>
14388
14389         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14390         the sender by setting to NULL
14391
14392 2003-01-26  Havoc Pennington  <hp@pobox.com>
14393
14394         The unit tests pass, but otherwise untested.  If it breaks, the
14395         tests should have been better. ;-)
14396
14397         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14398         the connection.
14399
14400         * dbus/dbus-message.c: redo everything so we maintain
14401         message->header as the only copy of the various fields.
14402         This avoids the possibility of out-of-memory in some cases,
14403         for example dbus_message_lock() can't run out of memory anymore,
14404         and avoids extra copying. Figured I may as well go ahead and do
14405         this since it was busted for dbus_message_lock to not return
14406         failure on OOM, and dbus_message_write_header was totally
14407         unchecked for OOM. Also fixed some random other bugs.
14408
14409         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14410         that strings are nul-terminated. Also, end_pos can be equal
14411         to string length just not greater than, I think.
14412         (_dbus_marshal_set_int32): new function
14413         (_dbus_marshal_set_uint32): new function
14414         (_dbus_marshal_set_string): new function
14415
14416         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14417         a warning, init timeout_list to NULL
14418         (dbus_connection_send_message): don't use uninitialized variable
14419         "serial"
14420
14421         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14422
14423 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14424
14425         * bus/driver.c: (bus_driver_handle_hello),
14426         (bus_driver_send_welcome_message):
14427         Plug leaks
14428
14429 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14430
14431         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14432         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14433         (dbus_connection_unref):
14434         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14435         * dbus/dbus-message.c: (dbus_message_unref),
14436         Plug memory leaks.
14437
14438         (dbus_message_get_fields):
14439         Remove debugging printout.
14440
14441         (_dbus_message_loader_return_buffer):
14442         Don't store the header string.
14443
14444         (_dbus_message_test):
14445         Plug leaks.
14446
14447 2003-01-26  Richard Hult  <rhult@codefactory.se>
14448
14449         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14450         the file descriptor list, since it can change under us.
14451
14452 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14453
14454         * glib/dbus-gmain.c: (dbus_connection_prepare),
14455         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14456         (remove_watch), (dbus_connection_hookup_with_g_main):
14457         Rewrite the glib handling to use its own GSource instead of a
14458         GIOChannel so we can catch messages put in the queue while waiting
14459         for a reply.
14460
14461 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14462
14463         * bus/Makefile.am:
14464         * bus/connection.c: (connection_disconnect_handler),
14465         (connection_watch_callback), (bus_connection_setup):
14466         * bus/dispatch.c: (send_one_message),
14467         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14468         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14469         * bus/dispatch.h:
14470         * bus/driver.c: (bus_driver_send_service_deleted),
14471         (bus_driver_send_service_created), (bus_driver_handle_hello),
14472         (bus_driver_send_welcome_message),
14473         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14474         (bus_driver_handle_message):
14475         * bus/driver.h:
14476         Refactor code, put the message dispatching in its own file. Use
14477         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14478         is disconnected.
14479
14480 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14481
14482         * dbus/dbus-internals.h:
14483         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14484
14485         * dbus/dbus-message.c: (dbus_message_get_sender):
14486         * dbus/dbus-message.h:
14487         Implement dbus_message_get_sender.
14488
14489         * dbus/dbus-protocol.h:
14490         Add message and service defines.
14491
14492 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14493
14494         * dbus/dbus-connection.c: (dbus_connection_send_message):
14495         * dbus/dbus-message-internal.h:
14496         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14497         (dbus_message_write_header):
14498         Remove _dbus_messag_unlock and don't set the client serial on a
14499         message if one already exists.
14500
14501 2003-01-24  Havoc Pennington  <hp@pobox.com>
14502
14503         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14504         list_pool
14505
14506         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14507         on OOM
14508
14509 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14510
14511         * dbus/dbus-list.c: (alloc_link), (free_link):
14512         Use a memory pool for the links.
14513
14514 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14515
14516         * bus/connection.c: (bus_connection_foreach):
14517         * bus/connection.h:
14518         Add new bus_connection_foreach function.
14519
14520         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14521         Add function that broadcasts a message to all clients.
14522
14523         (bus_driver_send_service_created), (bus_driver_handle_hello),
14524         (bus_driver_send_welcome_message),
14525         (bus_driver_handle_list_services), (bus_driver_message_handler):
14526         Implement functions that take care of listing services, and notifying
14527         clients when new services are created.
14528
14529         * bus/services.c: (bus_services_list):
14530         * bus/services.h:
14531         Add new function that returns an array of strings with the currently
14532         registered services.
14533
14534         * glib/dbus-glib.h:
14535         * glib/dbus-gmain.c:
14536         Update copyright year.
14537
14538 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14539
14540         * dbus/dbus-connection.c: (dbus_connection_send_message):
14541         Unlock the message in case it was sent earlier.
14542
14543         (dbus_connection_send_message_with_reply_and_block):
14544         Remove the reply message from the list.
14545
14546         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14547         Set array_len and new_pos correctly.
14548
14549         (_dbus_marshal_test):
14550         Remove debug output.
14551
14552         * dbus/dbus-message-internal.h:
14553         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14554         New function that returns the reply serial.
14555
14556         (_dbus_message_unlock):
14557         New function that unlocks a message and resets its header.
14558
14559         (dbus_message_append_string_array),
14560         (dbus_message_get_fields_valist),
14561         (dbus_message_iter_get_field_type),
14562         (dbus_message_iter_get_string_array),
14563         (dbus_message_get_fields),
14564         (dbus_message_append_fields_valist):
14565         Handle string arrays.
14566
14567         (dbus_message_set_sender):
14568         Make this function public since the bus daemon needs it.
14569
14570         (decode_header_data):
14571         Set the reply serial to -1 initially.
14572
14573         * dbus/dbus-message.h:
14574         Add dbus_message_set_sender.
14575
14576 2003-01-24  Havoc Pennington  <hp@pobox.com>
14577
14578         * doc/dbus-specification.sgml: add some stuff
14579
14580 2003-01-22  Havoc Pennington  <hp@pobox.com>
14581
14582         * doc/dbus-specification.sgml: Start to document the protocol.
14583
14584 2003-01-22  Havoc Pennington  <hp@pobox.com>
14585
14586         * dbus/dbus-connection.c
14587         (dbus_connection_send_message_with_reply_and_block): add some @todo
14588
14589         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14590
14591 2003-01-21  Havoc Pennington  <hp@pobox.com>
14592
14593         (patch untested because can't compile)
14594
14595         * bus/driver.c (create_unique_client_name): make this function
14596         never recycle client names. Also, caller should initialize
14597         the DBusString.
14598
14599         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14600
14601 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14602
14603         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14604         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14605         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14606         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14607         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14608         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14609         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14610         * dbus/dbus-marshal.h:
14611         * dbus/dbus-protocol.h:
14612         Add support for marshalling and demarshalling integer, double
14613         and string arrays.
14614
14615 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14616
14617         * bus/Makefile.am:
14618         Add driver.[ch]
14619
14620         * bus/connection.c: (connection_disconnect_handler):
14621         Remove the connection from the bus driver's list.
14622
14623         (connection_watch_callback): Dispatch messages.
14624
14625         (free_connection_data): Free connection name.
14626
14627         (bus_connection_setup): Add connection to the bus driver's list.
14628         (bus_connection_remove_owned_service):
14629         (bus_connection_set_name), (bus_connection_get_name):
14630         Add functions for setting and getting the connection's name.
14631
14632         * bus/connection.h:
14633         Add function headers.
14634
14635         * bus/driver.c: (create_unique_client_name),
14636         (bus_driver_handle_hello_message),
14637         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14638         (bus_driver_add_connection), (bus_driver_remove_connection):
14639         * bus/driver.h:
14640         * bus/main.c:
14641         * bus/services.c: (bus_service_free):
14642         * bus/services.h:
14643         New file that handles communication and registreation with the bus
14644         itself.
14645
14646 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14647
14648         * dbus/dbus-connection.c: (dbus_connection_send_message):
14649         Add a new client_serial parameter.
14650
14651         (dbus_connection_send_message_with_reply):
14652         Remove a @todo since we've implemented the blocking function.
14653
14654         (dbus_connection_send_message_with_reply_and_block):
14655         New function that sends a message and waits for a reply and
14656         then returns the reply.
14657
14658         * dbus/dbus-connection.h:
14659         Add new functions.
14660
14661         * dbus/dbus-errors.c: (dbus_result_to_string):
14662         * dbus/dbus-errors.h:
14663         Add new DBUS_RESULT.
14664
14665         * dbus/dbus-message-internal.h:
14666         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14667         (_dbus_message_set_sender), (dbus_message_write_header),
14668         (dbus_message_new_reply), (decode_header_data),
14669         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14670         * dbus/dbus-message.h:
14671         Add new functions that set the reply serial and sender.
14672         Also marshal and demarshal them correctly and add test.
14673
14674         * dbus/dbus-protocol.h:
14675         Add new DBUS_MESSAGE_TYPE_SENDER.
14676
14677         * glib/dbus-glib.h:
14678         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14679         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14680         (dbus_connection_hookup_with_g_main):
14681         * glib/test-dbus-glib.c: (main):
14682         Rewrite to use GIOChannel and remove the GSource crack.
14683
14684         * test/echo-client.c: (main):
14685         * test/watch.c: (check_messages):
14686         Update for changed APIs
14687
14688 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14689
14690         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14691
14692         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14693         Create a DBusTimeoutList.
14694         (dbus_connection_set_timeout_functions): Add new function to
14695         set timeout callbacks
14696
14697         * dbus/dbus-connection.h: Add public DBusTimeout API.
14698
14699         * dbus/dbus-message.c: (dbus_message_get_service):
14700         * dbus/dbus-message.h:  New function.
14701
14702         * dbus/dbus-server.c: Fix small doc typo.
14703
14704         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14705
14706 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14707
14708         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14709         of the string, just as long as specified.
14710
14711 2003-01-19  Havoc Pennington  <hp@pobox.com>
14712
14713         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14714         new function
14715
14716         * dbus/dbus-server.c (dbus_server_set_max_connections)
14717         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14718         keep track of current number of connections, and add API for
14719         setting a max (but haven't implemented enforcing the max yet)
14720
14721 2003-01-18  Havoc Pennington  <hp@pobox.com>
14722
14723         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14724         reading/writing if read_watch != NULL or write_watch != NULL.
14725
14726         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14727         the message loader code to actually load message->header and
14728         message->body into the newly-created message.
14729
14730         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14731         in OOM case
14732
14733         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14734         (dbus_connection_get_max_message_size)
14735         (dbus_connection_set_max_live_messages_size)
14736         (dbus_connection_get_max_live_messages_size): implement some
14737         resource limitation functions
14738
14739         * dbus/dbus-resources.c: new file implementing some of the
14740         resource limits stuff
14741
14742         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14743         missing docs, add @todo to handle OOM etc.
14744
14745         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14746         docs
14747
14748 2003-01-18  Havoc Pennington  <hp@pobox.com>
14749
14750         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14751         connection if it hasn't been already.
14752
14753         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14754         replace with DisconnectFunction.
14755
14756 2003-01-18  Havoc Pennington  <hp@pobox.com>
14757
14758         Building --disable-verbose-mode --disable-asserts --disable-tests
14759         cuts the library from 112K to 45K or so
14760
14761         * configure.in: check for varargs macro support,
14762         add --enable-verbose-mode, --enable-asserts.
14763
14764         * dbus/dbus-internals.h (_dbus_assert): support
14765         DBUS_DISABLE_ASSERT
14766         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14767
14768 2003-01-18  Havoc Pennington  <hp@pobox.com>
14769
14770         * dbus/dbus-test.c: include config.h so that tests actually run
14771
14772         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14773         so the failure mode when that assumption fails will be plenty
14774         obvious.
14775
14776 2003-01-18  Havoc Pennington  <hp@pobox.com>
14777
14778         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14779
14780         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14781         the distribution
14782
14783         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14784         since we don't want to use those in make check
14785
14786 2003-01-15  Havoc Pennington  <hp@redhat.com>
14787
14788         Release 0.2
14789
14790         * NEWS: update
14791
14792 2003-01-15  Havoc Pennington  <hp@redhat.com>
14793
14794         * test/Makefile.am: fix so that test source code ends up in the
14795         distribution on make distcheck
14796
14797 2003-01-15  Havoc Pennington  <hp@redhat.com>
14798
14799         Release 0.1.
14800
14801         * NEWS: update
14802
14803 2003-01-15  Havoc Pennington  <hp@redhat.com>
14804
14805         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14806         fix build when --disable-tests
14807
14808         * Makefile.am (EXTRA_DIST): put HACKING in here
14809
14810         * HACKING: document procedure for making a tarball release.
14811
14812 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14813
14814         * bus/connection.c: (connection_error_handler),
14815         (bus_connection_setup):
14816         * bus/main.c: (main):
14817         Make sure that the DBusConnectionData struct is NULLed
14818         out to prevent a segfault.
14819
14820         * dbus/dbus-errors.c: (dbus_result_to_string):
14821         * dbus/dbus-errors.h:
14822         * dbus/dbus-message.c: (dbus_message_get_fields),
14823         (dbus_message_get_fields_valist), (_dbus_message_test):
14824         * dbus/dbus-message.h:
14825         Make dbus_message_get_fields return a result code so we can
14826         track invalid fields as well as oom.
14827
14828 2003-01-11  Havoc Pennington  <hp@pobox.com>
14829
14830         * configure.in: change --enable-test/--enable-ansi action-if-given
14831         to enable_foo=$enableval instead of enable_foo=yes
14832
14833 2003-01-08  Havoc Pennington  <hp@pobox.com>
14834
14835         * dbus/dbus-string.c (_dbus_string_align_length): new function
14836
14837         * dbus/dbus-test-main.c: move main() for test app here
14838         * dbus/dbus-test.c
14839         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14840         symbol to run tests, because dbus-test isn't in the main
14841         library
14842
14843         Code review nitpicks.
14844
14845         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14846         for people with narrow emacs ;-). Assert client_serial was filled
14847         in. Assert message->name != NULL.
14848         (dbus_message_append_fields): have "first_field_type" arg separate
14849         from va list, needed for C++ binding that also uses varargs IIRC
14850         and helps with type safety
14851         (dbus_message_new): add @todo about using DBusString to store
14852         service/name internally
14853         (dbus_message_new): don't leak ->service and ->name on OOM later
14854         in the function
14855         (dbus_message_unref): free the service name
14856         (dbus_message_get_fields): same change to varargs
14857         i.e. first_field_type
14858         (_dbus_message_loader_return_buffer): assert that the message data
14859         is aligned (if not it's a bug in our code). Put in verbose griping
14860         about why we set corrupted = TRUE.
14861         (decode_header_data): add FIXME that char* is evil.  Was going to
14862         add FIXME about evil locale-specific string.h strncmp, but just
14863         switched to wacky string-as-uint32 optimization. Move check for
14864         "no room for field name" above get_const_data_len() to avoid
14865         assertion failure in get_const_data_len if we have trailing 2
14866         bytes or the like. Check for service and name fields being
14867         provided twice. Don't leak service/name on error. Require field
14868         names to be aligned to 4 bytes.
14869
14870         * dbus/dbus-marshal.c: move byte swap stuff to header
14871         (_dbus_pack_int32): uscore-prefix
14872         (_dbus_unpack_int32): uscore-prefix
14873         (_dbus_unpack_uint32): export
14874         (_dbus_demarshal_string): add @todo complaining about use of
14875         memcpy()
14876         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14877         handling allowing corrupt data to go unchecked
14878
14879 2003-01-08  Havoc Pennington  <hp@redhat.com>
14880
14881         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14882         to the select() as needed for authentication. (should be using
14883         _dbus_poll() not select, but for another day)
14884
14885         * dbus/dbus.h: include dbus/dbus-protocol.h
14886
14887 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14888
14889         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14890         dbus-connection.h
14891
14892 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14893
14894         * dbus/dbus-internals.c: (_dbus_type_to_string):
14895         New function that returns a string describing a type.
14896
14897         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14898         * dbus/dbus-marshal.h:
14899         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14900         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14901         (dbus_message_iter_get_byte_array):
14902         * dbus/dbus-message.h:
14903         Add new convenience functions for appending and getting message fields.
14904         Also add demarshalling routines for byte arrays.
14905
14906 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14907
14908         * dbus/dbus-connection-internal.h:
14909         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14910         (_dbus_connection_get_next_client_serial),
14911         (dbus_connection_send_message):
14912         * dbus/dbus-internals.h:
14913         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14914         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14915         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14916         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14917         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14918         (_dbus_verbose_bytes), (_dbus_marshal_test):
14919         * dbus/dbus-marshal.h:
14920         * dbus/dbus-message-internal.h:
14921         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14922         (dbus_message_write_header), (_dbus_message_lock),
14923         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14924         (dbus_message_get_name), (dbus_message_append_int32),
14925         (dbus_message_append_uint32), (dbus_message_append_double),
14926         (dbus_message_append_string), (dbus_message_append_byte_array),
14927         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14928         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14929         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14930         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14931         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14932         (decode_header_data), (_dbus_message_loader_return_buffer),
14933         (message_iter_test), (_dbus_message_test):
14934         * dbus/dbus-message.h:
14935         * dbus/dbus-protocol.h:
14936         * dbus/dbus-test.c: (main):
14937         * dbus/dbus-test.h:
14938         * glib/test-dbus-glib.c: (message_handler), (main):
14939         * test/echo-client.c: (main):
14940         * test/watch.c: (check_messages):
14941         Make messages sendable and receivable for real.
14942
14943 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14944
14945         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14946         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14947         * dbus/dbus-message.c: (dbus_message_append_int32),
14948         (dbus_message_append_uint32), (dbus_message_append_double),
14949         (dbus_message_append_string), (dbus_message_append_byte_array):
14950         Handle OOM restoration.
14951
14952 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14953
14954         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14955         (_dbus_demarshal_string), (_dbus_marshal_test):
14956         * dbus/dbus-marshal.h:
14957         * dbus/dbus-message.c: (dbus_message_get_name),
14958         Document these functions.
14959
14960         (dbus_message_append_int32), (dbus_message_append_uint32),
14961         (dbus_message_append_double), (dbus_message_append_string),
14962         (dbus_message_append_byte_array):
14963         * dbus/dbus-message.h:
14964         Add functions for adding message fields of different types.
14965
14966         * dbus/dbus-protocol.h:
14967         Add the different types.
14968
14969 2003-01-05  Havoc Pennington  <hp@pobox.com>
14970
14971         * bus/connection.c: implement routines for handling connections,
14972         first thing is keeping a list of owned services on each connection
14973         and setting up watches etc.
14974
14975         * bus/services.c: implement a mapping from service names to lists
14976         of connections
14977
14978         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14979
14980         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14981         to use static mutexes for global data
14982
14983         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14984         collection of functions to set/get application-specific data
14985         on the DBusConnection.
14986
14987 2003-01-04  Havoc Pennington  <hp@pobox.com>
14988
14989         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14990         (_dbus_poll): new function
14991
14992         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14993         copied from GLib
14994
14995         * bus/loop.c: initial code for the daemon main loop
14996
14997 2003-01-04  Havoc Pennington  <hp@pobox.com>
14998
14999         * test/watch.c (error_handler): make it safe if the error handler
15000         is called multiple times (if we s/error handler/disconnect
15001         handler/ we should just guarantee it's called only once)
15002
15003         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15004         error handler on disconnect (it's quite possible we should
15005         just change the error handler to a "disconnect handler," I'm
15006         not sure we have any other meaningful errors)
15007
15008         * configure.in: check for getpwnam_r
15009
15010         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15011         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15012         mechanism as in SASL spec, using socket credentials
15013
15014         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15015         (_dbus_send_credentials_unix_socket): new function
15016
15017         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15018         dbus_accept()
15019         (_dbus_write): only check errno if <0 returned
15020         (_dbus_write_two): ditto
15021
15022 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15023
15024         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15025         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15026         (_dbus_marshal_test):
15027         * dbus/dbus-marshal.h:
15028         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15029         to _dbus_marshal_utf8_string. Also fix some tests.
15030
15031 2002-12-28  Harri Porten  <porten@kde.org>
15032
15033         * configure.in: added check for C++ compiler and a very cheesy
15034         check for the Qt integration
15035
15036         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15037
15038         * qt/Makefile.am: added
15039
15040         * qt/.cvsignore: added
15041
15042         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15043         latter, added #ifdef QT_THREAD_SUPPORT guard.
15044
15045         * dbus/Makefile.am: added missing headers for make dist
15046
15047 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15048
15049         * dbus/Makefile.am: fixup export-symbols-regex.
15050
15051 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15052
15053         * acinclude.m4: Add this file and put the
15054         PKG_CHECK_MODULE macro in it.
15055
15056 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15057
15058         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15059         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15060         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15061         (_dbus_marshal_test):
15062         Make the demarshalling routines align the pos argument.
15063         Add string marshalling tests and fix the obvious bugs
15064         discovered.
15065
15066 2002-12-26  Havoc Pennington  <hp@pobox.com>
15067
15068         * dbus/dbus-auth.c: fixes fixes fixes
15069
15070         * dbus/dbus-transport-unix.c: wire up support for
15071         encoding/decoding data on the wire
15072
15073         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15074         (_dbus_auth_decode_data): append to target string
15075         instead of nuking it.
15076
15077 2002-12-26  Havoc Pennington  <hp@pobox.com>
15078
15079         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15080         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15081         doh
15082
15083         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15084         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15085         now). Main point is because I wanted unpack_uint32 to implement
15086         _dbus_verbose_bytes
15087         (_dbus_verbose_bytes): new function
15088
15089         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15090
15091         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15092         mechanism to handle a corrupt message stream
15093         (_dbus_message_loader_new): fix preallocation to only prealloc,
15094         not prelengthen
15095
15096         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15097         (_dbus_string_test): enhance tests for copy/move and fix the
15098         functions
15099
15100         * dbus/dbus-transport-unix.c: Hold references in more places to
15101         avoid reentrancy problems
15102
15103         * dbus/dbus-transport.c: ditto
15104
15105         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15106         leak reference count in no-message case
15107
15108         * test/watch.c (do_mainloop): handle adding/removing watches
15109         during iteration over the watches. Also, ref the connection/server
15110         stored on a watch, so we don't try to mangle a destroyed one.
15111
15112         * dbus/dbus-transport-unix.c (do_authentication): perform
15113         authentication
15114
15115         * dbus/dbus-auth.c (get_state): add a state
15116         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15117         (_dbus_auth_get_unused_bytes): append the unused bytes
15118         to the passed in string, rather than prepend
15119
15120         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15121         the auth conversation DBusAuth
15122
15123         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15124         (_dbus_transport_new_for_domain_socket): when creating a
15125         transport, pass in whether it's a client-side or server-side
15126         transport so we know which DBusAuth to create
15127
15128 2002-12-03  Havoc Pennington  <hp@pobox.com>
15129
15130         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15131         _after_ finalizing the derived members
15132         (unix_connection_set): unref watch if we fail to add it
15133
15134         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15135         transport first, so that the connection owned by the
15136         transport will be valid as the transport finalizes.
15137
15138         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15139         if necessary, and remove watches from the connection.
15140
15141         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15142
15143 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15144
15145         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15146         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15147         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15148         (_dbus_marshal_test):
15149         * dbus/dbus-marshal.h:
15150         Add string marshal functions and have the demarshal functions
15151         return the new position.
15152
15153 2002-12-25  Havoc Pennington  <hp@pobox.com>
15154
15155         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15156         it is a simple protocol that just maps directly to SASL.
15157
15158         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15159         initial implementation, not actually used yet.
15160
15161         * dbus/dbus-string.c (_dbus_string_find): new function
15162         (_dbus_string_equal): new function
15163         (_dbus_string_base64_encode): new function
15164         (_dbus_string_base64_decode): new function
15165
15166 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15167
15168         * dbus/Makefile.am:
15169         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15170         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15171         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15172         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15173         * dbus/dbus-marshal.h:
15174         * dbus/dbus-protocol.h:
15175         * dbus/dbus-test.c: (main):
15176         * dbus/dbus-test.h:
15177         Add un-optimized marshalling/demarshalling routines.
15178
15179 2002-12-25  Harri Porten  <porten@kde.org>
15180
15181         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15182
15183 2002-12-24  Zack Rusin  <zack@kde.org>
15184
15185         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15186         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15187         main loop stuff
15188
15189 2002-12-24  Havoc Pennington  <hp@pobox.com>
15190
15191         * glib/dbus-gthread.c: fix include
15192
15193         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15194         I think glib API needs to change, though, as you don't
15195         want to use DBusMessageFunction, you want to use the
15196         DBusMessageHandler object. Probably
15197         dbus_connection_open_with_g_main_loop()
15198         and dbus_connection_setup_g_main_loop() or something like that
15199         (but think of better names...) that just create a connection
15200         that has watch/timeout functions etc. already set up.
15201
15202         * dbus/dbus-connection.c
15203         (dbus_connection_send_message_with_reply): new function just to
15204         show how the message handler helps us deal with replies.
15205
15206         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15207
15208         * dbus/dbus-string.c (_dbus_string_test): free a string that
15209         wasn't
15210
15211         * dbus/dbus-hash.c: use memory pools for the hash entries
15212         (rebuild_table): be more paranoid about overflow, and
15213         shrink table when we can
15214         (_dbus_hash_test): reduce number of sprintfs and write
15215         valid C89. Add tests for case where we grow and then
15216         shrink the hash table.
15217
15218         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15219
15220         * dbus/dbus-connection.c (dbus_connection_register_handler)
15221         (dbus_connection_unregister_handler): new functions
15222
15223         * dbus/dbus-message.c (dbus_message_get_name): new
15224
15225         * dbus/dbus-list.c: fix docs typo
15226
15227         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15228         an object representing a handler for messages.
15229
15230 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15231
15232         * glib/dbus-glib.h:
15233         * glib/dbus-gthread.c: (dbus_gthread_init):
15234         Don't use the gdbus prefix for public functions.
15235
15236 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15237
15238         * Makefile.am:
15239         * configure.in:
15240         Add GLib checks and fixup .pc files
15241
15242         * glib/Makefile.am:
15243         * glib/dbus-glib.h:
15244         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15245         (gdbus_connection_check), (gdbus_connection_dispatch),
15246         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15247         (dbus_connection_gsource_new):
15248         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15249         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15250         * glib/test-dbus-glib.c: (message_handler), (main):
15251         Add GLib support.
15252
15253 2002-12-15  Harri Porten  <porten@kde.org>
15254
15255         * autogen.sh: check for libtoolize before attempting to use it
15256
15257         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15258         struct.
15259
15260         * .cvsignore: ignore more stamp files
15261
15262         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15263
15264         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15265         without make install.
15266
15267 2002-12-15  Havoc Pennington  <hp@pobox.com>
15268
15269         * dbus/dbus-threads.c: add thread stubs that a higher library
15270         layer can fill in. e.g. the GLib wrapper might fill them in with
15271         GThread stuff. We still need to use this thread API to
15272         thread-safe-ize the library.
15273
15274 2002-12-12  Havoc Pennington  <hp@pobox.com>
15275
15276         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15277         below new interfaces and include fewer system headers.
15278
15279         * dbus/dbus-sysdeps.c (_dbus_read): new function
15280         (_dbus_write): new function
15281         (_dbus_write_two): new function
15282         (_dbus_connect_unix_socket): new function
15283         (_dbus_listen_unix_socket): new function
15284
15285         * dbus/dbus-message-internal.h: change interfaces to use
15286         DBusString
15287
15288 2002-12-11  Havoc Pennington  <hp@pobox.com>
15289
15290         * dbus/dbus-types.h: add dbus_unichar
15291
15292         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15293
15294         * dbus/dbus-connection.c (dbus_connection_send_message): return
15295         TRUE on success
15296
15297         * dbus/dbus-transport.c: include dbus-watch.h
15298
15299         * dbus/dbus-connection.c: include dbus-message-internal.h
15300
15301         * HACKING: add file with coding guidelines stuff.
15302
15303         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15304         handling here, for security purposes (as in vsftpd). Not actually
15305         using this class yet.
15306
15307         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15308         system/libc usage here, as in vsftpd, for ease of auditing (and
15309         should also simplify portability). Haven't actually moved all the
15310         system/libc usage into here yet.
15311
15312 2002-11-25  Havoc Pennington  <hp@pobox.com>
15313
15314         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15315         always print the first verbose message.
15316
15317 2002-11-24  Havoc Pennington  <hp@pobox.com>
15318
15319         * test/echo-client.c, test/echo-server.c: cheesy test
15320         clients.
15321
15322         * configure.in (AC_CHECK_FUNCS): check for writev
15323
15324         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15325         function
15326
15327         * dbus/dbus-list.c (_dbus_list_foreach): new function
15328
15329         * dbus/dbus-internals.c (_dbus_verbose): new function
15330
15331         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15332         representing a server that listens for connections.
15333
15334         * dbus/.cvsignore: create
15335
15336         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15337         public API for reporting errors
15338
15339         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15340         public object representing a connection that
15341         sends/receives messages. (Same object used for
15342         both client and server.)
15343
15344         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15345         Basic abstraction for different kinds of stream
15346         that we might read/write messages from.
15347
15348 2002-11-23  Havoc Pennington  <hp@pobox.com>
15349
15350         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15351         _DBUS_INT_MAX
15352
15353         * dbus/dbus-test.c (main): add list test, and include
15354         dbus-test.h as intended
15355
15356         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15357         (_dbus_hash_table_remove_int): return value indicates
15358         whether the entry existed to remove
15359
15360         * dbus/dbus-list.c: add linked list utility class,
15361         with docs and tests
15362
15363         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15364         array sometimes.
15365
15366 2002-11-23  Havoc Pennington  <hp@pobox.com>
15367
15368         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15369         DBUS_END_DECLS to nothing, that should fix this once and for all
15370
15371         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15372
15373         * dbus/dbus-message.c, dbus/dbus-hash.c:
15374         add some missing @brief
15375
15376 2002-11-23  Havoc Pennington  <hp@pobox.com>
15377
15378         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15379         to avoid confusing Doxygen
15380
15381         * dbus/dbus-hash.c: @} not }@
15382
15383         * dbus/dbus-message.c (struct DBusMessage): split out
15384         internals docs
15385
15386 2002-11-23  Havoc Pennington  <hp@pobox.com>
15387
15388         * configure.in: pile on more warning flags if using gcc
15389
15390         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15391         to document static functions
15392
15393         * configure.in: add summary to end of configure so it
15394         looks nice and attractive
15395
15396         * dbus/dbus-hash.c: finish implementation and write unit
15397         tests and docs
15398
15399         * configure.in: add --enable-tests to enable unit tests
15400
15401         * dbus/dbus-test.c: test program to run unit tests
15402         for all files in dbus/*, initially runs a test for
15403         dbus-hash.c
15404
15405         * dbus/dbus-internals.h: file to hold some internal utility stuff
15406
15407 2002-11-22  Havoc Pennington  <hp@redhat.com>
15408
15409         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15410         "ported" away from Tcl
15411
15412         * dbus/dbus-types.h: header for types such as dbus_bool_t
15413
15414 2002-11-22  Havoc Pennington  <hp@redhat.com>
15415
15416         * dbus/dbus.h: fixups for doc warnings
15417
15418         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15419         macros
15420         (QUIET): make it quiet so we can see warnings
15421
15422         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15423
15424 2002-11-22  Havoc Pennington  <hp@redhat.com>
15425
15426         * Makefile.am: include "Doxyfile" target in all-local
15427
15428         * configure.in: generate the Doxyfile
15429
15430         * Doxyfile.in: move Doxyfile here, so we can use
15431         configure to generate a Doxyfile with the right
15432         version number etc.
15433
15434 2002-11-22  Havoc Pennington  <hp@redhat.com>
15435
15436         * dbus/dbus-message.c: move inline docs into .c file
15437
15438         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15439         so all docs are under doc/
15440         (MAN_EXTENSION): generate man pages. Use extension
15441         ".3dbus" which matches ".3qt" on my system,
15442         I guess this is OK, I don't know really.
15443         (FILE_PATTERNS): look for .c files not .h, makes sense
15444         for plain C I think
15445
15446 2002-11-22  Havoc Pennington  <hp@pobox.com>
15447
15448         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15449         because any app can be a server, and any app can be a client,
15450         the bus is a special kind of server.
15451
15452 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15453
15454         * Doxyfile : adding. Still needs Makefile rules to be generated
15455         automatically (just run "doxygen" in the toplevel dir for now to
15456         generate docs)
15457
15458         * dbus/dbus-message.h : Adding sample docs (javadoc since
15459         resembles gtk-doc a little more)
15460
15461         * dbus/dbus.h : Adding sample docs
15462
15463 2002-11-21  Havoc Pennington  <hp@redhat.com>
15464
15465         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15466         so we can allow ourselves to include files directly,
15467         instead of having to use dbus.h
15468
15469         * dbus/dbus.h: fill in
15470
15471         * dbus/dbus-message.h: sketch out a sample header file.
15472         Include griping if you include it directly instead of
15473         via dbus.h
15474
15475         * dbus/dbus-macros.h: new file with macros for extern "C",
15476         TRUE/FALSE, NULL, etc.
15477
15478         * doc/file-boilerplate.c: put include guards in here
15479
15480 2002-11-21  Havoc Pennington  <hp@redhat.com>
15481
15482         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15483
15484         * COPYING: include the GPL as well, and license code
15485         under both AFL and GPL.
15486
15487 2002-11-21  Havoc Pennington  <hp@redhat.com>
15488
15489         * acconfig.h: get rid of this
15490
15491         * autogen.sh (run_configure): add --no-configure option
15492
15493         * configure.in: remove AC_ARG_PROGRAM to make
15494         autoconf complain less. add AC_PREREQ.
15495         add AC_DEFINE third arg.
15496
15497 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15498
15499         * doc/Makefile.am:
15500         Fix references so we can distcheck.
15501
15502 2002-11-21  Havoc Pennington  <hp@redhat.com>
15503
15504         * Initial module creation
15505