* bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h: rename pipe related write...
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
4         rename pipe related write() function calls to _dbus_write_pipe().
5
6 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
7
8         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
9         uses DBUS_WIN for alls win32 related #ifdefs, 
10         some minor cleanups
11
12 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
13
14         * dbus-win.patch: updated patch for bus/dispatch.c.
15
16 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
17
18         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
19         dbus_connection_get_unix_process_id): Let return them valid user id's, 
20         otherwise bus-test fails. How to replace on win32 ?.
21         
22         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
23         fix memory leak.
24
25 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
26
27         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
28         use dbus friendly error name.
29         (fill_win_user_info_homedir): print user name in error case too.
30
31 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
32
33         * cmake/ConfigureChecks.cmake: fixed socketpair check
34
35 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
36
37         * bus/dispatch.c: disabled segfault test on win32 for now
38
39 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
40
41         * configure.in, cmake/ConfigureChecks.cmake: added check 
42         for setrlimit. 
43         * test/test-segfault.c: only include setrlimit stuff only 
44         when available.  
45
46 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
47
48         * test/test-segfault.c: unix compile fix.
49         * dbus-win.patch: removed obsolate patches.
50
51 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
52
53         * bus/activation.c: removed obsolate include header.
54         * test/test-segfault.c: win32 compile fix, rlimit 
55         isn't available on win32.
56         * dbus-win.patch: removed some more patches, they
57         are applied or obsolate 
58
59 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
60
61         * bus-win.patch: fixes unix listen problems, dbus-test 
62         now runs.
63
64 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
65
66         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
67         cmake/CMakeLists.txt: win32 compile fix
68
69 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
70
71         * dbus-win.patch, README.win: added available win32 
72         patches from windbus project (http://sf.net/projects/windbus)
73
74 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
75
76         * bus/activation.c: (bus_activation_activate_service):
77         fixed call to _dbus_spawn_async_with_babysitter().
78
79 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
80
81         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
82         added environment pointer as function parameter, used on win32.
83
84         * test/spawn-test.c: fixed call to above mentioned function.
85
86 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
87
88         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
89         added configure check for unistd.h.
90
91 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
92
93         * test/Makefile.am: fixed test data copy problem in 
94         out of source build, when sources came from svn or cvs. 
95
96 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
97
98         * dbus/*-win.*,bus/*-win.*: added win32 platform related
99         files. These files are only added to the cmake build system.  
100         The missing dbus-win.patch file will be added later. 
101
102 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
103
104         * cmake: new directory, contains cmake build support.
105         See http://www.cmake.org for more informations.
106         Currently only unix will be buildable because some 
107         win32 required files are still missing. 
108
109 2007-03-03  Thiago Macieira  <thiago@kde.org>
110
111         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
112         output and add it to the DBusError message we return.
113
114         * tools/dbus-launch.1:
115         * tools/dbus-launch.c: Add option --close-stderr to, well,
116         close stderr before starting dbus-daemon.
117
118 2007-01-31  Havoc Pennington  <hp@redhat.com>
119
120         * bus/dbus-daemon.1.in: write a section in the man page on running
121         a test daemon for debugging purposes
122
123 2007-01-26  Havoc Pennington  <hp@redhat.com>
124
125         * bus/session.conf.in: override all the default limits with much
126         higher limits on the session bus, there is no reason the session
127         bus should have low limits
128
129         * bus/config-parser.c (bus_config_parser_new): increase default
130         limits so they are less likely to be hit; in particular the max
131         replies per connection was way too low
132
133 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
134
135         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
136         a pointer to the tutorial maintained as part of dbus-python
137
138 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
139
140         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
141         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
142         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
143
144 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
145
146         * tools/dbus-monitor.c: gettimeofday() is not available 
147         on windows so we have to provide our own. It's taken from 
148         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
149
150 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
151
152         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
153         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
154         is in dbus-sysdeps-win.c (not in this patch).
155
156         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
157         with InterlockedInc/Decrement. 
158         - Patches from Christian Ehrlicher
159         
160 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
161
162         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
163
164 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
165
166         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
167         fix mispaced const statement. - Patch from Peter Kümmel
168
169 2006-12-19  Ray Strode  <rstrode@redhat.com>
170
171         * bus/bus.c (process_config_every_time):
172         don't overwrite existing bus context activation object
173         until after we've checked that the new activation is
174         valid.
175
176         * bus/main.c 
177         (signal_handler), (handle_reload_watch):
178         don't call exit() on failure, instead make do and keep
179         going.
180         (close_reload_pipe): new function to turn off
181         hangup-causes-config-reload behavior if an unexpected
182         error occurs
183
184 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
185
186         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
187         correctness fix. - Patch from Christian Ehrlicher
188
189 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
190
191         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
192         we should also use it. - Patch from Christian Ehrlicher
193
194 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
195   
196         * dbus-sysdeps-util.c: added win32 related tests
197
198 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
199
200         * dbus/dbus-string.c (_dbus_string_pop_line),
201         bus/desktop-file.c (parse_section_start,
202         parse_comment_or_blank,parse_key_value,): uses
203         _dbus_string_find_eol() to support platform independent eol style.
204
205 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
206
207         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
208         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
209               _dbus_string_find_eol().
210         Approved by: Havoc Pennington.
211
212 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
213
214         * configure.in: Added switch to disable user_database caching.
215
216         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
217         be able disable user_dabase caching.
218
219 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
220
221         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
222         struct. It is unnecessary we have a global one already. Also remove 
223         bus_context_get_user_database function, it is no longer needed.
224         Flush the global database on reload.
225
226         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
227         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
228
229         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
230         Add _dbus_user_database_flush_system. 
231         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
232         Small unrelated change in _dbus_is_a_number: change 
233         _dbus_string_parse_int to _dbus_string_parse_uint. 
234
235         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
236         _dbus_groups_from_uid.
237
238         * bus/policy.c, bus/policy.h: Change call to 
239         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
240         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
241         needs it.
242
243 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
244
245         * bus/signal.c: Fix match_rule_equal errata
246         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
247         <kimmo.hamalainen@nokia.com>)
248
249 2006-11-19  Thiago Macieira  <thiago@kde.org>
250
251         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
252         _dbus_pthread_condvar_wait,
253         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
254         pthread_self() after coming back from a conditional variable
255         wait as well as in one codepath where it was forgotten.
256         Approved by: Havoc Pennington.
257
258 2006-11-17  Havoc Pennington  <hp@redhat.com>
259
260         * update-dbus-docs.sh: allow setting fd.org username via env
261         variable. Make it run autogen with --enable-xml-docs=yes
262         --enable-doxygen-docs=yes so configure will fail if the required
263         tools are missing.
264
265 2006-11-17  Havoc Pennington  <hp@redhat.com>
266
267         * doc/dbus-faq.xml: minor FAQ tweaks
268
269 2006-11-14  Havoc Pennington  <hp@redhat.com>
270         
271         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
272         dbus_get_local_machine_id() to its own file, no substantive
273         changes. There are a couple other things we might want to add that
274         are "misc" so moving out of dbus-connection.[hc] which is big
275         enough already.
276         
277 2006-11-14  Havoc Pennington  <hp@redhat.com>
278
279         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
280         UUID had the timestamp last, but the implementation had it first;
281         move it to last since I think it's a tiny bit nicer (easier to
282         compare at a glance, faster to sort, less code), and will not
283         cause any practical compatibility problems. Also, always convert
284         the timestamp to big endian.
285
286         * doc/dbus-specification.xml: Clean up the docs on the UUID.
287
288         * tools/dbus-uuidgen.1: more prominently say it is not suitable
289         as a replacement for regular uuidgen/RFC4122.
290
291 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
292
293         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
294         the correct value so we don't assert when initalizing recursive threads
295
296         * test/name-test/test-thread-init.c: call dbus_threads_init_default
297         instead of _dbus_threads_init_debug since it is more of a real world
298         test
299
300 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
301
302         * Released 1.0.0
303
304 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
305
306         * AUTHORS: added Peter and Tor of windows porting fame
307
308 2006-11-08  Havoc Pennington  <hp@redhat.com>
309
310         * doc/dbus-specification.xml: add a note about protocol stability
311
312         * doc/TODO: Remove "important for 1.0" section, replace with
313         "important for 1.2" section
314         
315 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
316
317         * README: remove some of the out of date flags
318
319         * doc/TODO: Remove todo items which are done
320
321 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
322
323         * tools/dbus-monitor.c: Handle sigint so we flush stdout
324         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
325
326 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
327
328         * tools/dbus-monitor.1: update the manpage for dbus-monitor
329         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
330
331 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
332
333         * AUTHORS: Update with all people listed in the ChangeLog
334
335 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
336
337         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
338         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
339
340 2006-11-07  Havoc Pennington  <hp@redhat.com>
341
342         * HACKING: Update release instructions to include stuff about
343         stable releases, branching, etc. May not be totally correct,
344         please fix if needed, but keep instructions up-to-date so we do
345         each stable release consistently in the future.
346
347 2006-11-07  Havoc Pennington  <hp@redhat.com>
348
349         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
350         documentation updates. Bump faq/spec versions (not to 1.0; I don't
351         think the spec will be "finished"/1.0 when we ship the 1.0 library).
352
353 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
354
355         * bus/bus.c: Missed patch - pass in the context to the directory watch
356
357 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
358
359         * Released D-Bus 1.0 RC 3(0.95)
360
361 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
362
363         * bus/activation.c (bus_activation_new): don't fail if we can not read
364         the directory as it may not exist
365
366 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
367
368         * bus/config-parser.c (service_dirs_find_dir): use 
369         _dbus_list_get_next_link so we don't get stuck in an infinite loop
370         (start_busconfig_child): move processing of standard_session_servicedirs
371         tags here because they have no content
372         (bus_config_parser_content): check we don't have content in 
373         standard_session_servicedirs tag
374
375 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
376
377         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
378         Packagers need to own this directory
379
380 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
381
382         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
383         <standard_session_servicedirs> tag with a <sevicedir> tag that
384         points to the test service directory
385
386 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
387
388         * configure.in: Add a check for DIR *dirp->dd_fd
389
390         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
391         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
392         of both Solaris and Irix
393
394 2006-11-01  Havoc Pennington  <hp@redhat.com>
395
396         * bus/dbus-daemon.1.in: document standard_session_servicedirs
397
398 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
399
400         * configure.in: expose DBUS_DATADIR
401         
402         * bus/config-parser.c: add the standard_session_servicedirs element
403         to the parser
404         (bus_config_parser_content): process the standard_session_servicedirs
405         element by getting the standard directories from sysdeps and merging
406         them into the service directory list
407         (test_default_session_servicedirs): make sure we get what we expect
408
409         * bus/session.conf.in: replace the servicedir tag with the 
410         standard_session_servicedirs tag
411
412         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
413         dbus-sysdeps.h to avoid circular header dependencies
414
415         * dbus/dbus-sysdeps.h: add the typedef of DBusList
416
417         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
418         which takes a string of directories delimited by colons, parses them 
419         out, appends a suffix and puts them in a list ignoring empty elements
420         (_dbus_get_standard_session_servicedirs): returns the standard 
421         directories for a session bus to look for service activation files
422         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
423         DBUS_DATADIR directories
424
425         * test/data/valid-config-files/many-rules.conf: add the 
426         standard_session_servicedirs tag to the valid config file tests
427
428 2006-10-30  Havoc Pennington  <hp@redhat.com>
429
430         * tools/dbus-launch.1, doc/TODO: capture intent to change the
431         command line options of dbus-launch a bit post 1.0
432
433 2006-10-27  Havoc Pennington  <hp@redhat.com>
434         
435         * dbus/dbus-connection.c (dbus_connection_open_private): document
436         how to choose shared vs. private connections
437
438 2006-10-27  Havoc Pennington  <hp@redhat.com>
439
440         * dbus/dbus-test.c: enclose more of the file in the
441         DBUS_BUILD_TESTS check.
442
443         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
444         DBUS_DISABLE_ASSERT case.
445
446         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
447         that it only works on the server side
448
449         * dbus/dbus-bus.c: add a global lock covering the BusData we
450         attach to each connection
451         (internal_bus_get): lock our access to the BusData
452         (dbus_bus_register): lock the entire registration process
453         with _DBUS_LOCK(bus_datas). If we get the lock and 
454         registration is already complete, silently return (vs. previous
455         behavior of aborting).
456         (dbus_bus_set_unique_name): lock the BusData
457         (dbus_bus_get_unique_name): lock the BusData
458
459 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
460
461         * bus/config-parser.c (service_dirs_find_dir, 
462         service_dirs_append_unique_or_free, 
463         service_dirs_append_link_unique_or_free): New static methods
464         for only appending unique service directory names into
465         the service directory list
466         (merge_included, bus_config_parser_content): Only add unique
467         service directory names into the list
468
469 2006-10-27  Havoc Pennington  <hp@redhat.com>
470
471         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
472         variables volatile, suggested by Thiago. Document struct fields.
473         (PTHREAD_CHECK): remove pthread error checking if assertions are
474         disabled, should reduce the no-assertions case to the bare
475         minimum code.
476
477 2006-10-26  Havoc Pennington  <hp@redhat.com>
478         
479         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
480         to be recursive
481         (_dbus_pthread_mutex_unlock): make it recursive
482         (_dbus_pthread_condvar_wait): save/restore the recursion count
483         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
484
485 2006-10-26  Havoc Pennington  <hp@redhat.com>
486
487         * doc/dbus-specification.xml: clarify the UUID text slightly
488
489         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
490         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
491         in preparation for being able to extend them for e.g. recursive
492         mutexes.
493
494 2006-10-26  Havoc Pennington  <hp@redhat.com>
495
496         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
497         condition variables relate to recursive mutexes.
498         
499         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
500         dbus/dbus-threads.c: Split the platforms-specific thread 
501         implementations into their own files.
502         
503         * dbus/dbus-sysdeps-pthread.c
504         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
505         was backward. Not that anything uses it.
506
507 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
508
509         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
510         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
511         needs to be cleaned up more.
512
513         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
514         up the CREDS issue.
515
516 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
517
518         * configure.in, dbus-1.pc.in: Check to see if thread methods 
519         are in glibc or libpthread and add -lpthread to the link stage 
520         if it is the latter
521
522 2006-10-26  Thiago Macieira  <thiago@kde.org>
523
524         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
525         bug 8780: the connection lock is only required while recording
526         the shared connection, so protect only that code
527         section. Don't require connection_lookup_shared to return a
528         locked connection.
529
530 2006-10-26  Thiago Macieira  <thiago@kde.org>
531
532         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
533         check if get_machine_uuid() returns NULL before proceeding any
534         further: we can't init the X atoms or create a session file
535         name if there is no machine ID.
536         This solves a crash reported by some users if
537         --exit-with-session was used without --autolaunch=<machine-id>
538
539 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
540
541         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
542         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
543
544         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
545         before we run dbus-launch
546
547         * configure.in: define TEST_BUS_BINARY to be the full path to 
548         dbus-daemon in the build root 
549
550 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
551
552         * dbus/Makefile.am:
553         * tools/Makefile.am:
554         * toos/dbus-uuidgen.1:
555                 Move the machine-id file to /var/lib/dbus 
556
557 2006-10-24  David Zeuthen  <davidz@redhat.com>
558
559         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
560         _dbus_assert (thread_init_generation != _dbus_current_generation)
561         not _dbus_assert (thread_init_generation == _dbus_current_generation)
562
563 2006-10-24  Thiago Macieira  <thiago@kde.org>
564
565         * dbus/dbus-sysdeps.h:
566         * dbus/dbus-sysdeps-unix.c: Add function
567         _dbus_make_file_world_readable that chmods a file to 0644.
568
569         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
570         Avoid writing to the static "argv" array, thereby avoiding a
571         COW on the child process.
572
573         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
574         call _dbus_make_file_world_readable on the created file.
575
576 2006-10-23  David Zeuthen  <davidz@redhat.com>
577
578         * dbus/dbus-memory.c: Use atomic variable to protect
579         n_blocks_outstanding otherwise OOM will be reported using SMP on
580         some arches
581         
582         * bus/dispatch.c: Add missing end of line characters
583
584         * bus/desktop-file.c (parse_section_start, parse_key_value) 
585         (bus_desktop_file_load): Propertly handle OOM
586
587         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
588         thread_init_generation equals _dbus_current_generation, not 0
589
590 2006-10-22  Havoc Pennington  <hp@redhat.com>
591
592         * dbus/dbus-connection-internal.h: move prototype of
593         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
594         it isn't in a public header and doesn't end up in the DBusBus
595         group in Doxygen
596
597 2006-10-21  Havoc Pennington  <hp@redhat.com>
598
599         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
600         the tarball if packagers want to run it
601
602         * cleanup-man-pages.sh: Add a script which munges all the internal
603         API man pages out of the Doxygen output. This reduces the size of
604         the installed man pages from 7 to 2 megs, and avoids
605         namespace-polluting pages. Right now (like Doxygen) this script
606         isn't in the build, it's something packagers can do manually.
607
608 2006-10-21  Havoc Pennington  <hp@redhat.com>
609
610         * dbus/dbus-connection.h: don't include the watch/timeout
611         functions in connection section
612
613 2006-10-21  Havoc Pennington  <hp@redhat.com>
614
615         * Documentation! Whee! Doxygen now 100% silent. If you make it
616         angry again, you will be punished.
617         
618 2006-10-21  Havoc Pennington  <hp@redhat.com>
619
620         * More documentation - all public API now documented according to
621         Doxygen
622
623 2006-10-21  Havoc Pennington  <hp@redhat.com>
624
625         * Document a bunch of undocumented stuff
626         
627 2006-10-21  Havoc Pennington  <hp@redhat.com>
628
629         * Clean up Doxygen group markers for public API so Doxygen finds
630         everything (not comprehensively fixed for private API).
631         Means all remaining Doxygen warnings are just about missing docs
632         and thus pretty simple to resolve.
633         
634 2006-10-21  Havoc Pennington  <hp@redhat.com>
635         
636         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
637
638         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
639         as DBUS_GNUC_DEPRECATED
640
641 2006-10-21  Havoc Pennington  <hp@redhat.com>
642
643         * Move all private API into the private Doxygen group sections of
644         the files, so they don't show up in the public API docs
645         
646 2006-10-21  Havoc Pennington  <hp@redhat.com>
647
648         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
649         dbus_message_iter_get_array_len().
650
651         * throughout: documentation improvements.
652
653 2006-10-20  Havoc Pennington  <hp@redhat.com>
654
655         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
656         matter, and the message-loader-breaker thing since nobody is going
657         to do it.  Add an item to 1.0 about supporting recursive locks
658         in dbus_threads_init_default() though, since it should be easy.
659
660         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
661         Fix this in the !dispatch case to avoid busy-looping after
662         disconnection
663
664         * More misc docs improvements
665
666 2006-10-19  Havoc Pennington  <hp@redhat.com>
667
668         * more Doxygen-related fixes (lots of moving things from the
669         public to internal section in dbus-connection.c)
670
671 2006-10-19  Havoc Pennington  <hp@redhat.com>
672
673         * Fix a pile of Doxygen warnings and missing docs
674
675 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
676
677         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
678         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
679         instead of a void *.  kqueue uses this to get the context's loop
680         while the other modules ignore the parameter.  This allows us to
681         avoid platform conditionals
682
683         * bus/bus.c (process_config_postinit): Pass in the context to the 
684         watch
685
686 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
687
688         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
689         when starting the system bus
690
691 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
692
693         * configure.in: More fixups for cross compile (Patch from 
694         Marco Pracucci <development at pracucci dot com>)
695
696 2006-10-17  Havoc Pennington  <hp@redhat.com>
697
698         * tools/dbus-send.c (main): don't close shared connection, fix
699         from Timo Hoenig
700
701 2006-10-17  Havoc Pennington  <hp@redhat.com>
702
703         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
704
705         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
706         since realistically it doesn't look like we'll be changing it
707         anymore.
708
709 2006-10-17  Havoc Pennington  <hp@redhat.com>
710
711         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
712         be used for return_if_fail type warnings; prefixes the pid, and
713         fatal by default.
714
715 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
716
717         * configure.in: Released 1.0 RC 2(0.94)
718         Add check for -fPIC and enable it if available
719
720 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
721
722         * doc/TODO: Remove the check TODO item
723
724 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
725
726         * dbus-transport-socket.c (exchange_credentials):
727         Print out more detailed errors if reading or sending
728         credentials fail (Patch from Julio M. Merino Vidal 
729         <jmmv at NetBSD dot org>)
730
731 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
732
733         * configure.in: when checking for posix getpwnam_r assume true
734         for cross compiles
735
736 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
737
738         * configure.in: Check for gethostbyname first before we check for it
739         in libnsl.  On gnu systems it is implemeneted 
740
741 2006-10-13  Havoc Pennington  <hp@redhat.com>
742
743         * dbus/dbus-connection.c
744         (dbus_connection_send_with_reply_and_block): fix to handle closed
745         connections, from Tambet Ingo bug #8631
746
747 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
748
749         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
750
751 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
752
753         * test/name-test/Makefile.am: don't link against both libdbus and
754         libdbus-convenience
755
756 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
757
758         * configure.in: check for dirfd even if it is a macro
759         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
760
761 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
762
763         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
764         avoid using dirfd on systems that don't have dirfd 
765         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
766
767 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
768
769         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
770         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
771
772         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
773         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
774         macro because _dbus_abort calls it
775
776         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
777         works
778
779 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
780
781         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
782         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
783
784 2006-10-02  Thiago Macieira  <thiago@kde.org>
785
786         * tools/dbus-launch.c (main): make it complain and abort
787         execution in case an unknown option is given. Also, process
788         the '--' argument as the end of arguments.
789
790 2006-10-01  Havoc Pennington  <hp@redhat.com>
791
792         * tools/dbus-launch.c (print_variables): if no syntax is given,
793         don't print something that's sort-of-half-sh-syntax, just print
794         a plain key-value pairs thing.
795
796         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
797         the local machine representation (but still have the hostname in
798         the display). Remove the hostname from the display if it is
799         localhost. Change session files to be named
800         ~/.dbus/session-bus/machine-display. Change X atoms to be
801         underscore-prefixed so nobody whines about ICCCM compliance.
802         Otherwise name them the same as the env variables.
803         Change session file format to include key-value pairs and an
804         explanatory comment. Keys are the same as the env variables.
805         (set_address_in_x11): X property format can't depend on
806         sizeof(pid_t) on a particular machine, fix to always be 32 bits
807
808         * tools/dbus-launch.c: make --autolaunch take a machine id
809         argument. If --autolaunch is used with a program to run, complain
810         for now (but add a FIXME). Also, don't look for existing bus if 
811         there's a program to run (but add a FIXME).
812
813         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
814         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
815         just to get this, and avoids duplicating uuid-reading code).
816
817         * tools/dbus-launch.1: clarify various things
818         
819 2006-10-01  Havoc Pennington  <hp@redhat.com>
820
821         * test/test-service.c (path_message_func): remove broken extra
822         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
823
824         * test/test-shell-service.c (path_message_func): same fix
825         
826         * dbus/dbus-connection.c
827         (_dbus_connection_get_dispatch_status_unlocked): break up the
828         function a little for clarity and fix the notification of
829         dbus-bus.c to not require dispatch to be complete
830
831         * dbus/dbus-connection.c (dbus_connection_unref): improve the
832         warning when you try to finalize an open connection.
833         
834 2006-10-01  Havoc Pennington  <hp@redhat.com>
835
836         * dbus/dbus-bus.c
837         (internal_bus_get): only weak ref the connection; this means 
838         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
839         called safely in any context
840         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
841         unref
842
843         * dbus/dbus-connection.c
844         (_dbus_connection_get_dispatch_status_unlocked): move
845         _dbus_bus_notify_shared_connection_disconnected_unlocked here
846         when queuing Disconnected instead of when the Disconnected message
847         arrives, so dbus_bus_get() won't return closed connections.
848         
849 2006-10-01  Havoc Pennington  <hp@redhat.com>
850
851         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
852         Add a hack to make DBusNewConnectionFunction work right.
853
854         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
855         the hack here. Also, fix the todo about refcount leak.
856         
857         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
858         and use the hack here
859         
860         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
861         "shareable" flag; this was completely broken, since it meant 
862         dbus_connection_open() returned a connection of unknown
863         shared-ness. Now, we always hold a ref on anything opened 
864         as shareable.
865
866         Move the call to notify dbus-bus.c into
867         connection_forget_shared_unlocked, so libdbus consistently forgets
868         all its knowledge of a connection at once. This exposed numerous
869         places where things were totally broken if we dropped a ref inside
870         get_dispatch_status_unlocked where
871         connection_forget_shared_unlocked was previously, so move
872         connection_forget_shared_unlocked into
873         _dbus_connection_update_dispatch_status_and_unlock. Also move the
874         exit_on_disconnect here.
875
876         (shared_connections_shutdown): this assumed weak refs to the
877         shared connections; since we have strong refs now, the assertion 
878         was failing and stuff was left in the hash. Fix it to close
879         still-open shared connections.
880         
881         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
882         debug pipe connections
883         
884         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
885         dbus-bus.c if the closed connection is in fact shared
886         (_dbus_connection_close_possibly_shared): rename from 
887         _dbus_connection_close_internal
888         (dbus_connection_close, dbus_connection_open,
889         dbus_connection_open_private): Improve docs to explain the deal
890         with when you should close or unref or both
891
892         * dbus/dbus-bus.c
893         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
894         from _dbus_bus_check_connection_and_unref_unlocked and modify to
895         loop over all connections
896
897         * test/test-utils.c (test_connection_shutdown): don't try to close
898         shared connections.
899
900         * test/name-test/test-threads-init.c (main): fix warnings in here
901
902         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
903         env variable to cause blocking waiting for gdb; drop
904         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
905         unconditionally.
906
907         * configure.in: add -export-dynamic to libtool flags if assertions enabled
908         so _dbus_print_backtrace works.
909
910         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
911         instead of _dbus_verbose to print the backtrace, and diagnose lack 
912         of -rdynamic/-export-dynamic
913         
914 2006-09-30  Havoc Pennington  <hp@redhat.com>
915
916         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
917         (internal_bus_get): fix screwy code formatting. whoever committed
918         that was not paying attention!
919
920 2006-09-30  Havoc Pennington  <hp@redhat.com>
921
922         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
923         reflect addition of interfaces.
924
925         * doc/dbus-specification.xml: describe a new
926         org.freedesktop.DBus.Peer.GetMachineId method
927
928         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
929         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
930         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
931         at end of skip_white
932         (_dbus_string_chop_white): new function
933
934         * bus/connection.c (bus_connections_setup_connection): call
935         dbus_connection_set_route_peer_messages.
936
937         * dbus/dbus-connection.c
938         (_dbus_connection_peer_filter_unlocked_no_update): modify to
939         support a GetMachineId method.
940
941         Also, support a new flag to let the bus pass peer methods through
942         to apps on the bus, which can be set with
943         dbus_connection_set_route_peer_messages.
944
945         Finally, handle and return an error for anything unknown on the
946         Peer interface, which will allow us to extend the Peer interface
947         in the future without fear that we're now intercepting something
948         apps were wanting to see.
949         
950         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
951         dbus/dbus-uuidgen.c
952
953         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
954         binary here, since most of the code is already in libdbus
955
956         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
957         uuid from the system config file
958
959         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
960         (_dbus_read_uuid_file_without_creating) 
961         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
962         uuid-related functions, partly factored out from dbus-server.c
963
964         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
965         DBUS_ERROR_FILE_EXISTS instead of EEXIST
966
967         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
968
969         * tools/dbus-cleanup-sockets.1: explain what the point of this
970         thing is a bit more
971
972         * autogen.sh (run_configure): add --config-cache to default
973         configure args
974
975         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
976         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
977
978         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
979         don't try to save address, fixes crash in make check
980         
981 2006-09-30  Thiago Macieira  <thiago@kde.org>
982
983         * configure.in: add DBUS_BINDIR as a #define to C source code.
984
985         * tools/dbus-launch.c
986         * tools/dbus-launch.h
987         * tools/dbus-launch-x11.c:
988         * tools/dbus-launch.1: Add the --autolaunch option to
989         dbus-launch, which makes it scan for an existing session
990         started with --autolaunch. With that option, it also creates
991         an X11 window and saves the bus address and PID to it.
992
993         * dbus/dbus-sysdeps.h:
994         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
995         a function that runs "dbus-launch --autolaunch" to retrieve
996         the running D-Bus session address (or start one if none was running)
997
998         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
999         address protocol, which tries to get the running session from
1000         dbus-launch.
1001
1002         * dbus/dbus-bus.c:
1003         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1004         D-Bus session bus address.
1005
1006         * dbus/dbus-connection.c: Fix horrible typo in error message.
1007
1008 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1011
1012 2006-09-17  Havoc Pennington  <hp@redhat.com>
1013
1014         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1015         fix so that if unix_user_function is set on windows, we still
1016         do the default check that the auth identity matches the bus identity
1017
1018 2006-09-16  Havoc Pennington  <hp@redhat.com>
1019
1020         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1021         to _dbus_transport_open_platform_specific,
1022         _dbus_transport_open_socket,
1023         and _dbus_transport_open_debug_pipe
1024
1025         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1026
1027 2006-09-16  Havoc Pennington  <hp@redhat.com>
1028
1029         Attempt auditing public API to remove all cases where a Unix
1030         function returns weird emulated goo to Windows. This probably 
1031         breaks the bus daemon on Windows, to fix it again we may 
1032         need to stop processing unix-specific config options on Windows,
1033         and may need to add Windows-specific public API or config options.
1034         
1035         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1036         to reflect added interfaces; should not break soname.
1037         
1038         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1039         not invoke unix user function on Windows. Kind of a hacky fix, but 
1040         we don't want a "unix uid" leaking out on Windows.
1041
1042         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1043         to get the socket fd on Windows or UNIX
1044         (dbus_connection_get_unix_fd): make this always fail on Windows
1045
1046 2006-09-16  Havoc Pennington  <hp@redhat.com>
1047
1048         * dbus/dbus-server.c (dbus_server_listen): change how this works
1049         to be able to delegate to a set of handlers that can succeed,
1050         fail, or choose not to handle. Allows us to have 
1051         dbus_server_listen_platform_specific.
1052
1053         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1054         factor out the tcp socket stuff to be used on windows, leaving
1055         unix domain socket only in dbus-socket-unix.c
1056
1057         * dbus/dbus-transport-socket.c
1058         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1059         stuff to be used on windows, leaving unix domain socket only 
1060         in dbus-transport-unix.c
1061
1062         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1063         temporary hack to be sure this fails on windows
1064         (dbus_connection_get_unix_process_id): ditto
1065
1066 2006-09-16  Havoc Pennington  <hp@redhat.com>
1067
1068         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1069         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1070         _dbus_open_socket so the domain/type/protocol from system headers
1071         are not required. This is kind of pointless though unless we move
1072         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1073         sysdeps-unix.c, which would mean adding a wrapper around
1074         bind/listen/etc.
1075         Also, add DBusError to the socket-opening functions so they 
1076         don't require use of errno.
1077
1078 2006-09-16  Havoc Pennington  <hp@redhat.com>
1079
1080         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1081         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1082
1083         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1084         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1085         functions specifically for sockets only, and move generic 
1086         read/write/open/close into unix-specific code.
1087
1088 2006-09-14  Havoc Pennington  <hp@redhat.com>
1089
1090         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1091         complaint about accessing revents when poll returns 0, from Julian Seward.
1092
1093 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1094
1095         * Released 1.0 RC 1 (0.93) 
1096
1097 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1098
1099         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1100         use _dbus_close instead of close
1101
1102 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1103
1104         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1105         credentials.  Fixes "external" authentication under e.g. NetBSD
1106         which does not support any other socket credentials mechanism.
1107         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1108
1109 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1110
1111         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1112         dbus_threads_init and be used by the dbus mutex functions to
1113         avoid deadlocks.
1114
1115         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1116
1117 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1118
1119         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1120         use threadsafe readdir_r instead of readdir
1121
1122 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1123
1124         * dbus-threads.c (dbus_threads_init_default): New method for
1125         initializing the internal thread implementation (Patch from
1126         Alexander Larsson <alexl at redhat dot com>)
1127
1128 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1129
1130         * remove a bunch of todo items from the 1.0 list
1131
1132 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1133
1134         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1135         key not found
1136
1137 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1138
1139         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1140         complex debugging code
1141
1142         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1143         between the test suite ifdefs
1144         (_dbus_verbose_bytes): return if verbosity is not enabled 
1145
1146 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1147
1148         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1149         remove DBusMark
1150
1151 2006-09-10  Havoc Pennington  <hp@redhat.com>
1152
1153        patch mostly by Peter Kümmel, bug #8211
1154         
1155         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1156         unix-specific stuff in dbus-sysdeps.c
1157
1158         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1159         and move unix-specific stuff to dbus-sysdeps-unix.c
1160
1161         * configure.in: check HAVE_ERRNO_H
1162         
1163 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * bus/test-main.c (main): Initialize threading during tests
1166
1167         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1168         Unlock connection on error
1169         (generate_local_error_message): static method for generating
1170         an error message when we don't have a message to reply to
1171         (_dbus_connection_block_pending_call): Send a disconnect error
1172         instead of just a timeout (NULL) when the bus gets disconnected
1173         while blocking for a reply.
1174         
1175 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1176
1177         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1178         filters (Patch from Kimmo Hämäläinen 
1179         <kimmo dot hamalainen at nokia dot com>)
1180
1181 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1182
1183         * dbus/dbus-connection-internal.h: Add prototype for 
1184         _dbus_connection_test_get_locks to remove warning
1185
1186 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1187
1188         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1189         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1190         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1191
1192 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * Clean up close calls to use _dbus_close (Patch from 
1195         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1196
1197 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1198
1199         * doc/TODO:
1200         - Remove pending call locking todo item
1201         - dbus_connection_open now holds hard ref.  Remove todo item
1202         - do proper locking on _dbus_bus_check_connection_and_unref
1203           and handle DBUS_BUS_STARTER. Remove todo item
1204         - Warn on closing of a shared connection.  Remove todo item
1205
1206         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1207         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1208         so we don't get the warning when closing shared connections
1209
1210         * test/test-service.c, test/test-shell-service.c: Applications
1211         don't close shared connections themselves so we unref instead of
1212         close
1213
1214         * test/test-utils.c (test_connection_shutdown): Close the connection
1215
1216         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1217         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1218         method on a locked connection.  
1219         Make sure we call _dbus_connection_unref_unlocked instead of 
1220         dbus_connection_unref also.
1221         Handle DBUS_BUS_STARTER correctly
1222
1223         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1224         Mark as shared and hard ref the connection
1225         (connection_forget_shared_unlocked): Remove the hard ref from the 
1226         connection
1227         (_dbus_connection_close_internal_and_unlock):  New internal function
1228         which takes a locked connection and unlocks it after closing it
1229         (_dbus_connection_close_internal): New internal function which acts
1230         like the origonal dbus_connection_close method by grabbing a connection
1231         lock and calling _dbus_connection_close_internal_and_unlock
1232         (dbus_connection_close): Public close method, warns when the app
1233         trys to close a shared connection
1234
1235 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1236
1237         * bus/driver.c:
1238         (bus_driver_generate_introspect_string): New method for populating
1239         a DBusString with the introspect data
1240         (bus_driver_handle_introspect): Move introspect generation code to 
1241         bus_driver_generate_introspect_string
1242
1243         * bus/main.c:
1244         (introspect): New function which prints out the intropect data and
1245         exits
1246         (main): Add a --introspect switch
1247
1248 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1249
1250         * doc/TODO: Removed dtd publishing item.  
1251         It seems the dtd has already been added at
1252         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1253
1254 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1255
1256         * doc/TODO, various source files: Audited todo's and FIXME's and
1257         prepended the ones we should be looking at with 1.0.  Those
1258         prepended with 1.0? need clerification or might not be needed
1259         for 1.0
1260
1261 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1262
1263         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1264         NULL in the public API (Patch from Kimmo Hämäläinen 
1265         <kimmo dot hamalainen at nokia dot com>)
1266
1267 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1268
1269         * configure.in: Fix for OS-X compile time endian issues (patch from
1270         Benjamin Reed <ranger at befunk dot com>)
1271
1272 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1273
1274         * configure.in: Check for no-common compiler flag (OS-X fix from
1275         Benjamin Reed <ranger at befunk dot com>)
1276
1277 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1280         <fcrozat at mandriva dot com>)
1281
1282 2006-08-29  Havoc Pennington  <hp@redhat.com>
1283
1284         * test/test-service.c (path_message_func): fix lack of return value
1285
1286         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1287         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1288         any more sense than on anything else in this file.
1289         (_dbus_get_tmpdir): add const to return value, and keep the
1290         results of the various getenv around in a static variable.
1291
1292 2006-08-29  Havoc Pennington  <hp@redhat.com>
1293
1294         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1295         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1296
1297 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1298
1299         * test/Makefile.am: change find to use syntax that works with non
1300         gnu versions of find
1301
1302 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * dbus/dbus-transport.c: fix invalid deref when checking if
1305         a vtable method exists (Patch from Christian Ehrlicher 
1306         <ch dot ehrlicher at gmx dot de>)
1307
1308 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1311         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1312         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1313         <bernard at brenda-arkle dot demon dot co dot uk>)
1314
1315 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1316
1317         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1318         default case
1319
1320 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1323         it works on any system providing this interface, not only FreeBSD.
1324         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1325
1326 2006-08-20  Havoc Pennington  <hp@redhat.com>
1327
1328         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1329         the docs
1330
1331 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * Released 0.92 
1334
1335 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1336
1337         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1338         to reflect the init late change
1339
1340         * bus/bus.c (bus_context_new): Check user before we fork so we can
1341         print out an error message a user will be able to see
1342
1343 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1346
1347         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1348         Add two more global locks for use on windows platforms.  These are
1349         unused on non-windows platforms but are not ifdefed out to avoid
1350         potential bugs (i.e. the few bytes lost does not warrent the extra
1351         maintanence and complexity that having seperate sets of locks would
1352         cause)
1353
1354 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * bus/services.c (bus_registry_acquire_service): Return an error
1357         when an application tries to register the org.freedesktop.DBus Bus Name
1358
1359         * bus/services.c (bus_registry_release_service): Return an error
1360         when an application tries to release the org.freedesktop.DBus Bus Name
1361
1362 2006-08-17  Alp Toker  <alp@atoker.com>
1363
1364         * doc/dbus-specification.xml: Fix some minor typos.
1365
1366 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * configure.in: use $with_init_scripts instead of $operating_system
1369         to determine where to store the pid since the init scripts manipulate 
1370         the pid file (patch from Marcelo Ricardo Leitner 
1371         <marcelo dot leitner at terra dot com dot br>.  
1372
1373 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1374
1375         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1376         static DBusList *uninitialized_condvar_list to support new late 
1377         initialization threading model.  In this model threads can be initialized
1378         even after the D-Bus API has been used but still needs to be initialized 
1379         before the second thread has been started.  Mutexes and condvar addresses
1380         are stored in the two static lists and are replaced with actuall locks
1381         when threads are initalized.
1382         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1383         the location into the static list
1384         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1385         from the static list and freeing the mutex
1386         (_dbus_condvar_new_at_location): New method for creating a conditional 
1387         variable and placing the location into the static list
1388         (_dbus_condvar_free_at_location): New method for removing a conditional
1389         variable location from the static list and freeing the conditional variable 
1390         (init_uninitialized_locks): Atomic method which goes through the static 
1391         lists of mutex and condvar location and updates them with actuall locks
1392         (init_global_locks): changed to init_locks
1393         
1394         * dbus/dbus-connection.c:
1395         (_dbus_connection_test_get_locks): New method for tests to check connections
1396         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1397         condvar API
1398         (dbus_connection_allocate_data_slot): Pass in the global lock address
1399         to _dbus_data_slot_allocator_alloc
1400
1401         * dbus/dbus-dataslot.c:
1402         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1403         instead of the mutex itself
1404
1405         * dbus/dbus-message.c:
1406         (dbus_message_allocate_data_slot): Pass in the global lock address
1407         to _dbus_data_slot_allocator_alloc
1408
1409         * dbus/dbus-pending-call.c:
1410         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1411         to _dbus_data_slot_allocator_alloc
1412
1413         * dbus/dbus-server.c:
1414         (_dbus_server_init_base): Use the new at_location mutex API
1415         (dbus_server_allocate_data_slot): Pass in the global lock address
1416         to _dbus_data_slot_allocator_alloc
1417
1418         * test/name-test/test-threads-init.c: New test case for late thread
1419         initialization
1420
1421 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1424         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1425         causes compile problems when asserts are turned off
1426         Keeping _dbus_warn for printing out the message so even if
1427         asserts are turned off the user gets the messages that something is 
1428         wrong 
1429
1430 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1431
1432         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1433
1434         * bus/services.c (bus_service_list_queued_owners):
1435         Add a pointer cast to fix compiler warning
1436
1437         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1438         return a NULL instead of FALSE since the return type
1439         is not expecting a boolean
1440
1441         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1442         Remove unused variable
1443
1444         * dbus/dbus-marshal-recursive-util.c (node_new):
1445         return a NULL instead of FALSE since the return type
1446         is not expecting a boolean
1447
1448         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1449         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1450         because we are expecting a pointer not a boolean
1451
1452         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1453         add void as the parameter so some compilers
1454         don't complain
1455
1456         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1457           _dbus_transport_new_for_tcp_socket):
1458         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1459         because we are expecting a pointer not a boolean
1460
1461         * test/shell-test.c (test_command_line):
1462         cast the second argument to _dbus_list_append to avoid compiler
1463         warnings
1464
1465         * test/test-names.c (main): remove unused variable
1466
1467         * test/test-service.c (check_hello_from_self_reply):
1468         Initialize echo_message and echo_reply to NULL
1469         
1470         * test/test-shell-service.c (handle_echo):
1471         Remove unused variable and cast the third parameter passed to
1472         dbus_connection_get_object_path_data to avoid compiler warrnings
1473
1474         * test/name-test/test-names.c (clear_message_queue):
1475         Remove unused function
1476
1477         * test/name-test/test-pending-call-dispatch.c:
1478         Fix format string in printf
1479
1480
1481 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * dbus/dbus-bus.c:
1484         * test/name-test/test-names.c:
1485         Remove test method dbus_bus_connection_get_unique_name because 
1486         we already have public method dbus_bus_get_unique_name that 
1487         does the exact same thing
1488
1489 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1490
1491         * dbus/dbus-signature.c:
1492         fix typos in Julio's previous patch which cause make check to fail
1493
1494 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1495
1496         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1497         In any case it was wrong since this is a test checking to see if
1498         address parsing is correct.  There was no need to get the true
1499         tmp directory.  
1500
1501 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1502
1503         * dbus/dbus-macros.h: Revert the addition of stddef.h
1504         as we should not be adding it to library headers 
1505
1506 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1507
1508         * dbus/dbus-signature.c:
1509         Fix the unit tests so that they work if assertions are not enabled.
1510         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1511
1512 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1513
1514         * tools/run-with-tmp-session-bus.sh:
1515         * test/name-test/run-test.sh:
1516         Remove bashisms (patch from Julio M. Merino Vidal
1517         <jmmv at NetBSD dot org>)
1518
1519 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1520
1521         * configure.in: add a version (>= 2.6.0) check for libxml2
1522
1523 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * configure.in: make sure the compiler supports -Wfloat-equal
1526         
1527         * bus/dir-watch-dnotify.c: move functional code after 
1528         variable declerations (C99 fix)  (patches from Jens Granseuer
1529         <jensgr at gmx dot net>
1530
1531 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1532
1533         * dbus/dbus-macros.h:
1534         add #include <stddef.h> so that Sun compilers don't complain about
1535         the defining NULL
1536
1537 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1538
1539         * dbus/dbus-sysdeps.c:
1540         * dbus/dbus-address.c:
1541         * bus/activation.c:
1542         * test/shell-test.c:
1543         don't hardcode tmp directory (patch from Dave Meikle 
1544         <dmk at davemeikle dot co dot uk>)
1545
1546 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1547
1548         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1549         Change an assert to a detailed warning and abort.  
1550         When allocator->lock != mutex it indicates that the user has failed
1551         to initalize threads before using the D-Bus library.  This warning
1552         helps the user identify the issue and fix their app.
1553
1554 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1557         with cleanups of bugs found from Coverity reports:
1558
1559         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1560         close the file on error to avoid a leak
1561
1562         * bus/expirelist.c (bus_expire_list_test):
1563         Check for NULL on dbus_new0
1564
1565         * bus/activation.c (update_directory):
1566         remove dead code
1567
1568         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1569         Fix some leaks
1570
1571         * bus/bus.c (process_config_every_time):
1572         Fixed a leak
1573
1574         * bus/desktop-file.c (parse_key_value):
1575         Fixed leak
1576
1577         * bus/selinux.c (bus_selinux_id_table_insert):
1578         Fixed leak
1579
1580 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1581
1582         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1583         remove dead code
1584
1585 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1588         #!/bin/bash
1589
1590 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1591
1592         * Doxyfile.in: fix the INPUT line so we can generate docs 
1593         when sourcedir != builddir (patch from Cygwin Ports maintainer
1594         <yselkowitz at users dot sourceforge dot net>
1595
1596 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         * dbus/dbus-sysdeps.h:
1599         * dbus/dbus-sysdeps.c: 
1600         * dbus/dbus-string.c: 
1601         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1602         GLib's function which does the same thing
1603
1604         * configure.in:
1605         * bus/Makefile.am:
1606         * bus/dir-watch-default.c:
1607         * bus/dir-watch-dnotify.c:
1608         * bus/dir-watch-kqueue.c:
1609         Add kqueue directory watching for freebsd and split the directory
1610         watching code into seperate files per method/arch
1611         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1612
1613 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1614
1615         * configure.in:
1616         * tools/Makefile.am:
1617         * tools/dbus-launch.c:
1618         * bus/Makefile.am:
1619         allow --with-dbus-daemondir switch to be used to make the
1620         daemon install to a seperate bindir like /usr/libexec
1621         (patch from Brian Cameron <brian dot cameron at sun dot com)
1622
1623 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1624
1625         * bus/Makefile.am (install-data-hook): removed the slash after 
1626         $(DESTDIR) so we don't get the double slash which does not work
1627         in windows (patch from Andras Porjesz 
1628         <andras dot porjesz at siemens dot com>)
1629
1630 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1631
1632         * dbus/dbus-sysdeps.h:
1633         * dbus/dbus-sysdeps.c: 
1634           add _dbus_printf_length (patch from Peter Kümmel 
1635           <syntheticpp at gmx dot net>)
1636
1637 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1638
1639         * dbus/dbus-internals.c: unistd.h is not used 
1640         (_dbus_verbose_real): only enable verbose printing 
1641         if DBUS_VERBOSE environment var is set to '1'
1642         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1643
1644 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1647         so we still compile on older gcc (patch from Frederic Peters 
1648         <fpeters at 0d dot be>
1649
1650 2006-08-04  Havoc Pennington  <hp@redhat.com>
1651
1652         * configure.in: add -Wdeclaration-after-statement
1653
1654         * dbus/dbus-connection.c: change all the pending call stuff to
1655         reflect the fact that pending call operations use the connection
1656         lock
1657
1658         * dbus/dbus-pending-call.c: add locking here
1659
1660         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1661         field const consistent with how message field is done
1662
1663 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1664
1665         * s/D-BUS/D-Bus/g
1666
1667 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1668
1669         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1670         <in7y118 at public.uni-hamburg dot de> - fix invalid
1671         read/write reported by valgrind
1672
1673 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * Released 0.91
1676
1677 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1678
1679         * dbus/dbus-connection.c:
1680         (_dbus_connection_attach_pending_call_unlocked):
1681         (connection_timeout_and_complete_all_pending_calls_unlocked):
1682         Make sure we set timeout_added on pending calls to FALSE when
1683         we remove the timeout from the connection
1684
1685 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * Removed some extra bindings stuff lingering around (thanks timo)
1688         * dbus-pendingcall.c (_dbus_pending_call_new): 
1689         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1690         when we tried to take a lock on an already locked connection
1691
1692 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1693
1694         * Released 0.90
1695
1696 2006-07-17  Havoc Pennington  <hp@redhat.com>
1697
1698         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1699         ints, reported by Owen Taylor
1700
1701 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1702
1703         * doc/TODO:
1704         * dbus/dbus-bus.c:
1705         * dbus-errors.c:
1706         * dbus/dbus-marshal-validate.c:
1707           Removed TODO items which were fixed or are no longer relevent
1708
1709 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1712         Remove stray files from the stripped bindings
1713
1714 2006-07-16  Havoc Pennington  <hp@redhat.com>
1715
1716         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1717         Improve the error message on reply timeout
1718
1719 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1720
1721         * Remove all bindings
1722
1723 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1724
1725         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1726         and set pending_reply out arg to NULL is connection is disconnected
1727         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1728         static method for cleaning up pending calls on disconnect
1729         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1730         calls queued timeouts on disconnect 
1731
1732          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1733         Remove 
1734
1735 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1736
1737         * bus/activation.[ch] (bus_activation_list_services): new function to 
1738         get the list of services that can be activated
1739
1740         * bus/dispatch.c: test coverage for the new bus method
1741         ListActivatableNames
1742
1743         * bus/driver.c: new bus method ListActivatableNames to get the list of
1744         services that can be activated
1745
1746         * doc/dbus-specification.xml: ListActivatableNames method documentation
1747
1748 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1749         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1750         source files
1751
1752 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1753         * dbus/dbus-message-factory.c:
1754         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1755
1756 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1757         * dbus/dbus-connection-internal.h:
1758         * dbus/dbus-connection.c:
1759         * file dbus/dbus-pending-call.c:
1760         * dbus/dbus-pending-call.h:
1761         Make DBusPendingCall an opaque type even to D-Bus internals
1762
1763 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1764
1765         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1766         connection_close
1767
1768         * dbus/dbus-connection.c: include dbus-bus.h
1769         (_dbus_connection_read_write_dispatch): make static
1770
1771 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1772
1773         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1774         function
1775         (dbus_connection_dispatch): On disconnect unref any shared connections
1776
1777         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1778         for cleaning up shared connections on disconnect
1779         (internal_bus_get): get a hard refrence to shared connections when
1780         they are created
1781         
1782         * doc/TODO: Remove items which are no longer relevent or have been fixed
1783         Split 1.0 todo items with a 0.90 freeze todo list
1784  
1785 2006-06-14  Ross Burton  <ross@openedhand.com>
1786
1787         * glib/dbus-gobject.c:
1788         Free a leaking GArray (surely not!) in dbus_g_method_return.
1789
1790 2006-06-14  Ross Burton  <ross@openedhand.com>
1791
1792         * tools/Makefile.am:
1793         * tools/dbus-monitor.c:
1794         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1795         Habacker).
1796         
1797 2006-06-14  Ross Burton  <ross@openedhand.com>
1798
1799         * tools/dbus-print-message.c:
1800         Also print the object path when outputting signals or method calls.
1801
1802 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1803
1804         * qt/src/Makefile.am: install the qdbus.h header.
1805         This allows people to actually use the installed code.
1806
1807 2006-06-12  Ross Burton  <ross@openedhand.com>
1808
1809         * glib/dbus-gproxy.c:
1810         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1811
1812 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1813
1814         * Released 0.62
1815
1816 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1817
1818         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1819         break pedantic builds. Closes bug 6043 (patch approved by
1820         Havoc back in February).
1821
1822 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1823
1824         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1825         that took a QDBusMessage parameter.
1826         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1827         * qt/tools/dbus.cpp: Don't use automatic call because we might
1828         be calling an async method: request a reply.
1829
1830 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1831
1832         * test/qt/*: Update the testcases, including testing the new
1833         functionality of sending null QByteArray and QString over the
1834         bus. Add new headertest test and restore the old
1835         qdbusxmlparser test.
1836
1837 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1838
1839         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1840         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1841
1842         * qt/examples/Makefile.am:
1843         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1844         form.
1845
1846         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1847         QByteArray() (nulls) over the bus.
1848         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1849         the one that has the signature suffix stripped.
1850         * qt/src/qdbusreply.h: Make some methods const.
1851
1852 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1853
1854         Patch from Timo Hoenig <thoenig@suse.de>.
1855
1856         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1857         required during build to EXTRA_DIST.
1858         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1859         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1860         * configure.in: Fix "make dist", take care that the Makefile for
1861         qt/dbus is being generated.
1862
1863 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1864
1865         * bus/bus.c: Fix eavesdropping on method calls
1866
1867 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * configure.in:
1870         * dbus/dbus-userdb-util.c:
1871         Add Solaris console owner patch from Artem Kachitchkine
1872
1873 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1874
1875         * qt/Makfile.am:
1876         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1877         reorganisation. Thanks to Timo Hoenig for pointing this out.
1878
1879 2006-06-06  Robert McQueen  <robot101@debian.org>
1880
1881         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1882           call to dbus_g_type_get_struct.
1883
1884 2006-06-06  Robert McQueen  <robot101@debian.org>
1885
1886         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1887           pointers were put into a GPtrArray-based specialised collection, and
1888           then freed along with the array. GValues which you add into
1889           collections or maps which have the NOCOPY flag set are assumed to not
1890           belong to the caller, so rather than the existing pointer-stealing
1891           semantics, they are copied instead. Given that the main consumers of
1892           this abstraction are the bindings themselves, I don't think this is
1893           too bad, but others should watch their choice of take vs set_static.
1894
1895 2006-06-06  Robert McQueen  <robot101@debian.org>
1896
1897         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1898           of g_slist_prepend not being used. Fixed copying of slist-based
1899           specialised collections, then wrote a test case and found that it was
1900           all broken. Went on to fix iterating and appending too. Good thing
1901           nobody uses this code yet.
1902
1903 2006-06-06  Robert McQueen  <robot101@debian.org>
1904
1905         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1906           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1907           are discarded without unsetting, so it makes no difference whether
1908           we take or set_static). Remove cases for G_TYPE_POINTER because
1909           there really is nothing useful we can do with them in our
1910           specialised types - we *need* boxed copy/free functions at the very
1911           least.
1912
1913 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1914
1915         * qt/dbus: Add directory. I had forgotten to add this
1916         yesterday after the move...
1917
1918         * qt/examples/Makefile.am:
1919         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1920
1921         * qt/tools/Makefile.am:
1922         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1923         Added feature to get and set properties.
1924         Added validation of service, object path and interface names.
1925
1926         * qt/tools/dbusidl2cpp.cpp: Two new features:
1927         1) Allow specifying both the header and the source file names,
1928         by separating them with a colon.
1929         2) Don't write an interface output if the -p switch wasn't
1930         given, but the -a was.
1931
1932         * qt/src/*: Fix usage of Iterators and ConstIterators.
1933         Fix shadowing of variables by other variables (-Wshadow).
1934         Fix keyword-cleanliness in headers.
1935         Fix ASCII-cast (QLatin1String, QLatin1Char).
1936         Fix validation of member names.
1937         Add extra checking of introspection data during XML parsing.
1938         Various bug fixes.
1939
1940 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1941
1942         * dbus/Makefile.am:
1943         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1944         qt/dbus/qdbus.h now.
1945
1946 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1947
1948         * configure.in: Make --disable-qt actually do
1949           something. Patch inspired by Zack Rusin.
1950
1951 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1952
1953         * qt/: Update to Subversion r548032.
1954         This includes a big reorganisation of the files inside the
1955         subdir.
1956
1957 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1958
1959         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1960         clear:  
1961         "Failed to connect to socket <host>:<port> <error>" instead of
1962         "Failed to connect to socket <host>: <error>:<port>"
1963
1964         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1965         for a tcp transport. 
1966
1967 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1968
1969         * qt/*: Update the QtDBus bindings up to revision 546310 in
1970         Subversion.
1971         This adds the dbuscpp2xml tool, that parses a C++ header and
1972         outputs a D-BUS Introspection XML.
1973
1974 2006-05-21  Havoc Pennington  <hp@redhat.com>
1975
1976         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1977         is not NULL when it shouldn't be. Also a couple of possible fixes
1978         for #4637 though I don't understand why the bug happens, to be
1979         honest... also the object constructor has an assert name != NULL
1980         and the name is only currently NULL for peer-to-peer proxies that 
1981         I don't think anyone uses? So it should be asserting.
1982         Anyway, for now at least see if we get an earlier assertion failure.
1983
1984         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1985         apparently broken code to be sure the tests fail and someone 
1986         will fix them...
1987
1988 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1989
1990         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1991         and arrays when they had a single element: has_next returns
1992         false, even before you read the element. So, instead, check
1993         the array length.
1994
1995 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1996
1997         * qt/qdbusmessage.cpp:
1998         * qt/qdbustypehelper_p.h:
1999         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2000         the list is a const-reference
2001
2002 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2003
2004         * Adding old doc patch that never got applied
2005         
2006         * dbus/bus.c (dbus_bus_add_match): Add documentation
2007
2008         * doc/dbus-specification.xml: Add documentation for the match rules
2009           and the AddMatch and RemoveMatch methods
2010
2011 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2012
2013         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2014         call (r535506)
2015
2016         * qt/dbusidl2cpp.cpp:
2017         * qt/qdbusabstractadaptor.cpp:
2018         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2019         sibling of the QDBusAbstractAdaptor objects instead of the
2020         parent. (r535848)
2021
2022         * qt/dbusidl2cpp.cpp:
2023         * qt/qdbusabstractinterface.cpp:
2024         * qt/qdbusabstractinterface.h:
2025         * qt/qdbusabstractinterface_p.h:
2026         * qt/qdbusinterface.cpp: Make properties in interfaces
2027         actually work. The code that was generated would not compile,
2028         due to moc calls to functions that did not exist. They now
2029         shall. (r536571)
2030
2031 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2032
2033         * Makefile.am:
2034         * configure.in:
2035         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2036         Thanks to Brad Hards for providing the patch
2037
2038 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2039
2040         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2041         call. (r535506)
2042
2043 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2044
2045         * qt/examples/dbus.cpp: Enhance error messages and use
2046         QDBusInterfacePtr.
2047
2048 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2049
2050         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2051         and disable the copy operators. (r533772, r534746)
2052
2053         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2054
2055         * qt/qdbusabstractinterface.cpp:
2056         * qt/qdbusabstractinterface.h: Change the default call mode to
2057         not use the event loop. Add convenience call() methods that
2058         take a CallMode parameter. (r534042)
2059
2060         * qt/qdbusconnection.h: Change the default call mode to not
2061         use the event loop. (r534042)
2062
2063         * qt/qdbusinterface.cpp:
2064         * qt/qdbusinterface.h: Add a method to tell us if the
2065         interface is valid (since we don't return a null pointer
2066         anymore) (r534099)
2067
2068         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2069         (r534101)
2070
2071         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2072         function in two so taht we get the chance to introspect
2073         without having a QDBusMessage (r534102)
2074
2075         * qt/qdbusbus.h:
2076         * qt/qdbusconnection.cpp:
2077         * qt/qdbusconnection_p.h:
2078         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2079         avoid a round-trip to the server when attempting to introspect
2080         one of our own objects. Also make sure the filter functions
2081         match the empty interface as well. (r534108)
2082         Don't keep the connection names. Instead, trust the unique
2083         connection name (r534111)
2084         Remove event loop usage (r534112)
2085
2086 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2087
2088         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2089         Brad Hards.
2090
2091 2006-04-28  Robert McQueen  <robot101@debian.org>
2092
2093         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2094         any order, making it easier for people who inherit from this
2095         object.
2096
2097 2006-04-28  Robert McQueen  <robot101@debian.org>
2098
2099         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2100         of memory from within pointer arrays and lists. Fixes bug #6300.
2101
2102 2006-04-28  Robert McQueen  <robot101@debian.org>
2103
2104         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2105         generating struct signatures. Fixes bug #6083.
2106
2107 2006-04-28  Robert McQueen  <robot101@debian.org>
2108
2109         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2110         to qdbusconnection_p.moc.
2111
2112 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2113
2114         * README, INSTALL: Doc fixes
2115         Patch from Brad Hards <bradh at frogmouth.net>
2116
2117 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2118
2119         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2120         the dynamic meta object. No need to guess which interface to
2121         call.
2122
2123 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2124
2125         * qt/qdbusconnection_p.h:
2126         * qt/qdbusmetaobject.cpp:
2127         * qt/qdbusmetaobject_p.h:
2128         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2129         for the dynamic meta object. No need to guess which
2130         interface to call.
2131         * qt/qdbusabstractinterface_p.h:
2132         * qt/qdbusconnection.cpp:
2133         * qt/qdbusintegrator.cpp:
2134         * qt/qdbusinterface.cpp:
2135         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2136         Add a QDBusRef that looks and behaves like DCOPRef.
2137
2138 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2139
2140         * dbus/dbus-connection.c: Interfaces are optional in method
2141         calls, so don't give up if the interface parameter is NULL.
2142         Patch reviewed by Havoc Pennington.
2143
2144 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2145
2146         * qt/qdbusreply.h: Add default constructor and operator=
2147           (r532625)
2148         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2149           in public headers (r532952)
2150         * qt/qdbusabstractinterface.cpp:
2151         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2152           make it the default (r532951)
2153
2154 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2155
2156         * dbus/dbus-connection.c: Fix asserts
2157         Patch from Tim Moloney <t.moloney at verizon.net>
2158
2159 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2160
2161         * mono/Connection.cs, mono/Message.cs: Check Target type
2162         Patch from Aaron Bockover (abockover at novell.com)
2163
2164 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2165
2166         * INSTALL: fine-tune the requirements for the Qt4 binding.
2167
2168 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2169
2170         * tools/dbus-print-message.c: Added support for printing of all 
2171           remaining data types. Fixed logic for indentation of compound
2172           data types.
2173         
2174 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2175
2176         * INSTALL: fill out content of file providing DBus specific
2177           build installations, followed by generic Auto* INSTALL file
2178           content
2179         
2180 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2181
2182         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2183           Patch by Stefan Eilers. (r529537)
2184
2185 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2186
2187         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2188           contents (r528208)
2189
2190 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2191
2192         * qt/Makefile.am: fix the dependency for
2193           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2194           not in qdbusconnection.cpp.
2195           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2196           spotting this.
2197
2198 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2199
2200         * qt/examples/listnames.cpp:
2201         * qt/examples/Makefile.am: Three ways to list the names on the
2202           bus.
2203
2204 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2205
2206         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2207           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2208
2209 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2210
2211         Merge from Subversion:
2212         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2213           something that exists (r526315)
2214         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2215           slots/signals (r526316)
2216         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2217           also return an unknown-method error if the parameters don't
2218           match for org.freedesktop.DBus.Properties. (r526842)
2219         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2220         * qt/qdbusintegrator.cpp: Restore the proper order of
2221           delivery: don't make method returns be delivered on priority
2222           (r528150)
2223
2224 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2225
2226         * configure.in qt/Makefile.am: add qt/examples
2227         * qt/examples: Add QtDBus example programs:
2228           - hello: Hello, World
2229           - ping: Simple method-calling program
2230           - pong: Simple object-exporting program (not using adaptors)
2231           - complexping: Interactive method-calling program 
2232                 (also gets and sets properties).
2233           - complexpong: Sample program exporting methods, signals and
2234                 properties, using adaptors.
2235           - dbus: Simple implementation of a generic method-calling
2236                 program, similar to 'dbus-send', but with semantics
2237                 similar to 'dcop'.
2238           - chat: Simplistic chat program, implemented using signals
2239                 and the system bus. Looks like IRC.
2240
2241 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2242
2243         * configure.in: Detect QtGui (necessary for one of the
2244           example programs). Note: this increases the minimum required
2245           version of Qt to 4.1.3.
2246
2247 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2248
2249         * test/qt/*: Sync with KDE Subversion revision 523647.
2250         Update the testcases to the new API. Remove testcases for
2251         classes that are no longer public or have been removed.
2252
2253 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2254
2255         * qt/*: 
2256         * dbus/qdbus.h: Sync with KDE Subversion revision
2257         523647. Hopefully, this will be the last of the
2258         source-incompatible changes. Documentation has been improved;
2259         support for QList<basic-types> has been added; QDBusObject is
2260         gone; QDBus(Abstract)Interface is now a QObject with
2261         auto-generated meta-object; QDBusIntrospection is marked
2262         private, since QMetaObject can be used now; lots of bugfixes.
2263
2264 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2265
2266         Patch from Milosz Derezynski <internalerror at gmail.com>
2267         
2268         * configure.in:
2269         Output the service directory in the configure summary
2270
2271         * dbus-1.pc.in:
2272         Add session_bus_services_dir
2273
2274 2006-03-10  Ross Burton  <ross@openedhand.com>
2275
2276         * tools/dbus-print-message.c:
2277         Add support for object paths and signatures.
2278
2279 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2280
2281         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2282         config reload.
2283         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2284         information caches
2285         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2286         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2287         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2288         * dbus/dbus-userdb.h: Add function to flush all user/group information
2289         caches.
2290
2291 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2292
2293         * qt/dbusidl2cpp.cpp:
2294         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2295         for dcopidl2cpp, found in the KDE installations (or the more
2296         modern kalyptus): generate Qt4 C++ code for the input XML
2297         introspection. Currently no IDL parsing.
2298
2299 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2300
2301         * test/qt/*: Update the self-tests.
2302
2303 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2304
2305         * qt/*: 
2306         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2307         represents the first feature-complete version of the Qt4
2308         bindings since I took ove maintainership.
2309
2310 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2311
2312         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2313         dir. This is C++, so we can't use the DBus ones.
2314
2315 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2316
2317         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2318         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2319
2320 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2321
2322         * dbus/dbus-connection.c: 
2323         (_dbus_connection_block_pending_call):
2324         Check to see if our data has already been read off the connection
2325         by another blocking pending call before we block in poll.
2326         (check_for_reply_and_update_dispatch_unlocked):
2327         Code taken from _dbus_connection_block_pending_call - checks for
2328         an already read reply and updates the dispatch if there is one.
2329
2330         * test/name-test/test-pending-call-dispatch.c:
2331         New test for making sure we don't get stuck polling a 
2332         dbus connection which has no data on the socket when
2333         blocking out of order on two or more pending calls.
2334
2335 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2336
2337         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2338         make/automake don't detect that we're talking about the same
2339         .lo file if I specify the full path to the source files.
2340
2341 2006-02-26  Havoc Pennington  <hp@redhat.com>
2342
2343         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2344
2345         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2346         session bus variable is unset, suggest "man dbus-launch" and "man
2347         dbus-daemon" to figure out how to fix the problem
2348
2349 2006-02-25  Havoc Pennington  <hp@redhat.com>
2350
2351         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2352         should make this thing use the new glib options parser
2353
2354 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2355
2356         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2357         .lo files taking moc sources.
2358
2359 2006-02-25  Havoc Pennington  <hp@redhat.com>
2360
2361         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2362         and install it as a public header
2363
2364 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2365
2366         * Released 0.61
2367
2368 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2369         
2370         * proxies.py: Fix the callchain
2371
2372 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2373         
2374         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2375
2376         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2377         dbus/dbus-sysdeps.c
2378
2379         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2380         call _dbus_group_info_free_allocated which causes infinite loop,
2381         correctly call _dbus_group_info_free
2382
2383 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2384
2385         * qt/qdbusinterface_p.h:
2386         * qt/qdbusinterface.cpp: Use the standard
2387         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2388         calls instead of creating one for us.
2389
2390         * qt/qdbusconnection_p.h:
2391         * qt/qdbusintegrator.cpp: Remove debugging code.
2392
2393         * qt/qdbusintegrator.cpp:
2394         * qt/qdbusmessage.cpp:
2395         * qt/qdbusmessage_p.h:
2396         * qt/qdbusmessage.h: Change the behaviour of automatic
2397         reply-sending: now a reply is always sent, unless the caller
2398         didn't request one or if the user slot has already sent one.
2399
2400 2006-02-16  Robert McQueen  <robot101@debian.org>
2401
2402         * configure.in: Patch from Debian packages by Sjoerd Simons
2403         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2404         arguments so it's possible to build both bindings in the
2405         same tree.
2406
2407         * qt/Makefile.am: Fix truncated value so that make dist works.
2408
2409 2006-02-16  Robert McQueen  <robot101@debian.org>
2410
2411         * acinclude.m4, configure.in: Patch from Brad Hards
2412         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2413         improving quoting, re-ordering a few checks, and a few other
2414         aesthetic tidy-ups.
2415
2416 2006-02-16  Robert McQueen  <robot101@debian.org>
2417
2418         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2419         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2420         assertion that the next element to read from the iter is fixed in
2421         size. This is not the case when you are at the end of the iter,
2422         because the next element type is INVALID.
2423
2424         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2425         a bogus assert which means that you may not initialise a 0-length
2426         string unless you provide a non-NULL pointer. This prevented
2427         you from marshalling messages containing zero-length arrays in
2428         some cases.
2429
2430         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2431         from Rob to correct bogus asserts when trying to demarshal an
2432         array and get_fixed_array got you 0 elements. Append nothing to
2433         the GArray in this case.
2434
2435         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2436         an empty array via the glib bindings. Without all of the above
2437         patches, this new test fails.
2438
2439 2006-02-16  Robert McQueen  <robot101@debian.org>
2440
2441         * glib/dbus-gmain.c: Make the previous commit compile.
2442
2443         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2444         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2445         specify sender_keyword="foo", path_keyword="bar" when adding
2446         a signal listener, so that you can bind to signals generically
2447         but still do something useful in your callback.
2448
2449         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2450         chars so that they're not cast to chars and made negative. Thanks
2451         to Jakub Stachowski for reporting this and testing the fix.
2452
2453 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2454
2455         * dbus/dbus-glib.h:
2456         * glib/dbus-gmain.h:
2457         (dbus_g_connection_open): new method for openning
2458         a connection to an arbitrary address in the glib bindings
2459
2460         * ChangeLog: checkin last entry which doesn't seem to be commited
2461
2462 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2463
2464         * tools/dbus-launch.c: Fixed sh syntax output
2465
2466 2006-02-13  Robert McQueen  <robot101@debian.org>
2467
2468         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2469         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2470         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2471         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2472         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2473         missing piece of the glib bindings jigsaw puzzle. This modifies
2474         the existing specialised types to have N type parameters (rather
2475         than the current 1 or 2 for arrays and dictionaries respectively).
2476         You can then use this to get a glib type to represent any arbitrary
2477         D-Bus struct type using dbus_g_type_get_struct. The only
2478         implementation of these types is with GValueArrays as before,
2479         but it's now possible to store these in arrays, emit them in
2480         signals, etc.
2481
2482 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2483
2484         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2485         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2486         <thiago.macieira at trolltech.com>
2487
2488 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2489
2490         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2491         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2492
2493 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2494
2495         * bus/connection.c (bus_connections_expect_reply): Make
2496         pending reply limit not common to all connections (Bug #5416)
2497         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2498
2499 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2500
2501         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2502
2503 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2504
2505         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2506         patch from Doug Goldstein <cardoe at gentoo.org>
2507
2508 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2509
2510         * mono/Arguments.cs: Fix a magic number in the mono bindings
2511         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2512
2513 2006-01-27  Robert McQueen  <robot101@debian.org>
2514
2515         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2516         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2517         when generating the client-side methods, instead of overloading
2518         CSymbol which broke everything horribly. My apologies.
2519
2520 2006-01-27  Robert McQueen  <robot101@debian.org>
2521
2522         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2523         by me and Rob Taylor to add a simple_free function to D-Bus map
2524         and collection types, which allows those types which can be freed
2525         with a GDestroyNotify (such as GHashTables and GArrays, but not
2526         GPtrArrays) to be stored as the values in hashtables.
2527
2528         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2529         Patch by Rob Taylor to add nested dicts to the glib tests to check
2530         the above code works, and appears not to leak when called repeatedly.
2531
2532 2006-01-27  Robert McQueen  <robot101@debian.org>
2533
2534         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2535         to free a D-Bus allocated string with dbus_free () instead of
2536         g_free ().
2537
2538 2006-01-27  Iain Holmes  <iain@openedhand.com>
2539
2540         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2541         method from being called multiple times.
2542
2543 2006-01-19  Robert McQueen  <robot101@debian.org>
2544
2545         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2546         <rob.taylor@collabora.co.uk> to add support for generating bindings
2547         to arrays that are represented as GPtrArrays rather than GArrays (ie
2548         size-variable things, such as strings, objects, structs, etc).
2549
2550 2006-01-05  Robert McQueen  <robot101@debian.org>
2551
2552         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2553         <ricardo.kekki@movial.fi> to make it possible to inherit from
2554         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2555         a private part, and moving the setting of the DBusGProxyManager into a
2556         connection property, allowing proper GObject construction.
2557
2558 2006-01-05  Robert McQueen  <robot101@debian.org>
2559
2560         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2561         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2562         annotations when generating glib client bindings.
2563
2564 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2565
2566         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2567
2568         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2569
2570 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2571
2572         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2573
2574 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2575
2576         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2577
2578 2005-12-19  Ross Burton  <ross@openedhand.com>
2579
2580         * doc/dbus-tutorial.xml:
2581         Document the Glib client-side bindings, and list all possible annotations.
2582
2583 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2584
2585         * dbus/bus.c (dbus_bus_release_name): Add documentation
2586
2587 2005-12-06  Robert McQueen  <robot101@debian.org>
2588
2589         * python/service.py: s/sucessful/successful/ so we're allocating to
2590         and reading from the same variable. Oops.
2591
2592 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2593
2594         * Released 0.60
2595
2596 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2597
2598         * test/qt/Makefile.am: build from srcdir
2599
2600         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2601         Note - this code is wrong and needs to be fixed by the Qt binding
2602         developers.  The flags should be treated as bitfields and not enums.
2603
2604         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2605
2606 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2607
2608         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2609           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2610           in production code
2611
2612 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2613
2614         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2615         method for getting messages off the bus in the absence of a
2616         mainloop.  This method is much like 
2617         dbus_connection_read_write_dispatch except it does not dispatch
2618         the messages to a registered filter function.  Instead it
2619         allows a developer to process messages by directly popping
2620         them off the bus.
2621
2622 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2623
2624         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2625         the parser to continue instead of returning error
2626         (bus_desktop_file_load): Do not free parser data when
2627         parse_section_start or parse_key_value fails because it was 
2628         already freed by parser_free (patch from Carlos Garcia Campos  
2629         <carlosgc at gnome.org>)
2630
2631 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2632
2633         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2634         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2635         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2636         test/test-segfault.c, test/test-utils.c,
2637         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2638         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2639         Various cleanup of dead code and compiler warnings (patch from
2640         Kjartan Maraas <kmaraas at gnome.org>) 
2641
2642 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2643
2644         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2645         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2646
2647 2005-11-27  Robert McQueen  <robot101@debian.org>
2648
2649         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2650         part of the preceding one. Oops. Merge patch by Johan Hedberg
2651         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2652         on big-endian platforms.
2653
2654         * test/python/test-client.py: Add some 16-bit integers to the test
2655         values.
2656
2657 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2658
2659         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2660         method return message for property getters
2661
2662 2005-11-27  Robert McQueen  <robot101@debian.org>
2663
2664         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2665         with type v of an instance of dbus.Variant(foo, type='x') caused
2666         it to be boxed twice before sending over the bus.
2667
2668         * python/dbus_bindings.pyx, python/service.py,
2669         test/python/test-client.py: Update the constants for the new
2670         request_name flags, and update comments/test cases now that queueing
2671         is the default action.
2672
2673 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2674
2675         * configure.in:
2676         - Change version to 0.60 for impending release
2677         - upped the sonames because of ABI and API breakage
2678
2679 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2680
2681         * configure.in: Add test/name-test/Makefile to the generated
2682         Makefile list
2683
2684         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2685         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2686         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2687         not to queue an ower if it can't be the primary owner
2688
2689         * bus/bus.h: Add new internal BusOwner struct
2690
2691         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2692         to bus_registry_ensure and don't set the prohibit_replacement flag
2693         since they are now set per BusOwner and not per name.
2694         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2695         that returns the list of connections in a name's connection queue
2696         
2697         * bus/services.c (struct BusService): remove prohibit_replacement field
2698         (struct BusOwner): new struct for keeping track of queued connections
2699         and their associated flags for the queue
2700         (struct BusRegistry): add a BusOwner memory pool
2701         (bus_registry_new): initialize the BusOwner memory pool
2702         (bus_registry_unref): free the BusOwner memory pool
2703         (_bus_service_find_owner_link): new internal method for
2704         searching the queue for a specific connection
2705         (bus_owner_set_flags): new method for adding setting the flags on a
2706         bus owner
2707         (bus_owner_new): new method that creates a BusOwner object from the
2708         pool and sets its flags
2709         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2710         (bus_registry_ensure): Add the flags parameter
2711         (bus_registry_acquire_service): Switch from using raw connections to
2712         using the BusOwner struct
2713         Add new state machine for dealing with the new set of flags
2714         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2715         cancel_ownership, free_ownership_cancel_data, 
2716         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2717         restore_ownership, free_ownership_restore_data, 
2718         add_restore_ownership_to_transaction): Switch to using BusOwner 
2719         instead of raw connections
2720         (bus_service_add_owner): Add flags parameter
2721         Switch to using BusOwner instead of raw connections
2722         Add state machine for dealing with the new set of flags
2723         (bus_service_swap_owner): Swaps the first and second owners in the
2724         queue.  Used to make sure proper signals are sent when a service looses 
2725         or gains primary ownership.  We never insert an owner at the top of the
2726         queue.  Instead we insert it in the second position and then swap.
2727         (bus_service_remove_owner): Remove the owner from the queue sending
2728         out the NameLost and NameOwnerChanged signals if the we were the 
2729         primary owner
2730         (bus_service_get_primary_owners_connection): New method that extracts
2731         the connection from the primary owner
2732         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2733         connection
2734         (bus_service_get_allow_replacement): Changed from the old 
2735         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2736         primary owner and returns if it can be replaced or not
2737         (bus_service_set_prohibit_replacement): removed
2738         (bus_service_has_owner): returns TRUE if and owner with
2739         the specified connection exists in the queue
2740         
2741         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2742         method that only compiles if tests are enabled.  Allows us to get the 
2743         unique name of a connection so we can check it against the queue when
2744         doing regression tests
2745
2746         * bus/activation.c (bus_activation_send_pending_auto_activate),
2747         bus/dispatch.c (bus_dispatch),  
2748         bus/driver.c (bus_driver_handle_get_service_owner, 
2749         bus_driver_handle_get_connection_unix_user, 
2750         bus_driver_handle_get_connection_unix_process_id,
2751         bus_driver_handle_get_connection_selinux_security_context),
2752         bus/signals.c (connection_is_primary_owner): 
2753         use bus_service_get_primary_owners_connection instead of
2754         bus_service_get_primary_owner
2755
2756         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2757         _dbus_listen_unix_socket): Calculate the length of the socket
2758         path and use that instead of using a fixed length which was
2759         causing socket names to contain many trailing Nul bytes.
2760
2761         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2762         (dbus_g_method_get_sender): New method for extracting the sender 
2763         from a DBusGMethodInvocation
2764         (dbus_g_method_return_get_reply): changed name to 
2765         dbus_g_method_get_reply
2766         (dbus_g_method_return_send_reply): changed name to
2767         dbus_g_method_send reply
2768
2769         * doc/dbus-specification.xml: New docs that describe how the new
2770         queueing system works and talks about the changes to the how
2771         we specify socket names
2772
2773         * glib/examples/example-service.c, 
2774         glib/examples/example-signal-emitter.c,
2775         glib/examples/statemachine/statemachine-server.c:
2776         Changed the RequestName flags to the new system
2777
2778         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2779         regression test suite for testing various states of the new
2780         queueing system
2781         
2782 2005-11-15  Robert McQueen  <robot101@debian.org>
2783
2784         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2785         Taylor to add two methods, dbus_g_method_return_get_reply and
2786         dbus_g_method_return_send_reply, to allow you to get the reply
2787         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2788         and send it. The GLib bindings can't marshal a return value of
2789         something like a(s) if the array is empty - ultimately they should be
2790         made to heed the signature of the out arguments as the Python bindings
2791         now can, but this is a workable interim solution which might have
2792         other applications.
2793
2794 2005-11-15  Robert McQueen  <robot101@debian.org>
2795
2796         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2797         method to org.freedesktop.DBus to release a bus name or give up
2798         waiting in the queue for it.
2799
2800         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2801         dbus_bus_release_name method to send the ReleaseName method calls.
2802         Add constants for the return values to dbus/dbus-shared.h.
2803
2804         * doc/dbus-specification.xml: Document the new ReleaseName method
2805         in the specification.
2806
2807         * python/dbus_bindings.pyx: Add a low-level python binding for the
2808         release name method.
2809
2810         * python/exceptions.py, python/service.py: Make freeing BusName
2811         objects release the name. Add a NameExistsException, and fix a
2812         bug with creating UnknownMethodException.
2813
2814         * test/python/test-client.py: Add tests for freeing BusName
2815         objects causing names to be released.
2816
2817 2005-11-14  Robert McQueen  <robot101@debian.org>
2818
2819         * python/service.py: Include the traceback in the error reply when we
2820         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2821
2822 2005-11-14  David Zeuthen  <davidz@redhat.com>
2823
2824         Patch from Timo Hoenig <thoenig@suse.de>.
2825
2826         * bus/bus.c: I've recently investigated why the automatic reload
2827         of configuration files does not work as expected.
2828
2829         Currently, reloading configuration files does only work when
2830         running dbus-daemon with --nodaemon.  If we are running as daemon
2831         we're hitting a dnotify bug once we fork the process.
2832
2833         We're initializing the dnotify fds before calling fork().  Once
2834         the child process forked it does still have the fds (and they
2835         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2836         getting SIGIO as changes are made to the configuration files.
2837
2838         The attached patch moves the initialization of the dnotify fds to
2839         process_config_postinit().  This is safe for all current code
2840         paths and solves the dnotify disfunction.  If we're running
2841         dbus-daemon as daemon the fds for dnotify are now being
2842         initialized after fork() for the child process.
2843
2844         * configure.in: The current configure.in check for dnotify probes
2845         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2846         match for 'xlinux', too. Additionally I have adapted the configure
2847         option's style to match with the others.
2848
2849 2005-11-14  Robert McQueen  <robot101@debian.org>
2850
2851         * python/decorators.py, python/service.py: Add a new argument to the
2852         dbus.service.method decorator called sender_keyword, which if set,
2853         specifies the name of an argument which will be provided the bus
2854         name of the method caller.
2855
2856         * test/python/test-client.py, test/python/test-service.py: Add a
2857         method and test to check the sender_keyword functionality.
2858
2859 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2860
2861         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2862         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2863         Simons <sjoerd at luon.net>)
2864
2865         * AUTHORS: Add Robert McQueen for his work on the Python
2866         Bindings and other parts of D-Bus
2867
2868 2005-11-07  Robert McQueen  <robot101@debian.org>
2869
2870         * python/decorators.py: Change emit_signal function to use the
2871         signature annotation of the signal when marhsalling the arguments from
2872         the service. Fix a bug where the code checking signature length
2873         against argument length referenced the wrong variable.
2874
2875         * python/introspect_parser.py: Avoid adding the type signature of
2876         signal arguments to any methods which occur after them in the
2877         introspection data (!) by making the parser a little more careful
2878         about its current state.
2879
2880         * python/service.py: Remove debug prints from last commit (again :D).
2881
2882         * test/python/test-client.py, test/python/test-service.py: Add test
2883         signals with signature decorators to test the strict marshalling code
2884         gives errors at the right time. Could do with checking the signals
2885         actually get emitted too, given that the test does nothing with
2886         signals at the moment...
2887
2888 2005-11-07  Robert McQueen  <robot101@debian.org>
2889
2890         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2891         instances to stop madness of creating new instances representing
2892         the same bus connection all the time, rendering any tracking of
2893         match rules and bus names quite meaningless. Caught a bug where
2894         the private argument to SessionBus() and friends was being passed
2895         in as use_default_mainloop by mistake. Still some problems with
2896         multiple dbus_binding.Connection instances representing the same
2897         low-level connection (eg when you use both SessionBus() and
2898         StarterBus() in same process), but it's a lot better now than it
2899         was.
2900
2901         * python/dbus_bindings.pyx: Add constants with the return values
2902         for bus_request_name().
2903
2904         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2905         and retrieve the same instances for the same name, so deletion can be
2906         done with refcounting. Also now throws some kind of error if you
2907         don't actually get the name you requested, unlike previously...
2908
2909         * test/python/test-client.py: Add tests for instance caching of buses
2910         and bus name objects.
2911
2912 2005-11-04  Robert McQueen  <robot101@debian.org>
2913
2914         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2915         marshalling of boolean values. Add some booleans to the values in
2916         the test client.
2917
2918         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2919         argument to the dbus.service.method decorator, which allows you to
2920         name arguments to take two callback functions for replying with
2921         return values or an exception.
2922
2923         * test/python/test-client.py, test/python/test-service.py: Add test
2924         case using asynchronous method reply functions, both return values and
2925         errors, and from within both the function itself and from a mainloop
2926         callback.
2927
2928         * python/decorators.py, python/service.py: Perform checking that the
2929         number of method/signal arguments matches the number of types in the
2930         signature at class loading time, not when you first introspect the
2931         class.
2932
2933         * python/service.py: Remove debug print left by the last commit.
2934
2935 2005-11-03  Robert McQueen  <robot101@debian.org>
2936
2937         * python/service.py: Heavy refactoring of method invocation, with
2938         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2939         in favour of a new _message_cb that uses seperate functions for
2940         looking up the method to call, marshalling the return values, and
2941         sending exceptions as errors, and is easier to follow as a
2942         consequence.  Fixes some corner cases about returning things that
2943         don't match your declared out_signature, allows exceptions to define
2944         _dbus_error_name and have it be sent over the bus as the error name,
2945         and paves the way for cool stuff like heeding the message no reply
2946         flag, asynchronous method implementations, informing the method of the
2947         sender, and including backtraces in the error messages.
2948
2949         * test/python/test-client.py: Catch and print exceptions thrown in the
2950         async callback tests, rather than passing them to the low-level
2951         bindings to be ignored in a noisy and frustrating manner.
2952
2953 2005-11-03  Robert McQueen  <robot101@debian.org>
2954
2955         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2956         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2957         tweak others to be consistent.
2958
2959         * test/python/test-client.py: Tweak output of testInheritance.
2960
2961 2005-10-29  Robert McQueen  <robot101@debian.org>
2962
2963         * python/service.py: Major changes to allow multiple inheritance
2964         from classes that define D-Bus interfaces:
2965         
2966          1. Create a new Interface class which is the parent class of
2967             Object, and make the ObjectType metaclass into InterfaceType.
2968         
2969          2. Patch written with Rob Taylor to replace use of method_vtable
2970             with code that walks the class's __MRO__ (method resolution order)
2971             to behave like Python does when invoking methods and allow
2972             overriding as you'd expect. Code is quite tricky because
2973             we have to find two methods, the one to invoke which has the
2974             right name and isn't decorated with the /wrong/ interface,
2975             and the one to pick up the signatures from which is decorated
2976             with the right interface.
2977         
2978             The same caveats apply as to normal multiple inheritance -
2979             this has undefined behaviour if you try and inherit from two
2980             classes that define a method with the same name but are
2981             decorated with different interfaces. You should decorate
2982             your overriding method with the interface you want.
2983         
2984          3. Replace grungy introspection XML generation code in the metaclass
2985             with dictionaries that cope correctly with multiple inheritance
2986             and the overriding of methods. This also uses the signature
2987             decorations to provide correct introspection data, including
2988             the debut appearance of the types of your return values. :D
2989
2990         * test/python/test-client.py, test/python/test-service.py: Add a test
2991         case to try invoking an method that overrides one inherited from a
2992         D-Bus interface class.
2993
2994 2005-10-29  Robert McQueen  <robot101@debian.org>
2995
2996         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2997         Add checking for the end of struct character when marshalling a
2998         struct in MessageIter.append_strict.
2999
3000         * python/examples/example-service.py,
3001         python/examples/gconf-proxy-service.py,
3002         python/examples/gconf-proxy-service2.py: Update to use gobject
3003         mainloop directly rather than appearing to depend on gtk.
3004
3005         * python/test/test-client.py, python/test/test-server.py: Remove
3006         obsolete and broken test scripts for old bindings. We have up to date
3007         and working tests in test/python/.
3008
3009 2005-10-29  Robert McQueen  <robot101@debian.org>
3010
3011         * python/decorators.py: Add optional arguments to the method and
3012         signal decorators to allow you to specify the signature of arguments
3013         and return values. Preserve the doc strings of signal functions in the
3014         decorated version, for pydoc and friends.
3015
3016         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3017         parse_signature_block function with an iterable dbus.Signature()
3018         type. Fix a bug in MessageIter.append_strict where you could append
3019         anything by claiming it was a string.
3020
3021         * python/service.py: Use the out_signature decoration on methods to
3022         marshal return values, meaning you no longer require dbus.Array()
3023         or dbus.Dictionary() to indicate the type when returning empty
3024         arrays or dictionaries. Fix a bug where exceptions which are defined
3025         in __main__ are not turned into error replies.
3026
3027         * test/python/test-client.py, test/python/test-service.py: Add test
3028         for correct marshalling of return values according to out_signature.
3029         Fix a bug in the async call test where the error_handler is missing a
3030         self argument.
3031
3032 2005-10-29  Robert McQueen  <robot101@debian.org>
3033
3034         * glib/Makefile.am, glib/examples/Makefile.am,
3035         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3036         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3037
3038         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3039
3040         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3041         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3042         the command line.
3043
3044 2005-10-27  Ross Burton  <ross@openedhand.com>
3045
3046         * dbus/dbus-marshal-header.c:
3047         Remove dead code.
3048
3049         * glib/dbus-gobject.c:
3050         Stop compiler warning.
3051
3052 2005-10-25  Ross Burton  <ross@openedhand.com>
3053
3054         * dbus/dbus-auth.c:
3055         * dbus/dbus-server-unix.c:
3056         * dbus/dbus-transport-unix.c:
3057         * glib/dbus-gmain.c:
3058         * glib/dbus-gobject.c:
3059         Add some const keywords.
3060
3061 2005-10-25  Ross Burton  <ross@openedhand.com>
3062
3063         * doc/dbus-specification.xml:
3064         Document the NoReply annotation.
3065
3066         * glib/dbus-binding-tool-glib.h:
3067         * glib/dbus-binding-tool-glib.c:
3068         Respect the NoReply annotation.
3069
3070 2005-10-24  Robert McQueen <robot101@debian.org>
3071
3072         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3073         derive from unicode instead of str, and encode/decode UTF-8 when
3074         marshalling/unmarshalling bus messages
3075
3076         * python/introspect_parser.py: encode introspection data as UTF-8
3077         before passing the buffer into libxml2
3078
3079         * test/python/test-client.py: add unicode test strings
3080
3081         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3082         ignore generated python test files
3083
3084 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3085
3086         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3087         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3088         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3089
3090         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3091         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3092         when constructing struct signatures
3093
3094         * python/_dbus.py (Bus): handle private connections using the
3095         private keyword in the constructor. defaults to private=False
3096         (Bus::close): new method to close a connection to the bus
3097
3098         * python/dbus_bindings.pyx (Connection::close): renamed method
3099         was previously called disconnect
3100         (bus_get): now supports getting a private connection
3101
3102         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3103         keyword is set to True.  if it is, execute the method without waiting
3104         for a reply
3105         (ProxyObject::_introspect_execute_queue): new method for executing
3106         all the pending methods that were waiting for the introspect to
3107         finish.  this is called when introspect either succeeds or fails
3108         (ProxyObject::_introspect_error_handler): call queued methods
3109
3110 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3111
3112         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3113         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3114
3115         * python/service.py (Object::_message_cb): handle exceptions correctly
3116         by sending them over the wire to the calling app.  This makes sure
3117         the client returns immediately instead of waiting the 15 seconds to
3118         timeout.
3119
3120         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3121         Add a test to benchmark how long it takes to introspect a service and 
3122         call a method which returns a large element (pretty fast)
3123
3124         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3125         method which pushes a lot of data
3126
3127 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3128
3129         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3130         reclaim memory outside of the loop and use del istead of just setting
3131         the key to None
3132
3133 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3134
3135         * python/service.py (ObjectType::_reflect_on_signal): Always close
3136         signal tag even when there are no arguments
3137
3138 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3139
3140         * configure.in: Set mono, mono-docs and Qt3 to default
3141         to no instead of auto when building.  These bindings do not
3142         have full time maintainers and will not be supported for the
3143         1.0 release.
3144
3145 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3146
3147         patches from Michael Krivoruchko <misha at sun.com>: 
3148         
3149         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3150         _dbus_connection_message_sent, 
3151         _dbus_connection_send_preallocated_unlocked_no_update, 
3152         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3153         is NULL when calling _dbus_verbose
3154
3155         * configure.in: check for functions getpeerucred and getpeereid
3156
3157         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3158         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3159         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3160         Patch was only tested on Solaris 10 x86 so it might be issues
3161         with other platforms (i.e. BSDs and MacOSX)
3162         
3163
3164 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3165
3166         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3167         instead of marshal basic so we can handle recursive types in a variant
3168
3169         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3170         in variants
3171
3172         * test/glib/test-service-glib.c, test-service-glib.xml
3173         (my_object_echo_variant [EchoVariant], 
3174         my_object_process_variant_of_array_of_ints123
3175         [ProcessVariantOfArrayOfInts123]): 
3176         Add two test methods
3177
3178         * python/introspect_parser.py: New module for parsing introspect
3179         data.
3180
3181         * python/dbus_bindings.pyx:
3182         (various places): when throwing errors fix to use errormsg instead 
3183         of message local variable because Pyrex can get confused with other 
3184         message variables (initial patch by Robert McQueen 
3185         <robert.mcqueen at collabora.co.uk>)
3186         (MessageIter::parse_signature_block): new method for getting the next
3187         block in a signiture.
3188         (MessageIter::append_strict): new method for appending values strictly
3189         using the passed in signature instead of guessing at the type
3190         (MessageItter:: append_dict, append_struct, append_array): use 
3191         signatures to marshal children if the signature is available
3192         
3193         * python/exceptions.py (IntrospectionParserException): new exception
3194
3195         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3196         introspected signatures if available, else we fall back to the
3197         old way of doing things.
3198         (ProxyObject::_introspect_reply_handler ): parse introspection data
3199         
3200         * python/service.py (ObjectType::_reflect_on_method): Properly
3201         terminate <method> if there are no args in the reflection data
3202
3203         * test/python/test-client.py: add tests for talking with the GLib
3204         test server.  This gives us better coverage for introspection since
3205         python to python will always generate arguments as variants.  It also
3206         allows us to test the robustness of the GLib bindings and interlanguage
3207         communications.
3208
3209         
3210 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3211
3212         * bus/driver.c (bus_driver_handle_introspect): Add signals
3213         to the introspect data. (patch from Daniel P. Berrange 
3214         <dan at berrange.com>)
3215
3216         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3217         
3218         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3219         _dbus_connection_run_builtin_filters): Changed these to
3220         be unlock_no_update functions and call 
3221         _dbus_connection_send_unlocked_no_update instead of
3222         dbus_connection_send to avoid locking errors.
3223         
3224         * doc/TODO: Removed the make Ping test TODO
3225         
3226 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3227
3228         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3229         We now copy the message from a DBusError and then free 
3230         the error object befor throwing the error
3231
3232         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3233         DBusBindingOutputMode enum which was causing a warning.
3234         #include <time.h> so using time_t is explicitly defined
3235
3236 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3237
3238         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3239         - dbus/dbus-bus.c
3240         (internal_bus_get): new method that take over the heavy lifting
3241         of dbus_bus_get and adds the ability to get a private connection
3242         to the bus
3243         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3244         interface as in previous versions
3245         (dbus_bus_get_private): new method that is a wrapper to 
3246         internal_bus_get to get a private connection to the bus
3247
3248         - dbus/dbus-bus.h
3249         (dbus_bus_get_private): add as a public libdbus interface
3250
3251         - dbus-1.pc.in: output system_bus_default_address and 
3252         sysconfdir variables so apps can use them when compiling
3253
3254 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3255         * dbus/qt: New Qt bindings
3256
3257 2005-09-12  Waldo Bastian  <bastian@kde.org>
3258
3259         * dbus/dbus-marshal-validate.c,
3260         doc/dbus-specification.xml, test/Makefile.am,
3261         test/test-names.c: allow hyphens in bus names.
3262
3263 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3264
3265         * test/data/auth/fallback.auth-script: we don't
3266         retry the EXTERNAL method when we know its going
3267         to fail anymore.
3268
3269 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3270
3271         * dbus/dbus-connection-internal.h: rename
3272         (add|remove|toggle)_(watch|timeout) to unlocked()
3273         
3274         * dbus/dbus-connection.c: ditto.
3275         
3276         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3277         Update some callers for the renaming.
3278
3279 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3280
3281         * dbus/dbus-auth.c: (record_mechanisms): don't
3282         retry the first auth mechanism because we know
3283         we're just going to get rejected again.
3284         
3285         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3286         Fix thinko ... and what a nasty little bugger to
3287         track down you were ...
3288
3289         * dbus/dbus-connection.c:
3290         (_dbus_connection_add_watch),
3291         (_dbus_connection_remove_watch): add note about
3292         these needing the connection to be locked.
3293         (_dbus_connection_get_dispatch_status_unlocked):
3294         set status to DATA_REMAINS when we queue the
3295         disconnected message.
3296         
3297         * bus/dispatch.c:
3298         (bus_dispatch): fix warning.
3299         (check_existent_service_no_auto_start):
3300         Expect ChildSignaled error too.
3301         (check_existent_hello_from_self): fix another
3302         couple of warnings.
3303         
3304 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3305
3306         Patches from James Willcox <snorp@snorp.net>
3307
3308         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3309
3310         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3311         support array "out" parameters.
3312
3313         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3314         for 16-bit int support.
3315
3316 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3317
3318         * Released 0.50
3319
3320         * Patch from Steve Grubb:
3321         - bus/activation.c (bus_activation_service_reload_test): clean up
3322         some indentation
3323         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3324         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3325         buffer overflows in the test suite.  This is non critical because
3326         it can not be exploited and this code is only run when doing a 
3327         make check.
3328
3329         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3330         - configure.in: Don't check and link against kdecore, only qt headers
3331         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3332         - gcj/org/freedesktop/dbus/Makefile.am:
3333         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3334         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3335         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3336         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3337         - tools/Makefile.am: Add platform extentions to binaries 
3338         (i.e. .exe on windows)
3339
3340         * configure.in: 
3341         - Make it so if no suitable version of python is found we only 
3342         disable building python instead of exiting the configure script
3343         - Require version 2.4 of glib for glib bindings
3344         - Up version to 0.50
3345
3346         * python/__init__.py: Sync version with libdbus to (0,50,0)
3347         
3348 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3349
3350         * dbus/dbus-object-tree.c (find_subtree_recurse):
3351         a couple of optimizations (bug #710):
3352         - do a binary search in the tree
3353         - insert a new child at the right place directly, no need for
3354           qsort anymore
3355         - do the "double alloc" thing when allocating children
3356
3357 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3358
3359         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3360
3361         * python/dbus_bindings.pyx: Memory management foo
3362         (global): remove hacky _user_data_references global list
3363         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3364         tuples. Unref user_data
3365         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3366         (Connection::__del__): Remove and replace with __dealloc__ method
3367         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3368         to keep tuple from being deallocated instead of the global var hack
3369         (Connection::register_object_path): Stuff user_data into a tuple.
3370         Use Py_INCREF to keep tuple from being deallocated instead of the 
3371         global var hack
3372         (Connection::register_fallback): Stuff user_data into a tuple.
3373         Use Py_INCREF to keep tuple from being deallocated instead of the 
3374         global var hack
3375         (GIL_safe_pending_call_notification): Don't unref the message
3376         because it gets unreffed when going out of scope.  Py_XDECREF
3377         the user_data
3378         (PendingCall::__del__): Remove and replace with __dealloc__ method
3379         (PendingCall::set_notify): ref the pending call because we will
3380         need it to stick around for when the notify callback gets called
3381         (Message::__del__): Remove and replace with __dealloc__ method
3382
3383         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3384         gthreads_init to match up with the dbus call
3385
3386         * python/glib.py (init_threads): Changed to threads_init to match
3387         up with gobject.threads_init().  init_threads is kept for backwards
3388         compat but will most likely be deprecated in the future
3389
3390         * test/python/test-client.py: 
3391         - revamp to use Python's unittest functionality
3392         - add async call tests
3393         - setup threads in glib and dbus so we make sure locks are working
3394         
3395 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3396
3397         * python/dbus_bindings.pyx 
3398         (_pending_call_notification, cunregister_function_handler, 
3399         cmessage_function_handler): All callback functions have been rearranged 
3400         to workaround a bug in Pyrex when working with the GIL which is Python's 
3401         global lock when dealing with threads.  They have been split into
3402         a wrapper function (which assumes the name of the old function) and
3403         a _GIL_safe_<function name> function which contains the functionality
3404         of the old function.  This ensures that Pyrex does not write code
3405         the lock is released.
3406         
3407
3408 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3409
3410         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3411         GIL global lock when calling back into Python
3412
3413 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3414
3415         * Release 0.36.2
3416
3417         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3418
3419         * bus/policy.c (bus_policy_allow_user): change default "user is
3420         allowed" to be "user has same uid as the bus itself"; any
3421         allow/deny rules will override.
3422
3423         * bus/session.conf.in: don't allow all users, since now by default
3424         the user that ran the bus can connect.
3425
3426 2005-08-26  Colin Walters  <walters@verbum.org>
3427
3428         * tools/dbus-print-message.c (print_message): Flush stdout
3429         after printing a message, so that redirecting to a file, then
3430         hitting Ctrl-C works.
3431
3432 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3433
3434         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3435         (EmptyMessage): new class that subclasses Message.  This is a workaround
3436         to a Pyrex bug that fails to call __del__ when the Message object goes out
3437         of scope.  For some reason subclassing Message fixes this bug
3438         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3439         - s/Message(_create=0)/EmptyMessage everywhere else
3440         
3441         * test/python/test-{server|client}.py: add the python/.libs directory
3442         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3443         get picked up from the system
3444
3445 2005-08-25  Colin Walters  <walters@verbum.org>
3446
3447         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3448         to Ryan Lortie for the suggestion.
3449
3450 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3451
3452         * test/python: Add python regression test
3453
3454         * configure.in: Add test/python/Makefile
3455
3456         * test/Makefile.am: Add the python directory to SUBDIRS
3457
3458 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3459
3460         * Release 0.36.1
3461
3462         * python/_dbus.py: 
3463         (Interface::connect_to_signal): propigate keywords for match on args
3464         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3465
3466         * python/proxies.py (ProxyObject::connect_to_signal):
3467         propigate keywords for match on args
3468
3469         * Makefile.am: point everything to pyexecdir since python borks
3470         on multilib
3471
3472 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3473
3474         * Release 0.36
3475
3476 2005-08-23  Colin Walters  <walters@verbum.org>
3477
3478         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3479
3480 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3481
3482         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3483         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3484         of defining DBusConnection ourselves.
3485
3486 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3487
3488         * python/dbus.pth: New path file to fix up problems when installing
3489         c libraries to lib64 and python files to lib.
3490
3491         * python/Makefile.am: install dbus.pth in the correct spot
3492
3493 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3494         * ChangeLog: clean up my last entry a bit
3495
3496         * doc/introspect.xsl: New stylesheet for converting introspection data
3497         into browser renderable xhtml. Contributed by Lennart Poettering.
3498
3499         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3500         Poettering.
3501
3502         * doc/dbus-tutorial.xml: 
3503         - Add Colin Walter to the Authors section for authoring the GLib
3504         section
3505         - Add descriptions of the new signature and type functionality
3506         in the Python complex type mapping section
3507         - Add a sidenote on the new args matching functionality in 
3508         the Python bindings
3509         - Fixed up some of the examples to use the gobject.MainLoop
3510         instead of gtk.main
3511         
3512         * python/_dbus.py:
3513         (Bus::_create_args_dict): New. Converts a hash of arg matches
3514         to a more useable format
3515         (Bus::add_signal_receiver): add a **keywords parameter for catching
3516         arg match parameters
3517         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3518         arg match parameters
3519         
3520         * python/matchrules.py:
3521         (MatchTree::exec_matches): Check for arg matches
3522         (SignalMatchRule::add_args_match): New method
3523         (SignalMatchRule::execute): Added args_list parameter as an optimization
3524         so we don't have to marshal the args more than once
3525         (SignalMatchRule::match_args_from_list): New method that checks to see
3526         if the rule's arg matches match an argument list.  Only arguments
3527         set in the rule are checked.
3528         (SignalMatchRule::match_args_from_rule): New method that checks to see
3529         if the rule's arg matches match another rule's.  All args have to match
3530         in order for this method to return true.  If either rule has more args
3531         then it is not a match.
3532         (SignalMatchRule::is_match): Add args match
3533         (SignalMatchRule::repr): Add args to the final output if they exist
3534
3535 2005-08-17  Ross Burton  <ross@burtonini.com>
3536
3537         * glib/dbus-gproxy.c:
3538         (dbus_g_proxy_call_no_reply): unref the message once sent.
3539         (dbus_g_proxy_call): protect against NULL proxy.
3540
3541 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3542
3543         * python/__init__.py: Version updated (0, 43, 0)
3544         
3545         * python/dbus_bindings.pyx: 
3546         - Fixed type objects to have self passed into __init__
3547         - Added the Variant type
3548         - Add the ability to specify types or signatures for Array, Variant 
3549         and Dictionary
3550         (Connection::send_with_reply_handlers): return a PendingCall object
3551         (_pending_call_notification): handle the case when an error is returned 
3552         without an error message in the body
3553         (MessageIter::get_boolean): return True or False instead of an integer
3554         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3555         and add checks for objects with embeded signatures or types (Array, 
3556         Variant and Dictionary)
3557         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3558         (MessageIter::append_dict): handle embeded types or signatures
3559         (MessageIter::append_array): handle embeded types or signatures
3560         (MessageIter::append_variant): new method
3561         
3562         * python/proxies.py:
3563         (DeferedMethod): New. Dummy executable object used when queuing calls 
3564         blocking on introspection data
3565         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3566         or shorter timeouts for method calls
3567         (ProxyObject): Add first pass at an introspection state machine
3568         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3569         introspection. 
3570         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3571         the usual mechanisms for sending messages.  This is to avoid a deadlock
3572         where the Intospect call would be queued waiting for the Introspect 
3573         call to finish ;-)
3574         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3575         when introspection returns with no error
3576         (ProxyObject::_introspect_error_handler): New.  This method is called 
3577         when introspection encounters an error
3578         (ProxyObject::__getattr__): Code to handle different introspection 
3579         states.  Queue async calls or block blocking calls if we are 
3580         introspecting.  Pass through as normal if we are not or are done with 
3581         introspecting.
3582         
3583         * python/service.py: Import signal and method from decorators.py
3584
3585         * python/types.py: Add Variant type
3586
3587 2005-08-16  Colin Walters  <walters@verbum.org>
3588
3589         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3590         DBusError message is NULL.
3591
3592 2005-08-09  Havoc Pennington  <hp@redhat.com>
3593
3594         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3595         malloc'd copy of the name parameter
3596
3597 2005-08-09  Havoc Pennington  <hp@redhat.com>
3598
3599         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3600         warning if the reply serial is set to 0
3601
3602 2005-08-04  Colin Walters  <walters@verbum.org>
3603
3604         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3605         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3606         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3607         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3608         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3609         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3610         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3611         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3612         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3613         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3614         
3615         Prefix name with _ to ensure they're not exported.  All callers
3616         updated.
3617
3618         * glib/dbus-gvalue.c (typecode_to_gtype)
3619         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3620         (signature_iter_to_g_type_dict)
3621         (signature_iter_to_g_type_array)
3622         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3623         (dbus_gtypes_from_arg_signature):
3624         Move to dbus-gsignature.c.
3625
3626         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3627         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3628         (dbus_binding_tool_output_glib_client): Ditto.
3629
3630         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3631         and dbus-gsignature.h
3632
3633         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3634         unused variable.
3635
3636 2005-08-03  Colin Walters  <walters@verbum.org>
3637
3638         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3639         catch any incompatible changes accidentally made.
3640
3641 2005-08-03  Havoc Pennington  <hp@redhat.com>
3642
3643         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3644         typo, from Julien Puydt
3645
3646         * bus/connection.c (bus_connection_disconnected): we were always
3647         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3648
3649 2005-08-01  Colin Walters  <walters@verbum.org>
3650
3651         Patch from Joe Markus Clarke:   
3652         
3653         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3654         use-after-free.
3655
3656 2005-08-01  Colin Walters  <walters@verbum.org>
3657         
3658         Patch from Joe Markus Clarke:   
3659         
3660         * tools/dbus-send.c (main): 
3661         
3662         Don't use C99 style initializers (bug #3933).
3663         
3664 2005-08-01  Colin Walters  <walters@verbum.org>
3665
3666         Patch from Joe Markus Clarke:   
3667
3668         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3669         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3670         * glib/dbus-gobject.c (write_interface):
3671
3672         Don't use C99 style initializers (bug #3933).
3673
3674 2005-07-31  Havoc Pennington  <hp@redhat.com>
3675
3676         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3677         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3678
3679 2005-07-30  Havoc Pennington  <hp@redhat.com>
3680
3681         * fix a bunch of Doxygen warnings and mistakes
3682
3683 2005-07-30  Havoc Pennington  <hp@redhat.com>
3684
3685         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3686         DBUS_BUILD_TESTS since it's now used in production code
3687
3688 2005-07-29  Havoc Pennington  <hp@redhat.com>
3689
3690         * test/glib/test-profile.c (write_junk): initialize the junk
3691         buffer so valgrind doesn't have a breakdown
3692
3693 2005-07-29  Havoc Pennington  <hp@redhat.com>
3694
3695         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3696         (match_rule_matches): remove unused arg
3697         (test_matching): add tests for match_rule_matches()
3698
3699         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3700         do arg0='foo' arg5='bar' in the match rules
3701         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3702
3703         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3704
3705 2005-07-29  Ross Burton  <ross@openedhand.com>
3706
3707         * dbus/dbus-connection.c:
3708         Don't create a DBusCondVar which is never used.
3709
3710 2005-07-27  Ross Burton  <ross@openedhand.com>
3711
3712         * dbus/dbus-message.c:
3713         Reduce the size of the maximum cached message to 10K.
3714
3715 2005-07-25  Ross Burton  <ross@openedhand.com>
3716
3717         * glib/dbus-gproxy.c:
3718         Remove matches when all proxies are unregistered.
3719
3720 2005-07-24  Colin Walters  <walters@verbum.org>
3721
3722         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3723         typedata; recursive arrays won't have it.
3724
3725         * test/glib/test-dbus-glib.c:
3726         * test/glib/test-service-glib.c:
3727         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3728         
3729 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3730
3731         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3732         proxies.py, service.py: Cleanup of code after running it through the
3733         pyflakes code checker mostly dealing with undefined names.  
3734         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3735
3736 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3737
3738         * NEWS: Update to 0.35.2
3739
3740 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3741
3742         * python/_dbus.py: Remove import of the dbus.services
3743         module as it no longer exists (patch from Dimitur Kirov)
3744
3745         * python/service.py (Object::__init__): Fixed typo
3746         s/name/bus_name (patch from Dimitur Kirov)
3747
3748         * python/examples/example-signal-emitter.py: import dbus.glib
3749         to get the main loop and use glib mainloop instead of gtk so
3750         X doesn't have to be running.
3751
3752         * python/examples/example-signal-recipient.py: import dbus.glib
3753         to get the main loop and use glib mainloop instead of gtk so
3754         X doesn't have to be running. Import the decorators module
3755         directly.
3756
3757         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3758         didn't pick up on but are needed to build
3759
3760         * configure.in: upped version to 0.35.2
3761
3762         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3763         added Colin Walters' SELinux API rename patch from head 
3764         s/unix sercurity context/selinux security context/
3765
3766 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3767
3768         * python/Makefile.am: dbus_binding.pxd.in should be included 
3769         in EXTRA_DIST not dbus_binding.pxd
3770         fix up $(srcdir) hopefully for the last time
3771
3772         * NEWS: Update to 0.35.1
3773
3774 2005-07-16  Colin Walters  <walters@verbum.org>
3775
3776         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3777         from bus_driver_handle_get_connection_unix_security_context.  Update for
3778         error usage.
3779         (message_handlers): Update for renames.
3780
3781         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3782         _dbus_string_init failure correctly.
3783         (bus_selinux_append_context): Convert SID to context.  Append it
3784         as a byte array.
3785         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3786         hasn't been called.
3787
3788         * bus/selinux.h: Update prototype.
3789
3790         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3791         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3792
3793 2005-07-15  Colin Walters  <walters@verbum.org>
3794
3795         * doc/TODO: Add note about convenience wrappers.
3796
3797 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3798
3799         * NEWS: Update to 0.35
3800
3801 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3802
3803         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3804         so distcheck doesn't fail
3805
3806         * glib/examples/Makefile.am: Add example-service.xml and 
3807         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3808
3809         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3810         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3811
3812         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3813         compiler looks in the right places during distcheck
3814
3815 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3816
3817         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3818         to fail
3819
3820 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3821
3822         * python/examples/example-service.py,
3823         python/examples/example-signal-emitter.py: Fixed up examples
3824         for API changes
3825
3826 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3827
3828         * python/__init__.py: Upped to version (0,42,0) because of
3829         the API change
3830
3831 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3832
3833         * ChangeLog: fix date in last entry
3834
3835         * configure.in, bus/system.conf.in: add the ability to configure 
3836         the system bus user at compiletime with the --with-dbus-user flag
3837         (patch from Kristof Vansant)
3838
3839 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3840
3841         * bus/dispatch.c, test/test-service.c: Add testcase
3842         for sending messages to oneself (TODO item).
3843
3844         * python/service.py (class Object): Swap ordering of bus_name 
3845         and object_path parameters to better support inheritance.
3846
3847         * doc/dbus-tutorial.xml: change Python docs to reflect change
3848         in parameter ordering and fix the inheritance section.
3849
3850         * doc/TODO: remove sending message to oneself TODO item
3851
3852 2005-07-15  Ross Burton  <ross@openedhand.com>
3853
3854         * glib/dbus-gproxy.c:
3855         Fix a leak when calling methods via the proxy.
3856
3857 2005-07-15  Colin Walters  <walters@verbum.org>
3858
3859         * bus/selinux.c (bus_selinux_append_context): Wrap in
3860         HAVE_SELINUX.
3861
3862 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3863
3864         * python/_dbus.py (Bus::remove_signal_receiver):
3865         don't add a callback to the match if none has been passed in
3866         
3867         * python/matchrules.py (SignalMatchTree::remove): if the rule
3868         being matched does not have a callback treat it as a wildcard
3869         fix matching logic
3870
3871         * doc/dbus-tutorial.xml: Add Python tutorial
3872
3873 2005-07-14  Colin Walters  <walters@verbum.org>
3874
3875         * bus/driver.c
3876         (bus_driver_handle_get_connection_unix_security_context): New function.
3877         (message_handlers): Add.
3878
3879         * bus/selinux.c (bus_selinux_append_context): New function; appends
3880         security context to message.
3881
3882         * bus/selinux.h: Prototype.
3883
3884         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3885
3886 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3887
3888         * bus/activation.c: clean up all tabs to be 8 spaces 
3889         (bus_activation_activate_service): make sure we clean up
3890         if activation fails
3891
3892         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3893         (check_shell_fail_service_auto_start): New function
3894         tests to make sure we get fail properly when trying to auto start a service
3895         with a faulty command line
3896         (check_shell_service_success_auto_start): New function tests to make sure
3897         auto started services get the arguments on the command line
3898
3899         * test/test-shell-service.c: Added service for testing auto-starting with 
3900         command line arguments
3901
3902         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3903         test/data/valid-service-files/debug-shell-echo-success.service.in:
3904         Added service files for testing auto-starting with command line arguments
3905
3906         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3907
3908 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3909
3910         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3911         
3912         * dbus/Makefile.am: added new files to build.
3913
3914         * bus/activation.c (bus_activation_activate_service): support
3915         activation commands with parameters.
3916
3917         * test/shell-test.c: added test program for the shell parsing
3918         code.
3919
3920 2005-07-13  David Zeuthen  <davidz@redhat.com>
3921
3922         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3923         64 bit signed and unsigned parameters
3924
3925 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3926
3927         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3928
3929         * python/service.py (class Name): renamed BusName to make it clearer
3930         what the object is for (a name on the bus)
3931
3932         * python/examples/example-service.py,
3933         python/examples/example-signal-emitter.py: change the Name object to
3934         BusName
3935
3936 2005-07-12  Colin Walters  <walters@verbum.org>
3937
3938         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3939
3940         * tools/dbus-launch.c: Include sys/select.h.
3941
3942 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3943         * python/dbus_bindings.pyx.in: removed
3944
3945         * python/dbus_bindings.pyx: Added.
3946         - Fixed some memleaks (patch from 
3947         Sean Meiners <sean.meiners@linspireinc.com>)
3948         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3949         own pxd file (Pyrex definition)
3950         - Broke out glib dependancies into its own pyx module
3951         
3952         * python/dbus_bindings.pdx: Added.
3953         - Defines C class Connection for exporting to other modules
3954
3955         * python/dbus_glib_bindings.pyx: Added.
3956         - New module to handle lowlevel dbus-glib mainloop integration
3957
3958         * python/glib.py: Added.
3959         - Registers the glib mainloop when you import this module
3960
3961         * python/services.py: Removed (renamed to service.py)
3962         
3963         * python/service.py: Added.
3964         - (class Server): renamed Name
3965
3966         * python/__init__.py: Bump ro version (0,41,0)
3967         -don't import the decorators or service module
3968         by default.  These now reside in the dbus.service namespace
3969
3970         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3971         setup function on creation 
3972
3973         * python/examples/example-service.py,
3974         python/examples/example-signal-emitter.py: update examples
3975
3976         * python/examples/gconf-proxy-service.py,
3977         python/examples/gconf-proxy-service2.py: TODO fix these up
3978
3979         * doc/TODO: Addition
3980         - Added a Python Bindings 1.0 section
3981         - added "Add match on args or match on details to match rules"
3982
3983
3984 2005-07-12  Colin Walters  <walters@verbum.org>
3985
3986         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3987         (statemachine-glue.h): 
3988         * glib/examples/Makefile.am (example-service-glue.h) 
3989         (example-signal-emitter-glue.h): 
3990         * glib/Makefile.am (dbus-glib-error-switch.h): 
3991         Add libtool --mode=execute so we use the built library instead
3992         of any installed one.
3993
3994 2005-07-11  Colin Walters  <walters@verbum.org>
3995
3996         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3997         (dbus_g_value_types_init): Remove assertion.
3998         (dbus_g_value_get_g_type, dbus_g_value_open)
3999         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4000         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4001         functions related to DBusGValue.  Now we marshal/demarshal
4002         structures as GValueArray.
4003         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4004         structures.
4005         (signature_iter_to_g_type_array): Don't call
4006         signature_iter_to_g_type_struct.
4007         (signature_iter_to_g_type_struct): Delete.
4008         (dbus_gvalue_to_signature): Delete.
4009         (dbus_gvalue_to_signature): New function with same name as other
4010         one; we can convert structures to signatures.
4011         (demarshal_valuearray): New function.
4012         (get_type_demarshaller): Use it.
4013         (demarshal_recurse): Delete.
4014         (marshal_proxy): New function.
4015         (marshal_map): Warn if we can't determine signature from type.
4016         (marshal_collection_ptrarray): Ditto.
4017         (marshal_collection_array): Ditto.
4018         (get_type_marshaller): Use marshal_valuearray.
4019         (marshal_recurse): Delete.
4020         (_dbus_gvalue_test): Add some tests.
4021
4022         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4023         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4024         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4025         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4026         (dbus_g_value_free): Remove prototypes.
4027
4028         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4029         G_TYPE_VALUE_ARRAY.
4030
4031         * glib/examples/example-service.c:
4032         * glib/examples/example-client.c: Implement GetTuple.
4033
4034         * test/glib/test-dbus-glib.c:
4035         * test/glib/test-service-glib.c:
4036         * test/glib/test-service-glib.xml: Add structure tests.
4037
4038 2005-07-10  Colin Walters  <walters@verbum.org>
4039
4040         * doc/TODO: Knock off some GLib items with this patch.
4041
4042         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4043         (_dbus_gvalue_signals_error): New functions.
4044
4045         * glib/dbus-gvalue-utils.h: Prototype them.
4046
4047         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4048         and change to not output const/retval flags for input args.  All
4049         callers updated.
4050         (invoke_object_method): Refactor to handle return values.  Add
4051         some more comments in various places.  Remove debug g_print.
4052
4053         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4054
4055         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4056         Handle G_TYPE_NONE.
4057         (compute_gsignature): New function; refactored from code from
4058         compute_marshaller and compute_marshaller_name.  Enhance to
4059         handle return values and async ops more cleanly.  Update for
4060         async ops returning NONE instead of BOOLEAN.
4061         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4062         and output appropriate string.
4063         (generate_glue): Handle return value annotation.  Also don't dump
4064         constness flag for input arguments.
4065
4066         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4067         files shared between installed library and utilities.
4068         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4069         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4070         binding tool can access gtype utility functions.
4071
4072         * test/glib/test-service-glib.c: 
4073         * test/glib/test-service-glib.xml: 
4074         * test/glib/test-dbus-glib.c: Add some tests for return values.
4075
4076 2005-07-09  Colin Walters  <walters@verbum.org>
4077
4078         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4079         argument if available, not method.
4080
4081         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4082         (invoke_object_method): First, remove some redundant
4083         GValues (object_value, error_value) in favor of working on
4084         array directly.  Second, rework constness to be less buggy.
4085         Now we iterate directly over the argument metadata instead
4086         of parallel iterating over output signature and metadata.
4087
4088         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4089
4090         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4091         annotation on input args.
4092         
4093 2005-07-09  Colin Walters  <walters@verbum.org>
4094
4095         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4096         Define.
4097
4098         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4099         annotation.
4100
4101         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4102         (method_dir_signature_from_object_info): Handle arg_iterate change.
4103         (write_interface): Ditto.
4104         (lookup_object_info): Don't barf if format_version is > 0.
4105         (invoke_object_method): Handle arg constness.
4106
4107         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4108         (arg_info_new): Create.
4109         (arg_info_unref): Destroy.
4110         (arg_info_get_annotations, arg_info_get_annotation) 
4111         (arg_info_add_annotation): New functions.
4112
4113         * glib/dbus-gidl.h: Prototype them.
4114
4115         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4116         args, disallow them in properties.
4117         (parse_annotation): Handle arg annotations.
4118
4119         * test/glib/test-service-glib.xml: 
4120         * test/glib/test-service-glib.c: Update to make some methods
4121         const.
4122
4123 2005-07-08  Colin Walters  <walters@verbum.org>
4124
4125         * test/glib/test-service-glib.xml: 
4126         * test/glib/test-service-glib.c:
4127         * test/glib/test-dbus-glib.c: Test a{sv}.
4128
4129         * glib/examples/statemachine/statemachine.c:
4130         * glib/examples/statemachine/statemachine-server.c:
4131         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4132         add progress bar, etc.
4133
4134         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4135         needed anymore due to generic array/map marshalling.
4136         (dbus_g_value_types_init): Don't register basic arrays or the
4137         string/string hash.
4138         (dbus_gtype_from_signature_iter): Don't try to recurse into
4139         variants.
4140         (dbus_gtype_to_signature): Check collection/map before type
4141         metadata.
4142         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4143         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4144         generic map creation/append functions instead of hash table
4145         specifically.
4146         (get_type_demarshaller): Handle maps.
4147         (demarshal_collection): Dispatch on collection type to either
4148         demarshal_collection_ptrarray or demarshal_collection_array.
4149         (get_type_marshaller): Handle maps.
4150         (marshal_collection): Dispatch collection type to either
4151         marshal_collection_ptrarray or marshal_collection_array.
4152         (_dbus_gvalue_test): New test.
4153
4154         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4155         (hash_free_from_gtype): Use it to free GValues.
4156         (hashtable_append): New function.
4157         (ptrarray_append): Fix prototype.
4158         (slist_append): Ditto.
4159         (_dbus_gvalue_utils_test): Extend tests.
4160
4161         * glib/dbus-gtype-specialized.c
4162         (dbus_g_type_specialized_init_append): Renamed from
4163         dbus_g_type_specialized_collection_init_append.  Remove const from
4164         value, since we steal it.
4165         (dbus_g_type_specialized_map_append): New function.
4166
4167         * glib/dbus-gtype-specialized.h: Update prototypes.
4168         Add DBusGTypeSpecializedMapAppendFunc.
4169
4170         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4171         _dbus_gvalue_test.
4172         
4173         * glib/dbus-gtest.h: Prototype it.
4174
4175 2005-07-08  Ross Burton  <ross@openedhand.com>
4176
4177         * dbus/dbus-glib.h:
4178         Add DBysGAsyncData for the async bindings.
4179
4180         * glib/dbus-binding-tool-glib.c:
4181         Re-enable the async bindings.
4182
4183         * test/glib/test-dbus-glib.c:
4184         Add a test for the generated async bindings.
4185
4186 2005-07-08  Colin Walters  <walters@verbum.org>
4187
4188         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4189         connection concept.
4190         
4191 2005-07-08  Colin Walters  <walters@verbum.org>
4192         
4193         * tools/Makefile.am: Kill of print-introspect in favor of using
4194         dbus-send --print-reply=literal.
4195
4196         * test/glib/test-service-glib.xml: 
4197         * test/glib/test-service-glib.c (my_object_get_objs): New test
4198         for "ao".
4199
4200         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4201         (main): Test GetObjs.
4202
4203         * glib/examples/statemachine/Makefile.am:
4204         * glib/examples/statemachine/sm-marshal.list:
4205         * glib/examples/statemachine/statemachine-client.c:
4206         * glib/examples/statemachine/statemachine-server.c:
4207         * glib/examples/statemachine/statemachine-server.xml:
4208         * glib/examples/statemachine/statemachine.c:
4209         * glib/examples/statemachine/statemachine.h:
4210         * glib/examples/statemachine/statemachine.xml:
4211
4212         New example.
4213
4214         * glib/examples/example-service.c (main): Move invocation
4215         of dbus_g_object_type_install_info earlier, to emphasize it
4216         should only be done once.
4217
4218         * glib/examples/example-signal-emitter.c (main): Ditto.
4219
4220         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4221
4222         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4223         (dbus_gvalue_marshal): Update prototypes.
4224
4225         * glib/dbus-gvalue.c: Update all marshalling functions to take
4226         const GValue instead of GValue.
4227         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4228         types.
4229         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4230         change.
4231         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4232         Return a newly-allocated string.
4233         (demarshal_proxy, demarshal_object_path, demarshal_object)
4234         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4235         we get the wrong types from message.
4236         (get_type_demarshaller): New function, extracted from
4237         dbus_gvalue_demarshal.
4238         (demarshal_collection): New function, demarshals generic
4239         collection.
4240         (dbus_gvalue_demarshal): Just invoke result of
4241         get_type_demarshaller.  Throw error if we don't have one.
4242         (marshal_garray_basic): Abort on OOM.
4243         (get_type_marshaller): New function, extracted from
4244         dbus_gvalue_marshal.
4245         (collection_marshal_iterator, marshal_collection): New functions;
4246         implements generic marshalling for an iteratable specialized
4247         collection.
4248         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4249
4250         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4251         G_TYPE_STRING.
4252         (ptrarray_value_from_gvalue): Ditto.
4253         (ptrarray_append, ptrarray_free): New functions.
4254         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4255         (slist_append, slist_end_append, slist_free): New functions.
4256         (dbus_g_type_specialized_builtins_init): Add append fuctions
4257         for GPtrArray and GSList.  Register GSList.
4258         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4259
4260         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4261         New.
4262         (dbus_g_type_specialized_collection_init_append)
4263         (dbus_g_type_specialized_collection_append)
4264         (dbus_g_type_specialized_collection_end_append): Prototype.
4265         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4266         end_append_func.
4267
4268         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4269         (dbus_g_type_specialized_collection_append) 
4270         (dbus_g_type_specialized_collection_end_append): New functions.
4271         (dbus_g_type_map_value_iterate): Take const GValue.
4272         (dbus_g_type_collection_value_iterate): Ditto.
4273
4274         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4275         _dbus_gvalue_utils_test.
4276         
4277         * glib/dbus-gtest.h: Prototype it.
4278
4279         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4280         using uninitialized owner_list.
4281         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4282         public API.
4283         (dbus_g_proxy_end_call_internal): Update to use error set
4284         from dbus_gvalue_demarshal instead of setting it here.
4285         (dbus_g_proxy_begin_call): Move return_if_fail here.
4286
4287         * glib/dbus-gobject.c (write_interface): Update for
4288         dbus_gtype_to_signature returning new string.
4289
4290         * configure.in: Add glib/examples/statemachine.
4291
4292 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4293
4294         * configure.in: Add a configure option, --with-console-auth-dir
4295         
4296         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4297         new setting.  Patch from Kay Sievers.
4298
4299 2005-07-06  Colin Walters  <walters@verbum.org>
4300
4301         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4302         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4303         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4304         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4305         Delete in favor of dbus_g_proxy_begin_call and
4306         dbus_g_proxy_cancel_call.
4307         (DBusGProxyCall, DBusGProxyCallNotify): New.
4308         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4309         data, and destroy function.  This replaces
4310         dbus_g_pending_call_set_notify.
4311         (dbus_g_proxy_cancel_call): Prototype.
4312         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4313
4314         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4315         pending_calls map.
4316         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4317         internal proxy for calls to the bus. Remove
4318         pending_nameowner_calls, now the internal proxy keeps track.
4319         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4320         pending_nameowner_calls.
4321         (got_name_owner_cb): Update prototype, and use
4322         dbus_g_proxy_end_call.
4323         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4324         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4325         favor of using internal proxy.
4326         (dbus_g_proxy_manager_unregister): Update to use
4327         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4328         (dbus_g_proxy_init): Initialize pending calls map.
4329         (dbus_g_proxy_constructor): New.
4330         (dbus_g_proxy_class_init): Add get/set property functions,
4331         constructor, and add NAME, PATH, and INTERFACE properties.
4332         (cancel_pending_call): New function.
4333         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4334         cancel them.
4335         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4336         (GPendingNotifyClosure): New structure.
4337         (d_pending_call_notify, d_pending_call_free): Moved here from
4338         dbus-glib.c.
4339         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4340         ordering.
4341         (manager_begin_bus_call): New internal function for talking to
4342         internal bus proxy.
4343         (dbus_g_proxy_new): Construct object using GObjet properties.
4344         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4345         Create closure of same, and insert call into map of pending calls.
4346         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4347         call.  Look up pending call in current set.  Remove it when we've
4348         completed.
4349         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4350         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4351         and destroy function directly.
4352         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4353         (dbus_g_proxy_call): Invoke with NULL callback.
4354         (dbus_g_proxy_cancel_call): New function, replaces
4355         dbus_g_pending_call_cancel.
4356
4357         * glib/dbus-gparser.c (validate_signature): Fix call to
4358         dbus_set_g_error.
4359
4360         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4361         New quark for attaching metadata to GType.
4362         (info_hash): Delete.
4363         (lookup_object_info): Look up using quark.
4364         (dbus_g_object_type_install_info): Check that a type is classed,
4365         not that it's an object.  Also just install type data using quark
4366         instead of using global hash.
4367
4368         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4369         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4370         (GPendingNotifyClosure): Delete.
4371         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4372         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4373
4374         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4375         client method generation until we can fix it...
4376         
4377         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4378         (load_from_service_thread_func): Ditto.
4379
4380         * tools/dbus-names-model.c (struct NamesModel): Hold
4381         DBusGProxyCall.
4382         (have_names_notify): Update prototype, use
4383         dbus_g_proxy_cancel_call.
4384         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4385
4386         * tools/dbus-monitor.c (filter_func): Update for print_message
4387         API change.
4388
4389         * test/glib/test-dbus-glib.c: Add more tests for async
4390         invocations.  Update many begin_call/end_call pairs to just use
4391         dbus_g_proxy_call.
4392
4393         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4394         allows us to dump print-introspect.c.
4395
4396         * tools/dbus-print-message.h (print_message): Add literal argument
4397         to print_message which is intended to allow printing arguments without
4398         metadata like "string=".
4399
4400         * tools/dbus-print-message.c (print_iter): Add literal argument.
4401         (print_message): Allow printing string messages literally.
4402
4403 2005-07-05  Colin Walters  <walters@verbum.org>
4404
4405         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4406         Remove value refcount leak, original patch from Jorn Baayen
4407         <jorn@openedhand.com>.  Also remove useless extra value in favor
4408         of prepending to value array directly.
4409
4410 2005-07-02  Colin Walters  <walters@verbum.org>
4411
4412         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4413
4414 2005-07-01  Colin Walters  <walters@verbum.org>
4415
4416         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4417         
4418         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4419         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4420         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4421         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4422
4423 2005-06-30  Colin Walters  <walters@verbum.org>
4424
4425         * test/glib/test-dbus-glib.c:
4426         * test/glib/test-service-glib.c:
4427         * test/glib/test-service-glib.xml: Update tests for new error
4428         setting bits, also add async tests (patch from Ross Burton).
4429
4430         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4431         DBUS_GLIB_THREADS_LIBS.
4432
4433         * glib/dbus-gproxy.c (get_name_owner)
4434         (dbus_g_pending_call_end_valist): Ditto.
4435
4436         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4437         domain (GQuark) to DBusGErrorInfo.  
4438         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4439         quark in error_metadata.  Take message interface as default
4440         error message interface.
4441         (gerror_to_dbus_error_message): Pass message interface.
4442         (dbus_set_g_error): Resurrected.
4443         (dbus_g_error_info_free): New function.
4444         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4445         of _peek to actually create the object class if it hasn't been
4446         created yet.
4447         (dbus_g_error_domain_register): New function.
4448
4449         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4450
4451         * glib/dbus-gparser.c (validate_signature): Ditto.
4452
4453         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4454         (dbus_g_error_domain_register): Prototype.
4455
4456         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4457         Update tests.
4458
4459 2005-06-29  Colin Walters  <walters@verbum.org>
4460
4461         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4462         DBUS_TYPE_G_OBJECT_PATH.
4463
4464         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4465         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4466         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4467         (dbus_g_object_path_get_g_type): New function.
4468         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4469         to DBUS_TYPE_G_OBJECT_PATH by default.
4470         (demarshal_proxy): Remove unused name variable.
4471         (demarshal_object_path, marshal_object_path): New functions.
4472         (demarshal_proxy_array, marshal_proxy_array): Delete.
4473         
4474         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4475         DBUS_TYPE_G_OBJECT_PATH to char *.
4476         (dbus_g_type_get_lookup_function): Map builtin
4477         DBUS_TYPE_G_OBJECT_PATH.
4478
4479         * test/glib/test-dbus-glib.c
4480         * test/glib/test-service-glib.c (my_object_objpath): 
4481         Adapt tests to new object path marshalling.
4482
4483 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4484
4485         * configure.in: force check for Python >= 2.4
4486
4487 2005-06-29  Colin Walters  <walters@verbum.org>
4488         
4489         Patch from Ross Burton <ross@openedhand.com>
4490         
4491         * glib/dbus-gobject.c (invoke_object_method): Unset object
4492         value in all cases, not only in async case.
4493
4494 2005-06-29  Colin Walters  <walters@verbum.org>
4495
4496         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4497         name_call for keeping track of any outgoing GetNameOwner call.
4498         Also add for_owner and associated.
4499         (struct _DBusGProxyManager): Add owner_names, which is hash table
4500         that maps a base name to a list of names it owns (that we're
4501         interested in).  Add pending_nameowner_calls which is a list of
4502         all outstanding GetNameOwner; avoids us having to iterate over
4503         every proxy.  Add unassociated_proxies which keeps track of name
4504         proxies with no associated name owner.
4505         (dbus_g_proxy_manager_unref): Destroy owner_names.
4506         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4507         name refcounts.
4508         (find_name_in_info, name_owner_foreach)
4509         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4510         (dbus_g_proxy_manager_monitor_name_owner)
4511         (dbus_g_proxy_manager_unmonitor_name_owner)
4512         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4513         New functions; they manipulate the owner_names mapping.
4514         (got_name_owner_cb): New function.
4515         (get_name_owner): New function, extracted from
4516         dbus_g_proxy_new_for_name_owner.
4517         (dbus_g_proxy_manager_register): For now we need to keep track of
4518         all NameOwnerChanged.  Also if the proxy is for a name, if we
4519         don't already know the name owner, queue a new GetNameOwner
4520         request and add it to our list of unassociated proxies.  Otherwise
4521         inc the refcount.
4522         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4523         cancel any pending GetNameOwner call, etc.
4524         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4525         the owner_names mapping to look up the current names for the
4526         signal source, and dispatch to any proxies for that name.
4527         (dbus_g_proxy_new): Initialize new members.
4528         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4529         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4530         (dbus_g_pending_call_end_valist): New function, extracted from
4531         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4532         but want to use the GLib infrastructure.  Also note how many
4533         arguments in reply were over.
4534         (dbus_g_pending_call_end): New function, just call
4535         dbus_g_pending_call_end_valist.
4536         (dbus_g_proxy_end_call_internal): Just call
4537         dbus_g_pending_call_end_valist.
4538
4539         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4540         of builtin marshaller for STRING_STRING_STRING.
4541
4542         * test/glib/test-dbus-glib.c: 
4543         * test/glib/test-service-glib.c:
4544         * test/glib/test-service-glib.xml:
4545         Extend tests to cover name proxies, destruction of owner proxies,
4546         etc.
4547         
4548         * glib/examples/example-signal-recipient.c
4549         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4550         
4551         * tools/dbus-send.c (main): Print D-BUS error name in addition
4552         to message.
4553
4554 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4555
4556         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4557         cmessage_function_handler): Patch from 
4558         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4559         by using the Py_GILState_Ensure/Release to synchronize with the
4560         python runtime.
4561         
4562 2005-06-28  Ray Strode  <rstrode@redhat.com>
4563
4564         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4565         babysitter helper process on last unref, bug #2813.
4566
4567 2005-06-27  Colin Walters  <walters@verbum.org>
4568
4569         * test/glib/test-dbus-glib.c: 
4570         * test/glib/test-service-glib.c:
4571         * test/glib/test-service-glib.xml:
4572         Test hash table signal emitting.
4573
4574         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4575         types to their fundamental basis types, since this is what
4576         marshallers operate on.  Also add an entry for VOID__BOXED.
4577         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4578
4579 2005-06-26  Havoc Pennington  <hp@redhat.com>
4580
4581         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4582         from Don Park
4583
4584 2005-06-26  Colin Walters  <walters@verbum.org>
4585
4586         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4587         (dbus_g_error_set): New public function from its ashes; used by
4588         both service-side method implementation and GLib bindings
4589         internals.
4590         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4591         (_dbus_glib_test): Add some tests.
4592
4593         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4594
4595         * test/glib/test-service-glib.c (my_object_throw_error): Use
4596         dbus_g_error_set.
4597
4598         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4599         errors thrown by dbus_g_error_set.
4600
4601         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4602
4603         * glib/dbus-gparser.c (validate_signature): Ditto.
4604
4605         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4606         (dbus_g_proxy_end_call_internal): Ditto.
4607
4608         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4609         converts DBUS_ERROR_x to DBUS_GERROR_x.
4610         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4611
4612         * doc/TODO: Remove error TODO.
4613
4614         * doc/dbus-tutorial.xml: Update with documentation about error
4615         handling.
4616
4617         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4618         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4619         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4620
4621 2005-06-22  Colin Walters  <walters@verbum.org>
4622         
4623         Patch from Ross Burton <ross@openedhand.com>
4624
4625         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4626
4627 2005-06-20  Colin Walters  <walters@verbum.org>
4628
4629         * configure.in: Add glib/examples.
4630
4631         * glib/Makefile.am: Add examples/
4632
4633         * glib/examples/.cvsignore
4634         * glib/examples/Makefile.am
4635         * glib/examples/example-client.c
4636         * glib/examples/example-service.c
4637         * glib/examples/example-service.xml
4638         * glib/examples/example-signal-emitter.c
4639         * glib/examples/example-signal-emitter.xml
4640         * glib/examples/example-signal-recipient.c:
4641         New files; GLib binding examples, ported from
4642         python/examples.
4643
4644 2005-06-20  Colin Walters  <walters@verbum.org>
4645
4646         * dbus/dbus-glib.h: 
4647         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4648         dbus_g_proxy_call.
4649
4650         * glib/dbus-binding-tool-glib.c: 
4651         * doc/dbus-tutorial.xml: 
4652         * test/glib/test-dbus-glib.c: Update for rename.
4653         
4654 2005-06-20  Colin Walters  <walters@verbum.org>
4655
4656         Patch suggested by Ross Burton <ross@openedhand.com>
4657
4658         * glib/dbus-gobject.c (export_signals): Free signal name.
4659         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4660         memory leak.  Add a bit of documentation.
4661         (dbus_g_method_return_error): Free context, and note we do
4662         so.
4663
4664 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4665
4666         * dbus/dbus-glib.h:
4667         * glib/dbus-gobject.c:
4668         * glib/dbus-gproxy.c:
4669         * glib/dbus-gvalue.c: Predeclare structs as 
4670         typedef struct _Something Something instead of 
4671         typedef struct Something Something, so we can 
4672         redeclare the prototypes. Other GNOME libraries 
4673         do this already.
4674
4675 2005-06-17  Colin Walters  <walters@verbum.org>
4676
4677         * tools/dbus-names-model.c (have_names_notify): Fix call
4678         to dbus_g_proxy_end_call.
4679         
4680 2005-06-17  Colin Walters  <walters@verbum.org>
4681
4682         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4683         spew warnings if we get malformed remote signals.
4684
4685         * glib/dbus-gobject.c (propsig_iterate): New function.
4686         (lookup_object_info): New function, extracted from
4687         lookup_object_and_method.
4688         (introspect_properties, introspect_signals): Delete; these
4689         are merged into write_interface.
4690         (write_interface): Write out signals and properties here;
4691         dump the org.gtk.object stuff and use the interface given
4692         in the introspection data blob.  Also fix up property XML.
4693         (lookup_values): New function.
4694         (introspect_interfaces): Gather a mapping from interface to a
4695         list of its methods, signals, and properties, then write out
4696         each interface.
4697         (lookup_object_and_method): Use lookup_object_info.
4698         (struct DBusGSignalClosure): Add interface.
4699         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4700         we can just use the constant data.
4701         (dbus_g_signal_closure_finalize): Don't free signal name.
4702         (signal_emitter_marshaller): Use interface from signal closure.
4703         (export_signals): Only export signals mentioned in introspection
4704         blob.
4705         (dbus_g_connection_register_g_object): Warn if we have no
4706         introspection data for an object.
4707         (funcsig_equal): Remove unused variable.
4708         (dbus_g_object_register_marshaller): Take varargs instead of
4709         list.
4710         (dbus_g_object_register_marshaller_array): New function,
4711         extracted from old dbus_g_object_register_marshaller.
4712
4713         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4714         signals and property data.
4715         (write_quoted_string): New function, extracted from generate_glue.
4716         (generate_glue): Write signals and properties to introspection
4717         blob.
4718
4719         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4720         exported_signals and exported_properties.
4721         (dbus_g_object_register_marshaller): Update prototype.
4722         (dbus_g_object_register_marshaller_array): Prototype.
4723         
4724         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4725
4726         * test/glib/test-service-glib.c: Add new test signals and method
4727         to emit them.
4728
4729         * test/glib/test-service-glib.xml: Add some test signals.
4730
4731         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4732         and my-object-marshal.h
4733         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4734         my-object-marshal.c.
4735         (my-object-marshal.c, my-object-marshal.h): Implement.
4736
4737         * test/glib/.cvsignore: Update.
4738
4739         * doc/TODO: Remove two GLib TODO items fixed by this
4740         patch.
4741
4742 2005-06-16  Colin Walters  <walters@verbum.org>
4743
4744         * doc/TODO: Update for GLib bindings.
4745         
4746 2005-06-16  Colin Walters  <walters@verbum.org>
4747
4748         * glib/dbus-binding-tool-glib.c:
4749         * glib/dbus-gobject.c:
4750         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4751         from Ross Burton, for his GLib bindings work.
4752
4753 2005-06-16  Colin Walters  <walters@verbum.org>
4754
4755         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4756         to iterate instead of walking to G_TYPE_INVALID.
4757
4758         Patch based on a patch from Ryan Gammon.
4759
4760 2005-06-16  Colin Walters  <walters@verbum.org>
4761
4762         * bus/bus.c (bus_context_new): Set parser to NULL
4763         after we unref it (Patch from Chris Boscolo, #2174).
4764         
4765 2005-06-16  Colin Walters  <walters@verbum.org>
4766
4767         * python/dbus_bindings.pyx.in: Import size_t,
4768         __int64_t, __uint64_t, and __signed.
4769
4770         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4771         Define cmsg struct, output it.
4772         (_dbus_read_credentials_unix_socket):
4773         Use cmsg struct.
4774         
4775         Patch from Joe Markus Clarke for FreeBSD support.
4776         
4777 2005-06-16  Colin Walters  <walters@verbum.org>
4778
4779         * tools/dbus-send.c (append_array): Use strtok.
4780         (append_dict): New function.
4781         (type_from_name): New function, extracted from main.
4782         (main): Handle sending dicts.
4783
4784         * tools/dbus-print-message.c (print_iter): Print dict
4785         entries.
4786         
4787 2005-06-16  Colin Walters  <walters@verbum.org>
4788
4789         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4790         values as the empty string (#2948).
4791         
4792 2005-06-16  Colin Walters  <walters@verbum.org>
4793
4794         * dbus/Makefile.am:
4795         * mono/doc/Makefile.am:
4796         * test/glib/Makefile.am:
4797
4798         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4799
4800 2005-06-16  Colin Walters  <walters@verbum.org>
4801
4802         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4803         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4804
4805         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4806         Increment pointer after swapping fixed array.  Add assertion
4807         for array length.
4808                 
4809 2005-06-15  Colin Walters  <walters@verbum.org>
4810
4811         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4812         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4813         
4814 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4815
4816         * NEWS: Update to 0.34
4817
4818 2005-06-15  David Zeuthen  <davidz@redhat.com>
4819
4820         * configure.in (LT_CURRENT): Revert back to 1 as the library
4821         hasn't changed and we've certainly not committed to protocol
4822         stability yet.  All this does is to break ABI. See commit note
4823         from hp@redhat.com 2005-05-05 for details.
4824         
4825 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4826
4827         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4828         (_dbus_connection_run_builtin_filters): New method
4829         (dbus_connection_dispatch): Run the builtin filters which in turn
4830         runs the peer filter which handles Ping messages.
4831
4832         * doc/TODO: 
4833          - Ping isn't handled: This patch fixes it
4834          
4835          - Add a test case for the Ping message: added TODO item
4836
4837 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4838
4839         * dbus/dbus-message.c:
4840         (dbus_message_has_path): New method
4841         (dbus_message_has_interface): New method
4842         (dbus_message_has_member): New method
4843
4844         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4845         New method
4846
4847         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4848         the keyring directory is private to the user
4849
4850         * doc/TODO:
4851          - The convenience functions in dbus-bus.h should perhaps have
4852          the signatures that they would have if they were autogenerated
4853          stubs. e.g. the acquire service function. We should also evaluate
4854          which of these functions to include, in light of the fact that
4855          GLib/Qt native stubs will probably also exist.: Punted
4856
4857          - add dbus_message_has_path(), maybe has_member/interface:
4858          fixed in this patch
4859
4860          - in dbus-keyring.c, enforce that the keyring dir is not
4861          world readable/writable: Fixed in this patch
4862
4863 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4864
4865         * dbus/dbus-marshal-validate.h: Added a new validation
4866         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4867         out of memory errors when validating signitures
4868
4869         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4870         in places where we previously used DBUS_VALID and a FALSE return 
4871         value to indicate OOM
4872         
4873         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4874         Use a stack to track the number of elements inside containers.  The 
4875         stack values are then used to validate that dict entries have only two
4876         elements within them.
4877         (validate_body_helper): check the reason for failure when validating
4878         varients
4879         
4880         * dbus/dbus-message.c (load_message): use 
4881         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4882         DBUS_VALID and a FALSE return value to indicate OOM
4883
4884         * doc/TODO: remove "- validate dict entry number of fields" as this
4885         patch fixes it
4886
4887 2005-06-14  David Zeuthen  <davidz@redhat.com>
4888
4889         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4890         watches (if applicable) and add new watches
4891
4892         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4893         (main): Setup SIGIO signal handler if using D_NOTIFY
4894
4895         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4896
4897         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4898         (merge_included): Also merge conf_dirs list
4899         (bus_config_parser_unref): Clear conf_dirs list
4900         (include_dir): Add directory to conf_dirs list
4901         (bus_config_parser_get_conf_dirs): New function
4902
4903         * bus/dir-watch.[ch]: New files
4904
4905         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4906
4907         * configure.in: Add checks for D_NOTIFY on Linux
4908
4909 2005-06-14  Colin Walters  <walters@verbum.org>
4910
4911         * glib/dbus-binding-tool-glib.c:
4912         * glib/dbus-gobject.c:
4913         * glib/dbus-gvalue.c: Fix indentation and brace style.
4914         
4915 2005-06-14  Ross Burton <ross@openedhand.com>.
4916
4917         * glib/dbus-glib.h: Make DBusGMethodInvocation
4918         a private structure.  Rearrange prototypes a bit.
4919         
4920         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4921         documentation for first_arg_type.
4922         
4923         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4924         here, add documentation.  Move dbus_g_method_return
4925         and dbus_g_method_return_error into public API
4926         section.
4927
4928 2005-06-14  Colin Walters  <walters@verbum.org>
4929
4930         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4931         Add missing return statements, noticed by Ross Burton.
4932         
4933 2005-06-13  Ross Burton <ross@openedhand.com>.
4934
4935         * glib/dbus-gobject.c: Handle errors on message
4936         demarshalling by sending error message back.
4937         * glib/dbus-gvalue.c: Initialize return variables.
4938
4939 2005-06-13  Colin Walters  <walters@verbum.org>
4940
4941         * glib/Makefile.am: Fix thinko in last patch.
4942
4943 2005-06-13  Colin Walters  <walters@verbum.org>
4944
4945         * glib/Makefile.am: Move dbus-gtype-specialized.c
4946         and dbus-gtype-specialized.h into a _HEADERS variable,
4947         install them.
4948
4949 2005-06-12  Colin Walters  <walters@verbum.org>
4950
4951         Async signals and various bugfixes and testing by
4952         Ross Burton <ross@openedhand.com>.
4953
4954         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4955         (dbus_gvalue_genmarshal_name_from_type)
4956         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4957         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4958         (dbus_g_value_types_init, dbus_gtype_from_signature)
4959         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4960         (dbus_gtypes_from_arg_signature): New function prototypes.
4961         (dbus_gvalue_demarshal): Take context and error arguments.
4962         (dbus_gvalue_demarshal_variant): New function.
4963         (dbus_gvalue_demarshal_message): New function.
4964         (dbus_gvalue_store): Delete.
4965
4966         * glib/dbus-gvalue.c:
4967
4968         File has been almost entirely rewritten; now we special-case
4969         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4970         hash tables correctly, etc.  Full support for recursive values
4971         is not yet complete.
4972
4973         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4974         argument of signal to G_TYPE_POINTER since we now pass a
4975         structure.
4976         (lookup_g_marshaller): Delete in favor of
4977         _dbus_gobject_lookup_marshaller.
4978         (marshal_dbus_message_to_g_marshaller): Use
4979         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4980         to handle remote signal callbacks.
4981         (dbus_g_proxy_new_from_proxy): New function; creates a new
4982         DBusGProxy by copying an existing one.
4983         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4984         (dbus_g_proxy_get_path): New functions.
4985         (dbus_g_proxy_marshal_args_to_message): New function;
4986         factored out of existing code.
4987         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4988         from a varargs array.
4989         (dbus_g_proxy_begin_call_internal): New function.
4990         (dbus_g_proxy_end_call_internal): New function.
4991         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4992         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4993         after collecting args into value array.
4994         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4995         invoke dbus_g_proxy_end_call_internal.
4996         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4997         end_call_internal.
4998         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4999         types.
5000         (array_free_all): New function.
5001         (dbus_g_proxy_add_signal): Take GTypes.
5002
5003         * glib/dbus-gobject.h:
5004         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5005         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5006         Prototype.
5007
5008         * glib/dbus-gobject.c: Add a global marshal_table hash which
5009         stores mappings from type signatures to marshallers.  Change lots
5010         of invocations of dbus_gtype_to_dbus_type to
5011         dbus_gtype_to_signature.
5012         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5013         (introspect_signals): Fix test for query.return_type.
5014         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5015         (invoke_object_method): Many changes.  Handle asynchronous
5016         invocations.  Convert arguments with
5017         dbus_gvalue_demarshal_message.  Handle errors.  Use
5018         DBusSignatureIter instead of strlen on args. Handle all arguments
5019         generically.  Special-case variants.
5020         (dbus_g_method_return, dbus_g_method_return_error): New function.
5021         (DBusGSignalClosure): New structure, closes over signal
5022         information.
5023         (dbus_g_signal_closure_new): New function.
5024         (dbus_g_signal_closure_finalize): New function.
5025         (signal_emitter_marshaller): New function; is special marshaller
5026         which emits signals on bus.
5027         (export_signals): New function; introspects object signals and
5028         connects to them.
5029         (dbus_g_object_type_install_info): Take GType instead of
5030         GObjectClass.
5031         (dbus_g_connection_register_g_object): Invoke export_signals.
5032         (dbus_g_connection_lookup_g_object): New function.
5033         (DBusGFuncSignature) New structure; used for mapping type
5034         signatures to marshallers.
5035         (funcsig_hash): New function; hashes DBusGFuncSignature.
5036         (funcsig_equal): New function; compares DBusGFuncSignature.
5037         (_dbus_gobject_lookup_marshaller): New function.
5038         (dbus_g_object_register_marshaller): New function; used to
5039         register a marshaller at runtime for a particular signature.
5040
5041         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5042
5043         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5044         which notes a server method implementation should be
5045         asynchronous.
5046
5047         * glib/dbus-binding-tool-glib.c
5048         (dbus_binding_tool_output_glib_server): Call
5049         dbus_g_value_types_init.
5050         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5051         variants specially.
5052         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5053         of a lookup function.
5054         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5055         (write_untyped_out_args): New method; write output arguments.
5056         (write_formal_declarations_for_direction): Function for
5057         writing prototypes.
5058         (write_formal_parameters_for_direction): Function for
5059         writing implementations.
5060         (write_typed_args_for_direction): Function for writing
5061         arguments prefixed with GTypes.
5062         (write_async_method_client): Write out async version
5063         of method.
5064
5065         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5066         (dbus_g_type_get_marshal_name): Move mapping from GType
5067         to marshal name into here.
5068         (dbus_g_type_get_c_name): Move into here.
5069         (compute_marshaller): Convert signature to type with
5070         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5071         (compute_marshaller_name): Ditto.
5072         (compute_marshaller): Handle async signal annotations.
5073         (gather_marshallers): Return if we don't have a known
5074         prefix.
5075         (generate_glue): Collect introspection blob here, and
5076         write all of the blob at the end.  This allows an object
5077         with multiple interfaces to work.
5078         Mark async methods in introspection blob.
5079
5080         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5081         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5082         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5083
5084         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5085         avoids people accidentally using DBUS_TYPE_* which should
5086         not be necessary anymore.
5087         Do include dbus-gtype-specialized.h, which are utilities
5088         for GLib container types.
5089         Add various #defines for types such as
5090         DBUS_TYPE_G_BOOLEAN_ARRAY.
5091         (DBusGValueIterator, DBusGValue): Define, not fully used
5092         yet.
5093         (dbus_g_value_get_g_type): Type for recursive value.
5094         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5095         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5096         (dbus_g_value_free): Prototypes.
5097         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5098         (dbus_g_proxy_set_interface): Prototype.
5099         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5100         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5101         types.
5102         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5103         Accessors.
5104         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5105         doing async invocations.
5106         (dbus_g_method_return, dbus_g_method_return_error):
5107         Prototypes.
5108         * doc/dbus-tutorial.xml: Update GLib section.
5109         
5110         * tools/dbus-viewer.c (load_child_nodes): Update
5111         for new invocation type of dbus_g_proxy_end_call.
5112         (load_from_service_thread_func): Ditto.
5113
5114         * tools/print-introspect.c (main): Ditto.
5115
5116         * tools/dbus-names-model.c (have_names_notify)
5117         (names_model_reload, names_model_set_connection)
5118         Use GTypes.
5119
5120         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5121         needed since Python bindings use GLib bindings.
5122
5123         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5124         Add --prefix argument.
5125
5126         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5127         unneeded --ignore-unsupported arg.
5128         
5129         * test/glib/test-service-glib.c: 
5130         * test/glib/test-service-glib.xml:
5131         * test/glib/test-dbus-glib.c: Add many more tests.
5132
5133 2005-06-06  David Zeuthen  <davidz@redhat.com>
5134
5135         * doc/TODO: Add item about need to remove deprecated functions.
5136
5137         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5138
5139         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5140         to repair the ABI which was broken with the last commit.
5141
5142 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5143
5144         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5145         (dbus_connection_disconnect): renamed to dbus_connection_close 
5146         for API symmetry with dbus_connection_open
5147         (_dbus_connection_open_internal): 
5148         s/dbus_connection_disconnect/dbus_connection_close
5149
5150         * dbus/dbus-bus.c (dbus_bus_get):
5151         s/dbus_connection_disconnect/dbus_connection_close
5152
5153         * bus/connection.c (bus_connections_unref, 
5154         bus_connections_setup_connection, bus_connections_expire_incomplete):
5155         s/dbus_connection_disconnect/dbus_connection_close
5156
5157         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5158         kill_client_connection_unchecked, check_hello_connection):
5159         s/dbus_connection_disconnect/dbus_connection_close
5160
5161         * bus/bus.c (new_connection_callback):
5162         s/dbus_connection_disconnect/dbus_connection_close
5163
5164         * tools/dbus-send.c (main):
5165         s/dbus_connection_disconnect/dbus_connection_close
5166
5167         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5168         s/dbus_connection_disconnect/dbus_connection_close
5169         
5170         * test/test-service.c (path_message_func, filter_func):
5171         s/dbus_connection_disconnect/dbus_connection_close
5172         
5173         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5174         
5175 2005-05-25  Colin Walters  <walters@verbum.org>
5176
5177         * dbus/dbus-protocol.h: Move various bus service #defines such
5178           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5179           dbus/dbus-shared.h.
5180         * dbus/dbus-shared.h: Various defines moved here.
5181         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5182
5183 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5184
5185         * python/__init__.py: Python bindings deserve a minor version
5186         update.  Upped to (0, 40, 2)
5187
5188 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5189
5190         * python/decorators.py: add explicitly_pass_message decorator
5191         for passing in the dbus message as keyword for edge case signal
5192         handling
5193
5194         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5195         to conform with what dbus expects for match rules
5196         (SignalMatchRule.execute): add the dbus message as a keyword
5197         if the signal handler has requested it
5198
5199         * python/examples/example/signal-recipient.py: added some more
5200         examples on how to hook up to signals
5201
5202 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5203
5204         * python/decorators.py: import dbus_bindings
5205
5206         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5207         SignalMatchNode): new classes that implement wildcard signal
5208         callback matching using a tree lookup. Heavily modified from a
5209         patch sent by Celso Pinto (fd.o bug #3241)
5210
5211         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5212         use new match classes to handle signals.
5213
5214 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5215         
5216         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5217
5218 2005-05-18  Havoc Pennington  <hp@redhat.com>
5219
5220         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5221         gettext. Not really worth requiring yet perhaps, but any
5222         production quality 1.0 would require it so we should go ahead and
5223         get things set up. We do have a couple token calls to
5224         bindtextdomain in the code already.
5225
5226 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5227
5228         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5229         when using recursive g_main_loops
5230
5231         * python/_dbus.py (class Bus): add the ProxyObjectClass
5232         alias for ProxyObject to make it easier for the Twisted 
5233         networking framework to integrate dbus.
5234
5235         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5236         alias for ProxyMethod to make it easier for the Twisted 
5237         networking framework to integrate dbus. 
5238
5239 2005-05-11  Ross Burton  <ross@openedhand.com>
5240
5241         * glib/dbus-glib-tool.c: Add --prefix argument.
5242         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5243         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5244         Add prefix argument.
5245         (generate_glue): Pass prefix argument down.
5246         (dbus_binding_tool_output_glib_server): Pass prefix to
5247         glib-genmarshal.
5248         
5249 2005-05-11  Colin Walters  <walters@verbum.org>
5250
5251         * tools/dbus-send.c (append_array): New function.
5252         (append_arg): Broken out from main.
5253         (main): Add cheesy hack to send arrays and variants.
5254         (usage): Update.
5255         * tools/dbus-print-message.c (print_iter): Broken out
5256         from main.
5257
5258 2005-05-11  Colin Walters  <walters@verbum.org>
5259
5260         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5261         New function, returns signature string for signature iter.
5262         * dbus/dbus-signature.h: Prototype it.
5263         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5264         New function, returns signature string for message iter.
5265         (dbus_message_iter_get_array_len): New function, returns
5266         length of array.
5267         (dbus_message_iter_get_fixed_array): Fix assertion; this
5268         function should be used when the iter is pointing to the
5269         contents of an array
5270         * dbus/dbus-message.h: Prototypes.
5271         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5272         New function; returns length of an array.
5273         * dbus/dbus-marshal-recursive.h: Prototype it.
5274         
5275 2005-05-11  Colin Walters  <walters@verbum.org>
5276
5277         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5278         compilation error.
5279         
5280 2005-05-08  Havoc Pennington  <hp@redhat.com>
5281
5282         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5283         daemon's pid, not the parent's pid, to the file descriptor.
5284         Reported by Taj Morton.
5285
5286 2005-05-05  Havoc Pennington  <hp@redhat.com>
5287
5288         * configure.in (LT_*): add notes on how the libtool versioning
5289         works to save thinking. Increment soname to indicate protocol
5290         breakage (though really the library interface hasn't changed I
5291         guess)
5292
5293         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5294         verify the GUID received from server matches what we were
5295         expecting, if we had an expectation
5296
5297         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5298         (_dbus_auth_get_guid_from_server): new function
5299         (send_begin): parse the OK args
5300
5301         * doc/dbus-specification.xml: add GUID to the auth protocol
5302
5303 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5304
5305         * Fix my name in previous changelog ;)
5306
5307         * python/proxies.py (ProxyObject.__getattr__): add further patch
5308         from Anthony Baxter to throw an AttributeError when python 
5309         __special__ functions are called instead of marshling them over 
5310         the bus (Bug#1685 comment 3).
5311
5312 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5313
5314         * python/Makefile.am: changed to use pyexecdir for the binding
5315         shared libraries (Bug#2494)
5316
5317         * python/exceptions.py: bring exceptions over from the bindings
5318         so they can be used in applications (Bug#2036)
5319         Make all exceptions derive from DBusException
5320
5321         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5322         of classes so that print obj doesn't throw an exception (Bug #1685)
5323
5324 2005-05-03  Ross Burton  <ross@openedhand.com>
5325
5326         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5327         Return if we get an error during registration.  Set up a
5328         weak reference on object to unregister if object is destroyed.
5329         (unregister_gobject): New function.
5330         
5331 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5332
5333         * python/dbus_bindings.pyx.in: 
5334         - added new type classes for hinting to the marashaler what type 
5335         to send over the wire
5336         - added int16 and uint16 marshalers
5337         - Fixed a bug in the type constants that caused int32 to go out
5338         as uint16 over the wire
5339         * python/dbus.py: split up into different files and renamed _dbus.py
5340         * python/__init__.py, python/_util.py, python/decorators.py, 
5341         python/exceptions.py, python/proxies.py, python/services.py,
5342         python/types.py: new files split off from dbus.py
5343         * python/Makefile.am: Add new files, remove dbus.py and 
5344         install all python files to <python module dir>/dbus
5345         * python/examples/*: Added #!/usr/bin/env python to the top of
5346         every example.  Patch provided by Tatavarty Kalyan
5347
5348 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5349
5350         * NEWS: Update to 0.33
5351
5352 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5353
5354         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5355         method for doing async calls
5356         (_pending_call_notification): New C function for handling pendning call
5357         callbacks
5358         (set_notify): New method for setting pending call notification
5359         
5360         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5361         Async capabilities added to remote method calls
5362         (Sender): class removed
5363         (RemoteService): class removed
5364         (ObjectTree): class removed for now
5365         (RemoteObject): Renamed to ProxyObject
5366         (RemoteMethod): Renamed to ProxyMethod
5367         (method): Decorator added for decorating python methods as dbus methods
5368         (signal): Decorator added for decorating python methods as signal emitters
5369         (ObjectType): Metaclass added for generating introspection data and the
5370         method callback vtable
5371         (Interface): Wrapper class added to wrap objects in a dbus interface
5372         (Object): Uses ObjectType as its metaclass and exports Introspect
5373         of the org.freedesktop.DBus.Introspectable interface
5374         (ValidationException, UnknownMethodException): new exceptions
5375
5376         * python/examples/*: Modified to fit with the new bindings
5377
5378 2005-04-23  Havoc Pennington  <hp@redhat.com>
5379
5380         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5381         reported by Tony Houghton
5382
5383         * test/test-service.c (main): test
5384         dbus_connection_get_object_path_data()
5385
5386         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5387         the exact_match
5388         (_dbus_object_tree_get_user_data_unlocked): new function used by
5389         dbus_connection_get_object_path_data()
5390         (do_register): add assertion test for get_user_data_unlocked
5391         (object_tree_test_iteration): more tests
5392
5393         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5394         new function from Dan Reed to let you get the user data from 
5395         dbus_connection_register_object_path()
5396
5397 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5398
5399         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5400         in numerous places that did not account for the NULL terminator
5401         (signature_from_seed): changed the manual string copy loop to 
5402         just use strcpy instead
5403         make check should now pass
5404
5405 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5406
5407         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5408         so that it allows messages that are not signals to pass in 
5409         NULL as the interface.
5410
5411 2005-04-18  David Zeuthen  <davidz@redhat.com>
5412
5413         * glib/dbus-gmain.c (io_handler_destroy_source): 
5414         (timeout_handler_destroy_source, connection_setup_free): 
5415         Also unref the source to avoid memory leaks.
5416
5417 2005-04-13  David Zeuthen  <davidz@redhat.com>
5418
5419         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5420         more reasonable, yet still totally arbitrary, value :-). 
5421
5422 2005-04-13  David Zeuthen  <davidz@redhat.com>
5423
5424         * doc/TODO: Added an "important for 1.0" item about selinux
5425         allow/deny messages
5426
5427 2005-04-13  David Zeuthen  <davidz@redhat.com>
5428
5429         * bus/selinux.c: Add c-file-style to top of file
5430         (log_audit_callback): Don't free the data here anymore
5431         (bus_selinux_check): Don't take spid and tpid since appending
5432         that to auxdata may OOM.
5433         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5434         to the caller if we are OOM by taking an error object.
5435         (bus_selinux_allows_send): -do-
5436
5437         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5438         and bus_selinux_allows_send
5439
5440         * bus/bus.c (bus_context_check_security_policy): Pass error and
5441         pass on OOM thrown by bus_selinux_allows_send()
5442
5443         * bus/services.c (bus_registry_acquire_service): Pass error and
5444         pass on OOM thrown by bus_selinux_allows_acquire_service()
5445
5446 2005-04-13  Havoc Pennington  <hp@redhat.com>
5447
5448         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5449         message at a time to avoid monopolizing the main loop, bug 
5450         #2953 from Benjamin Otte
5451
5452 2005-04-09  Havoc Pennington  <hp@redhat.com>
5453
5454         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5455         possible overlap, fix from Daniel Reed
5456         (fixup_alignment): fix signedness warnings
5457         (_dbus_string_append_unichar): ditto
5458
5459 2005-04-09  Havoc Pennington  <hp@redhat.com>
5460
5461         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5462
5463         * glib/dbus-glib-tool.c (main): fix warning
5464
5465         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5466
5467         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5468         add a new function that can be used in simple applications that
5469         don't have a main loop and are willing to block
5470
5471 2005-04-05  David Zeuthen  <davidz@redhat.com>
5472
5473         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5474
5475         * glib/dbus-gmain.c:
5476         (io_handler_destroy_source): Remove from list of IO handlers
5477         of the ConnectionSetup object
5478         (timeout_handler_destroy_source): -do- for timeout handlers
5479         (io_handler_source_finalized): Don't remove from list since
5480         we now do that in io_handler_destroy_source(). Renamed from
5481         io_handler_source_destroyed
5482         (timeout_handler_source_destroyed): -do- for timeout handlers
5483         (connection_setup_free): It is now safe to iterate over all
5484         IO and timeout handlers as the _destroy_source removes them
5485         from the list synchronously
5486
5487 2005-03-30  Havoc Pennington  <hp@redhat.com>
5488
5489         * configure.in: change check to gtk 2.4
5490
5491         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5492         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5493         to 2.4
5494
5495 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5496
5497         * News: Update 0.32
5498
5499         * HACKING: Fixed realease instructions.  configure.in should be updated to
5500           the next release by the person who made the last release.
5501
5502 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5503
5504         * python/lvalue_cast_post_process.py - removed.  Patch has been
5505           submitted to Pyrex maintainers that fixes gcc4.0 errors
5506
5507         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5508
5509 2005-03-24  Daniel Reed  <n@ml.org>
5510
5511         * tools/Makefile.am: Make print-introspect and
5512         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5513
5514 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5515
5516         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5517
5518         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5519           had in Red Hat packages for a while but for some reason never 
5520           got merged upstream
5521           (_dbus_is_a_number): New checks if a string
5522           can be converted to a number and does the conversion if it can
5523           (_dbus_user_database_lookup): Add check to see if the given username
5524           is a udi.  This allows udi's to be used instead of usernames in the
5525           config file.
5526           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5527           is a gdi.  This allows gdi's to be used instead of groupnames in the
5528           config file.
5529
5530 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5531
5532         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5533           code so that it compiles with gcc4.0
5534
5535         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5536           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5537           results back to dbus_binding.c
5538
5539 2005-03-20  Colin Walters  <walters@verbum.org>
5540
5541         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5542
5543         * configure.in: Require GTK+ 2.6.
5544         
5545 2005-03-20  Colin Walters  <walters@verbum.org>
5546
5547         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5548
5549 2005-03-17  Tom Parker  <palfrey@tevp.net>
5550
5551         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5552         print DBUS_UID_UNSET; instead print passed username.  Also
5553         be sure to actually use gid looked up in cache.
5554         
5555         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5556         for DBUS_GID_UNSET and groupname.
5557
5558 2005-03-17  Colin Walters  <walters@verbum.org>
5559
5560         * bus/print-introspect.c: Move to tools/.
5561         * bus/run-with-tmp-session-bus.sh: Ditto.
5562         
5563         * glib/Makefile.am (dbus-glib-bindings.h): Move
5564         generation to tools/Makefile.am.
5565
5566         * test/glib/run-test.sh: Update to handle move
5567         of run-with-tmp-session-bus.sh.
5568
5569         * test/glib/test-service-glib.c: Update to handle
5570         move of dbus-glib-bindings.h.
5571
5572         * tools/print-introspect.c: Moved here
5573         from bus/, and ported to GLib bindings.
5574
5575         * tools/run-with-tmp-session-bus.sh: Moved here
5576         from bus/.
5577
5578         * tools/Makefile.am: Generate dbus-glib-bindings.h
5579         and dbus-bus-introspect.xml here.
5580
5581         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5582         Update.
5583
5584 2005-03-17  Colin Walters  <walters@verbum.org>
5585
5586         * bus/driver.c (write_args_for_direction): Use
5587         _dbus_string_get_const_data to retrieve string;
5588         _dbus_string_get_const_data_len doesn't actually return
5589         a NULL-terminated substring.
5590
5591         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5592         (main): Change to use org_freedesktop_DBus_request_name
5593         instead of using g_proxy_begin_call/end_call.
5594
5595 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5596
5597         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5598         generating the finalizer.  Fixes from Ben Maurer.
5599
5600 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5601
5602         * mono/BusDriver.cs: Update method names: ListServices
5603         becomes ListNames; GetOwner becomes GetNameOwner.
5604
5605         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5606         onto the eval stack when removing the delegate.
5607
5608 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5609
5610         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5611         LT_CURRENT.  Set it to the autoconf variable.
5612                                                                                 
5613         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5614         classes that disconnects the signal handler delegate from the
5615         service object.  Fixes a big leak of proxy objects on the
5616         client side of things.  Patch from Ben Maurer
5617         <bmaurer@ximian.com>
5618
5619 2005-03-12  Colin Walters  <walters@verbum.org>
5620
5621         * bus/driver.c (write_args_for_direction): New function,
5622         parses a type signature into arguments and outputs to
5623         XML.
5624         (bus_driver_handle_introspect): Use it instead of
5625         hardcoding XML for certain signatures.
5626         
5627         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5628         dependency on dbus-daemon.
5629
5630         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5631         argument, pass it to dbus_binding_tool_output_glib_client.
5632
5633         * glib/dbus-binding-tool-glib.c
5634         (generate_client_glue): Protect against multiple inclusion.
5635         (dbus_binding_tool_output_glib_client): Add
5636         G_BEGIN_DECLS/G_END_DECLS.
5637
5638         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5639         Change to just take iface prefix directly.
5640         (write_formal_parameters): Clarify error message.
5641         (check_supported_parameters): New function; checks to see type
5642         signatures of method parameters are supported.
5643         (generate_client_glue): Handle ignore_unsupported flag.
5644         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5645         parameter.
5646
5647         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5648         --ignore-unsupported by default until glib bindings
5649         support arrays.
5650
5651 2005-03-11  Colin Walters  <walters@verbum.org>
5652
5653         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5654         install it.
5655
5656         * bus/print-introspect.c: New file; prints introspection
5657         data for a given name and object path.
5658
5659         * bus/run-with-tmp-session-bus.sh: New file, refactored
5660         from test/glib/run-test.sh.  Creates a temporary session
5661         bus and runs another program.
5662
5663         * test/glib/run-test.sh: Refactor to invoke
5664         run-with-tmp-session-bus.sh.
5665
5666         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5667         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5668         macros instead of hardcoding.
5669
5670         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5671
5672 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5673
5674         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5675         this unref; it doesn't match up evenly in some codepaths.
5676         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5677         this evenly matches with the ref near the top of this function.
5678
5679 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5680
5681         * dbus/dbus-object-tree.c
5682         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5683         and we try to unregister a path that's not registered, still go
5684         through the process of unlocking and don't just return.
5685
5686 2005-03-09  Colin Walters  <walters@verbum.org>
5687
5688         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5689         to this are generated for client-side wrappers.  Invokes a
5690         D-BUS method and returns reply values.  
5691
5692         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5693         function; writes signature string for argument direction.
5694         (write_args_for_direction): Change to pass input values directly
5695         instead of via address, and fix indentation.
5696         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5697         make generated wrappers inlineable.
5698
5699         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5700         note about using dbus_type_is_fixed.
5701
5702         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5703         dbus/dbus-signature.c as dbus_type_is_fixed.
5704
5705         All callers updated.
5706
5707         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5708         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5709
5710         * dbus/dbus-signature.h: Prototype.
5711
5712         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5713         error printf code.
5714
5715         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5716         appropriate instead of just freeing it.
5717         (main): Free returned strings using g_free.
5718
5719         * test/glib/Makefile.am (test-service-glib-glue.h)
5720         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5721
5722         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5723         simply maps a simple D-BUS type to GType.
5724         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5725         GType.
5726         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5727         initialize the value with it.
5728         (dbus_gvalue_binding_type_from_type): Unused, delete.
5729         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5730         various types instead of unmarshalling to value data directly.
5731         Remove can_convert boolean.
5732         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5733         returning directly instead of using can_convert boolean.
5734         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5735         Stores a GValue in a pointer to a value of its corresponding C
5736         type.
5737
5738         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5739         add dbus_gvalue_store.
5740
5741 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5742
5743         Fix a bunch of lifecycle and memory management problems
5744         in the mono bindings.
5745
5746         * mono/Arguments.cs (Arguments): Implement IDisposable
5747
5748         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5749         strictly a static class.
5750
5751         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5752         delegates into this file.
5753         (Connection): Implement IDisposable.
5754         (Dispose): Disconnect the connection and set the raw connection
5755         pointer to IntPtr.Zero.
5756         (~Connection): Call Dispose().
5757         (RegisterObjectPath): Added.  Manages the registration of object
5758         paths so we can cleanly disconnect them at dispose/finalize time.
5759         (UnregisterObjectPath): Ditto.
5760         (set_RawConnection): Unregister all of the object paths when
5761         changing the underlying DBusConnection.  Add them back onto the
5762         new connection, if any.
5763
5764         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5765         more unmanaged resources anymore, so it's not necessary.  Move all
5766         the DBusObjectPathVTable stuff out of here.
5767         (Handler): Save references to our delegates so that they don't get
5768         finalized.  Call Connection.RegisterObjectPath() instead of
5769         dbus_connection_register_object_path() directly.
5770         (Message_Called): Dispose the message after we're finished with
5771         it.
5772
5773         * mono/Message.cs (Message): Implement IDisposable.
5774         (Dispose): Dispose the Arguments, and set the RawMessage to
5775         IntPtr.Zero.
5776         (SendWithReplyAndBlock): We own the ref to the reply that comes
5777         back from dbus_connection_send_with_reply_and_block() so add a
5778         comment about that and unref it after we've constructed a managed
5779         MethodReturn class around it.  Fixes a big, big leak.
5780
5781         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5782         method.
5783         (BuildSignalHandler): After we've sent the Signal message, dispose
5784         of it.
5785         (BuildMethod): Dispose of the method call and reply messages after
5786         we've sent the message and extracted the data we want from the
5787         reply.
5788
5789         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5790         anymore.
5791         (Service_FilterCalled): Dispose of the message after we're
5792         finished with it.
5793
5794 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5795
5796         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5797         After we attach our pending call to the connection, unref
5798         it.  Fixes a leak.
5799  
5800         * mono/Connection.cs (set_RawConnection): Disconnect our
5801         filter and match callbacks from the old connection and
5802         reconnect them to the new connection, if any.
5803
5804         * mono/DBusType/Array.cs: "Code" is a static member, so
5805         don't use "this" to refer to it.  Fix for stricter checking
5806         in Mono 1.1.4.
5807  
5808         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5809         object path that we pass into unmanaged code.
5810  
5811         * mono/DBusType/String.cs (Append): Don't leak the string
5812         that we pass into unmanged code.
5813
5814 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5815         * NEWS: Update for 0.31
5816
5817         * configure.in: Release 0.31
5818         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5819
5820         * qt/Makefile.am: fixed build
5821
5822         * dbus/Makefile.am: soname bump for libdbus
5823
5824         * glib/Makefile.am: soname bump for libdbus-glib
5825
5826 2005-03-05  Havoc Pennington  <hp@redhat.com>
5827
5828         * dbus/dbus-sysdeps.c:
5829         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5830         value
5831         (_dbus_generate_random_bytes_buffer): fix return value
5832
5833         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5834         checks actually work, from Tom Parker <fdo@tevp.net>
5835
5836 2005-03-01  Colin Walters  <walters@verbum.org>
5837
5838         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5839         functions copied from dbus-glib-tool.c.
5840         (main): Convert lots of error code to use them.
5841         Also add some testing for introspection bits.
5842
5843 2005-03-01  Colin Walters  <walters@verbum.org>
5844         
5845         * doc/TODO: Remove introspection signature TODO.
5846
5847 2005-02-27  Colin Walters  <walters@verbum.org>
5848
5849         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5850         Change return value to const char * instead of int so we can do
5851         full signatures.
5852         (struct PropertyInfo, struct ArgInfo): Store char *.
5853         (property_info_new, arg_info_new): Update parameters, strdup.
5854         (property_info_unref, arg_info_unref): Free.
5855
5856         * glib/dbus-gidl.h: Update prototypes.
5857
5858         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5859         (validate_signature): New function, just validates signature and
5860         sets GError.
5861         (parse_property, parse_arg): Invoke validate_signature.  Store
5862         signature instead of just type code.
5863
5864         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5865         function to return a primary type for a signature, dropping
5866         information about types in container types.
5867         (dbus_gvalue_genmarshal_name_from_type)
5868         (dbus_gvalue_binding_type_from_type)
5869         (dbus_gvalue_ctype_from_type): Update to take full signature
5870          instead of type code.
5871         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5872
5873         * glib/dbus-gvalue.h: Update prototypes for above.
5874
5875         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5876         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5877         (introspect_properties, introspect_signals, write_interface):
5878         Update to handle signatures, and remove usage of
5879         _dbus_gutils_type_to_string.
5880         (handle_introspect): Print out type codes instead of e.g. "string"
5881         in hardcoded introspection XML; also use x_AS_STRING constants
5882         instead of hardcoding in string.
5883
5884         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5885         to string.  Remove usage of _dbus_gutils_type_to_string.
5886
5887         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5888
5889         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5890         deletion.
5891         
5892         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5893         (compute_marshaller_name, generate_glue): Handle signature change
5894         to string.
5895         (write_formal_parameters, write_args_for_direction): Ditto, and
5896         remove FIXME.
5897
5898         * tools/dbus-tree-view.c (type_to_string): Delete.
5899         (info_set_func_text): Update to print full signatures.
5900
5901         * test/glib/test-service-glib.xml: Change types to new
5902         introspection format.
5903
5904 2005-02-26  Havoc Pennington  <hp@redhat.com>
5905
5906         * doc/TODO: remove the "guid" item
5907
5908         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5909         (with_bus_thread_func): use open_private
5910
5911         * dbus/dbus-connection.c (dbus_connection_open_private): new
5912         function that works like the old dbus_connection_open()
5913         (dbus_connection_open): now returns an existing connection if
5914         possible
5915
5916         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5917         through the GUID to the transport
5918
5919         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5920         GUID in hex-encoded form.
5921
5922         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5923         pass GUID argument in to the transport
5924
5925         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5926         guid argument
5927
5928         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5929
5930         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5931
5932 2005-02-25  Havoc Pennington  <hp@redhat.com>
5933
5934         * doc/dbus-specification.xml: document the GUID thing
5935
5936         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5937         globally unique ID for the server, and put a "guid=hexencoded"
5938         field in the address
5939
5940         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5941
5942         * dbus/dbus-message.c: ditto
5943
5944         * dbus/dbus-dataslot.c: ditto
5945
5946         * dbus/dbus-list.c: ditto
5947
5948         * dbus/dbus-internals.h: wait, just include
5949         dbus-threads-internal.h here
5950         
5951         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5952         use in main library
5953
5954         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5955
5956 2005-02-24  Colin Walters  <walters@verbum.org>
5957
5958         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5959
5960 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5961
5962         * glib/Makefile.am: added dbus-gobject.h to sources list
5963         so distcheck doesn't fail
5964         
5965 2005-02-24  Havoc Pennington  <hp@redhat.com>
5966
5967         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5968         you must disconnect before unref, since locking and other things
5969         are screwed up otherwise. Fix assorted other locking stuff.
5970
5971         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5972         fix compilation
5973
5974         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5975         into a private header and don't export from the library
5976
5977         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5978
5979 2005-02-24  Colin Walters  <walters@verbum.org>
5980         
5981         * dbus/dbus-signature.c: New file; implements various functions
5982         related to type signatures.  Includes an interator for parsing,
5983         validation functions.
5984         (dbus_type_is_basic): Moved here from
5985         dbus-marshal-basic.c:_dbus_type_is_basic.
5986         (dbus_type_is_container): Moved here from
5987         dbus-marshal-basic.c:_dbus_type_is_container.
5988
5989         All callers of _dbus_type_is_container and _dbus_type_is_basic
5990         updated, and include dbus-signature.h.
5991
5992         * dbus/dbus-signature.h: New file; prototypes for the above.
5993
5994         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5995         dbus-signature.h.
5996
5997         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5998         function factored out of _dbus_first_type_in_signature.
5999         (_dbus_first_type_in_signature_c_str): New function; returns first
6000         type code for a type signature character.
6001
6002         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6003         handle function moves.
6004
6005         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6006
6007         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6008         function; skips to next complete type in type signature.
6009         Implemented using previous skip_one_complete_type.  Now
6010         skip_one_complete_type just delegates to
6011         _dbus_type_signature_next.
6012
6013         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6014         to dbus-signature.c
6015         (_dbus_type_is_container): Ditto.
6016
6017         * doc/dbus-specification.xml: Update introspection sample to
6018         use real type signatures.
6019
6020         * dbus/dbus-test.h: Prototype signature test.
6021
6022         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6023         signature tests.
6024
6025         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6026
6027 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6028
6029         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6030         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6031
6032 2005-02-21  Colin Walters  <walters@verbum.org>
6033
6034         * dbus/dbus-test-main.c (main): Take optional specific test
6035         argument.
6036
6037         * dbus/dbus-test.c (run_test): New function, runs a test function
6038         with no data directory.
6039         (run_data_test): Like above, but takes data directory.
6040         (dbus_internal_do_not_use_run_tests): Take
6041         specific test argument.  Replace lots of cut n' paste code
6042         with run_test and run_data_test.
6043
6044         * dbus/dbus-test.h: Update prototype for
6045         dbus_internal_do_not_use_run_tests.
6046
6047 2005-02-20  Havoc Pennington  <hp@redhat.com>
6048
6049         Fix bugs reported by Daniel P. Berrange
6050         
6051         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6052         (protected_change_watch): new function
6053         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6054         (_dbus_server_add_watch): change to work like the
6055         dbus-connection.c equivalents; like those, probably kind of
6056         busted, but should at least mostly work for now
6057         (dbus_server_disconnect): drop the lock if we were already
6058         disconnected, patch from Daniel P. Berrange
6059
6060         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6061         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6062         same stuff
6063
6064         * doc/TODO: todo about unscrewing this mess
6065
6066 2005-02-19  Colin Walters  <walters@verbum.org>
6067
6068         * glib/dbus-binding-tool-glib.c
6069         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6070
6071         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6072         as errno.h and sys/stat.h.
6073         (lose): New function, prints error with
6074         newline and exits.
6075         (lose_gerror): Similar, but takes GError for message.
6076         (main): Add --output argument to specify output file to write to,
6077         instead of always printing to stdout.  In this mode, determine
6078         timestamps on source files to see whether any are newer than the
6079         target file.  If not, exit.  Also convert a number of error
6080         messages to use lose (since it's shorter), and switch to using
6081         g_io_channel_shutdown.
6082
6083 2005-02-19  Havoc Pennington  <hp@redhat.com>
6084
6085         * glib/dbus-gobject.c
6086         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6087
6088         * glib/dbus-glib.c: fix doxygen warnings
6089
6090         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6091         is found on an <arg>
6092
6093 2005-02-17  Colin Walters  <walters@verbum.org>
6094
6095         * glib/dbus-gobject.h: Don't export
6096         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6097         
6098         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6099         (invoke_object_method): Handle it.
6100
6101         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6102         Handle rename.
6103         
6104 2005-02-17  Colin Walters  <walters@verbum.org>
6105
6106         * bus/.cvsignore, doc/.cvsignore
6107         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6108         Update.
6109
6110 2005-02-17  Colin Walters  <walters@verbum.org>
6111         
6112         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6113         Rename to DBUS_SERVICE_DBUS.
6114         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6115         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6116         Change the value from "org.freedesktop.Local"
6117         to "org.freedesktop.DBus.Local".
6118         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6119         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6120         DBUS_INTERFACE_INTROSPECTABLE.
6121         Change the value from "org.freedesktop.Introspectable"
6122         to "org.freedesktop.DBus.Introspectable".
6123         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6124         DBUS_INTERFACE_PROPERTIES.
6125         Change the value from "org.freedesktop.Properties"
6126         to "org.freedesktop.DBus.Properties".
6127         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6128         DBUS_INTERFACE_PEER.
6129         Change the value from "org.freedesktop.Peer"
6130         to "org.freedesktop.DBus.Peer".
6131         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6132         DBUS_INTERFACE_LOCAL.
6133         Change the value from "org.freedesktop.Local"
6134         to "org.freedesktop.DBus.Local".
6135
6136         All other users of those constants have been changed.
6137
6138         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6139
6140         * glib/dbus-gobject.c (handle_introspect): Use constants.
6141
6142         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6143
6144 2005-02-17  Colin Walters  <walters@verbum.org>
6145
6146         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6147         (parse_node, parse_interface, parse_method, parse_signal)
6148         (parse_property, parse_annotation): Lose if we're currently in an
6149         annotation.
6150         (parse_annotation): New function.
6151         (parser_start_element, parser_end_element): Handle annotation.
6152         (parse_method, parse_interface): Remove support for c_name attribute,
6153         switch to annotations.
6154
6155         * glib/dbus-gidl.h (interface_info_get_binding_names)
6156         (method_info_get_binding_names)
6157         (interface_info_get_binding_name, method_info_get_binding_name)
6158         (interface_info_set_binding_name, method_info_set_binding_name):
6159         Remove.
6160         (interface_info_get_annotations, method_info_get_annotations)
6161         (interface_info_get_annotation, method_info_get_annotation)
6162         (interface_info_add_annotation, method_info_add_annotation):
6163         Prototype.
6164
6165         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6166         for "bindings".
6167         (struct MethodInfo): Ditto.
6168         Straightfoward conversion of binding methods into annotation methods
6169         as prototyped.
6170
6171         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6172
6173         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6174
6175         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6176         Use new annotation API.
6177
6178         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6179         annotation element.
6180         
6181         * doc/dbus-specification.xml: Discuss introspection annotations,
6182         include list of well-known annotations.
6183
6184         * test/glib/test-service-glib.xml: Make validate against new DTD.
6185
6186 2005-02-17  Colin Walters  <walters@verbum.org>
6187
6188         This patch is based on initial work from
6189         Paul Kuliniewicz <kuliniew@purdue.edu>.
6190
6191         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6192         initialization of GValue from dbus type to here.
6193         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6194         for the "glib-genmarshal" program from a DBus type.
6195         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6196         into the C name for it we use in the glib bindings.
6197         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6198         glib C type (not GValue).
6199         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6200
6201         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6202         from dbus-gobject.c.
6203
6204         * glib/dbus-gutils.h: Prototype it.
6205
6206         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6207         (marshal_dbus_message_to_g_marshaller): Use new shared function
6208         dbus_glib_marshal_dbus_message_to_gvalue_array.
6209
6210         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6211         Will be changed once we have annotations.
6212
6213         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6214         GStaticRWLock.  Callers updated.
6215         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6216         (string_table_next): New function for iterating over zero-terminated
6217         string value array.
6218         (string_table_lookup): New function; retrieves specific entry in
6219         array.
6220         (get_method_data): New function; look up method data in object data chunk.
6221         (object_error_domain_prefix_from_object_info)
6222         (object_error_code_from_object_info): New functions, but not implemented yet.
6223         (method_interface_from_object_info): New function; retrieve interface name.
6224         (method_name_from_object_info): New function; retrieve method name.
6225         (method_arg_info_from_object_info): New function; retrieve argument data.
6226         (arg_iterate): New function; iterates over serialized argument data.
6227         (method_dir_signature_from_object_info): New function; returns a
6228         GString holding type signature for arguments for just one
6229         direction (input or output).
6230         (method_input_signature_from_object_info)
6231         (method_output_signature_from_object_info): New functions.
6232         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6233         converts dbus message arguments into a GValue array.  Used for both
6234         signal handling and method invocation.
6235         (struct DBusGlibWriteIterfaceData): New utility structure.
6236         (write_interface): New function; generate introspection XML for
6237         an interface.
6238         (introspect_interfaces): New function; gathers all interface->methods,
6239         generates introspection XML for them.
6240         (handle_introspect): Invoke introspect_interfaces.
6241         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6242         (lookup_object_and_method): New function; examines an incoming message
6243         and attempts to match it up (via interface, method name, and argument
6244         signature) with a known object and method.
6245         (gerror_domaincode_to_dbus_error_name): New function; converts a
6246         GError domain and code into a DBus error name.  Needs GError data
6247         added to object introspection to work well.
6248         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6249         GError.
6250         (invoke_object_method): New function to invoke an object method
6251         looked up via lookup_object_and_method.  Parses the incoming
6252         message, turns it into a GValue array, then invokes the marshaller
6253         specified in the DBusGMethodInfo.  Creates a new message with
6254         either return values or error message as appropriate.
6255         (gobject_message_function): Invoke lookup_object_and_method and
6256         invoke_object_method.
6257
6258         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6259         (enum DBusBindingOutputMode): New enum for binding output modes.
6260         (pretty_print): Print binding names.
6261         (dbus_binding_tool_error_quark): GError bits.
6262         (version): Fix typo.
6263         (main): Create GIOChannel for output.  Parse new --mode argument,
6264         possible values are "pretty-print", "glib-server", "glib-client".
6265         Use mode to invoke appropriate function.
6266         
6267         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6268
6269         * glib/dbus-glib-tool.h: New header, just includes GError bits
6270         for now.
6271
6272         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6273         maps binding style to name.
6274         (struct MethodInfo): Ditto.
6275         (get_hash_keys, get_hash_key): Utility function, returns keys for
6276         a GHashTable.
6277         (interface_info_new, method_info_new): Initialize bindings.
6278         (interface_info_unref, method_info_unref): Destroy bindings.
6279         (method_info_get_binding_names, method_info_get_binding_name)
6280         (interface_info_get_binding_names, interface_info_get_binding_name):
6281         Functions for retrieving binding names.
6282         (method_info_set_binding_name, interface_info_set_binding_name):
6283         Functions for setting binding names.
6284
6285         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6286         for glib binding generation.
6287
6288         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6289         and client-side glib glue generation.
6290
6291         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6292         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6293         dbus-glib-tool.h.
6294
6295         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6296         of using GClosureMarshal directly.
6297         (struct DBusGObjectInfo): Add n_infos member.
6298
6299         * test/glib/test-service-glib.xml: New file; contains introspection data
6300         for MyTestObject used in test-service-glib.c.
6301
6302         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6303         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6304         (my_object_uppercase, my_object_many_args): New test methods.
6305         (main): Use dbus_g_object_class_install_info to include generated object
6306         info.
6307
6308         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6309         as well as client-side bindings.
6310
6311         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6312         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6313         using both the dbus_gproxy stuff directly as well as the generated bindings.
6314
6315 2005-02-15  Havoc Pennington  <hp@redhat.com>
6316
6317         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6318         complete a pending call, don't run filters first.
6319
6320         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6321         dbus_pending_call_steal_reply
6322
6323         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6324         _dbus_connection_block_pending_call
6325         (dbus_pending_call_get_reply): change to steal_reply and return a
6326         ref
6327
6328         * dbus/dbus-connection.c
6329         (dbus_connection_send_with_reply_and_block): port to work in terms
6330         of DBusPendingCall
6331         (_dbus_connection_block_pending_call): replace block_for_reply
6332         with this
6333
6334 2005-02-14  Havoc Pennington  <hp@redhat.com>
6335
6336         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6337         properly handle looking up group information by name; fix 
6338         from j@bootlab.org
6339
6340 2005-02-13  Havoc Pennington  <hp@redhat.com>
6341
6342         * dbus/dbus-connection.c (dbus_connection_return_message) 
6343         (dbus_connection_borrow_message): hold dispatch lock while message
6344         is outstanding
6345         (_dbus_connection_block_for_reply): hold dispatch lock while we
6346         block for the reply, so nobody steals our reply
6347         (dbus_connection_pop_message): hold the dispatch lock while we
6348         pluck the message
6349
6350 2005-02-13  Havoc Pennington  <hp@redhat.com>
6351
6352         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6353         (_dbus_connection_release_dispatch)
6354         (_dbus_connection_acquire_io_path)
6355         (_dbus_connection_release_io_path): make the mutex and condvar
6356         control access to the "acquired" flag. Drop the connection lock
6357         while waiting on the condvar. Hopefully these are baby steps in
6358         roughly the right direction.
6359
6360 2005-02-13  Havoc Pennington  <hp@redhat.com>
6361
6362         * dbus/dbus-connection.c: use separate mutexes for the condition
6363         variables; this is some kind of baseline for sanity, but the
6364         condition variables still aren't used correctly afaict
6365
6366 2005-02-13  Havoc Pennington  <hp@redhat.com>
6367
6368         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6369         fix a double-unlock
6370
6371         * dbus/dbus-connection.c
6372         (_dbus_connection_detach_pending_call_unlocked): add this
6373
6374         Initial semi-correct pass through to fix thread locking; there are
6375         still some issues with the condition variable paths I'm pretty
6376         sure
6377         
6378         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6379         lock/unlock calls
6380
6381         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6382         rename to add _unlocked
6383         (struct DBusConnection): move "dispatch_acquired" and
6384         "io_path_acquired" to use only one bit each.
6385         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6386         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6387         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6388         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6389         (_dbus_connection_remove_timeout) 
6390         (_dbus_connection_toggle_timeout): drop lock when calling out to
6391         user functions; done in a hacky/bad way.
6392         (_dbus_connection_send_and_unlock): add a missing unlock
6393         (_dbus_connection_block_for_reply): add a missing unlock
6394
6395         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6396         drop lock in a hacky probably unsafe way to call out to user
6397         function
6398
6399 2005-02-12  Havoc Pennington  <hp@redhat.com>
6400
6401         * tools/dbus-tree-view.c (info_set_func_text): display more
6402         details on args
6403
6404         * bus/driver.c (bus_driver_handle_list_services): list the bus
6405         driver
6406
6407         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6408
6409         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6410         (method_info_get_n_args): new function
6411
6412 2005-02-12  Havoc Pennington  <hp@redhat.com>
6413
6414         * bus/driver.c (bus_driver_handle_introspect): add introspection
6415         for bus driver
6416
6417 2005-02-12  Havoc Pennington  <hp@redhat.com>
6418
6419         * bus/driver.c: put the signature of each bus driver method in the
6420         table of handlers and check it on incoming calls; this isn't
6421         really useful, but going to add introspect support in a minute.
6422
6423 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6424
6425         * mono/Connection.cs: The unpredictability of finalizers in mono
6426         prevents us from deterministically disconnecting the filters from
6427         the Service class's finalizer, so move tracking of filters and
6428         matches here.  Add API for that.
6429
6430         * mono/Service.cs: Remove the code, add code which calls the
6431         methods now on the Connection class.
6432
6433 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6434
6435         * python/dbus.py (class Sender): added to support dbus signals better
6436         (Bus::add_signal_receiver): added expand_args parameter which defaults
6437         to True.  When expand args is True the signal handler will pass the 
6438         message arguments as parameters to the signal handler.  If False
6439         revert to previous behavior where the signal handler must get the
6440         argument list from the message.  This is to help port applications
6441         like HAL that have a tendancy to send variable length argument lists.
6442         self._match_rule_to_receivers is now a dict of dicts.
6443         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6444         removing it from a list
6445         (Bus::_signal_func): change signal handlers so that interface,
6446         signal_name, service, path and message are packed into a Sender
6447         object and that is passed to the handler.  If expand_args is True
6448         extract the args list from the message and append it to the parameter
6449         list
6450         
6451         * python/dbus_bindings.pyx.in (class Signature): added to support 
6452         signiature types
6453         (MessageIter::__init__): changed iteration limit to match D-BUS
6454         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6455         STRUCT and VARIENT type support
6456         (MessageIter::python_value_to_dbus_sig): made recursive to support
6457         recursive types
6458         (MessageIter::append*): added Signature, dict, tuple 
6459         support
6460
6461         * python/examples/example-client.py: added examples of getting tuples
6462         and dicts
6463
6464         * python/examples/example-service.py: added examples of sending tuples
6465         and dicts
6466
6467         * python/examples/example-signal-recipient.py: Fixed to handle new
6468         signal callback format
6469
6470 2005-02-10  Havoc Pennington  <hp@redhat.com>
6471
6472         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6473         (call dbus_g_proxy_add_signal)
6474
6475         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6476         escape the hostname
6477         (_dbus_server_new_for_domain_socket): escape the path
6478
6479         * dbus/dbus-address.c (dbus_address_escape_value): new
6480         (dbus_address_unescape_value): new
6481         (dbus_parse_address): unescape values
6482
6483         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6484
6485         * doc/dbus-specification.xml: explain how to escape values in
6486         addresses
6487
6488 2005-02-10  Havoc Pennington  <hp@redhat.com>
6489
6490         * dbus/dbus-message-factory.c (generate_special): modify test to
6491         avoid using a non-basic dict key
6492
6493         * dbus/dbus-marshal-validate-util.c: add test for the below
6494
6495         * doc/dbus-specification.xml: require that dict keys are a basic
6496         type
6497
6498         * dbus/dbus-marshal-validate.c
6499         (_dbus_validate_signature_with_reason): require that dict key is a
6500         basic type
6501
6502 2005-02-10  Havoc Pennington  <hp@redhat.com>
6503
6504         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6505         change to be _and_unlock instead of _unlocked
6506
6507         * dbus/dbus-connection.c
6508         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6509         have no_update so we can find this bug quickly in future
6510
6511 2005-02-10  Havoc Pennington  <hp@redhat.com>
6512
6513         * dbus/dbus-message-util.c (verify_test_message): tests for string
6514         array
6515
6516         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6517         support for arrays of string/signature/path
6518
6519 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6520
6521         * dbus/dbus-connection.c
6522         (_dbus_connection_queue_received_message_link,
6523         _dbus_connection_message_sent): Add the path to
6524         the verbose output.
6525         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6526         _dbus_connection_send_preallocated_unlocked(), updated the
6527         dispatch status, and unlocks.  Fixes a bug where certain
6528         situations (like a broken pipe) could cause a Disconnect message
6529         to not be sent, tricking the bus into thinking a service was still
6530         there when the process had quit.
6531         (_dbus_connection_send_preallocated): Call
6532         _dbus_connection_send_preallocated_and_unlock().
6533         (_dbus_connection_send_and_unlock): Added.  Calls
6534         _dbus_connection_send_preallocated_and_unlock().
6535         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6536         (dbus_connection_send_with_reply): Update the dispatch status and
6537         unlock.
6538
6539         * mono/Service.cs (~Service): Added.  Removes the filter so that
6540         we don't get unmanaged code calling back into a GCed delegate.
6541         (RemoveFilter); Added.
6542
6543 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6544
6545         * dbus/dbus-message.c (dbus_message_iter_open_container):
6546         - Removed check for iterator type being an array because
6547         get_arg_type does not work with writer iterators
6548         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6549
6550 2005-02-07  Havoc Pennington  <hp@redhat.com>
6551
6552         * doc/dbus-specification.xml: some more language cleanups; add
6553         stuff about how to deal with invalid protocol and extension
6554         points; add _ to allowed chars in auth commands; add EXTENSION_
6555         auth command prefix
6556
6557 2005-02-06  Havoc Pennington  <hp@redhat.com>
6558
6559         * s/expected/required/ in a couple places for clarity
6560
6561 2005-02-07  Colin Walters  <walters@verbum.org>
6562
6563         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6564         sender or proposed_recipient.
6565
6566 2005-02-06  Havoc Pennington  <hp@redhat.com>
6567
6568         * dbus/dbus-message-factory.c (generate_special): more tests
6569
6570         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6571         array length that exceeds the maximum
6572
6573 2005-02-05  Havoc Pennington  <hp@redhat.com>
6574
6575         * dbus/dbus-message-factory.c (generate_special): more test cases,
6576         increasing coverage
6577
6578         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6579         reason why a signature was invalid
6580
6581         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6582         skip the length of the string before we look at it in validation
6583
6584         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6585         equal_substring
6586
6587         * dbus/dbus-message.c (_dbus_message_loader_new): default
6588         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6589
6590 2005-02-05  Havoc Pennington  <hp@redhat.com>
6591
6592         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6593         if the signature of a variant was empty
6594         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6595         struct with no element type)
6596
6597         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6598         mangled messages to break things
6599
6600 2005-02-04  Havoc Pennington  <hp@redhat.com>
6601
6602         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6603         g_quark_try_string() so it actually can return 0
6604         (dbus_g_proxy_connect_signal): ditto
6605
6606 2005-02-04  Havoc Pennington  <hp@redhat.com>
6607
6608         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6609         bogus warning
6610         (tristring_from_message): assert cleanly on null path/interface
6611         (should not be possible though I decided later)
6612         (dbus_g_proxy_dispose): move proxy manager unregistration here
6613         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6614         g_return_if_fail() checks
6615
6616 2005-02-04  Havoc Pennington  <hp@redhat.com>
6617
6618         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6619
6620         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6621         (with some minor changes)
6622
6623         * doc/dbus-specification.xml: add deprecated attribute to
6624         introspection format
6625
6626 2005-01-31  Havoc Pennington  <hp@redhat.com>
6627
6628         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6629         think it's sort of right
6630
6631 2005-01-30  Havoc Pennington  <hp@redhat.com>
6632
6633         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6634
6635 2005-01-30  Havoc Pennington  <hp@redhat.com>
6636
6637         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6638
6639         * autogen.sh: change to autotools 1.9
6640
6641         * glib/dbus-gproxy.c: completely change how signals work
6642         (dbus_g_proxy_add_signal): new function to specify signature of a
6643         signal
6644         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6645         and g_warning if the incoming message has the wrong signature.
6646
6647 2005-01-30  Havoc Pennington  <hp@redhat.com>
6648
6649         * tools/dbus-names-model.c (have_names_notify): fix this
6650
6651         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6652         up the string array handling a bit 
6653
6654 2005-01-30  Havoc Pennington  <hp@redhat.com>
6655
6656         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6657         (dbus_g_pending_call_cancel): new function
6658
6659         * dbus/dbus-glib.h: move GType decls for connection/message here;
6660         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6661         here, just kind of rationalizing how we handle all that
6662
6663         * tools/dbus-names-model.c: new file for a tree model listing the
6664         services on a bus
6665
6666         * tools/dbus-tree-view.c (model_new): use proper typing on the
6667         model rows
6668
6669 2005-01-30  Havoc Pennington  <hp@redhat.com>
6670
6671         * glib/dbus-gmain.c: add a custom GSource back that just checks
6672         whether the message queue has anything in it; otherwise, there are 
6673         cases where we won't see messages in the queue since there was no 
6674         IO visible to the glib main loop
6675
6676         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6677         increase default message timeout to 25 seconds
6678
6679 2005-01-30  Havoc Pennington  <hp@redhat.com>
6680
6681         * test/glib/test-profile.c (no_bus_stop_server): remove the
6682         warning about the g_warning that I just fixed
6683
6684         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6685         custom source, seems to be a lot easier to understand and work
6686         better.
6687
6688 2005-01-30  Havoc Pennington  <hp@redhat.com>
6689
6690         I think this main loop thing is conceptually broken, but here are 
6691         some band aids. I'll maybe rewrite it in a minute.
6692         
6693         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6694         custom GSource, so don't pass it in; confusing
6695         (gsource_server_finalize, gsource_connection_finalize): add
6696         finalize handlers that remove all the watches.  
6697
6698 2005-01-30  Havoc Pennington  <hp@redhat.com>
6699
6700         * glib/dbus-gobject.c (introspect_properties): fix the XML
6701         generated
6702
6703         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6704         which effectively detects the use of freed messages
6705
6706         * glib/dbus-gobject.c (handle_introspect): modify and return the
6707         reply message instead of the incoming message
6708
6709         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6710         gee, maybe it should SEND THE XML instead of just making a string
6711         and freeing it again ;-)
6712
6713         * tools/dbus-print-message.c (print_message): improve printing of
6714         messages
6715
6716         * configure.in: add debug-glib.service to the output
6717
6718 2005-01-30  Havoc Pennington  <hp@redhat.com>
6719
6720         dbus-viewer introspected and displayed the bus driver
6721         
6722         * dbus/dbus-object-tree.c 
6723         (object_tree_test_iteration): add tests for a handler registered on "/"
6724
6725         * dbus/dbus-object-tree.c
6726         (_dbus_decompose_path): fix to handle path "/" properly
6727         (run_decompose_tests): add tests for path decomposition
6728         
6729         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6730         properly
6731
6732         * glib/dbus-gobject.c (handle_introspect): fix quotes
6733
6734         * test/glib/run-test.sh: support launching the bus, then running
6735         dbus-viewer
6736
6737         * test/glib/test-service-glib.c (main): put in a trivial gobject
6738         subclass and register it on the connection
6739
6740         * bus/driver.c (bus_driver_handle_introspect): implement
6741         introspection of the bus driver service
6742
6743         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6744         identifiers, doctype decl
6745
6746         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6747         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6748         returning the service unchanged.
6749         (bus_driver_handle_message): remove old check for reply_serial in
6750         method calls, now the message type deals with that
6751         (bus_driver_handle_message): handle NULL interface
6752
6753         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6754
6755         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6756         -1 for len
6757
6758         * tools/dbus-viewer.c: add support for introspecting a service on
6759         a bus
6760
6761         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6762         (dbus_g_pending_call_unref): add
6763
6764 2005-01-29  Havoc Pennington  <hp@redhat.com>
6765
6766         * tools/dbus-tree-view.c: add support for displaying properties.
6767         (run dbus-viewer with an introspect xml file as arg, then resize
6768         the window so the tree elements show up, not sure what that is)
6769
6770         * glib/dbus-gobject.c (handle_introspect): return
6771         org.freedesktop.Properties and org.freedesktop.Introspectable
6772         interfaces when we are introspected.
6773
6774         * doc/dbus-specification.xml: allow empty interface name when 
6775         Get/Set a property
6776
6777 2005-01-29  Havoc Pennington  <hp@redhat.com>
6778
6779         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6780         though it uses glib, it could be extended for any binding in
6781         principle
6782
6783         * glib/dbus-gobject.c (gobject_message_function): change to the
6784         new way properties work
6785
6786         * dbus/dbus-protocol.h: add the new interfaces
6787
6788         * doc/dbus-specification.xml: document the introspection format,
6789         Introspectable interface, and add an org.freedesktop.Properties
6790         interface.
6791
6792         * glib/dbus-gparser.c: add support for a <property> element
6793
6794         * glib/dbus-gidl.c: add PropertyInfo
6795
6796         * glib/dbus-gobject.c (handle_introspect): put the outermost
6797         <node> outside the signal and property descriptions.
6798         (introspect_properties): export properties as <property> rather
6799         than as method calls
6800
6801 2005-01-28  Havoc Pennington  <hp@redhat.com>
6802
6803         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6804         related to authentication protocol
6805
6806 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6807
6808         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6809                 - BUS_ACTIVATION -> BUS_STARTER
6810                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6811                 - class MessageIter (__init__): Added recursion checking 
6812                 so we throw a nice error instead of just disconnecting from the
6813                 bus.
6814                 (get): Added arg_type parameter for recursion.
6815                 Removed the nil type
6816                 Added signiture type placeholder (not implemented)
6817                 Added struct type placeholder (not implemented)
6818                 Added varient type placeholder (not implemented)
6819                 Commented out dict type for now     
6820                 (get_element_type): renamed from get_array_type
6821                 (get_*): changed to use the dbus_message_iter_get_basic API
6822                 (get_*_array): removed in favor of recursive get_array method
6823                 (get_array): new recursive method which calls get to marshal
6824                 the elements of the array
6825                 (value_to_dbus_sig): New method returns the corrasponding
6826                 dbus signiture to a python value
6827                 (append): Comment out dict handling for now
6828                 Handle lists with the new recursive API
6829                 Comment out None handling for now
6830                 (append_nil): removed
6831                 (append_*): changed to use dbus_message_iter_append_basic API
6832                 (append_*_array): removed in favor of recursive append_array 
6833                 method
6834                 (__str__): Make it easier to print out recursive iterators
6835                 for debugging
6836                 - class Message (__str__): moved type inspection to the
6837                 MessageIter class' __str__ method
6838                 (get_iter): Added an append parameter wich defaults to False
6839                 If True use the new API's to create an append iterator
6840
6841         * python/dbus.py: Update to use new bindings API
6842                 - TYPE_ACTIVATION -> TYPE_STARTER
6843                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6844                 - class ActivationBus -> class StarterBus
6845                 - class RemoteObject (__call__): get an append iterator
6846                 - (_dispatch_dbus_method_call): get an append iterator
6847                 - class Object (emit_signal): get an append iterator
6848
6849         * python/examples/: Fixed up the examples to work with the new API
6850                 
6851 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6852
6853         * configure.in: Bump version up to 0.30.
6854
6855         * HACKING: Add a release item to bump the version number up after 
6856         a release.
6857
6858 2005-01-28  Havoc Pennington  <hp@redhat.com>
6859
6860         * doc/dbus-specification.xml: update to describe 16-bit types and
6861         dict entries
6862
6863         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6864         assertion
6865
6866         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6867         type
6868
6869         * dbus/dbus-marshal-recursive.c: implement
6870
6871 2005-01-27  Havoc Pennington  <hp@redhat.com>
6872
6873         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6874
6875         * configure.in: find the right type for 16 and 32 bit ints as well
6876         as 64
6877
6878         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6879         the 16-bit types so people don't have to stuff them in 32-bit or
6880         byte arrays.
6881
6882 2005-01-27  Havoc Pennington  <hp@redhat.com>
6883
6884         * dbus/dbus-message.c: byteswap the message if you init an
6885         iterator to read/write from it
6886         
6887         * dbus/dbus-marshal-byteswap.c: new file implementing 
6888         _dbus_marshal_byteswap()
6889
6890         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6891
6892 2005-01-26  Havoc Pennington  <hp@redhat.com>
6893         
6894         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6895         build, apparently - nobody noticed?)
6896         
6897 2005-01-26  Havoc Pennington  <hp@redhat.com>
6898
6899         * dbus/dbus-marshal-recursive.h: remove todo comment
6900
6901 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6902
6903         * Land the mono binding changes to conform to the new APIs.
6904
6905         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6906         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6907
6908         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6909         type code as a string.
6910         (InitAppending): Rename dbus_message_append_iter_init() to
6911         dbus_message_iter_init_append().
6912
6913         * mono/BusDriver.cs: Rename ServiceEventHandler to
6914         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6915         Rename ServiceOwnerChanged to NameOwnerChanged.
6916
6917         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6918         underlying C call.
6919
6920         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6921
6922         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6923         dbus_bus_acquire_service() to dbus_bus_request_name().
6924
6925         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6926         of Type.UnderlyingSystemType to get the correct element type for
6927         the array.
6928         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6929         dbus_message_get_{element|arg}_type() instead of
6930         dbus_message_iter_init_array_iterator().
6931         (Append): Replace dbus_message_iter_append_array() with
6932         dbus_message_iter_open_container() and
6933         dbus_message_iter_close_container().
6934
6935         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6936         types have been removed.
6937         
6938         * mono/DBusType/*.cs: Replace calls of
6939         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6940         but specify the type in the DllImport extern declaration.  Ditto
6941         for dbus_message_iter_append_[type]() ->
6942         dbus_message_iter_append_basic().
6943
6944         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6945         NameOwnerChangedHandler.
6946
6947 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6948
6949         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6950                 - get_base_service -> get_unique_name
6951                 - bus_get_base_service -> bus_get_unique_name
6952                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6953                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6954                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6955                 - bus_activate_service -> bus_start_service_by_name
6956                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6957                 - bus_acquire_service -> bus_request_name
6958                 - dbus_bus_acquire_service -> dbus_bus_request_name
6959                 - bus_service_exists -> bus_name_has_owner
6960                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6961
6962         * python/dbus.py: Rename of methods
6963                 - activate_service -> start_service_by_name
6964                 - bus_acquire_service -> bus_request_name
6965                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6966                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6967
6968         
6969 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6970
6971         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6972         signature for the method that can't be found.
6973
6974         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6975         the message has any arguments, we need to call
6976         _dbus_type_reader_get_current_type(), not
6977         _dbus_type_reader_has_next().
6978
6979 2005-01-24  Havoc Pennington  <hp@redhat.com>
6980
6981         * dbus/dbus-message-factory.c: more testing of message validation
6982
6983         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6984         header
6985
6986 2005-01-23  Havoc Pennington  <hp@redhat.com>
6987
6988         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6989         get this all working, not many tests in the framework yet though
6990
6991 2005-01-22  Havoc Pennington  <hp@redhat.com>
6992
6993         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6994         tutorial, based on work from David Wheeler.
6995
6996 2005-01-21  Havoc Pennington  <hp@redhat.com>
6997
6998         * dbus/dbus-bus.c: add more return_if_fail checks
6999
7000         * dbus/dbus-message.c (load_message): have the "no validation"
7001         mode (have to edit the code to toggle the mode for now though)
7002
7003         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7004         skips all validation; I want to use this at least for benchmark
7005         baseline, I'm not sure if it should be a publicly-available switch.
7006
7007 2005-01-21  Havoc Pennington  <hp@redhat.com>
7008
7009         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7010         toplevel doxygen group as the low-level API stuff
7011
7012         * dbus/dbus.h: note that libdbus is the low-level API
7013
7014 2005-01-20  Havoc Pennington  <hp@redhat.com>
7015
7016         * update-dbus-docs.sh: script to update docs on the web site, only
7017         works for me though. neener.
7018
7019 2005-01-20  Havoc Pennington  <hp@redhat.com>
7020
7021         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7022         code can reveal bugs in it
7023
7024 2005-01-20  Havoc Pennington  <hp@redhat.com>
7025
7026         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7027         select() version, patches from Tor Lillqvist
7028
7029 2005-01-20  Havoc Pennington  <hp@redhat.com>
7030
7031         * doc/dbus-tutorial.xml: replace > with &gt;
7032
7033         * bus/services.c (bus_registry_acquire_service): validate the name
7034         and return a better error if it's no good.
7035
7036         * doc/dbus-specification.xml: note NO_AUTO_START change
7037
7038         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7039         from AUTO_START, we're toggling the default
7040
7041         * bus/dispatch.c: adapt the tests to change of auto-start default
7042
7043 2005-01-18  Havoc Pennington  <hp@redhat.com>
7044
7045         * rename dbus-daemon-1 to dbus-daemon throughout
7046
7047 2005-01-18  Havoc Pennington  <hp@redhat.com>
7048
7049         * Throughout, grand renaming to strip out the use of "service",
7050         just say "name" instead (or "bus name" when ambiguous).  Did not
7051         change the internal code of the message bus itself, only the
7052         programmer-facing API and messages.
7053         
7054         * doc/dbus-specification.xml: further update the message bus section
7055         
7056         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7057         in error case
7058
7059 2005-01-17  Havoc Pennington  <hp@redhat.com>
7060
7061         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7062         ever
7063
7064         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7065         "invalid name character" not only non-ASCII
7066
7067         * doc/dbus-specification.xml: further update spec, message bus 
7068         parts are still out-of-date but the marshaling etc. stuff is now
7069         accurate-ish
7070
7071 2005-01-17  Havoc Pennington  <hp@redhat.com>
7072
7073         * doc/dbus-specification.xml: partially update spec
7074
7075 2005-01-17  Havoc Pennington  <hp@redhat.com>
7076
7077         * Throughout, align variant bodies according to the contained
7078         type, rather than always to 8. Should save a fair bit of space in
7079         message headers.
7080         
7081         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7082         fix handling of case where p == end
7083
7084         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7085
7086 2005-01-17  Havoc Pennington  <hp@redhat.com>
7087
7088         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7089
7090         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7091         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7092         are marshaling/unmarshaling a boolean.
7093
7094 2005-01-16  Havoc Pennington  <hp@redhat.com>
7095
7096         This is about it on what can be disabled/deleted from libdbus
7097         easily, back below 150K anyhow. Deeper cuts are more work than 
7098         just turning the code off as I've done here.
7099         
7100         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7101         signed int convenience funcs
7102
7103         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7104         verbose mode
7105
7106         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7107         things out of libdbus
7108
7109         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7110         
7111         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7112         tests-enabled-only, though it should probably be deleted)
7113
7114         * dbus/dbus-message-util.c: same stuff
7115
7116         * dbus/dbus-auth-util.c: same stuff
7117
7118 2005-01-16  Havoc Pennington  <hp@redhat.com>
7119
7120         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7121
7122         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7123         way for stripping down dbus-userdb.c stuff included in libdbus.
7124         Rename _dbus_parse_uid for consistency.
7125
7126 2005-01-16  Havoc Pennington  <hp@redhat.com>
7127
7128         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7129         name the assertion failed in
7130
7131         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7132         (_dbus_return_val_if_fail): assert that the name of the function
7133         containing the check doesn't start with '_', since we only want to 
7134         use checks on public functions
7135         
7136         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7137         checks to assertions
7138
7139         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7140         change checks to asserts for private function
7141
7142         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7143         to asserts for private function
7144
7145         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7146         broken assertion that was breaking make check
7147         (_dbus_type_reader_array_is_empty): remove this rather than fix
7148         it, was only used in assertions
7149
7150 2005-01-16  Havoc Pennington  <hp@redhat.com>
7151
7152         * test/unused-code-gc.py: hacky script to find code that's used
7153         only by the bus (not libdbus) or used only by tests or not used at
7154         all. It has some false alarms, but looks like we can clean up a
7155         lot of size from libdbus.
7156
7157         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7158         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7159         
7160 2005-01-16  Havoc Pennington  <hp@redhat.com>
7161
7162         * Add and fix docs according to Doxygen warnings throughout
7163         source.
7164         
7165         * dbus/dbus-marshal-recursive.c
7166         (_dbus_type_reader_array_is_empty): change this to just call
7167         array_reader_get_array_len() and make it static
7168
7169         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7170         from get_array_type
7171         (dbus_message_iter_init_append): rename from append_iter_init
7172
7173         * dbus/dbus-marshal-recursive.c
7174         (_dbus_type_reader_get_element_type): rename from
7175         _dbus_type_reader_get_array_type
7176
7177 2005-01-15  Havoc Pennington  <hp@redhat.com>
7178
7179         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7180
7181         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7182         when DBUS_DISABLE_ASSERT
7183         (_dbus_marshal_set_basic): be sure we align for the string length
7184
7185         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7186         this look faster
7187
7188         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7189         inline macro version
7190         (_dbus_string_set_byte): provide inline macro version
7191
7192 2005-01-15  Havoc Pennington  <hp@redhat.com>
7193
7194         * Land the new message args API and type system.
7195
7196         This patch is huge, but the public API change is not 
7197         really large. The set of D-BUS types has changed somewhat, 
7198         and the arg "getters" are more geared toward language bindings;
7199         they don't make a copy, etc.
7200
7201         There are also some known issues. See these emails for details
7202         on this huge patch:
7203         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7204         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7205         
7206         * dbus/dbus-marshal-*: all the new stuff
7207
7208         * dbus/dbus-message.c: basically rewritten
7209
7210         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7211         freed blocks to be all non-nul bytes so using freed memory is less
7212         likely to work right
7213
7214         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7215         DBUS_FAIL_MALLOC=N environment variable, so you can do
7216         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7217         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7218         thorough.
7219
7220         * qt/message.cpp: port to the new message args API
7221         (operator<<): use str.utf8() rather than str.unicode()
7222         (pretty sure this is right from the Qt docs?)
7223
7224         * glib/dbus-gvalue.c: port to the new message args API
7225
7226         * bus/dispatch.c, bus/driver.c: port to the new message args API
7227
7228         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7229         "locked" flag to TRUE and align_offset to 0; I guess we never
7230         looked at these anyhow, but seems cleaner.
7231
7232         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7233         move allocation padding macro to this header; use it to implement
7234         (_DBUS_STRING_STATIC): ability to declare a static string.
7235
7236         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7237         change to return TRUE if the interface is not set.
7238
7239         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7240         to dbus-marshal-validate.[hc]
7241
7242         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7243         dbus-internals.c
7244
7245         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7246         to dbus-marshal-*.[hc]
7247
7248         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7249         function here from dbus-marshal.c
7250
7251 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7252
7253         * NEWS: Update for 0.23.
7254
7255         * configure.in: Release 0.23.
7256
7257 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7258
7259         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7260         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7261         behind.
7262
7263         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7264         uninstall"
7265
7266         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7267         is an enum, get the enum's underlying type.  Another mono
7268         1.1.3 fix.
7269
7270 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7271
7272         Patch from Sjoerd Simons <sjoerd@luon.net>
7273
7274         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7275         DESTDIR.  It breaks stuff.
7276
7277 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7278
7279         Patch from Tambet Ingo <tambet@ximian.com>
7280
7281         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7282         calling type.GetElementType().  The code previously depended on
7283         broken Mono behavior, which was fixed in Mono 1.1.3.
7284
7285         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7286         Activator.CreateInstance() so that the class's constructor is
7287         called with the right parameters.
7288
7289 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7290
7291         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7292
7293         * dbus/dbus-connection.c
7294         (_dbus_connection_queue_received_message_link): Call
7295         _dbus_connection_remove_timeout() instead of the _locked()
7296         variant, since it's always called from
7297         _dbus_connection_handle_watch(), which handles the locking.
7298         Removed the _locked() variant since it's no longer used.
7299
7300 2005-01-03  Havoc Pennington  <hp@redhat.com>
7301
7302         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7303         return
7304         
7305 2004-12-26  Havoc Pennington  <hp@redhat.com>
7306
7307         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7308
7309 2005-01-03  Havoc Pennington  <hp@redhat.com>
7310
7311         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7312         floating point
7313
7314         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7315
7316 2005-01-02  Havoc Pennington  <hp@redhat.com>
7317
7318         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7319
7320 2005-01-01  Havoc Pennington  <hp@redhat.com>
7321
7322         * configure.in: add -Wfloat-equal
7323
7324 2005-01-01  Havoc Pennington  <hp@redhat.com>
7325
7326         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7327         for a variety of reasons '==' doesn't do this.
7328
7329 2004-12-31  Havoc Pennington  <hp@redhat.com>
7330
7331         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7332         I keep wishing I had
7333
7334 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7335
7336         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7337
7338 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7339
7340         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7341         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7342         dbus-protocol.h.  Because they are defines and not enums they are not
7343         autogenerated.
7344
7345 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7346
7347         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7348         dbus_bus_activate_service
7349
7350         * python/dbus.py (Bus.activate_service): activate a service on the
7351         bus.
7352
7353 2004-12-24  Havoc Pennington  <hp@redhat.com>
7354
7355         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7356         file format has also changed and I haven't adapted to that yet
7357         
7358         * Makefile.am: load .gcno files from latest gcc
7359
7360 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7361         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7362
7363         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7364         lowlevel binding
7365
7366         * python/dbus.py (get_unix_user): Added binding to 
7367         call dbus_bindings.bus_get_unix_user
7368
7369         * python/extract.py: Modified the proto_pat regex to
7370         handle unsigned long
7371
7372 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7373
7374         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7375         better POSIX compliance.
7376
7377 2004-12-19  Havoc Pennington  <hp@redhat.com>
7378
7379         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7380         (_dbus_string_insert_8_aligned): new functions
7381
7382         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7383
7384 2004-12-18  Havoc Pennington  <hp@redhat.com>
7385
7386         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7387         macro
7388
7389         * dbus/dbus-message.c: fix a comment, and add a still-unused
7390         not-implemented function
7391
7392         * dbus/dbus-marshal.h: fix comment
7393
7394         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7395
7396 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7397
7398         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7399         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7400         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7401         Type.UnderlyingSystemType to get the actual system type
7402         underneath.  This code previously depended on the broken Mono
7403         behavior, which was fixed in 1.1.3.
7404
7405 2004-11-27  Havoc Pennington  <hp@redhat.com>
7406
7407         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7408         are disabled
7409         (_dbus_string_get_const_data): inline when asserts are disabled
7410
7411         * dbus/dbus-message.c: record the _dbus_current_generation of
7412         creation so we can complain if dbus_shutdown() is used improperly.
7413         Do this only if checks are enabled.
7414
7415         * dbus/dbus-connection.c: ditto
7416         
7417 2004-11-26  Havoc Pennington  <hp@redhat.com>
7418
7419         * test/glib/test-profile.c: add with_bus mode to profile echoes
7420         that go through the bus.
7421
7422         * test/glib/run-test.sh: add ability to run test-profile
7423
7424         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7425         config file reload.
7426
7427 2004-11-26  Havoc Pennington  <hp@redhat.com>
7428
7429         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7430         thing was implemented
7431
7432 2004-11-26  Havoc Pennington  <hp@redhat.com>
7433
7434         * test/glib/test-profile.c: tweak a bit, add support for some
7435         made-up minimal malloc overhead with plain sockets, since in 
7436         real life some sort of buffers are unavoidable thus we could 
7437         count them in the theoretical best case
7438
7439 2004-11-26  Havoc Pennington  <hp@redhat.com>
7440
7441         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7442         where I was trying to cache one too many messages
7443
7444 2004-11-26  Havoc Pennington  <hp@redhat.com>
7445
7446         * dbus/dbus-message.c: reimplement message cache as an array which 
7447         makes the cache about twice as fast and saves maybe 1.5% overall
7448
7449 2004-11-26  Havoc Pennington  <hp@redhat.com>
7450
7451         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7452         message cache lock here
7453
7454 2004-11-26  Havoc Pennington  <hp@redhat.com>
7455
7456         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7457         the "char byte_order" next to each other to save 4 bytes
7458         (dbus_message_new_empty_header): reduce preallocation, since the
7459         message cache should achieve a similar effect
7460         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7461         message cache that keeps a few DBusMessage around in a pool,
7462         another 8% speedup or so.
7463
7464         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7465
7466 2004-11-25  Havoc Pennington  <hp@redhat.com>
7467
7468         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7469         to write, without reading or blocking, try it before the poll()
7470         and skip the poll() if nothing remains to write. This is about a
7471         3% speedup in the echo client/server
7472
7473 2004-11-25  Havoc Pennington  <hp@redhat.com>
7474
7475         The primary change here is to always write() once before adding
7476         the write watch, which gives us about a 10% performance increase.
7477         
7478         * dbus/dbus-transport-unix.c: a number of modifications to cope
7479         with removing messages_pending
7480         (check_write_watch): properly handle
7481         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7482         messages_pending stuff
7483         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7484         AUTHENTICATED cases
7485         (unix_handle_watch): after writing, see if the write watch can be
7486         removed
7487         (unix_do_iteration): assert that write_watch/read_watch are
7488         non-NULL rather than testing that they aren't, since they 
7489         aren't allowed to be NULL. check_write_watch() at the end so 
7490         we add the watch if we did not finish writing (e.g. got EAGAIN)
7491
7492         * dbus/dbus-transport-protected.h: remove messages_pending call,
7493         since it resulted in too much inefficient watch adding/removing; 
7494         instead we now require that the transport user does an iteration 
7495         after queueing outgoing messages, and after trying the first
7496         write() we add a write watch if we got EAGAIN or exceeded our 
7497         max bytes to write per iteration setting
7498
7499         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7500         function
7501
7502         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7503         freed and then accessed, valgrind flagged this bug, fix it
7504
7505         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7506         as the last valid field plus 1, where really it is equal to the
7507         last valid field. Corrects some message corruption issues.
7508
7509         * dbus/dbus-mainloop.c: verbosity changes
7510
7511         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7512         instead of aborting in one of the test codepaths
7513
7514         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7515         caused not printing the pid ever again if a verbose was missing
7516         the newline at the end
7517         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7518
7519         * dbus/dbus-connection.c: verbosity changes; 
7520         (dbus_connection_has_messages_to_send): new function
7521         (_dbus_connection_message_sent): no longer call transport->messages_pending
7522         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7523         try to write() immediately, so we can avoid the write watch. This
7524         is the core purpose of this patchset
7525         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7526         dump the outgoing message queue, so nobody will get confused
7527         trying to send them or thinking stuff is pending to be sent
7528
7529         * bus/test.c: verbosity changes
7530
7531         * bus/driver.c: verbosity/assertion changes
7532
7533         * bus/dispatch.c: a bunch of little tweaks to get it working again
7534         because this patchset changes when/where you need to block.
7535
7536 2004-11-23  Havoc Pennington  <hp@redhat.com>
7537
7538         * test/glib/test-profile.c: modify to accept a plain_sockets
7539         argument in which case it will bench plain sockets instead of
7540         libdbus, for comparison purposes.
7541
7542 2004-11-22  Havoc Pennington  <hp@redhat.com>
7543
7544         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7545         threads for more time, so sysprof can get a grip on it.
7546
7547         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7548         pointless variable
7549
7550 2004-11-13  Havoc Pennington  <hp@redhat.com>
7551
7552         * test/glib/test-profile.c: fix this thing up a bit
7553
7554         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7555         preallocation sizes by a fair bit; not sure if this will be an
7556         overall performance win or not, but it does reduce reallocs.
7557
7558         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7559         the test hack that forced constant realloc if asserts are
7560         disabled, so we can profile sanely. Sprinkle in some
7561         _DBUS_UNLIKELY() which are probably pointless, but before I
7562         noticed the real performance problem I put them in.
7563         (_dbus_string_validate_utf8): micro-optimize this thing a little
7564         bit, though callgrind says it didn't help; then special-case
7565         ascii, which did help a lot; then be sure we detect nul bytes as
7566         invalid, which is a bugfix.
7567         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7568         superstition; use memset to nul the padding instead of a manual
7569         loop.
7570         (_dbus_string_get_length): inline this as a
7571         macro; it showed up in the profile because it's used for loop
7572         tests and so forth
7573
7574 2004-11-10  Colin Walters  <walters@verbum.org>
7575
7576         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7577         for extra paranoia.
7578
7579 2004-11-09  Colin Walters  <walters@verbum.org>
7580
7581         * dbus/dbus-string.c (_dbus_string_get_length): New
7582         function, writes DBusString to C buffer.
7583
7584         * dbus/dbus-string.h: Prototype it.
7585
7586         * dbus/dbus-message.c (dbus_message_type_to_string): New
7587         function, converts message type into C string.
7588
7589         * dbus/dbus-message.h: Prototype it.
7590
7591         * bus/selinux.c (bus_selinux_check): Take source pid,
7592         target pid, and audit data.  Pass audit data to
7593         avc_has_perm.
7594         (log_audit_callback): New function, appends extra
7595         audit information.
7596         (bus_selinux_allows_acquire_service): Also take
7597         service name, add it to audit data.
7598         (bus_selinux_allows_send): Also take message
7599         type, interface, method member, error name,
7600         and destination, and add them to audit data.
7601         (log_cb): Initialize func_audit.
7602         
7603         * bus/selinux.h (bus_selinux_allows_acquire_service)
7604         (bus_selinux_allows_send): Update prototypes 
7605
7606         * bus/services.c (bus_registry_acquire_service): Pass
7607         service name to bus_selinux_allows_acquire_service.
7608
7609         * bus/bus.c (bus_context_check_security_policy): Pass
7610         additional audit data.  Move assignment of dest
7611         to its own line.
7612
7613 2004-11-07  Colin Walters  <walters@verbum.org>
7614
7615         * dbus/dbus-transport-unix.c (do_authentication): Always
7616         initialize auth_completed.
7617         
7618 2004-11-07  Colin Walters  <walters@verbum.org>
7619
7620         * bus/bus.c (load_config): Break into three
7621         separate functions: process_config_first_time_only,
7622         process_config_every_time, and process_config_postinit.
7623         (process_config_every_time): Move call of
7624         bus_registry_set_service_context_table into
7625         process_config_postinit.
7626         (process_config_postinit): New function, does
7627         any processing that needs to happen late
7628         in initialization (and also on reload).
7629         (bus_context_new): Instead of calling load_config,
7630         open config parser here and call process_config_first_time_only
7631         and process_config_every_time directly.  Later, after
7632         we have forked but before changing UID,
7633         invoke bus_selinux_full_init, and then call
7634         process_config_postinit.
7635         (bus_context_reload_config): As in bus_context_new,
7636         load parse file inside here, and call process_config_every_time
7637         and process_config_postinit.
7638
7639         * bus/services.h, bus/services.c
7640         (bus_registry_set_service_context_table): Rename
7641         from bus_registry_set_sid_table.  Take string hash from config
7642         parser, and convert them here into SIDs.
7643
7644         * bus/config-parser.c (struct BusConfigParser): Have
7645         config parser only store a mapping of service->context
7646         string.
7647         (merge_service_context_hash): New function.
7648         (merge_included): Merge context string hashes instead
7649         of using bus_selinux_id_table_union.
7650         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7651         simply create a new string hash.
7652         (bus_config_parser_unref): Unref it.
7653         (start_selinux_child): Simply insert strings into hash,
7654         don't call bus_selinux_id_table_copy_over.
7655
7656         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7657         (bus_selinux_id_table_copy_over): Delete.
7658
7659 2004-11-03  Colin Walters  <walters@verbum.org>
7660
7661         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7662         variables.
7663         
7664 2004-11-03  Colin Walters  <walters@verbum.org>
7665
7666         * bus/test-main.c (test_pre_hook): Fix test logic,
7667         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7668
7669 2004-11-02  Colin Walters  <walters@redhat.com>
7670
7671         * bus/selinux.c (bus_selinux_init): Split into two functions,
7672         bus_selinux_pre_init and bus_selinux_post_init.
7673         (bus_selinux_pre_init): Just determine whether SELinux is
7674         enabled.
7675         (bus_selinux_post_init): Do everything else.
7676
7677         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7678         config file, and bus_selinux_post_init after.  This ensures that
7679         we don't lose the policyreload notification thread that
7680         bus_selinux_init created before forking previously.
7681         
7682         * bus/test-main.c (test_pre_hook): Update for split.
7683
7684 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7685
7686         Patch from Johan Fischer <linux@fischaz.com>
7687         
7688         * mono/doc/Makefile.am (install-data-local): Added directory
7689         install for DESTDIR
7690
7691 2004-10-29  Colin Walters  <walters@redhat.com>
7692
7693         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7694         parameter for fd to write pid to.       
7695
7696         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7697         
7698         * bus/bus.c (bus_context_new): Pass print_pid_fd
7699         to _dbus_become_daemon (bug #1720)
7700
7701 2004-10-29  Colin Walters  <walters@redhat.com>
7702
7703         Patch from Ed Catmur <ed@catmur.co.uk>
7704
7705         * mono/doc/Makefile.am (install-data-local): Handle
7706         DESTDIR.
7707
7708 2004-10-29  Colin Walters  <walters@redhat.com>
7709
7710         * bus/.cvsignore, qt/.cvsignore: Update.
7711
7712 2004-10-29  Colin Walters  <walters@redhat.com>
7713
7714         Patch from Kristof Vansant <de_lupus@pandora.be>
7715
7716         * configure.in: Detect Slackware.
7717         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7718         * bus/rc.messagebus.in: New file.
7719
7720 2004-10-29  Colin Walters  <walters@redhat.com>
7721
7722         * tools/dbus-monitor.c (filter_func): Return
7723         DBUS_HANDLER_RESULT_HANDLED in filter function
7724         for now.  See:
7725         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7726
7727 2004-10-29  Colin Walters  <walters@redhat.com>
7728
7729         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7730
7731         * bus/services.c (bus_registry_acquire_service): 
7732         Correctly retrieve service name from DBusString
7733         for printing.
7734
7735 2004-10-29  Colin Walters  <walters@redhat.com>
7736
7737         * dbus/dbus-glib.h: Update documentation to not
7738         refer to internal APIs.
7739
7740 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7741
7742         * mono/Arguments.cs (GetDBusTypeConstructor):
7743         type.UnderlyingSystemType will return "System.Byte" if you do it
7744         on "byte[]", which is not what we want.  So check the type.IsArray
7745         property and use System.Array instead.
7746
7747 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7748
7749         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7750         the DBusUserInfo structure since this is passed into the function.
7751         This would cause a double free when the function that allocated
7752         the structure would try to free it when an error occured.
7753
7754         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7755         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7756         for service activation to avoid 32bit/64bit parallel install issues
7757
7758 2004-10-21  Colin Walters  <walters@verbum.org>
7759
7760         * AUTHORS: Fix my email address, the @gnu.org one
7761         has been bouncing for some time.  Also add J5.
7762         
7763 2004-10-21  Colin Walters  <walters@verbum.org>
7764
7765         * dbus/dbus-transport-unix.c (do_authentication): Return
7766         authentication status to callers.
7767         (unix_handle_watch): If we completed authentication this round,
7768         don't do another read.  Instead wait until the next iteration,
7769         after we've read any pending data in the auth buffer.
7770         (unix_do_iteration): Ditto.
7771         (unix_handle_watch): Updated for new do_authentication prototype.
7772
7773 2004-10-18  Colin Walters  <walters@verbum.org>
7774
7775         * bus/selinux.c (bus_selinux_enabled): Handle
7776         --disable-selinux case.
7777         
7778 2004-10-18  Colin Walters  <walters@verbum.org>
7779
7780         * bus/selinux.h: Add bus_selinux_enabled.
7781         
7782         * bus/selinux.c (bus_selinux_enabled): Implement it.
7783         
7784         * bus/config-parser.c (struct include): Add
7785         if_selinux_enabled member.
7786         (start_busconfig_child): Parse if_selinux_enabled
7787         attribute for include.
7788         (bus_config_parser_content): Handle it.
7789
7790         * bus/session.conf.in, bus/system.conf.in: Add
7791         inclusion of context mapping to default config files;
7792         conditional on SELinux being enabled.
7793         
7794         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7795         
7796         * test/data/invalid-config-files/badselinux-1.conf, 
7797         test/data/invalid-config-files/badselinux-2.conf:
7798         Test files for bad syntax.
7799         
7800 2004-10-17  Colin Walters  <walters@verbum.org>
7801
7802         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7803         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7804         format specifier mismatches.
7805
7806 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7807
7808         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7809         format string.
7810
7811         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7812         pointer (bug #1540, Leonardo Boiko).
7813
7814 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7815
7816         * mono/BusDriver.cs: Changed BusDriver struct to remove
7817         the ServiceCreated and ServiceDeleted events and replace them
7818         with the new ServiceOwnerChanged event.
7819
7820         * mono/example/BusListener.cs: Added a new example program,
7821         which listens for and reports any ServiceOwnerChanged events
7822         on the bus driver.
7823
7824         * mono/example/Makefile.am (DESTDIR): Build changes for the
7825         new BusListener.cs example.
7826
7827 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7828
7829         * bus/signals.c (bus_match_rule_parse): validate the components of
7830         match rules (bug #1439).
7831
7832         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7833
7834 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7835
7836         * doc/dbus-specification.xml: document ServiceOwnerChanged
7837         signal.
7838         
7839         * bus/driver.c, bus/driver.h, bus/services.c: Use
7840         ServiceOwnerChanged signal instead of ServiceCreated and
7841         ServiceDeleted.
7842         
7843         * bus/dispatch.c: update testcase for the new signal.
7844
7845 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7846
7847         Patch from Nat Friedman <nat@novell.com>
7848
7849         * mono/Makefile.am: A number of small build fixes to allow "make
7850         distcheck" to succeed.
7851
7852         * mono/example/Makefile.am: "make distcheck" fixes.
7853
7854         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7855         key in @srcdir@.
7856
7857         * test/Makefile.am: "make distcheck" fixes.
7858
7859 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7860
7861         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7862
7863         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7864
7865         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7866         messages after the first one (bug #1389).
7867         
7868         * bus/dispatch.c (check_double_hello_message): add a test case for
7869         the double hello message bug.
7870         (check_existent_service_activation): fix check of spawning error.
7871         
7872 2004-09-16  David Zeuthen  <david@fubar.dk>
7873
7874         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7875
7876 2004-09-12  David Zeuthen  <david@fubar.dk>
7877
7878         Patch from Kay Sievers <kay.sievers@vrfy.org>
7879
7880         * bus/bus.c (bus_context_new):
7881         * bus/bus.h:
7882         * bus/main.c (usage)
7883         (main):
7884         Add commandline option --nofork to override configuration file
7885         setting.
7886
7887 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7888
7889         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7890         compilers don't like it (bug #974).
7891
7892 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7893
7894         * qt/connection.*: Applied patch by Jérôme Lodewyck
7895         <lodewyck@clipper.ens.fr> to integrate an existing
7896         connection into the Qt eventloop
7897
7898 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7899
7900         * mono/BusDriver.cs: Added.  This is a class for interacting with
7901         the org.freedesktop.DBus service.
7902
7903         * mono/Message.cs: Added a mechanism to expose the message that is
7904         currently being dispatched via the static Message.Current
7905         property.  Added Message.Sender and Message.Destination
7906         properties.
7907
7908         * mono/Handler.cs: Expose the dispatched message via
7909         Message.Current when handling method calls.
7910
7911         * mono/Service.cs: Expose the dispatched message via
7912         Message.Current when handling signal emissions.
7913         
7914         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7915         Connection.BaseService property.
7916
7917 2004-08-28  Havoc Pennington  <hp@redhat.com>
7918
7919         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7920
7921         More fixes from Steve Grubb
7922         
7923         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7924         (_dbus_listen_tcp_socket): fix fd leak
7925
7926         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7927         EINTR to a bit lower in the code
7928
7929 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7930
7931         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7932         TRUE if we are inquiring about the existence of the built-in
7933         org.freedesktop.DBus service.
7934
7935 2004-08-25  John Palmieri  <johnp@redhat.com>
7936         * bus/config-parser.c:
7937         (struct PolicyType): Add POLICY_CONSOLE
7938         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7939         (start_busconfig_child): Sets up console element when
7940         <policy at_console=""> is encountered in a policy file
7941         (append_rule_from_element): Convert console elements to console
7942         rules.
7943
7944         * bus/policy.c: 
7945         (bus_policy_create_client_policy): Add console rules to the client
7946         policy based on if the client is at the console
7947         (bus_policy_append_console_rule): New function for adding a
7948         console rule to a policy
7949         (bus_policy_merge): Handle console rule merging
7950
7951         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7952         where we check for console user files
7953         
7954         * dbus/dbus-sysdeps.c:
7955         (_dbus_file_exists): New function which checks if the given
7956         file exists
7957         (_dbus_user_at_console): New function which does the system
7958         specific process of checking if the user is at the console
7959
7960         * dbus/dbus-userdb.c:
7961         (_dbus_is_console_user): New function converts a UID to user name
7962         and then calls the system specific _dbus_user_at_console to 
7963         see if the user is at the console and therefor a console user
7964
7965 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7966
7967         * bus/config-parser.c (set_limit):
7968         * bus/dbus-daemon-1.1.in:
7969         * test/data/valid-config-files/many-rules.conf: set the
7970         max_match_rules_per_connection limt from the config file. 
7971
7972         * doc/busconfig.dtd: update the DTD.
7973
7974         * bus/driver.c: remove some unused variables.
7975
7976 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7977
7978         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7979         it's been replaced by dbus_g_bus_get
7980
7981 2004-08-23  Colin Walters  <walters@redhat.com>
7982
7983         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7984
7985         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7986
7987         * bus/selinux.c: Create a thread for policy reload notification.
7988         (bus_selinux_get_policy_root): Implement.
7989
7990         * bus/config-parser.c (start_busconfig_child)
7991         (bus_config_parser_content): Support SELinux-root relative
7992         inclusion.
7993
7994         * configure.in <HAVE_SELINUX>: Add -lpthread.
7995         
7996         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7997         (test_post_hook): Move memory checking into here.
7998         (test_pre_hook, test_post_hook): Move SELinux checks in
7999         here, but conditional on a DBUS_TEST_SELINUX environment
8000         variable.  Unfortunately we can't run the SELinux checks
8001         as a normal user, since they won't have any permissions
8002         for /selinux.  So this will have to be tested manually
8003         for now, until we have virtualization for most of
8004         libselinux.
8005         
8006 2004-08-23  Havoc Pennington  <hp@redhat.com>
8007
8008         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8009         drop supplementary groups, suggested by Steve Grubb
8010
8011 2004-08-20  Colin Walters  <walters@redhat.com>
8012
8013         * bus/config-parser.c (start_busconfig_child): Remove some unused
8014         variables.
8015         
8016         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8017         warning.
8018
8019 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8020
8021         * configure.in: If --enable-mono is passed in, if we can't find
8022         mono error out.
8023
8024         * mono/Makefile.am: Use /gacutil to install assemblies into the
8025         GAC and not /root.
8026
8027 2004-08-12  Havoc Pennington  <hp@redhat.com>
8028
8029         * NEWS: update for 0.22
8030
8031         * configure.in: release 0.22
8032
8033 2004-08-11  Colin Walters  <walters@redhat.com>
8034
8035         * tools/dbus-send.c (main, usage): Add --reply-timeout
8036         argument.
8037
8038 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8039
8040         * bus/bus.c (process_config_first_time_only): get rid of an unused
8041         DBusError that was causing a memoy leak (bug #989).
8042
8043         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8044         fix compilation on Solaris/Forte C (bug #974)
8045
8046         * bus/main.c (main): plug two minuscule memleaks.
8047
8048 2004-08-10  Havoc Pennington  <hp@redhat.com>
8049
8050         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8051
8052 2004-08-09  Havoc Pennington  <hp@redhat.com>
8053
8054         * COPYING: switch to Academic Free License version 2.1 instead of
8055         2.0, to resolve complaints about patent termination clause.
8056
8057 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8058
8059         * README: added documentation for the --enable-python 
8060         configure switch.
8061
8062 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8063
8064         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8065         _unref in the SELinux support.
8066
8067         * doc/busconfig.dtd: update DTD for SELinux support.
8068
8069         * bus/config-loader-libxml.c: fix error handler and parser
8070         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8071
8072         * configure.in: remove the warning about libxml2.
8073
8074         * dbus/dbus-bus.c: silence doxygen warning.
8075
8076 2004-07-31  Colin Walters  <walters@redhat.com>
8077
8078         * configure.in: Move #error in SELinux check to its own line.
8079
8080 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8081
8082         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8083         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8084         dbus_error_set.
8085
8086         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8087         broken by the change in the _SET_OOM macros.
8088
8089 2004-07-31  Colin Walters  <walters@redhat.com>
8090
8091         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8092         BUS_SET_OOM.
8093
8094 2004-07-31  Colin Walters  <walters@redhat.com>
8095
8096         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8097         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8098         AC_MSG_CHECKING.
8099
8100 2004-07-24  Havoc Pennington  <hp@redhat.com>
8101
8102         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8103
8104         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8105         functionality
8106
8107         * configure.in: add --enable-selinux
8108         
8109         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8110
8111         * bus/main.c (main): initialize and shut down selinux
8112
8113         * bus/connection.c: store SELinux ID on each connection, to avoid 
8114         repeated getting of the string context and converting it into 
8115         an ID
8116
8117         * bus/bus.c (bus_context_get_policy): new accessor, though it
8118         isn't used
8119         (bus_context_check_security_policy): check whether the security
8120         context of sender connection can send to the security context of
8121         recipient connection
8122
8123         * bus/config-parser.c: add parsing for <selinux> and <associate>
8124         
8125         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8126         implement dbus_connection_get_unix_fd()
8127
8128         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8129         function, used by the selinux stuff
8130         
8131 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8132
8133         * bus/config-loader-libxml.c: complete the implementation of
8134         libxml backend for config file loader. Doesn't work with full OOM
8135         test yet. 
8136         
8137         * configure.in: change error when selecting libxml into a warning.
8138         
8139         * test/data/invalid-config-files: add two non-well-formed XML
8140         files. 
8141         
8142         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8143         
8144         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8145         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8146         be necessary to read all the buffer. (bug #894)
8147
8148         * bus/activation.c (bus_activation_activate_service): fix a
8149         potential assertion failure (bug #896). Small optimization in the
8150         case of auto-activation messages.
8151
8152         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8153         add test case for byte-through-vararg bug (#901). patch by Kimmo
8154         Hämäläinen. 
8155
8156 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8157
8158         * python/dbus.py:
8159         * python/dbus_bindings.pyx.in:
8160         Add dbus.init_gthreads (), allow emit_signal to pass
8161         arguments to the signal.
8162         
8163 2004-07-24  Havoc Pennington  <hp@redhat.com>
8164
8165         * AUTHORS: add some people, not really comprehensively, let me
8166         know if I missed you
8167
8168 2004-07-24  Havoc Pennington  <hp@redhat.com>
8169
8170         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8171         Owen
8172
8173         * test/Makefile.am (DIST_SUBDIRS): here also
8174
8175 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8176
8177         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8178         breaking build on Solaris, reported by Farhad Saberi on the ML.
8179
8180         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8181         va_arg invocation to account for integer promotion in the case of
8182         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8183
8184         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8185         _dbus_list_get_first_link, not _dbus_list_get_first.
8186
8187         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8188
8189         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8190         handler functions so that the asserts in _dbus_object_subtree_unref
8191         do not fail.
8192
8193         * dbus/dbus-transport-unix.c (do_reading):
8194         _dbus_transport_queue_messages return value is of type
8195         dbus_bool_t, not DBusDispatchStatus.
8196         
8197 2004-07-19  David Zeuthen  <david@fubar.dk>
8198
8199         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8200
8201         * bus/dispatch.c:
8202         (check_get_connection_unix_user): Debug says GetProperty; but the
8203         method is called GetConnectionUnixUser
8204         (check_get_connection_unix_process_id): New function
8205         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8206         also call check_get_connection_unix_process_id()
8207         
8208         * bus/driver.c:
8209         (bus_driver_handle_get_connection_unix_process_id): New function,
8210         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8211         interface
8212         
8213         * dbus/dbus-auth.c:
8214         (handle_server_data_external_mech): Set pid from the credentials
8215         obtained from the socket
8216         
8217         * dbus/dbus-connection.c:
8218         (dbus_connection_get_unix_process_id): New function
8219         
8220         * dbus/dbus-connection.h: 
8221         Add prototype for dbus_connection_get_unix_process_id
8222         
8223         * dbus/dbus-transport.c:
8224         (_dbus_transport_get_unix_process_id): New function
8225         
8226         * dbus/dbus-transport.h:
8227         Add prototype for _dbus_transport_get_unix_process_id
8228         
8229 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8230
8231         * dbus/dbus-message.c: Message counter fix, patch by Christian
8232         Hammond <chipx86@gnupdate.org>
8233
8234 2004-07-18  Seth Nickell  <seth@gnome.org>
8235
8236         * python/dbus.py:
8237         * python/dbus_bindings.pyx.in:
8238         * python/tests/test-client.py:
8239
8240         Add dbus.ByteArray and dbus_bindings.ByteArray
8241         types so that byte streams can be passed back.
8242
8243         Give jdahlin the heaps of credit that are so
8244         rightfully his.
8245         
8246 2004-07-12  Seth Nickell  <seth@gnome.org>
8247
8248         * python/dbus.py:
8249
8250         Add message argument to the default object_method_handler
8251         function.
8252         
8253         * python/dbus_bindings.pyx.in:
8254
8255         Automatically return NIL when passed an empty list
8256         (we can't pass back a list since lists are typed
8257         and we don't have any idea what type the the client
8258         intended the list to be... :-( )
8259         
8260 2004-07-10  Seth Nickell  <seth@gnome.org>
8261
8262         * python/examples/Makefile.am:
8263
8264         Fix distcheck breakage caused by new examples.
8265
8266 2004-07-10  Seth Nickell  <seth@gnome.org>
8267
8268         * python/dbus.py:
8269
8270         Add "message" argument to service-side dbus.Object
8271         methods. This will break existing services written
8272         using the python bindings, but will allow extraction
8273         of all the message information (e.g. who its from).
8274
8275         Add improved "object oriented" signal handling/emission.
8276         
8277         * python/examples/example-service.py:
8278
8279         Nix this example.
8280         
8281         * python/examples/example-signal-emitter.py:
8282         * python/examples/example-signal-recipient.py:
8283
8284         Two new examples that show how to emit and receive
8285         signals using the new APIs.
8286         
8287         * python/examples/example-signals.py:
8288         * python/examples/gconf-proxy-service.py:
8289         * python/examples/gconf-proxy-service2.py:
8290
8291         Add "message" argument to service methods.
8292
8293 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8294
8295         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8296         * dbus/bus.c (dbus_bus_get_unix_user)
8297         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8298         method of org.freedesktop.DBus interface.
8299
8300         * bus/dispatch.c: test case
8301
8302 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8303
8304         * python/Makefile.am: switched include directory from glib/ to dbus/
8305         since dbus-glib.h moved
8306  
8307 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8308
8309         * configure.in: prevent building the gcj stuff and libxml loader
8310         since they are broken.
8311
8312 2004-06-20  Havoc Pennington  <hp@redhat.com>
8313
8314         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8315         codes from the dbus error names
8316         
8317         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8318         as dbus/dbus-glib.h and that breakage is now visible due to 
8319         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8320         
8321         * glib/dbus-glib.h: s/gproxy/g_proxy/
8322
8323         * dbus/dbus-shared.h: new header to hold stuff shared with
8324         binding APIs
8325         
8326         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8327         than dbus-errors.h
8328
8329         * glib/dbus-glib.h (dbus_set_g_error): move to
8330         dbus-glib-lowlevel.h
8331
8332         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8333         of stuff to enable this
8334
8335         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8336
8337         * a bunch of other changes with the same basic "separate glib 
8338         bindings from dbus.h" theme
8339         
8340 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8341
8342         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8343
8344         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8345
8346 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8347
8348         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8349         the reply value of the ServiceExists message.
8350
8351 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8352
8353         * python/dbus_bindings.pyx.in: No longer need to parse path
8354         elements and pass them as arrays of strings.  The C API now
8355         accepts plain path strings.
8356         (_build_parsed_path): removed 
8357
8358 2004-06-07  Havoc Pennington  <hp@redhat.com>
8359
8360         * doc/TODO: remove auto-activation item since it's done; sort
8361         items by importance/milestone
8362
8363 2004-06-07  Havoc Pennington  <hp@redhat.com>
8364
8365         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8366         random signature when using REQUIRED_FIELDS (this hack won't work
8367         in the long term)
8368
8369         * dbus/dbus-message.c: change the signature to be a header field,
8370         instead of message->signature special-case string. Incremental
8371         step forward. Then we can fix up code to send the signature in the
8372         message, then fix up code to validate said signature, then fix up
8373         code to not put the typecodes inline, etc.
8374         (load_one_message): don't make up the signature after the fact
8375         (decode_header_data): require signature field for the known
8376         message types
8377
8378         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8379
8380         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8381
8382 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8383
8384         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8385
8386         * mono/Handler.cs: Updated to follow new path argument for
8387         (un-)registering objects.
8388
8389         * mono/example/Makefile.am:
8390         * mono/Makefile.am:
8391         * configure.in: Bumped required version for mono and use new -pkg
8392         syntax for deps
8393
8394 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8395
8396         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8397         registration functions take the path argument as char* instead of
8398         char**.
8399
8400         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8401         split off the path decompostion part of
8402         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8403         warnings. 
8404
8405         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8406         
8407 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8408  
8409         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8410         machine approach.  A state is implemented as a function that
8411         handles incoming events as specified for that state.
8412         
8413         * doc/dbus-specification.xml: Update auth protocol state machine
8414         specification to match implementation.  Remove some leftover
8415         base64 examples.
8416
8417 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8418
8419         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8420         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8421         quiet doxygen.
8422
8423         * Doxyfile.in: remove deprecated options.
8424
8425         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8426         glib/test-thread.h, glib/test-thread-client.c,
8427         glib/test-thread-server.c, glib/test-profile.c,
8428         glib/test-dbus-glib.c: remove these unused files.
8429
8430 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8431
8432         * dbus/dbus-object-tree.c
8433         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8434         non-fallback handlers (bug #684).
8435         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8436         (find_subtree_recurse): report wether the returned subtree is an
8437         exact match or a "fallback" match higher up in the tree.
8438         (object_tree_test_iteration): update test case.
8439
8440 2004-06-01  Seth Nickell  <seth@gnome.org>
8441
8442         * python/dbus_bindings.pyx.in:
8443         * python/tests/test-client.py:
8444
8445         Round off basic type support. Add dicts (yay!), and 
8446         remaining array types.
8447
8448         Make MessageIter more general so it works for dicts too.
8449
8450         Mark all loop variables as C integers.
8451         
8452 2004-05-31  Havoc Pennington  <hp@redhat.com>
8453
8454         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8455         "in" before "out"
8456
8457         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8458
8459         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8460         option that runs the tests, and start filling in some code
8461         including for starters just dumping the interfaces to stdout
8462
8463         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8464
8465         * test/data/valid-introspection-files/lots-of-types.xml: test of
8466         an example introspection file
8467
8468         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8469         "node" (I think...)
8470
8471 2004-05-31  Seth Nickell  <seth@gnome.org>
8472
8473         * python/dbus_bindings.pyx.in:
8474         * python/tests/test-client.py:
8475
8476         Test Suite: 1
8477         Python Bindings: 0
8478
8479         Fix string array memory trashing bug... oops...
8480
8481 2004-05-30  Seth Nickell  <seth@gnome.org>
8482
8483         * python/dbus.py:
8484
8485         Add a nicer-but-less-flexible alternate API for handling 
8486         calls to virtual objects in dbus.ObjectTree.
8487
8488         Screw up the argument order to the dbus.Object constructor
8489         for consistency with dbus.ObjectTree (and to make dbus_methods
8490         optional for future extension)
8491         
8492         * python/examples/Makefile.am:
8493         * python/examples/gconf-proxy-service.py:
8494         * python/examples/gconf-proxy-service2.py:
8495
8496         Alternate implementation of gconf-proxy-service using the
8497         nicer dbus.ObjectTree API.
8498         
8499         * python/examples/example-service.py:
8500         * python/tests/test-server.py
8501
8502         Reverse the argument order to deal with dbus.Object constructor
8503         changes.
8504         
8505 2004-05-30  Seth Nickell  <seth@gnome.org>
8506
8507         * python/examples/example-client.py:
8508         * python/examples/example-service.py:
8509
8510         Take it back. Lists seem to work but they're broken
8511         in the test suite. Make the base examples use
8512         lists (works fine).
8513
8514 2004-05-30  Seth Nickell  <seth@gnome.org>
8515
8516         * python/dbus_bindings.pyx.in:
8517         * python/tests/test-client.py:
8518
8519         Add some more tests and fix errors that crop up.
8520         Unfortunately, currently it seems like marshalling
8521         and unmarshalling of lists is completely broken :-(
8522
8523 2004-05-30  Seth Nickell  <seth@gnome.org>
8524
8525         * python/dbus_bindings.pyx.in:
8526
8527         Add support for ObjectPath type.
8528
8529         * python/dbus.py:
8530
8531         Refactor message handling code to a common function.
8532         
8533         * python/tests/test-client.py:
8534         * python/tests/test-server.py:
8535
8536         Add tests that check to make sure values of all types
8537         can be echoed from a service w/o mangling.
8538         
8539 2004-05-29  Seth Nickell  <seth@gnome.org>
8540
8541         * python/dbus.py:
8542
8543         Add ObjectTree class which allows implementation
8544         of trees of "virtual" objects. Basically the python
8545         wrapper for "register_fallback".
8546         
8547         * python/examples/Makefile.am
8548         * python/examples/gconf-proxy-client.py:
8549         * python/examples/gconf-proxy-service.py:
8550
8551         Implement a simple GConf proxy service that supports
8552         get/set on string and int GConf keys using the ObjectTree.
8553         
8554 2004-05-29  Seth Nickell  <seth@gnome.org>
8555
8556         * python/dbus.py:
8557         * python/examples/example-client.py:
8558         * python/examples/example-service.py:
8559         * python/examples/list-system-services.py:
8560
8561         Add SessionBus, SystemBus and ActivationBus classes
8562         so you don't need to know the special little BUS_TYPE
8563         flag.
8564         
8565 2004-05-29  Havoc Pennington  <hp@redhat.com>
8566
8567         * bus/config-parser.c (process_test_valid_subdir): temporarily
8568         stop testing config parser OOM handling, since expat has issues
8569         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8570
8571         * bus/dbus-daemon-1.1.in: change requested_reply to
8572         send_requested_reply/receive_requested_reply so we can send the
8573         replies, not just receive them.
8574
8575         * bus/config-parser.c: parse the new
8576         send_requested_reply/receive_requested_reply
8577
8578         * bus/policy.c (bus_client_policy_check_can_send): add
8579         requested_reply argument and use it
8580
8581         * bus/bus.c (bus_context_check_security_policy): pass through
8582         requested_reply status to message send check
8583
8584         * bus/system.conf.in: adapt to requested_reply change
8585         
8586 2004-05-28  Havoc Pennington  <hp@redhat.com>
8587
8588         * test/glib/test-service-glib.c (main): remove unused variable
8589
8590         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8591
8592         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8593         from the enum, no longer in use.
8594
8595         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8596         works right.
8597
8598         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8599         whether error_name passed in is a valid error name.
8600
8601 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8602
8603         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8604         OBJECT_PATH and OBJECT_PATH_ARRAY
8605
8606 2004-05-28  Seth Nickell  <seth@gnome.org>
8607
8608         * python/examples/Makefile.am:
8609
8610         Forget to add Makefile.am. Do not pass go.
8611
8612 2004-05-28  Michael Meeks  <michael@ximian.com>
8613
8614         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8615         fix no int64 case.
8616
8617         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8618
8619         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8620         (_dbus_message_iter_get_basic_type_array): impl.
8621         drastically simplify ~all relevant _get methods to use these.
8622         (_dbus_message_iter_append_basic_array),
8623         (dbus_message_iter_append_basic): impl
8624         drastically simplify ~all relevant _append methods to use these.
8625
8626         * dbus/dbus-message-builder.c (parse_basic_type) 
8627         (parse_basic_array, lookup_basic_type): impl.
8628         (_dbus_message_data_load): prune scads of duplicate /
8629         cut & paste coding.
8630
8631         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8632         (_dbus_demarshal_basic_type): implement,
8633         (demarshal_and_validate_len/arg): beef up debug.
8634         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8635
8636 2004-05-27  Seth Nickell  <seth@gnome.org>
8637
8638         * configure.in:
8639         * python/Makefile.am:
8640
8641         Include the example python apps in the tarball.
8642         
8643         * python/examples/list-system-services.py
8644
8645         Add a python new example that fetches the list of services
8646         from the system bus.
8647         
8648 2004-05-27  Seth Nickell  <seth@gnome.org>
8649
8650         * python/dbus.py:
8651         * python/dbus_bindings.pyx.in:
8652
8653         Fix failure to notify that a signal was not handled,
8654         resulted in hung functions.
8655         
8656 2004-05-25  Colin Walters  <walters@redhat.com>
8657
8658         * tools/dbus-monitor.c (main): Monitor all types of messages.
8659
8660 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8661
8662         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8663         which unregisters the object path and disposes the handler.
8664
8665 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8666  
8667         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8668          
8669         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8670         operands to && so we call dbus_message_iter_next () for the last
8671         argument also.
8672
8673 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8674
8675         * dbus/dbus-object-tree.c
8676         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8677         children even if the requested path isn't registered.
8678         (object_tree_test_iteration): test object_tree_list_registered.
8679
8680         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8681         it to 0.
8682         
8683 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8684
8685         * doc/TODO: Remove resolved items.
8686
8687         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8688         field.
8689         
8690         * bus/connection.c (bus_connections_expect_reply): Enforce the
8691         per-connection limit on pending replies.
8692         
8693         Patch from Jon Trowbridge <trow@ximian.com>:
8694  
8695         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8696         up a watch that triggers a config reload when one end of the pipe
8697         becomes readable.
8698         (signal_handler): Instead of doing the config reload in our SIGHUP
8699         handler, just write to the reload pipe and let the associated
8700         watch handle the reload when control returns to the main loop.
8701  
8702         * bus/driver.c (bus_driver_handle_reload_config): Added.
8703         Implements a ReloadConfig method for requesting a configuration
8704         file reload via the bus driver.
8705  
8706 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8707
8708         * HACKING: Updated release instructions concerning the wiki page.
8709
8710 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8711
8712         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8713         filter against auth->allowed_mechs; we only add allowed mechs in
8714         record_mechanisms().
8715  
8716         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8717         ALLOWED_MECHS to auth-script format so we can set the list of
8718         allowed mechanisms.
8719  
8720         * data/auth/client-out-of-mechanisms.auth-script: New test to
8721         check client disconnects when it is out of mechanisms to try.
8722  
8723         * dbus/dbus-auth.c (process_command): Remove check for lines
8724         longer that 1 MB; we only buffer up maximum 16 kB.
8725  
8726         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8727         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8728         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8729         assume there might be unused bytes.
8730  
8731         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8732         client-out-of-mechs, it is handled in process_reject(). Move check
8733         for max failures to send_rejected(), as it's a server-only thing.
8734
8735         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8736         send_auth(), send_data(), send_rejected(), send_error(),
8737         send_ok(), send_begin() and send_cancel().
8738
8739 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8740
8741         Remove base64 encoding, replace with hex encoding. Original patch
8742         from trow@ximian.com, added error handling.
8743
8744         * dbus/dbus-string.c (_dbus_string_base64_encode)
8745         (_dbus_string_base64_decode): Remove.
8746         (_dbus_string_hex_decode): Add end_return argument so we can
8747         distinguish between OOM and invalid hex encoding.
8748         (_dbus_string_test): Remove base64 tests and add test case for
8749         invalid hex.
8750
8751         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8752         Replace base64 with hex.
8753
8754         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8755         for invalid hex encoded data in auth protocol.
8756
8757 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8758
8759         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8760         leak.
8761
8762 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8763
8764         * mono/dbus-sharp.dll.config.in: Added for GAC
8765         * mono/dbus-sharp.snk: Added for GAC
8766         * mono/Assembly.cs.in: Added for GAC
8767         * mono/Makefile.am: Changes for GAC installation        
8768         * configure.in: Added refs for dbus-sharp.dll.config.in and
8769         Assembly.cs.in. More fixes for mono testing
8770         * mono/example/Makefile.am: Changed var to CSC
8771         * Makefile.am: Changed flag name to DBUS_USE_CSC
8772
8773 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8774
8775         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8776         * mono/doc/*: Added documentation framework
8777         * configure.in: Added monodoc check
8778         * README: Added description of mono configure flags
8779
8780 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8781
8782         * doc/dbus-specification.xml: Added a "Required" column to the 
8783         header fields table and changed the "zero or more" verbage in
8784         the above paragraph to read "The header must contain the required 
8785         named header fields and zero or more of the optional named header 
8786         fields".
8787         * test/data/invalid-messages/*.message: Added the required PATH 
8788         named header field to the tests so that they don't fail on 
8789         'Missing path field'
8790
8791 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8792
8793         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8794         the stack by implicitly defining variable and parameter types and
8795         removing the hack of defining C pointers as python objects and later
8796         casting them.
8797
8798 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8799
8800         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8801
8802 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8803
8804         * mono/DBusType/Dict.cs: Handle empty dicts
8805         * mono/DBusType/Array.cs: Handle empty arrays
8806         * mono/Arguments.cs: Handle empty arguments
8807
8808 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8809
8810         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8811         field
8812
8813 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8814
8815         * test/data/valid-messages/standard-*.message: Update message
8816         test scripts to new header field names.
8817
8818 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8819
8820         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8821         overflow to times_we_did_each_thing array which would chop off the
8822         first character of the failure_dir string. Increased the size of
8823         the array to 7 to reflect the number of random mutation functions
8824         we have.
8825
8826 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8827
8828         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8829         unix_server->watch here, it is unreffed in disconnect.
8830         (_dbus_server_new_for_tcp_socket): convert NULL host to
8831         "localhost" here so we don't append NULL to address.
8832         
8833         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8834         various addresses, including tcp with no explicit host.
8835
8836 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8837
8838         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8839         fix incorrect setting of .name_offset in the HeaderField (it was
8840         off by two bytes, positioned right after the name and typecode)
8841
8842         * bus/bus.c (bus_context_new, bus_context_unref): test before
8843         calling dbus_server_free_data_slot and _dbus_user_database_unref
8844         in case of an error.
8845
8846         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8847         by libdbus-gtool.
8848
8849 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8850
8851         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8852         _dbus_poll() instead of select().
8853
8854 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8855
8856         * bus/main.c (signal_handler): Reload the configuration files
8857         on SIGHUP.
8858         (main): Set up our SIGHUP handler.
8859
8860         * bus/bus.c (struct BusContext): Store the config file, user and
8861         fork flag in the BusContext.
8862         (process_config_first_time_only): Added.  Contains the code
8863         (previously in bus_context_new) for setting up the BusContext from
8864         the BusConfigParser that should only be run the first time the
8865         config files are read.
8866         (process_config_every_time): Added.  Contains the code (previously
8867         in bus_context_new) for setting up the BusContext from the
8868         BusConfigParser that should be run every time the config files are
8869         read.
8870         (load_config): Added.  Builds a BusConfigParser from the config
8871         files and passes the resulting structure off to
8872         process_config_first_time_only (assuming this is the first time)
8873         and process_config_every_time.
8874         (bus_context_new): All of the config-related code has been moved
8875         to process_config_first_time_only and process_config_every_time.
8876         Now this function just does the non-config-related initializations
8877         and calls load_config.
8878         (bus_context_reload_config): Added.
8879
8880 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8881
8882         * bus/driver.c (bus_driver_handle_get_service_owner):
8883         implement a GetServiceOwner method.
8884         * doc/dbus-specification.xml: document it.
8885         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8886         
8887         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8888         implement, using the bus GetServiceOwner method.
8889
8890         * test/glib/test-dbus-glib.c:
8891         use dbus_gproxy_new_for_service_owner so that we can receive the
8892         signal. 
8893
8894 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8895
8896         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8897         dbus/dbus-message.c, dbus/dbus-protocol.h
8898         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8899
8900         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8901         dbus/dbus-message.c, dbus/dbus-protocol.h
8902         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8903
8904         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8905         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8906         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8907
8908         * doc/dbus-specification.xml (Header Fields Table):
8909         s/SERVICE/DESTINATION
8910         s/SENDER_SERVICE/SENDER
8911
8912
8913 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8914
8915         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8916         a few seconds.
8917
8918 2004-04-13  Michael Meeks  <michael@ximian.com>
8919
8920         * glib/dbus-gobject.c (handle_introspect): split out
8921         (introspect_properties): this.
8922         (handle_introspect): implement this.
8923
8924         * test/glib/Makefile.am: use the absolute path so the bus
8925         daemon's chdir ("/") doesn't kill us dead.
8926
8927         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8928
8929 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8930
8931         * bus/config-parser.c (struct BusConfigParser): Added
8932         included_files field.
8933         (seen_include): Added.  Checks whether or not a file has already
8934         been included by any parent BusConfigParser.
8935         (bus_config_parser_new): Copy the parent's included_files.
8936         (include_file): Track which files have been included, and fail on
8937         circular inclusions.
8938         (process_test_valid_subdir): Changed printf to report if we are
8939         testing valid or invalid conf files.
8940         (all_are_equiv): Changed printf to be a bit clearer about
8941         what we are actually doing.
8942         (bus_config_parser_test): Test invalid configuration files.
8943
8944 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8945
8946         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8947         argument.  If non-null, the newly-constructed BusConfigParser will
8948         be initialized with the parent's BusLimits instead of the default
8949         values.
8950         (include_file): When including a config file, pass in
8951         the current parser as the parent and then copy the BusLimits
8952         from the included BusConfigParser pack to the current parser.
8953         (process_test_valid_subdir): Renamed from process_test_subdir.
8954         (process_test_equiv_subdir): Added.  Walks through a directory,
8955         descending into each subdirectory and loading the config files
8956         it finds there.  If any subdirectory contains two config files
8957         that don't produce identical BusConfigParser structs, fail.
8958         For now, the BusConfigParser's BusPolicies are not compared.
8959         (bus_config_parser_test): Call both process_test_valid_subdir and
8960         process_test_equiv_subdir.
8961
8962         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8963         argument and pass it along to the call to bus_config_parser_new.
8964         Also made a few small changes to allow this code to compile.
8965
8966         * bus/config-loader-expat.c (bus_config_load): Take a parent
8967         argument and pass it along to the call to bus_config_parser_new.
8968
8969         * bus/bus.c (bus_context_new): Load the config file
8970         with a NULL parent argument.
8971
8972 2004-03-29  Michael Meeks  <michael@ximian.com>
8973
8974         * glib/dbus-gobject.c (introspect_properties): split
8975         out, fix mangled 'while' flow control.
8976         (introspect_signals): implement.
8977         (handle_introspect): update.
8978
8979 2004-03-29  Michael Meeks  <michael@ximian.com>
8980
8981         * glib/dbus-gobject.c (set_object_property): split out / 
8982         re-work, use the property type, and not the message type(!)
8983         (get_object_property): ditto.
8984
8985         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8986         (dbus_gvalue_marshal): make this code re-usable, needed
8987         for signals too, also on both proxy and server side.
8988         Re-write for more efficiency / readability.
8989
8990 2004-03-29  Michael Meeks  <michael@ximian.com>
8991
8992         * dbus/dbus-message.c
8993         (dbus_message_new_error_printf): impl.
8994
8995         * dbus/dbus-connection.c
8996         (dbus_connection_unregister_object_path): fix warning.
8997
8998         * configure.in: fix no-mono-installed situation.
8999
9000 2004-03-27  Havoc Pennington  <hp@redhat.com>
9001
9002         Patch from Timo Teräs:
9003         
9004         * tools/dbus-send.c (main): if --print-reply, assume type is
9005         method call; support boolean type args
9006         
9007         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9008         bunch of memleak and logic bugs
9009         
9010 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9011
9012         * mono/Arguments.cs:
9013         * mono/Introspector.cs:
9014         * mono/Handler.cs:
9015         * mono/InterfaceProxy.cs:
9016         * mono/Message.cs
9017         * mono/ProxyBuilder.cs:
9018         * mono/Service.cs:
9019         Added InterfaceProxy class to avoid building proxies for every
9020         object.
9021
9022         * dbus-message.h:
9023         * dbus-message.c (dbus_message_append_args_valist)
9024         (dbus_message_iter_get_object_path)
9025         (dbus_message_iter_get_object_path_array)
9026         (dbus_message_iter_append_object_path)
9027         (dbus_message_iter_append_object_path_array):
9028         Added object_path iter functions to handle OBJECT_PATH arguments
9029         
9030 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9031
9032         First checkin of mono bindings.
9033         * configure.in:
9034         * Makefile.am:
9035         Build stuff for the bindings
9036         * dbus-sharp.pc.in: Added for pkgconfig
9037         
9038 2004-03-21  Havoc Pennington  <hp@redhat.com>
9039
9040         * test/test-service.c (main): remove debug spew
9041
9042 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9043
9044         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9045         arrays
9046
9047         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9048         (dbus_message_iter_init_array_iterator)
9049         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9050         indicate whether the iterator is empty
9051
9052         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9053         warnings
9054
9055 2004-03-19  Havoc Pennington  <hp@redhat.com>
9056
9057         * NEWS: 0.21 updates
9058
9059         * configure.in: 0.21
9060
9061         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9062         
9063         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9064         you don't need pyrex to make dist
9065
9066         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9067         sources; run moc
9068         
9069 2004-03-18  Richard Hult  <richard@imendio.com>
9070
9071         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9072         (dbus_message_set_auto_activation): Add doxygen docs.
9073
9074 2004-03-16  Richard Hult  <richard@imendio.com>
9075
9076         * bus/activation.c: (bus_activation_service_created),
9077         (bus_activation_send_pending_auto_activation_messages),
9078         (bus_activation_activate_service):
9079         * bus/activation.h:
9080         * bus/dispatch.c: (bus_dispatch),
9081         (check_nonexistent_service_auto_activation),
9082         (check_service_auto_activated),
9083         (check_segfault_service_auto_activation),
9084         (check_existent_service_auto_activation), (bus_dispatch_test):
9085         * bus/driver.c: (bus_driver_handle_activate_service):
9086         * bus/services.c: (bus_registry_acquire_service):
9087         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9088         (dbus_message_get_auto_activation):
9089         * dbus/dbus-message.h:
9090         * dbus/dbus-protocol.h: Implement auto-activation.
9091         
9092         * doc/dbus-specification.xml: Add auto-activation to the spec.
9093
9094 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9095
9096         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9097         fix a bug with CUSTOM types.
9098
9099         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9100         a unit test for this bug (used to fail).
9101
9102 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9103
9104         * bus/activation.c:
9105         (babysitter_watch_callback): notify all pending activations waiting for
9106           the same exec that the activation failed.
9107         (bus_activation_activate_service): shortcut the activation if we 
9108           already waiting for the same executable to start up.
9109
9110 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9111
9112         * bus/activation.c: 
9113         - Added service file reloading. 
9114           Each service files directory is kept in an hash table in 
9115           BusActivation and each BusActivationEntry knows what .service-file it
9116           was read from. So when you try to activate a service the bus will 
9117           check if it's been updated, removed or if new .service-files has 
9118           been installed.
9119         - Test code at the bottom for the service file reloading.
9120         * bus/test-main.c: (main):
9121         * bus/test.h:
9122         - added service reloading test.
9123         * dbus/dbus-sysdeps.c: 
9124         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9125
9126 2004-03-08  Michael Meeks  <michael@ximian.com>
9127
9128         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9129         bail immediately if disconnected, to avoid busy loop.
9130
9131         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9132         cleanup cut/paste/inefficiency.
9133
9134 2004-03-01  David Zeuthen  <david@fubar.dk>
9135
9136         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9137         bug where args were used twice. This bug resulted in a segfault
9138         on a Debian/PPC system when starting the messagebus daemon. Include
9139         dbus-sysdeps.h for DBUS_VA_COPY
9140
9141         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9142
9143         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9144         appropriate va_copy implementation. From GLib
9145         
9146 2004-02-24  Joe Shaw  <joe@ximian.com>
9147
9148         * bus/services.c (bus_registry_acquire_service): We need to pass
9149         in the service name to dbus_set_error() to prevent a crash.
9150
9151 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9152
9153         * AUTHORS: Reveal my True identity.
9154
9155 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9156
9157         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9158         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9159
9160 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9161
9162         * doc/TODO: Added not about better error check of configuration files.
9163
9164 2003-12-02  Richard Hult  <richard@imendio.com>
9165
9166         * Update AFL version to 2.0 throughout the source files to reflect
9167         the update that was done a while ago.
9168
9169 2003-12-02  Richard Hult  <richard@imendio.com>
9170
9171         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9172         wrote_dict_key to FALSE on the iter that the dict is appended to,
9173         just like when appending other types. Fixes a bug where a dict
9174         couldn't be put inside a dict.
9175         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9176         (message_iter_test, _dbus_message_test): Add test case for dict
9177         inside dict.
9178
9179 2003-12-01  David Zeuthen  <david@fubar.dk>
9180
9181         * python/dbus.py: Add the actual message when calling the reciever
9182         of a signal such that parameters can be inspected. Add the method
9183         remove_signal_receiver
9184         
9185 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9186
9187         * bus/*.[ch]:
9188         * dbus/*.[ch]:
9189         * glib/*.[ch]: Made ref functions return the pointer
9190
9191 2003-11-25  Zack Rusin  <zack@kde.org>
9192
9193         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9194
9195         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9196         wrappers,
9197
9198         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9199         the Integrator and to better fit with the server,
9200
9201 2003-11-24  Zack Rusin  <zack@kde.org>
9202
9203         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9204         the integrator handles it now
9205
9206         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9207         since QTimer wasn't really meant to be used the way DBusTimeout is
9208
9209 2003-11-24  Zack Rusin  <zack@kde.org>
9210
9211         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9212         Integrator class which integrates D-BUS with the Qt event loop,
9213
9214         * qt/connection.h, qt/connection.cpp: Move all the code which
9215         was dealing with D-BUS integration to the Integrator class,
9216         and start using Integrator,
9217
9218 2003-11-23  Zack Rusin  <zack@kde.org>
9219
9220         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9221         wrapper
9222
9223         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9224         switching namespaces to DBusQt, reworking the class,
9225
9226         * Makefile.cvs: switching dependencies so that it matches KDE 
9227         schematics,
9228         
9229         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9230         the library
9231
9232 2003-11-19  Havoc Pennington  <hp@redhat.com>
9233
9234         * NEWS: update
9235
9236         * configure.in: bump version to 0.20
9237
9238         * configure.in (have_qt): add yet another place to look for qt
9239         (someone hand trolltech a .pc file...)
9240
9241 2003-11-01  Havoc Pennington  <hp@redhat.com>
9242
9243         * doc/dbus-specification.xml: add state machine docs on the auth
9244         protocol; just a first draft, I'm sure it's wrong.      
9245
9246 2003-10-28  David Zeuthen  <david@fubar.dk>
9247
9248         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9249         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9250         
9251 2003-10-28  Havoc Pennington  <hp@redhat.com>
9252
9253         * dbus/dbus-message.c (get_next_field): delete unused function
9254
9255 2003-10-28  Havoc Pennington  <hp@redhat.com>
9256
9257         * bus/expirelist.c (do_expiration_with_current_time): detect
9258         failure of the expire_func due to OOM
9259
9260         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9261
9262         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9263         NoReply error that's now created by the bus when the service exits
9264
9265 2003-10-28  Havoc Pennington  <hp@redhat.com>
9266
9267         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9268         tests for set_path, set_interface, set_member, etc.
9269
9270         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9271
9272         * dbus/dbus-message.c (set_string_field): always just delete and
9273         re-append the field; accept NULL for deletion
9274         (re_align_fields_recurse): reimplement
9275         
9276 2003-10-26  Havoc Pennington  <hp@redhat.com>
9277
9278         * dbus/dbus-connection.c: fix docs to properly describe the
9279         disconnected message
9280         (_dbus_connection_notify_disconnected): remove this function; 
9281         we can't synchronously add the disconnected message, we have to 
9282         do it after we've queued any remaining real messages
9283         (_dbus_connection_get_dispatch_status_unlocked): queue the
9284         disconnect message only if the transport has finished queueing all
9285         its real messages and is disconnected.
9286         (dbus_connection_disconnect): update the dispatch status here
9287
9288 2003-10-22  Havoc Pennington  <hp@redhat.com>
9289
9290         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9291
9292         * bus/connection.c (bus_transaction_send_from_driver): set the
9293         destination to the connection's base service
9294
9295 2003-10-20  Havoc Pennington  <hp@redhat.com>
9296
9297         hmm, make check is currently not passing.
9298         
9299         * doc/dbus-specification.xml: add requirement that custom type
9300         names follow the same rules as interface names.
9301
9302         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9303         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9304         'map'
9305
9306         * doc/dbus-specification.xml: update type codes to match
9307         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9308         CUSTOM. Add type OBJECT_PATH to the spec.
9309
9310 2003-10-17  Havoc Pennington  <hp@redhat.com>
9311
9312         * bus/driver.c (create_unique_client_name): use "." as separator
9313         in base service names instead of '-'
9314
9315         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9316         byte at the end of the string
9317
9318         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9319         optimization macros since string validation seems to be a slow
9320         point.
9321         
9322         * doc/dbus-specification.xml: restrict valid
9323         service/interface/member/error names. Add test suite code for the
9324         name validation.
9325
9326         * dbus/dbus-string.c: limit service/interface/member/error names 
9327         to [0-9][A-Z][a-z]_
9328
9329         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9330         format arg to verbose spew
9331
9332         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9333         memory, return instead of g_error
9334
9335         * test/test-service.c (path_message_func): support emitting a
9336         signal on request
9337
9338         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9339         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9340         assuming the activation bus was the session bus so that services
9341         started manually will still register.
9342         (init_connections_unlocked): fix so that in OOM situation we get
9343         the same semantics when retrying the function
9344         
9345         * test/test-service.c (main): change to use path registration, to
9346         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9347         than DBUS_BUS_SESSION
9348
9349 2003-10-16  Havoc Pennington  <hp@redhat.com>
9350
9351         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9352
9353         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9354         coverage of the tests
9355         (coverage-report.txt): don't move the .da and .bbg files around
9356
9357 2003-10-16  Havoc Pennington  <hp@redhat.com>
9358
9359         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9360         to put there
9361
9362 2003-10-16  Havoc Pennington  <hp@redhat.com>
9363
9364         * bus/connection.c (bus_pending_reply_expired): either cancel or
9365         execute, not both
9366         (bus_connections_check_reply): use unlink, not remove_link, as we
9367         don't want to free the link; fixes double free mess
9368
9369         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9370         where no reply was received
9371
9372         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9373         fix a refcount leak
9374
9375         * bus/signals.c (match_rule_matches): add special cases for the
9376         bus driver, so you can match on sender/destination for it.
9377
9378         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9379         DBUS_PRINT_BACKTRACE is set
9380
9381         * dbus/dbus-internals.c: add pid to assertion failure messages
9382
9383         * dbus/dbus-connection.c: add message type code to the debug spew
9384
9385         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9386         sender=foo not service=foo
9387
9388         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9389         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9390         DBUS_ACTIVATION_ADDRESS instead
9391
9392         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9393         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9394
9395         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9396         context struct
9397
9398         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9399         (dbus_message_iter_get_object_path_array): new function (half
9400         finished, disabled for the moment)
9401         
9402         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9403         DBUS_MESSAGE_TYPE_ERROR
9404
9405         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9406         avoid redirecting stderr to /dev/null
9407         (babysit): close stdin if not doing the "exit_with_session" thing
9408
9409         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9410         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9411         stdout/stdin, so things don't get confused
9412         
9413         * bus/system.conf.in: fix to allow replies, I modified .conf
9414         instead of .conf.in again.
9415
9416 2003-10-14  David Zeuthen  <david@fubar.dk>
9417
9418         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9419         argtype to arg_type when raising unknown arg type exception.
9420         Changed type list to reflect the changes in dbus-protocol.h so 
9421         the bindings actually work.
9422
9423 2003-10-14  Havoc Pennington  <hp@redhat.com>
9424
9425         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9426         to have a bug keeping it from outputting the .da files sometimes
9427         (string_get_string): don't append garbage nul bytes to the string.
9428
9429 2003-10-15  Seth Nickell  <seth@gnome.org>
9430
9431         * python/Makefile.am:
9432
9433         Include dbus_h_wrapper.h in the dist tarball.
9434
9435 2003-10-14  Havoc Pennington  <hp@redhat.com>
9436
9437         * bus/bus.c (bus_context_check_security_policy): revamp this to
9438         work more sanely with new policy-based requested reply setup
9439
9440         * bus/connection.c (bus_transaction_send_from_driver): set bus
9441         driver messages as no reply
9442
9443         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9444         requested_reply attribute on allow/deny rules
9445
9446         * bus/system.conf: add <allow requested_reply="true"/>
9447
9448         * bus/driver.c (bus_driver_handle_message): fix check for replies
9449         sent to the bus driver, which was backward. How did this ever work
9450         at all though? I think I'm missing something.
9451
9452         * dbus/dbus-message.c (decode_header_data): require error and
9453         method return messages to have a reply serial field to be valid
9454         (_dbus_message_loader_queue_messages): break up this function;
9455         validate that reply serial and plain serial are nonzero; 
9456         clean up the OOM/error handling.
9457         (get_uint_field): don't return -1 from this
9458         (dbus_message_create_header): fix signed/unsigned bug
9459
9460         * bus/connection.c (bus_connections_expect_reply): save serial of
9461         the incoming message, not reply serial
9462
9463 2003-10-14  Havoc Pennington  <hp@redhat.com>
9464
9465         * bus/connection.c: implement pending reply tracking using
9466         BusExpireList
9467
9468         * bus/bus.c (bus_context_check_security_policy): verify that a
9469         reply is pending in order to allow a reply to be sent. Deny 
9470         messages of unknown type.
9471
9472         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9473
9474         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9475         (bus_context_get_reply_timeout): new
9476
9477 2003-10-13  Seth Nickell  <seth@gnome.org>
9478
9479         * python/Makefile.am:
9480
9481         Pass "make distcheck": remove a couple files from DIST_FILES
9482         that weren't included in the final version.
9483
9484 2003-10-12  Havoc Pennington  <hp@pobox.com>
9485
9486         Added test code that 1) starts an actual bus daemon and 2) uses
9487         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9488         more testing possible, but this is the basic framework.
9489         
9490         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9491         empty proxy lists from the proxy list hash
9492
9493         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9494         couple of return_if_fail checks
9495
9496         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9497         to allocate, so everything is cleared to NULL as it should be.
9498
9499         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9500         source as data to dbus_connection_set_timeout_functions() as the 
9501         timeout functions expected
9502
9503         * test/glib/run-test.sh: add a little script to start up a message
9504         bus and run tests using it
9505
9506         * tools/dbus-launch.1: updates
9507
9508         * tools/dbus-launch.c (main): add --config-file option
9509
9510         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9511         that could never be reached.
9512
9513         * dbus/dbus-message.c (dbus_message_new_method_return) 
9514         (dbus_message_new_error, dbus_message_new_signal): set the
9515         no-reply-expected flag on all these. Redundant, but may
9516         as well be consistent.
9517
9518 2003-10-11  Havoc Pennington  <hp@pobox.com>
9519
9520         * test/decode-gcov.c (function_solve_graph): make broken block
9521         graph a nonfatal error since it seems to be broken. Need to debug
9522         this.
9523
9524         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9525         can't just check type > INVALID < LAST anymore
9526
9527         * dbus/dbus-message.c (dbus_message_get_signature): new function
9528         (dbus_message_has_signature): new function
9529         (struct DBusMessage): add signature field (right now it isn't sent
9530         over the wire, just generated on the fly)
9531         (dbus_message_copy): copy the signature, and init strings to
9532         proper length to avoid some reallocs
9533         (dbus_message_iter_init_array_iterator): return void, since it
9534         can't fail
9535         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9536         (_dbus_message_loader_queue_messages): add silly temporary hack to
9537         fill in message->signature on load
9538
9539         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9540         characters, so they are relatively human-readable.
9541
9542 2003-10-11  Havoc Pennington  <hp@pobox.com>
9543
9544         * dbus/dbus-message.c (_dbus_message_test): add more test
9545         coverage, but #if 0 for now since they uncover a bug 
9546         not fixed yet; I think in re_align_field_recurse()
9547         (re_align_field_recurse): add FIXME about broken assertion
9548
9549         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9550
9551         * bus/connection.c: share a couple code bits with expirelist.c
9552
9553         * bus/expirelist.h, bus/expirelist.c: implement a generic
9554         expire-items-after-N-seconds facility, was going to share between
9555         expiring connections and replies, decided not to use for expiring
9556         connections for now.
9557
9558         * COPYING: include AFL 2.0 (still need to change all the file headers)
9559
9560 2003-10-09  Havoc Pennington  <hp@redhat.com>
9561
9562         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9563         gcc 3.3. Not that we do anything about it yet.
9564
9565         * bus/signals.c (bus_match_rule_parse): impose max length on the
9566         match rule text
9567
9568         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9569
9570 2003-10-09  Havoc Pennington  <hp@redhat.com>
9571
9572         Make matching rules theoretically work (add parser).
9573         
9574         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9575         the case where destination is explicitly specified as bus driver
9576         and someone else is eavesdropping.
9577         
9578         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9579         definition of eavesdropping and assertion
9580
9581         * tools/dbus-send.c (main): use dbus_message_type_from_string
9582
9583         * bus/signals.c (bus_match_rule_parse): implement
9584
9585         * dbus/dbus-message.c (dbus_message_type_from_string): new
9586
9587         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9588
9589 2003-10-02  Havoc Pennington  <hp@pobox.com>
9590
9591         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9592         dbus_gproxy_oneway_call
9593
9594         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9595         (dbus_server_setup_with_g_main): fix to allow calling them more
9596         than once on the same args
9597         (dbus_bus_get_with_g_main): new function
9598
9599 2003-10-02  Havoc Pennington  <hp@redhat.com>
9600
9601         * doc/dbus-tutorial.xml: write some stuff
9602
9603 2003-09-29  Havoc Pennington  <hp@pobox.com>
9604
9605         * configure.in: split checks for Doxygen from XML docs, check for
9606         xmlto
9607
9608         * doc/Makefile.am: XML-ify all the docs, and add a blank
9609         dbus-tutorial.xml
9610
9611 2003-09-29  Havoc Pennington  <hp@pobox.com>
9612
9613         * Merge dbus-object-names branch. To see the entire patch 
9614         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9615         it's huuuuge though.
9616         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9617         
9618 2003-09-28  Havoc Pennington  <hp@pobox.com>
9619
9620         * HACKING: update to reflect new server
9621
9622 2003-09-26  Seth Nickell  <seth@gnome.org>
9623
9624         * python/dbus.py:
9625         * python/examples/example-signals.py:
9626
9627         Start implementing some notions of signals. The API
9628         is really terrible, but they sort of work (with the
9629         exception of being able to filter by service, and to
9630         transmit signals *as* a particular service). Need to
9631         figure out how to make messages come from the service
9632         we registered :-(
9633         
9634         * python/dbus_bindings.pyx.in:
9635
9636         Removed duplicate message_handler callbacks.
9637         
9638 2003-09-25  Havoc Pennington  <hp@redhat.com>
9639
9640         * bus/session.conf.in: fix my mess
9641
9642 2003-09-25  Havoc Pennington  <hp@pobox.com>
9643
9644         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9645
9646 2003-09-25  Seth Nickell  <seth@gnome.org>
9647
9648         * python/examples/example-service.py:
9649
9650         Johan notices complete wrong code in example-service, but
9651         completely wrong in a way that works exactly the same (!).
9652         Johan is confused, how could this possibly work? Example
9653         code fails to serve purpose of making things clear.
9654         Seth fixes.
9655
9656 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9657
9658         * doc/dbus-specification.sgml: don't require header fields
9659         to be 4-byte aligned and specify that fields should be
9660         distinguished from padding by the fact that zero is not
9661         a valid field name.
9662         
9663         * doc/TODO: remove re-alignment item and add item to doc
9664         the OBJECT_PATH type.
9665         
9666         * dbus/dbus-message.c:
9667         (HeaderField): rename the original member to value_offset
9668         and introduce a name_offset member to keep track of where
9669         the field actually begins.
9670         (adjust_field_offsets): remove.
9671         (append_int_field), (append_uint_field),
9672         (append_string_field): don't align the start of the header
9673         field to a 4-byte boundary.
9674         (get_next_field): impl finding the next marhsalled field
9675         after a given field.
9676         (re_align_field_recurse): impl re-aligning a number of
9677         already marshalled fields.
9678         (delete_field): impl deleting a field of any type and
9679         re-aligning any following fields.
9680         (delete_int_or_uint_field), (delete_string_field): remove.
9681         (set_int_field), (set_uint_field): no need to re-check
9682         that we have the correct type for the field.
9683         (set_string_field): ditto and impl re-aligning any
9684         following fields.
9685         (decode_header_data): update to take into account that
9686         the fields aren't 4-byte aligned any more and the new
9687         way to distinguish padding from header fields. Also,
9688         don't exit when there is too much header padding.
9689         (process_test_subdir): print the directory.
9690         (_dbus_message_test): add test to make sure a following
9691         field is re-aligned correctly after field deletion.
9692         
9693         * dbus/dbus-string.[ch]:
9694         (_dbus_string_insert_bytes): rename from insert_byte and
9695         allow the insert of multiple bytes.
9696         (_dbus_string_test): test inserting multiple bytes.
9697
9698         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9699         warning note to docs about having to re-align any
9700         marshalled values following the string.
9701         
9702         * dbus/dbus-message-builder.c:
9703         (append_string_field), (_dbus_message_data_load):
9704         don't align the header field.
9705         
9706         * dbus/dbus-auth.c: (process_test_subdir): print the
9707         directory.
9708         
9709         * test/break-loader.c: (randomly_add_one_byte): upd. for
9710         insert_byte change.
9711         
9712         * test/data/invalid-messages/bad-header-field-alignment.message:
9713         new test case.
9714         
9715         * test/data/valid-messages/unknown-header-field.message: shove
9716         a dict in the unknown field.
9717
9718 2003-09-25  Seth Nickell  <seth@gnome.org>
9719
9720         * python/dbus.py:
9721         * python/dbus_bindings.pyx.in:
9722
9723         Handle return values.
9724         
9725         * python/examples/example-client.py:
9726         * python/examples/example-service.py:
9727
9728         Pass back return values from the service to the client.
9729         
9730 2003-09-24  Seth Nickell  <seth@gnome.org>
9731
9732         * python/dbus.py:
9733
9734         Connect Object methods (when you are sharing an object) up... pass
9735         in a list of methods to be shared. Sharing all the methods just
9736         worked out too weird. You can now create nice Services over the
9737         DBus in Python. :-)
9738         
9739         * python/dbus_bindings.pyx.in:
9740
9741         Keep references to user_data tuples passed into C functions so 
9742         Python doesn't garbage collect on us.
9743
9744         Implement MethodReturn and Error subclasses of Message for creating
9745         DBusMessage's of those types.
9746         
9747         * python/examples/example-client.py:
9748         * python/examples/example-service.py:
9749
9750         Simple example code showing both how create DBus services and objects,
9751         and how to use them.
9752
9753 2003-09-23  Havoc Pennington  <hp@pobox.com>
9754
9755         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9756
9757 2003-09-23  Havoc Pennington  <hp@redhat.com>
9758
9759         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9760         (dbus_gproxy_disconnect_signal): implement
9761         (dbus_gproxy_manager_remove_signal_match): implement
9762         (dbus_gproxy_manager_add_signal_match): implement
9763         (dbus_gproxy_oneway_call): implement
9764
9765 2003-09-23  Havoc Pennington  <hp@pobox.com>
9766
9767         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9768         subclass. This means dropping the transparent thread safety of the
9769         proxy; you now need a separate proxy per-thread, or your own
9770         locking on the proxy. Probably right anyway.
9771         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9772
9773 2003-09-22  Havoc Pennington  <hp@redhat.com>
9774
9775         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9776
9777 2003-09-21  Seth Nickell  <seth@gnome.org>
9778
9779         First checkin of the Python bindings.
9780         
9781         * python/.cvsignore:
9782         * python/Makefile.am:
9783         * python/dbus_bindings.pyx.in:
9784         * python/dbus_h_wrapper.h:
9785
9786         Pieces for Pyrex to operate on, building a dbus_bindings.so
9787         python module for low-level access to the DBus APIs.
9788         
9789         * python/dbus.py:
9790
9791         High-level Python module for accessing DBus objects.
9792
9793         * configure.in:
9794         * Makefile.am:
9795
9796         Build stuff for the python bindings.
9797
9798         * acinclude.m4:
9799
9800         Extra macro needed for finding the Python C header files.
9801
9802 2003-09-21  Havoc Pennington  <hp@pobox.com>
9803
9804         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9805         implementing the proxy manager, didn't get very far.
9806
9807         * dbus/dbus-bus.c (dbus_bus_add_match): new
9808         (dbus_bus_remove_match): new
9809
9810         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9811         path_name argument; adjust the other not-yet-implemented 
9812         gproxy constructors to be what I think they should be.
9813
9814 2003-09-21  Havoc Pennington  <hp@pobox.com>
9815
9816         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9817         by default for message bus connections.
9818
9819         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9820         exit_on_disconnect flag is set and we process the disconnected
9821         signal.
9822         (dbus_connection_set_exit_on_disconnect): new function
9823
9824 2003-09-21  Havoc Pennington  <hp@pobox.com>
9825
9826         Get matching rules mostly working in the bus; only actually
9827         parsing the rule text remains. However, the client side of
9828         "signal connections" hasn't been started, this patch is only the
9829         bus side.
9830         
9831         * dbus/dispatch.c: fix for the matching rules changes
9832         
9833         * bus/driver.c (bus_driver_handle_remove_match)
9834         (bus_driver_handle_add_match): send an ack reply from these
9835         method calls
9836
9837         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9838         arguments, reported by Seth Nickell
9839
9840         * bus/config-parser.c (append_rule_from_element): support
9841         eavesdrop=true|false attribute on policies so match rules 
9842         can be prevented from snooping on the system bus.
9843
9844         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9845         and "destination" in attribute names; fix some docs bugs; 
9846         add eavesdrop=true|false attribute
9847
9848         * bus/driver.c (bus_driver_handle_add_match)
9849         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9850         messages
9851
9852         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9853         rid of broadcast service concept, signals are just always broadcast
9854
9855         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9856         mostly implement matching rules stuff (currently only exposed as signal
9857         connections)
9858
9859 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9860
9861         * doc/dbus-specification.sgml: Change the header field name
9862         to be an enum and update the rest of the spec to reference
9863         the fields using the conventinal name.
9864
9865         * dbus/dbus-protocol.h: update to reflect the spec.
9866
9867         * doc/TODO: add item to remove the 4 byte alignment requirement.
9868         
9869         * dbus/dbus-message.c: Remove the code to generalise the
9870         header/body length and serial number header fields as named
9871         header fields so we can reference field names using the 
9872         protocol values.
9873         (append_int_field), (append_uint_field), (append_string_field):
9874         Append the field name as a byte rather than four chars.
9875         (delete_int_or_uint_field), (delete_string_field): reflect the
9876         fact that the field name and typecode now occupy 4 bytes instead
9877         of 8.
9878         (decode_string_field), (decode_header_data): update to reflect
9879         protocol changes and move the field specific encoding from
9880         decode_string_field() back into decode_header_data().
9881         
9882         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9883         Add utility to aid debugging.
9884         
9885         * dbus/dbus-message-builder.c:
9886         (append_string_field), (_dbus_message_data_load): Update to
9887         reflect protocol changes; Change the FIELD_NAME directive
9888         to HEADER_FIELD and allow it to take the field's conventional
9889         name rather than the actual value.
9890         
9891         * test/data/*/*.message: Update to use HEADER_FIELD instead
9892         of FIELD_NAME; Always align the header on an 8 byte boundary
9893         *before* updating the header length.
9894
9895 2003-09-15  Havoc Pennington  <hp@pobox.com>
9896
9897         * dbus/dbus-pending-call.c: add the get/set object data
9898         boilerplate as for DBusConnection, etc. Use generic object data
9899         for the notify callback.
9900
9901         * glib/dbus-gparser.c (parse_node): parse child nodes
9902
9903         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9904         
9905         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9906         contain functions shared between the convenience lib and the
9907         installed lib
9908
9909         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9910         -export-symbols-regex to the GLib library
9911
9912         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9913         fix the locking in here, and add a default handler for
9914         Introspect() that just returns sub-nodes.
9915
9916 2003-09-14  Havoc Pennington  <hp@pobox.com>
9917
9918         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9919         rather than gfoo consistent
9920
9921         * glib/dbus-gproxy.h: delete for now, move contents to
9922         dbus-glib.h, because the include files don't work right since we
9923         aren't in the dbus/ subdir.
9924         
9925         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9926         (dbus_gproxy_end_call): finish
9927         (dbus_gproxy_begin_call): finish
9928
9929         * glib/dbus-gmain.c (dbus_set_g_error): new
9930
9931         * glib/dbus-gobject.c (handle_introspect): include information
9932         about child nodes in the introspection
9933
9934         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9935         function to help in implementation of introspection
9936
9937         * dbus/dbus-object-tree.c
9938         (_dbus_object_tree_list_registered_and_unlock): new function
9939
9940 2003-09-12  Havoc Pennington  <hp@pobox.com>
9941
9942         * glib/dbus-gidl.h: add common base class for all the foo_info
9943         types
9944
9945         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9946         similar to kdcop
9947
9948         * test/Makefile.am: try test srcdir -ef . in addition to test
9949         srcdir = ., one of them should work (yeah lame)
9950         
9951         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9952         library
9953         
9954         * glib/dbus-gparser.h: make description_load routines return
9955         NodeInfo* not Parser*
9956
9957         * Makefile.am (SUBDIRS): build test dir after all library dirs
9958
9959         * configure.in: add GTK+ detection
9960
9961 2003-09-07  Havoc Pennington  <hp@pobox.com>
9962
9963         * Make Doxygen contented.
9964
9965 2003-09-07  Havoc Pennington  <hp@pobox.com>
9966
9967         * doc/dbus-specification.sgml: more updates
9968
9969 2003-09-06  Havoc Pennington  <hp@pobox.com>
9970
9971         * doc/dbus-specification.sgml: partial updates
9972
9973         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9974         zillionth time; hopefully I edited the right file this time.
9975
9976         * bus/config-parser.c (append_rule_from_element): support
9977         send_type, send_path, receive_type, receive_path
9978
9979         * bus/policy.c: add message type and path to the list of things
9980         that can be "firewalled"
9981
9982 2003-09-06  Havoc Pennington  <hp@pobox.com>
9983
9984         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9985         (dbus_connection_register_object_path): make this not handle
9986         messages to paths below the given path
9987
9988 2003-09-03  Havoc Pennington  <hp@pobox.com>
9989
9990         * test/glib/Makefile.am: add this with random glib-linked test
9991         programs
9992
9993         * glib/Makefile.am: remove the random test programs from here,
9994         leave only the unit tests
9995
9996         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9997         uscore/javacaps conversion, and fix     
9998         (get_object_property, set_object_property): change to .NET
9999         convention for mapping props to methods, set_FooBar/get_FooBar, 
10000         since one language has such a convention we may as well copy it. 
10001         Plus real methods in either getFooBar or get_foo_bar style won't 
10002         collide with this convention.
10003
10004 2003-09-01  Havoc Pennington  <hp@pobox.com>
10005
10006         * glib/dbus-gparser.c: implement
10007
10008         * glib/dbus-gobject.c: start implementing skeletons support
10009
10010         * configure.in: when disabling checks/assert, also define
10011         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10012
10013 2003-09-01  Havoc Pennington  <hp@pobox.com>
10014
10015         * glib/Makefile.am: rearrange a bunch of files and get "make
10016         check" framework set up
10017
10018 2003-08-31  Havoc Pennington  <hp@pobox.com>
10019
10020         * fix build with --disable-tests
10021
10022 2003-08-30  Havoc Pennington  <hp@pobox.com>
10023
10024         * dbus/dbus-connection.c: purge DBusMessageHandler
10025
10026         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10027         use callbacks everywhere
10028
10029 2003-08-30  Havoc Pennington  <hp@pobox.com>
10030
10031         * test/data/valid-config-files/system.d/test.conf: change to 
10032         root for the user so warnings don't get printed
10033
10034         * dbus/dbus-message.c: add dbus_message_get_path,
10035         dbus_message_set_path
10036         
10037         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10038         dispatching to a path
10039
10040         * dbus/dbus-string.c (_dbus_string_validate_path): add
10041
10042         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10043         (_dbus_marshal_object_path): implement
10044
10045         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10046         to contain the path to the target object
10047         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10048         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10049
10050 2003-08-30  Havoc Pennington  <hp@pobox.com>
10051
10052         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10053
10054 2003-08-29  Havoc Pennington  <hp@pobox.com>
10055
10056         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10057         registered
10058         (struct DBusObjectSubtree): shrink this
10059         a lot, since we may have a lot of them
10060         (_dbus_object_tree_free_all_unlocked): implement
10061         (_dbus_object_tree_dispatch_and_unlock): implement
10062
10063 2003-08-29  Havoc Pennington  <hp@pobox.com>
10064
10065         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10066
10067 2003-08-28  Havoc Pennington  <hp@pobox.com>
10068
10069         purge DBusObjectID
10070         
10071         * dbus/dbus-connection.c: port to no ObjectID, create a
10072         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10073
10074         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10075         everything except UnregisterFunction and MessageFunction
10076         
10077         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10078         add DBUS_TYPE_OBJECT_PATH
10079         
10080         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10081         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10082         path-based object IDs
10083
10084 2003-08-25  Havoc Pennington  <hp@pobox.com>
10085
10086         Just noticed that dbus_message_test is hosed, I wonder when I
10087         broke that. I thought make check was passing earlier...
10088         
10089         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10090         container tree, will replace most of dbus-object-registry
10091
10092         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10093         screwup
10094
10095 2003-08-19  Havoc Pennington  <hp@pobox.com>
10096
10097         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10098         (dbus_message_is_error): fix this function
10099
10100         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10101         match
10102
10103         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10104         reflect clarified man page
10105         (bus_client_policy_check_can_send): ditto
10106         
10107         * bus/session.conf.in: fixup
10108
10109         * bus/system.conf.in: fixup
10110
10111 2003-08-18  Havoc Pennington  <hp@redhat.com>
10112
10113         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10114
10115         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10116         dumb bug created earlier (wrong order of args to
10117         decode_header_data())
10118         
10119         * tools/dbus-send.c: port
10120
10121         * tools/dbus-print-message.c (print_message): port
10122
10123         * test/data/*messages: port all messages over
10124         
10125         * dbus/dbus-message-builder.c: support including 
10126         message type
10127         
10128         * bus/driver.c: port over
10129         
10130         * bus/dispatch.c: port over to new stuff
10131
10132         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10133         rename disconnect signal to "Disconnected"
10134
10135 2003-08-17  Havoc Pennington  <hp@pobox.com>
10136
10137         This doesn't compile yet, but syncing up so I can hack on it from
10138         work. What are branches for if not broken code? ;-)
10139         
10140         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10141         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10142         DBUS_HEADER_FIELD_ERROR_NAME
10143         
10144         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10145         for the interface+member pairs
10146         (string_hash): change to use g_str_hash algorithm
10147         (find_direct_function, find_string_function): refactor these to
10148         share most code.
10149         
10150         * dbus/dbus-message.c: port all of this over to support 
10151         interface/member fields instead of name field
10152
10153         * dbus/dbus-object-registry.c: port over
10154         
10155         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10156         from _dbus_string_validate_name
10157
10158         * bus/dbus-daemon-1.1: change file format for the 
10159         <deny>/<allow> stuff to match new message naming scheme
10160
10161         * bus/policy.c: port over
10162
10163         * bus/config-parser.c: parse new format
10164         
10165 2003-08-16  Havoc Pennington  <hp@pobox.com>
10166
10167         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10168         broken assertion
10169
10170         * glib/dbus-gproxy.c: some hacking
10171
10172 2003-08-15  Havoc Pennington  <hp@redhat.com>
10173
10174         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10175
10176         * dbus/dbus-connection.c
10177         (dbus_connection_send_with_reply_and_block): factor out internals;
10178         change to convert any error replies to DBusError instead of 
10179         returning them as a message
10180
10181 2003-08-15  Havoc Pennington  <hp@pobox.com>
10182
10183         * dbus/dbus-connection.c, 
10184         dbus/dbus-pending-call.c: Finish the pending call stuff
10185
10186 2003-08-14  Havoc Pennington  <hp@redhat.com>
10187
10188         * dbus/dbus-pending-call.c: start on new object that will replace
10189         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10190         replies
10191
10192         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10193         with remote interfaces
10194
10195         * dbus/dbus-gidl.c: do the boring boilerplate in here
10196         
10197 2003-08-12  Havoc Pennington  <hp@pobox.com>
10198
10199         * bus/dispatch.c (bus_dispatch): make this return proper 
10200         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10201
10202         * dbus/dbus-errors.c (dbus_set_error): use
10203         _dbus_string_append_printf_valist
10204
10205         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10206         (_dbus_string_append_printf): new
10207
10208         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10209         UNKNOWN_METHOD
10210
10211         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10212         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10213         message is unhandled.
10214
10215 2003-08-11  Havoc Pennington  <hp@pobox.com>
10216
10217         * bus/test.c (client_disconnect_handler): change to return
10218         HANDLED (would have been REMOVE_MESSAGE)
10219
10220         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10221         HANDLED/NOT_YET_HANDLED instead of
10222         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10223         should be used.
10224
10225 2003-08-10  Havoc Pennington  <hp@pobox.com>
10226
10227         * tools/dbus-send.c (main): add --type argument, for now
10228         supporting only method_call and signal types.
10229
10230         * tools/dbus-print-message.c: print message type
10231
10232         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10233         init connection->objects
10234
10235         * doc/dbus-specification.sgml: fix sgml
10236
10237         * bus/*.c: port over to object-instance API changes
10238
10239         * test/test-service.c: ditto
10240         
10241         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10242         name, we will have to fix up the rest of the code to also handle
10243         this
10244         (dbus_message_new): generic message-creation call
10245         (set_string_field): allow appending name field
10246
10247 2003-08-06  Havoc Pennington  <hp@pobox.com>
10248
10249         * dbus/dbus-object-registry.c: implement signal connection 
10250         and dispatch
10251
10252         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10253
10254         * dbus/dbus-internals.c (_dbus_memdup): new function
10255
10256 2003-08-02  Havoc Pennington  <hp@pobox.com>
10257
10258         * dbus/dbus-message.c (dbus_message_get_no_reply)
10259         (dbus_message_set_no_reply): add these and remove
10260         set_is_error/get_is_error
10261
10262         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10263         remove the ERROR flag, since there's now an ERROR type
10264
10265 2003-08-01  Havoc Pennington  <hp@pobox.com>
10266
10267         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10268         implement
10269
10270         * dbus/dbus-message.c (dbus_message_get_type): new function
10271
10272         * doc/dbus-specification.sgml: add "type" byte to messages
10273
10274 2003-08-01  Havoc Pennington  <hp@pobox.com>
10275
10276         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10277         a message type enum to distinguish kinds of message
10278         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10279         that need not be replied to
10280
10281 2003-08-01  Havoc Pennington  <hp@pobox.com>
10282
10283         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10284         (unpack_8_octets): fix no-64-bit-int bug
10285
10286         * dbus/dbus-object-registry.c (validate_id): validate the 
10287         connection ID bits, not just the instance ID.
10288
10289         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10290         the connection-global 33 bits of the object ID
10291
10292         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10293         object ID in the new way
10294
10295         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10296         define server/client/instance bits.
10297
10298 2003-07-30  Havoc Pennington  <hp@pobox.com>
10299
10300         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10301         build
10302
10303 2003-07-13  Havoc Pennington  <hp@pobox.com>
10304
10305         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10306         fields to DBusObjectVTable and DBusObjectInfo
10307
10308 2003-07-12  Havoc Pennington  <hp@pobox.com>
10309
10310         * dbus/dbus-object-registry.c: implement unit test,
10311         fix bugs discovered in process
10312
10313         * dbus/dbus-connection.c: remove handler_table and
10314         register_handler(), add DBusObjectRegistry usage
10315
10316         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10317         (dbus_object_id_set_null): new functions
10318
10319 2003-07-08  Havoc Pennington  <hp@pobox.com>
10320
10321         * dbus/dbus-object.c: implement some of this
10322
10323         * dbus/dbus-object-registry.c
10324         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10325         param
10326         (_dbus_object_registry_new): handle OOM
10327
10328 2003-07-08  Havoc Pennington  <hp@pobox.com>
10329
10330         * dbus/dbus-object.h: sketch out an API for registering objects
10331         with a connection, that allows us to use as little as 24 bytes
10332         per object and lets application code represent an object in 
10333         any conceivable way.
10334
10335         * dbus/dbus-object-registry.c: implement the hard bits of the
10336         DBusConnection aspect of object API. Not yet wired up.
10337         
10338 2003-07-06  Havoc Pennington  <hp@pobox.com>
10339
10340         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10341         (_dbus_marshal_object_id): new
10342         (_dbus_demarshal_object_id): new
10343         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10344         consolidate identical switch cases. Don't conditionalize handling
10345         of DBUS_TYPE_UINT64, need to handle the type always.
10346         (_dbus_marshal_validate_arg): consolidate identical cases, and
10347         handle DBUS_TYPE_OBJECT_ID
10348
10349         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10350
10351         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10352
10353 2003-09-28  Havoc Pennington  <hp@pobox.com>
10354
10355         * real 0.13 release
10356
10357 2003-09-28  Havoc Pennington  <hp@pobox.com>
10358
10359         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10360         to work with Debian db2html
10361
10362 2003-09-28  Havoc Pennington  <hp@pobox.com>
10363
10364         * configure.in: 0.13
10365
10366         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10367         stylesheet-images for benefit of Debian
10368         
10369         Change back to using filesystem-linked sockets for the system
10370         bus, so only root can create the default system bus address.
10371         
10372         * bus/system.conf.in: change to use
10373         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10374
10375         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10376         from here.
10377
10378         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10379         here, and AC_DEFINE DBUS_SYSTEM_PATH
10380
10381 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10382
10383         * doc/TODO:
10384         * doc/busconfig.dtd:
10385         Add busconfig DTD.
10386         
10387 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10388
10389         * doc/dbus-specification.sgml:
10390         Add activation reply values.
10391         
10392 2003-08-05  Havoc Pennington  <hp@redhat.com>
10393
10394         * configure.in: 0.12
10395
10396 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10397
10398         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10399         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10400         (add_watch), (remove_watch), (create_source):
10401         Refcount fds, fixes some reentrancy issues.
10402         
10403 2003-07-30  Havoc Pennington  <hp@redhat.com>
10404
10405         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10406         bus address to be abstract if we have abstract sockets
10407
10408         * NEWS: update
10409
10410 2003-07-28  Havoc Pennington  <hp@redhat.com>
10411
10412         * bus/messagebus.in: fix to avoid processname/servicename 
10413         confusion, from Michael Kearey
10414         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10415         
10416 2003-07-23  Havoc Pennington  <hp@pobox.com>
10417
10418         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10419         fix from Andy Hanton to remove broken "+1"
10420
10421 2003-07-16  Havoc Pennington  <hp@pobox.com>
10422
10423         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10424         babysitter process, as suggested by Thomas Leonard, so 
10425         an "eval `dbus-launch --exit-with-session`" will actually 
10426         return
10427
10428 2003-07-16  Havoc Pennington  <hp@pobox.com>
10429
10430         * configure.in: print out EXPANDED_* variables in the summary at
10431         the end; clean up the code that computes EXPANDED_ variables and
10432         get the ones using exec_prefix right. Should make things work
10433         when you build without --prefix
10434
10435 2003-06-29  Havoc Pennington  <hp@pobox.com>
10436
10437         * mono/Test.cs (class Test): fire up a main loop and run it
10438
10439         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10440         done once, the app has to do it
10441
10442 2003-06-26  Havoc Pennington  <hp@pobox.com>
10443
10444         * mono/Connection.cs: set up connection with the glib main loop
10445
10446 2003-07-01  Havoc Pennington  <hp@redhat.com>
10447
10448         * doc/dbus-specification.sgml: clarify the format of a type code,
10449         change suggested by Jim Blandy
10450
10451 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10452
10453         * doc/Makefile.am:
10454         * tools/Makefile.am: Don't assume srcdir == builddir.
10455
10456         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10457         the allocated block.
10458         (_dbus_memory_test): New function.
10459         * dbus/dbus-test.h: Add _dbus_memory_test ().
10460         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10461
10462         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10463         of %c%c%c%c.
10464         (dbus_message_new): Remove obsolete @todo.
10465
10466         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10467         (_dbus_marshal_set_uint64): Fix comment.
10468
10469         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10470         hardcode FIELD_REPLY_SERIAL.
10471
10472         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10473         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10474
10475         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10476         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10477
10478 2003-06-24  Havoc Pennington  <hp@pobox.com>
10479
10480         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10481
10482 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10483
10484         * configure.in:
10485         * gcj/.cvsignore:
10486         * gcj/Hello.java:
10487         * gcj/Makefile.am:
10488         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10489         * gcj/org/.cvsignore:
10490         * gcj/org/Makefile.am:
10491         * gcj/org/freedesktop/.cvsignore:
10492         * gcj/org/freedesktop/Makefile.am:
10493         * gcj/org/freedesktop/dbus/.cvsignore:
10494         * gcj/org/freedesktop/dbus/Makefile.am:
10495         * gcj/org/freedesktop/dbus/Message.java: (Message),
10496         (Message.Message):
10497         * gcj/org/freedesktop/dbus/natMessage.cc:
10498         Fix the build system.
10499
10500 2003-06-22  Havoc Pennington  <hp@pobox.com>
10501
10502         * mono/Connection.cs: add more bindings
10503
10504         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10505         more than once.
10506
10507 2003-06-22  Havoc Pennington  <hp@pobox.com>
10508
10509         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10510         Start wrapping more stuff.
10511
10512 2003-06-22  Havoc Pennington  <hp@pobox.com>
10513
10514         * mono/Message.cs: implement Message.Wrap() that ensures we only
10515         have a single C# wrapper per DBusMessage, assuming it works which
10516         it probably doesn't.
10517
10518         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10519         (dbus_message_free_data_slot): new
10520         (dbus_message_set_data): new
10521         (dbus_message_get_data): new
10522
10523 2003-06-22  Havoc Pennington  <hp@pobox.com>
10524
10525         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10526         (_dbus_data_slot_allocator_alloc): rework these to keep a
10527         reference count on each slot and automatically manage a global
10528         slot ID variable passed in by address
10529
10530         * bus/bus.c: convert to new dataslot API
10531
10532         * dbus/dbus-bus.c: convert to new dataslot API
10533
10534         * dbus/dbus-connection.c: convert to new dataslot API
10535
10536         * dbus/dbus-server.c: convert to new dataslot API
10537
10538         * glib/dbus-gmain.c: ditto
10539
10540         * bus/test.c: ditto
10541
10542         * bus/connection.c: ditto
10543
10544 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10545
10546         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10547         after the gcj checks so that the correct configuration tags
10548         will be added to libtool.
10549
10550         * dbus-glib-1.pc.in: No need to specify any includes since
10551         dbus-1.pc.in has those.
10552
10553 2003-06-22  Havoc Pennington  <hp@pobox.com>
10554
10555         * mono/*, gcj/*, configure.in, Makefile.am:
10556         Check in makefiles and subdirs for mono and gcj bindings.
10557         Neither binding actually exists, just trying to get through
10558         all the build and other boring bits.
10559
10560 2003-06-21  Philip Blundell  <philb@gnu.org>
10561
10562         * tools/dbus-monitor.1: Updated.
10563
10564         * tools/dbus-send.1: Likewise.
10565
10566 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10567
10568         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10569         for hangup and error after checking read so we won't discard
10570         pending data if both hangup and read are set.
10571
10572 2003-06-19  Philip Blundell  <philb@gnu.org>
10573
10574         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10575
10576         * tools/dbus-send.c: Accept both --system and --session.
10577
10578         * tools/dbus-monitor.c: Same here.
10579
10580 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10581
10582         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10583         from C++ (Patch by Miloslav Trmac).
10584
10585 2003-06-15  Joe Shaw  <joe@assbarn.com>
10586
10587         * configure.in: Check for socklen_t.
10588
10589         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10590
10591         * test/test-segfault.c: Add #include <sys/time.h>
10592
10593         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10594         dbus-launch needs it.
10595
10596 2003-06-09  Havoc Pennington  <hp@redhat.com>
10597
10598         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10599         SUN_LEN, it breaks abstract socket usage
10600
10601         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10602         starts of lines.
10603
10604 2003-06-04  Havoc Pennington  <hp@pobox.com>
10605
10606         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10607         using unix:abstract=/foo, and when listening in a tmpdir
10608         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10609
10610         * dbus/dbus-transport.c (_dbus_transport_open): support
10611         unix:abstract=/foo
10612
10613         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10614         support abstract sockets
10615
10616         * dbus/dbus-transport-unix.c
10617         (_dbus_transport_new_for_domain_socket): support abstract sockets
10618
10619         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10620         toggle as an argument, implement abstract namespace support
10621         (_dbus_listen_unix_socket): ditto
10622
10623         * configure.in: add --enable-abstract-sockets and implement
10624         a configure check for autodetection of the right value.
10625
10626 2003-06-01  Havoc Pennington  <hp@pobox.com>
10627
10628         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10629         in /tmp (though on Linux this will end up being useless,
10630         when we add abstract namespace support)
10631
10632         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10633         subst'ing it
10634
10635 2003-05-28  Colin Walters  <walters@verbum.org>
10636
10637         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10638
10639 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10640
10641         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10642
10643 2003-05-17  Colin Walters  <walters@gnu.org>
10644
10645         * tools/dbus-send.c: Don't exit with an error code if --help was
10646         passed.  Default to using the session bus instead of the system
10647         one.
10648
10649         * tools/dbus-launch.c: Ditto.
10650
10651         * tools/dbus-monitor.c: Ditto.
10652
10653         * tools/dbus-send.1: Update with new arguments.
10654
10655         * tools/dbus-launch.c: Emit code to export variables.  New
10656         arguments -s and -c to specify shell syntax, and a bit of code to
10657         autodetect syntax.  Also, allow specifying a program to run.
10658
10659         * tools/dbus-launch.1: Update with new arguments.
10660
10661         * tools/dbus-send.1: Ditto.
10662
10663         * tools/dbus-monitor.1: Ditto.
10664
10665 2003-05-17  Havoc Pennington  <hp@pobox.com>
10666
10667         * bus/config-parser.c (merge_included): merge in policies from
10668         child configuration file.
10669
10670         * bus/policy.c (bus_policy_merge): function to merge two policies
10671         together
10672
10673 2003-05-16  Havoc Pennington  <hp@redhat.com>
10674
10675         * dbus/dbus-connection.c: disable verbose lock spew
10676
10677         * tools/dbus-send.c: add --print-reply command line option
10678
10679         * tools/dbus-print-message.h (print_message): new util function
10680         shared by dbus-send and dbus-monitor
10681
10682         * tools/dbus-monitor.c (handler_func): exit on disconnect
10683
10684         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10685         disconnected, don't try to use the read_watch
10686
10687         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10688         so we can find this bug more easily
10689
10690 2003-05-16  Havoc Pennington  <hp@redhat.com>
10691
10692         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10693         NULL as DBusHashTable is annoyingly likely to do.
10694
10695 2003-05-16  Colin Walters  <walters@verbum.org>
10696
10697         * tools/dbus-monitor.c: Add --session argument and usage()
10698         function.
10699
10700         * tools/dbus-monitor.1: Update with new --session arg.
10701
10702         * bus/Makefile.am (install-data-hook): Create
10703         $(libdir)/dbus-1.0/services so that the session bus is happy.
10704
10705 2003-05-15  Havoc Pennington  <hp@redhat.com>
10706
10707         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10708         on non-x86. ifdef's are evil.
10709
10710 2003-05-15  Havoc Pennington  <hp@redhat.com>
10711
10712         * configure.in: 0.11
10713
10714         * NEWS: update
10715
10716         * bus/Makefile.am (initddir): apparently we are supposed to put
10717         init scripts in /etc/rc.d/init.d not /etc/init.d
10718
10719         * bus/Makefile.am: remove the "you must --enable-tests to make
10720         check" as it broke distcheck
10721
10722         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10723
10724 2003-05-13  James Willcox  <jwillcox@gnome.org>
10725
10726         * configure.in:
10727         * bus/activation.c: (bus_activation_service_created),
10728         (bus_activation_activate_service):
10729         * bus/driver.c: (bus_driver_send_service_deleted),
10730         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10731         (bus_driver_send_service_acquired),
10732         (bus_driver_send_welcome_message),
10733         (bus_driver_handle_list_services):
10734         * bus/session.conf.in:
10735         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10736         (dbus_bus_service_exists), (dbus_bus_activate_service):
10737         * dbus/dbus-bus.h:
10738
10739         Add some convenience API which lets you activate a service, and did a
10740         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10741         and dbus_message_get_args()
10742
10743 2003-05-11  Havoc Pennington  <hp@pobox.com>
10744
10745         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10746         calling _dbus_marshal_validate_arg() for every byte in a byte
10747         array, etc.
10748
10749         * dbus/dbus-message-handler.c: use atomic reference counting to
10750         reduce number of locks slightly; the global lock in here sucks
10751
10752         * dbus/dbus-connection.c
10753         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10754         update_dispatch_status that can be called with lock held; then use
10755         in a couple places to reduce locking/unlocking
10756         (dbus_connection_send): hold the lock over the whole function
10757         instead of acquiring it twice.
10758
10759         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10760
10761         * bus/connection.c (bus_connections_setup_connection): fix access
10762         to already-freed memory.
10763
10764         * dbus/dbus-connection.c: keep a little cache of linked list
10765         nodes, to avoid using the global linked list alloc lock in the
10766         normal send-message case. Instead we just use the connection lock
10767         that we already have to take.
10768
10769         * dbus/dbus-list.c (_dbus_list_find_last): new function
10770
10771         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10772         change to use a struct for the atomic type; fix docs,
10773         they return value before increment, not after increment.
10774
10775         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10776         (_dbus_string_append_8_aligned): new functions to try to
10777         microoptimize this operation.
10778         (reallocate_for_length): break this out of set_length(), to
10779         improve profile info, and also so we can consider inlining the
10780         set_length() part.
10781
10782         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10783         strings with some preallocation, cuts down on our calls to realloc
10784         a fair bit. Though if we can get the "move entire string to empty
10785         string" optimization below to kick in here, it would be better.
10786
10787         * dbus/dbus-string.c (_dbus_string_move): just call
10788         _dbus_string_move_len
10789         (_dbus_string_move_len): add a special case for moving
10790         an entire string into an empty string; we can just
10791         swap the string data instead of doing any reallocs.
10792         (_dbus_string_init_preallocated): new function
10793
10794 2003-05-11  Havoc Pennington  <hp@pobox.com>
10795
10796         Write a "test-profile" that does echo client-server with threads;
10797         profile reveals lock contention, memcpy/realloc of buffers, and
10798         UTF-8 validation as hot spots. 20% of lock contention eliminated
10799         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10800         contention is global mempool locks for GList and DBusList.
10801
10802         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10803         x86 implementation
10804
10805         * dbus/dbus-connection.c (struct DBusConnection): use
10806         dbus_atomic_t for the reference count
10807
10808         * dbus/dbus-message.c (struct DBusMessage): declare
10809         dbus_atomic_t values as volatile
10810
10811         * configure.in: code to detect ability to use atomic integer
10812         operations in assembly, from GLib patch
10813
10814         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10815         time, tired of it being wrong in threads and forked processes
10816
10817         * glib/test-profile.c: a little program to bounce messages back
10818         and forth between threads and eat CPU
10819
10820         * dbus/dbus-connection.c: add debug spew macros for debugging
10821         thread locks; include config.h at top; fix deadlock in
10822         dbus_connection_flush()
10823
10824 2003-05-08  Havoc Pennington  <hp@pobox.com>
10825
10826         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10827         data from getting written, and there wasn't a good reason to
10828         use _exit really.
10829
10830         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10831         dbus_verbose lines in test coverage
10832         (main): add list of functions sorted by # of untested blocks
10833         to the coverage report
10834
10835         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10836
10837         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10838
10839         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10840         extend test coverage
10841
10842         * test/data/auth/cancel.auth-script: test canceling an
10843         authentication
10844
10845         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10846         aren't used. in CVS history if we end up needing them.
10847
10848 2003-05-04  Havoc Pennington  <hp@pobox.com>
10849
10850         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10851         unit test
10852
10853         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10854         function, which assumed length was in # of strings, not bytes
10855
10856         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10857         missing coverage
10858
10859         * dbus/dbus-connection.c
10860         (_dbus_connection_queue_received_message): disable function for
10861         now, we are only using it in test mode
10862
10863         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10864         remove a mistaken FIXME
10865
10866 2003-05-04  Havoc Pennington  <hp@pobox.com>
10867
10868         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10869         unlock mutex on successful return, patch from Anders Gustafsson
10870
10871 2003-05-04  Havoc Pennington  <hp@pobox.com>
10872
10873         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10874         Anders Gustafsson
10875
10876 2003-05-04  Havoc Pennington  <hp@pobox.com>
10877
10878         * tools/dbus-launch.c: implement
10879
10880         * bus/main.c (main), bus/bus.c (bus_context_new):
10881         implement --print-pid and --fork
10882
10883 2003-05-03  Havoc Pennington  <hp@redhat.com>
10884
10885         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10886         the address had no value, and add to test suite. Fix and
10887         regression test from Miloslav Trmac
10888
10889 2003-05-03  Havoc Pennington  <hp@pobox.com>
10890
10891         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10892         watch is invalid when handled
10893
10894         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10895         dbus-launch utility to launch the bus from a shell script.  Didn't
10896         actually implement dbus-launch yet, it's just a placeholder still.
10897
10898 2003-05-03  Havoc Pennington  <hp@pobox.com>
10899
10900         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10901         daemon; also documents daemon config file, so replaces
10902         doc/config-file.txt. Corrected some stuff from config-file.txt in
10903         the process of moving it.
10904
10905 2003-05-03  Havoc Pennington  <hp@pobox.com>
10906
10907         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10908         add some man pages
10909
10910 2003-05-03  Colin Walters  <walters@verbum.org>
10911
10912         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10913         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10914
10915         * Makefile.am: Update to use new .pc versioning scheme.
10916
10917 2003-05-02  Havoc Pennington  <hp@redhat.com>
10918
10919         * bus/system.conf.in: allow send/receive to/from message bus
10920         service
10921
10922 2003-04-30  Havoc Pennington  <hp@redhat.com>
10923
10924         * configure.in: print a note when building with unit tests and
10925         without assertions
10926
10927 2003-04-30  Havoc Pennington  <hp@redhat.com>
10928
10929         * Makefile.am: add a check-local that complains if you didn't
10930         configure with --enable-tests
10931
10932 2003-04-29  Havoc Pennington  <hp@redhat.com>
10933
10934         * glib/dbus-gmain.c: docs cleanups
10935
10936         * dbus/dbus-types.h: add docs on int64 types
10937
10938         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10939         public API docs section
10940
10941 2003-04-29  Havoc Pennington  <hp@redhat.com>
10942
10943         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10944         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10945         parallel install API version, not with the D-BUS package version.
10946
10947         * HACKING: move some of README over here
10948
10949         * README: updates, and document API/ABI policy
10950
10951         * configure.in: reindentation
10952
10953 2003-04-29  Havoc Pennington  <hp@redhat.com>
10954
10955         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10956         to use this library" to be sure people have the right
10957         expectations.
10958
10959 2003-04-28  Havoc Pennington  <hp@redhat.com>
10960
10961         * configure.in: add --enable-docs which by default is auto yes if
10962         doxygen and db2html found, no otherwise; but can be forced on/off
10963
10964         * doc/Makefile.am: conditionalize whether to build docs on
10965         --enable-docs
10966
10967 2003-04-28  Havoc Pennington  <hp@redhat.com>
10968
10969         * configure.in: 0.10
10970
10971         * NEWS: update
10972
10973         * bus/system.conf.in: add <includedir>system.d</includedir>
10974
10975         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10976         username was provided but not uid
10977
10978         * bus/config-parser.c (struct BusConfigParser): keep track of
10979         whether the parser is toplevel or was included; change some
10980         of the error handling if it's included.
10981
10982 2003-04-27  Havoc Pennington  <hp@pobox.com>
10983
10984         Unbreak my code...
10985
10986         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10987         report correct status if we finish processing authentication
10988         inside this function.
10989
10990         * bus/activation.c (try_send_activation_failure): use
10991         bus_transaction_send_error_reply
10992
10993         * bus/connection.c (bus_connection_get_groups): return an error
10994         explaining the problem
10995
10996         * bus/bus.c (bus_context_check_security_policy): implement
10997         restriction here that inactive connections can only send the
10998         hello message. Also, allow bus driver to send anything to
10999         any recipient.
11000
11001         * bus/connection.c (bus_connection_complete): create the
11002         BusClientPolicy here instead of on-demand.
11003         (bus_connection_get_policy): don't return an error
11004
11005         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11006         sender field in message being replied to
11007
11008         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11009         causing it to return FALSE always
11010
11011         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11012         we checked sender rather than destination
11013
11014 2003-04-25  Havoc Pennington  <hp@redhat.com>
11015
11016         test suite is slightly hosed at the moment, will fix soon
11017
11018         * bus/connection.c (bus_connections_expire_incomplete): fix to
11019         properly disable the timeout when required
11020         (bus_connection_set_name): check whether we can remove incomplete
11021         connections timeout after we complete each connection.
11022
11023         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11024         probably still broken.
11025
11026         * bus/services.c (bus_registry_acquire_service): implement max
11027         number of services owned, and honor allow/deny rules on which
11028         services a connection can own.
11029
11030         * bus/connection.c (bus_connection_get_policy): report errors here
11031
11032         * bus/activation.c: implement limit on number of pending
11033         activations
11034
11035 2003-04-25  Havoc Pennington  <hp@redhat.com>
11036
11037         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11038         where we used >= 0 instead of != DBUS_UID_UNSET.
11039
11040 2003-04-25  Havoc Pennington  <hp@redhat.com>
11041
11042         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11043         were toggled without add/remove, fix from Anders Gustafsson
11044
11045 2003-04-24  Havoc Pennington  <hp@redhat.com>
11046
11047         * test/data/valid-config-files/basic.conf: add <limit> tags to
11048         this test
11049
11050         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11051         <limit> tag in configuration file.
11052
11053 2003-04-24  Havoc Pennington  <hp@redhat.com>
11054
11055         * bus/dispatch.c: somehow missed some name_is
11056
11057         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11058         (_dbus_timeout_set_interval): new
11059
11060         * bus/connection.c (bus_connections_setup_connection): record time
11061         when each connection is first set up, and expire them after the
11062         auth timeout passes.
11063
11064 2003-04-24  Havoc Pennington  <hp@redhat.com>
11065
11066         * dbus/dbus-message.c (dbus_message_name_is): rename
11067         (dbus_message_service_is): rename
11068         (dbus_message_sender_is): rename
11069         (dbus_message_get_service): rename
11070
11071 2003-04-24  Havoc Pennington  <hp@redhat.com>
11072
11073         * configure.in: add --enable-checks
11074
11075         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11076
11077         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11078         to use thread locks.
11079         (_dbus_connection_handler_destroyed_locked): move some private
11080         functions into proper docs group
11081
11082         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11083         _dbus_return_val_if_fail
11084
11085         Throughout: use dbus_return_if_fail
11086
11087 2003-04-23  James Willcox  <jwillcox@gnome.org>
11088
11089         * glib/dbus-glib.h:
11090         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11091         (dbus_connection_setup_with_g_main),
11092         (dbus_server_setup_with_g_main):
11093         * glib/test-dbus-glib.c: (main):
11094         * glib/test-thread-client.c: (main):
11095         * glib/test-thread-server.c: (new_connection_callback), (main):
11096         * tools/dbus-monitor.c: (main):
11097
11098         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11099         and dbus_server_setup_with_g_main().
11100
11101 2003-04-20  Havoc Pennington  <hp@pobox.com>
11102
11103         * doc/dbus-specification.sgml: document the restrictions on
11104         message and service names
11105
11106 2003-04-22  Havoc Pennington  <hp@redhat.com>
11107
11108         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11109         support, and do some code cleanups to share more code and
11110         speed up array marshal/demarshal.
11111
11112         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11113
11114         * configure.in: generate dbus-arch-deps.h
11115
11116         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11117         64-bit typecodes
11118
11119 2003-04-22  Havoc Pennington  <hp@redhat.com>
11120
11121         * test/data/valid-messages/opposite-endian.message: fix test
11122         to use proper type for rply field
11123
11124         * test/data/invalid-messages: add tests for below validation
11125
11126         * dbus/dbus-message.c (decode_header_data): validate field types,
11127         and validate that named fields are valid names
11128         (decode_name_field): consider messages in the
11129         org.freedesktop.Local. namespace to be invalid.
11130
11131         * dbus/dbus-string.c (_dbus_string_validate_name): new
11132
11133 2003-04-19  Havoc Pennington  <hp@pobox.com>
11134
11135         * bus/driver.c (bus_driver_handle_hello): check limits and
11136         return an error if they are exceeded.
11137
11138         * bus/connection.c: maintain separate lists of active and inactive
11139         connections, and a count of each. Maintain count of completed
11140         connections per user. Implement code to check connection limits.
11141
11142         * dbus/dbus-list.c (_dbus_list_unlink): export
11143
11144         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11145         number of bytes in the message queue for a connection
11146
11147 2003-04-18  Havoc Pennington  <hp@pobox.com>
11148
11149         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11150
11151         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11152         memleaks
11153
11154         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11155         on realloc be sure to update the pointer in the keyring
11156
11157         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11158         offset to avoid writing to unallocated memory
11159
11160         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11161         try the next mechanism, so we properly handle OOM
11162
11163         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11164         on OOM.
11165         (_dbus_keyring_new): fix OOM bug
11166         (_dbus_keyring_new_homedir): always set error; impose a maximum
11167         number of keys we'll load from the file, mostly to speed up the
11168         test suite and make its OOM checks more useful, but also for
11169         general sanity.
11170
11171         * dbus/dbus-auth.c (process_error_server): reject authentication
11172         if we get an error from the client
11173         (process_cancel): on cancel, send REJECTED, per the spec
11174         (process_error_client): send CANCEL if we get an error from the
11175         server.
11176
11177 2003-04-18  Havoc Pennington  <hp@pobox.com>
11178
11179         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11180         debug spew
11181
11182         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11183         handling problem
11184
11185         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11186         about DBUS_TEST_HOMEDIR once
11187
11188         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11189         the environment
11190
11191         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11192         config file so we test the right thing
11193
11194         Throughout: assorted docs improvements
11195
11196 2003-04-18  Havoc Pennington  <hp@pobox.com>
11197
11198         * glib/dbus-gmain.c: adapt to watch changes
11199
11200         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11201
11202         * dbus/dbus-server.h: remove dbus_server_handle_watch
11203
11204         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11205
11206         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11207         like DBusTimeout, so we don't need dbus_connection_handle_watch
11208         etc.
11209
11210 2003-04-17  Havoc Pennington  <hp@redhat.com>
11211
11212         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11213         database usage so it all goes via the DBusUserDatabase cache.
11214
11215 2003-04-17  Havoc Pennington  <hp@redhat.com>
11216
11217         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11218         there was an OOM watch we skipped, we always return TRUE so we
11219         iterate again to have a look at it again. Fixes test suite hang.
11220         Code rearrangement also lets us lose some memset and only iterate
11221         over callbacks once.
11222
11223         * bus/driver.c (bus_driver_handle_message): sense of test for
11224         reply was backward
11225
11226 2003-04-16  Havoc Pennington  <hp@pobox.com>
11227
11228         * doc/dbus-specification.sgml: make spec say serials are unsigned
11229
11230         * dbus/dbus-message.h: change message serials to unsigned
11231
11232         * dbus/dbus-connection.c: adapt to message serials being unsigned
11233
11234 2003-04-15  Havoc Pennington  <hp@pobox.com>
11235
11236         * bus/bus.c: create and keep around a shared DBusUserDatabase
11237         object.
11238
11239         * bus/connection.c (bus_connection_get_groups): don't cache
11240         groups for user in the connection object, since user database
11241         object now does that.
11242
11243 2003-04-16  Havoc Pennington  <hp@redhat.com>
11244
11245         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11246         list of size counters
11247         (_dbus_message_loader_putback_message_link): put back a popped link
11248
11249         * dbus/dbus-connection.c
11250         (dbus_connection_set_max_live_messages_size): rename
11251         max_received_size
11252         (dbus_connection_get_outgoing_size): get size of outgoing
11253         queue
11254         (_dbus_connection_set_connection_counter): remove this cruft
11255
11256 2003-04-14  Havoc Pennington  <hp@redhat.com>
11257
11258         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11259         caching, but at some point we might want to be able to use a
11260         different database.
11261
11262         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11263         SHA1 conf file to test the sha1 auth mechanism, since the regular
11264         test always uses EXTERNAL when available.
11265
11266         * configure.in,
11267         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11268         add conf file that requires use of sha1 auth
11269
11270 2003-04-13  Havoc Pennington  <hp@pobox.com>
11271
11272         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11273         from Philip Blundell to send messages and monitor them.
11274
11275 2003-04-13  Havoc Pennington  <hp@pobox.com>
11276
11277         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11278         callbacks
11279
11280         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11281         users
11282
11283         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11284         fix to only recover unused bytes if we're already authenticated
11285         (_dbus_transport_get_is_authenticated): fix to still mark us
11286         authenticated if there are unused bytes.
11287
11288         * bus/dispatch.c: implement security policy checking
11289
11290         * bus/connection.c (bus_transaction_send_from_driver): new
11291
11292         * bus/bus.c (bus_context_check_security_policy): new
11293
11294         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11295         now we just set the DBusError and it gets converted to an error
11296         reply.
11297
11298         * bus/connection.c (allow_user_function): enable code using actual
11299         data from the config file
11300
11301         * bus/policy.c (list_allows_user): handle wildcard rules for
11302         user/group connection perms
11303
11304 2003-04-13  Havoc Pennington  <hp@pobox.com>
11305
11306         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11307
11308         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11309
11310         * bus/policy.c (bus_policy_append_mandatory_rule)
11311         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11312         (bus_policy_append_group_rule): new functions
11313
11314 2003-04-12  Havoc Pennington  <hp@pobox.com>
11315
11316         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11317
11318         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11319         the pid/gid/uid, just for paranoia.
11320
11321         * test/break-loader.c (randomly_do_n_things): find a byte
11322         containing a type code, and randomly change it to a different
11323         type code.
11324
11325 2003-04-12  Havoc Pennington  <hp@pobox.com>
11326
11327         * bus/policy.h: change BusPolicy to be the thing from the config
11328         file, and rename old BusPolicy to BusClientPolicy
11329
11330         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11331         match change in how policy works
11332
11333         * dbus/dbus-internals.h: mark assert_not_reached as
11334         __attribute((noreturn))__
11335
11336 2003-04-11  Havoc Pennington  <hp@redhat.com>
11337
11338         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11339         the broadcast service. Use boolean return for ServiceExists.
11340
11341 2003-04-11  Havoc Pennington  <hp@redhat.com>
11342
11343         * configure.in: add another directory to look for qt in.
11344
11345 2003-04-11  Havoc Pennington  <hp@redhat.com>
11346
11347         * AUTHORS: add Colin Walters
11348
11349 2003-04-11  Havoc Pennington  <hp@redhat.com>
11350
11351         * NEWS: update
11352
11353         * configure.in: 0.9
11354
11355 2003-04-11  Havoc Pennington  <hp@redhat.com>
11356
11357         * bus/messagebus.in: remove pid file when stopping the
11358         message bus, since the bus won't have privileges to remove it
11359         itself.
11360
11361 2003-04-11  Havoc Pennington  <hp@redhat.com>
11362
11363         * bus/bus.c (bus_context_new): move credentials change after
11364         creating pidfile
11365
11366 2003-04-11  Havoc Pennington  <hp@pobox.com>
11367
11368         * test/decode-gcov.c: add "below average functions" to the
11369         coverage report, and change how some of the code works.
11370
11371         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11372         not in the coverage stats.
11373
11374         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11375         couple places so running the test suite doesn't result in megaspam.
11376
11377 2003-04-11  Havoc Pennington  <hp@pobox.com>
11378
11379         * bus/dispatch.c (check_existent_service_activation): accept a no
11380         memory error in a place we didn't before
11381
11382         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11383         in case the first one failed," since the test suite is less
11384         broken now.
11385
11386 2003-04-10  Havoc Pennington  <hp@pobox.com>
11387
11388         * bus/dispatch.c (check_segfault_service_activation): add test
11389         for launching an executable that just crashes.
11390
11391         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11392         don't leave a million cores. We'll see how portable this is.
11393
11394 2003-04-10  Havoc Pennington  <hp@pobox.com>
11395
11396         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11397         the possible parent failures before we fork, so that we don't
11398         fail to create a babysitter after creating the child.
11399
11400         * bus/activation.c (bus_activation_activate_service): kill child
11401         if we don't successfully complete the activation.
11402
11403 2003-04-10  Havoc Pennington  <hp@redhat.com>
11404
11405         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11406         the connection if it's disconnected
11407
11408         * bus/activation.c (bus_activation_service_created): use new
11409         transaction features to roll back removal of pending activation if
11410         we don't successfully create the service after all. Don't remove
11411         pending activation if the function fails.
11412
11413         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11414         (_dbus_list_insert_after_link): new code to facilitate
11415         services.c fixes
11416
11417         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11418         new functionality, so we can preallocate the ability to insert
11419         into a hash table.
11420
11421         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11422         allowing us to put custom hooks in a transaction to be used for
11423         cancelling said transaction
11424
11425         * doc/dbus-specification.sgml: add some discussion of secondary
11426         service owners, and disallow zero-length service names
11427
11428         * bus/services.c (bus_registry_acquire_service): new function,
11429         splits out part of bus_driver_handle_acquire_service() and fixes
11430         a bug where we didn't remove the service doing the acquiring
11431         from the secondary queue if we failed to remove the current owner
11432         from the front of the queue.
11433
11434 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11435
11436         * doc/dbus-specification.sgml:
11437         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11438
11439 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11440
11441         * bus/.cvsignore:
11442         * glib/.cvsignore:
11443         * test/.cvsignore:
11444         Added files to cvsignore
11445
11446         * dbus/dbus-message.h:
11447         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11448         Make get_named() take two out argument and return a boolean.
11449         (dbus_message_iter_get_args_valist):
11450         Update usage of get_named().
11451         (dbus_message_iter_append_byte):
11452         Fix typo
11453         (dbus_message_iter_append_named)
11454         Fix typo
11455         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11456         More tests.
11457
11458 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11459
11460         * dbus/dbus-marshal.[ch]:
11461         Add array_type_pos argument to _dbus_marshal_validate_arg.
11462         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11463
11464         * dbus/dbus-message.[ch]:
11465         Multi-dimensional arrays have full type specification in the
11466         outermost array. Iter code re-arranged to handle this.
11467         Added some more iter tests.
11468
11469         * doc/dbus-specification.sgml:
11470         Add me to authors.
11471         Remove old FIXME.
11472         Update new array encoding description.
11473         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11474
11475         * test/data/invalid-messages/array-with-mixed-types.message:
11476         * test/data/valid-messages/array-of-array-of-uint32.message:
11477         Change to the new array format.
11478
11479         * test/data/invalid-messages/too-short-dict.message:
11480         Fix bug in test.
11481
11482         * test/data/valid-messages/recursive-types.message:
11483         Fix up and extend test.
11484
11485 2003-04-10  Havoc Pennington  <hp@pobox.com>
11486
11487         * bus/dispatch.c: lots of fixes
11488
11489         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11490         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11491         that was crack, broke the test service.
11492
11493         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11494         handling to avoid piling up errors if we get a failure on the
11495         first address.
11496
11497         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11498         pid in assertion failures.
11499
11500         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11501         to some fixed size of file descriptor array. Don't return TRUE
11502         anytime a timeout exists, that led to lots of busy loop silliness
11503         in the tests.
11504
11505 2003-04-09  Havoc Pennington  <hp@redhat.com>
11506
11507         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11508         I'd checked this in earlier but hadn't.
11509
11510 2003-04-09  Havoc Pennington  <hp@redhat.com>
11511
11512         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11513         the activation test (man this is getting old!)
11514
11515 2003-04-09  Havoc Pennington  <hp@redhat.com>
11516
11517         * test/test-utils.c: use dispatch status function to fix this up
11518
11519         * bus/connection.c (connection_watch_callback): don't dispatch
11520         from here
11521         (connection_timeout_callback): don't dispatch from here
11522         (bus_connections_setup_connection): set the dispatch status function
11523         (bus_connection_disconnected): unset it
11524
11525         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11526         used to add a connection to be dispatched
11527         (_dbus_loop_iterate): do the dispatching at the end of each
11528         iteration
11529
11530         * dbus/dbus-connection.c
11531         (dbus_connection_set_dispatch_status_function): new function
11532         allowing us to fix up main loop usage
11533         (_dbus_connection_last_unref): free all the various function
11534         user data
11535         (dbus_connection_dispatch): call the DispatchStatusFunction
11536         whenever this function returns
11537         (dbus_connection_handle_watch): call DispatchStatusFunction
11538         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11539         (reply_handler_timeout): call DispatchStatusFunction
11540         (dbus_connection_flush): call DispatchStatusFunction
11541
11542 2003-04-09  Havoc Pennington  <hp@redhat.com>
11543
11544         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11545         a memory leak
11546
11547         * bus/dispatch.c (check_service_activated): fix bug in test
11548
11549         * dbus/dbus-mainloop.c (check_timeout): fix this up
11550
11551         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11552         verbose output so we can sort out output from different processes,
11553         e.g. in the activation case.
11554
11555 2003-04-08  Colin Walters  <walters@gnu.org>
11556
11557         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11558         the pid file.
11559         (bus_context_new): Set it.
11560         (bus_context_unref): Use it to delete the pid file.
11561
11562 2003-04-08  Havoc Pennington  <hp@redhat.com>
11563
11564         * test/data/invalid-messages/array-with-mixed-types.message:
11565         regression test that fails for the moment
11566
11567         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11568         tests for convenience
11569
11570         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11571         array of nil, it broke things.
11572
11573         * test/data/invalid-messages/array-of-nil.message: regression test
11574
11575         * test/data/valid-messages/array-of-array-of-uint32.message:
11576         happened to write this so added it to suite
11577
11578 2003-04-08  Havoc Pennington  <hp@redhat.com>
11579
11580         * bus/driver.c (bus_driver_handle_acquire_service): init
11581         retval/reply before checking name
11582
11583         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11584         recursion depth argument
11585
11586         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11587         in the public struct for future extension
11588
11589         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11590         typo
11591
11592         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11593         message
11594
11595         * doc/dbus-specification.sgml: fix typo
11596
11597 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11598
11599         Implemented recursive types, named types and new-style iters
11600
11601         * bus/driver.c:
11602         * glib/test-thread-client.c: (thread_func):
11603         * glib/test-thread-server.c: (handle_test_message):
11604         * test/test-service.c: (handle_echo):
11605         Update to new api
11606
11607         * dbus/Makefile.am:
11608         * dbus/dbus-dict.c:
11609         * dbus/dbus-dict.h:
11610         * dbus/dbus.h
11611         Remove DBusDict
11612
11613         * dbus/dbus-internals.c: (_dbus_type_to_string):
11614         Update for new types.
11615
11616         * dbus/dbus-marshal.[ch]:
11617         Implement recursive types and the new marshalling format.
11618         Remove hardcoded dict marshalling.
11619         Marshal named types.
11620
11621         * dbus/dbus-message-builder.c:
11622         Add BYTE_ARRAY.
11623         Remove references to old types
11624
11625         * dbus/dbus-message.[ch]:
11626         New non-refcounted iter API that supports recursive iters.
11627         Use iters for appending, including support for recursive
11628         iters.
11629         Add byte and named type support.
11630         Update everything to new marshalling formats.
11631         Add tests for new API.
11632
11633         * dbus/dbus-protocol.h:
11634         Remove old array types.
11635         Add types: BYTE, ARRAY, DICT, NAMED
11636
11637         * dbus/dbus-string.c:
11638         * dbus/dbus-sysdeps.c:
11639         Make parse_double locale safe.
11640
11641         * dbus/dbus-test-main.c:
11642         Call setlocale.
11643
11644         * dbus/dbus-test.c:
11645         Kill dict test
11646
11647         * doc/dbus-specification.sgml:
11648         Update spec
11649
11650         * test/data/incomplete-messages/missing-body.message:
11651         * test/data/invalid-messages/bad-boolean.message:
11652         * test/data/invalid-messages/bad-boolean-array.message:
11653         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11654         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11655         * test/data/invalid-messages/too-short-dict.message:
11656         * test/data/valid-messages/dict-simple.message:
11657         * test/data/valid-messages/dict.message:
11658         * test/data/valid-messages/emptiness.message:
11659         * test/data/valid-messages/lots-of-arguments.message:
11660         * test/data/valid-messages/no-padding.message:
11661         * test/data/valid-messages/recursive-types.message:
11662         Add missing NAME fields
11663         Fix up dicts & arrays
11664
11665         * test/data/invalid-messages/dict-with-nil-value.message:
11666         Removed, this is not invalid anymore.
11667
11668         * test/data/valid-messages/recursive-types.message:
11669         Add new test for deeply recursive types.
11670
11671 2003-04-07  Havoc Pennington  <hp@pobox.com>
11672
11673         * bus/driver.c (bus_driver_handle_acquire_service): return an
11674         error if you try to acquire a service that starts with ':'
11675
11676 2003-04-07  Havoc Pennington  <hp@redhat.com>
11677
11678         * doc/dbus-specification.sgml: require that base service names
11679         start with ':' and that the base service is created/deleted
11680         as first and last things a connection does on the bus
11681
11682         * bus/dispatch.c (check_existent_service_activation): lots more
11683         work on the activation test; it doesn't fully pass yet...
11684
11685         * test/test-service.c (main): fix so we don't memleak the
11686         connection to the message bus
11687         (filter_func): accept a message asking us to exit
11688
11689 2003-04-06  Havoc Pennington  <hp@pobox.com>
11690
11691         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11692         from Colin Walters
11693
11694         * configure.in: fixes to Qt detection from Colin Walters
11695
11696         * doc/Makefile.am: Only remove generated docbook dirs if they
11697         exist, from Colin Walters
11698
11699         * dbus/dbus-bus.c: change how we set well-known connections to
11700         NULL, so that it works if a single connection is stored in
11701         two well-known array slots.
11702
11703         * test/Makefile.am: remove a lot of stuff that isn't immediately
11704         useful, it's in CVS history if we want it.
11705
11706         * test/test-service.c: use dbus-mainloop instead of that
11707         watch.[hc] crack
11708
11709 2003-04-06  Havoc Pennington  <hp@pobox.com>
11710
11711         * dbus/Makefile.am: split lists of sources into stuff that goes in
11712         the library, util functions that go in the lib and are also used
11713         elsewhere, and util functions that are used in tests/daemon but
11714         don't go in the lib.
11715
11716         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11717         here so it can be used in test binaries also
11718
11719 2003-04-06  Havoc Pennington  <hp@pobox.com>
11720
11721         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11722         here in the parent process, so we can return an error if it
11723         fails. Also, move some of the code into the child so the parent
11724         is less hosed if we fail midway through.
11725
11726         * bus/bus.c (bus_context_new): move pidfile detection further up
11727         in the function, before we start overwriting sockets and such.
11728
11729         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11730
11731         * configure.in: add --with-system-pid-file and --with-system-socket
11732
11733 2003-04-06  Colin Walters  <walters@verbum.org>
11734
11735         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11736
11737         * bus/system.conf.in: Declare a pidfile.
11738
11739         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11740         create one (if appropriate).
11741
11742         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11743         (struct BusConfigParser) [pidfile]: New.
11744         (element_type_to_name, merge_included, start_busconfig_child)
11745         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11746         (bus_config_parser_unref): Free it.
11747         (bus_config_parser_get_pidfile): New function.
11748
11749         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11750
11751         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11752
11753         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11754
11755         * dbus/dbus-sysdeps.h: Prototype it.
11756
11757 2003-04-06  Havoc Pennington  <hp@pobox.com>
11758
11759         * bus/bus.c (bus_context_new): print the address in here, rather
11760         than in main(), because we need to do it before forking the daemon
11761
11762         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11763         on the service nonexistent error
11764
11765         * bus/driver.c (bus_driver_handle_acquire_service): set the
11766         sender on the AcquireService reply
11767
11768         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11769         server also listen on a UNIX socket so services can connect to it.
11770
11771 2003-04-06  Havoc Pennington  <hp@pobox.com>
11772
11773         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11774         so it detects deadlocks and also we actually init threads when
11775         debugging.
11776
11777 2003-04-06  Havoc Pennington  <hp@pobox.com>
11778
11779         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11780         save the domain socket name, and unlink it when we disconnect the
11781         server. Means that at least when we exit normally, we won't leave
11782         a bunch of junk in /tmp
11783
11784         * dbus/dbus-transport-unix.c
11785         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11786         memory management). (I was making a real change here but then
11787         didn't)
11788
11789 2003-04-06  Havoc Pennington  <hp@pobox.com>
11790
11791         * bus/bus.c (bus_context_new): fix wrong handling of
11792         server_data_slot_unref() in the error case.
11793
11794         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11795         "(condition) != 0" to _dbus_real_assert so that
11796         "_dbus_assert (pointer)" doesn't cause a warning
11797
11798         * bus/main.c (main): accept --print-address option to print out
11799         the message bus address
11800
11801         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11802
11803         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11804         "tmpdir" option to unix: address on client side
11805
11806         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11807         to unix: address
11808
11809         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11810         we can use to create sockets in the test suite.
11811
11812         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11813         cleanly. To be used for testing.
11814
11815         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11816
11817         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11818
11819         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11820         handle trying to call this when there's no servers active
11821
11822 2003-04-05  Havoc Pennington  <hp@pobox.com>
11823
11824         * NEWS: update
11825
11826         * configure.in: 0.8
11827
11828 2003-04-05  Havoc Pennington  <hp@pobox.com>
11829
11830         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11831         crash on startup. Need to get "try starting the daemon"
11832         in the test suite I guess. ;-)
11833
11834         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11835         tracked the number of open connections; it's better done in
11836         application-specific code as you want it to span all servers etc.
11837
11838 2003-04-05  Havoc Pennington  <hp@pobox.com>
11839
11840         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11841         patch from Colin Walters
11842
11843 2003-04-05  Havoc Pennington  <hp@pobox.com>
11844
11845         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11846         reality; in fact multiple mechanisms are allowed.
11847
11848         * dbus/dbus-internals.c (_dbus_real_assert)
11849         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11850         _dbus_assert_not_reached() into functions, so that they don't show
11851         up in basic block counts for test coverage, and don't use up as
11852         much disk space. Does mean slower execution speed though, so
11853         assumes --disable-asserts is the normal production case.
11854
11855 2003-04-05  Havoc Pennington  <hp@pobox.com>
11856
11857         * test/Makefile.am (dist-hook): also dist *.in files
11858
11859         * NEWS: update
11860
11861         * configure.in: 0.7
11862
11863 2003-04-05  Havoc Pennington  <hp@pobox.com>
11864
11865         * dbus/dbus-string.c: docs warning
11866
11867         * dbus/dbus-spawn.c: missing docs
11868
11869         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11870
11871 2003-04-05  Havoc Pennington  <hp@pobox.com>
11872
11873         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11874         magic from GLib
11875
11876         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11877         to -1 once we've reaped the babysitter
11878         (_dbus_babysitter_handle_watch): do as much work as we can, not
11879         just one go of it
11880
11881         * bus/activation.c: add code using DBusBabysitter so that we
11882         handle it when a service fails to start up properly.
11883         (bus_activation_service_created): don't remove the activation
11884         entries as we go, just let them get removed when we free the pending
11885         activation. Unref reply messages after sending them.
11886
11887 2003-04-05  Havoc Pennington  <hp@pobox.com>
11888
11889         * test/decode-gcov.c (main): print per-directory stats in the report
11890
11891         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11892
11893 2003-04-05  Havoc Pennington  <hp@pobox.com>
11894
11895         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11896
11897         * test/decode-gcov.c: hack up a little program to suck data
11898         out of gcov files. Yes this is sort of silly.
11899
11900         * configure.in: define something in config.h and do an
11901         AM_CONDITIONAL when gcov is enabled
11902
11903 2003-04-04  Havoc Pennington  <hp@redhat.com>
11904
11905         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11906         return a "babysitter" object that is used to monitor the status of
11907         the spawned process and reap it when required.
11908
11909         * test/test-segfault.c, test/test-exit.c,
11910         test/test-sleep-forever.c: binaries that do various lame things,
11911         used in the test suite.
11912
11913         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11914
11915 2003-04-03  Havoc Pennington  <hp@pobox.com>
11916
11917         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11918         in preparation for modifying it, dbus-sysdeps is getting
11919         a bit unmanageable.
11920
11921 2003-04-03  Havoc Pennington  <hp@redhat.com>
11922
11923         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11924         have multiple ones
11925
11926         * bus/*.[hc]: adapt to mainloop change
11927
11928 2003-04-03  Havoc Pennington  <hp@redhat.com>
11929
11930         * bus/activation.c (load_directory): fix up memleaks
11931         (bus_activation_entry_free): free the entry
11932
11933         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11934         we get one from the message bus; fix memleaks.
11935
11936         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11937
11938 2003-04-03  Havoc Pennington  <hp@pobox.com>
11939
11940         * bus/config-parser.c (bus_config_parser_unref): free
11941         list of mechanisms, bug discovered by test suite enhancements
11942         (putting system.conf and session.conf into suite)
11943
11944         * test/Makefile.am, test/test-service.c: add placeholder for a
11945         test service that we'll activate as part of test suite. Doesn't
11946         do anything yet.
11947
11948         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11949         setting NULL value, and use system malloc not dbus_malloc()
11950         when we have unavoidable memleakage.
11951
11952         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11953         didn't work, and support DBUS_BUS_ACTIVATION.
11954
11955         * bus/activation.c (child_setup): pass our well-known bus type to
11956         the child
11957
11958         * bus/config-parser.c: support <type> to specify well-known type
11959
11960         * doc/dbus-specification.sgml: document the env variables to
11961         locate well-known buses and find service activator
11962
11963 2003-04-02  Havoc Pennington  <hp@redhat.com>
11964
11965         * test/Makefile.am (all-local): add a rule to copy tests to
11966         builddir, so we can have generated tests. Use this to remove the
11967         silly hack for testing system.conf and session.conf. Will use this
11968         shortly to generate .service files pointing to test binaries.
11969
11970 2003-04-02  Havoc Pennington  <hp@redhat.com>
11971
11972         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11973         current alloc and needed new length, not max of the doubled
11974         allocation and needed new length. Also, when building tests,
11975         don't do the double-allocation stuff, just realloc every time.
11976
11977 2003-04-02  Havoc Pennington  <hp@redhat.com>
11978
11979         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11980         in error messages
11981         (_dbus_string_get_dirname): new
11982         (_dbus_sysdeps_test): new
11983         (_dbus_directory_open): include dirnames in error messages
11984
11985         * bus/config-parser.c: interpret <include> and <includedir> and
11986         <servicedir> relative to config file location if the given
11987         filename is not absolute.
11988
11989         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11990
11991 2003-04-02  Havoc Pennington  <hp@redhat.com>
11992
11993         * bus/connection.c (bus_transaction_send_error_reply): set sender
11994         service for the error, and unref the reply on success
11995
11996         * bus/activation.c: convert to use BusTransaction so OOM can be
11997         handled correctly
11998         (bus_activation_service_created): set sender of the message
11999
12000 2003-04-01  Havoc Pennington  <hp@redhat.com>
12001
12002         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12003         <includedir> (at least mostly)
12004
12005         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12006         first, then the user ID
12007
12008 2003-04-01  Havoc Pennington  <hp@pobox.com>
12009
12010         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12011         function
12012
12013         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12014
12015         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12016
12017         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12018         socket 0777, and unlink any existing socket.
12019
12020         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12021         the configuration file so specifies; set up auth mechanism
12022         restrictions
12023
12024         * bus/config-parser.c (bus_config_parser_content): add support
12025         for <fork> option and fill in code for <auth>
12026
12027         * bus/system.conf.in: add <fork/> to default configuration,
12028         and limit auth mechanisms to EXTERNAL
12029
12030         * doc/config-file.txt (Elements): add <fork>
12031
12032         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12033         (_dbus_change_identity): new function
12034
12035 2003-03-31  Havoc Pennington  <hp@redhat.com>
12036
12037         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12038         (_dbus_listen_unix_socket): fix off-by-one error in null
12039         termination spotted by Nalin
12040
12041 2003-03-31  Havoc Pennington  <hp@redhat.com>
12042
12043         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12044         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12045         having a real home directory available.
12046
12047 2003-03-31  Havoc Pennington  <hp@redhat.com>
12048
12049         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12050
12051         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12052
12053         * configure.in: add support for specifying a style of init script
12054         to install
12055
12056 2003-03-31  Havoc Pennington  <hp@redhat.com>
12057
12058         Fix some annoying DBusString API and fix all affected code.
12059
12060         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12061         max_length argument
12062         (_dbus_string_get_data): change to return string instead of using
12063         an out param
12064         (_dbus_string_get_const_data): ditto
12065         (_dbus_string_get_data_len): ditto
12066         (_dbus_string_get_const_data_len): ditto
12067
12068 2003-03-31  Havoc Pennington  <hp@redhat.com>
12069
12070         * bus/main.c (main): fix up the command line arguments to be nicer
12071
12072 2003-03-31  Havoc Pennington  <hp@redhat.com>
12073
12074         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12075         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12076         final location that lands in the config file
12077
12078         * bus/config-loader-expat.c (bus_config_load): fix type of
12079         XML_Parser variable
12080
12081         * doc/TODO: remove TODO item for dbus_bus_get()
12082
12083         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12084
12085 2003-03-31  Havoc Pennington  <hp@pobox.com>
12086
12087         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12088         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12089         argument since they are always client side
12090
12091         * dbus/dbus-server.c (dbus_server_get_address): new function
12092
12093         * bus/main.c (main): take the configuration file as an argument.
12094
12095         * test/data/valid-config-files/debug-allow-all.conf: new file to
12096         use with dispatch.c tests for example
12097
12098         * bus/test-main.c (main): require test data dir
12099
12100         * bus/bus.c (bus_context_new): change this to take a
12101         configuration file name as argument
12102
12103         * doc/config-file.txt (Elements): add <servicedir>
12104
12105         * bus/system.conf, bus/session.conf: new files
12106
12107         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12108         well-known socket if none set
12109
12110         * configure.in: create system.conf and session.conf
12111
12112 2003-03-30  Havoc Pennington  <hp@pobox.com>
12113
12114         * bus/config-parser.c: hacking
12115
12116         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12117         to shut down, since it could cause weirdness with the DBusList
12118         lock
12119
12120         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12121         link-oriented stack routines
12122         (alloc_link): free the mempool if the first alloc from it fails
12123
12124         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12125
12126         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12127         from GLib
12128         (_dbus_string_skip_white): new
12129
12130         * doc/config-file.txt (Elements): add <includedir>
12131
12132 2003-03-28  Havoc Pennington  <hp@pobox.com>
12133
12134         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12135         (_dbus_string_copy_data): new functions
12136
12137 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12138
12139         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12140         * dbus/dbus-bus.h:
12141         Add dbus_bus_get.
12142
12143         * dbus/dbus-memory.c:
12144         Fix a doc comment.
12145
12146 2003-03-28  Havoc Pennington  <hp@pobox.com>
12147
12148         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12149         I think it may have just been superstition. Not sure.
12150
12151         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12152         failures that were not being handled.
12153
12154         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12155
12156         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12157         row that will fail on out-of-memory.
12158
12159         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12160         function for testing out-of-memory handling.
12161
12162         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12163         allocation functions, they do map exactly to the expat ones.
12164
12165 2003-03-27  Havoc Pennington  <hp@redhat.com>
12166
12167         * bus/config-loader-libxml.c (bus_config_load): add another error
12168         check
12169
12170 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12171
12172         * doc/TODO:
12173         Add note about automatic service activation.
12174
12175         * doc/dbus-specification.sgml:
12176         Rename the specification and clarify a few things.
12177
12178 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12179
12180         * Doxyfile.in:
12181         * dbus/dbus-address.c:
12182         * dbus/dbus-dict.c:
12183         * dbus/dbus-marshal.c:
12184         * dbus/dbus-server-debug-pipe.c:
12185         * dbus/dbus-transport-unix.c:
12186         Fix documentation warnings.
12187
12188 2003-03-26  Havoc Pennington  <hp@pobox.com>
12189
12190         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12191         after every test so it's quick and easy to see which leaked, and
12192         so we test multiple dbus_shutdown() calls
12193
12194         * configure.in: change configure.in XML stuff to also support
12195         expat
12196
12197         * config-loader-libxml.c: some hacking
12198
12199         * config-loader-expat.c: some hacking
12200
12201         * config-parser.c: some hacking, plus tests
12202
12203 2003-03-25  Havoc Pennington  <hp@redhat.com>
12204
12205         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12206
12207         * configure.in: add --with-xml option to specify XML library,
12208         right now only libxml is supported.
12209
12210         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12211         nonworking code between home and work, still just stubs
12212
12213 2003-03-24  Havoc Pennington  <hp@redhat.com>
12214
12215         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12216         file
12217
12218         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12219         NULL argument for "message" if the error is a well-known one,
12220         fill in a generic message in this case.
12221
12222         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12223         favor of DBusError
12224
12225         * bus/test.c (bus_test_flush_bus): add
12226
12227         * bus/policy.c (bus_policy_test): test code stub
12228
12229 2003-03-24  Havoc Pennington  <hp@pobox.com>
12230
12231         * bus/connection.c (bus_connections_setup_connection): set up
12232         the "can this user connect" function, but it always returns
12233         TRUE until we have a config file parser so we can have a config
12234         file that allows connections.
12235
12236 2003-03-23  Havoc Pennington  <hp@pobox.com>
12237
12238         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12239         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12240         the mutex, so we can check for proper memory management
12241         and OOM handling.
12242
12243         * dbus/dbus-dataslot.c: remove the mutex from
12244         DBusDataSlotAllocator and lock it manually when using it,
12245         to simplify fitting it into the global slots framework.
12246
12247         * dbus/dbus-threads.c (init_static_locks): rework how we're
12248         handling global locks so they are easily shut down.
12249
12250         * bus/policy.c (bus_policy_append_rule): fix
12251
12252         * bus/test-main.c (main): check for memleaks
12253
12254         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12255         test suite check for memleaks
12256
12257         * dbus/dbus-memory.c: add support in test mode for tracking
12258         number of outstanding blocks
12259
12260 2003-03-23  Havoc Pennington  <hp@pobox.com>
12261
12262         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12263         policies code
12264
12265         * dbus/dbus-hash.h: add ULONG hash keys
12266
12267         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12268         (_dbus_get_group_id): new function
12269
12270 2003-03-20  Havoc Pennington  <hp@redhat.com>
12271
12272         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12273         new function
12274         (dbus_connection_get_unix_user): new function
12275
12276 2003-03-20  Havoc Pennington  <hp@pobox.com>
12277
12278         * bus/connection.c (bus_connection_send_oom_error): assert that
12279         message has a sender
12280         (connection_execute_transaction): ditto
12281         (bus_connection_preallocate_oom_error): fix to set the sender, and
12282         set recipient to the destination service, not the bus driver
12283
12284         * bus/policy.c: hacking
12285
12286         * dbus/dbus-message.c (dbus_message_service_is): new function
12287         (dbus_message_sender_is): new
12288
12289 2003-03-19  Havoc Pennington  <hp@redhat.com>
12290
12291         * bus/policy.c: start sketching code for policy restrictions on
12292         what connections can do.
12293
12294 2003-03-18  Havoc Pennington  <hp@redhat.com>
12295
12296         * doc/TODO: some notes on high-level todo items. Little nitpick
12297         stuff is all in @todo, so no need to add it here.
12298
12299         * doc/config-file.txt: some notes on how config file might look
12300
12301 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12302
12303         * configure.in: 0.6
12304
12305         * NEWS: Update.
12306
12307 2003-03-17  Havoc Pennington  <hp@redhat.com>
12308
12309         * dbus/dbus-internals.h: add gcc attributes so that
12310         our printf-style functions warn on bad arguments to
12311         format
12312
12313         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12314         format bug
12315
12316         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12317         printf format bug
12318
12319 2003-03-17  Havoc Pennington  <hp@redhat.com>
12320
12321         * bus/test-main.c (main): make it print something as it runs
12322         so make check doesn't look stuck
12323
12324         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12325         from CVS, now obsolete
12326
12327 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12328
12329         * bus/dispatch.c: (bus_dispatch):
12330         Refetch the service name since it may have been reallocated
12331         when dbus_message_set_sender was called.
12332
12333         * dbus/dbus-sysdeps.c: (_dbus_accept):
12334         Add address and address length variables and use them to stop
12335         valgrind from complaining.
12336
12337 2003-03-17  Havoc Pennington  <hp@pobox.com>
12338
12339         All tests pass, no memleaks, no valgrind complaints.
12340
12341         * bus/test.c: refcount handler_slot
12342
12343         * bus/connection.c (bus_connections_new): refcount
12344         connection_data_slot
12345
12346         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12347         bytes so that auth scripts pass.
12348
12349         * bus/dispatch.c: init message_handler_slot so it gets allocated
12350         properly
12351
12352         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12353
12354         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12355         dealloc server_pipe_hash when no longer used for benefit of
12356         leak checking
12357
12358         * dbus/dbus-auth.c (process_command): memleak fix
12359
12360         * bus/dispatch.c (check_hello_message): memleak fix
12361
12362 2003-03-16  Havoc Pennington  <hp@pobox.com>
12363
12364         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12365
12366 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12367
12368         * bus/activation.c (bus_activation_activate_service): Append
12369         the pending activation entry to the list of pending activations.
12370
12371 2003-03-16  Havoc Pennington  <hp@pobox.com>
12372
12373         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12374         connections
12375
12376         * dbus/dbus-address.c (create_entry): fix OOM handling when
12377         failing to alloc entry->method
12378
12379 2003-03-16  Havoc Pennington  <hp@pobox.com>
12380
12381         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12382         the watch
12383
12384         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12385         add some missing dbus_set_result
12386
12387         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12388         alloc the DBusMessageHandler
12389
12390         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12391         the transport here, since we call this from the finalizer; it
12392         resulted in a double-finalize.
12393
12394         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12395         where we tried to use transport->connection that was NULL,
12396         happened when transport was disconnected early on due to OOM
12397
12398         * bus/*.c: adapt to handle OOM for watches/timeouts
12399
12400         * dbus/dbus-transport-unix.c: port to handle OOM during
12401         watch handling
12402
12403         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12404         reference to unused bytes instead of a copy
12405
12406         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12407         out of memory
12408
12409         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12410         FALSE on OOM
12411
12412         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12413         of memory
12414
12415 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12416
12417         * doc/dbus-specification.sgml:
12418         Document reply message for ActivateService.
12419
12420 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12421
12422         * bus/activation.c: (bus_pending_activation_entry_free),
12423         (bus_pending_activation_free), (bus_activation_new),
12424         (bus_activation_unref), (bus_activation_service_created),
12425         (bus_activation_activate_service):
12426         * bus/activation.h:
12427         * bus/bus.c: (bus_context_new):
12428         * bus/desktop-file.c: (new_section):
12429         * bus/driver.c: (bus_driver_send_service_deleted),
12430         (bus_driver_handle_activate_service):
12431         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12432         * bus/services.h:
12433         * dbus/dbus-connection.c:
12434         (dbus_connection_send_with_reply_and_block):
12435         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12436         * dbus/dbus-protocol.h:
12437         Make activation work better. Now pending activations will be queued
12438         and the daemon won't try to activate services that are already registered.
12439
12440 2003-03-16  Havoc Pennington  <hp@pobox.com>
12441
12442         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12443         connection data
12444
12445         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12446         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12447
12448 2003-03-16  Havoc Pennington  <hp@pobox.com>
12449
12450         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12451         this. always run the test suite before commit...
12452
12453         * bus/*: adapt to DBusConnection API changes
12454
12455         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12456         requires renaming stuff to avoid dbus_connection_dispatch name
12457         conflict.
12458
12459         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12460         function
12461
12462         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12463         separate from _dbus_message_loader_return_buffer()
12464
12465         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12466         this, because it's now always broken to use; the number of
12467         messages in queue vs. the number still buffered by the message
12468         loader is undefined/meaningless. Should use
12469         dbus_connection_get_dispatch_state().
12470         (dbus_connection_dispatch): rename from
12471         dbus_connection_dispatch_message
12472
12473 2003-03-16  Havoc Pennington  <hp@pobox.com>
12474
12475         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12476         implementation
12477
12478 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12479
12480         * dbus/dbus-connection.c:
12481         (dbus_connection_send_with_reply_and_block):
12482         Decrease connection->n_incoming when removing an entry
12483         from the list.
12484         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12485         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12486         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12487         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12488         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12489         (dbus_dict_get_byte_array):
12490         Handle NULL arrays and strings. Also add support for byte arrays.
12491
12492         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12493         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12494         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12495         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12496         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12497         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12498         * dbus/dbus-marshal.h:
12499         Add support for marshalling and demarshalling empty arrays and strings.
12500
12501         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12502         (dbus_message_append_string_array),
12503         (dbus_message_iter_get_boolean),
12504         (dbus_message_iter_get_boolean_array),
12505         (dbus_message_iter_get_int32_array),
12506         (dbus_message_iter_get_uint32_array),
12507         (dbus_message_iter_get_double_array),
12508         (dbus_message_iter_get_byte_array),
12509         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12510         (check_message_handling):
12511         Add support for getting empty arrays and dicts.
12512
12513         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12514         Don't do any validation at all for now, that's better than just checking
12515         for ASCII.
12516
12517         * test/data/valid-messages/emptiness.message:
12518         New test message with lots of empty arrays.
12519
12520 2003-03-16  Havoc Pennington  <hp@pobox.com>
12521
12522         * dbus/dbus-connection.c
12523         (_dbus_connection_queue_received_message_link): new function that
12524         can't fail due to OOM
12525
12526         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12527         new function pops a message together with a list link
12528         containing it.
12529
12530         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12531         message queuing functions to avoid needing to alloc memory
12532
12533 2003-03-16  Havoc Pennington  <hp@pobox.com>
12534
12535         Oops - test code was only testing failure of around 30 of the
12536         mallocs in the test path, but it turns out there are 500+
12537         mallocs. I believe this was due to misguided linking setup such
12538         that there was one copy of dbus_malloc etc. in the daemon and one
12539         in the shared lib, and only daemon mallocs were tested. In any
12540         case, the test case now tests all 500+ mallocs, and doesn't pass
12541         yet, though there are lots of fixes in this patch.
12542
12543         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12544         this so that it doesn't need to allocate memory, since it
12545         has no way of indicating failure due to OOM (and would be
12546         annoying if it did).
12547
12548         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12549
12550         * bus/Makefile.am: rearrange to create two self-contained
12551         libraries, to avoid having libraries with overlapping symbols.
12552         that was resulting in weirdness, e.g. I'm pretty sure there
12553         were two copies of global static variables.
12554
12555         * dbus/dbus-internals.c: move the malloc debug stuff to
12556         dbus-memory.c
12557
12558         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12559         empty.
12560
12561         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12562
12563         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12564         on failure.
12565
12566         * bus/dispatch.c (bus_dispatch_add_connection): free
12567         message_handler_slot when no longer using it, so
12568         memory leak checkers are happy for the test suite.
12569
12570         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12571
12572         * bus/bus.c (new_connection_callback): disconnect in here if
12573         bus_connections_setup_connection fails.
12574
12575         * bus/connection.c (bus_connections_unref): fix to free the
12576         connections
12577         (bus_connections_setup_connection): if this fails, don't
12578         disconnect the connection, just be sure there are no side
12579         effects.
12580
12581         * dbus/dbus-string.c (undo_alignment): unbreak this
12582
12583         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12584         leaking
12585         (_dbus_auth_new): fix the order in which we free strings
12586         on OOM failure
12587
12588         * bus/connection.c (bus_connection_disconnected): fix to
12589         not send ServiceDeleted multiple times in case of memory
12590         allocation failure
12591
12592         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12593         get the base service name
12594         (dbus_bus_register_client): don't return base service name,
12595         instead store it on the DBusConnection and have an accessor
12596         function for it.
12597         (dbus_bus_register_client): rename dbus_bus_register()
12598
12599         * bus/dispatch.c (check_hello_message): verify that other
12600         connections on the bus also got the correct results, not
12601         just the one sending hello
12602
12603 2003-03-15  Havoc Pennington  <hp@pobox.com>
12604
12605         Make it pass the Hello handling test including all OOM codepaths.
12606         Now to do other messages...
12607
12608         * bus/services.c (bus_service_remove_owner): fix crash when
12609         removing owner from an empty list of owners
12610         (bus_registry_ensure): don't leave service in the list of
12611         a connection's owned services if we fail to put the service
12612         in the hash table.
12613
12614         * bus/connection.c (bus_connection_preallocate_oom_error): set
12615         error flag on the OOM error.
12616
12617         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12618         handle _dbus_transport_set_connection failure
12619
12620         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12621         to create watches up front and simply enable/disable them as
12622         needed.
12623         (unix_connection_set): this can now fail on OOM
12624
12625         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12626         of enabling/disabling a watch or timeout.
12627
12628         * bus/loop.c (bus_loop_iterate): don't touch disabled
12629         watches/timeouts
12630
12631         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12632
12633 2003-03-15  Havoc Pennington  <hp@pobox.com>
12634
12635         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12636         write useful test code, after all that futzing around ;-)
12637
12638         Test does not yet pass because we can't handle OOM in
12639         _dbus_transport_messages_pending (basically,
12640         dbus_connection_preallocate_send() does not prealloc the write
12641         watch). To fix this, I think we need to add new stuff to
12642         set_watch_functions, namely a SetEnabled function so we can alloc
12643         the watch earlier, then enable it later.
12644
12645         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12646         dbus-memory.c to the convenience lib
12647
12648         * bus/test.c: rename some static functions to keep them clearly
12649         distinct from stuff in connection.c. Handle client disconnection.
12650
12651 2003-03-14  Havoc Pennington  <hp@pobox.com>
12652
12653         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12654         transport, tests more of the real codepath. Set up clients
12655         with bus_setup_debug_client.
12656
12657         * bus/test.c (bus_setup_debug_client): function to set up debug
12658         "clients" on the main loop
12659
12660         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12661         support
12662
12663         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12664         server type
12665
12666         * dbus/dbus-server-debug.c: support a debug server based on pipes
12667
12668         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12669         (_dbus_close): new function
12670
12671         * configure.in: check for socketpair
12672
12673 2003-03-14  Havoc Pennington  <hp@redhat.com>
12674
12675         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12676         cheesy hack
12677
12678         * dbus/dbus-transport-debug.c: rework this a good bit to be
12679         less complicated. hopefully still works.
12680
12681         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12682         manually
12683
12684         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12685         after running it
12686
12687         * dbus/dbus-message.c (dbus_message_copy): rename from
12688         dbus_message_new_from_message, fix it up to copy
12689         all the message fields, add test case
12690
12691         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12692         not quite passing yet
12693
12694 2003-03-14  Havoc Pennington  <hp@pobox.com>
12695
12696         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12697         until no work remains" in test code. (the large diff here
12698         is just code movement, no actual changes)
12699
12700         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12701         1, no point waiting around for test code.
12702         (_dbus_server_debug_accept_transport): unref the timeout
12703         after adding it (right?)
12704
12705         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12706
12707 2003-03-13  Havoc Pennington  <hp@redhat.com>
12708
12709         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12710         out of memory
12711
12712         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12713         of memory
12714
12715         * dbus/dbus-connection.h: Make AddWatchFunction and
12716         AddTimeoutFunction return a bool so they can fail on out-of-memory
12717
12718         * bus/bus.c (bus_context_new): set up timeout handlers
12719
12720         * bus/connection.c (bus_connections_setup_connection): set up
12721         timeout handlers
12722
12723         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12724         can fail
12725
12726         * bus/bus.c (bus_context_new): adapt to changes
12727
12728         * bus/connection.c: adapt to changes
12729
12730         * test/watch.c: adapt to DBusWatch changes
12731
12732         * bus/dispatch.c (bus_dispatch_test): started adding this but
12733         didn't finish
12734
12735 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12736
12737         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12738
12739 2003-03-13  Havoc Pennington  <hp@pobox.com>
12740
12741         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12742         set up a test framework as for the library
12743
12744 2003-03-12  Havoc Pennington  <hp@pobox.com>
12745
12746         Throughout: purge global variables, introduce BusActivation,
12747         BusConnections, BusRegistry, etc. objects instead.
12748
12749         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12750         message bus object
12751
12752         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12753         going to redo this a bit differently I think
12754
12755 2003-03-12  Havoc Pennington  <hp@redhat.com>
12756
12757         Mega-patch that gets the message bus daemon initially handling
12758         out-of-memory. Work still needed. Also lots of random
12759         moving stuff to DBusError instead of ResultCode.
12760
12761         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12762
12763         * dbus/dbus-connection.c
12764         (dbus_connection_send_with_reply_and_block): use DBusError
12765
12766         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12767         DBusResultCode
12768
12769         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12770         code here, as the only failure possible is OOM.
12771
12772         * bus/connection.c (bus_connection_disconnect):
12773         rename bus_connection_disconnected as it's a notification only
12774
12775         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12776         "name" on get_args failure, should be done by get_args;
12777         don't disconnect client for bad args, just return an error.
12778         (bus_driver_handle_service_exists): ditto
12779
12780         * bus/services.c (bus_services_list): NULL-terminate returned array
12781
12782         * bus/driver.c (bus_driver_send_service_lost)
12783         (bus_driver_send_service_acquired): send messages from driver to a
12784         specific client to the client's unique name, not to the broadcast
12785         service.
12786
12787         * dbus/dbus-message.c (decode_header_data): reject messages that
12788         contain no name field
12789         (_dbus_message_get_client_serial): rename to
12790         dbus_message_get_serial and make public
12791         (_dbus_message_set_serial): rename from set_client_serial
12792         (_dbus_message_set_reply_serial): make public
12793         (_dbus_message_get_reply_serial): make public
12794
12795         * bus/connection.c (bus_connection_foreach): allow stopping
12796         iteration by returning FALSE from foreach function.
12797
12798         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12799         (dbus_connection_free_preallocated_send)
12800         (dbus_connection_preallocate_send): new API for sending a message
12801         without possibility of malloc failure.
12802         (dbus_connection_send_message): rename to just
12803         dbus_connection_send (and same for whole function family)
12804
12805         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12806
12807         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12808
12809         * bus/activation.c: handle/return errors
12810
12811         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12812
12813         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12814         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12815         (_dbus_result_from_errno): move to this file
12816
12817 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12818
12819         * dbus/dbus-marshal.c:
12820         (_dbus_marshal_set_string):
12821         Take a length argument so we can marshal the correct string
12822         length.
12823
12824         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12825         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12826         (_dbus_marshal_test):
12827         * dbus/dbus-marshal.h:
12828         Add support for marshalling and demarshalling dicts.
12829
12830         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12831         Add support for TYPE DICT.
12832
12833         * dbus/dbus-message.c: (set_string_field):
12834         Adjust header padding.
12835
12836         (dbus_message_append_args_valist), (dbus_message_append_dict),
12837         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12838         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12839         (check_message_handling), (check_have_valid_message):
12840         * dbus/dbus-message.h:
12841         Add functions for setting and getting dicts.
12842
12843         * dbus/dbus-protocol.h:
12844         Add DBUS_TYPE_DICT.
12845
12846         * dbus/dbus.h:
12847         Add dbus-dict.h
12848
12849         * doc/dbus-specification.sgml:
12850         Add information about how dicts are marshalled.
12851
12852         * test/data/invalid-messages/dict-with-nil-value.message:
12853         * test/data/invalid-messages/too-short-dict.message:
12854         * test/data/valid-messages/dict-simple.message:
12855         * test/data/valid-messages/dict.message:
12856         Add sample messages containing dicts.
12857
12858 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12859
12860         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12861
12862 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12863
12864         * dbus/Makefile.am:
12865         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12866         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12867         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12868         (dbus_dict_set_double), (dbus_dict_set_string),
12869         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12870         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12871         (dbus_dict_set_string_array), (_dbus_dict_test):
12872         * dbus/dbus-dict.h:
12873         Fix according to comments from Havoc.
12874
12875 2003-03-06  Michael Meeks  <michael@server.home>
12876
12877         * configure.in: if we don't have kde-config, disable have_qt.
12878
12879 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12880
12881         * dbus/Makefile.am:
12882         Add dbus-dict.[ch]
12883
12884         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12885         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12886         (dbus_dict_remove), (dbus_dict_get_value_type),
12887         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12888         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12889         (dbus_dict_put_double), (dbus_dict_put_string),
12890         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12891         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12892         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12893         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12894         (dbus_dict_get_double), (dbus_dict_get_string),
12895         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12896         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12897         (dbus_dict_get_string_array), (_dbus_dict_test):
12898         * dbus/dbus-dict.h:
12899         Add DBusDict implementation
12900
12901         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12902         * dbus/dbus-test.h:
12903         Add _dbus_dict_test
12904
12905 2003-03-04  Havoc Pennington  <hp@pobox.com>
12906
12907         * test/data/auth/*: adapt to changes
12908
12909         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12910         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12911         userid
12912
12913         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12914         more stuff from being in a context name, to make the protocol
12915         simpler to deal with
12916
12917         * dbus/dbus-errors.c (dbus_error_has_name): new function
12918         (dbus_error_is_set): new function
12919
12920         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12921         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12922
12923         * dbus/dbus-connection.c (dbus_connection_flush): also read
12924         messages during a flush operation
12925
12926         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12927
12928 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12929
12930         * configure.in: Check for gethostbyname on Solaris.
12931
12932         * dbus/dbus-transport.c: (_dbus_transport_open):
12933         Remove duplicate "tcp" entry.
12934
12935         * doc/dbus-specification.sgml:
12936         Clarify some things.
12937
12938 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12939
12940         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12941         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12942         (_dbus_keyring_test):
12943         * dbus/dbus-md5.c: (_dbus_md5_compute):
12944         * dbus/dbus-sha.c: (_dbus_sha_compute):
12945         Plug memory leaks.
12946
12947 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12948
12949         * README: Add some things.
12950
12951 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12952
12953         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12954         after case DBUS_TYPE_BOOELAN.
12955
12956 2003-03-02  Havoc Pennington  <hp@pobox.com>
12957
12958         * test/break-loader.c (randomly_set_extreme_ints): add test that
12959         sets really huge and small integers
12960
12961         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12962         that length of boolean array fits in the string, and that
12963         string has room for boolean value in single-bool case.
12964
12965         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12966         optional value to "ALIGN" command which is what to fill the
12967         alignment with.
12968
12969         * test/data/valid-messages/no-padding.message: add regression
12970         test for the message padding problem
12971
12972 2003-03-02  Havoc Pennington  <hp@pobox.com>
12973
12974         * dbus/dbus-message.c (decode_header_data): fix to always init
12975         message_padding, from Benjamin Dauvergne
12976
12977 2003-03-02  Havoc Pennington  <hp@pobox.com>
12978
12979         * configure.in: 0.5
12980
12981         * NEWS: Update.
12982
12983 2003-03-01  Joe Shaw  <joe@assbarn.com>
12984
12985         * configure.in: Check for "struct cmsgcred" and try to access its
12986         members for BSD-like unices.
12987
12988         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12989         _dbus_read_credentials_unix_socket().
12990         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12991         read() for reading the credential byte off the unix socket.  Use
12992         struct cmsgcred on systems that support it.
12993
12994 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12995
12996         * glib/Makefile.am:
12997         * configure.in:
12998         Make gthreads-2.0 dependency optional. Don't build thread test if
12999         its not found.
13000
13001 2003-02-27  Havoc Pennington  <hp@pobox.com>
13002
13003         * dbus/dbus-connection.c
13004         (dbus_connection_send_message_with_reply_and_block): fix doh!
13005         doh! doh! bug that resulted in never removing a reply from the
13006         queue, no wonder we called get_reply_serial so much ;-)
13007
13008         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13009         and client serial instead of demarshaling them every time
13010
13011 2003-02-27  Havoc Pennington  <hp@pobox.com>
13012
13013         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13014         more inlined, using dbus-string-private.h, speeds things up
13015         substantially
13016
13017         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13018         when freeing the string
13019         (_dbus_string_steal_data): fix for align offset
13020         (undo_alignment): new function
13021
13022 2003-02-26  Havoc Pennington  <hp@redhat.com>
13023
13024         All kinds of audit fixes from Owen, plus initial attempt to
13025         handle unaligned memory returned from malloc.
13026
13027         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13028         leave room for align_offset and nul byte
13029         (fixup_alignment): function to track an align_offset and
13030         ensure real->str is aligned
13031         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13032         to allow a nul byte plus align offset
13033         (_dbus_string_lock): fix overflow issue
13034         (_dbus_string_init_const_len): add assertions on sanity of len,
13035         assign allocated to be ALLOCATION_PADDING larger than len
13036         (set_length): fixup the overflow handling
13037         (_dbus_string_get_data_len): fix overflow in assertion
13038         (open_gap): detect overflow in size of gap to be opened
13039         (_dbus_string_lengthen): add overflow check
13040         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13041         (_dbus_string_append): add overflow check
13042         (_dbus_string_append_unichar): overflow
13043         (_dbus_string_delete): fix overflow in assertion
13044         (_dbus_string_copy_len): overflow in assertion
13045         (_dbus_string_replace_len): overflows in assertions
13046         (_dbus_string_find): change to implement in terms of
13047         _dbus_string_find_to
13048         (_dbus_string_find_to): assorted fixage
13049         (_dbus_string_equal_c_str): assert c_str != NULL,
13050         fix logic so the function works
13051         (_dbus_string_ends_with_c_str): fix overflow thingy
13052         (_dbus_string_base64_encode): overflow fix
13053         (_dbus_string_validate_ascii): overflow
13054         (_dbus_string_validate_nul): overflow
13055
13056 2003-02-26  Havoc Pennington  <hp@redhat.com>
13057
13058         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13059
13060 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13061
13062         * configure.in:
13063         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13064
13065         * dbus/dbus-connection.c:
13066         * dbus/dbus-connection.h:
13067         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13068         Add dbus_connection_set_wakeup_main_function and use it when queueing
13069         incoming and outgoing messages.
13070
13071
13072         * dbus/dbus-dataslot.c:
13073         Threadsafe usage of DBusDataSlotAllocator
13074
13075         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13076         dbus_new can fail.
13077
13078         * dbus/dbus-server-unix.c:
13079         Add todo comment
13080
13081         * glib/dbus-gmain.c:
13082         Implement the new wakeup functions for glib.
13083
13084         * glib/Makefile.am:
13085         * glib/test-thread-client.c:
13086         * glib/test-thread-server.c:
13087         * glib/test-thread.h:
13088         Initial cut at some thread test code. Not really done yet.
13089
13090 2003-02-26  Havoc Pennington  <hp@pobox.com>
13091
13092         * dbus/dbus-connection.c
13093         (dbus_connection_send_message_with_reply_and_block): fix crash
13094         where we ref'd the outgoing message instead of the returned reply
13095
13096         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13097         at the end of this function, so if we didn't need to read for
13098         authentication, we reinstall it for receiving messages
13099
13100         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13101         a NULL sender for peer-to-peer case
13102
13103         * dbus/dbus-transport-unix.c (check_read_watch): handle
13104         !authenticated case correctly
13105
13106         * glib/dbus-gmain.c: add support for DBusServer
13107
13108         * dbus/dbus-server.c: add data slot support
13109
13110         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13111         return values and handle errors
13112
13113         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13114         DBusConnection
13115
13116         * Doxyfile.in (INPUT): add glib subdir
13117
13118         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13119         setup_with_g_main instead of hookup_with_g_main; write docs
13120
13121 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13122
13123         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13124         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13125         * dbus/dbus-message.c: (dbus_message_append_boolean),
13126         (dbus_message_append_boolean_array),
13127         (dbus_message_get_args_valist), (_dbus_message_test):
13128         * dbus/dbus-message.h:
13129         * doc/dbus-specification.sgml:
13130         Various fixes as pointed out by Havoc.
13131
13132         * test/data/invalid-messages/bad-boolean-array.message:
13133         * test/data/invalid-messages/bad-boolean.message:
13134         Add invalid boolean value test cases.
13135
13136 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13137
13138         * dbus/dbus-internals.c: (_dbus_type_to_string):
13139         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13140         (_dbus_marshal_validate_arg):
13141         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13142         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13143         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13144         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13145         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13146         (dbus_message_iter_get_double),
13147         (dbus_message_iter_get_boolean_array), (message_iter_test):
13148         * dbus/dbus-message.h:
13149         * dbus/dbus-protocol.h:
13150         * doc/dbus-specification.sgml:
13151         * test/data/valid-messages/lots-of-arguments.message:
13152         Add support for boolean and boolean array types.
13153
13154 2003-02-23  Havoc Pennington  <hp@pobox.com>
13155
13156         * dbus/dbus-keyring.c: finish most of this implementation and
13157         simple unit test
13158
13159         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13160         these barf if the error isn't cleared to NULL
13161
13162         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13163         (_dbus_create_directory): new function
13164
13165         * dbus/dbus-errors.c (dbus_set_error): fix warning
13166
13167         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13168         (_dbus_string_hex_decode): new function
13169         (test_hex_roundtrip): test code
13170
13171         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13172
13173         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13174
13175         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13176         the save-to-temp/rename trick to atomically write the new file
13177         (_dbus_string_parse_uint): new function
13178
13179 2003-02-22  Havoc Pennington  <hp@pobox.com>
13180
13181         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13182
13183 2003-02-22  Havoc Pennington  <hp@pobox.com>
13184
13185         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13186         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13187
13188         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13189
13190         * dbus/test/data/sha-1: add US government test suite for SHA-1
13191
13192 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13193
13194         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13195         Make string arrays NULL-terminated.
13196
13197         * dbus/dbus-memory.c: (dbus_free_string_array):
13198         * dbus/dbus-memory.h:
13199         New function for freeing NULL-terminated string arrays.
13200
13201         * dbus/dbus-message-builder.c: (append_quoted_string),
13202         (_dbus_message_data_load):
13203         Add support for array types.
13204
13205         * dbus/dbus-message.c: (check_message_handling):
13206         Add more types as test cases.
13207
13208         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13209         (_dbus_string_parse_double):
13210         Add the start offset to the end offset.
13211
13212         * test/data/valid-messages/lots-of-arguments.message:
13213         New test message with lots of arguments.
13214
13215 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13216
13217         * dbus/dbus-message.c: (dbus_message_append_nil),
13218         (dbus_message_append_int32), (dbus_message_append_uint32),
13219         (dbus_message_append_double), (dbus_message_append_string),
13220         (dbus_message_append_int32_array),
13221         (dbus_message_append_uint32_array),
13222         (dbus_message_append_double_array),
13223         (dbus_message_append_byte_array),
13224         (dbus_message_append_string_array):
13225         Fix all out-of-memory handling in these functions.
13226
13227 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13228
13229         * dbus/dbus-message.c: (dbus_message_append_nil):
13230         Fix a silly.
13231
13232 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13233
13234         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13235         (dbus_message_append_nil), (dbus_message_append_int32_array),
13236         (dbus_message_append_uint32_array),
13237         (dbus_message_append_double_array),
13238         (dbus_message_append_byte_array),
13239         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13240         (dbus_message_iter_get_int32_array),
13241         (dbus_message_iter_get_uint32_array),
13242         (dbus_message_iter_get_double_array),
13243         (dbus_message_iter_get_byte_array),
13244         (dbus_message_iter_get_string_array):
13245
13246         * dbus/dbus-message.h:
13247         Add functions for appending and getting arrays.
13248
13249 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13250
13251         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13252         element size at least 8 bytes, fixes mempool tests on
13253         64-bit machines.
13254
13255 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13256
13257         * dbus/dbus-transport-unix.c (unix_do_iteration):
13258         Unlock the connection mutex during a blocking select call.
13259         Add todo about how we need a way to wake up the select.
13260
13261         * dbus/dbus-connection-internal.h:
13262         * dbus/dbus-connection.c:
13263         Add _dbus_connection_lock and _dbus_connection_unlock.
13264
13265 2003-02-19  Havoc Pennington  <hp@pobox.com>
13266
13267         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13268         Doxyfile.in, not Doxyfile
13269
13270         * dbus/dbus-keyring.c: do some hacking on this
13271
13272         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13273
13274         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13275         dbus_error_init
13276         (dbus_set_error): remove dbus_error_init, check for message ==
13277         NULL *before* we sprintf into it, and add @todo about including
13278         system headers in this file
13279
13280         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13281
13282         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13283
13284         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13285         get various bits of user information based on either username
13286         or user ID
13287         (_dbus_homedir_from_username): new function
13288
13289 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13290
13291         * configure.in:
13292         Add check for nonposix getpwnam_r
13293
13294         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13295         Align the pool element size to a sizeof (void *) boundary.
13296
13297         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13298         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13299         General Solaris fixes.
13300
13301         * test/data/valid-messages/simplest-manual.message:
13302         Explicitly state that we want little-endian packing.
13303
13304 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13305
13306         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13307
13308         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13309         Added to create a transport connecting using a tcp/ip socket.
13310
13311         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13312         to a tcp socket at given host and port.
13313         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13314         hostname and port.
13315
13316         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13317
13318         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13319         Added to create a server listening on a TCP/IP socket.
13320
13321 2003-02-19  Havoc Pennington  <hp@pobox.com>
13322
13323         Throughout: mop up all the Doxygen warnings and undocumented
13324         stuff.
13325
13326         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13327         to search any paths.
13328
13329         * dbus/dbus-threads.c: move global mutex initializers to
13330         dbus-internals.h, multiple prototypes was confusing doxygen
13331         besides being kind of ugly
13332
13333         * Doxyfile (PREDEFINED): have Doxygen define
13334         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13335         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13336         (do not abuse the feature! it's for stuff like the autogenerated
13337         macros in dbus-md5.c, not just for things you don't feel like
13338         documenting...)
13339
13340 2003-02-18  Havoc Pennington  <hp@pobox.com>
13341
13342         * dbus/dbus-string.c (_dbus_string_zero): new function
13343
13344         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13345         wrap it in some dbus-friendly API
13346
13347         * dbus/dbus-types.h: add 16-bit types
13348
13349 2003-02-18  Joe Shaw  <joe@assbarn.com>
13350
13351         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13352         credentials from our currently running process.
13353         (get_word): Fix a buglet where we were copying the entire length
13354         instead of relative to our position.
13355
13356         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13357         keys on the stack... it's 640k of data.
13358
13359         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13360         read the credentials byte off the socket, even if we don't have
13361         SO_PEERCRED.
13362         (_dbus_poll): Implement poll() using select() for systems which
13363         don't have it.
13364
13365         * glib/test-dbus-glib.c (main): Print out an error if no
13366         parameters are given.
13367
13368         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13369         can fallback to a secondary auth mechanism if the first fails.
13370
13371 2003-02-18  Havoc Pennington  <hp@pobox.com>
13372
13373         * AUTHORS: add Alex
13374
13375 2003-02-17  Havoc Pennington  <hp@pobox.com>
13376
13377         * doc/dbus-specification.sgml: lots of cosmetic
13378         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13379         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13380         s/server/bus/ (except in authentication section). Add a section
13381         "Message Bus Message Routing"
13382
13383 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13384
13385         Release 0.4
13386
13387         * NEWS: Update
13388
13389 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13390
13391         * doc/dbus-specification.sgml:
13392         Specification updates.
13393
13394 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13395
13396         * bus/activation.c: (bus_activation_init), (child_setup),
13397         (bus_activation_activate_service):
13398         * bus/activation.h:
13399         * bus/main.c: (main):
13400         Set DBUS_ADDRESS environment variable.
13401
13402         * dbus/dbus-errors.c: (dbus_set_error):
13403         Don't use va_copy since that's a C99 feature.
13404
13405         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13406         (_dbus_spawn_async):
13407         * dbus/dbus-sysdeps.h:
13408         Add child_setup_func to _dbus_spawn_async.
13409
13410         * doc/dbus-specification.sgml:
13411         Update specification.
13412
13413         * test/spawn-test.c: (setup_func), (main):
13414         Fix test.
13415
13416 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13417
13418         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13419         Added todo.
13420
13421 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13422
13423         * doc/.cvsignore:
13424         * doc/Makefile.am:
13425         * doc/dbus-test-plan.sgml:
13426         Add test plan document.
13427
13428         * test/Makefile.am:
13429         Fix distcheck.
13430
13431 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13432
13433         * dbus/dbus-message.c: (decode_header_data),
13434         (_dbus_message_loader_return_buffer):
13435         Set the header padding amount when loading a message.
13436
13437 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * bus/dispatch.c: (send_one_message):
13440         Only send broadcast messages to registered connections.
13441
13442         * dbus/dbus-message.c: (dbus_message_name_is):
13443         * dbus/dbus-message.h:
13444         New convenience function.
13445
13446         * dbus/dbus-transport-debug.c: (do_reading):
13447         Only dispatch one message per run.
13448
13449         * test/Makefile.am:
13450         * test/bus-test.c: (new_connection_callback), (die),
13451         (test_hello_client1_handler), (test_hello_client2_handler),
13452         (test_hello_replies), (main):
13453
13454         * test/bus-test-loop.[ch]:
13455         Add these.
13456
13457 2003-02-16  Havoc Pennington  <hp@pobox.com>
13458
13459         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13460         backward conditional
13461
13462 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13463
13464         * dbus/dbus-connection.c:
13465         Implement sent_message_with_reply. (with_reply_and block is still
13466         busted).
13467         Made dispatch_message not lose message if OOM.
13468
13469         * dbus/dbus-errors.h:
13470         Add NoReply error (for reply timeouts).
13471
13472 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13473
13474         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13475         Actually free keys and values when destroying hashtable.
13476
13477 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13478
13479         * dbus/dbus-auth.c: (client_try_next_mechanism):
13480         Plug a leak.
13481
13482         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13483         Return TRUE if there's no thread implementation around.
13484
13485         * glib/dbus-gmain.c: (free_source),
13486         (dbus_connection_hookup_with_g_main):
13487         Make sure to remove the GSource when the connection is finalized.
13488
13489 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13490
13491         * bus/dispatch.c: (bus_dispatch_message_handler):
13492         * dbus/dbus-errors.h:
13493         Return an error if someone tries to send a message to a service
13494         that doesn't exist.
13495
13496 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13497
13498         * bus/activation.c: (load_directory), (bus_activation_init),
13499         (bus_activation_activate_service):
13500         * bus/activation.h:
13501         * bus/driver.c:
13502         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13503         More work on the activation handling.
13504
13505         * dbus/dbus-errors.h:
13506         Add some error messages
13507
13508         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13509         * dbus/dbus-message.h:
13510         New function that creates an error message.
13511
13512         * dbus/dbus-protocol.h:
13513         Add ACTIVATE_SERVER message.
13514
13515         * dbus/dbus-server-unix.c: (unix_handle_watch),
13516         (_dbus_server_new_for_domain_socket):
13517         Call _dbus_fd_set_close_on_exec.
13518
13519         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13520         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13521         (_dbus_fd_set_close_on_exec):
13522         * dbus/dbus-sysdeps.h:
13523         Add _dbus_fd_set_close_on exec function. Also add function that checks
13524         that all open fds are set to close-on-exec and warns otherwise.
13525
13526         * dbus/dbus-transport-unix.c:
13527         (_dbus_transport_new_for_domain_socket):
13528         Call _dbus_fd_set_close_on_exec.
13529
13530 2003-02-16  Havoc Pennington  <hp@pobox.com>
13531
13532         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13533         allow people to avoid setting SIGPIPE to SIG_IGN
13534         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13535         we've been asked not to
13536
13537 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13538
13539         * dbus/dbus-list.c: (_dbus_list_append_link),
13540         (_dbus_list_prepend_link):
13541         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13542         (dbus_realloc):
13543         Warning fixes.
13544
13545 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13546
13547         * bus/Makefile.am:
13548         * bus/activation.c: (bus_activation_entry_free),
13549         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13550         * bus/activation.h:
13551         * bus/main.c: (main):
13552         Add simple activation support, doesn't work yet though.
13553
13554 2003-02-15   Zack Rusin  <zack@kde.org>
13555
13556         * qt/dbus-qthread.cpp:  small casting fix
13557
13558 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13559
13560         * dbus/dbus-errors.c: (dbus_set_error):
13561         * dbus/dbus-errors.h:
13562         Add a few errors and make dbus_set_error void.
13563
13564         * dbus/dbus-sysdeps.c:
13565         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13566         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13567         * dbus/dbus-sysdeps.h:
13568         Add _dbus_spawn_async.
13569
13570         * test/spawn-test.c: (main):
13571         Test for _dbus_spawn_async.
13572
13573 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13574
13575         * dbus/dbus-internals.h:
13576         Fix build without tests.
13577
13578         * dbus/dbus-list.c: (alloc_link):
13579         Fix a segfault when a malloc fails.
13580
13581         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13582         (dbus_malloc0), (dbus_realloc):
13583         Add support for malloc debugging.
13584
13585 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13586
13587         * dbus/dbus-threads.c:
13588         * dbus/dbus-threads.h:
13589         Add condvars. Remove static mutext from API.
13590         Implement static mutexes by initializing them from threads_init.
13591
13592         * glib/dbus-gthread.c:
13593         * qt/dbus-qthread.cpp:
13594         Update with the thread api changes.
13595
13596
13597         * dbus/dbus-list.c:
13598         * dbus/dbus-list.h:
13599         Turn StaticMutex into normal mutex + init function.
13600         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13601         _dbus_list_append_link, _dbus_list_prepend_link
13602
13603
13604         * dbus/dbus-sysdeps.c:
13605         * dbus/dbus-sysdeps.h:
13606         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13607         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13608
13609         * dbus/dbus-protocol.h:
13610         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13611
13612         * dbus/dbus-message.c:
13613         Make ref/unref atomic.
13614         Fix some docs.
13615
13616         * dbus/dbus-connection-internal.h:
13617         * dbus/dbus-connection.c:
13618         * dbus/dbus-connection.h:
13619         Make threadsafe.
13620         Change _peek to _borrow,_return & _steal_borrowed.
13621         Change disconnect callback to event.
13622         Make dbus_connection_dispatch_messages reentrant.
13623
13624         * dbus/dbus-transport.c:
13625         Don't ref the connection on calls to the transport
13626         implementation.
13627
13628         * dbus/dbus-message-handler.c:
13629         Make threadsafe.
13630
13631         * glib/dbus-gmain.c:
13632         Don't use peek_message anymore
13633
13634         * test/Makefile.am:
13635         * test/debug-thread.c:
13636         * test/debug-thread.h:
13637         Simple thread implementation that asserts() on deadlocks in
13638         single-threaded code.
13639
13640         * test/bus-test.c:
13641         (main) Call debug_threads_init.
13642
13643         * test/watch.c:
13644         Use disconnect message instead of disconnect callback.
13645
13646         * bus/connection.c:
13647         * bus/connection.h:
13648         Don't call dbus_connection_set_disconnect_function. Instead export
13649         bus_connection_disconnect.
13650
13651         * bus/dispatch.c:
13652         Call bus_connection_disconnect when we get a disconnected message.
13653
13654 2003-02-15  Havoc Pennington  <hp@pobox.com>
13655
13656         * dbus/dbus-message.c (dbus_message_new): fool around with the
13657         docs
13658
13659 2003-02-14  Havoc Pennington  <hp@pobox.com>
13660
13661         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13662
13663         * dbus/dbus-memory.c: fail if the debug functions indicate we
13664         should
13665
13666         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13667         (_dbus_decrement_fail_alloc_counter): debug functions to
13668         simulate memory allocation failures
13669
13670 2003-02-14  Havoc Pennington  <hp@pobox.com>
13671
13672         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13673         to DBusError
13674
13675 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13676
13677         * bus/driver.c: (bus_driver_handle_hello):
13678         * bus/driver.h:
13679         * bus/services.c: (bus_service_lookup):
13680         Reorder message sending so we get a more sane order.
13681
13682         * test/bus-test.c: (message_handler):
13683         Fix tyop.
13684
13685 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13686
13687         * bus/driver.c: (bus_driver_send_service_deleted),
13688         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13689         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13690         (bus_driver_send_welcome_message),
13691         (bus_driver_handle_list_services),
13692         (bus_driver_handle_acquire_service),
13693         (bus_driver_handle_service_exists):
13694         * dbus/dbus-bus.c: (dbus_bus_register_client),
13695         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13696         * dbus/dbus-errors.c: (dbus_result_to_string):
13697         * dbus/dbus-errors.h:
13698         * dbus/dbus-message.c: (dbus_message_append_args),
13699         (dbus_message_append_args_valist), (dbus_message_get_args),
13700         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13701         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13702         (dbus_message_iter_get_byte_array),
13703         (dbus_message_iter_get_string_array), (message_iter_test),
13704         (check_message_handling), (_dbus_message_test):
13705         * dbus/dbus-message.h:
13706         * test/bus-test.c: (main):
13707         Change fields to arguments in messages, so that they won't be
13708         confused with header fields.
13709
13710         * glib/test-dbus-glib.c: (main):
13711         Remove append_fields from hello message.
13712
13713 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13714
13715         * dbus/dbus-errors.c:
13716         * dbus/dbus-message.c:
13717         * dbus/dbus-string.c:
13718         Documentation fixes.
13719
13720 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13721
13722         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13723         (remove_timeout):
13724         Implement support for timeouts in dbus-glib.
13725
13726 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13727
13728         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13729         * dbus/dbus-message.c: (process_test_subdir):
13730         * test/break-loader.c: (find_breaks_based_on):
13731         Plug some memory leaks.
13732
13733 2003-02-13  Richard Hult  <rhult@codefactory.se>
13734
13735         * bus/main.c: Fix build.
13736
13737         * dbus/dbus-errors.h:
13738         * dbus/dbus-errors.c: Fix copyright for Anders.
13739
13740 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13741
13742         * bus/Makefile.am:
13743         Add utils.[ch]
13744
13745         * bus/connection.c: (bus_connection_foreach):
13746         Fix a warning.
13747
13748         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13749         (unescape_string), (new_section), (parse_section_start),
13750         (parse_key_value), (report_error), (bus_desktop_file_load),
13751         (bus_desktop_file_get_string):
13752         * bus/desktop-file.h:
13753         Use DBusError for error reporting.
13754
13755         * bus/dispatch.c: (send_one_message),
13756         (bus_dispatch_message_handler):
13757         * bus/driver.c: (bus_driver_send_service_deleted),
13758         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13759         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13760         (bus_driver_send_welcome_message),
13761         (bus_driver_handle_list_services),
13762         (bus_driver_handle_acquire_service),
13763         (bus_driver_handle_service_exists):
13764         * bus/loop.c: (bus_loop_run):
13765         * bus/main.c:
13766         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13767
13768         * bus/utils.c: (bus_wait_for_memory):
13769         * bus/utils.h:
13770         New files with general utility functions.
13771
13772         * dbus/dbus-internals.h:
13773         Remove _DBUS_HANDLE_OOM.
13774
13775 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13776
13777         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13778         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13779         * dbus/dbus-errors.h:
13780         Add DBusError structure.
13781
13782 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13783
13784         * test/data/valid-messages/standard-acquire-service.message:
13785         * test/data/valid-messages/standard-hello.message:
13786         * test/data/valid-messages/standard-list-services.message:
13787         * test/data/valid-messages/standard-service-exists.message:
13788         Add some standard messages.
13789
13790 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13791
13792         * bus/driver.c: (bus_driver_send_welcome_message),
13793         (bus_driver_handle_list_services),
13794         (bus_driver_handle_acquire_service),
13795         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13796         Update for API changes in libdbus.
13797
13798         * dbus/dbus-message.c: (dbus_message_new_reply):
13799         * dbus/dbus-message.h:
13800         Remove the name argument. The spec states that replies shouldn't
13801         have a name.
13802
13803 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13804
13805         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13806         (report_error), (bus_desktop_file_load), (lookup_section),
13807         (lookup_line), (bus_desktop_file_get_raw),
13808         (bus_desktop_file_get_string):
13809         * bus/desktop-file.h:
13810         Some fixes, and new functions for getting a key value from a section.
13811
13812 2003-02-13  Havoc Pennington  <hp@pobox.com>
13813
13814         * test/data/auth/fail-after-n-attempts.auth-script: new test
13815
13816         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13817         reject the client.
13818
13819 2003-02-13  Havoc Pennington  <hp@pobox.com>
13820
13821         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13822         dbus_credentials_match were backward
13823
13824         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13825         NO_CREDENTIALS and ROOT_CREDENTIALS
13826
13827         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13828         into here. Never process more commands after we've reached an
13829         end state; store further data as unused bytes.
13830
13831         * test/data/auth/*: add more auth tests
13832
13833         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13834         command to match exact string and EXPECT_UNUSED to match unused
13835         bytes
13836
13837         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13838
13839 2003-02-12  Havoc Pennington  <hp@pobox.com>
13840
13841         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13842         \r off of popped lines
13843
13844         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13845         scripts
13846
13847         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13848         SEND, append \r\n
13849
13850 2003-02-12  Havoc Pennington  <hp@pobox.com>
13851
13852         * dbus/Makefile.am: remove break-loader from the build, since it
13853         moved.
13854
13855         * configure.in: add --enable-gcov to turn on coverage profiling
13856         flags and disable optimization
13857
13858 2003-02-10  Havoc Pennington  <hp@pobox.com>
13859
13860         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13861         initial cut at test framework for DBusAuth from laptop.
13862         Doesn't quite work yet but it compiles and I need to get
13863         it off the 266mhz laptop. ;-)
13864
13865         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13866         fix a memleak in error case
13867
13868 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13869
13870         * bus/Makefile.am:
13871         * bus/desktop-file.c:
13872         * bus/desktop-file.h:
13873         Add a desktop file parser.
13874
13875 2003-02-11  Zack Rusin  <zack@kde.org>
13876
13877         * qt/message.[h|cpp]: sample implementation
13878         of the KDE wrapper for DBusMessage
13879
13880 2003-02-09  Zack Rusin  <zack@kde.org>
13881
13882         * test/bus-test.c: make_it_compile
13883         * doc/dbus-specification.sgml: minimal semantic fix
13884
13885 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13886
13887         Release 0.3
13888
13889         * NEWS: Update
13890
13891 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13892
13893         * dbus/Makefile.am:
13894         * dbus/dbus-break-loader.c:
13895         * test/Makefile.am:
13896         * test/break-loader.c:
13897         Move dbus-break-loader to test/ and rename it to break-loader.
13898
13899 2003-02-02  Havoc Pennington  <hp@pobox.com>
13900
13901         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13902         for code to manage cookies in your home directory
13903
13904         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13905
13906         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13907         to authenticate, then disconnect the client.
13908
13909 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13910
13911         * dbus/dbus-message.c (dbus_message_append_fields):
13912         Correct docs.
13913
13914 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13915
13916         * doc/dbus-specification.sgml:
13917         Update address format section.
13918
13919 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13920
13921         * test/Makefile.am:
13922         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13923         (message_handler), (new_connection_callback), (loop_quit),
13924         (loop_run), (main):
13925         Add bus test.
13926
13927 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13928
13929         * bus/driver.c: (bus_driver_handle_service_exists):
13930         Simplify the code a bit.
13931
13932         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13933         Fix a silly.
13934
13935 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13936
13937         * bus/Makefile.am:
13938         Add libdbus-daemon.la and link to it.
13939
13940 2003-02-01  James Willcox  <jwillcox@gnome.org>
13941
13942         * bus/driver.c: (bus_driver_handle_own_service):
13943         Actually include the service reply code in the message.
13944
13945 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13946
13947         * bus/driver.c: (bus_driver_handle_service_exists):
13948         Don't unref the incoming message.
13949
13950 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13951
13952         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13953
13954 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13955
13956         * dbus/dbus-server.c: (dbus_server_listen):
13957         * dbus/dbus-transport.c: (_dbus_transport_open):
13958         ifdef out the calls to the debug transport and server.
13959
13960 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13961
13962         * dbus/dbus-watch.c (dbus_watch_get_flags):
13963         Add note in the docs that ERROR or HANGUP won't be returned
13964         and are assumed always on.
13965
13966         * glib/dbus-gmain.c (add_watch):
13967         Always add IO_ERR | IO_HUP
13968
13969         * dbus/dbus-message.h:
13970         Add semicolon after dbus_message_iter_get_string_array().
13971         Makes qt code build again
13972
13973 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13974
13975         * bus/driver.c: (create_unique_client_name),
13976         (bus_driver_handle_hello):
13977         Don't take a name, just use a numeric id to identify
13978         each client.
13979
13980         * dbus/Makefile.am:
13981         * dbus/dbus-bus.c: (dbus_bus_register_client),
13982         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13983         * dbus/dbus-bus.h:
13984         Add new convenience functions for communicating with the bus.
13985
13986         * dbus/dbus-message.h:
13987
13988         * dbus/dbus-protocol.h:
13989         Fix a typo.
13990
13991 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13992
13993         * dbus/dbus-message.c (dbus_message_append_fields):
13994         Add some more doc comments.
13995
13996 2003-02-01  Havoc Pennington  <hp@pobox.com>
13997
13998         * dbus/dbus-break-loader.c (randomly_modify_length): change
13999         a 4-byte value in the message as if it were a length
14000
14001         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14002         execute bit on saved files
14003
14004 2003-02-01  Havoc Pennington  <hp@pobox.com>
14005
14006         * dbus/dbus-break-loader.c (main): new program to find messages
14007         that break the loader.
14008
14009         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14010         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14011
14012         * dbus/dbus-string.c (_dbus_string_set_byte): new
14013
14014 2003-01-31  Havoc Pennington  <hp@pobox.com>
14015
14016         * dbus/dbus-message.c: refactor the test code to be more general,
14017         in preparation for writing a "randomly permute test cases to
14018         try to break the loader" program.
14019
14020 2003-01-31  Havoc Pennington  <hp@pobox.com>
14021
14022         * doc/dbus-specification.sgml: work on the specification
14023
14024         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14025         the protocol version of the message.
14026
14027         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14028         no longer specifies that.
14029         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14030         1/2/3/4)
14031
14032         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14033         "break" for DBUS_TYPE_NIL, remove @todo
14034
14035 2003-01-31  Havoc Pennington  <hp@pobox.com>
14036
14037         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14038         just set_is_error/get_is_error as this is a commonly-used
14039         function, and write docs.
14040
14041 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14042
14043         * dbus/dbus-address.c: (dbus_address_entry_free):
14044         Free key and value lists.
14045
14046         * dbus/dbus-internals.c: (_dbus_type_to_string):
14047         Add the types we didn't have.
14048
14049         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14050         (_dbus_marshal_validate_arg):
14051         Add NIL types.
14052
14053         * dbus/dbus-message.c: (dbus_message_set_sender):
14054         Remove todo about being able to set sender to NULL.
14055
14056         (dbus_message_set_is_error_reply),
14057         (dbus_message_get_is_error_reply):
14058         * dbus/dbus-message.h:
14059         New functions.
14060
14061         * dbus/dbus-protocol.h:
14062         Add error reply flag.
14063
14064         * test/data/valid-messages/opposite-endian.message:
14065         Add NIL type to test.
14066
14067 2003-01-31  Havoc Pennington  <hp@pobox.com>
14068
14069         * doc/dbus-specification.sgml: fully specify the header.  Add
14070         flags and major protocol version, and change header/body len to
14071         unsigned.
14072
14073         * dbus/dbus-message-builder.c (append_saved_length): append length
14074         as uint32
14075
14076         * dbus/dbus-message.c (dbus_message_create_header): change header
14077         length and body length to unsigned. Add the new fields from the
14078         spec
14079         (_dbus_message_loader_return_buffer): unsigned header/body len
14080
14081 2003-01-30  Havoc Pennington  <hp@pobox.com>
14082
14083         * dbus/dbus-auth.c: rework to use only REJECTED, no
14084         MECHANISMS
14085
14086         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14087         use REJECTED, suggested by Mark McLoughlin
14088
14089 2003-01-30  Havoc Pennington  <hp@pobox.com>
14090
14091         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14092         a better way to report errors here. e.g.  "unix address lacks
14093         path" or something. also "no such file" when the path doesn't
14094         exist, etc.
14095
14096         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14097         leaking list nodes
14098         (dbus_parse_address): add @todo about documenting address format,
14099         and allowing , and ; to be escaped
14100
14101 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14102
14103         * dbus/Makefile.am:
14104         Add dbus-address.[ch]
14105
14106         * dbus/dbus-address.c: (dbus_address_entry_free),
14107         (dbus_address_entries_free), (create_entry),
14108         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14109         (dbus_parse_address), (_dbus_address_test):
14110         * dbus/dbus-address.h:
14111         New files for dealing with address parsing.
14112
14113         * dbus/dbus-connection.c:
14114         Document timeout functions.
14115
14116         * dbus/dbus-message.c:
14117         Document dbus_message_new_from_message.
14118
14119         * dbus/dbus-server-debug.c:
14120         Document.
14121
14122         * dbus/dbus-server.c: (dbus_server_listen):
14123         Parse address and use correct server implementation.
14124
14125         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14126         * dbus/dbus-string.h:
14127         New function with test.
14128
14129         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14130         * dbus/dbus-test.h:
14131         Add address tests.
14132
14133         * dbus/dbus-transport-debug.c:
14134         Document.
14135
14136         * dbus/dbus-transport.c: (_dbus_transport_open):
14137         Parse address and use correct transport implementation.
14138
14139 2003-01-30  Havoc Pennington  <hp@pobox.com>
14140
14141         * dbus/dbus-message.c: use message->byte_order instead of
14142         DBUS_COMPILER_BYTE_ORDER throughout.
14143         (dbus_message_create_header): pad header to align the
14144         start of the body of the message to 8-byte boundary
14145
14146         * dbus/dbus-marshal.h: make all the demarshalers take const
14147         DBusString arguments.
14148
14149         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14150         validate message args here, so we don't have to do slow validation
14151         later, and so we catch bad messages as they are incoming. Also add
14152         better checks on header_len and body_len. Also fill in
14153         message->byte_order
14154
14155         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14156         implemented properly)
14157         (_dbus_string_validate_nul): new function to check all-nul
14158
14159         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14160         get_arg_end_pos and remove all validation
14161         (_dbus_marshal_validate_arg): actually do validation here.
14162
14163 2003-01-29  Havoc Pennington  <hp@pobox.com>
14164
14165         * dbus/dbus-message.c (check_message_handling): fix assertion
14166         failure on set_client_serial
14167
14168 2003-01-28  Havoc Pennington  <hp@pobox.com>
14169
14170         * dbus/dbus-server-debug.c: Add doc section comments
14171
14172         * dbus/dbus-transport-debug.c: add doc section comments
14173
14174 2003-01-28  Havoc Pennington  <hp@redhat.com>
14175
14176         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14177         the reverse order from how I had it
14178         (_dbus_string_base64_encode): reverse encoding order. I was
14179         basically byteswapping everything during encoding.
14180
14181 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14182
14183         * dbus/dbus-connection-internal.h:
14184         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14185         (_dbus_connection_remove_timeout):
14186         Add functions for adding and removing timeouts.
14187
14188         * dbus/dbus-message.c: (dbus_message_new_from_message):
14189         Add new function that takes a message and creates an exact
14190         copy of it, but with the refcount set to 1.
14191         (check_message_handling):
14192         Fix build error.
14193
14194         * dbus/dbus-server-protected.h:
14195         * dbus/dbus-server.c: (_dbus_server_init_base),
14196         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14197         (dbus_server_set_timeout_functions):
14198         (_dbus_server_remove_timeout):
14199         New functions so that a server can add and remove timeouts.
14200
14201         (dbus_server_listen):
14202         Add commented out call to dbus_server_debug_new.
14203
14204         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14205         Actually set the handler, doh.
14206
14207         * dbus/dbus-transport.c: (_dbus_transport_open):
14208         Add commented out call to dbus_transport_debug_client_new.
14209
14210         * dbus/Makefile.am:
14211         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14212
14213 2003-01-28  Havoc Pennington  <hp@pobox.com>
14214
14215         * dbus/dbus-message.c (check_message_handling): function to check
14216         on the loaded message, iterates over it etc.
14217
14218 2003-01-28  Havoc Pennington  <hp@pobox.com>
14219
14220         * test/Makefile.am (dist-hook): fix make distdir
14221
14222         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14223
14224 2003-01-27  Havoc Pennington  <hp@pobox.com>
14225
14226         * dbus/dbus-mempool.c (time_for_size): replace printf with
14227         _dbus_verbose
14228
14229         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14230         empty lines; fix the SAVE_LENGTH stuff to be
14231         START_LENGTH/END_LENGTH so it actually works; couple other
14232         bugfixes
14233
14234         * test/Makefile.am (dist-hook): add dist-hook for .message files
14235
14236         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14237         can be constant or locked.
14238         (_dbus_string_free): allow freeing a const string as
14239         documented/intended
14240
14241         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14242
14243         * dbus/dbus-test-main.c (main): take an argument which is the
14244         directory containing test data
14245
14246         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14247         argument to this and load all the messages in test/data/
14248         checking that they can be loaded or not loaded as appropriate.
14249
14250 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14251
14252         * bus/dispatch.c: (bus_dispatch_message_handler):
14253         Dispatch messages sent to services.
14254
14255         * bus/driver.c: (bus_driver_send_service_deleted),
14256         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14257         (bus_driver_send_service_acquired):
14258         Add helper functions for sending service related messages.
14259
14260         (bus_driver_send_welcome_message):
14261         Send HELLO_REPLY instead of WELCOME.
14262
14263         (bus_driver_handle_list_services):
14264         Send LIST_SERVICES_REPLY instead of SERVICES.
14265
14266         (bus_driver_handle_own_service),
14267         (bus_driver_handle_service_exists):
14268         New message handlers.
14269
14270         (bus_driver_handle_message):
14271         Invoke new message handlers.
14272
14273         (bus_driver_remove_connection):
14274         Don't remove any services here since that's done automatically
14275         by bus_service_remove_owner now.
14276
14277         * bus/driver.h:
14278         New function signatures.
14279
14280         * bus/services.c: (bus_service_add_owner):
14281         Send ServiceAcquired message if we're the only primary owner.
14282
14283         (bus_service_remove_owner):
14284         Send ServiceAcquired/ServiceLost messages.
14285
14286         (bus_service_set_prohibit_replacement),
14287         (bus_service_get_prohibit_replacement):
14288         Functions for setting prohibit replacement.
14289
14290         (bus_service_has_owner):
14291         New function that checks if a connection is in the owner queue of
14292         a certain service.
14293
14294         * bus/services.h:
14295         Add new function signatures.
14296
14297         * dbus/dbus-list.c: (_dbus_list_test):
14298         Add tests for _dbus_list_remove_last and traversing the list backwards.
14299
14300         * dbus/dbus-list.h:
14301         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14302         go any further, so return NULL then.
14303
14304         * dbus/dbus-protocol.h:
14305         Add new messages, service flags and service replies.
14306
14307 2003-01-26  Havoc Pennington  <hp@pobox.com>
14308
14309         * dbus/dbus-message-builder.c: implement, completely untested.
14310
14311         * test/data/*: add data to be used in testing.
14312         ".message" files are our simple loadable text format.
14313         ".message-raw" will be binary dumps of messages.
14314
14315         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14316
14317 2003-01-26  Havoc Pennington  <hp@pobox.com>
14318
14319         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14320
14321         * dbus/dbus-errors.c (dbus_result_to_string): add
14322         file errors
14323
14324         * dbus/dbus-message-builder.c: new file, will contain code to load
14325         up messages from files. Not implemented yet.
14326
14327 2003-01-26  Havoc Pennington  <hp@pobox.com>
14328
14329         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14330         the sender by setting to NULL
14331
14332 2003-01-26  Havoc Pennington  <hp@pobox.com>
14333
14334         The unit tests pass, but otherwise untested.  If it breaks, the
14335         tests should have been better. ;-)
14336
14337         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14338         the connection.
14339
14340         * dbus/dbus-message.c: redo everything so we maintain
14341         message->header as the only copy of the various fields.
14342         This avoids the possibility of out-of-memory in some cases,
14343         for example dbus_message_lock() can't run out of memory anymore,
14344         and avoids extra copying. Figured I may as well go ahead and do
14345         this since it was busted for dbus_message_lock to not return
14346         failure on OOM, and dbus_message_write_header was totally
14347         unchecked for OOM. Also fixed some random other bugs.
14348
14349         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14350         that strings are nul-terminated. Also, end_pos can be equal
14351         to string length just not greater than, I think.
14352         (_dbus_marshal_set_int32): new function
14353         (_dbus_marshal_set_uint32): new function
14354         (_dbus_marshal_set_string): new function
14355
14356         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14357         a warning, init timeout_list to NULL
14358         (dbus_connection_send_message): don't use uninitialized variable
14359         "serial"
14360
14361         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14362
14363 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14364
14365         * bus/driver.c: (bus_driver_handle_hello),
14366         (bus_driver_send_welcome_message):
14367         Plug leaks
14368
14369 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14370
14371         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14372         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14373         (dbus_connection_unref):
14374         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14375         * dbus/dbus-message.c: (dbus_message_unref),
14376         Plug memory leaks.
14377
14378         (dbus_message_get_fields):
14379         Remove debugging printout.
14380
14381         (_dbus_message_loader_return_buffer):
14382         Don't store the header string.
14383
14384         (_dbus_message_test):
14385         Plug leaks.
14386
14387 2003-01-26  Richard Hult  <rhult@codefactory.se>
14388
14389         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14390         the file descriptor list, since it can change under us.
14391
14392 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14393
14394         * glib/dbus-gmain.c: (dbus_connection_prepare),
14395         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14396         (remove_watch), (dbus_connection_hookup_with_g_main):
14397         Rewrite the glib handling to use its own GSource instead of a
14398         GIOChannel so we can catch messages put in the queue while waiting
14399         for a reply.
14400
14401 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14402
14403         * bus/Makefile.am:
14404         * bus/connection.c: (connection_disconnect_handler),
14405         (connection_watch_callback), (bus_connection_setup):
14406         * bus/dispatch.c: (send_one_message),
14407         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14408         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14409         * bus/dispatch.h:
14410         * bus/driver.c: (bus_driver_send_service_deleted),
14411         (bus_driver_send_service_created), (bus_driver_handle_hello),
14412         (bus_driver_send_welcome_message),
14413         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14414         (bus_driver_handle_message):
14415         * bus/driver.h:
14416         Refactor code, put the message dispatching in its own file. Use
14417         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14418         is disconnected.
14419
14420 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14421
14422         * dbus/dbus-internals.h:
14423         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14424
14425         * dbus/dbus-message.c: (dbus_message_get_sender):
14426         * dbus/dbus-message.h:
14427         Implement dbus_message_get_sender.
14428
14429         * dbus/dbus-protocol.h:
14430         Add message and service defines.
14431
14432 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14433
14434         * dbus/dbus-connection.c: (dbus_connection_send_message):
14435         * dbus/dbus-message-internal.h:
14436         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14437         (dbus_message_write_header):
14438         Remove _dbus_messag_unlock and don't set the client serial on a
14439         message if one already exists.
14440
14441 2003-01-24  Havoc Pennington  <hp@pobox.com>
14442
14443         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14444         list_pool
14445
14446         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14447         on OOM
14448
14449 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14450
14451         * dbus/dbus-list.c: (alloc_link), (free_link):
14452         Use a memory pool for the links.
14453
14454 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14455
14456         * bus/connection.c: (bus_connection_foreach):
14457         * bus/connection.h:
14458         Add new bus_connection_foreach function.
14459
14460         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14461         Add function that broadcasts a message to all clients.
14462
14463         (bus_driver_send_service_created), (bus_driver_handle_hello),
14464         (bus_driver_send_welcome_message),
14465         (bus_driver_handle_list_services), (bus_driver_message_handler):
14466         Implement functions that take care of listing services, and notifying
14467         clients when new services are created.
14468
14469         * bus/services.c: (bus_services_list):
14470         * bus/services.h:
14471         Add new function that returns an array of strings with the currently
14472         registered services.
14473
14474         * glib/dbus-glib.h:
14475         * glib/dbus-gmain.c:
14476         Update copyright year.
14477
14478 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14479
14480         * dbus/dbus-connection.c: (dbus_connection_send_message):
14481         Unlock the message in case it was sent earlier.
14482
14483         (dbus_connection_send_message_with_reply_and_block):
14484         Remove the reply message from the list.
14485
14486         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14487         Set array_len and new_pos correctly.
14488
14489         (_dbus_marshal_test):
14490         Remove debug output.
14491
14492         * dbus/dbus-message-internal.h:
14493         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14494         New function that returns the reply serial.
14495
14496         (_dbus_message_unlock):
14497         New function that unlocks a message and resets its header.
14498
14499         (dbus_message_append_string_array),
14500         (dbus_message_get_fields_valist),
14501         (dbus_message_iter_get_field_type),
14502         (dbus_message_iter_get_string_array),
14503         (dbus_message_get_fields),
14504         (dbus_message_append_fields_valist):
14505         Handle string arrays.
14506
14507         (dbus_message_set_sender):
14508         Make this function public since the bus daemon needs it.
14509
14510         (decode_header_data):
14511         Set the reply serial to -1 initially.
14512
14513         * dbus/dbus-message.h:
14514         Add dbus_message_set_sender.
14515
14516 2003-01-24  Havoc Pennington  <hp@pobox.com>
14517
14518         * doc/dbus-specification.sgml: add some stuff
14519
14520 2003-01-22  Havoc Pennington  <hp@pobox.com>
14521
14522         * doc/dbus-specification.sgml: Start to document the protocol.
14523
14524 2003-01-22  Havoc Pennington  <hp@pobox.com>
14525
14526         * dbus/dbus-connection.c
14527         (dbus_connection_send_message_with_reply_and_block): add some @todo
14528
14529         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14530
14531 2003-01-21  Havoc Pennington  <hp@pobox.com>
14532
14533         (patch untested because can't compile)
14534
14535         * bus/driver.c (create_unique_client_name): make this function
14536         never recycle client names. Also, caller should initialize
14537         the DBusString.
14538
14539         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14540
14541 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14542
14543         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14544         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14545         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14546         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14547         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14548         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14549         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14550         * dbus/dbus-marshal.h:
14551         * dbus/dbus-protocol.h:
14552         Add support for marshalling and demarshalling integer, double
14553         and string arrays.
14554
14555 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14556
14557         * bus/Makefile.am:
14558         Add driver.[ch]
14559
14560         * bus/connection.c: (connection_disconnect_handler):
14561         Remove the connection from the bus driver's list.
14562
14563         (connection_watch_callback): Dispatch messages.
14564
14565         (free_connection_data): Free connection name.
14566
14567         (bus_connection_setup): Add connection to the bus driver's list.
14568         (bus_connection_remove_owned_service):
14569         (bus_connection_set_name), (bus_connection_get_name):
14570         Add functions for setting and getting the connection's name.
14571
14572         * bus/connection.h:
14573         Add function headers.
14574
14575         * bus/driver.c: (create_unique_client_name),
14576         (bus_driver_handle_hello_message),
14577         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14578         (bus_driver_add_connection), (bus_driver_remove_connection):
14579         * bus/driver.h:
14580         * bus/main.c:
14581         * bus/services.c: (bus_service_free):
14582         * bus/services.h:
14583         New file that handles communication and registreation with the bus
14584         itself.
14585
14586 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14587
14588         * dbus/dbus-connection.c: (dbus_connection_send_message):
14589         Add a new client_serial parameter.
14590
14591         (dbus_connection_send_message_with_reply):
14592         Remove a @todo since we've implemented the blocking function.
14593
14594         (dbus_connection_send_message_with_reply_and_block):
14595         New function that sends a message and waits for a reply and
14596         then returns the reply.
14597
14598         * dbus/dbus-connection.h:
14599         Add new functions.
14600
14601         * dbus/dbus-errors.c: (dbus_result_to_string):
14602         * dbus/dbus-errors.h:
14603         Add new DBUS_RESULT.
14604
14605         * dbus/dbus-message-internal.h:
14606         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14607         (_dbus_message_set_sender), (dbus_message_write_header),
14608         (dbus_message_new_reply), (decode_header_data),
14609         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14610         * dbus/dbus-message.h:
14611         Add new functions that set the reply serial and sender.
14612         Also marshal and demarshal them correctly and add test.
14613
14614         * dbus/dbus-protocol.h:
14615         Add new DBUS_MESSAGE_TYPE_SENDER.
14616
14617         * glib/dbus-glib.h:
14618         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14619         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14620         (dbus_connection_hookup_with_g_main):
14621         * glib/test-dbus-glib.c: (main):
14622         Rewrite to use GIOChannel and remove the GSource crack.
14623
14624         * test/echo-client.c: (main):
14625         * test/watch.c: (check_messages):
14626         Update for changed APIs
14627
14628 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14629
14630         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14631
14632         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14633         Create a DBusTimeoutList.
14634         (dbus_connection_set_timeout_functions): Add new function to
14635         set timeout callbacks
14636
14637         * dbus/dbus-connection.h: Add public DBusTimeout API.
14638
14639         * dbus/dbus-message.c: (dbus_message_get_service):
14640         * dbus/dbus-message.h:  New function.
14641
14642         * dbus/dbus-server.c: Fix small doc typo.
14643
14644         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14645
14646 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14647
14648         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14649         of the string, just as long as specified.
14650
14651 2003-01-19  Havoc Pennington  <hp@pobox.com>
14652
14653         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14654         new function
14655
14656         * dbus/dbus-server.c (dbus_server_set_max_connections)
14657         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14658         keep track of current number of connections, and add API for
14659         setting a max (but haven't implemented enforcing the max yet)
14660
14661 2003-01-18  Havoc Pennington  <hp@pobox.com>
14662
14663         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14664         reading/writing if read_watch != NULL or write_watch != NULL.
14665
14666         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14667         the message loader code to actually load message->header and
14668         message->body into the newly-created message.
14669
14670         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14671         in OOM case
14672
14673         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14674         (dbus_connection_get_max_message_size)
14675         (dbus_connection_set_max_live_messages_size)
14676         (dbus_connection_get_max_live_messages_size): implement some
14677         resource limitation functions
14678
14679         * dbus/dbus-resources.c: new file implementing some of the
14680         resource limits stuff
14681
14682         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14683         missing docs, add @todo to handle OOM etc.
14684
14685         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14686         docs
14687
14688 2003-01-18  Havoc Pennington  <hp@pobox.com>
14689
14690         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14691         connection if it hasn't been already.
14692
14693         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14694         replace with DisconnectFunction.
14695
14696 2003-01-18  Havoc Pennington  <hp@pobox.com>
14697
14698         Building --disable-verbose-mode --disable-asserts --disable-tests
14699         cuts the library from 112K to 45K or so
14700
14701         * configure.in: check for varargs macro support,
14702         add --enable-verbose-mode, --enable-asserts.
14703
14704         * dbus/dbus-internals.h (_dbus_assert): support
14705         DBUS_DISABLE_ASSERT
14706         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14707
14708 2003-01-18  Havoc Pennington  <hp@pobox.com>
14709
14710         * dbus/dbus-test.c: include config.h so that tests actually run
14711
14712         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14713         so the failure mode when that assumption fails will be plenty
14714         obvious.
14715
14716 2003-01-18  Havoc Pennington  <hp@pobox.com>
14717
14718         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14719
14720         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14721         the distribution
14722
14723         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14724         since we don't want to use those in make check
14725
14726 2003-01-15  Havoc Pennington  <hp@redhat.com>
14727
14728         Release 0.2
14729
14730         * NEWS: update
14731
14732 2003-01-15  Havoc Pennington  <hp@redhat.com>
14733
14734         * test/Makefile.am: fix so that test source code ends up in the
14735         distribution on make distcheck
14736
14737 2003-01-15  Havoc Pennington  <hp@redhat.com>
14738
14739         Release 0.1.
14740
14741         * NEWS: update
14742
14743 2003-01-15  Havoc Pennington  <hp@redhat.com>
14744
14745         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14746         fix build when --disable-tests
14747
14748         * Makefile.am (EXTRA_DIST): put HACKING in here
14749
14750         * HACKING: document procedure for making a tarball release.
14751
14752 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14753
14754         * bus/connection.c: (connection_error_handler),
14755         (bus_connection_setup):
14756         * bus/main.c: (main):
14757         Make sure that the DBusConnectionData struct is NULLed
14758         out to prevent a segfault.
14759
14760         * dbus/dbus-errors.c: (dbus_result_to_string):
14761         * dbus/dbus-errors.h:
14762         * dbus/dbus-message.c: (dbus_message_get_fields),
14763         (dbus_message_get_fields_valist), (_dbus_message_test):
14764         * dbus/dbus-message.h:
14765         Make dbus_message_get_fields return a result code so we can
14766         track invalid fields as well as oom.
14767
14768 2003-01-11  Havoc Pennington  <hp@pobox.com>
14769
14770         * configure.in: change --enable-test/--enable-ansi action-if-given
14771         to enable_foo=$enableval instead of enable_foo=yes
14772
14773 2003-01-08  Havoc Pennington  <hp@pobox.com>
14774
14775         * dbus/dbus-string.c (_dbus_string_align_length): new function
14776
14777         * dbus/dbus-test-main.c: move main() for test app here
14778         * dbus/dbus-test.c
14779         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14780         symbol to run tests, because dbus-test isn't in the main
14781         library
14782
14783         Code review nitpicks.
14784
14785         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14786         for people with narrow emacs ;-). Assert client_serial was filled
14787         in. Assert message->name != NULL.
14788         (dbus_message_append_fields): have "first_field_type" arg separate
14789         from va list, needed for C++ binding that also uses varargs IIRC
14790         and helps with type safety
14791         (dbus_message_new): add @todo about using DBusString to store
14792         service/name internally
14793         (dbus_message_new): don't leak ->service and ->name on OOM later
14794         in the function
14795         (dbus_message_unref): free the service name
14796         (dbus_message_get_fields): same change to varargs
14797         i.e. first_field_type
14798         (_dbus_message_loader_return_buffer): assert that the message data
14799         is aligned (if not it's a bug in our code). Put in verbose griping
14800         about why we set corrupted = TRUE.
14801         (decode_header_data): add FIXME that char* is evil.  Was going to
14802         add FIXME about evil locale-specific string.h strncmp, but just
14803         switched to wacky string-as-uint32 optimization. Move check for
14804         "no room for field name" above get_const_data_len() to avoid
14805         assertion failure in get_const_data_len if we have trailing 2
14806         bytes or the like. Check for service and name fields being
14807         provided twice. Don't leak service/name on error. Require field
14808         names to be aligned to 4 bytes.
14809
14810         * dbus/dbus-marshal.c: move byte swap stuff to header
14811         (_dbus_pack_int32): uscore-prefix
14812         (_dbus_unpack_int32): uscore-prefix
14813         (_dbus_unpack_uint32): export
14814         (_dbus_demarshal_string): add @todo complaining about use of
14815         memcpy()
14816         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14817         handling allowing corrupt data to go unchecked
14818
14819 2003-01-08  Havoc Pennington  <hp@redhat.com>
14820
14821         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14822         to the select() as needed for authentication. (should be using
14823         _dbus_poll() not select, but for another day)
14824
14825         * dbus/dbus.h: include dbus/dbus-protocol.h
14826
14827 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14828
14829         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14830         dbus-connection.h
14831
14832 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14833
14834         * dbus/dbus-internals.c: (_dbus_type_to_string):
14835         New function that returns a string describing a type.
14836
14837         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14838         * dbus/dbus-marshal.h:
14839         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14840         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14841         (dbus_message_iter_get_byte_array):
14842         * dbus/dbus-message.h:
14843         Add new convenience functions for appending and getting message fields.
14844         Also add demarshalling routines for byte arrays.
14845
14846 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14847
14848         * dbus/dbus-connection-internal.h:
14849         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14850         (_dbus_connection_get_next_client_serial),
14851         (dbus_connection_send_message):
14852         * dbus/dbus-internals.h:
14853         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14854         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14855         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14856         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14857         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14858         (_dbus_verbose_bytes), (_dbus_marshal_test):
14859         * dbus/dbus-marshal.h:
14860         * dbus/dbus-message-internal.h:
14861         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14862         (dbus_message_write_header), (_dbus_message_lock),
14863         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14864         (dbus_message_get_name), (dbus_message_append_int32),
14865         (dbus_message_append_uint32), (dbus_message_append_double),
14866         (dbus_message_append_string), (dbus_message_append_byte_array),
14867         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14868         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14869         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14870         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14871         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14872         (decode_header_data), (_dbus_message_loader_return_buffer),
14873         (message_iter_test), (_dbus_message_test):
14874         * dbus/dbus-message.h:
14875         * dbus/dbus-protocol.h:
14876         * dbus/dbus-test.c: (main):
14877         * dbus/dbus-test.h:
14878         * glib/test-dbus-glib.c: (message_handler), (main):
14879         * test/echo-client.c: (main):
14880         * test/watch.c: (check_messages):
14881         Make messages sendable and receivable for real.
14882
14883 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14884
14885         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14886         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14887         * dbus/dbus-message.c: (dbus_message_append_int32),
14888         (dbus_message_append_uint32), (dbus_message_append_double),
14889         (dbus_message_append_string), (dbus_message_append_byte_array):
14890         Handle OOM restoration.
14891
14892 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14893
14894         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14895         (_dbus_demarshal_string), (_dbus_marshal_test):
14896         * dbus/dbus-marshal.h:
14897         * dbus/dbus-message.c: (dbus_message_get_name),
14898         Document these functions.
14899
14900         (dbus_message_append_int32), (dbus_message_append_uint32),
14901         (dbus_message_append_double), (dbus_message_append_string),
14902         (dbus_message_append_byte_array):
14903         * dbus/dbus-message.h:
14904         Add functions for adding message fields of different types.
14905
14906         * dbus/dbus-protocol.h:
14907         Add the different types.
14908
14909 2003-01-05  Havoc Pennington  <hp@pobox.com>
14910
14911         * bus/connection.c: implement routines for handling connections,
14912         first thing is keeping a list of owned services on each connection
14913         and setting up watches etc.
14914
14915         * bus/services.c: implement a mapping from service names to lists
14916         of connections
14917
14918         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14919
14920         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14921         to use static mutexes for global data
14922
14923         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14924         collection of functions to set/get application-specific data
14925         on the DBusConnection.
14926
14927 2003-01-04  Havoc Pennington  <hp@pobox.com>
14928
14929         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14930         (_dbus_poll): new function
14931
14932         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14933         copied from GLib
14934
14935         * bus/loop.c: initial code for the daemon main loop
14936
14937 2003-01-04  Havoc Pennington  <hp@pobox.com>
14938
14939         * test/watch.c (error_handler): make it safe if the error handler
14940         is called multiple times (if we s/error handler/disconnect
14941         handler/ we should just guarantee it's called only once)
14942
14943         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14944         error handler on disconnect (it's quite possible we should
14945         just change the error handler to a "disconnect handler," I'm
14946         not sure we have any other meaningful errors)
14947
14948         * configure.in: check for getpwnam_r
14949
14950         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14951         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14952         mechanism as in SASL spec, using socket credentials
14953
14954         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14955         (_dbus_send_credentials_unix_socket): new function
14956
14957         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14958         dbus_accept()
14959         (_dbus_write): only check errno if <0 returned
14960         (_dbus_write_two): ditto
14961
14962 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14963
14964         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14965         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14966         (_dbus_marshal_test):
14967         * dbus/dbus-marshal.h:
14968         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14969         to _dbus_marshal_utf8_string. Also fix some tests.
14970
14971 2002-12-28  Harri Porten  <porten@kde.org>
14972
14973         * configure.in: added check for C++ compiler and a very cheesy
14974         check for the Qt integration
14975
14976         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14977
14978         * qt/Makefile.am: added
14979
14980         * qt/.cvsignore: added
14981
14982         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14983         latter, added #ifdef QT_THREAD_SUPPORT guard.
14984
14985         * dbus/Makefile.am: added missing headers for make dist
14986
14987 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14988
14989         * dbus/Makefile.am: fixup export-symbols-regex.
14990
14991 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14992
14993         * acinclude.m4: Add this file and put the
14994         PKG_CHECK_MODULE macro in it.
14995
14996 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14997
14998         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14999         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15000         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15001         (_dbus_marshal_test):
15002         Make the demarshalling routines align the pos argument.
15003         Add string marshalling tests and fix the obvious bugs
15004         discovered.
15005
15006 2002-12-26  Havoc Pennington  <hp@pobox.com>
15007
15008         * dbus/dbus-auth.c: fixes fixes fixes
15009
15010         * dbus/dbus-transport-unix.c: wire up support for
15011         encoding/decoding data on the wire
15012
15013         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15014         (_dbus_auth_decode_data): append to target string
15015         instead of nuking it.
15016
15017 2002-12-26  Havoc Pennington  <hp@pobox.com>
15018
15019         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15020         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15021         doh
15022
15023         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15024         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15025         now). Main point is because I wanted unpack_uint32 to implement
15026         _dbus_verbose_bytes
15027         (_dbus_verbose_bytes): new function
15028
15029         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15030
15031         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15032         mechanism to handle a corrupt message stream
15033         (_dbus_message_loader_new): fix preallocation to only prealloc,
15034         not prelengthen
15035
15036         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15037         (_dbus_string_test): enhance tests for copy/move and fix the
15038         functions
15039
15040         * dbus/dbus-transport-unix.c: Hold references in more places to
15041         avoid reentrancy problems
15042
15043         * dbus/dbus-transport.c: ditto
15044
15045         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15046         leak reference count in no-message case
15047
15048         * test/watch.c (do_mainloop): handle adding/removing watches
15049         during iteration over the watches. Also, ref the connection/server
15050         stored on a watch, so we don't try to mangle a destroyed one.
15051
15052         * dbus/dbus-transport-unix.c (do_authentication): perform
15053         authentication
15054
15055         * dbus/dbus-auth.c (get_state): add a state
15056         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15057         (_dbus_auth_get_unused_bytes): append the unused bytes
15058         to the passed in string, rather than prepend
15059
15060         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15061         the auth conversation DBusAuth
15062
15063         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15064         (_dbus_transport_new_for_domain_socket): when creating a
15065         transport, pass in whether it's a client-side or server-side
15066         transport so we know which DBusAuth to create
15067
15068 2002-12-03  Havoc Pennington  <hp@pobox.com>
15069
15070         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15071         _after_ finalizing the derived members
15072         (unix_connection_set): unref watch if we fail to add it
15073
15074         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15075         transport first, so that the connection owned by the
15076         transport will be valid as the transport finalizes.
15077
15078         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15079         if necessary, and remove watches from the connection.
15080
15081         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15082
15083 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15084
15085         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15086         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15087         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15088         (_dbus_marshal_test):
15089         * dbus/dbus-marshal.h:
15090         Add string marshal functions and have the demarshal functions
15091         return the new position.
15092
15093 2002-12-25  Havoc Pennington  <hp@pobox.com>
15094
15095         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15096         it is a simple protocol that just maps directly to SASL.
15097
15098         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15099         initial implementation, not actually used yet.
15100
15101         * dbus/dbus-string.c (_dbus_string_find): new function
15102         (_dbus_string_equal): new function
15103         (_dbus_string_base64_encode): new function
15104         (_dbus_string_base64_decode): new function
15105
15106 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15107
15108         * dbus/Makefile.am:
15109         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15110         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15111         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15112         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15113         * dbus/dbus-marshal.h:
15114         * dbus/dbus-protocol.h:
15115         * dbus/dbus-test.c: (main):
15116         * dbus/dbus-test.h:
15117         Add un-optimized marshalling/demarshalling routines.
15118
15119 2002-12-25  Harri Porten  <porten@kde.org>
15120
15121         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15122
15123 2002-12-24  Zack Rusin  <zack@kde.org>
15124
15125         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15126         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15127         main loop stuff
15128
15129 2002-12-24  Havoc Pennington  <hp@pobox.com>
15130
15131         * glib/dbus-gthread.c: fix include
15132
15133         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15134         I think glib API needs to change, though, as you don't
15135         want to use DBusMessageFunction, you want to use the
15136         DBusMessageHandler object. Probably
15137         dbus_connection_open_with_g_main_loop()
15138         and dbus_connection_setup_g_main_loop() or something like that
15139         (but think of better names...) that just create a connection
15140         that has watch/timeout functions etc. already set up.
15141
15142         * dbus/dbus-connection.c
15143         (dbus_connection_send_message_with_reply): new function just to
15144         show how the message handler helps us deal with replies.
15145
15146         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15147
15148         * dbus/dbus-string.c (_dbus_string_test): free a string that
15149         wasn't
15150
15151         * dbus/dbus-hash.c: use memory pools for the hash entries
15152         (rebuild_table): be more paranoid about overflow, and
15153         shrink table when we can
15154         (_dbus_hash_test): reduce number of sprintfs and write
15155         valid C89. Add tests for case where we grow and then
15156         shrink the hash table.
15157
15158         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15159
15160         * dbus/dbus-connection.c (dbus_connection_register_handler)
15161         (dbus_connection_unregister_handler): new functions
15162
15163         * dbus/dbus-message.c (dbus_message_get_name): new
15164
15165         * dbus/dbus-list.c: fix docs typo
15166
15167         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15168         an object representing a handler for messages.
15169
15170 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15171
15172         * glib/dbus-glib.h:
15173         * glib/dbus-gthread.c: (dbus_gthread_init):
15174         Don't use the gdbus prefix for public functions.
15175
15176 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15177
15178         * Makefile.am:
15179         * configure.in:
15180         Add GLib checks and fixup .pc files
15181
15182         * glib/Makefile.am:
15183         * glib/dbus-glib.h:
15184         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15185         (gdbus_connection_check), (gdbus_connection_dispatch),
15186         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15187         (dbus_connection_gsource_new):
15188         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15189         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15190         * glib/test-dbus-glib.c: (message_handler), (main):
15191         Add GLib support.
15192
15193 2002-12-15  Harri Porten  <porten@kde.org>
15194
15195         * autogen.sh: check for libtoolize before attempting to use it
15196
15197         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15198         struct.
15199
15200         * .cvsignore: ignore more stamp files
15201
15202         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15203
15204         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15205         without make install.
15206
15207 2002-12-15  Havoc Pennington  <hp@pobox.com>
15208
15209         * dbus/dbus-threads.c: add thread stubs that a higher library
15210         layer can fill in. e.g. the GLib wrapper might fill them in with
15211         GThread stuff. We still need to use this thread API to
15212         thread-safe-ize the library.
15213
15214 2002-12-12  Havoc Pennington  <hp@pobox.com>
15215
15216         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15217         below new interfaces and include fewer system headers.
15218
15219         * dbus/dbus-sysdeps.c (_dbus_read): new function
15220         (_dbus_write): new function
15221         (_dbus_write_two): new function
15222         (_dbus_connect_unix_socket): new function
15223         (_dbus_listen_unix_socket): new function
15224
15225         * dbus/dbus-message-internal.h: change interfaces to use
15226         DBusString
15227
15228 2002-12-11  Havoc Pennington  <hp@pobox.com>
15229
15230         * dbus/dbus-types.h: add dbus_unichar
15231
15232         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15233
15234         * dbus/dbus-connection.c (dbus_connection_send_message): return
15235         TRUE on success
15236
15237         * dbus/dbus-transport.c: include dbus-watch.h
15238
15239         * dbus/dbus-connection.c: include dbus-message-internal.h
15240
15241         * HACKING: add file with coding guidelines stuff.
15242
15243         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15244         handling here, for security purposes (as in vsftpd). Not actually
15245         using this class yet.
15246
15247         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15248         system/libc usage here, as in vsftpd, for ease of auditing (and
15249         should also simplify portability). Haven't actually moved all the
15250         system/libc usage into here yet.
15251
15252 2002-11-25  Havoc Pennington  <hp@pobox.com>
15253
15254         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15255         always print the first verbose message.
15256
15257 2002-11-24  Havoc Pennington  <hp@pobox.com>
15258
15259         * test/echo-client.c, test/echo-server.c: cheesy test
15260         clients.
15261
15262         * configure.in (AC_CHECK_FUNCS): check for writev
15263
15264         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15265         function
15266
15267         * dbus/dbus-list.c (_dbus_list_foreach): new function
15268
15269         * dbus/dbus-internals.c (_dbus_verbose): new function
15270
15271         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15272         representing a server that listens for connections.
15273
15274         * dbus/.cvsignore: create
15275
15276         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15277         public API for reporting errors
15278
15279         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15280         public object representing a connection that
15281         sends/receives messages. (Same object used for
15282         both client and server.)
15283
15284         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15285         Basic abstraction for different kinds of stream
15286         that we might read/write messages from.
15287
15288 2002-11-23  Havoc Pennington  <hp@pobox.com>
15289
15290         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15291         _DBUS_INT_MAX
15292
15293         * dbus/dbus-test.c (main): add list test, and include
15294         dbus-test.h as intended
15295
15296         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15297         (_dbus_hash_table_remove_int): return value indicates
15298         whether the entry existed to remove
15299
15300         * dbus/dbus-list.c: add linked list utility class,
15301         with docs and tests
15302
15303         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15304         array sometimes.
15305
15306 2002-11-23  Havoc Pennington  <hp@pobox.com>
15307
15308         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15309         DBUS_END_DECLS to nothing, that should fix this once and for all
15310
15311         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15312
15313         * dbus/dbus-message.c, dbus/dbus-hash.c:
15314         add some missing @brief
15315
15316 2002-11-23  Havoc Pennington  <hp@pobox.com>
15317
15318         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15319         to avoid confusing Doxygen
15320
15321         * dbus/dbus-hash.c: @} not }@
15322
15323         * dbus/dbus-message.c (struct DBusMessage): split out
15324         internals docs
15325
15326 2002-11-23  Havoc Pennington  <hp@pobox.com>
15327
15328         * configure.in: pile on more warning flags if using gcc
15329
15330         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15331         to document static functions
15332
15333         * configure.in: add summary to end of configure so it
15334         looks nice and attractive
15335
15336         * dbus/dbus-hash.c: finish implementation and write unit
15337         tests and docs
15338
15339         * configure.in: add --enable-tests to enable unit tests
15340
15341         * dbus/dbus-test.c: test program to run unit tests
15342         for all files in dbus/*, initially runs a test for
15343         dbus-hash.c
15344
15345         * dbus/dbus-internals.h: file to hold some internal utility stuff
15346
15347 2002-11-22  Havoc Pennington  <hp@redhat.com>
15348
15349         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15350         "ported" away from Tcl
15351
15352         * dbus/dbus-types.h: header for types such as dbus_bool_t
15353
15354 2002-11-22  Havoc Pennington  <hp@redhat.com>
15355
15356         * dbus/dbus.h: fixups for doc warnings
15357
15358         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15359         macros
15360         (QUIET): make it quiet so we can see warnings
15361
15362         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15363
15364 2002-11-22  Havoc Pennington  <hp@redhat.com>
15365
15366         * Makefile.am: include "Doxyfile" target in all-local
15367
15368         * configure.in: generate the Doxyfile
15369
15370         * Doxyfile.in: move Doxyfile here, so we can use
15371         configure to generate a Doxyfile with the right
15372         version number etc.
15373
15374 2002-11-22  Havoc Pennington  <hp@redhat.com>
15375
15376         * dbus/dbus-message.c: move inline docs into .c file
15377
15378         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15379         so all docs are under doc/
15380         (MAN_EXTENSION): generate man pages. Use extension
15381         ".3dbus" which matches ".3qt" on my system,
15382         I guess this is OK, I don't know really.
15383         (FILE_PATTERNS): look for .c files not .h, makes sense
15384         for plain C I think
15385
15386 2002-11-22  Havoc Pennington  <hp@pobox.com>
15387
15388         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15389         because any app can be a server, and any app can be a client,
15390         the bus is a special kind of server.
15391
15392 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15393
15394         * Doxyfile : adding. Still needs Makefile rules to be generated
15395         automatically (just run "doxygen" in the toplevel dir for now to
15396         generate docs)
15397
15398         * dbus/dbus-message.h : Adding sample docs (javadoc since
15399         resembles gtk-doc a little more)
15400
15401         * dbus/dbus.h : Adding sample docs
15402
15403 2002-11-21  Havoc Pennington  <hp@redhat.com>
15404
15405         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15406         so we can allow ourselves to include files directly,
15407         instead of having to use dbus.h
15408
15409         * dbus/dbus.h: fill in
15410
15411         * dbus/dbus-message.h: sketch out a sample header file.
15412         Include griping if you include it directly instead of
15413         via dbus.h
15414
15415         * dbus/dbus-macros.h: new file with macros for extern "C",
15416         TRUE/FALSE, NULL, etc.
15417
15418         * doc/file-boilerplate.c: put include guards in here
15419
15420 2002-11-21  Havoc Pennington  <hp@redhat.com>
15421
15422         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15423
15424         * COPYING: include the GPL as well, and license code
15425         under both AFL and GPL.
15426
15427 2002-11-21  Havoc Pennington  <hp@redhat.com>
15428
15429         * acconfig.h: get rid of this
15430
15431         * autogen.sh (run_configure): add --no-configure option
15432
15433         * configure.in: remove AC_ARG_PROGRAM to make
15434         autoconf complain less. add AC_PREREQ.
15435         add AC_DEFINE third arg.
15436
15437 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15438
15439         * doc/Makefile.am:
15440         Fix references so we can distcheck.
15441
15442 2002-11-21  Havoc Pennington  <hp@redhat.com>
15443
15444         * Initial module creation
15445