* bus-win.patch: removed obsolates patches.
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * bus-win.patch: fixes unix listen problems, dbus-test 
4         now runs.
5
6 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
7
8         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
9         cmake/CMakeLists.txt: win32 compile fix
10
11 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
12
13         * dbus-win.patch, README.win: added available win32 
14         patches from windbus project (http://sf.net/projects/windbus)
15
16 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
17
18         * bus/activation.c: (bus_activation_activate_service):
19         fixed call to _dbus_spawn_async_with_babysitter().
20
21 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
22
23         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
24         added environment pointer as function parameter, used on win32.
25
26         * test/spawn-test.c: fixed call to above mentioned function.
27
28 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
29
30         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
31         added configure check for unistd.h.
32
33 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
34
35         * test/Makefile.am: fixed test data copy problem in 
36         out of source build, when sources came from svn or cvs. 
37
38 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
39
40         * dbus/*-win.*,bus/*-win.*: added win32 platform related
41         files. These files are only added to the cmake build system.  
42         The missing dbus-win.patch file will be added later. 
43
44 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
45
46         * cmake: new directory, contains cmake build support.
47         See http://www.cmake.org for more informations.
48         Currently only unix will be buildable because some 
49         win32 required files are still missing. 
50
51 2007-03-03  Thiago Macieira  <thiago@kde.org>
52
53         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
54         output and add it to the DBusError message we return.
55
56         * tools/dbus-launch.1:
57         * tools/dbus-launch.c: Add option --close-stderr to, well,
58         close stderr before starting dbus-daemon.
59
60 2007-01-31  Havoc Pennington  <hp@redhat.com>
61
62         * bus/dbus-daemon.1.in: write a section in the man page on running
63         a test daemon for debugging purposes
64
65 2007-01-26  Havoc Pennington  <hp@redhat.com>
66
67         * bus/session.conf.in: override all the default limits with much
68         higher limits on the session bus, there is no reason the session
69         bus should have low limits
70
71         * bus/config-parser.c (bus_config_parser_new): increase default
72         limits so they are less likely to be hit; in particular the max
73         replies per connection was way too low
74
75 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
76
77         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
78         a pointer to the tutorial maintained as part of dbus-python
79
80 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
81
82         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
83         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
84         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
85
86 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
87
88         * tools/dbus-monitor.c: gettimeofday() is not available 
89         on windows so we have to provide our own. It's taken from 
90         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
91
92 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
93
94         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
95         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
96         is in dbus-sysdeps-win.c (not in this patch).
97
98         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
99         with InterlockedInc/Decrement. 
100         - Patches from Christian Ehrlicher
101         
102 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
103
104         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
105
106 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
107
108         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
109         fix mispaced const statement. - Patch from Peter Kümmel
110
111 2006-12-19  Ray Strode  <rstrode@redhat.com>
112
113         * bus/bus.c (process_config_every_time):
114         don't overwrite existing bus context activation object
115         until after we've checked that the new activation is
116         valid.
117
118         * bus/main.c 
119         (signal_handler), (handle_reload_watch):
120         don't call exit() on failure, instead make do and keep
121         going.
122         (close_reload_pipe): new function to turn off
123         hangup-causes-config-reload behavior if an unexpected
124         error occurs
125
126 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
127
128         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
129         correctness fix. - Patch from Christian Ehrlicher
130
131 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
132
133         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
134         we should also use it. - Patch from Christian Ehrlicher
135
136 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
137   
138         * dbus-sysdeps-util.c: added win32 related tests
139
140 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
141
142         * dbus/dbus-string.c (_dbus_string_pop_line),
143         bus/desktop-file.c (parse_section_start,
144         parse_comment_or_blank,parse_key_value,): uses
145         _dbus_string_find_eol() to support platform independent eol style.
146
147 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
148
149         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
150         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
151               _dbus_string_find_eol().
152         Approved by: Havoc Pennington.
153
154 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
155
156         * configure.in: Added switch to disable user_database caching.
157
158         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
159         be able disable user_dabase caching.
160
161 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
162
163         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
164         struct. It is unnecessary we have a global one already. Also remove 
165         bus_context_get_user_database function, it is no longer needed.
166         Flush the global database on reload.
167
168         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
169         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
170
171         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
172         Add _dbus_user_database_flush_system. 
173         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
174         Small unrelated change in _dbus_is_a_number: change 
175         _dbus_string_parse_int to _dbus_string_parse_uint. 
176
177         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
178         _dbus_groups_from_uid.
179
180         * bus/policy.c, bus/policy.h: Change call to 
181         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
182         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
183         needs it.
184
185 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
186
187         * bus/signal.c: Fix match_rule_equal errata
188         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
189         <kimmo.hamalainen@nokia.com>)
190
191 2006-11-19  Thiago Macieira  <thiago@kde.org>
192
193         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
194         _dbus_pthread_condvar_wait,
195         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
196         pthread_self() after coming back from a conditional variable
197         wait as well as in one codepath where it was forgotten.
198         Approved by: Havoc Pennington.
199
200 2006-11-17  Havoc Pennington  <hp@redhat.com>
201
202         * update-dbus-docs.sh: allow setting fd.org username via env
203         variable. Make it run autogen with --enable-xml-docs=yes
204         --enable-doxygen-docs=yes so configure will fail if the required
205         tools are missing.
206
207 2006-11-17  Havoc Pennington  <hp@redhat.com>
208
209         * doc/dbus-faq.xml: minor FAQ tweaks
210
211 2006-11-14  Havoc Pennington  <hp@redhat.com>
212         
213         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
214         dbus_get_local_machine_id() to its own file, no substantive
215         changes. There are a couple other things we might want to add that
216         are "misc" so moving out of dbus-connection.[hc] which is big
217         enough already.
218         
219 2006-11-14  Havoc Pennington  <hp@redhat.com>
220
221         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
222         UUID had the timestamp last, but the implementation had it first;
223         move it to last since I think it's a tiny bit nicer (easier to
224         compare at a glance, faster to sort, less code), and will not
225         cause any practical compatibility problems. Also, always convert
226         the timestamp to big endian.
227
228         * doc/dbus-specification.xml: Clean up the docs on the UUID.
229
230         * tools/dbus-uuidgen.1: more prominently say it is not suitable
231         as a replacement for regular uuidgen/RFC4122.
232
233 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
234
235         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
236         the correct value so we don't assert when initalizing recursive threads
237
238         * test/name-test/test-thread-init.c: call dbus_threads_init_default
239         instead of _dbus_threads_init_debug since it is more of a real world
240         test
241
242 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
243
244         * Released 1.0.0
245
246 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
247
248         * AUTHORS: added Peter and Tor of windows porting fame
249
250 2006-11-08  Havoc Pennington  <hp@redhat.com>
251
252         * doc/dbus-specification.xml: add a note about protocol stability
253
254         * doc/TODO: Remove "important for 1.0" section, replace with
255         "important for 1.2" section
256         
257 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
258
259         * README: remove some of the out of date flags
260
261         * doc/TODO: Remove todo items which are done
262
263 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
264
265         * tools/dbus-monitor.c: Handle sigint so we flush stdout
266         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
267
268 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
269
270         * tools/dbus-monitor.1: update the manpage for dbus-monitor
271         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
272
273 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
274
275         * AUTHORS: Update with all people listed in the ChangeLog
276
277 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
278
279         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
280         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
281
282 2006-11-07  Havoc Pennington  <hp@redhat.com>
283
284         * HACKING: Update release instructions to include stuff about
285         stable releases, branching, etc. May not be totally correct,
286         please fix if needed, but keep instructions up-to-date so we do
287         each stable release consistently in the future.
288
289 2006-11-07  Havoc Pennington  <hp@redhat.com>
290
291         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
292         documentation updates. Bump faq/spec versions (not to 1.0; I don't
293         think the spec will be "finished"/1.0 when we ship the 1.0 library).
294
295 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
296
297         * bus/bus.c: Missed patch - pass in the context to the directory watch
298
299 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
300
301         * Released D-Bus 1.0 RC 3(0.95)
302
303 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
304
305         * bus/activation.c (bus_activation_new): don't fail if we can not read
306         the directory as it may not exist
307
308 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
309
310         * bus/config-parser.c (service_dirs_find_dir): use 
311         _dbus_list_get_next_link so we don't get stuck in an infinite loop
312         (start_busconfig_child): move processing of standard_session_servicedirs
313         tags here because they have no content
314         (bus_config_parser_content): check we don't have content in 
315         standard_session_servicedirs tag
316
317 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
318
319         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
320         Packagers need to own this directory
321
322 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
323
324         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
325         <standard_session_servicedirs> tag with a <sevicedir> tag that
326         points to the test service directory
327
328 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
329
330         * configure.in: Add a check for DIR *dirp->dd_fd
331
332         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
333         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
334         of both Solaris and Irix
335
336 2006-11-01  Havoc Pennington  <hp@redhat.com>
337
338         * bus/dbus-daemon.1.in: document standard_session_servicedirs
339
340 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
341
342         * configure.in: expose DBUS_DATADIR
343         
344         * bus/config-parser.c: add the standard_session_servicedirs element
345         to the parser
346         (bus_config_parser_content): process the standard_session_servicedirs
347         element by getting the standard directories from sysdeps and merging
348         them into the service directory list
349         (test_default_session_servicedirs): make sure we get what we expect
350
351         * bus/session.conf.in: replace the servicedir tag with the 
352         standard_session_servicedirs tag
353
354         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
355         dbus-sysdeps.h to avoid circular header dependencies
356
357         * dbus/dbus-sysdeps.h: add the typedef of DBusList
358
359         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
360         which takes a string of directories delimited by colons, parses them 
361         out, appends a suffix and puts them in a list ignoring empty elements
362         (_dbus_get_standard_session_servicedirs): returns the standard 
363         directories for a session bus to look for service activation files
364         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
365         DBUS_DATADIR directories
366
367         * test/data/valid-config-files/many-rules.conf: add the 
368         standard_session_servicedirs tag to the valid config file tests
369
370 2006-10-30  Havoc Pennington  <hp@redhat.com>
371
372         * tools/dbus-launch.1, doc/TODO: capture intent to change the
373         command line options of dbus-launch a bit post 1.0
374
375 2006-10-27  Havoc Pennington  <hp@redhat.com>
376         
377         * dbus/dbus-connection.c (dbus_connection_open_private): document
378         how to choose shared vs. private connections
379
380 2006-10-27  Havoc Pennington  <hp@redhat.com>
381
382         * dbus/dbus-test.c: enclose more of the file in the
383         DBUS_BUILD_TESTS check.
384
385         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
386         DBUS_DISABLE_ASSERT case.
387
388         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
389         that it only works on the server side
390
391         * dbus/dbus-bus.c: add a global lock covering the BusData we
392         attach to each connection
393         (internal_bus_get): lock our access to the BusData
394         (dbus_bus_register): lock the entire registration process
395         with _DBUS_LOCK(bus_datas). If we get the lock and 
396         registration is already complete, silently return (vs. previous
397         behavior of aborting).
398         (dbus_bus_set_unique_name): lock the BusData
399         (dbus_bus_get_unique_name): lock the BusData
400
401 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
402
403         * bus/config-parser.c (service_dirs_find_dir, 
404         service_dirs_append_unique_or_free, 
405         service_dirs_append_link_unique_or_free): New static methods
406         for only appending unique service directory names into
407         the service directory list
408         (merge_included, bus_config_parser_content): Only add unique
409         service directory names into the list
410
411 2006-10-27  Havoc Pennington  <hp@redhat.com>
412
413         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
414         variables volatile, suggested by Thiago. Document struct fields.
415         (PTHREAD_CHECK): remove pthread error checking if assertions are
416         disabled, should reduce the no-assertions case to the bare
417         minimum code.
418
419 2006-10-26  Havoc Pennington  <hp@redhat.com>
420         
421         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
422         to be recursive
423         (_dbus_pthread_mutex_unlock): make it recursive
424         (_dbus_pthread_condvar_wait): save/restore the recursion count
425         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
426
427 2006-10-26  Havoc Pennington  <hp@redhat.com>
428
429         * doc/dbus-specification.xml: clarify the UUID text slightly
430
431         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
432         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
433         in preparation for being able to extend them for e.g. recursive
434         mutexes.
435
436 2006-10-26  Havoc Pennington  <hp@redhat.com>
437
438         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
439         condition variables relate to recursive mutexes.
440         
441         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
442         dbus/dbus-threads.c: Split the platforms-specific thread 
443         implementations into their own files.
444         
445         * dbus/dbus-sysdeps-pthread.c
446         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
447         was backward. Not that anything uses it.
448
449 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
450
451         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
452         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
453         needs to be cleaned up more.
454
455         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
456         up the CREDS issue.
457
458 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
459
460         * configure.in, dbus-1.pc.in: Check to see if thread methods 
461         are in glibc or libpthread and add -lpthread to the link stage 
462         if it is the latter
463
464 2006-10-26  Thiago Macieira  <thiago@kde.org>
465
466         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
467         bug 8780: the connection lock is only required while recording
468         the shared connection, so protect only that code
469         section. Don't require connection_lookup_shared to return a
470         locked connection.
471
472 2006-10-26  Thiago Macieira  <thiago@kde.org>
473
474         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
475         check if get_machine_uuid() returns NULL before proceeding any
476         further: we can't init the X atoms or create a session file
477         name if there is no machine ID.
478         This solves a crash reported by some users if
479         --exit-with-session was used without --autolaunch=<machine-id>
480
481 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
482
483         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
484         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
485
486         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
487         before we run dbus-launch
488
489         * configure.in: define TEST_BUS_BINARY to be the full path to 
490         dbus-daemon in the build root 
491
492 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
493
494         * dbus/Makefile.am:
495         * tools/Makefile.am:
496         * toos/dbus-uuidgen.1:
497                 Move the machine-id file to /var/lib/dbus 
498
499 2006-10-24  David Zeuthen  <davidz@redhat.com>
500
501         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
502         _dbus_assert (thread_init_generation != _dbus_current_generation)
503         not _dbus_assert (thread_init_generation == _dbus_current_generation)
504
505 2006-10-24  Thiago Macieira  <thiago@kde.org>
506
507         * dbus/dbus-sysdeps.h:
508         * dbus/dbus-sysdeps-unix.c: Add function
509         _dbus_make_file_world_readable that chmods a file to 0644.
510
511         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
512         Avoid writing to the static "argv" array, thereby avoiding a
513         COW on the child process.
514
515         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
516         call _dbus_make_file_world_readable on the created file.
517
518 2006-10-23  David Zeuthen  <davidz@redhat.com>
519
520         * dbus/dbus-memory.c: Use atomic variable to protect
521         n_blocks_outstanding otherwise OOM will be reported using SMP on
522         some arches
523         
524         * bus/dispatch.c: Add missing end of line characters
525
526         * bus/desktop-file.c (parse_section_start, parse_key_value) 
527         (bus_desktop_file_load): Propertly handle OOM
528
529         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
530         thread_init_generation equals _dbus_current_generation, not 0
531
532 2006-10-22  Havoc Pennington  <hp@redhat.com>
533
534         * dbus/dbus-connection-internal.h: move prototype of
535         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
536         it isn't in a public header and doesn't end up in the DBusBus
537         group in Doxygen
538
539 2006-10-21  Havoc Pennington  <hp@redhat.com>
540
541         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
542         the tarball if packagers want to run it
543
544         * cleanup-man-pages.sh: Add a script which munges all the internal
545         API man pages out of the Doxygen output. This reduces the size of
546         the installed man pages from 7 to 2 megs, and avoids
547         namespace-polluting pages. Right now (like Doxygen) this script
548         isn't in the build, it's something packagers can do manually.
549
550 2006-10-21  Havoc Pennington  <hp@redhat.com>
551
552         * dbus/dbus-connection.h: don't include the watch/timeout
553         functions in connection section
554
555 2006-10-21  Havoc Pennington  <hp@redhat.com>
556
557         * Documentation! Whee! Doxygen now 100% silent. If you make it
558         angry again, you will be punished.
559         
560 2006-10-21  Havoc Pennington  <hp@redhat.com>
561
562         * More documentation - all public API now documented according to
563         Doxygen
564
565 2006-10-21  Havoc Pennington  <hp@redhat.com>
566
567         * Document a bunch of undocumented stuff
568         
569 2006-10-21  Havoc Pennington  <hp@redhat.com>
570
571         * Clean up Doxygen group markers for public API so Doxygen finds
572         everything (not comprehensively fixed for private API).
573         Means all remaining Doxygen warnings are just about missing docs
574         and thus pretty simple to resolve.
575         
576 2006-10-21  Havoc Pennington  <hp@redhat.com>
577         
578         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
579
580         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
581         as DBUS_GNUC_DEPRECATED
582
583 2006-10-21  Havoc Pennington  <hp@redhat.com>
584
585         * Move all private API into the private Doxygen group sections of
586         the files, so they don't show up in the public API docs
587         
588 2006-10-21  Havoc Pennington  <hp@redhat.com>
589
590         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
591         dbus_message_iter_get_array_len().
592
593         * throughout: documentation improvements.
594
595 2006-10-20  Havoc Pennington  <hp@redhat.com>
596
597         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
598         matter, and the message-loader-breaker thing since nobody is going
599         to do it.  Add an item to 1.0 about supporting recursive locks
600         in dbus_threads_init_default() though, since it should be easy.
601
602         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
603         Fix this in the !dispatch case to avoid busy-looping after
604         disconnection
605
606         * More misc docs improvements
607
608 2006-10-19  Havoc Pennington  <hp@redhat.com>
609
610         * more Doxygen-related fixes (lots of moving things from the
611         public to internal section in dbus-connection.c)
612
613 2006-10-19  Havoc Pennington  <hp@redhat.com>
614
615         * Fix a pile of Doxygen warnings and missing docs
616
617 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
618
619         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
620         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
621         instead of a void *.  kqueue uses this to get the context's loop
622         while the other modules ignore the parameter.  This allows us to
623         avoid platform conditionals
624
625         * bus/bus.c (process_config_postinit): Pass in the context to the 
626         watch
627
628 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
629
630         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
631         when starting the system bus
632
633 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
634
635         * configure.in: More fixups for cross compile (Patch from 
636         Marco Pracucci <development at pracucci dot com>)
637
638 2006-10-17  Havoc Pennington  <hp@redhat.com>
639
640         * tools/dbus-send.c (main): don't close shared connection, fix
641         from Timo Hoenig
642
643 2006-10-17  Havoc Pennington  <hp@redhat.com>
644
645         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
646
647         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
648         since realistically it doesn't look like we'll be changing it
649         anymore.
650
651 2006-10-17  Havoc Pennington  <hp@redhat.com>
652
653         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
654         be used for return_if_fail type warnings; prefixes the pid, and
655         fatal by default.
656
657 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
658
659         * configure.in: Released 1.0 RC 2(0.94)
660         Add check for -fPIC and enable it if available
661
662 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
663
664         * doc/TODO: Remove the check TODO item
665
666 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
667
668         * dbus-transport-socket.c (exchange_credentials):
669         Print out more detailed errors if reading or sending
670         credentials fail (Patch from Julio M. Merino Vidal 
671         <jmmv at NetBSD dot org>)
672
673 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
674
675         * configure.in: when checking for posix getpwnam_r assume true
676         for cross compiles
677
678 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
679
680         * configure.in: Check for gethostbyname first before we check for it
681         in libnsl.  On gnu systems it is implemeneted 
682
683 2006-10-13  Havoc Pennington  <hp@redhat.com>
684
685         * dbus/dbus-connection.c
686         (dbus_connection_send_with_reply_and_block): fix to handle closed
687         connections, from Tambet Ingo bug #8631
688
689 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
690
691         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
692
693 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
694
695         * test/name-test/Makefile.am: don't link against both libdbus and
696         libdbus-convenience
697
698 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
699
700         * configure.in: check for dirfd even if it is a macro
701         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
702
703 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
704
705         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
706         avoid using dirfd on systems that don't have dirfd 
707         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
708
709 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
710
711         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
712         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
713
714         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
715         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
716         macro because _dbus_abort calls it
717
718         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
719         works
720
721 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
722
723         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
724         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
725
726 2006-10-02  Thiago Macieira  <thiago@kde.org>
727
728         * tools/dbus-launch.c (main): make it complain and abort
729         execution in case an unknown option is given. Also, process
730         the '--' argument as the end of arguments.
731
732 2006-10-01  Havoc Pennington  <hp@redhat.com>
733
734         * tools/dbus-launch.c (print_variables): if no syntax is given,
735         don't print something that's sort-of-half-sh-syntax, just print
736         a plain key-value pairs thing.
737
738         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
739         the local machine representation (but still have the hostname in
740         the display). Remove the hostname from the display if it is
741         localhost. Change session files to be named
742         ~/.dbus/session-bus/machine-display. Change X atoms to be
743         underscore-prefixed so nobody whines about ICCCM compliance.
744         Otherwise name them the same as the env variables.
745         Change session file format to include key-value pairs and an
746         explanatory comment. Keys are the same as the env variables.
747         (set_address_in_x11): X property format can't depend on
748         sizeof(pid_t) on a particular machine, fix to always be 32 bits
749
750         * tools/dbus-launch.c: make --autolaunch take a machine id
751         argument. If --autolaunch is used with a program to run, complain
752         for now (but add a FIXME). Also, don't look for existing bus if 
753         there's a program to run (but add a FIXME).
754
755         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
756         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
757         just to get this, and avoids duplicating uuid-reading code).
758
759         * tools/dbus-launch.1: clarify various things
760         
761 2006-10-01  Havoc Pennington  <hp@redhat.com>
762
763         * test/test-service.c (path_message_func): remove broken extra
764         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
765
766         * test/test-shell-service.c (path_message_func): same fix
767         
768         * dbus/dbus-connection.c
769         (_dbus_connection_get_dispatch_status_unlocked): break up the
770         function a little for clarity and fix the notification of
771         dbus-bus.c to not require dispatch to be complete
772
773         * dbus/dbus-connection.c (dbus_connection_unref): improve the
774         warning when you try to finalize an open connection.
775         
776 2006-10-01  Havoc Pennington  <hp@redhat.com>
777
778         * dbus/dbus-bus.c
779         (internal_bus_get): only weak ref the connection; this means 
780         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
781         called safely in any context
782         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
783         unref
784
785         * dbus/dbus-connection.c
786         (_dbus_connection_get_dispatch_status_unlocked): move
787         _dbus_bus_notify_shared_connection_disconnected_unlocked here
788         when queuing Disconnected instead of when the Disconnected message
789         arrives, so dbus_bus_get() won't return closed connections.
790         
791 2006-10-01  Havoc Pennington  <hp@redhat.com>
792
793         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
794         Add a hack to make DBusNewConnectionFunction work right.
795
796         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
797         the hack here. Also, fix the todo about refcount leak.
798         
799         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
800         and use the hack here
801         
802         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
803         "shareable" flag; this was completely broken, since it meant 
804         dbus_connection_open() returned a connection of unknown
805         shared-ness. Now, we always hold a ref on anything opened 
806         as shareable.
807
808         Move the call to notify dbus-bus.c into
809         connection_forget_shared_unlocked, so libdbus consistently forgets
810         all its knowledge of a connection at once. This exposed numerous
811         places where things were totally broken if we dropped a ref inside
812         get_dispatch_status_unlocked where
813         connection_forget_shared_unlocked was previously, so move
814         connection_forget_shared_unlocked into
815         _dbus_connection_update_dispatch_status_and_unlock. Also move the
816         exit_on_disconnect here.
817
818         (shared_connections_shutdown): this assumed weak refs to the
819         shared connections; since we have strong refs now, the assertion 
820         was failing and stuff was left in the hash. Fix it to close
821         still-open shared connections.
822         
823         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
824         debug pipe connections
825         
826         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
827         dbus-bus.c if the closed connection is in fact shared
828         (_dbus_connection_close_possibly_shared): rename from 
829         _dbus_connection_close_internal
830         (dbus_connection_close, dbus_connection_open,
831         dbus_connection_open_private): Improve docs to explain the deal
832         with when you should close or unref or both
833
834         * dbus/dbus-bus.c
835         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
836         from _dbus_bus_check_connection_and_unref_unlocked and modify to
837         loop over all connections
838
839         * test/test-utils.c (test_connection_shutdown): don't try to close
840         shared connections.
841
842         * test/name-test/test-threads-init.c (main): fix warnings in here
843
844         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
845         env variable to cause blocking waiting for gdb; drop
846         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
847         unconditionally.
848
849         * configure.in: add -export-dynamic to libtool flags if assertions enabled
850         so _dbus_print_backtrace works.
851
852         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
853         instead of _dbus_verbose to print the backtrace, and diagnose lack 
854         of -rdynamic/-export-dynamic
855         
856 2006-09-30  Havoc Pennington  <hp@redhat.com>
857
858         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
859         (internal_bus_get): fix screwy code formatting. whoever committed
860         that was not paying attention!
861
862 2006-09-30  Havoc Pennington  <hp@redhat.com>
863
864         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
865         reflect addition of interfaces.
866
867         * doc/dbus-specification.xml: describe a new
868         org.freedesktop.DBus.Peer.GetMachineId method
869
870         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
871         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
872         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
873         at end of skip_white
874         (_dbus_string_chop_white): new function
875
876         * bus/connection.c (bus_connections_setup_connection): call
877         dbus_connection_set_route_peer_messages.
878
879         * dbus/dbus-connection.c
880         (_dbus_connection_peer_filter_unlocked_no_update): modify to
881         support a GetMachineId method.
882
883         Also, support a new flag to let the bus pass peer methods through
884         to apps on the bus, which can be set with
885         dbus_connection_set_route_peer_messages.
886
887         Finally, handle and return an error for anything unknown on the
888         Peer interface, which will allow us to extend the Peer interface
889         in the future without fear that we're now intercepting something
890         apps were wanting to see.
891         
892         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
893         dbus/dbus-uuidgen.c
894
895         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
896         binary here, since most of the code is already in libdbus
897
898         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
899         uuid from the system config file
900
901         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
902         (_dbus_read_uuid_file_without_creating) 
903         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
904         uuid-related functions, partly factored out from dbus-server.c
905
906         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
907         DBUS_ERROR_FILE_EXISTS instead of EEXIST
908
909         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
910
911         * tools/dbus-cleanup-sockets.1: explain what the point of this
912         thing is a bit more
913
914         * autogen.sh (run_configure): add --config-cache to default
915         configure args
916
917         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
918         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
919
920         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
921         don't try to save address, fixes crash in make check
922         
923 2006-09-30  Thiago Macieira  <thiago@kde.org>
924
925         * configure.in: add DBUS_BINDIR as a #define to C source code.
926
927         * tools/dbus-launch.c
928         * tools/dbus-launch.h
929         * tools/dbus-launch-x11.c:
930         * tools/dbus-launch.1: Add the --autolaunch option to
931         dbus-launch, which makes it scan for an existing session
932         started with --autolaunch. With that option, it also creates
933         an X11 window and saves the bus address and PID to it.
934
935         * dbus/dbus-sysdeps.h:
936         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
937         a function that runs "dbus-launch --autolaunch" to retrieve
938         the running D-Bus session address (or start one if none was running)
939
940         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
941         address protocol, which tries to get the running session from
942         dbus-launch.
943
944         * dbus/dbus-bus.c:
945         * dbus/dbus-internals.h: Make "autolaunch:" be the default
946         D-Bus session bus address.
947
948         * dbus/dbus-connection.c: Fix horrible typo in error message.
949
950 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
951
952         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
953
954 2006-09-17  Havoc Pennington  <hp@redhat.com>
955
956         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
957         fix so that if unix_user_function is set on windows, we still
958         do the default check that the auth identity matches the bus identity
959
960 2006-09-16  Havoc Pennington  <hp@redhat.com>
961
962         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
963         to _dbus_transport_open_platform_specific,
964         _dbus_transport_open_socket,
965         and _dbus_transport_open_debug_pipe
966
967         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
968
969 2006-09-16  Havoc Pennington  <hp@redhat.com>
970
971         Attempt auditing public API to remove all cases where a Unix
972         function returns weird emulated goo to Windows. This probably 
973         breaks the bus daemon on Windows, to fix it again we may 
974         need to stop processing unix-specific config options on Windows,
975         and may need to add Windows-specific public API or config options.
976         
977         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
978         to reflect added interfaces; should not break soname.
979         
980         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
981         not invoke unix user function on Windows. Kind of a hacky fix, but 
982         we don't want a "unix uid" leaking out on Windows.
983
984         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
985         to get the socket fd on Windows or UNIX
986         (dbus_connection_get_unix_fd): make this always fail on Windows
987
988 2006-09-16  Havoc Pennington  <hp@redhat.com>
989
990         * dbus/dbus-server.c (dbus_server_listen): change how this works
991         to be able to delegate to a set of handlers that can succeed,
992         fail, or choose not to handle. Allows us to have 
993         dbus_server_listen_platform_specific.
994
995         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
996         factor out the tcp socket stuff to be used on windows, leaving
997         unix domain socket only in dbus-socket-unix.c
998
999         * dbus/dbus-transport-socket.c
1000         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1001         stuff to be used on windows, leaving unix domain socket only 
1002         in dbus-transport-unix.c
1003
1004         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1005         temporary hack to be sure this fails on windows
1006         (dbus_connection_get_unix_process_id): ditto
1007
1008 2006-09-16  Havoc Pennington  <hp@redhat.com>
1009
1010         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1011         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1012         _dbus_open_socket so the domain/type/protocol from system headers
1013         are not required. This is kind of pointless though unless we move
1014         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1015         sysdeps-unix.c, which would mean adding a wrapper around
1016         bind/listen/etc.
1017         Also, add DBusError to the socket-opening functions so they 
1018         don't require use of errno.
1019
1020 2006-09-16  Havoc Pennington  <hp@redhat.com>
1021
1022         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1023         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1024
1025         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1026         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1027         functions specifically for sockets only, and move generic 
1028         read/write/open/close into unix-specific code.
1029
1030 2006-09-14  Havoc Pennington  <hp@redhat.com>
1031
1032         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1033         complaint about accessing revents when poll returns 0, from Julian Seward.
1034
1035 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1036
1037         * Released 1.0 RC 1 (0.93) 
1038
1039 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1042         use _dbus_close instead of close
1043
1044 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1047         credentials.  Fixes "external" authentication under e.g. NetBSD
1048         which does not support any other socket credentials mechanism.
1049         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1050
1051 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1052
1053         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1054         dbus_threads_init and be used by the dbus mutex functions to
1055         avoid deadlocks.
1056
1057         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1058
1059 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1060
1061         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1062         use threadsafe readdir_r instead of readdir
1063
1064 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1065
1066         * dbus-threads.c (dbus_threads_init_default): New method for
1067         initializing the internal thread implementation (Patch from
1068         Alexander Larsson <alexl at redhat dot com>)
1069
1070 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1071
1072         * remove a bunch of todo items from the 1.0 list
1073
1074 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1075
1076         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1077         key not found
1078
1079 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1080
1081         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1082         complex debugging code
1083
1084         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1085         between the test suite ifdefs
1086         (_dbus_verbose_bytes): return if verbosity is not enabled 
1087
1088 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1089
1090         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1091         remove DBusMark
1092
1093 2006-09-10  Havoc Pennington  <hp@redhat.com>
1094
1095        patch mostly by Peter Kümmel, bug #8211
1096         
1097         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1098         unix-specific stuff in dbus-sysdeps.c
1099
1100         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1101         and move unix-specific stuff to dbus-sysdeps-unix.c
1102
1103         * configure.in: check HAVE_ERRNO_H
1104         
1105 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1106
1107         * bus/test-main.c (main): Initialize threading during tests
1108
1109         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1110         Unlock connection on error
1111         (generate_local_error_message): static method for generating
1112         an error message when we don't have a message to reply to
1113         (_dbus_connection_block_pending_call): Send a disconnect error
1114         instead of just a timeout (NULL) when the bus gets disconnected
1115         while blocking for a reply.
1116         
1117 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1118
1119         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1120         filters (Patch from Kimmo Hämäläinen 
1121         <kimmo dot hamalainen at nokia dot com>)
1122
1123 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1124
1125         * dbus/dbus-connection-internal.h: Add prototype for 
1126         _dbus_connection_test_get_locks to remove warning
1127
1128 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1129
1130         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1131         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1132         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1133
1134 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1135
1136         * Clean up close calls to use _dbus_close (Patch from 
1137         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1138
1139 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1140
1141         * doc/TODO:
1142         - Remove pending call locking todo item
1143         - dbus_connection_open now holds hard ref.  Remove todo item
1144         - do proper locking on _dbus_bus_check_connection_and_unref
1145           and handle DBUS_BUS_STARTER. Remove todo item
1146         - Warn on closing of a shared connection.  Remove todo item
1147
1148         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1149         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1150         so we don't get the warning when closing shared connections
1151
1152         * test/test-service.c, test/test-shell-service.c: Applications
1153         don't close shared connections themselves so we unref instead of
1154         close
1155
1156         * test/test-utils.c (test_connection_shutdown): Close the connection
1157
1158         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1159         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1160         method on a locked connection.  
1161         Make sure we call _dbus_connection_unref_unlocked instead of 
1162         dbus_connection_unref also.
1163         Handle DBUS_BUS_STARTER correctly
1164
1165         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1166         Mark as shared and hard ref the connection
1167         (connection_forget_shared_unlocked): Remove the hard ref from the 
1168         connection
1169         (_dbus_connection_close_internal_and_unlock):  New internal function
1170         which takes a locked connection and unlocks it after closing it
1171         (_dbus_connection_close_internal): New internal function which acts
1172         like the origonal dbus_connection_close method by grabbing a connection
1173         lock and calling _dbus_connection_close_internal_and_unlock
1174         (dbus_connection_close): Public close method, warns when the app
1175         trys to close a shared connection
1176
1177 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1178
1179         * bus/driver.c:
1180         (bus_driver_generate_introspect_string): New method for populating
1181         a DBusString with the introspect data
1182         (bus_driver_handle_introspect): Move introspect generation code to 
1183         bus_driver_generate_introspect_string
1184
1185         * bus/main.c:
1186         (introspect): New function which prints out the intropect data and
1187         exits
1188         (main): Add a --introspect switch
1189
1190 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1191
1192         * doc/TODO: Removed dtd publishing item.  
1193         It seems the dtd has already been added at
1194         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1195
1196 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1197
1198         * doc/TODO, various source files: Audited todo's and FIXME's and
1199         prepended the ones we should be looking at with 1.0.  Those
1200         prepended with 1.0? need clerification or might not be needed
1201         for 1.0
1202
1203 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1204
1205         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1206         NULL in the public API (Patch from Kimmo Hämäläinen 
1207         <kimmo dot hamalainen at nokia dot com>)
1208
1209 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * configure.in: Fix for OS-X compile time endian issues (patch from
1212         Benjamin Reed <ranger at befunk dot com>)
1213
1214 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1215
1216         * configure.in: Check for no-common compiler flag (OS-X fix from
1217         Benjamin Reed <ranger at befunk dot com>)
1218
1219 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1220
1221         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1222         <fcrozat at mandriva dot com>)
1223
1224 2006-08-29  Havoc Pennington  <hp@redhat.com>
1225
1226         * test/test-service.c (path_message_func): fix lack of return value
1227
1228         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1229         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1230         any more sense than on anything else in this file.
1231         (_dbus_get_tmpdir): add const to return value, and keep the
1232         results of the various getenv around in a static variable.
1233
1234 2006-08-29  Havoc Pennington  <hp@redhat.com>
1235
1236         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1237         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1238
1239 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1240
1241         * test/Makefile.am: change find to use syntax that works with non
1242         gnu versions of find
1243
1244 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1245
1246         * dbus/dbus-transport.c: fix invalid deref when checking if
1247         a vtable method exists (Patch from Christian Ehrlicher 
1248         <ch dot ehrlicher at gmx dot de>)
1249
1250 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1251
1252         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1253         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1254         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1255         <bernard at brenda-arkle dot demon dot co dot uk>)
1256
1257 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1258
1259         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1260         default case
1261
1262 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1263
1264         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1265         it works on any system providing this interface, not only FreeBSD.
1266         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1267
1268 2006-08-20  Havoc Pennington  <hp@redhat.com>
1269
1270         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1271         the docs
1272
1273 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1274
1275         * Released 0.92 
1276
1277 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1280         to reflect the init late change
1281
1282         * bus/bus.c (bus_context_new): Check user before we fork so we can
1283         print out an error message a user will be able to see
1284
1285 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1286
1287         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1288
1289         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1290         Add two more global locks for use on windows platforms.  These are
1291         unused on non-windows platforms but are not ifdefed out to avoid
1292         potential bugs (i.e. the few bytes lost does not warrent the extra
1293         maintanence and complexity that having seperate sets of locks would
1294         cause)
1295
1296 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * bus/services.c (bus_registry_acquire_service): Return an error
1299         when an application tries to register the org.freedesktop.DBus Bus Name
1300
1301         * bus/services.c (bus_registry_release_service): Return an error
1302         when an application tries to release the org.freedesktop.DBus Bus Name
1303
1304 2006-08-17  Alp Toker  <alp@atoker.com>
1305
1306         * doc/dbus-specification.xml: Fix some minor typos.
1307
1308 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * configure.in: use $with_init_scripts instead of $operating_system
1311         to determine where to store the pid since the init scripts manipulate 
1312         the pid file (patch from Marcelo Ricardo Leitner 
1313         <marcelo dot leitner at terra dot com dot br>.  
1314
1315 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1316
1317         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1318         static DBusList *uninitialized_condvar_list to support new late 
1319         initialization threading model.  In this model threads can be initialized
1320         even after the D-Bus API has been used but still needs to be initialized 
1321         before the second thread has been started.  Mutexes and condvar addresses
1322         are stored in the two static lists and are replaced with actuall locks
1323         when threads are initalized.
1324         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1325         the location into the static list
1326         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1327         from the static list and freeing the mutex
1328         (_dbus_condvar_new_at_location): New method for creating a conditional 
1329         variable and placing the location into the static list
1330         (_dbus_condvar_free_at_location): New method for removing a conditional
1331         variable location from the static list and freeing the conditional variable 
1332         (init_uninitialized_locks): Atomic method which goes through the static 
1333         lists of mutex and condvar location and updates them with actuall locks
1334         (init_global_locks): changed to init_locks
1335         
1336         * dbus/dbus-connection.c:
1337         (_dbus_connection_test_get_locks): New method for tests to check connections
1338         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1339         condvar API
1340         (dbus_connection_allocate_data_slot): Pass in the global lock address
1341         to _dbus_data_slot_allocator_alloc
1342
1343         * dbus/dbus-dataslot.c:
1344         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1345         instead of the mutex itself
1346
1347         * dbus/dbus-message.c:
1348         (dbus_message_allocate_data_slot): Pass in the global lock address
1349         to _dbus_data_slot_allocator_alloc
1350
1351         * dbus/dbus-pending-call.c:
1352         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1353         to _dbus_data_slot_allocator_alloc
1354
1355         * dbus/dbus-server.c:
1356         (_dbus_server_init_base): Use the new at_location mutex API
1357         (dbus_server_allocate_data_slot): Pass in the global lock address
1358         to _dbus_data_slot_allocator_alloc
1359
1360         * test/name-test/test-threads-init.c: New test case for late thread
1361         initialization
1362
1363 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1366         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1367         causes compile problems when asserts are turned off
1368         Keeping _dbus_warn for printing out the message so even if
1369         asserts are turned off the user gets the messages that something is 
1370         wrong 
1371
1372 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1373
1374         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1375
1376         * bus/services.c (bus_service_list_queued_owners):
1377         Add a pointer cast to fix compiler warning
1378
1379         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1380         return a NULL instead of FALSE since the return type
1381         is not expecting a boolean
1382
1383         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1384         Remove unused variable
1385
1386         * dbus/dbus-marshal-recursive-util.c (node_new):
1387         return a NULL instead of FALSE since the return type
1388         is not expecting a boolean
1389
1390         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1391         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1392         because we are expecting a pointer not a boolean
1393
1394         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1395         add void as the parameter so some compilers
1396         don't complain
1397
1398         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1399           _dbus_transport_new_for_tcp_socket):
1400         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1401         because we are expecting a pointer not a boolean
1402
1403         * test/shell-test.c (test_command_line):
1404         cast the second argument to _dbus_list_append to avoid compiler
1405         warnings
1406
1407         * test/test-names.c (main): remove unused variable
1408
1409         * test/test-service.c (check_hello_from_self_reply):
1410         Initialize echo_message and echo_reply to NULL
1411         
1412         * test/test-shell-service.c (handle_echo):
1413         Remove unused variable and cast the third parameter passed to
1414         dbus_connection_get_object_path_data to avoid compiler warrnings
1415
1416         * test/name-test/test-names.c (clear_message_queue):
1417         Remove unused function
1418
1419         * test/name-test/test-pending-call-dispatch.c:
1420         Fix format string in printf
1421
1422
1423 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1424
1425         * dbus/dbus-bus.c:
1426         * test/name-test/test-names.c:
1427         Remove test method dbus_bus_connection_get_unique_name because 
1428         we already have public method dbus_bus_get_unique_name that 
1429         does the exact same thing
1430
1431 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1432
1433         * dbus/dbus-signature.c:
1434         fix typos in Julio's previous patch which cause make check to fail
1435
1436 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1437
1438         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1439         In any case it was wrong since this is a test checking to see if
1440         address parsing is correct.  There was no need to get the true
1441         tmp directory.  
1442
1443 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1444
1445         * dbus/dbus-macros.h: Revert the addition of stddef.h
1446         as we should not be adding it to library headers 
1447
1448 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1449
1450         * dbus/dbus-signature.c:
1451         Fix the unit tests so that they work if assertions are not enabled.
1452         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1453
1454 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1455
1456         * tools/run-with-tmp-session-bus.sh:
1457         * test/name-test/run-test.sh:
1458         Remove bashisms (patch from Julio M. Merino Vidal
1459         <jmmv at NetBSD dot org>)
1460
1461 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * configure.in: add a version (>= 2.6.0) check for libxml2
1464
1465 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1466
1467         * configure.in: make sure the compiler supports -Wfloat-equal
1468         
1469         * bus/dir-watch-dnotify.c: move functional code after 
1470         variable declerations (C99 fix)  (patches from Jens Granseuer
1471         <jensgr at gmx dot net>
1472
1473 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * dbus/dbus-macros.h:
1476         add #include <stddef.h> so that Sun compilers don't complain about
1477         the defining NULL
1478
1479 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1480
1481         * dbus/dbus-sysdeps.c:
1482         * dbus/dbus-address.c:
1483         * bus/activation.c:
1484         * test/shell-test.c:
1485         don't hardcode tmp directory (patch from Dave Meikle 
1486         <dmk at davemeikle dot co dot uk>)
1487
1488 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1489
1490         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1491         Change an assert to a detailed warning and abort.  
1492         When allocator->lock != mutex it indicates that the user has failed
1493         to initalize threads before using the D-Bus library.  This warning
1494         helps the user identify the issue and fix their app.
1495
1496 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1497
1498         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1499         with cleanups of bugs found from Coverity reports:
1500
1501         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1502         close the file on error to avoid a leak
1503
1504         * bus/expirelist.c (bus_expire_list_test):
1505         Check for NULL on dbus_new0
1506
1507         * bus/activation.c (update_directory):
1508         remove dead code
1509
1510         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1511         Fix some leaks
1512
1513         * bus/bus.c (process_config_every_time):
1514         Fixed a leak
1515
1516         * bus/desktop-file.c (parse_key_value):
1517         Fixed leak
1518
1519         * bus/selinux.c (bus_selinux_id_table_insert):
1520         Fixed leak
1521
1522 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1525         remove dead code
1526
1527 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1528
1529         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1530         #!/bin/bash
1531
1532 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1533
1534         * Doxyfile.in: fix the INPUT line so we can generate docs 
1535         when sourcedir != builddir (patch from Cygwin Ports maintainer
1536         <yselkowitz at users dot sourceforge dot net>
1537
1538 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1539
1540         * dbus/dbus-sysdeps.h:
1541         * dbus/dbus-sysdeps.c: 
1542         * dbus/dbus-string.c: 
1543         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1544         GLib's function which does the same thing
1545
1546         * configure.in:
1547         * bus/Makefile.am:
1548         * bus/dir-watch-default.c:
1549         * bus/dir-watch-dnotify.c:
1550         * bus/dir-watch-kqueue.c:
1551         Add kqueue directory watching for freebsd and split the directory
1552         watching code into seperate files per method/arch
1553         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1554
1555 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1556
1557         * configure.in:
1558         * tools/Makefile.am:
1559         * tools/dbus-launch.c:
1560         * bus/Makefile.am:
1561         allow --with-dbus-daemondir switch to be used to make the
1562         daemon install to a seperate bindir like /usr/libexec
1563         (patch from Brian Cameron <brian dot cameron at sun dot com)
1564
1565 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1566
1567         * bus/Makefile.am (install-data-hook): removed the slash after 
1568         $(DESTDIR) so we don't get the double slash which does not work
1569         in windows (patch from Andras Porjesz 
1570         <andras dot porjesz at siemens dot com>)
1571
1572 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1573
1574         * dbus/dbus-sysdeps.h:
1575         * dbus/dbus-sysdeps.c: 
1576           add _dbus_printf_length (patch from Peter Kümmel 
1577           <syntheticpp at gmx dot net>)
1578
1579 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1580
1581         * dbus/dbus-internals.c: unistd.h is not used 
1582         (_dbus_verbose_real): only enable verbose printing 
1583         if DBUS_VERBOSE environment var is set to '1'
1584         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1585
1586 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1587
1588         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1589         so we still compile on older gcc (patch from Frederic Peters 
1590         <fpeters at 0d dot be>
1591
1592 2006-08-04  Havoc Pennington  <hp@redhat.com>
1593
1594         * configure.in: add -Wdeclaration-after-statement
1595
1596         * dbus/dbus-connection.c: change all the pending call stuff to
1597         reflect the fact that pending call operations use the connection
1598         lock
1599
1600         * dbus/dbus-pending-call.c: add locking here
1601
1602         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1603         field const consistent with how message field is done
1604
1605 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1606
1607         * s/D-BUS/D-Bus/g
1608
1609 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1610
1611         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1612         <in7y118 at public.uni-hamburg dot de> - fix invalid
1613         read/write reported by valgrind
1614
1615 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1616
1617         * Released 0.91
1618
1619 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1620
1621         * dbus/dbus-connection.c:
1622         (_dbus_connection_attach_pending_call_unlocked):
1623         (connection_timeout_and_complete_all_pending_calls_unlocked):
1624         Make sure we set timeout_added on pending calls to FALSE when
1625         we remove the timeout from the connection
1626
1627 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1628
1629         * Removed some extra bindings stuff lingering around (thanks timo)
1630         * dbus-pendingcall.c (_dbus_pending_call_new): 
1631         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1632         when we tried to take a lock on an already locked connection
1633
1634 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1635
1636         * Released 0.90
1637
1638 2006-07-17  Havoc Pennington  <hp@redhat.com>
1639
1640         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1641         ints, reported by Owen Taylor
1642
1643 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1644
1645         * doc/TODO:
1646         * dbus/dbus-bus.c:
1647         * dbus-errors.c:
1648         * dbus/dbus-marshal-validate.c:
1649           Removed TODO items which were fixed or are no longer relevent
1650
1651 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1654         Remove stray files from the stripped bindings
1655
1656 2006-07-16  Havoc Pennington  <hp@redhat.com>
1657
1658         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1659         Improve the error message on reply timeout
1660
1661 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1662
1663         * Remove all bindings
1664
1665 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1666
1667         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1668         and set pending_reply out arg to NULL is connection is disconnected
1669         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1670         static method for cleaning up pending calls on disconnect
1671         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1672         calls queued timeouts on disconnect 
1673
1674          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1675         Remove 
1676
1677 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1678
1679         * bus/activation.[ch] (bus_activation_list_services): new function to 
1680         get the list of services that can be activated
1681
1682         * bus/dispatch.c: test coverage for the new bus method
1683         ListActivatableNames
1684
1685         * bus/driver.c: new bus method ListActivatableNames to get the list of
1686         services that can be activated
1687
1688         * doc/dbus-specification.xml: ListActivatableNames method documentation
1689
1690 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1691         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1692         source files
1693
1694 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1695         * dbus/dbus-message-factory.c:
1696         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1697
1698 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1699         * dbus/dbus-connection-internal.h:
1700         * dbus/dbus-connection.c:
1701         * file dbus/dbus-pending-call.c:
1702         * dbus/dbus-pending-call.h:
1703         Make DBusPendingCall an opaque type even to D-Bus internals
1704
1705 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1706
1707         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1708         connection_close
1709
1710         * dbus/dbus-connection.c: include dbus-bus.h
1711         (_dbus_connection_read_write_dispatch): make static
1712
1713 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1714
1715         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1716         function
1717         (dbus_connection_dispatch): On disconnect unref any shared connections
1718
1719         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1720         for cleaning up shared connections on disconnect
1721         (internal_bus_get): get a hard refrence to shared connections when
1722         they are created
1723         
1724         * doc/TODO: Remove items which are no longer relevent or have been fixed
1725         Split 1.0 todo items with a 0.90 freeze todo list
1726  
1727 2006-06-14  Ross Burton  <ross@openedhand.com>
1728
1729         * glib/dbus-gobject.c:
1730         Free a leaking GArray (surely not!) in dbus_g_method_return.
1731
1732 2006-06-14  Ross Burton  <ross@openedhand.com>
1733
1734         * tools/Makefile.am:
1735         * tools/dbus-monitor.c:
1736         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1737         Habacker).
1738         
1739 2006-06-14  Ross Burton  <ross@openedhand.com>
1740
1741         * tools/dbus-print-message.c:
1742         Also print the object path when outputting signals or method calls.
1743
1744 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1745
1746         * qt/src/Makefile.am: install the qdbus.h header.
1747         This allows people to actually use the installed code.
1748
1749 2006-06-12  Ross Burton  <ross@openedhand.com>
1750
1751         * glib/dbus-gproxy.c:
1752         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1753
1754 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1755
1756         * Released 0.62
1757
1758 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1759
1760         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1761         break pedantic builds. Closes bug 6043 (patch approved by
1762         Havoc back in February).
1763
1764 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1765
1766         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1767         that took a QDBusMessage parameter.
1768         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1769         * qt/tools/dbus.cpp: Don't use automatic call because we might
1770         be calling an async method: request a reply.
1771
1772 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1773
1774         * test/qt/*: Update the testcases, including testing the new
1775         functionality of sending null QByteArray and QString over the
1776         bus. Add new headertest test and restore the old
1777         qdbusxmlparser test.
1778
1779 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1780
1781         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1782         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1783
1784         * qt/examples/Makefile.am:
1785         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1786         form.
1787
1788         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1789         QByteArray() (nulls) over the bus.
1790         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1791         the one that has the signature suffix stripped.
1792         * qt/src/qdbusreply.h: Make some methods const.
1793
1794 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1795
1796         Patch from Timo Hoenig <thoenig@suse.de>.
1797
1798         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1799         required during build to EXTRA_DIST.
1800         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1801         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1802         * configure.in: Fix "make dist", take care that the Makefile for
1803         qt/dbus is being generated.
1804
1805 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1806
1807         * bus/bus.c: Fix eavesdropping on method calls
1808
1809 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1810
1811         * configure.in:
1812         * dbus/dbus-userdb-util.c:
1813         Add Solaris console owner patch from Artem Kachitchkine
1814
1815 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1816
1817         * qt/Makfile.am:
1818         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1819         reorganisation. Thanks to Timo Hoenig for pointing this out.
1820
1821 2006-06-06  Robert McQueen  <robot101@debian.org>
1822
1823         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1824           call to dbus_g_type_get_struct.
1825
1826 2006-06-06  Robert McQueen  <robot101@debian.org>
1827
1828         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1829           pointers were put into a GPtrArray-based specialised collection, and
1830           then freed along with the array. GValues which you add into
1831           collections or maps which have the NOCOPY flag set are assumed to not
1832           belong to the caller, so rather than the existing pointer-stealing
1833           semantics, they are copied instead. Given that the main consumers of
1834           this abstraction are the bindings themselves, I don't think this is
1835           too bad, but others should watch their choice of take vs set_static.
1836
1837 2006-06-06  Robert McQueen  <robot101@debian.org>
1838
1839         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1840           of g_slist_prepend not being used. Fixed copying of slist-based
1841           specialised collections, then wrote a test case and found that it was
1842           all broken. Went on to fix iterating and appending too. Good thing
1843           nobody uses this code yet.
1844
1845 2006-06-06  Robert McQueen  <robot101@debian.org>
1846
1847         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1848           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1849           are discarded without unsetting, so it makes no difference whether
1850           we take or set_static). Remove cases for G_TYPE_POINTER because
1851           there really is nothing useful we can do with them in our
1852           specialised types - we *need* boxed copy/free functions at the very
1853           least.
1854
1855 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1856
1857         * qt/dbus: Add directory. I had forgotten to add this
1858         yesterday after the move...
1859
1860         * qt/examples/Makefile.am:
1861         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1862
1863         * qt/tools/Makefile.am:
1864         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1865         Added feature to get and set properties.
1866         Added validation of service, object path and interface names.
1867
1868         * qt/tools/dbusidl2cpp.cpp: Two new features:
1869         1) Allow specifying both the header and the source file names,
1870         by separating them with a colon.
1871         2) Don't write an interface output if the -p switch wasn't
1872         given, but the -a was.
1873
1874         * qt/src/*: Fix usage of Iterators and ConstIterators.
1875         Fix shadowing of variables by other variables (-Wshadow).
1876         Fix keyword-cleanliness in headers.
1877         Fix ASCII-cast (QLatin1String, QLatin1Char).
1878         Fix validation of member names.
1879         Add extra checking of introspection data during XML parsing.
1880         Various bug fixes.
1881
1882 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1883
1884         * dbus/Makefile.am:
1885         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1886         qt/dbus/qdbus.h now.
1887
1888 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1889
1890         * configure.in: Make --disable-qt actually do
1891           something. Patch inspired by Zack Rusin.
1892
1893 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1894
1895         * qt/: Update to Subversion r548032.
1896         This includes a big reorganisation of the files inside the
1897         subdir.
1898
1899 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1900
1901         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1902         clear:  
1903         "Failed to connect to socket <host>:<port> <error>" instead of
1904         "Failed to connect to socket <host>: <error>:<port>"
1905
1906         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1907         for a tcp transport. 
1908
1909 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1910
1911         * qt/*: Update the QtDBus bindings up to revision 546310 in
1912         Subversion.
1913         This adds the dbuscpp2xml tool, that parses a C++ header and
1914         outputs a D-BUS Introspection XML.
1915
1916 2006-05-21  Havoc Pennington  <hp@redhat.com>
1917
1918         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1919         is not NULL when it shouldn't be. Also a couple of possible fixes
1920         for #4637 though I don't understand why the bug happens, to be
1921         honest... also the object constructor has an assert name != NULL
1922         and the name is only currently NULL for peer-to-peer proxies that 
1923         I don't think anyone uses? So it should be asserting.
1924         Anyway, for now at least see if we get an earlier assertion failure.
1925
1926         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1927         apparently broken code to be sure the tests fail and someone 
1928         will fix them...
1929
1930 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1931
1932         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1933         and arrays when they had a single element: has_next returns
1934         false, even before you read the element. So, instead, check
1935         the array length.
1936
1937 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1938
1939         * qt/qdbusmessage.cpp:
1940         * qt/qdbustypehelper_p.h:
1941         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1942         the list is a const-reference
1943
1944 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1945
1946         * Adding old doc patch that never got applied
1947         
1948         * dbus/bus.c (dbus_bus_add_match): Add documentation
1949
1950         * doc/dbus-specification.xml: Add documentation for the match rules
1951           and the AddMatch and RemoveMatch methods
1952
1953 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1954
1955         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1956         call (r535506)
1957
1958         * qt/dbusidl2cpp.cpp:
1959         * qt/qdbusabstractadaptor.cpp:
1960         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1961         sibling of the QDBusAbstractAdaptor objects instead of the
1962         parent. (r535848)
1963
1964         * qt/dbusidl2cpp.cpp:
1965         * qt/qdbusabstractinterface.cpp:
1966         * qt/qdbusabstractinterface.h:
1967         * qt/qdbusabstractinterface_p.h:
1968         * qt/qdbusinterface.cpp: Make properties in interfaces
1969         actually work. The code that was generated would not compile,
1970         due to moc calls to functions that did not exist. They now
1971         shall. (r536571)
1972
1973 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1974
1975         * Makefile.am:
1976         * configure.in:
1977         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1978         Thanks to Brad Hards for providing the patch
1979
1980 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1981
1982         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1983         call. (r535506)
1984
1985 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1986
1987         * qt/examples/dbus.cpp: Enhance error messages and use
1988         QDBusInterfacePtr.
1989
1990 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1991
1992         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1993         and disable the copy operators. (r533772, r534746)
1994
1995         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1996
1997         * qt/qdbusabstractinterface.cpp:
1998         * qt/qdbusabstractinterface.h: Change the default call mode to
1999         not use the event loop. Add convenience call() methods that
2000         take a CallMode parameter. (r534042)
2001
2002         * qt/qdbusconnection.h: Change the default call mode to not
2003         use the event loop. (r534042)
2004
2005         * qt/qdbusinterface.cpp:
2006         * qt/qdbusinterface.h: Add a method to tell us if the
2007         interface is valid (since we don't return a null pointer
2008         anymore) (r534099)
2009
2010         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2011         (r534101)
2012
2013         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2014         function in two so taht we get the chance to introspect
2015         without having a QDBusMessage (r534102)
2016
2017         * qt/qdbusbus.h:
2018         * qt/qdbusconnection.cpp:
2019         * qt/qdbusconnection_p.h:
2020         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2021         avoid a round-trip to the server when attempting to introspect
2022         one of our own objects. Also make sure the filter functions
2023         match the empty interface as well. (r534108)
2024         Don't keep the connection names. Instead, trust the unique
2025         connection name (r534111)
2026         Remove event loop usage (r534112)
2027
2028 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2029
2030         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2031         Brad Hards.
2032
2033 2006-04-28  Robert McQueen  <robot101@debian.org>
2034
2035         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2036         any order, making it easier for people who inherit from this
2037         object.
2038
2039 2006-04-28  Robert McQueen  <robot101@debian.org>
2040
2041         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2042         of memory from within pointer arrays and lists. Fixes bug #6300.
2043
2044 2006-04-28  Robert McQueen  <robot101@debian.org>
2045
2046         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2047         generating struct signatures. Fixes bug #6083.
2048
2049 2006-04-28  Robert McQueen  <robot101@debian.org>
2050
2051         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2052         to qdbusconnection_p.moc.
2053
2054 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2055
2056         * README, INSTALL: Doc fixes
2057         Patch from Brad Hards <bradh at frogmouth.net>
2058
2059 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2060
2061         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2062         the dynamic meta object. No need to guess which interface to
2063         call.
2064
2065 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2066
2067         * qt/qdbusconnection_p.h:
2068         * qt/qdbusmetaobject.cpp:
2069         * qt/qdbusmetaobject_p.h:
2070         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2071         for the dynamic meta object. No need to guess which
2072         interface to call.
2073         * qt/qdbusabstractinterface_p.h:
2074         * qt/qdbusconnection.cpp:
2075         * qt/qdbusintegrator.cpp:
2076         * qt/qdbusinterface.cpp:
2077         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2078         Add a QDBusRef that looks and behaves like DCOPRef.
2079
2080 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2081
2082         * dbus/dbus-connection.c: Interfaces are optional in method
2083         calls, so don't give up if the interface parameter is NULL.
2084         Patch reviewed by Havoc Pennington.
2085
2086 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2087
2088         * qt/qdbusreply.h: Add default constructor and operator=
2089           (r532625)
2090         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2091           in public headers (r532952)
2092         * qt/qdbusabstractinterface.cpp:
2093         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2094           make it the default (r532951)
2095
2096 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2097
2098         * dbus/dbus-connection.c: Fix asserts
2099         Patch from Tim Moloney <t.moloney at verizon.net>
2100
2101 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2102
2103         * mono/Connection.cs, mono/Message.cs: Check Target type
2104         Patch from Aaron Bockover (abockover at novell.com)
2105
2106 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2107
2108         * INSTALL: fine-tune the requirements for the Qt4 binding.
2109
2110 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2111
2112         * tools/dbus-print-message.c: Added support for printing of all 
2113           remaining data types. Fixed logic for indentation of compound
2114           data types.
2115         
2116 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2117
2118         * INSTALL: fill out content of file providing DBus specific
2119           build installations, followed by generic Auto* INSTALL file
2120           content
2121         
2122 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2123
2124         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2125           Patch by Stefan Eilers. (r529537)
2126
2127 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2128
2129         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2130           contents (r528208)
2131
2132 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2133
2134         * qt/Makefile.am: fix the dependency for
2135           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2136           not in qdbusconnection.cpp.
2137           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2138           spotting this.
2139
2140 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2141
2142         * qt/examples/listnames.cpp:
2143         * qt/examples/Makefile.am: Three ways to list the names on the
2144           bus.
2145
2146 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2147
2148         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2149           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2150
2151 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2152
2153         Merge from Subversion:
2154         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2155           something that exists (r526315)
2156         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2157           slots/signals (r526316)
2158         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2159           also return an unknown-method error if the parameters don't
2160           match for org.freedesktop.DBus.Properties. (r526842)
2161         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2162         * qt/qdbusintegrator.cpp: Restore the proper order of
2163           delivery: don't make method returns be delivered on priority
2164           (r528150)
2165
2166 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2167
2168         * configure.in qt/Makefile.am: add qt/examples
2169         * qt/examples: Add QtDBus example programs:
2170           - hello: Hello, World
2171           - ping: Simple method-calling program
2172           - pong: Simple object-exporting program (not using adaptors)
2173           - complexping: Interactive method-calling program 
2174                 (also gets and sets properties).
2175           - complexpong: Sample program exporting methods, signals and
2176                 properties, using adaptors.
2177           - dbus: Simple implementation of a generic method-calling
2178                 program, similar to 'dbus-send', but with semantics
2179                 similar to 'dcop'.
2180           - chat: Simplistic chat program, implemented using signals
2181                 and the system bus. Looks like IRC.
2182
2183 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2184
2185         * configure.in: Detect QtGui (necessary for one of the
2186           example programs). Note: this increases the minimum required
2187           version of Qt to 4.1.3.
2188
2189 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2190
2191         * test/qt/*: Sync with KDE Subversion revision 523647.
2192         Update the testcases to the new API. Remove testcases for
2193         classes that are no longer public or have been removed.
2194
2195 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2196
2197         * qt/*: 
2198         * dbus/qdbus.h: Sync with KDE Subversion revision
2199         523647. Hopefully, this will be the last of the
2200         source-incompatible changes. Documentation has been improved;
2201         support for QList<basic-types> has been added; QDBusObject is
2202         gone; QDBus(Abstract)Interface is now a QObject with
2203         auto-generated meta-object; QDBusIntrospection is marked
2204         private, since QMetaObject can be used now; lots of bugfixes.
2205
2206 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2207
2208         Patch from Milosz Derezynski <internalerror at gmail.com>
2209         
2210         * configure.in:
2211         Output the service directory in the configure summary
2212
2213         * dbus-1.pc.in:
2214         Add session_bus_services_dir
2215
2216 2006-03-10  Ross Burton  <ross@openedhand.com>
2217
2218         * tools/dbus-print-message.c:
2219         Add support for object paths and signatures.
2220
2221 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2222
2223         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2224         config reload.
2225         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2226         information caches
2227         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2228         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2229         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2230         * dbus/dbus-userdb.h: Add function to flush all user/group information
2231         caches.
2232
2233 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2234
2235         * qt/dbusidl2cpp.cpp:
2236         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2237         for dcopidl2cpp, found in the KDE installations (or the more
2238         modern kalyptus): generate Qt4 C++ code for the input XML
2239         introspection. Currently no IDL parsing.
2240
2241 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2242
2243         * test/qt/*: Update the self-tests.
2244
2245 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2246
2247         * qt/*: 
2248         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2249         represents the first feature-complete version of the Qt4
2250         bindings since I took ove maintainership.
2251
2252 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2253
2254         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2255         dir. This is C++, so we can't use the DBus ones.
2256
2257 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2258
2259         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2260         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2261
2262 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2263
2264         * dbus/dbus-connection.c: 
2265         (_dbus_connection_block_pending_call):
2266         Check to see if our data has already been read off the connection
2267         by another blocking pending call before we block in poll.
2268         (check_for_reply_and_update_dispatch_unlocked):
2269         Code taken from _dbus_connection_block_pending_call - checks for
2270         an already read reply and updates the dispatch if there is one.
2271
2272         * test/name-test/test-pending-call-dispatch.c:
2273         New test for making sure we don't get stuck polling a 
2274         dbus connection which has no data on the socket when
2275         blocking out of order on two or more pending calls.
2276
2277 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2278
2279         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2280         make/automake don't detect that we're talking about the same
2281         .lo file if I specify the full path to the source files.
2282
2283 2006-02-26  Havoc Pennington  <hp@redhat.com>
2284
2285         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2286
2287         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2288         session bus variable is unset, suggest "man dbus-launch" and "man
2289         dbus-daemon" to figure out how to fix the problem
2290
2291 2006-02-25  Havoc Pennington  <hp@redhat.com>
2292
2293         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2294         should make this thing use the new glib options parser
2295
2296 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2297
2298         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2299         .lo files taking moc sources.
2300
2301 2006-02-25  Havoc Pennington  <hp@redhat.com>
2302
2303         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2304         and install it as a public header
2305
2306 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2307
2308         * Released 0.61
2309
2310 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2311         
2312         * proxies.py: Fix the callchain
2313
2314 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2315         
2316         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2317
2318         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2319         dbus/dbus-sysdeps.c
2320
2321         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2322         call _dbus_group_info_free_allocated which causes infinite loop,
2323         correctly call _dbus_group_info_free
2324
2325 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2326
2327         * qt/qdbusinterface_p.h:
2328         * qt/qdbusinterface.cpp: Use the standard
2329         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2330         calls instead of creating one for us.
2331
2332         * qt/qdbusconnection_p.h:
2333         * qt/qdbusintegrator.cpp: Remove debugging code.
2334
2335         * qt/qdbusintegrator.cpp:
2336         * qt/qdbusmessage.cpp:
2337         * qt/qdbusmessage_p.h:
2338         * qt/qdbusmessage.h: Change the behaviour of automatic
2339         reply-sending: now a reply is always sent, unless the caller
2340         didn't request one or if the user slot has already sent one.
2341
2342 2006-02-16  Robert McQueen  <robot101@debian.org>
2343
2344         * configure.in: Patch from Debian packages by Sjoerd Simons
2345         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2346         arguments so it's possible to build both bindings in the
2347         same tree.
2348
2349         * qt/Makefile.am: Fix truncated value so that make dist works.
2350
2351 2006-02-16  Robert McQueen  <robot101@debian.org>
2352
2353         * acinclude.m4, configure.in: Patch from Brad Hards
2354         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2355         improving quoting, re-ordering a few checks, and a few other
2356         aesthetic tidy-ups.
2357
2358 2006-02-16  Robert McQueen  <robot101@debian.org>
2359
2360         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2361         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2362         assertion that the next element to read from the iter is fixed in
2363         size. This is not the case when you are at the end of the iter,
2364         because the next element type is INVALID.
2365
2366         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2367         a bogus assert which means that you may not initialise a 0-length
2368         string unless you provide a non-NULL pointer. This prevented
2369         you from marshalling messages containing zero-length arrays in
2370         some cases.
2371
2372         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2373         from Rob to correct bogus asserts when trying to demarshal an
2374         array and get_fixed_array got you 0 elements. Append nothing to
2375         the GArray in this case.
2376
2377         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2378         an empty array via the glib bindings. Without all of the above
2379         patches, this new test fails.
2380
2381 2006-02-16  Robert McQueen  <robot101@debian.org>
2382
2383         * glib/dbus-gmain.c: Make the previous commit compile.
2384
2385         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2386         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2387         specify sender_keyword="foo", path_keyword="bar" when adding
2388         a signal listener, so that you can bind to signals generically
2389         but still do something useful in your callback.
2390
2391         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2392         chars so that they're not cast to chars and made negative. Thanks
2393         to Jakub Stachowski for reporting this and testing the fix.
2394
2395 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2396
2397         * dbus/dbus-glib.h:
2398         * glib/dbus-gmain.h:
2399         (dbus_g_connection_open): new method for openning
2400         a connection to an arbitrary address in the glib bindings
2401
2402         * ChangeLog: checkin last entry which doesn't seem to be commited
2403
2404 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2405
2406         * tools/dbus-launch.c: Fixed sh syntax output
2407
2408 2006-02-13  Robert McQueen  <robot101@debian.org>
2409
2410         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2411         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2412         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2413         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2414         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2415         missing piece of the glib bindings jigsaw puzzle. This modifies
2416         the existing specialised types to have N type parameters (rather
2417         than the current 1 or 2 for arrays and dictionaries respectively).
2418         You can then use this to get a glib type to represent any arbitrary
2419         D-Bus struct type using dbus_g_type_get_struct. The only
2420         implementation of these types is with GValueArrays as before,
2421         but it's now possible to store these in arrays, emit them in
2422         signals, etc.
2423
2424 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2425
2426         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2427         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2428         <thiago.macieira at trolltech.com>
2429
2430 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2431
2432         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2433         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2434
2435 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2436
2437         * bus/connection.c (bus_connections_expect_reply): Make
2438         pending reply limit not common to all connections (Bug #5416)
2439         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2440
2441 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2442
2443         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2444
2445 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2446
2447         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2448         patch from Doug Goldstein <cardoe at gentoo.org>
2449
2450 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2451
2452         * mono/Arguments.cs: Fix a magic number in the mono bindings
2453         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2454
2455 2006-01-27  Robert McQueen  <robot101@debian.org>
2456
2457         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2458         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2459         when generating the client-side methods, instead of overloading
2460         CSymbol which broke everything horribly. My apologies.
2461
2462 2006-01-27  Robert McQueen  <robot101@debian.org>
2463
2464         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2465         by me and Rob Taylor to add a simple_free function to D-Bus map
2466         and collection types, which allows those types which can be freed
2467         with a GDestroyNotify (such as GHashTables and GArrays, but not
2468         GPtrArrays) to be stored as the values in hashtables.
2469
2470         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2471         Patch by Rob Taylor to add nested dicts to the glib tests to check
2472         the above code works, and appears not to leak when called repeatedly.
2473
2474 2006-01-27  Robert McQueen  <robot101@debian.org>
2475
2476         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2477         to free a D-Bus allocated string with dbus_free () instead of
2478         g_free ().
2479
2480 2006-01-27  Iain Holmes  <iain@openedhand.com>
2481
2482         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2483         method from being called multiple times.
2484
2485 2006-01-19  Robert McQueen  <robot101@debian.org>
2486
2487         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2488         <rob.taylor@collabora.co.uk> to add support for generating bindings
2489         to arrays that are represented as GPtrArrays rather than GArrays (ie
2490         size-variable things, such as strings, objects, structs, etc).
2491
2492 2006-01-05  Robert McQueen  <robot101@debian.org>
2493
2494         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2495         <ricardo.kekki@movial.fi> to make it possible to inherit from
2496         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2497         a private part, and moving the setting of the DBusGProxyManager into a
2498         connection property, allowing proper GObject construction.
2499
2500 2006-01-05  Robert McQueen  <robot101@debian.org>
2501
2502         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2503         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2504         annotations when generating glib client bindings.
2505
2506 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2507
2508         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2509
2510         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2511
2512 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2513
2514         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2515
2516 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2517
2518         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2519
2520 2005-12-19  Ross Burton  <ross@openedhand.com>
2521
2522         * doc/dbus-tutorial.xml:
2523         Document the Glib client-side bindings, and list all possible annotations.
2524
2525 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2526
2527         * dbus/bus.c (dbus_bus_release_name): Add documentation
2528
2529 2005-12-06  Robert McQueen  <robot101@debian.org>
2530
2531         * python/service.py: s/sucessful/successful/ so we're allocating to
2532         and reading from the same variable. Oops.
2533
2534 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2535
2536         * Released 0.60
2537
2538 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2539
2540         * test/qt/Makefile.am: build from srcdir
2541
2542         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2543         Note - this code is wrong and needs to be fixed by the Qt binding
2544         developers.  The flags should be treated as bitfields and not enums.
2545
2546         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2547
2548 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2549
2550         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2551           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2552           in production code
2553
2554 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2555
2556         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2557         method for getting messages off the bus in the absence of a
2558         mainloop.  This method is much like 
2559         dbus_connection_read_write_dispatch except it does not dispatch
2560         the messages to a registered filter function.  Instead it
2561         allows a developer to process messages by directly popping
2562         them off the bus.
2563
2564 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2565
2566         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2567         the parser to continue instead of returning error
2568         (bus_desktop_file_load): Do not free parser data when
2569         parse_section_start or parse_key_value fails because it was 
2570         already freed by parser_free (patch from Carlos Garcia Campos  
2571         <carlosgc at gnome.org>)
2572
2573 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2574
2575         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2576         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2577         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2578         test/test-segfault.c, test/test-utils.c,
2579         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2580         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2581         Various cleanup of dead code and compiler warnings (patch from
2582         Kjartan Maraas <kmaraas at gnome.org>) 
2583
2584 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2585
2586         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2587         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2588
2589 2005-11-27  Robert McQueen  <robot101@debian.org>
2590
2591         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2592         part of the preceding one. Oops. Merge patch by Johan Hedberg
2593         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2594         on big-endian platforms.
2595
2596         * test/python/test-client.py: Add some 16-bit integers to the test
2597         values.
2598
2599 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2600
2601         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2602         method return message for property getters
2603
2604 2005-11-27  Robert McQueen  <robot101@debian.org>
2605
2606         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2607         with type v of an instance of dbus.Variant(foo, type='x') caused
2608         it to be boxed twice before sending over the bus.
2609
2610         * python/dbus_bindings.pyx, python/service.py,
2611         test/python/test-client.py: Update the constants for the new
2612         request_name flags, and update comments/test cases now that queueing
2613         is the default action.
2614
2615 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2616
2617         * configure.in:
2618         - Change version to 0.60 for impending release
2619         - upped the sonames because of ABI and API breakage
2620
2621 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2622
2623         * configure.in: Add test/name-test/Makefile to the generated
2624         Makefile list
2625
2626         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2627         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2628         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2629         not to queue an ower if it can't be the primary owner
2630
2631         * bus/bus.h: Add new internal BusOwner struct
2632
2633         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2634         to bus_registry_ensure and don't set the prohibit_replacement flag
2635         since they are now set per BusOwner and not per name.
2636         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2637         that returns the list of connections in a name's connection queue
2638         
2639         * bus/services.c (struct BusService): remove prohibit_replacement field
2640         (struct BusOwner): new struct for keeping track of queued connections
2641         and their associated flags for the queue
2642         (struct BusRegistry): add a BusOwner memory pool
2643         (bus_registry_new): initialize the BusOwner memory pool
2644         (bus_registry_unref): free the BusOwner memory pool
2645         (_bus_service_find_owner_link): new internal method for
2646         searching the queue for a specific connection
2647         (bus_owner_set_flags): new method for adding setting the flags on a
2648         bus owner
2649         (bus_owner_new): new method that creates a BusOwner object from the
2650         pool and sets its flags
2651         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2652         (bus_registry_ensure): Add the flags parameter
2653         (bus_registry_acquire_service): Switch from using raw connections to
2654         using the BusOwner struct
2655         Add new state machine for dealing with the new set of flags
2656         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2657         cancel_ownership, free_ownership_cancel_data, 
2658         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2659         restore_ownership, free_ownership_restore_data, 
2660         add_restore_ownership_to_transaction): Switch to using BusOwner 
2661         instead of raw connections
2662         (bus_service_add_owner): Add flags parameter
2663         Switch to using BusOwner instead of raw connections
2664         Add state machine for dealing with the new set of flags
2665         (bus_service_swap_owner): Swaps the first and second owners in the
2666         queue.  Used to make sure proper signals are sent when a service looses 
2667         or gains primary ownership.  We never insert an owner at the top of the
2668         queue.  Instead we insert it in the second position and then swap.
2669         (bus_service_remove_owner): Remove the owner from the queue sending
2670         out the NameLost and NameOwnerChanged signals if the we were the 
2671         primary owner
2672         (bus_service_get_primary_owners_connection): New method that extracts
2673         the connection from the primary owner
2674         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2675         connection
2676         (bus_service_get_allow_replacement): Changed from the old 
2677         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2678         primary owner and returns if it can be replaced or not
2679         (bus_service_set_prohibit_replacement): removed
2680         (bus_service_has_owner): returns TRUE if and owner with
2681         the specified connection exists in the queue
2682         
2683         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2684         method that only compiles if tests are enabled.  Allows us to get the 
2685         unique name of a connection so we can check it against the queue when
2686         doing regression tests
2687
2688         * bus/activation.c (bus_activation_send_pending_auto_activate),
2689         bus/dispatch.c (bus_dispatch),  
2690         bus/driver.c (bus_driver_handle_get_service_owner, 
2691         bus_driver_handle_get_connection_unix_user, 
2692         bus_driver_handle_get_connection_unix_process_id,
2693         bus_driver_handle_get_connection_selinux_security_context),
2694         bus/signals.c (connection_is_primary_owner): 
2695         use bus_service_get_primary_owners_connection instead of
2696         bus_service_get_primary_owner
2697
2698         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2699         _dbus_listen_unix_socket): Calculate the length of the socket
2700         path and use that instead of using a fixed length which was
2701         causing socket names to contain many trailing Nul bytes.
2702
2703         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2704         (dbus_g_method_get_sender): New method for extracting the sender 
2705         from a DBusGMethodInvocation
2706         (dbus_g_method_return_get_reply): changed name to 
2707         dbus_g_method_get_reply
2708         (dbus_g_method_return_send_reply): changed name to
2709         dbus_g_method_send reply
2710
2711         * doc/dbus-specification.xml: New docs that describe how the new
2712         queueing system works and talks about the changes to the how
2713         we specify socket names
2714
2715         * glib/examples/example-service.c, 
2716         glib/examples/example-signal-emitter.c,
2717         glib/examples/statemachine/statemachine-server.c:
2718         Changed the RequestName flags to the new system
2719
2720         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2721         regression test suite for testing various states of the new
2722         queueing system
2723         
2724 2005-11-15  Robert McQueen  <robot101@debian.org>
2725
2726         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2727         Taylor to add two methods, dbus_g_method_return_get_reply and
2728         dbus_g_method_return_send_reply, to allow you to get the reply
2729         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2730         and send it. The GLib bindings can't marshal a return value of
2731         something like a(s) if the array is empty - ultimately they should be
2732         made to heed the signature of the out arguments as the Python bindings
2733         now can, but this is a workable interim solution which might have
2734         other applications.
2735
2736 2005-11-15  Robert McQueen  <robot101@debian.org>
2737
2738         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2739         method to org.freedesktop.DBus to release a bus name or give up
2740         waiting in the queue for it.
2741
2742         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2743         dbus_bus_release_name method to send the ReleaseName method calls.
2744         Add constants for the return values to dbus/dbus-shared.h.
2745
2746         * doc/dbus-specification.xml: Document the new ReleaseName method
2747         in the specification.
2748
2749         * python/dbus_bindings.pyx: Add a low-level python binding for the
2750         release name method.
2751
2752         * python/exceptions.py, python/service.py: Make freeing BusName
2753         objects release the name. Add a NameExistsException, and fix a
2754         bug with creating UnknownMethodException.
2755
2756         * test/python/test-client.py: Add tests for freeing BusName
2757         objects causing names to be released.
2758
2759 2005-11-14  Robert McQueen  <robot101@debian.org>
2760
2761         * python/service.py: Include the traceback in the error reply when we
2762         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2763
2764 2005-11-14  David Zeuthen  <davidz@redhat.com>
2765
2766         Patch from Timo Hoenig <thoenig@suse.de>.
2767
2768         * bus/bus.c: I've recently investigated why the automatic reload
2769         of configuration files does not work as expected.
2770
2771         Currently, reloading configuration files does only work when
2772         running dbus-daemon with --nodaemon.  If we are running as daemon
2773         we're hitting a dnotify bug once we fork the process.
2774
2775         We're initializing the dnotify fds before calling fork().  Once
2776         the child process forked it does still have the fds (and they
2777         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2778         getting SIGIO as changes are made to the configuration files.
2779
2780         The attached patch moves the initialization of the dnotify fds to
2781         process_config_postinit().  This is safe for all current code
2782         paths and solves the dnotify disfunction.  If we're running
2783         dbus-daemon as daemon the fds for dnotify are now being
2784         initialized after fork() for the child process.
2785
2786         * configure.in: The current configure.in check for dnotify probes
2787         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2788         match for 'xlinux', too. Additionally I have adapted the configure
2789         option's style to match with the others.
2790
2791 2005-11-14  Robert McQueen  <robot101@debian.org>
2792
2793         * python/decorators.py, python/service.py: Add a new argument to the
2794         dbus.service.method decorator called sender_keyword, which if set,
2795         specifies the name of an argument which will be provided the bus
2796         name of the method caller.
2797
2798         * test/python/test-client.py, test/python/test-service.py: Add a
2799         method and test to check the sender_keyword functionality.
2800
2801 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2802
2803         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2804         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2805         Simons <sjoerd at luon.net>)
2806
2807         * AUTHORS: Add Robert McQueen for his work on the Python
2808         Bindings and other parts of D-Bus
2809
2810 2005-11-07  Robert McQueen  <robot101@debian.org>
2811
2812         * python/decorators.py: Change emit_signal function to use the
2813         signature annotation of the signal when marhsalling the arguments from
2814         the service. Fix a bug where the code checking signature length
2815         against argument length referenced the wrong variable.
2816
2817         * python/introspect_parser.py: Avoid adding the type signature of
2818         signal arguments to any methods which occur after them in the
2819         introspection data (!) by making the parser a little more careful
2820         about its current state.
2821
2822         * python/service.py: Remove debug prints from last commit (again :D).
2823
2824         * test/python/test-client.py, test/python/test-service.py: Add test
2825         signals with signature decorators to test the strict marshalling code
2826         gives errors at the right time. Could do with checking the signals
2827         actually get emitted too, given that the test does nothing with
2828         signals at the moment...
2829
2830 2005-11-07  Robert McQueen  <robot101@debian.org>
2831
2832         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2833         instances to stop madness of creating new instances representing
2834         the same bus connection all the time, rendering any tracking of
2835         match rules and bus names quite meaningless. Caught a bug where
2836         the private argument to SessionBus() and friends was being passed
2837         in as use_default_mainloop by mistake. Still some problems with
2838         multiple dbus_binding.Connection instances representing the same
2839         low-level connection (eg when you use both SessionBus() and
2840         StarterBus() in same process), but it's a lot better now than it
2841         was.
2842
2843         * python/dbus_bindings.pyx: Add constants with the return values
2844         for bus_request_name().
2845
2846         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2847         and retrieve the same instances for the same name, so deletion can be
2848         done with refcounting. Also now throws some kind of error if you
2849         don't actually get the name you requested, unlike previously...
2850
2851         * test/python/test-client.py: Add tests for instance caching of buses
2852         and bus name objects.
2853
2854 2005-11-04  Robert McQueen  <robot101@debian.org>
2855
2856         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2857         marshalling of boolean values. Add some booleans to the values in
2858         the test client.
2859
2860         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2861         argument to the dbus.service.method decorator, which allows you to
2862         name arguments to take two callback functions for replying with
2863         return values or an exception.
2864
2865         * test/python/test-client.py, test/python/test-service.py: Add test
2866         case using asynchronous method reply functions, both return values and
2867         errors, and from within both the function itself and from a mainloop
2868         callback.
2869
2870         * python/decorators.py, python/service.py: Perform checking that the
2871         number of method/signal arguments matches the number of types in the
2872         signature at class loading time, not when you first introspect the
2873         class.
2874
2875         * python/service.py: Remove debug print left by the last commit.
2876
2877 2005-11-03  Robert McQueen  <robot101@debian.org>
2878
2879         * python/service.py: Heavy refactoring of method invocation, with
2880         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2881         in favour of a new _message_cb that uses seperate functions for
2882         looking up the method to call, marshalling the return values, and
2883         sending exceptions as errors, and is easier to follow as a
2884         consequence.  Fixes some corner cases about returning things that
2885         don't match your declared out_signature, allows exceptions to define
2886         _dbus_error_name and have it be sent over the bus as the error name,
2887         and paves the way for cool stuff like heeding the message no reply
2888         flag, asynchronous method implementations, informing the method of the
2889         sender, and including backtraces in the error messages.
2890
2891         * test/python/test-client.py: Catch and print exceptions thrown in the
2892         async callback tests, rather than passing them to the low-level
2893         bindings to be ignored in a noisy and frustrating manner.
2894
2895 2005-11-03  Robert McQueen  <robot101@debian.org>
2896
2897         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2898         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2899         tweak others to be consistent.
2900
2901         * test/python/test-client.py: Tweak output of testInheritance.
2902
2903 2005-10-29  Robert McQueen  <robot101@debian.org>
2904
2905         * python/service.py: Major changes to allow multiple inheritance
2906         from classes that define D-Bus interfaces:
2907         
2908          1. Create a new Interface class which is the parent class of
2909             Object, and make the ObjectType metaclass into InterfaceType.
2910         
2911          2. Patch written with Rob Taylor to replace use of method_vtable
2912             with code that walks the class's __MRO__ (method resolution order)
2913             to behave like Python does when invoking methods and allow
2914             overriding as you'd expect. Code is quite tricky because
2915             we have to find two methods, the one to invoke which has the
2916             right name and isn't decorated with the /wrong/ interface,
2917             and the one to pick up the signatures from which is decorated
2918             with the right interface.
2919         
2920             The same caveats apply as to normal multiple inheritance -
2921             this has undefined behaviour if you try and inherit from two
2922             classes that define a method with the same name but are
2923             decorated with different interfaces. You should decorate
2924             your overriding method with the interface you want.
2925         
2926          3. Replace grungy introspection XML generation code in the metaclass
2927             with dictionaries that cope correctly with multiple inheritance
2928             and the overriding of methods. This also uses the signature
2929             decorations to provide correct introspection data, including
2930             the debut appearance of the types of your return values. :D
2931
2932         * test/python/test-client.py, test/python/test-service.py: Add a test
2933         case to try invoking an method that overrides one inherited from a
2934         D-Bus interface class.
2935
2936 2005-10-29  Robert McQueen  <robot101@debian.org>
2937
2938         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2939         Add checking for the end of struct character when marshalling a
2940         struct in MessageIter.append_strict.
2941
2942         * python/examples/example-service.py,
2943         python/examples/gconf-proxy-service.py,
2944         python/examples/gconf-proxy-service2.py: Update to use gobject
2945         mainloop directly rather than appearing to depend on gtk.
2946
2947         * python/test/test-client.py, python/test/test-server.py: Remove
2948         obsolete and broken test scripts for old bindings. We have up to date
2949         and working tests in test/python/.
2950
2951 2005-10-29  Robert McQueen  <robot101@debian.org>
2952
2953         * python/decorators.py: Add optional arguments to the method and
2954         signal decorators to allow you to specify the signature of arguments
2955         and return values. Preserve the doc strings of signal functions in the
2956         decorated version, for pydoc and friends.
2957
2958         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2959         parse_signature_block function with an iterable dbus.Signature()
2960         type. Fix a bug in MessageIter.append_strict where you could append
2961         anything by claiming it was a string.
2962
2963         * python/service.py: Use the out_signature decoration on methods to
2964         marshal return values, meaning you no longer require dbus.Array()
2965         or dbus.Dictionary() to indicate the type when returning empty
2966         arrays or dictionaries. Fix a bug where exceptions which are defined
2967         in __main__ are not turned into error replies.
2968
2969         * test/python/test-client.py, test/python/test-service.py: Add test
2970         for correct marshalling of return values according to out_signature.
2971         Fix a bug in the async call test where the error_handler is missing a
2972         self argument.
2973
2974 2005-10-29  Robert McQueen  <robot101@debian.org>
2975
2976         * glib/Makefile.am, glib/examples/Makefile.am,
2977         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2978         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2979
2980         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2981
2982         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2983         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2984         the command line.
2985
2986 2005-10-27  Ross Burton  <ross@openedhand.com>
2987
2988         * dbus/dbus-marshal-header.c:
2989         Remove dead code.
2990
2991         * glib/dbus-gobject.c:
2992         Stop compiler warning.
2993
2994 2005-10-25  Ross Burton  <ross@openedhand.com>
2995
2996         * dbus/dbus-auth.c:
2997         * dbus/dbus-server-unix.c:
2998         * dbus/dbus-transport-unix.c:
2999         * glib/dbus-gmain.c:
3000         * glib/dbus-gobject.c:
3001         Add some const keywords.
3002
3003 2005-10-25  Ross Burton  <ross@openedhand.com>
3004
3005         * doc/dbus-specification.xml:
3006         Document the NoReply annotation.
3007
3008         * glib/dbus-binding-tool-glib.h:
3009         * glib/dbus-binding-tool-glib.c:
3010         Respect the NoReply annotation.
3011
3012 2005-10-24  Robert McQueen <robot101@debian.org>
3013
3014         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3015         derive from unicode instead of str, and encode/decode UTF-8 when
3016         marshalling/unmarshalling bus messages
3017
3018         * python/introspect_parser.py: encode introspection data as UTF-8
3019         before passing the buffer into libxml2
3020
3021         * test/python/test-client.py: add unicode test strings
3022
3023         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3024         ignore generated python test files
3025
3026 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3027
3028         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3029         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3030         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3031
3032         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3033         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3034         when constructing struct signatures
3035
3036         * python/_dbus.py (Bus): handle private connections using the
3037         private keyword in the constructor. defaults to private=False
3038         (Bus::close): new method to close a connection to the bus
3039
3040         * python/dbus_bindings.pyx (Connection::close): renamed method
3041         was previously called disconnect
3042         (bus_get): now supports getting a private connection
3043
3044         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3045         keyword is set to True.  if it is, execute the method without waiting
3046         for a reply
3047         (ProxyObject::_introspect_execute_queue): new method for executing
3048         all the pending methods that were waiting for the introspect to
3049         finish.  this is called when introspect either succeeds or fails
3050         (ProxyObject::_introspect_error_handler): call queued methods
3051
3052 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3053
3054         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3055         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3056
3057         * python/service.py (Object::_message_cb): handle exceptions correctly
3058         by sending them over the wire to the calling app.  This makes sure
3059         the client returns immediately instead of waiting the 15 seconds to
3060         timeout.
3061
3062         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3063         Add a test to benchmark how long it takes to introspect a service and 
3064         call a method which returns a large element (pretty fast)
3065
3066         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3067         method which pushes a lot of data
3068
3069 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3070
3071         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3072         reclaim memory outside of the loop and use del istead of just setting
3073         the key to None
3074
3075 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3076
3077         * python/service.py (ObjectType::_reflect_on_signal): Always close
3078         signal tag even when there are no arguments
3079
3080 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3081
3082         * configure.in: Set mono, mono-docs and Qt3 to default
3083         to no instead of auto when building.  These bindings do not
3084         have full time maintainers and will not be supported for the
3085         1.0 release.
3086
3087 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3088
3089         patches from Michael Krivoruchko <misha at sun.com>: 
3090         
3091         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3092         _dbus_connection_message_sent, 
3093         _dbus_connection_send_preallocated_unlocked_no_update, 
3094         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3095         is NULL when calling _dbus_verbose
3096
3097         * configure.in: check for functions getpeerucred and getpeereid
3098
3099         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3100         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3101         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3102         Patch was only tested on Solaris 10 x86 so it might be issues
3103         with other platforms (i.e. BSDs and MacOSX)
3104         
3105
3106 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3107
3108         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3109         instead of marshal basic so we can handle recursive types in a variant
3110
3111         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3112         in variants
3113
3114         * test/glib/test-service-glib.c, test-service-glib.xml
3115         (my_object_echo_variant [EchoVariant], 
3116         my_object_process_variant_of_array_of_ints123
3117         [ProcessVariantOfArrayOfInts123]): 
3118         Add two test methods
3119
3120         * python/introspect_parser.py: New module for parsing introspect
3121         data.
3122
3123         * python/dbus_bindings.pyx:
3124         (various places): when throwing errors fix to use errormsg instead 
3125         of message local variable because Pyrex can get confused with other 
3126         message variables (initial patch by Robert McQueen 
3127         <robert.mcqueen at collabora.co.uk>)
3128         (MessageIter::parse_signature_block): new method for getting the next
3129         block in a signiture.
3130         (MessageIter::append_strict): new method for appending values strictly
3131         using the passed in signature instead of guessing at the type
3132         (MessageItter:: append_dict, append_struct, append_array): use 
3133         signatures to marshal children if the signature is available
3134         
3135         * python/exceptions.py (IntrospectionParserException): new exception
3136
3137         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3138         introspected signatures if available, else we fall back to the
3139         old way of doing things.
3140         (ProxyObject::_introspect_reply_handler ): parse introspection data
3141         
3142         * python/service.py (ObjectType::_reflect_on_method): Properly
3143         terminate <method> if there are no args in the reflection data
3144
3145         * test/python/test-client.py: add tests for talking with the GLib
3146         test server.  This gives us better coverage for introspection since
3147         python to python will always generate arguments as variants.  It also
3148         allows us to test the robustness of the GLib bindings and interlanguage
3149         communications.
3150
3151         
3152 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3153
3154         * bus/driver.c (bus_driver_handle_introspect): Add signals
3155         to the introspect data. (patch from Daniel P. Berrange 
3156         <dan at berrange.com>)
3157
3158         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3159         
3160         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3161         _dbus_connection_run_builtin_filters): Changed these to
3162         be unlock_no_update functions and call 
3163         _dbus_connection_send_unlocked_no_update instead of
3164         dbus_connection_send to avoid locking errors.
3165         
3166         * doc/TODO: Removed the make Ping test TODO
3167         
3168 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3171         We now copy the message from a DBusError and then free 
3172         the error object befor throwing the error
3173
3174         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3175         DBusBindingOutputMode enum which was causing a warning.
3176         #include <time.h> so using time_t is explicitly defined
3177
3178 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3179
3180         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3181         - dbus/dbus-bus.c
3182         (internal_bus_get): new method that take over the heavy lifting
3183         of dbus_bus_get and adds the ability to get a private connection
3184         to the bus
3185         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3186         interface as in previous versions
3187         (dbus_bus_get_private): new method that is a wrapper to 
3188         internal_bus_get to get a private connection to the bus
3189
3190         - dbus/dbus-bus.h
3191         (dbus_bus_get_private): add as a public libdbus interface
3192
3193         - dbus-1.pc.in: output system_bus_default_address and 
3194         sysconfdir variables so apps can use them when compiling
3195
3196 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3197         * dbus/qt: New Qt bindings
3198
3199 2005-09-12  Waldo Bastian  <bastian@kde.org>
3200
3201         * dbus/dbus-marshal-validate.c,
3202         doc/dbus-specification.xml, test/Makefile.am,
3203         test/test-names.c: allow hyphens in bus names.
3204
3205 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3206
3207         * test/data/auth/fallback.auth-script: we don't
3208         retry the EXTERNAL method when we know its going
3209         to fail anymore.
3210
3211 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3212
3213         * dbus/dbus-connection-internal.h: rename
3214         (add|remove|toggle)_(watch|timeout) to unlocked()
3215         
3216         * dbus/dbus-connection.c: ditto.
3217         
3218         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3219         Update some callers for the renaming.
3220
3221 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3222
3223         * dbus/dbus-auth.c: (record_mechanisms): don't
3224         retry the first auth mechanism because we know
3225         we're just going to get rejected again.
3226         
3227         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3228         Fix thinko ... and what a nasty little bugger to
3229         track down you were ...
3230
3231         * dbus/dbus-connection.c:
3232         (_dbus_connection_add_watch),
3233         (_dbus_connection_remove_watch): add note about
3234         these needing the connection to be locked.
3235         (_dbus_connection_get_dispatch_status_unlocked):
3236         set status to DATA_REMAINS when we queue the
3237         disconnected message.
3238         
3239         * bus/dispatch.c:
3240         (bus_dispatch): fix warning.
3241         (check_existent_service_no_auto_start):
3242         Expect ChildSignaled error too.
3243         (check_existent_hello_from_self): fix another
3244         couple of warnings.
3245         
3246 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3247
3248         Patches from James Willcox <snorp@snorp.net>
3249
3250         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3251
3252         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3253         support array "out" parameters.
3254
3255         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3256         for 16-bit int support.
3257
3258 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3259
3260         * Released 0.50
3261
3262         * Patch from Steve Grubb:
3263         - bus/activation.c (bus_activation_service_reload_test): clean up
3264         some indentation
3265         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3266         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3267         buffer overflows in the test suite.  This is non critical because
3268         it can not be exploited and this code is only run when doing a 
3269         make check.
3270
3271         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3272         - configure.in: Don't check and link against kdecore, only qt headers
3273         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3274         - gcj/org/freedesktop/dbus/Makefile.am:
3275         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3276         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3277         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3278         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3279         - tools/Makefile.am: Add platform extentions to binaries 
3280         (i.e. .exe on windows)
3281
3282         * configure.in: 
3283         - Make it so if no suitable version of python is found we only 
3284         disable building python instead of exiting the configure script
3285         - Require version 2.4 of glib for glib bindings
3286         - Up version to 0.50
3287
3288         * python/__init__.py: Sync version with libdbus to (0,50,0)
3289         
3290 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3291
3292         * dbus/dbus-object-tree.c (find_subtree_recurse):
3293         a couple of optimizations (bug #710):
3294         - do a binary search in the tree
3295         - insert a new child at the right place directly, no need for
3296           qsort anymore
3297         - do the "double alloc" thing when allocating children
3298
3299 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3300
3301         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3302
3303         * python/dbus_bindings.pyx: Memory management foo
3304         (global): remove hacky _user_data_references global list
3305         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3306         tuples. Unref user_data
3307         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3308         (Connection::__del__): Remove and replace with __dealloc__ method
3309         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3310         to keep tuple from being deallocated instead of the global var hack
3311         (Connection::register_object_path): Stuff user_data into a tuple.
3312         Use Py_INCREF to keep tuple from being deallocated instead of the 
3313         global var hack
3314         (Connection::register_fallback): Stuff user_data into a tuple.
3315         Use Py_INCREF to keep tuple from being deallocated instead of the 
3316         global var hack
3317         (GIL_safe_pending_call_notification): Don't unref the message
3318         because it gets unreffed when going out of scope.  Py_XDECREF
3319         the user_data
3320         (PendingCall::__del__): Remove and replace with __dealloc__ method
3321         (PendingCall::set_notify): ref the pending call because we will
3322         need it to stick around for when the notify callback gets called
3323         (Message::__del__): Remove and replace with __dealloc__ method
3324
3325         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3326         gthreads_init to match up with the dbus call
3327
3328         * python/glib.py (init_threads): Changed to threads_init to match
3329         up with gobject.threads_init().  init_threads is kept for backwards
3330         compat but will most likely be deprecated in the future
3331
3332         * test/python/test-client.py: 
3333         - revamp to use Python's unittest functionality
3334         - add async call tests
3335         - setup threads in glib and dbus so we make sure locks are working
3336         
3337 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3338
3339         * python/dbus_bindings.pyx 
3340         (_pending_call_notification, cunregister_function_handler, 
3341         cmessage_function_handler): All callback functions have been rearranged 
3342         to workaround a bug in Pyrex when working with the GIL which is Python's 
3343         global lock when dealing with threads.  They have been split into
3344         a wrapper function (which assumes the name of the old function) and
3345         a _GIL_safe_<function name> function which contains the functionality
3346         of the old function.  This ensures that Pyrex does not write code
3347         the lock is released.
3348         
3349
3350 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3351
3352         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3353         GIL global lock when calling back into Python
3354
3355 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3356
3357         * Release 0.36.2
3358
3359         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3360
3361         * bus/policy.c (bus_policy_allow_user): change default "user is
3362         allowed" to be "user has same uid as the bus itself"; any
3363         allow/deny rules will override.
3364
3365         * bus/session.conf.in: don't allow all users, since now by default
3366         the user that ran the bus can connect.
3367
3368 2005-08-26  Colin Walters  <walters@verbum.org>
3369
3370         * tools/dbus-print-message.c (print_message): Flush stdout
3371         after printing a message, so that redirecting to a file, then
3372         hitting Ctrl-C works.
3373
3374 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3375
3376         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3377         (EmptyMessage): new class that subclasses Message.  This is a workaround
3378         to a Pyrex bug that fails to call __del__ when the Message object goes out
3379         of scope.  For some reason subclassing Message fixes this bug
3380         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3381         - s/Message(_create=0)/EmptyMessage everywhere else
3382         
3383         * test/python/test-{server|client}.py: add the python/.libs directory
3384         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3385         get picked up from the system
3386
3387 2005-08-25  Colin Walters  <walters@verbum.org>
3388
3389         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3390         to Ryan Lortie for the suggestion.
3391
3392 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3393
3394         * test/python: Add python regression test
3395
3396         * configure.in: Add test/python/Makefile
3397
3398         * test/Makefile.am: Add the python directory to SUBDIRS
3399
3400 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3401
3402         * Release 0.36.1
3403
3404         * python/_dbus.py: 
3405         (Interface::connect_to_signal): propigate keywords for match on args
3406         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3407
3408         * python/proxies.py (ProxyObject::connect_to_signal):
3409         propigate keywords for match on args
3410
3411         * Makefile.am: point everything to pyexecdir since python borks
3412         on multilib
3413
3414 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3415
3416         * Release 0.36
3417
3418 2005-08-23  Colin Walters  <walters@verbum.org>
3419
3420         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3421
3422 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3423
3424         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3425         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3426         of defining DBusConnection ourselves.
3427
3428 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3429
3430         * python/dbus.pth: New path file to fix up problems when installing
3431         c libraries to lib64 and python files to lib.
3432
3433         * python/Makefile.am: install dbus.pth in the correct spot
3434
3435 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3436         * ChangeLog: clean up my last entry a bit
3437
3438         * doc/introspect.xsl: New stylesheet for converting introspection data
3439         into browser renderable xhtml. Contributed by Lennart Poettering.
3440
3441         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3442         Poettering.
3443
3444         * doc/dbus-tutorial.xml: 
3445         - Add Colin Walter to the Authors section for authoring the GLib
3446         section
3447         - Add descriptions of the new signature and type functionality
3448         in the Python complex type mapping section
3449         - Add a sidenote on the new args matching functionality in 
3450         the Python bindings
3451         - Fixed up some of the examples to use the gobject.MainLoop
3452         instead of gtk.main
3453         
3454         * python/_dbus.py:
3455         (Bus::_create_args_dict): New. Converts a hash of arg matches
3456         to a more useable format
3457         (Bus::add_signal_receiver): add a **keywords parameter for catching
3458         arg match parameters
3459         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3460         arg match parameters
3461         
3462         * python/matchrules.py:
3463         (MatchTree::exec_matches): Check for arg matches
3464         (SignalMatchRule::add_args_match): New method
3465         (SignalMatchRule::execute): Added args_list parameter as an optimization
3466         so we don't have to marshal the args more than once
3467         (SignalMatchRule::match_args_from_list): New method that checks to see
3468         if the rule's arg matches match an argument list.  Only arguments
3469         set in the rule are checked.
3470         (SignalMatchRule::match_args_from_rule): New method that checks to see
3471         if the rule's arg matches match another rule's.  All args have to match
3472         in order for this method to return true.  If either rule has more args
3473         then it is not a match.
3474         (SignalMatchRule::is_match): Add args match
3475         (SignalMatchRule::repr): Add args to the final output if they exist
3476
3477 2005-08-17  Ross Burton  <ross@burtonini.com>
3478
3479         * glib/dbus-gproxy.c:
3480         (dbus_g_proxy_call_no_reply): unref the message once sent.
3481         (dbus_g_proxy_call): protect against NULL proxy.
3482
3483 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3484
3485         * python/__init__.py: Version updated (0, 43, 0)
3486         
3487         * python/dbus_bindings.pyx: 
3488         - Fixed type objects to have self passed into __init__
3489         - Added the Variant type
3490         - Add the ability to specify types or signatures for Array, Variant 
3491         and Dictionary
3492         (Connection::send_with_reply_handlers): return a PendingCall object
3493         (_pending_call_notification): handle the case when an error is returned 
3494         without an error message in the body
3495         (MessageIter::get_boolean): return True or False instead of an integer
3496         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3497         and add checks for objects with embeded signatures or types (Array, 
3498         Variant and Dictionary)
3499         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3500         (MessageIter::append_dict): handle embeded types or signatures
3501         (MessageIter::append_array): handle embeded types or signatures
3502         (MessageIter::append_variant): new method
3503         
3504         * python/proxies.py:
3505         (DeferedMethod): New. Dummy executable object used when queuing calls 
3506         blocking on introspection data
3507         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3508         or shorter timeouts for method calls
3509         (ProxyObject): Add first pass at an introspection state machine
3510         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3511         introspection. 
3512         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3513         the usual mechanisms for sending messages.  This is to avoid a deadlock
3514         where the Intospect call would be queued waiting for the Introspect 
3515         call to finish ;-)
3516         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3517         when introspection returns with no error
3518         (ProxyObject::_introspect_error_handler): New.  This method is called 
3519         when introspection encounters an error
3520         (ProxyObject::__getattr__): Code to handle different introspection 
3521         states.  Queue async calls or block blocking calls if we are 
3522         introspecting.  Pass through as normal if we are not or are done with 
3523         introspecting.
3524         
3525         * python/service.py: Import signal and method from decorators.py
3526
3527         * python/types.py: Add Variant type
3528
3529 2005-08-16  Colin Walters  <walters@verbum.org>
3530
3531         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3532         DBusError message is NULL.
3533
3534 2005-08-09  Havoc Pennington  <hp@redhat.com>
3535
3536         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3537         malloc'd copy of the name parameter
3538
3539 2005-08-09  Havoc Pennington  <hp@redhat.com>
3540
3541         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3542         warning if the reply serial is set to 0
3543
3544 2005-08-04  Colin Walters  <walters@verbum.org>
3545
3546         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3547         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3548         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3549         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3550         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3551         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3552         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3553         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3554         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3555         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3556         
3557         Prefix name with _ to ensure they're not exported.  All callers
3558         updated.
3559
3560         * glib/dbus-gvalue.c (typecode_to_gtype)
3561         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3562         (signature_iter_to_g_type_dict)
3563         (signature_iter_to_g_type_array)
3564         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3565         (dbus_gtypes_from_arg_signature):
3566         Move to dbus-gsignature.c.
3567
3568         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3569         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3570         (dbus_binding_tool_output_glib_client): Ditto.
3571
3572         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3573         and dbus-gsignature.h
3574
3575         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3576         unused variable.
3577
3578 2005-08-03  Colin Walters  <walters@verbum.org>
3579
3580         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3581         catch any incompatible changes accidentally made.
3582
3583 2005-08-03  Havoc Pennington  <hp@redhat.com>
3584
3585         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3586         typo, from Julien Puydt
3587
3588         * bus/connection.c (bus_connection_disconnected): we were always
3589         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3590
3591 2005-08-01  Colin Walters  <walters@verbum.org>
3592
3593         Patch from Joe Markus Clarke:   
3594         
3595         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3596         use-after-free.
3597
3598 2005-08-01  Colin Walters  <walters@verbum.org>
3599         
3600         Patch from Joe Markus Clarke:   
3601         
3602         * tools/dbus-send.c (main): 
3603         
3604         Don't use C99 style initializers (bug #3933).
3605         
3606 2005-08-01  Colin Walters  <walters@verbum.org>
3607
3608         Patch from Joe Markus Clarke:   
3609
3610         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3611         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3612         * glib/dbus-gobject.c (write_interface):
3613
3614         Don't use C99 style initializers (bug #3933).
3615
3616 2005-07-31  Havoc Pennington  <hp@redhat.com>
3617
3618         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3619         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3620
3621 2005-07-30  Havoc Pennington  <hp@redhat.com>
3622
3623         * fix a bunch of Doxygen warnings and mistakes
3624
3625 2005-07-30  Havoc Pennington  <hp@redhat.com>
3626
3627         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3628         DBUS_BUILD_TESTS since it's now used in production code
3629
3630 2005-07-29  Havoc Pennington  <hp@redhat.com>
3631
3632         * test/glib/test-profile.c (write_junk): initialize the junk
3633         buffer so valgrind doesn't have a breakdown
3634
3635 2005-07-29  Havoc Pennington  <hp@redhat.com>
3636
3637         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3638         (match_rule_matches): remove unused arg
3639         (test_matching): add tests for match_rule_matches()
3640
3641         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3642         do arg0='foo' arg5='bar' in the match rules
3643         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3644
3645         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3646
3647 2005-07-29  Ross Burton  <ross@openedhand.com>
3648
3649         * dbus/dbus-connection.c:
3650         Don't create a DBusCondVar which is never used.
3651
3652 2005-07-27  Ross Burton  <ross@openedhand.com>
3653
3654         * dbus/dbus-message.c:
3655         Reduce the size of the maximum cached message to 10K.
3656
3657 2005-07-25  Ross Burton  <ross@openedhand.com>
3658
3659         * glib/dbus-gproxy.c:
3660         Remove matches when all proxies are unregistered.
3661
3662 2005-07-24  Colin Walters  <walters@verbum.org>
3663
3664         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3665         typedata; recursive arrays won't have it.
3666
3667         * test/glib/test-dbus-glib.c:
3668         * test/glib/test-service-glib.c:
3669         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3670         
3671 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3672
3673         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3674         proxies.py, service.py: Cleanup of code after running it through the
3675         pyflakes code checker mostly dealing with undefined names.  
3676         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3677
3678 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3679
3680         * NEWS: Update to 0.35.2
3681
3682 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3683
3684         * python/_dbus.py: Remove import of the dbus.services
3685         module as it no longer exists (patch from Dimitur Kirov)
3686
3687         * python/service.py (Object::__init__): Fixed typo
3688         s/name/bus_name (patch from Dimitur Kirov)
3689
3690         * python/examples/example-signal-emitter.py: import dbus.glib
3691         to get the main loop and use glib mainloop instead of gtk so
3692         X doesn't have to be running.
3693
3694         * python/examples/example-signal-recipient.py: import dbus.glib
3695         to get the main loop and use glib mainloop instead of gtk so
3696         X doesn't have to be running. Import the decorators module
3697         directly.
3698
3699         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3700         didn't pick up on but are needed to build
3701
3702         * configure.in: upped version to 0.35.2
3703
3704         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3705         added Colin Walters' SELinux API rename patch from head 
3706         s/unix sercurity context/selinux security context/
3707
3708 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3709
3710         * python/Makefile.am: dbus_binding.pxd.in should be included 
3711         in EXTRA_DIST not dbus_binding.pxd
3712         fix up $(srcdir) hopefully for the last time
3713
3714         * NEWS: Update to 0.35.1
3715
3716 2005-07-16  Colin Walters  <walters@verbum.org>
3717
3718         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3719         from bus_driver_handle_get_connection_unix_security_context.  Update for
3720         error usage.
3721         (message_handlers): Update for renames.
3722
3723         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3724         _dbus_string_init failure correctly.
3725         (bus_selinux_append_context): Convert SID to context.  Append it
3726         as a byte array.
3727         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3728         hasn't been called.
3729
3730         * bus/selinux.h: Update prototype.
3731
3732         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3733         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3734
3735 2005-07-15  Colin Walters  <walters@verbum.org>
3736
3737         * doc/TODO: Add note about convenience wrappers.
3738
3739 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3740
3741         * NEWS: Update to 0.35
3742
3743 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3744
3745         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3746         so distcheck doesn't fail
3747
3748         * glib/examples/Makefile.am: Add example-service.xml and 
3749         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3750
3751         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3752         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3753
3754         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3755         compiler looks in the right places during distcheck
3756
3757 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3758
3759         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3760         to fail
3761
3762 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3763
3764         * python/examples/example-service.py,
3765         python/examples/example-signal-emitter.py: Fixed up examples
3766         for API changes
3767
3768 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3769
3770         * python/__init__.py: Upped to version (0,42,0) because of
3771         the API change
3772
3773 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3774
3775         * ChangeLog: fix date in last entry
3776
3777         * configure.in, bus/system.conf.in: add the ability to configure 
3778         the system bus user at compiletime with the --with-dbus-user flag
3779         (patch from Kristof Vansant)
3780
3781 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3782
3783         * bus/dispatch.c, test/test-service.c: Add testcase
3784         for sending messages to oneself (TODO item).
3785
3786         * python/service.py (class Object): Swap ordering of bus_name 
3787         and object_path parameters to better support inheritance.
3788
3789         * doc/dbus-tutorial.xml: change Python docs to reflect change
3790         in parameter ordering and fix the inheritance section.
3791
3792         * doc/TODO: remove sending message to oneself TODO item
3793
3794 2005-07-15  Ross Burton  <ross@openedhand.com>
3795
3796         * glib/dbus-gproxy.c:
3797         Fix a leak when calling methods via the proxy.
3798
3799 2005-07-15  Colin Walters  <walters@verbum.org>
3800
3801         * bus/selinux.c (bus_selinux_append_context): Wrap in
3802         HAVE_SELINUX.
3803
3804 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3805
3806         * python/_dbus.py (Bus::remove_signal_receiver):
3807         don't add a callback to the match if none has been passed in
3808         
3809         * python/matchrules.py (SignalMatchTree::remove): if the rule
3810         being matched does not have a callback treat it as a wildcard
3811         fix matching logic
3812
3813         * doc/dbus-tutorial.xml: Add Python tutorial
3814
3815 2005-07-14  Colin Walters  <walters@verbum.org>
3816
3817         * bus/driver.c
3818         (bus_driver_handle_get_connection_unix_security_context): New function.
3819         (message_handlers): Add.
3820
3821         * bus/selinux.c (bus_selinux_append_context): New function; appends
3822         security context to message.
3823
3824         * bus/selinux.h: Prototype.
3825
3826         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3827
3828 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3829
3830         * bus/activation.c: clean up all tabs to be 8 spaces 
3831         (bus_activation_activate_service): make sure we clean up
3832         if activation fails
3833
3834         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3835         (check_shell_fail_service_auto_start): New function
3836         tests to make sure we get fail properly when trying to auto start a service
3837         with a faulty command line
3838         (check_shell_service_success_auto_start): New function tests to make sure
3839         auto started services get the arguments on the command line
3840
3841         * test/test-shell-service.c: Added service for testing auto-starting with 
3842         command line arguments
3843
3844         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3845         test/data/valid-service-files/debug-shell-echo-success.service.in:
3846         Added service files for testing auto-starting with command line arguments
3847
3848         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3849
3850 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3851
3852         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3853         
3854         * dbus/Makefile.am: added new files to build.
3855
3856         * bus/activation.c (bus_activation_activate_service): support
3857         activation commands with parameters.
3858
3859         * test/shell-test.c: added test program for the shell parsing
3860         code.
3861
3862 2005-07-13  David Zeuthen  <davidz@redhat.com>
3863
3864         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3865         64 bit signed and unsigned parameters
3866
3867 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3868
3869         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3870
3871         * python/service.py (class Name): renamed BusName to make it clearer
3872         what the object is for (a name on the bus)
3873
3874         * python/examples/example-service.py,
3875         python/examples/example-signal-emitter.py: change the Name object to
3876         BusName
3877
3878 2005-07-12  Colin Walters  <walters@verbum.org>
3879
3880         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3881
3882         * tools/dbus-launch.c: Include sys/select.h.
3883
3884 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3885         * python/dbus_bindings.pyx.in: removed
3886
3887         * python/dbus_bindings.pyx: Added.
3888         - Fixed some memleaks (patch from 
3889         Sean Meiners <sean.meiners@linspireinc.com>)
3890         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3891         own pxd file (Pyrex definition)
3892         - Broke out glib dependancies into its own pyx module
3893         
3894         * python/dbus_bindings.pdx: Added.
3895         - Defines C class Connection for exporting to other modules
3896
3897         * python/dbus_glib_bindings.pyx: Added.
3898         - New module to handle lowlevel dbus-glib mainloop integration
3899
3900         * python/glib.py: Added.
3901         - Registers the glib mainloop when you import this module
3902
3903         * python/services.py: Removed (renamed to service.py)
3904         
3905         * python/service.py: Added.
3906         - (class Server): renamed Name
3907
3908         * python/__init__.py: Bump ro version (0,41,0)
3909         -don't import the decorators or service module
3910         by default.  These now reside in the dbus.service namespace
3911
3912         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3913         setup function on creation 
3914
3915         * python/examples/example-service.py,
3916         python/examples/example-signal-emitter.py: update examples
3917
3918         * python/examples/gconf-proxy-service.py,
3919         python/examples/gconf-proxy-service2.py: TODO fix these up
3920
3921         * doc/TODO: Addition
3922         - Added a Python Bindings 1.0 section
3923         - added "Add match on args or match on details to match rules"
3924
3925
3926 2005-07-12  Colin Walters  <walters@verbum.org>
3927
3928         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3929         (statemachine-glue.h): 
3930         * glib/examples/Makefile.am (example-service-glue.h) 
3931         (example-signal-emitter-glue.h): 
3932         * glib/Makefile.am (dbus-glib-error-switch.h): 
3933         Add libtool --mode=execute so we use the built library instead
3934         of any installed one.
3935
3936 2005-07-11  Colin Walters  <walters@verbum.org>
3937
3938         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3939         (dbus_g_value_types_init): Remove assertion.
3940         (dbus_g_value_get_g_type, dbus_g_value_open)
3941         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3942         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3943         functions related to DBusGValue.  Now we marshal/demarshal
3944         structures as GValueArray.
3945         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3946         structures.
3947         (signature_iter_to_g_type_array): Don't call
3948         signature_iter_to_g_type_struct.
3949         (signature_iter_to_g_type_struct): Delete.
3950         (dbus_gvalue_to_signature): Delete.
3951         (dbus_gvalue_to_signature): New function with same name as other
3952         one; we can convert structures to signatures.
3953         (demarshal_valuearray): New function.
3954         (get_type_demarshaller): Use it.
3955         (demarshal_recurse): Delete.
3956         (marshal_proxy): New function.
3957         (marshal_map): Warn if we can't determine signature from type.
3958         (marshal_collection_ptrarray): Ditto.
3959         (marshal_collection_array): Ditto.
3960         (get_type_marshaller): Use marshal_valuearray.
3961         (marshal_recurse): Delete.
3962         (_dbus_gvalue_test): Add some tests.
3963
3964         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3965         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3966         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3967         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3968         (dbus_g_value_free): Remove prototypes.
3969
3970         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3971         G_TYPE_VALUE_ARRAY.
3972
3973         * glib/examples/example-service.c:
3974         * glib/examples/example-client.c: Implement GetTuple.
3975
3976         * test/glib/test-dbus-glib.c:
3977         * test/glib/test-service-glib.c:
3978         * test/glib/test-service-glib.xml: Add structure tests.
3979
3980 2005-07-10  Colin Walters  <walters@verbum.org>
3981
3982         * doc/TODO: Knock off some GLib items with this patch.
3983
3984         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3985         (_dbus_gvalue_signals_error): New functions.
3986
3987         * glib/dbus-gvalue-utils.h: Prototype them.
3988
3989         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3990         and change to not output const/retval flags for input args.  All
3991         callers updated.
3992         (invoke_object_method): Refactor to handle return values.  Add
3993         some more comments in various places.  Remove debug g_print.
3994
3995         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3996
3997         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3998         Handle G_TYPE_NONE.
3999         (compute_gsignature): New function; refactored from code from
4000         compute_marshaller and compute_marshaller_name.  Enhance to
4001         handle return values and async ops more cleanly.  Update for
4002         async ops returning NONE instead of BOOLEAN.
4003         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4004         and output appropriate string.
4005         (generate_glue): Handle return value annotation.  Also don't dump
4006         constness flag for input arguments.
4007
4008         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4009         files shared between installed library and utilities.
4010         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4011         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4012         binding tool can access gtype utility functions.
4013
4014         * test/glib/test-service-glib.c: 
4015         * test/glib/test-service-glib.xml: 
4016         * test/glib/test-dbus-glib.c: Add some tests for return values.
4017
4018 2005-07-09  Colin Walters  <walters@verbum.org>
4019
4020         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4021         argument if available, not method.
4022
4023         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4024         (invoke_object_method): First, remove some redundant
4025         GValues (object_value, error_value) in favor of working on
4026         array directly.  Second, rework constness to be less buggy.
4027         Now we iterate directly over the argument metadata instead
4028         of parallel iterating over output signature and metadata.
4029
4030         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4031
4032         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4033         annotation on input args.
4034         
4035 2005-07-09  Colin Walters  <walters@verbum.org>
4036
4037         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4038         Define.
4039
4040         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4041         annotation.
4042
4043         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4044         (method_dir_signature_from_object_info): Handle arg_iterate change.
4045         (write_interface): Ditto.
4046         (lookup_object_info): Don't barf if format_version is > 0.
4047         (invoke_object_method): Handle arg constness.
4048
4049         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4050         (arg_info_new): Create.
4051         (arg_info_unref): Destroy.
4052         (arg_info_get_annotations, arg_info_get_annotation) 
4053         (arg_info_add_annotation): New functions.
4054
4055         * glib/dbus-gidl.h: Prototype them.
4056
4057         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4058         args, disallow them in properties.
4059         (parse_annotation): Handle arg annotations.
4060
4061         * test/glib/test-service-glib.xml: 
4062         * test/glib/test-service-glib.c: Update to make some methods
4063         const.
4064
4065 2005-07-08  Colin Walters  <walters@verbum.org>
4066
4067         * test/glib/test-service-glib.xml: 
4068         * test/glib/test-service-glib.c:
4069         * test/glib/test-dbus-glib.c: Test a{sv}.
4070
4071         * glib/examples/statemachine/statemachine.c:
4072         * glib/examples/statemachine/statemachine-server.c:
4073         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4074         add progress bar, etc.
4075
4076         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4077         needed anymore due to generic array/map marshalling.
4078         (dbus_g_value_types_init): Don't register basic arrays or the
4079         string/string hash.
4080         (dbus_gtype_from_signature_iter): Don't try to recurse into
4081         variants.
4082         (dbus_gtype_to_signature): Check collection/map before type
4083         metadata.
4084         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4085         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4086         generic map creation/append functions instead of hash table
4087         specifically.
4088         (get_type_demarshaller): Handle maps.
4089         (demarshal_collection): Dispatch on collection type to either
4090         demarshal_collection_ptrarray or demarshal_collection_array.
4091         (get_type_marshaller): Handle maps.
4092         (marshal_collection): Dispatch collection type to either
4093         marshal_collection_ptrarray or marshal_collection_array.
4094         (_dbus_gvalue_test): New test.
4095
4096         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4097         (hash_free_from_gtype): Use it to free GValues.
4098         (hashtable_append): New function.
4099         (ptrarray_append): Fix prototype.
4100         (slist_append): Ditto.
4101         (_dbus_gvalue_utils_test): Extend tests.
4102
4103         * glib/dbus-gtype-specialized.c
4104         (dbus_g_type_specialized_init_append): Renamed from
4105         dbus_g_type_specialized_collection_init_append.  Remove const from
4106         value, since we steal it.
4107         (dbus_g_type_specialized_map_append): New function.
4108
4109         * glib/dbus-gtype-specialized.h: Update prototypes.
4110         Add DBusGTypeSpecializedMapAppendFunc.
4111
4112         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4113         _dbus_gvalue_test.
4114         
4115         * glib/dbus-gtest.h: Prototype it.
4116
4117 2005-07-08  Ross Burton  <ross@openedhand.com>
4118
4119         * dbus/dbus-glib.h:
4120         Add DBysGAsyncData for the async bindings.
4121
4122         * glib/dbus-binding-tool-glib.c:
4123         Re-enable the async bindings.
4124
4125         * test/glib/test-dbus-glib.c:
4126         Add a test for the generated async bindings.
4127
4128 2005-07-08  Colin Walters  <walters@verbum.org>
4129
4130         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4131         connection concept.
4132         
4133 2005-07-08  Colin Walters  <walters@verbum.org>
4134         
4135         * tools/Makefile.am: Kill of print-introspect in favor of using
4136         dbus-send --print-reply=literal.
4137
4138         * test/glib/test-service-glib.xml: 
4139         * test/glib/test-service-glib.c (my_object_get_objs): New test
4140         for "ao".
4141
4142         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4143         (main): Test GetObjs.
4144
4145         * glib/examples/statemachine/Makefile.am:
4146         * glib/examples/statemachine/sm-marshal.list:
4147         * glib/examples/statemachine/statemachine-client.c:
4148         * glib/examples/statemachine/statemachine-server.c:
4149         * glib/examples/statemachine/statemachine-server.xml:
4150         * glib/examples/statemachine/statemachine.c:
4151         * glib/examples/statemachine/statemachine.h:
4152         * glib/examples/statemachine/statemachine.xml:
4153
4154         New example.
4155
4156         * glib/examples/example-service.c (main): Move invocation
4157         of dbus_g_object_type_install_info earlier, to emphasize it
4158         should only be done once.
4159
4160         * glib/examples/example-signal-emitter.c (main): Ditto.
4161
4162         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4163
4164         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4165         (dbus_gvalue_marshal): Update prototypes.
4166
4167         * glib/dbus-gvalue.c: Update all marshalling functions to take
4168         const GValue instead of GValue.
4169         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4170         types.
4171         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4172         change.
4173         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4174         Return a newly-allocated string.
4175         (demarshal_proxy, demarshal_object_path, demarshal_object)
4176         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4177         we get the wrong types from message.
4178         (get_type_demarshaller): New function, extracted from
4179         dbus_gvalue_demarshal.
4180         (demarshal_collection): New function, demarshals generic
4181         collection.
4182         (dbus_gvalue_demarshal): Just invoke result of
4183         get_type_demarshaller.  Throw error if we don't have one.
4184         (marshal_garray_basic): Abort on OOM.
4185         (get_type_marshaller): New function, extracted from
4186         dbus_gvalue_marshal.
4187         (collection_marshal_iterator, marshal_collection): New functions;
4188         implements generic marshalling for an iteratable specialized
4189         collection.
4190         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4191
4192         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4193         G_TYPE_STRING.
4194         (ptrarray_value_from_gvalue): Ditto.
4195         (ptrarray_append, ptrarray_free): New functions.
4196         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4197         (slist_append, slist_end_append, slist_free): New functions.
4198         (dbus_g_type_specialized_builtins_init): Add append fuctions
4199         for GPtrArray and GSList.  Register GSList.
4200         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4201
4202         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4203         New.
4204         (dbus_g_type_specialized_collection_init_append)
4205         (dbus_g_type_specialized_collection_append)
4206         (dbus_g_type_specialized_collection_end_append): Prototype.
4207         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4208         end_append_func.
4209
4210         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4211         (dbus_g_type_specialized_collection_append) 
4212         (dbus_g_type_specialized_collection_end_append): New functions.
4213         (dbus_g_type_map_value_iterate): Take const GValue.
4214         (dbus_g_type_collection_value_iterate): Ditto.
4215
4216         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4217         _dbus_gvalue_utils_test.
4218         
4219         * glib/dbus-gtest.h: Prototype it.
4220
4221         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4222         using uninitialized owner_list.
4223         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4224         public API.
4225         (dbus_g_proxy_end_call_internal): Update to use error set
4226         from dbus_gvalue_demarshal instead of setting it here.
4227         (dbus_g_proxy_begin_call): Move return_if_fail here.
4228
4229         * glib/dbus-gobject.c (write_interface): Update for
4230         dbus_gtype_to_signature returning new string.
4231
4232         * configure.in: Add glib/examples/statemachine.
4233
4234 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4235
4236         * configure.in: Add a configure option, --with-console-auth-dir
4237         
4238         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4239         new setting.  Patch from Kay Sievers.
4240
4241 2005-07-06  Colin Walters  <walters@verbum.org>
4242
4243         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4244         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4245         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4246         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4247         Delete in favor of dbus_g_proxy_begin_call and
4248         dbus_g_proxy_cancel_call.
4249         (DBusGProxyCall, DBusGProxyCallNotify): New.
4250         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4251         data, and destroy function.  This replaces
4252         dbus_g_pending_call_set_notify.
4253         (dbus_g_proxy_cancel_call): Prototype.
4254         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4255
4256         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4257         pending_calls map.
4258         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4259         internal proxy for calls to the bus. Remove
4260         pending_nameowner_calls, now the internal proxy keeps track.
4261         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4262         pending_nameowner_calls.
4263         (got_name_owner_cb): Update prototype, and use
4264         dbus_g_proxy_end_call.
4265         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4266         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4267         favor of using internal proxy.
4268         (dbus_g_proxy_manager_unregister): Update to use
4269         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4270         (dbus_g_proxy_init): Initialize pending calls map.
4271         (dbus_g_proxy_constructor): New.
4272         (dbus_g_proxy_class_init): Add get/set property functions,
4273         constructor, and add NAME, PATH, and INTERFACE properties.
4274         (cancel_pending_call): New function.
4275         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4276         cancel them.
4277         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4278         (GPendingNotifyClosure): New structure.
4279         (d_pending_call_notify, d_pending_call_free): Moved here from
4280         dbus-glib.c.
4281         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4282         ordering.
4283         (manager_begin_bus_call): New internal function for talking to
4284         internal bus proxy.
4285         (dbus_g_proxy_new): Construct object using GObjet properties.
4286         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4287         Create closure of same, and insert call into map of pending calls.
4288         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4289         call.  Look up pending call in current set.  Remove it when we've
4290         completed.
4291         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4292         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4293         and destroy function directly.
4294         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4295         (dbus_g_proxy_call): Invoke with NULL callback.
4296         (dbus_g_proxy_cancel_call): New function, replaces
4297         dbus_g_pending_call_cancel.
4298
4299         * glib/dbus-gparser.c (validate_signature): Fix call to
4300         dbus_set_g_error.
4301
4302         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4303         New quark for attaching metadata to GType.
4304         (info_hash): Delete.
4305         (lookup_object_info): Look up using quark.
4306         (dbus_g_object_type_install_info): Check that a type is classed,
4307         not that it's an object.  Also just install type data using quark
4308         instead of using global hash.
4309
4310         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4311         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4312         (GPendingNotifyClosure): Delete.
4313         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4314         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4315
4316         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4317         client method generation until we can fix it...
4318         
4319         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4320         (load_from_service_thread_func): Ditto.
4321
4322         * tools/dbus-names-model.c (struct NamesModel): Hold
4323         DBusGProxyCall.
4324         (have_names_notify): Update prototype, use
4325         dbus_g_proxy_cancel_call.
4326         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4327
4328         * tools/dbus-monitor.c (filter_func): Update for print_message
4329         API change.
4330
4331         * test/glib/test-dbus-glib.c: Add more tests for async
4332         invocations.  Update many begin_call/end_call pairs to just use
4333         dbus_g_proxy_call.
4334
4335         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4336         allows us to dump print-introspect.c.
4337
4338         * tools/dbus-print-message.h (print_message): Add literal argument
4339         to print_message which is intended to allow printing arguments without
4340         metadata like "string=".
4341
4342         * tools/dbus-print-message.c (print_iter): Add literal argument.
4343         (print_message): Allow printing string messages literally.
4344
4345 2005-07-05  Colin Walters  <walters@verbum.org>
4346
4347         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4348         Remove value refcount leak, original patch from Jorn Baayen
4349         <jorn@openedhand.com>.  Also remove useless extra value in favor
4350         of prepending to value array directly.
4351
4352 2005-07-02  Colin Walters  <walters@verbum.org>
4353
4354         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4355
4356 2005-07-01  Colin Walters  <walters@verbum.org>
4357
4358         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4359         
4360         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4361         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4362         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4363         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4364
4365 2005-06-30  Colin Walters  <walters@verbum.org>
4366
4367         * test/glib/test-dbus-glib.c:
4368         * test/glib/test-service-glib.c:
4369         * test/glib/test-service-glib.xml: Update tests for new error
4370         setting bits, also add async tests (patch from Ross Burton).
4371
4372         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4373         DBUS_GLIB_THREADS_LIBS.
4374
4375         * glib/dbus-gproxy.c (get_name_owner)
4376         (dbus_g_pending_call_end_valist): Ditto.
4377
4378         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4379         domain (GQuark) to DBusGErrorInfo.  
4380         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4381         quark in error_metadata.  Take message interface as default
4382         error message interface.
4383         (gerror_to_dbus_error_message): Pass message interface.
4384         (dbus_set_g_error): Resurrected.
4385         (dbus_g_error_info_free): New function.
4386         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4387         of _peek to actually create the object class if it hasn't been
4388         created yet.
4389         (dbus_g_error_domain_register): New function.
4390
4391         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4392
4393         * glib/dbus-gparser.c (validate_signature): Ditto.
4394
4395         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4396         (dbus_g_error_domain_register): Prototype.
4397
4398         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4399         Update tests.
4400
4401 2005-06-29  Colin Walters  <walters@verbum.org>
4402
4403         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4404         DBUS_TYPE_G_OBJECT_PATH.
4405
4406         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4407         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4408         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4409         (dbus_g_object_path_get_g_type): New function.
4410         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4411         to DBUS_TYPE_G_OBJECT_PATH by default.
4412         (demarshal_proxy): Remove unused name variable.
4413         (demarshal_object_path, marshal_object_path): New functions.
4414         (demarshal_proxy_array, marshal_proxy_array): Delete.
4415         
4416         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4417         DBUS_TYPE_G_OBJECT_PATH to char *.
4418         (dbus_g_type_get_lookup_function): Map builtin
4419         DBUS_TYPE_G_OBJECT_PATH.
4420
4421         * test/glib/test-dbus-glib.c
4422         * test/glib/test-service-glib.c (my_object_objpath): 
4423         Adapt tests to new object path marshalling.
4424
4425 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4426
4427         * configure.in: force check for Python >= 2.4
4428
4429 2005-06-29  Colin Walters  <walters@verbum.org>
4430         
4431         Patch from Ross Burton <ross@openedhand.com>
4432         
4433         * glib/dbus-gobject.c (invoke_object_method): Unset object
4434         value in all cases, not only in async case.
4435
4436 2005-06-29  Colin Walters  <walters@verbum.org>
4437
4438         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4439         name_call for keeping track of any outgoing GetNameOwner call.
4440         Also add for_owner and associated.
4441         (struct _DBusGProxyManager): Add owner_names, which is hash table
4442         that maps a base name to a list of names it owns (that we're
4443         interested in).  Add pending_nameowner_calls which is a list of
4444         all outstanding GetNameOwner; avoids us having to iterate over
4445         every proxy.  Add unassociated_proxies which keeps track of name
4446         proxies with no associated name owner.
4447         (dbus_g_proxy_manager_unref): Destroy owner_names.
4448         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4449         name refcounts.
4450         (find_name_in_info, name_owner_foreach)
4451         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4452         (dbus_g_proxy_manager_monitor_name_owner)
4453         (dbus_g_proxy_manager_unmonitor_name_owner)
4454         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4455         New functions; they manipulate the owner_names mapping.
4456         (got_name_owner_cb): New function.
4457         (get_name_owner): New function, extracted from
4458         dbus_g_proxy_new_for_name_owner.
4459         (dbus_g_proxy_manager_register): For now we need to keep track of
4460         all NameOwnerChanged.  Also if the proxy is for a name, if we
4461         don't already know the name owner, queue a new GetNameOwner
4462         request and add it to our list of unassociated proxies.  Otherwise
4463         inc the refcount.
4464         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4465         cancel any pending GetNameOwner call, etc.
4466         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4467         the owner_names mapping to look up the current names for the
4468         signal source, and dispatch to any proxies for that name.
4469         (dbus_g_proxy_new): Initialize new members.
4470         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4471         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4472         (dbus_g_pending_call_end_valist): New function, extracted from
4473         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4474         but want to use the GLib infrastructure.  Also note how many
4475         arguments in reply were over.
4476         (dbus_g_pending_call_end): New function, just call
4477         dbus_g_pending_call_end_valist.
4478         (dbus_g_proxy_end_call_internal): Just call
4479         dbus_g_pending_call_end_valist.
4480
4481         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4482         of builtin marshaller for STRING_STRING_STRING.
4483
4484         * test/glib/test-dbus-glib.c: 
4485         * test/glib/test-service-glib.c:
4486         * test/glib/test-service-glib.xml:
4487         Extend tests to cover name proxies, destruction of owner proxies,
4488         etc.
4489         
4490         * glib/examples/example-signal-recipient.c
4491         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4492         
4493         * tools/dbus-send.c (main): Print D-BUS error name in addition
4494         to message.
4495
4496 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4497
4498         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4499         cmessage_function_handler): Patch from 
4500         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4501         by using the Py_GILState_Ensure/Release to synchronize with the
4502         python runtime.
4503         
4504 2005-06-28  Ray Strode  <rstrode@redhat.com>
4505
4506         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4507         babysitter helper process on last unref, bug #2813.
4508
4509 2005-06-27  Colin Walters  <walters@verbum.org>
4510
4511         * test/glib/test-dbus-glib.c: 
4512         * test/glib/test-service-glib.c:
4513         * test/glib/test-service-glib.xml:
4514         Test hash table signal emitting.
4515
4516         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4517         types to their fundamental basis types, since this is what
4518         marshallers operate on.  Also add an entry for VOID__BOXED.
4519         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4520
4521 2005-06-26  Havoc Pennington  <hp@redhat.com>
4522
4523         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4524         from Don Park
4525
4526 2005-06-26  Colin Walters  <walters@verbum.org>
4527
4528         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4529         (dbus_g_error_set): New public function from its ashes; used by
4530         both service-side method implementation and GLib bindings
4531         internals.
4532         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4533         (_dbus_glib_test): Add some tests.
4534
4535         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4536
4537         * test/glib/test-service-glib.c (my_object_throw_error): Use
4538         dbus_g_error_set.
4539
4540         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4541         errors thrown by dbus_g_error_set.
4542
4543         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4544
4545         * glib/dbus-gparser.c (validate_signature): Ditto.
4546
4547         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4548         (dbus_g_proxy_end_call_internal): Ditto.
4549
4550         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4551         converts DBUS_ERROR_x to DBUS_GERROR_x.
4552         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4553
4554         * doc/TODO: Remove error TODO.
4555
4556         * doc/dbus-tutorial.xml: Update with documentation about error
4557         handling.
4558
4559         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4560         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4561         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4562
4563 2005-06-22  Colin Walters  <walters@verbum.org>
4564         
4565         Patch from Ross Burton <ross@openedhand.com>
4566
4567         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4568
4569 2005-06-20  Colin Walters  <walters@verbum.org>
4570
4571         * configure.in: Add glib/examples.
4572
4573         * glib/Makefile.am: Add examples/
4574
4575         * glib/examples/.cvsignore
4576         * glib/examples/Makefile.am
4577         * glib/examples/example-client.c
4578         * glib/examples/example-service.c
4579         * glib/examples/example-service.xml
4580         * glib/examples/example-signal-emitter.c
4581         * glib/examples/example-signal-emitter.xml
4582         * glib/examples/example-signal-recipient.c:
4583         New files; GLib binding examples, ported from
4584         python/examples.
4585
4586 2005-06-20  Colin Walters  <walters@verbum.org>
4587
4588         * dbus/dbus-glib.h: 
4589         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4590         dbus_g_proxy_call.
4591
4592         * glib/dbus-binding-tool-glib.c: 
4593         * doc/dbus-tutorial.xml: 
4594         * test/glib/test-dbus-glib.c: Update for rename.
4595         
4596 2005-06-20  Colin Walters  <walters@verbum.org>
4597
4598         Patch suggested by Ross Burton <ross@openedhand.com>
4599
4600         * glib/dbus-gobject.c (export_signals): Free signal name.
4601         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4602         memory leak.  Add a bit of documentation.
4603         (dbus_g_method_return_error): Free context, and note we do
4604         so.
4605
4606 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4607
4608         * dbus/dbus-glib.h:
4609         * glib/dbus-gobject.c:
4610         * glib/dbus-gproxy.c:
4611         * glib/dbus-gvalue.c: Predeclare structs as 
4612         typedef struct _Something Something instead of 
4613         typedef struct Something Something, so we can 
4614         redeclare the prototypes. Other GNOME libraries 
4615         do this already.
4616
4617 2005-06-17  Colin Walters  <walters@verbum.org>
4618
4619         * tools/dbus-names-model.c (have_names_notify): Fix call
4620         to dbus_g_proxy_end_call.
4621         
4622 2005-06-17  Colin Walters  <walters@verbum.org>
4623
4624         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4625         spew warnings if we get malformed remote signals.
4626
4627         * glib/dbus-gobject.c (propsig_iterate): New function.
4628         (lookup_object_info): New function, extracted from
4629         lookup_object_and_method.
4630         (introspect_properties, introspect_signals): Delete; these
4631         are merged into write_interface.
4632         (write_interface): Write out signals and properties here;
4633         dump the org.gtk.object stuff and use the interface given
4634         in the introspection data blob.  Also fix up property XML.
4635         (lookup_values): New function.
4636         (introspect_interfaces): Gather a mapping from interface to a
4637         list of its methods, signals, and properties, then write out
4638         each interface.
4639         (lookup_object_and_method): Use lookup_object_info.
4640         (struct DBusGSignalClosure): Add interface.
4641         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4642         we can just use the constant data.
4643         (dbus_g_signal_closure_finalize): Don't free signal name.
4644         (signal_emitter_marshaller): Use interface from signal closure.
4645         (export_signals): Only export signals mentioned in introspection
4646         blob.
4647         (dbus_g_connection_register_g_object): Warn if we have no
4648         introspection data for an object.
4649         (funcsig_equal): Remove unused variable.
4650         (dbus_g_object_register_marshaller): Take varargs instead of
4651         list.
4652         (dbus_g_object_register_marshaller_array): New function,
4653         extracted from old dbus_g_object_register_marshaller.
4654
4655         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4656         signals and property data.
4657         (write_quoted_string): New function, extracted from generate_glue.
4658         (generate_glue): Write signals and properties to introspection
4659         blob.
4660
4661         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4662         exported_signals and exported_properties.
4663         (dbus_g_object_register_marshaller): Update prototype.
4664         (dbus_g_object_register_marshaller_array): Prototype.
4665         
4666         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4667
4668         * test/glib/test-service-glib.c: Add new test signals and method
4669         to emit them.
4670
4671         * test/glib/test-service-glib.xml: Add some test signals.
4672
4673         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4674         and my-object-marshal.h
4675         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4676         my-object-marshal.c.
4677         (my-object-marshal.c, my-object-marshal.h): Implement.
4678
4679         * test/glib/.cvsignore: Update.
4680
4681         * doc/TODO: Remove two GLib TODO items fixed by this
4682         patch.
4683
4684 2005-06-16  Colin Walters  <walters@verbum.org>
4685
4686         * doc/TODO: Update for GLib bindings.
4687         
4688 2005-06-16  Colin Walters  <walters@verbum.org>
4689
4690         * glib/dbus-binding-tool-glib.c:
4691         * glib/dbus-gobject.c:
4692         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4693         from Ross Burton, for his GLib bindings work.
4694
4695 2005-06-16  Colin Walters  <walters@verbum.org>
4696
4697         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4698         to iterate instead of walking to G_TYPE_INVALID.
4699
4700         Patch based on a patch from Ryan Gammon.
4701
4702 2005-06-16  Colin Walters  <walters@verbum.org>
4703
4704         * bus/bus.c (bus_context_new): Set parser to NULL
4705         after we unref it (Patch from Chris Boscolo, #2174).
4706         
4707 2005-06-16  Colin Walters  <walters@verbum.org>
4708
4709         * python/dbus_bindings.pyx.in: Import size_t,
4710         __int64_t, __uint64_t, and __signed.
4711
4712         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4713         Define cmsg struct, output it.
4714         (_dbus_read_credentials_unix_socket):
4715         Use cmsg struct.
4716         
4717         Patch from Joe Markus Clarke for FreeBSD support.
4718         
4719 2005-06-16  Colin Walters  <walters@verbum.org>
4720
4721         * tools/dbus-send.c (append_array): Use strtok.
4722         (append_dict): New function.
4723         (type_from_name): New function, extracted from main.
4724         (main): Handle sending dicts.
4725
4726         * tools/dbus-print-message.c (print_iter): Print dict
4727         entries.
4728         
4729 2005-06-16  Colin Walters  <walters@verbum.org>
4730
4731         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4732         values as the empty string (#2948).
4733         
4734 2005-06-16  Colin Walters  <walters@verbum.org>
4735
4736         * dbus/Makefile.am:
4737         * mono/doc/Makefile.am:
4738         * test/glib/Makefile.am:
4739
4740         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4741
4742 2005-06-16  Colin Walters  <walters@verbum.org>
4743
4744         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4745         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4746
4747         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4748         Increment pointer after swapping fixed array.  Add assertion
4749         for array length.
4750                 
4751 2005-06-15  Colin Walters  <walters@verbum.org>
4752
4753         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4754         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4755         
4756 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4757
4758         * NEWS: Update to 0.34
4759
4760 2005-06-15  David Zeuthen  <davidz@redhat.com>
4761
4762         * configure.in (LT_CURRENT): Revert back to 1 as the library
4763         hasn't changed and we've certainly not committed to protocol
4764         stability yet.  All this does is to break ABI. See commit note
4765         from hp@redhat.com 2005-05-05 for details.
4766         
4767 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4768
4769         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4770         (_dbus_connection_run_builtin_filters): New method
4771         (dbus_connection_dispatch): Run the builtin filters which in turn
4772         runs the peer filter which handles Ping messages.
4773
4774         * doc/TODO: 
4775          - Ping isn't handled: This patch fixes it
4776          
4777          - Add a test case for the Ping message: added TODO item
4778
4779 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4780
4781         * dbus/dbus-message.c:
4782         (dbus_message_has_path): New method
4783         (dbus_message_has_interface): New method
4784         (dbus_message_has_member): New method
4785
4786         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4787         New method
4788
4789         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4790         the keyring directory is private to the user
4791
4792         * doc/TODO:
4793          - The convenience functions in dbus-bus.h should perhaps have
4794          the signatures that they would have if they were autogenerated
4795          stubs. e.g. the acquire service function. We should also evaluate
4796          which of these functions to include, in light of the fact that
4797          GLib/Qt native stubs will probably also exist.: Punted
4798
4799          - add dbus_message_has_path(), maybe has_member/interface:
4800          fixed in this patch
4801
4802          - in dbus-keyring.c, enforce that the keyring dir is not
4803          world readable/writable: Fixed in this patch
4804
4805 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4806
4807         * dbus/dbus-marshal-validate.h: Added a new validation
4808         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4809         out of memory errors when validating signitures
4810
4811         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4812         in places where we previously used DBUS_VALID and a FALSE return 
4813         value to indicate OOM
4814         
4815         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4816         Use a stack to track the number of elements inside containers.  The 
4817         stack values are then used to validate that dict entries have only two
4818         elements within them.
4819         (validate_body_helper): check the reason for failure when validating
4820         varients
4821         
4822         * dbus/dbus-message.c (load_message): use 
4823         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4824         DBUS_VALID and a FALSE return value to indicate OOM
4825
4826         * doc/TODO: remove "- validate dict entry number of fields" as this
4827         patch fixes it
4828
4829 2005-06-14  David Zeuthen  <davidz@redhat.com>
4830
4831         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4832         watches (if applicable) and add new watches
4833
4834         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4835         (main): Setup SIGIO signal handler if using D_NOTIFY
4836
4837         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4838
4839         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4840         (merge_included): Also merge conf_dirs list
4841         (bus_config_parser_unref): Clear conf_dirs list
4842         (include_dir): Add directory to conf_dirs list
4843         (bus_config_parser_get_conf_dirs): New function
4844
4845         * bus/dir-watch.[ch]: New files
4846
4847         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4848
4849         * configure.in: Add checks for D_NOTIFY on Linux
4850
4851 2005-06-14  Colin Walters  <walters@verbum.org>
4852
4853         * glib/dbus-binding-tool-glib.c:
4854         * glib/dbus-gobject.c:
4855         * glib/dbus-gvalue.c: Fix indentation and brace style.
4856         
4857 2005-06-14  Ross Burton <ross@openedhand.com>.
4858
4859         * glib/dbus-glib.h: Make DBusGMethodInvocation
4860         a private structure.  Rearrange prototypes a bit.
4861         
4862         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4863         documentation for first_arg_type.
4864         
4865         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4866         here, add documentation.  Move dbus_g_method_return
4867         and dbus_g_method_return_error into public API
4868         section.
4869
4870 2005-06-14  Colin Walters  <walters@verbum.org>
4871
4872         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4873         Add missing return statements, noticed by Ross Burton.
4874         
4875 2005-06-13  Ross Burton <ross@openedhand.com>.
4876
4877         * glib/dbus-gobject.c: Handle errors on message
4878         demarshalling by sending error message back.
4879         * glib/dbus-gvalue.c: Initialize return variables.
4880
4881 2005-06-13  Colin Walters  <walters@verbum.org>
4882
4883         * glib/Makefile.am: Fix thinko in last patch.
4884
4885 2005-06-13  Colin Walters  <walters@verbum.org>
4886
4887         * glib/Makefile.am: Move dbus-gtype-specialized.c
4888         and dbus-gtype-specialized.h into a _HEADERS variable,
4889         install them.
4890
4891 2005-06-12  Colin Walters  <walters@verbum.org>
4892
4893         Async signals and various bugfixes and testing by
4894         Ross Burton <ross@openedhand.com>.
4895
4896         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4897         (dbus_gvalue_genmarshal_name_from_type)
4898         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4899         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4900         (dbus_g_value_types_init, dbus_gtype_from_signature)
4901         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4902         (dbus_gtypes_from_arg_signature): New function prototypes.
4903         (dbus_gvalue_demarshal): Take context and error arguments.
4904         (dbus_gvalue_demarshal_variant): New function.
4905         (dbus_gvalue_demarshal_message): New function.
4906         (dbus_gvalue_store): Delete.
4907
4908         * glib/dbus-gvalue.c:
4909
4910         File has been almost entirely rewritten; now we special-case
4911         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4912         hash tables correctly, etc.  Full support for recursive values
4913         is not yet complete.
4914
4915         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4916         argument of signal to G_TYPE_POINTER since we now pass a
4917         structure.
4918         (lookup_g_marshaller): Delete in favor of
4919         _dbus_gobject_lookup_marshaller.
4920         (marshal_dbus_message_to_g_marshaller): Use
4921         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4922         to handle remote signal callbacks.
4923         (dbus_g_proxy_new_from_proxy): New function; creates a new
4924         DBusGProxy by copying an existing one.
4925         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4926         (dbus_g_proxy_get_path): New functions.
4927         (dbus_g_proxy_marshal_args_to_message): New function;
4928         factored out of existing code.
4929         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4930         from a varargs array.
4931         (dbus_g_proxy_begin_call_internal): New function.
4932         (dbus_g_proxy_end_call_internal): New function.
4933         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4934         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4935         after collecting args into value array.
4936         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4937         invoke dbus_g_proxy_end_call_internal.
4938         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4939         end_call_internal.
4940         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4941         types.
4942         (array_free_all): New function.
4943         (dbus_g_proxy_add_signal): Take GTypes.
4944
4945         * glib/dbus-gobject.h:
4946         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4947         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4948         Prototype.
4949
4950         * glib/dbus-gobject.c: Add a global marshal_table hash which
4951         stores mappings from type signatures to marshallers.  Change lots
4952         of invocations of dbus_gtype_to_dbus_type to
4953         dbus_gtype_to_signature.
4954         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4955         (introspect_signals): Fix test for query.return_type.
4956         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4957         (invoke_object_method): Many changes.  Handle asynchronous
4958         invocations.  Convert arguments with
4959         dbus_gvalue_demarshal_message.  Handle errors.  Use
4960         DBusSignatureIter instead of strlen on args. Handle all arguments
4961         generically.  Special-case variants.
4962         (dbus_g_method_return, dbus_g_method_return_error): New function.
4963         (DBusGSignalClosure): New structure, closes over signal
4964         information.
4965         (dbus_g_signal_closure_new): New function.
4966         (dbus_g_signal_closure_finalize): New function.
4967         (signal_emitter_marshaller): New function; is special marshaller
4968         which emits signals on bus.
4969         (export_signals): New function; introspects object signals and
4970         connects to them.
4971         (dbus_g_object_type_install_info): Take GType instead of
4972         GObjectClass.
4973         (dbus_g_connection_register_g_object): Invoke export_signals.
4974         (dbus_g_connection_lookup_g_object): New function.
4975         (DBusGFuncSignature) New structure; used for mapping type
4976         signatures to marshallers.
4977         (funcsig_hash): New function; hashes DBusGFuncSignature.
4978         (funcsig_equal): New function; compares DBusGFuncSignature.
4979         (_dbus_gobject_lookup_marshaller): New function.
4980         (dbus_g_object_register_marshaller): New function; used to
4981         register a marshaller at runtime for a particular signature.
4982
4983         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4984
4985         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4986         which notes a server method implementation should be
4987         asynchronous.
4988
4989         * glib/dbus-binding-tool-glib.c
4990         (dbus_binding_tool_output_glib_server): Call
4991         dbus_g_value_types_init.
4992         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4993         variants specially.
4994         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4995         of a lookup function.
4996         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4997         (write_untyped_out_args): New method; write output arguments.
4998         (write_formal_declarations_for_direction): Function for
4999         writing prototypes.
5000         (write_formal_parameters_for_direction): Function for
5001         writing implementations.
5002         (write_typed_args_for_direction): Function for writing
5003         arguments prefixed with GTypes.
5004         (write_async_method_client): Write out async version
5005         of method.
5006
5007         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5008         (dbus_g_type_get_marshal_name): Move mapping from GType
5009         to marshal name into here.
5010         (dbus_g_type_get_c_name): Move into here.
5011         (compute_marshaller): Convert signature to type with
5012         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5013         (compute_marshaller_name): Ditto.
5014         (compute_marshaller): Handle async signal annotations.
5015         (gather_marshallers): Return if we don't have a known
5016         prefix.
5017         (generate_glue): Collect introspection blob here, and
5018         write all of the blob at the end.  This allows an object
5019         with multiple interfaces to work.
5020         Mark async methods in introspection blob.
5021
5022         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5023         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5024         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5025
5026         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5027         avoids people accidentally using DBUS_TYPE_* which should
5028         not be necessary anymore.
5029         Do include dbus-gtype-specialized.h, which are utilities
5030         for GLib container types.
5031         Add various #defines for types such as
5032         DBUS_TYPE_G_BOOLEAN_ARRAY.
5033         (DBusGValueIterator, DBusGValue): Define, not fully used
5034         yet.
5035         (dbus_g_value_get_g_type): Type for recursive value.
5036         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5037         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5038         (dbus_g_value_free): Prototypes.
5039         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5040         (dbus_g_proxy_set_interface): Prototype.
5041         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5042         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5043         types.
5044         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5045         Accessors.
5046         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5047         doing async invocations.
5048         (dbus_g_method_return, dbus_g_method_return_error):
5049         Prototypes.
5050         * doc/dbus-tutorial.xml: Update GLib section.
5051         
5052         * tools/dbus-viewer.c (load_child_nodes): Update
5053         for new invocation type of dbus_g_proxy_end_call.
5054         (load_from_service_thread_func): Ditto.
5055
5056         * tools/print-introspect.c (main): Ditto.
5057
5058         * tools/dbus-names-model.c (have_names_notify)
5059         (names_model_reload, names_model_set_connection)
5060         Use GTypes.
5061
5062         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5063         needed since Python bindings use GLib bindings.
5064
5065         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5066         Add --prefix argument.
5067
5068         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5069         unneeded --ignore-unsupported arg.
5070         
5071         * test/glib/test-service-glib.c: 
5072         * test/glib/test-service-glib.xml:
5073         * test/glib/test-dbus-glib.c: Add many more tests.
5074
5075 2005-06-06  David Zeuthen  <davidz@redhat.com>
5076
5077         * doc/TODO: Add item about need to remove deprecated functions.
5078
5079         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5080
5081         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5082         to repair the ABI which was broken with the last commit.
5083
5084 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5085
5086         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5087         (dbus_connection_disconnect): renamed to dbus_connection_close 
5088         for API symmetry with dbus_connection_open
5089         (_dbus_connection_open_internal): 
5090         s/dbus_connection_disconnect/dbus_connection_close
5091
5092         * dbus/dbus-bus.c (dbus_bus_get):
5093         s/dbus_connection_disconnect/dbus_connection_close
5094
5095         * bus/connection.c (bus_connections_unref, 
5096         bus_connections_setup_connection, bus_connections_expire_incomplete):
5097         s/dbus_connection_disconnect/dbus_connection_close
5098
5099         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5100         kill_client_connection_unchecked, check_hello_connection):
5101         s/dbus_connection_disconnect/dbus_connection_close
5102
5103         * bus/bus.c (new_connection_callback):
5104         s/dbus_connection_disconnect/dbus_connection_close
5105
5106         * tools/dbus-send.c (main):
5107         s/dbus_connection_disconnect/dbus_connection_close
5108
5109         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5110         s/dbus_connection_disconnect/dbus_connection_close
5111         
5112         * test/test-service.c (path_message_func, filter_func):
5113         s/dbus_connection_disconnect/dbus_connection_close
5114         
5115         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5116         
5117 2005-05-25  Colin Walters  <walters@verbum.org>
5118
5119         * dbus/dbus-protocol.h: Move various bus service #defines such
5120           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5121           dbus/dbus-shared.h.
5122         * dbus/dbus-shared.h: Various defines moved here.
5123         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5124
5125 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5126
5127         * python/__init__.py: Python bindings deserve a minor version
5128         update.  Upped to (0, 40, 2)
5129
5130 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5131
5132         * python/decorators.py: add explicitly_pass_message decorator
5133         for passing in the dbus message as keyword for edge case signal
5134         handling
5135
5136         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5137         to conform with what dbus expects for match rules
5138         (SignalMatchRule.execute): add the dbus message as a keyword
5139         if the signal handler has requested it
5140
5141         * python/examples/example/signal-recipient.py: added some more
5142         examples on how to hook up to signals
5143
5144 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5145
5146         * python/decorators.py: import dbus_bindings
5147
5148         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5149         SignalMatchNode): new classes that implement wildcard signal
5150         callback matching using a tree lookup. Heavily modified from a
5151         patch sent by Celso Pinto (fd.o bug #3241)
5152
5153         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5154         use new match classes to handle signals.
5155
5156 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5157         
5158         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5159
5160 2005-05-18  Havoc Pennington  <hp@redhat.com>
5161
5162         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5163         gettext. Not really worth requiring yet perhaps, but any
5164         production quality 1.0 would require it so we should go ahead and
5165         get things set up. We do have a couple token calls to
5166         bindtextdomain in the code already.
5167
5168 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5169
5170         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5171         when using recursive g_main_loops
5172
5173         * python/_dbus.py (class Bus): add the ProxyObjectClass
5174         alias for ProxyObject to make it easier for the Twisted 
5175         networking framework to integrate dbus.
5176
5177         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5178         alias for ProxyMethod to make it easier for the Twisted 
5179         networking framework to integrate dbus. 
5180
5181 2005-05-11  Ross Burton  <ross@openedhand.com>
5182
5183         * glib/dbus-glib-tool.c: Add --prefix argument.
5184         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5185         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5186         Add prefix argument.
5187         (generate_glue): Pass prefix argument down.
5188         (dbus_binding_tool_output_glib_server): Pass prefix to
5189         glib-genmarshal.
5190         
5191 2005-05-11  Colin Walters  <walters@verbum.org>
5192
5193         * tools/dbus-send.c (append_array): New function.
5194         (append_arg): Broken out from main.
5195         (main): Add cheesy hack to send arrays and variants.
5196         (usage): Update.
5197         * tools/dbus-print-message.c (print_iter): Broken out
5198         from main.
5199
5200 2005-05-11  Colin Walters  <walters@verbum.org>
5201
5202         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5203         New function, returns signature string for signature iter.
5204         * dbus/dbus-signature.h: Prototype it.
5205         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5206         New function, returns signature string for message iter.
5207         (dbus_message_iter_get_array_len): New function, returns
5208         length of array.
5209         (dbus_message_iter_get_fixed_array): Fix assertion; this
5210         function should be used when the iter is pointing to the
5211         contents of an array
5212         * dbus/dbus-message.h: Prototypes.
5213         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5214         New function; returns length of an array.
5215         * dbus/dbus-marshal-recursive.h: Prototype it.
5216         
5217 2005-05-11  Colin Walters  <walters@verbum.org>
5218
5219         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5220         compilation error.
5221         
5222 2005-05-08  Havoc Pennington  <hp@redhat.com>
5223
5224         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5225         daemon's pid, not the parent's pid, to the file descriptor.
5226         Reported by Taj Morton.
5227
5228 2005-05-05  Havoc Pennington  <hp@redhat.com>
5229
5230         * configure.in (LT_*): add notes on how the libtool versioning
5231         works to save thinking. Increment soname to indicate protocol
5232         breakage (though really the library interface hasn't changed I
5233         guess)
5234
5235         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5236         verify the GUID received from server matches what we were
5237         expecting, if we had an expectation
5238
5239         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5240         (_dbus_auth_get_guid_from_server): new function
5241         (send_begin): parse the OK args
5242
5243         * doc/dbus-specification.xml: add GUID to the auth protocol
5244
5245 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5246
5247         * Fix my name in previous changelog ;)
5248
5249         * python/proxies.py (ProxyObject.__getattr__): add further patch
5250         from Anthony Baxter to throw an AttributeError when python 
5251         __special__ functions are called instead of marshling them over 
5252         the bus (Bug#1685 comment 3).
5253
5254 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5255
5256         * python/Makefile.am: changed to use pyexecdir for the binding
5257         shared libraries (Bug#2494)
5258
5259         * python/exceptions.py: bring exceptions over from the bindings
5260         so they can be used in applications (Bug#2036)
5261         Make all exceptions derive from DBusException
5262
5263         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5264         of classes so that print obj doesn't throw an exception (Bug #1685)
5265
5266 2005-05-03  Ross Burton  <ross@openedhand.com>
5267
5268         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5269         Return if we get an error during registration.  Set up a
5270         weak reference on object to unregister if object is destroyed.
5271         (unregister_gobject): New function.
5272         
5273 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5274
5275         * python/dbus_bindings.pyx.in: 
5276         - added new type classes for hinting to the marashaler what type 
5277         to send over the wire
5278         - added int16 and uint16 marshalers
5279         - Fixed a bug in the type constants that caused int32 to go out
5280         as uint16 over the wire
5281         * python/dbus.py: split up into different files and renamed _dbus.py
5282         * python/__init__.py, python/_util.py, python/decorators.py, 
5283         python/exceptions.py, python/proxies.py, python/services.py,
5284         python/types.py: new files split off from dbus.py
5285         * python/Makefile.am: Add new files, remove dbus.py and 
5286         install all python files to <python module dir>/dbus
5287         * python/examples/*: Added #!/usr/bin/env python to the top of
5288         every example.  Patch provided by Tatavarty Kalyan
5289
5290 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5291
5292         * NEWS: Update to 0.33
5293
5294 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5295
5296         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5297         method for doing async calls
5298         (_pending_call_notification): New C function for handling pendning call
5299         callbacks
5300         (set_notify): New method for setting pending call notification
5301         
5302         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5303         Async capabilities added to remote method calls
5304         (Sender): class removed
5305         (RemoteService): class removed
5306         (ObjectTree): class removed for now
5307         (RemoteObject): Renamed to ProxyObject
5308         (RemoteMethod): Renamed to ProxyMethod
5309         (method): Decorator added for decorating python methods as dbus methods
5310         (signal): Decorator added for decorating python methods as signal emitters
5311         (ObjectType): Metaclass added for generating introspection data and the
5312         method callback vtable
5313         (Interface): Wrapper class added to wrap objects in a dbus interface
5314         (Object): Uses ObjectType as its metaclass and exports Introspect
5315         of the org.freedesktop.DBus.Introspectable interface
5316         (ValidationException, UnknownMethodException): new exceptions
5317
5318         * python/examples/*: Modified to fit with the new bindings
5319
5320 2005-04-23  Havoc Pennington  <hp@redhat.com>
5321
5322         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5323         reported by Tony Houghton
5324
5325         * test/test-service.c (main): test
5326         dbus_connection_get_object_path_data()
5327
5328         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5329         the exact_match
5330         (_dbus_object_tree_get_user_data_unlocked): new function used by
5331         dbus_connection_get_object_path_data()
5332         (do_register): add assertion test for get_user_data_unlocked
5333         (object_tree_test_iteration): more tests
5334
5335         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5336         new function from Dan Reed to let you get the user data from 
5337         dbus_connection_register_object_path()
5338
5339 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5340
5341         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5342         in numerous places that did not account for the NULL terminator
5343         (signature_from_seed): changed the manual string copy loop to 
5344         just use strcpy instead
5345         make check should now pass
5346
5347 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5348
5349         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5350         so that it allows messages that are not signals to pass in 
5351         NULL as the interface.
5352
5353 2005-04-18  David Zeuthen  <davidz@redhat.com>
5354
5355         * glib/dbus-gmain.c (io_handler_destroy_source): 
5356         (timeout_handler_destroy_source, connection_setup_free): 
5357         Also unref the source to avoid memory leaks.
5358
5359 2005-04-13  David Zeuthen  <davidz@redhat.com>
5360
5361         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5362         more reasonable, yet still totally arbitrary, value :-). 
5363
5364 2005-04-13  David Zeuthen  <davidz@redhat.com>
5365
5366         * doc/TODO: Added an "important for 1.0" item about selinux
5367         allow/deny messages
5368
5369 2005-04-13  David Zeuthen  <davidz@redhat.com>
5370
5371         * bus/selinux.c: Add c-file-style to top of file
5372         (log_audit_callback): Don't free the data here anymore
5373         (bus_selinux_check): Don't take spid and tpid since appending
5374         that to auxdata may OOM.
5375         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5376         to the caller if we are OOM by taking an error object.
5377         (bus_selinux_allows_send): -do-
5378
5379         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5380         and bus_selinux_allows_send
5381
5382         * bus/bus.c (bus_context_check_security_policy): Pass error and
5383         pass on OOM thrown by bus_selinux_allows_send()
5384
5385         * bus/services.c (bus_registry_acquire_service): Pass error and
5386         pass on OOM thrown by bus_selinux_allows_acquire_service()
5387
5388 2005-04-13  Havoc Pennington  <hp@redhat.com>
5389
5390         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5391         message at a time to avoid monopolizing the main loop, bug 
5392         #2953 from Benjamin Otte
5393
5394 2005-04-09  Havoc Pennington  <hp@redhat.com>
5395
5396         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5397         possible overlap, fix from Daniel Reed
5398         (fixup_alignment): fix signedness warnings
5399         (_dbus_string_append_unichar): ditto
5400
5401 2005-04-09  Havoc Pennington  <hp@redhat.com>
5402
5403         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5404
5405         * glib/dbus-glib-tool.c (main): fix warning
5406
5407         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5408
5409         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5410         add a new function that can be used in simple applications that
5411         don't have a main loop and are willing to block
5412
5413 2005-04-05  David Zeuthen  <davidz@redhat.com>
5414
5415         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5416
5417         * glib/dbus-gmain.c:
5418         (io_handler_destroy_source): Remove from list of IO handlers
5419         of the ConnectionSetup object
5420         (timeout_handler_destroy_source): -do- for timeout handlers
5421         (io_handler_source_finalized): Don't remove from list since
5422         we now do that in io_handler_destroy_source(). Renamed from
5423         io_handler_source_destroyed
5424         (timeout_handler_source_destroyed): -do- for timeout handlers
5425         (connection_setup_free): It is now safe to iterate over all
5426         IO and timeout handlers as the _destroy_source removes them
5427         from the list synchronously
5428
5429 2005-03-30  Havoc Pennington  <hp@redhat.com>
5430
5431         * configure.in: change check to gtk 2.4
5432
5433         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5434         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5435         to 2.4
5436
5437 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5438
5439         * News: Update 0.32
5440
5441         * HACKING: Fixed realease instructions.  configure.in should be updated to
5442           the next release by the person who made the last release.
5443
5444 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5445
5446         * python/lvalue_cast_post_process.py - removed.  Patch has been
5447           submitted to Pyrex maintainers that fixes gcc4.0 errors
5448
5449         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5450
5451 2005-03-24  Daniel Reed  <n@ml.org>
5452
5453         * tools/Makefile.am: Make print-introspect and
5454         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5455
5456 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5457
5458         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5459
5460         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5461           had in Red Hat packages for a while but for some reason never 
5462           got merged upstream
5463           (_dbus_is_a_number): New checks if a string
5464           can be converted to a number and does the conversion if it can
5465           (_dbus_user_database_lookup): Add check to see if the given username
5466           is a udi.  This allows udi's to be used instead of usernames in the
5467           config file.
5468           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5469           is a gdi.  This allows gdi's to be used instead of groupnames in the
5470           config file.
5471
5472 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5473
5474         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5475           code so that it compiles with gcc4.0
5476
5477         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5478           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5479           results back to dbus_binding.c
5480
5481 2005-03-20  Colin Walters  <walters@verbum.org>
5482
5483         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5484
5485         * configure.in: Require GTK+ 2.6.
5486         
5487 2005-03-20  Colin Walters  <walters@verbum.org>
5488
5489         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5490
5491 2005-03-17  Tom Parker  <palfrey@tevp.net>
5492
5493         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5494         print DBUS_UID_UNSET; instead print passed username.  Also
5495         be sure to actually use gid looked up in cache.
5496         
5497         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5498         for DBUS_GID_UNSET and groupname.
5499
5500 2005-03-17  Colin Walters  <walters@verbum.org>
5501
5502         * bus/print-introspect.c: Move to tools/.
5503         * bus/run-with-tmp-session-bus.sh: Ditto.
5504         
5505         * glib/Makefile.am (dbus-glib-bindings.h): Move
5506         generation to tools/Makefile.am.
5507
5508         * test/glib/run-test.sh: Update to handle move
5509         of run-with-tmp-session-bus.sh.
5510
5511         * test/glib/test-service-glib.c: Update to handle
5512         move of dbus-glib-bindings.h.
5513
5514         * tools/print-introspect.c: Moved here
5515         from bus/, and ported to GLib bindings.
5516
5517         * tools/run-with-tmp-session-bus.sh: Moved here
5518         from bus/.
5519
5520         * tools/Makefile.am: Generate dbus-glib-bindings.h
5521         and dbus-bus-introspect.xml here.
5522
5523         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5524         Update.
5525
5526 2005-03-17  Colin Walters  <walters@verbum.org>
5527
5528         * bus/driver.c (write_args_for_direction): Use
5529         _dbus_string_get_const_data to retrieve string;
5530         _dbus_string_get_const_data_len doesn't actually return
5531         a NULL-terminated substring.
5532
5533         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5534         (main): Change to use org_freedesktop_DBus_request_name
5535         instead of using g_proxy_begin_call/end_call.
5536
5537 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5538
5539         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5540         generating the finalizer.  Fixes from Ben Maurer.
5541
5542 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5543
5544         * mono/BusDriver.cs: Update method names: ListServices
5545         becomes ListNames; GetOwner becomes GetNameOwner.
5546
5547         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5548         onto the eval stack when removing the delegate.
5549
5550 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5551
5552         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5553         LT_CURRENT.  Set it to the autoconf variable.
5554                                                                                 
5555         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5556         classes that disconnects the signal handler delegate from the
5557         service object.  Fixes a big leak of proxy objects on the
5558         client side of things.  Patch from Ben Maurer
5559         <bmaurer@ximian.com>
5560
5561 2005-03-12  Colin Walters  <walters@verbum.org>
5562
5563         * bus/driver.c (write_args_for_direction): New function,
5564         parses a type signature into arguments and outputs to
5565         XML.
5566         (bus_driver_handle_introspect): Use it instead of
5567         hardcoding XML for certain signatures.
5568         
5569         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5570         dependency on dbus-daemon.
5571
5572         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5573         argument, pass it to dbus_binding_tool_output_glib_client.
5574
5575         * glib/dbus-binding-tool-glib.c
5576         (generate_client_glue): Protect against multiple inclusion.
5577         (dbus_binding_tool_output_glib_client): Add
5578         G_BEGIN_DECLS/G_END_DECLS.
5579
5580         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5581         Change to just take iface prefix directly.
5582         (write_formal_parameters): Clarify error message.
5583         (check_supported_parameters): New function; checks to see type
5584         signatures of method parameters are supported.
5585         (generate_client_glue): Handle ignore_unsupported flag.
5586         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5587         parameter.
5588
5589         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5590         --ignore-unsupported by default until glib bindings
5591         support arrays.
5592
5593 2005-03-11  Colin Walters  <walters@verbum.org>
5594
5595         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5596         install it.
5597
5598         * bus/print-introspect.c: New file; prints introspection
5599         data for a given name and object path.
5600
5601         * bus/run-with-tmp-session-bus.sh: New file, refactored
5602         from test/glib/run-test.sh.  Creates a temporary session
5603         bus and runs another program.
5604
5605         * test/glib/run-test.sh: Refactor to invoke
5606         run-with-tmp-session-bus.sh.
5607
5608         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5609         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5610         macros instead of hardcoding.
5611
5612         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5613
5614 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5615
5616         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5617         this unref; it doesn't match up evenly in some codepaths.
5618         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5619         this evenly matches with the ref near the top of this function.
5620
5621 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5622
5623         * dbus/dbus-object-tree.c
5624         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5625         and we try to unregister a path that's not registered, still go
5626         through the process of unlocking and don't just return.
5627
5628 2005-03-09  Colin Walters  <walters@verbum.org>
5629
5630         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5631         to this are generated for client-side wrappers.  Invokes a
5632         D-BUS method and returns reply values.  
5633
5634         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5635         function; writes signature string for argument direction.
5636         (write_args_for_direction): Change to pass input values directly
5637         instead of via address, and fix indentation.
5638         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5639         make generated wrappers inlineable.
5640
5641         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5642         note about using dbus_type_is_fixed.
5643
5644         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5645         dbus/dbus-signature.c as dbus_type_is_fixed.
5646
5647         All callers updated.
5648
5649         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5650         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5651
5652         * dbus/dbus-signature.h: Prototype.
5653
5654         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5655         error printf code.
5656
5657         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5658         appropriate instead of just freeing it.
5659         (main): Free returned strings using g_free.
5660
5661         * test/glib/Makefile.am (test-service-glib-glue.h)
5662         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5663
5664         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5665         simply maps a simple D-BUS type to GType.
5666         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5667         GType.
5668         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5669         initialize the value with it.
5670         (dbus_gvalue_binding_type_from_type): Unused, delete.
5671         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5672         various types instead of unmarshalling to value data directly.
5673         Remove can_convert boolean.
5674         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5675         returning directly instead of using can_convert boolean.
5676         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5677         Stores a GValue in a pointer to a value of its corresponding C
5678         type.
5679
5680         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5681         add dbus_gvalue_store.
5682
5683 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5684
5685         Fix a bunch of lifecycle and memory management problems
5686         in the mono bindings.
5687
5688         * mono/Arguments.cs (Arguments): Implement IDisposable
5689
5690         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5691         strictly a static class.
5692
5693         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5694         delegates into this file.
5695         (Connection): Implement IDisposable.
5696         (Dispose): Disconnect the connection and set the raw connection
5697         pointer to IntPtr.Zero.
5698         (~Connection): Call Dispose().
5699         (RegisterObjectPath): Added.  Manages the registration of object
5700         paths so we can cleanly disconnect them at dispose/finalize time.
5701         (UnregisterObjectPath): Ditto.
5702         (set_RawConnection): Unregister all of the object paths when
5703         changing the underlying DBusConnection.  Add them back onto the
5704         new connection, if any.
5705
5706         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5707         more unmanaged resources anymore, so it's not necessary.  Move all
5708         the DBusObjectPathVTable stuff out of here.
5709         (Handler): Save references to our delegates so that they don't get
5710         finalized.  Call Connection.RegisterObjectPath() instead of
5711         dbus_connection_register_object_path() directly.
5712         (Message_Called): Dispose the message after we're finished with
5713         it.
5714
5715         * mono/Message.cs (Message): Implement IDisposable.
5716         (Dispose): Dispose the Arguments, and set the RawMessage to
5717         IntPtr.Zero.
5718         (SendWithReplyAndBlock): We own the ref to the reply that comes
5719         back from dbus_connection_send_with_reply_and_block() so add a
5720         comment about that and unref it after we've constructed a managed
5721         MethodReturn class around it.  Fixes a big, big leak.
5722
5723         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5724         method.
5725         (BuildSignalHandler): After we've sent the Signal message, dispose
5726         of it.
5727         (BuildMethod): Dispose of the method call and reply messages after
5728         we've sent the message and extracted the data we want from the
5729         reply.
5730
5731         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5732         anymore.
5733         (Service_FilterCalled): Dispose of the message after we're
5734         finished with it.
5735
5736 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5737
5738         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5739         After we attach our pending call to the connection, unref
5740         it.  Fixes a leak.
5741  
5742         * mono/Connection.cs (set_RawConnection): Disconnect our
5743         filter and match callbacks from the old connection and
5744         reconnect them to the new connection, if any.
5745
5746         * mono/DBusType/Array.cs: "Code" is a static member, so
5747         don't use "this" to refer to it.  Fix for stricter checking
5748         in Mono 1.1.4.
5749  
5750         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5751         object path that we pass into unmanaged code.
5752  
5753         * mono/DBusType/String.cs (Append): Don't leak the string
5754         that we pass into unmanged code.
5755
5756 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5757         * NEWS: Update for 0.31
5758
5759         * configure.in: Release 0.31
5760         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5761
5762         * qt/Makefile.am: fixed build
5763
5764         * dbus/Makefile.am: soname bump for libdbus
5765
5766         * glib/Makefile.am: soname bump for libdbus-glib
5767
5768 2005-03-05  Havoc Pennington  <hp@redhat.com>
5769
5770         * dbus/dbus-sysdeps.c:
5771         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5772         value
5773         (_dbus_generate_random_bytes_buffer): fix return value
5774
5775         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5776         checks actually work, from Tom Parker <fdo@tevp.net>
5777
5778 2005-03-01  Colin Walters  <walters@verbum.org>
5779
5780         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5781         functions copied from dbus-glib-tool.c.
5782         (main): Convert lots of error code to use them.
5783         Also add some testing for introspection bits.
5784
5785 2005-03-01  Colin Walters  <walters@verbum.org>
5786         
5787         * doc/TODO: Remove introspection signature TODO.
5788
5789 2005-02-27  Colin Walters  <walters@verbum.org>
5790
5791         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5792         Change return value to const char * instead of int so we can do
5793         full signatures.
5794         (struct PropertyInfo, struct ArgInfo): Store char *.
5795         (property_info_new, arg_info_new): Update parameters, strdup.
5796         (property_info_unref, arg_info_unref): Free.
5797
5798         * glib/dbus-gidl.h: Update prototypes.
5799
5800         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5801         (validate_signature): New function, just validates signature and
5802         sets GError.
5803         (parse_property, parse_arg): Invoke validate_signature.  Store
5804         signature instead of just type code.
5805
5806         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5807         function to return a primary type for a signature, dropping
5808         information about types in container types.
5809         (dbus_gvalue_genmarshal_name_from_type)
5810         (dbus_gvalue_binding_type_from_type)
5811         (dbus_gvalue_ctype_from_type): Update to take full signature
5812          instead of type code.
5813         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5814
5815         * glib/dbus-gvalue.h: Update prototypes for above.
5816
5817         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5818         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5819         (introspect_properties, introspect_signals, write_interface):
5820         Update to handle signatures, and remove usage of
5821         _dbus_gutils_type_to_string.
5822         (handle_introspect): Print out type codes instead of e.g. "string"
5823         in hardcoded introspection XML; also use x_AS_STRING constants
5824         instead of hardcoding in string.
5825
5826         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5827         to string.  Remove usage of _dbus_gutils_type_to_string.
5828
5829         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5830
5831         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5832         deletion.
5833         
5834         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5835         (compute_marshaller_name, generate_glue): Handle signature change
5836         to string.
5837         (write_formal_parameters, write_args_for_direction): Ditto, and
5838         remove FIXME.
5839
5840         * tools/dbus-tree-view.c (type_to_string): Delete.
5841         (info_set_func_text): Update to print full signatures.
5842
5843         * test/glib/test-service-glib.xml: Change types to new
5844         introspection format.
5845
5846 2005-02-26  Havoc Pennington  <hp@redhat.com>
5847
5848         * doc/TODO: remove the "guid" item
5849
5850         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5851         (with_bus_thread_func): use open_private
5852
5853         * dbus/dbus-connection.c (dbus_connection_open_private): new
5854         function that works like the old dbus_connection_open()
5855         (dbus_connection_open): now returns an existing connection if
5856         possible
5857
5858         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5859         through the GUID to the transport
5860
5861         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5862         GUID in hex-encoded form.
5863
5864         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5865         pass GUID argument in to the transport
5866
5867         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5868         guid argument
5869
5870         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5871
5872         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5873
5874 2005-02-25  Havoc Pennington  <hp@redhat.com>
5875
5876         * doc/dbus-specification.xml: document the GUID thing
5877
5878         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5879         globally unique ID for the server, and put a "guid=hexencoded"
5880         field in the address
5881
5882         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5883
5884         * dbus/dbus-message.c: ditto
5885
5886         * dbus/dbus-dataslot.c: ditto
5887
5888         * dbus/dbus-list.c: ditto
5889
5890         * dbus/dbus-internals.h: wait, just include
5891         dbus-threads-internal.h here
5892         
5893         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5894         use in main library
5895
5896         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5897
5898 2005-02-24  Colin Walters  <walters@verbum.org>
5899
5900         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5901
5902 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5903
5904         * glib/Makefile.am: added dbus-gobject.h to sources list
5905         so distcheck doesn't fail
5906         
5907 2005-02-24  Havoc Pennington  <hp@redhat.com>
5908
5909         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5910         you must disconnect before unref, since locking and other things
5911         are screwed up otherwise. Fix assorted other locking stuff.
5912
5913         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5914         fix compilation
5915
5916         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5917         into a private header and don't export from the library
5918
5919         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5920
5921 2005-02-24  Colin Walters  <walters@verbum.org>
5922         
5923         * dbus/dbus-signature.c: New file; implements various functions
5924         related to type signatures.  Includes an interator for parsing,
5925         validation functions.
5926         (dbus_type_is_basic): Moved here from
5927         dbus-marshal-basic.c:_dbus_type_is_basic.
5928         (dbus_type_is_container): Moved here from
5929         dbus-marshal-basic.c:_dbus_type_is_container.
5930
5931         All callers of _dbus_type_is_container and _dbus_type_is_basic
5932         updated, and include dbus-signature.h.
5933
5934         * dbus/dbus-signature.h: New file; prototypes for the above.
5935
5936         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5937         dbus-signature.h.
5938
5939         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5940         function factored out of _dbus_first_type_in_signature.
5941         (_dbus_first_type_in_signature_c_str): New function; returns first
5942         type code for a type signature character.
5943
5944         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5945         handle function moves.
5946
5947         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5948
5949         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5950         function; skips to next complete type in type signature.
5951         Implemented using previous skip_one_complete_type.  Now
5952         skip_one_complete_type just delegates to
5953         _dbus_type_signature_next.
5954
5955         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5956         to dbus-signature.c
5957         (_dbus_type_is_container): Ditto.
5958
5959         * doc/dbus-specification.xml: Update introspection sample to
5960         use real type signatures.
5961
5962         * dbus/dbus-test.h: Prototype signature test.
5963
5964         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5965         signature tests.
5966
5967         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5968
5969 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5970
5971         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5972         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5973
5974 2005-02-21  Colin Walters  <walters@verbum.org>
5975
5976         * dbus/dbus-test-main.c (main): Take optional specific test
5977         argument.
5978
5979         * dbus/dbus-test.c (run_test): New function, runs a test function
5980         with no data directory.
5981         (run_data_test): Like above, but takes data directory.
5982         (dbus_internal_do_not_use_run_tests): Take
5983         specific test argument.  Replace lots of cut n' paste code
5984         with run_test and run_data_test.
5985
5986         * dbus/dbus-test.h: Update prototype for
5987         dbus_internal_do_not_use_run_tests.
5988
5989 2005-02-20  Havoc Pennington  <hp@redhat.com>
5990
5991         Fix bugs reported by Daniel P. Berrange
5992         
5993         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5994         (protected_change_watch): new function
5995         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5996         (_dbus_server_add_watch): change to work like the
5997         dbus-connection.c equivalents; like those, probably kind of
5998         busted, but should at least mostly work for now
5999         (dbus_server_disconnect): drop the lock if we were already
6000         disconnected, patch from Daniel P. Berrange
6001
6002         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6003         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6004         same stuff
6005
6006         * doc/TODO: todo about unscrewing this mess
6007
6008 2005-02-19  Colin Walters  <walters@verbum.org>
6009
6010         * glib/dbus-binding-tool-glib.c
6011         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6012
6013         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6014         as errno.h and sys/stat.h.
6015         (lose): New function, prints error with
6016         newline and exits.
6017         (lose_gerror): Similar, but takes GError for message.
6018         (main): Add --output argument to specify output file to write to,
6019         instead of always printing to stdout.  In this mode, determine
6020         timestamps on source files to see whether any are newer than the
6021         target file.  If not, exit.  Also convert a number of error
6022         messages to use lose (since it's shorter), and switch to using
6023         g_io_channel_shutdown.
6024
6025 2005-02-19  Havoc Pennington  <hp@redhat.com>
6026
6027         * glib/dbus-gobject.c
6028         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6029
6030         * glib/dbus-glib.c: fix doxygen warnings
6031
6032         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6033         is found on an <arg>
6034
6035 2005-02-17  Colin Walters  <walters@verbum.org>
6036
6037         * glib/dbus-gobject.h: Don't export
6038         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6039         
6040         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6041         (invoke_object_method): Handle it.
6042
6043         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6044         Handle rename.
6045         
6046 2005-02-17  Colin Walters  <walters@verbum.org>
6047
6048         * bus/.cvsignore, doc/.cvsignore
6049         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6050         Update.
6051
6052 2005-02-17  Colin Walters  <walters@verbum.org>
6053         
6054         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6055         Rename to DBUS_SERVICE_DBUS.
6056         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6057         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6058         Change the value from "org.freedesktop.Local"
6059         to "org.freedesktop.DBus.Local".
6060         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6061         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6062         DBUS_INTERFACE_INTROSPECTABLE.
6063         Change the value from "org.freedesktop.Introspectable"
6064         to "org.freedesktop.DBus.Introspectable".
6065         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6066         DBUS_INTERFACE_PROPERTIES.
6067         Change the value from "org.freedesktop.Properties"
6068         to "org.freedesktop.DBus.Properties".
6069         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6070         DBUS_INTERFACE_PEER.
6071         Change the value from "org.freedesktop.Peer"
6072         to "org.freedesktop.DBus.Peer".
6073         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6074         DBUS_INTERFACE_LOCAL.
6075         Change the value from "org.freedesktop.Local"
6076         to "org.freedesktop.DBus.Local".
6077
6078         All other users of those constants have been changed.
6079
6080         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6081
6082         * glib/dbus-gobject.c (handle_introspect): Use constants.
6083
6084         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6085
6086 2005-02-17  Colin Walters  <walters@verbum.org>
6087
6088         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6089         (parse_node, parse_interface, parse_method, parse_signal)
6090         (parse_property, parse_annotation): Lose if we're currently in an
6091         annotation.
6092         (parse_annotation): New function.
6093         (parser_start_element, parser_end_element): Handle annotation.
6094         (parse_method, parse_interface): Remove support for c_name attribute,
6095         switch to annotations.
6096
6097         * glib/dbus-gidl.h (interface_info_get_binding_names)
6098         (method_info_get_binding_names)
6099         (interface_info_get_binding_name, method_info_get_binding_name)
6100         (interface_info_set_binding_name, method_info_set_binding_name):
6101         Remove.
6102         (interface_info_get_annotations, method_info_get_annotations)
6103         (interface_info_get_annotation, method_info_get_annotation)
6104         (interface_info_add_annotation, method_info_add_annotation):
6105         Prototype.
6106
6107         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6108         for "bindings".
6109         (struct MethodInfo): Ditto.
6110         Straightfoward conversion of binding methods into annotation methods
6111         as prototyped.
6112
6113         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6114
6115         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6116
6117         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6118         Use new annotation API.
6119
6120         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6121         annotation element.
6122         
6123         * doc/dbus-specification.xml: Discuss introspection annotations,
6124         include list of well-known annotations.
6125
6126         * test/glib/test-service-glib.xml: Make validate against new DTD.
6127
6128 2005-02-17  Colin Walters  <walters@verbum.org>
6129
6130         This patch is based on initial work from
6131         Paul Kuliniewicz <kuliniew@purdue.edu>.
6132
6133         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6134         initialization of GValue from dbus type to here.
6135         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6136         for the "glib-genmarshal" program from a DBus type.
6137         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6138         into the C name for it we use in the glib bindings.
6139         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6140         glib C type (not GValue).
6141         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6142
6143         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6144         from dbus-gobject.c.
6145
6146         * glib/dbus-gutils.h: Prototype it.
6147
6148         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6149         (marshal_dbus_message_to_g_marshaller): Use new shared function
6150         dbus_glib_marshal_dbus_message_to_gvalue_array.
6151
6152         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6153         Will be changed once we have annotations.
6154
6155         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6156         GStaticRWLock.  Callers updated.
6157         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6158         (string_table_next): New function for iterating over zero-terminated
6159         string value array.
6160         (string_table_lookup): New function; retrieves specific entry in
6161         array.
6162         (get_method_data): New function; look up method data in object data chunk.
6163         (object_error_domain_prefix_from_object_info)
6164         (object_error_code_from_object_info): New functions, but not implemented yet.
6165         (method_interface_from_object_info): New function; retrieve interface name.
6166         (method_name_from_object_info): New function; retrieve method name.
6167         (method_arg_info_from_object_info): New function; retrieve argument data.
6168         (arg_iterate): New function; iterates over serialized argument data.
6169         (method_dir_signature_from_object_info): New function; returns a
6170         GString holding type signature for arguments for just one
6171         direction (input or output).
6172         (method_input_signature_from_object_info)
6173         (method_output_signature_from_object_info): New functions.
6174         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6175         converts dbus message arguments into a GValue array.  Used for both
6176         signal handling and method invocation.
6177         (struct DBusGlibWriteIterfaceData): New utility structure.
6178         (write_interface): New function; generate introspection XML for
6179         an interface.
6180         (introspect_interfaces): New function; gathers all interface->methods,
6181         generates introspection XML for them.
6182         (handle_introspect): Invoke introspect_interfaces.
6183         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6184         (lookup_object_and_method): New function; examines an incoming message
6185         and attempts to match it up (via interface, method name, and argument
6186         signature) with a known object and method.
6187         (gerror_domaincode_to_dbus_error_name): New function; converts a
6188         GError domain and code into a DBus error name.  Needs GError data
6189         added to object introspection to work well.
6190         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6191         GError.
6192         (invoke_object_method): New function to invoke an object method
6193         looked up via lookup_object_and_method.  Parses the incoming
6194         message, turns it into a GValue array, then invokes the marshaller
6195         specified in the DBusGMethodInfo.  Creates a new message with
6196         either return values or error message as appropriate.
6197         (gobject_message_function): Invoke lookup_object_and_method and
6198         invoke_object_method.
6199
6200         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6201         (enum DBusBindingOutputMode): New enum for binding output modes.
6202         (pretty_print): Print binding names.
6203         (dbus_binding_tool_error_quark): GError bits.
6204         (version): Fix typo.
6205         (main): Create GIOChannel for output.  Parse new --mode argument,
6206         possible values are "pretty-print", "glib-server", "glib-client".
6207         Use mode to invoke appropriate function.
6208         
6209         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6210
6211         * glib/dbus-glib-tool.h: New header, just includes GError bits
6212         for now.
6213
6214         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6215         maps binding style to name.
6216         (struct MethodInfo): Ditto.
6217         (get_hash_keys, get_hash_key): Utility function, returns keys for
6218         a GHashTable.
6219         (interface_info_new, method_info_new): Initialize bindings.
6220         (interface_info_unref, method_info_unref): Destroy bindings.
6221         (method_info_get_binding_names, method_info_get_binding_name)
6222         (interface_info_get_binding_names, interface_info_get_binding_name):
6223         Functions for retrieving binding names.
6224         (method_info_set_binding_name, interface_info_set_binding_name):
6225         Functions for setting binding names.
6226
6227         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6228         for glib binding generation.
6229
6230         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6231         and client-side glib glue generation.
6232
6233         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6234         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6235         dbus-glib-tool.h.
6236
6237         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6238         of using GClosureMarshal directly.
6239         (struct DBusGObjectInfo): Add n_infos member.
6240
6241         * test/glib/test-service-glib.xml: New file; contains introspection data
6242         for MyTestObject used in test-service-glib.c.
6243
6244         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6245         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6246         (my_object_uppercase, my_object_many_args): New test methods.
6247         (main): Use dbus_g_object_class_install_info to include generated object
6248         info.
6249
6250         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6251         as well as client-side bindings.
6252
6253         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6254         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6255         using both the dbus_gproxy stuff directly as well as the generated bindings.
6256
6257 2005-02-15  Havoc Pennington  <hp@redhat.com>
6258
6259         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6260         complete a pending call, don't run filters first.
6261
6262         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6263         dbus_pending_call_steal_reply
6264
6265         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6266         _dbus_connection_block_pending_call
6267         (dbus_pending_call_get_reply): change to steal_reply and return a
6268         ref
6269
6270         * dbus/dbus-connection.c
6271         (dbus_connection_send_with_reply_and_block): port to work in terms
6272         of DBusPendingCall
6273         (_dbus_connection_block_pending_call): replace block_for_reply
6274         with this
6275
6276 2005-02-14  Havoc Pennington  <hp@redhat.com>
6277
6278         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6279         properly handle looking up group information by name; fix 
6280         from j@bootlab.org
6281
6282 2005-02-13  Havoc Pennington  <hp@redhat.com>
6283
6284         * dbus/dbus-connection.c (dbus_connection_return_message) 
6285         (dbus_connection_borrow_message): hold dispatch lock while message
6286         is outstanding
6287         (_dbus_connection_block_for_reply): hold dispatch lock while we
6288         block for the reply, so nobody steals our reply
6289         (dbus_connection_pop_message): hold the dispatch lock while we
6290         pluck the message
6291
6292 2005-02-13  Havoc Pennington  <hp@redhat.com>
6293
6294         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6295         (_dbus_connection_release_dispatch)
6296         (_dbus_connection_acquire_io_path)
6297         (_dbus_connection_release_io_path): make the mutex and condvar
6298         control access to the "acquired" flag. Drop the connection lock
6299         while waiting on the condvar. Hopefully these are baby steps in
6300         roughly the right direction.
6301
6302 2005-02-13  Havoc Pennington  <hp@redhat.com>
6303
6304         * dbus/dbus-connection.c: use separate mutexes for the condition
6305         variables; this is some kind of baseline for sanity, but the
6306         condition variables still aren't used correctly afaict
6307
6308 2005-02-13  Havoc Pennington  <hp@redhat.com>
6309
6310         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6311         fix a double-unlock
6312
6313         * dbus/dbus-connection.c
6314         (_dbus_connection_detach_pending_call_unlocked): add this
6315
6316         Initial semi-correct pass through to fix thread locking; there are
6317         still some issues with the condition variable paths I'm pretty
6318         sure
6319         
6320         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6321         lock/unlock calls
6322
6323         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6324         rename to add _unlocked
6325         (struct DBusConnection): move "dispatch_acquired" and
6326         "io_path_acquired" to use only one bit each.
6327         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6328         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6329         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6330         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6331         (_dbus_connection_remove_timeout) 
6332         (_dbus_connection_toggle_timeout): drop lock when calling out to
6333         user functions; done in a hacky/bad way.
6334         (_dbus_connection_send_and_unlock): add a missing unlock
6335         (_dbus_connection_block_for_reply): add a missing unlock
6336
6337         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6338         drop lock in a hacky probably unsafe way to call out to user
6339         function
6340
6341 2005-02-12  Havoc Pennington  <hp@redhat.com>
6342
6343         * tools/dbus-tree-view.c (info_set_func_text): display more
6344         details on args
6345
6346         * bus/driver.c (bus_driver_handle_list_services): list the bus
6347         driver
6348
6349         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6350
6351         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6352         (method_info_get_n_args): new function
6353
6354 2005-02-12  Havoc Pennington  <hp@redhat.com>
6355
6356         * bus/driver.c (bus_driver_handle_introspect): add introspection
6357         for bus driver
6358
6359 2005-02-12  Havoc Pennington  <hp@redhat.com>
6360
6361         * bus/driver.c: put the signature of each bus driver method in the
6362         table of handlers and check it on incoming calls; this isn't
6363         really useful, but going to add introspect support in a minute.
6364
6365 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6366
6367         * mono/Connection.cs: The unpredictability of finalizers in mono
6368         prevents us from deterministically disconnecting the filters from
6369         the Service class's finalizer, so move tracking of filters and
6370         matches here.  Add API for that.
6371
6372         * mono/Service.cs: Remove the code, add code which calls the
6373         methods now on the Connection class.
6374
6375 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6376
6377         * python/dbus.py (class Sender): added to support dbus signals better
6378         (Bus::add_signal_receiver): added expand_args parameter which defaults
6379         to True.  When expand args is True the signal handler will pass the 
6380         message arguments as parameters to the signal handler.  If False
6381         revert to previous behavior where the signal handler must get the
6382         argument list from the message.  This is to help port applications
6383         like HAL that have a tendancy to send variable length argument lists.
6384         self._match_rule_to_receivers is now a dict of dicts.
6385         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6386         removing it from a list
6387         (Bus::_signal_func): change signal handlers so that interface,
6388         signal_name, service, path and message are packed into a Sender
6389         object and that is passed to the handler.  If expand_args is True
6390         extract the args list from the message and append it to the parameter
6391         list
6392         
6393         * python/dbus_bindings.pyx.in (class Signature): added to support 
6394         signiature types
6395         (MessageIter::__init__): changed iteration limit to match D-BUS
6396         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6397         STRUCT and VARIENT type support
6398         (MessageIter::python_value_to_dbus_sig): made recursive to support
6399         recursive types
6400         (MessageIter::append*): added Signature, dict, tuple 
6401         support
6402
6403         * python/examples/example-client.py: added examples of getting tuples
6404         and dicts
6405
6406         * python/examples/example-service.py: added examples of sending tuples
6407         and dicts
6408
6409         * python/examples/example-signal-recipient.py: Fixed to handle new
6410         signal callback format
6411
6412 2005-02-10  Havoc Pennington  <hp@redhat.com>
6413
6414         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6415         (call dbus_g_proxy_add_signal)
6416
6417         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6418         escape the hostname
6419         (_dbus_server_new_for_domain_socket): escape the path
6420
6421         * dbus/dbus-address.c (dbus_address_escape_value): new
6422         (dbus_address_unescape_value): new
6423         (dbus_parse_address): unescape values
6424
6425         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6426
6427         * doc/dbus-specification.xml: explain how to escape values in
6428         addresses
6429
6430 2005-02-10  Havoc Pennington  <hp@redhat.com>
6431
6432         * dbus/dbus-message-factory.c (generate_special): modify test to
6433         avoid using a non-basic dict key
6434
6435         * dbus/dbus-marshal-validate-util.c: add test for the below
6436
6437         * doc/dbus-specification.xml: require that dict keys are a basic
6438         type
6439
6440         * dbus/dbus-marshal-validate.c
6441         (_dbus_validate_signature_with_reason): require that dict key is a
6442         basic type
6443
6444 2005-02-10  Havoc Pennington  <hp@redhat.com>
6445
6446         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6447         change to be _and_unlock instead of _unlocked
6448
6449         * dbus/dbus-connection.c
6450         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6451         have no_update so we can find this bug quickly in future
6452
6453 2005-02-10  Havoc Pennington  <hp@redhat.com>
6454
6455         * dbus/dbus-message-util.c (verify_test_message): tests for string
6456         array
6457
6458         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6459         support for arrays of string/signature/path
6460
6461 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6462
6463         * dbus/dbus-connection.c
6464         (_dbus_connection_queue_received_message_link,
6465         _dbus_connection_message_sent): Add the path to
6466         the verbose output.
6467         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6468         _dbus_connection_send_preallocated_unlocked(), updated the
6469         dispatch status, and unlocks.  Fixes a bug where certain
6470         situations (like a broken pipe) could cause a Disconnect message
6471         to not be sent, tricking the bus into thinking a service was still
6472         there when the process had quit.
6473         (_dbus_connection_send_preallocated): Call
6474         _dbus_connection_send_preallocated_and_unlock().
6475         (_dbus_connection_send_and_unlock): Added.  Calls
6476         _dbus_connection_send_preallocated_and_unlock().
6477         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6478         (dbus_connection_send_with_reply): Update the dispatch status and
6479         unlock.
6480
6481         * mono/Service.cs (~Service): Added.  Removes the filter so that
6482         we don't get unmanaged code calling back into a GCed delegate.
6483         (RemoveFilter); Added.
6484
6485 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6486
6487         * dbus/dbus-message.c (dbus_message_iter_open_container):
6488         - Removed check for iterator type being an array because
6489         get_arg_type does not work with writer iterators
6490         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6491
6492 2005-02-07  Havoc Pennington  <hp@redhat.com>
6493
6494         * doc/dbus-specification.xml: some more language cleanups; add
6495         stuff about how to deal with invalid protocol and extension
6496         points; add _ to allowed chars in auth commands; add EXTENSION_
6497         auth command prefix
6498
6499 2005-02-06  Havoc Pennington  <hp@redhat.com>
6500
6501         * s/expected/required/ in a couple places for clarity
6502
6503 2005-02-07  Colin Walters  <walters@verbum.org>
6504
6505         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6506         sender or proposed_recipient.
6507
6508 2005-02-06  Havoc Pennington  <hp@redhat.com>
6509
6510         * dbus/dbus-message-factory.c (generate_special): more tests
6511
6512         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6513         array length that exceeds the maximum
6514
6515 2005-02-05  Havoc Pennington  <hp@redhat.com>
6516
6517         * dbus/dbus-message-factory.c (generate_special): more test cases,
6518         increasing coverage
6519
6520         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6521         reason why a signature was invalid
6522
6523         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6524         skip the length of the string before we look at it in validation
6525
6526         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6527         equal_substring
6528
6529         * dbus/dbus-message.c (_dbus_message_loader_new): default
6530         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6531
6532 2005-02-05  Havoc Pennington  <hp@redhat.com>
6533
6534         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6535         if the signature of a variant was empty
6536         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6537         struct with no element type)
6538
6539         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6540         mangled messages to break things
6541
6542 2005-02-04  Havoc Pennington  <hp@redhat.com>
6543
6544         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6545         g_quark_try_string() so it actually can return 0
6546         (dbus_g_proxy_connect_signal): ditto
6547
6548 2005-02-04  Havoc Pennington  <hp@redhat.com>
6549
6550         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6551         bogus warning
6552         (tristring_from_message): assert cleanly on null path/interface
6553         (should not be possible though I decided later)
6554         (dbus_g_proxy_dispose): move proxy manager unregistration here
6555         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6556         g_return_if_fail() checks
6557
6558 2005-02-04  Havoc Pennington  <hp@redhat.com>
6559
6560         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6561
6562         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6563         (with some minor changes)
6564
6565         * doc/dbus-specification.xml: add deprecated attribute to
6566         introspection format
6567
6568 2005-01-31  Havoc Pennington  <hp@redhat.com>
6569
6570         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6571         think it's sort of right
6572
6573 2005-01-30  Havoc Pennington  <hp@redhat.com>
6574
6575         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6576
6577 2005-01-30  Havoc Pennington  <hp@redhat.com>
6578
6579         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6580
6581         * autogen.sh: change to autotools 1.9
6582
6583         * glib/dbus-gproxy.c: completely change how signals work
6584         (dbus_g_proxy_add_signal): new function to specify signature of a
6585         signal
6586         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6587         and g_warning if the incoming message has the wrong signature.
6588
6589 2005-01-30  Havoc Pennington  <hp@redhat.com>
6590
6591         * tools/dbus-names-model.c (have_names_notify): fix this
6592
6593         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6594         up the string array handling a bit 
6595
6596 2005-01-30  Havoc Pennington  <hp@redhat.com>
6597
6598         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6599         (dbus_g_pending_call_cancel): new function
6600
6601         * dbus/dbus-glib.h: move GType decls for connection/message here;
6602         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6603         here, just kind of rationalizing how we handle all that
6604
6605         * tools/dbus-names-model.c: new file for a tree model listing the
6606         services on a bus
6607
6608         * tools/dbus-tree-view.c (model_new): use proper typing on the
6609         model rows
6610
6611 2005-01-30  Havoc Pennington  <hp@redhat.com>
6612
6613         * glib/dbus-gmain.c: add a custom GSource back that just checks
6614         whether the message queue has anything in it; otherwise, there are 
6615         cases where we won't see messages in the queue since there was no 
6616         IO visible to the glib main loop
6617
6618         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6619         increase default message timeout to 25 seconds
6620
6621 2005-01-30  Havoc Pennington  <hp@redhat.com>
6622
6623         * test/glib/test-profile.c (no_bus_stop_server): remove the
6624         warning about the g_warning that I just fixed
6625
6626         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6627         custom source, seems to be a lot easier to understand and work
6628         better.
6629
6630 2005-01-30  Havoc Pennington  <hp@redhat.com>
6631
6632         I think this main loop thing is conceptually broken, but here are 
6633         some band aids. I'll maybe rewrite it in a minute.
6634         
6635         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6636         custom GSource, so don't pass it in; confusing
6637         (gsource_server_finalize, gsource_connection_finalize): add
6638         finalize handlers that remove all the watches.  
6639
6640 2005-01-30  Havoc Pennington  <hp@redhat.com>
6641
6642         * glib/dbus-gobject.c (introspect_properties): fix the XML
6643         generated
6644
6645         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6646         which effectively detects the use of freed messages
6647
6648         * glib/dbus-gobject.c (handle_introspect): modify and return the
6649         reply message instead of the incoming message
6650
6651         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6652         gee, maybe it should SEND THE XML instead of just making a string
6653         and freeing it again ;-)
6654
6655         * tools/dbus-print-message.c (print_message): improve printing of
6656         messages
6657
6658         * configure.in: add debug-glib.service to the output
6659
6660 2005-01-30  Havoc Pennington  <hp@redhat.com>
6661
6662         dbus-viewer introspected and displayed the bus driver
6663         
6664         * dbus/dbus-object-tree.c 
6665         (object_tree_test_iteration): add tests for a handler registered on "/"
6666
6667         * dbus/dbus-object-tree.c
6668         (_dbus_decompose_path): fix to handle path "/" properly
6669         (run_decompose_tests): add tests for path decomposition
6670         
6671         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6672         properly
6673
6674         * glib/dbus-gobject.c (handle_introspect): fix quotes
6675
6676         * test/glib/run-test.sh: support launching the bus, then running
6677         dbus-viewer
6678
6679         * test/glib/test-service-glib.c (main): put in a trivial gobject
6680         subclass and register it on the connection
6681
6682         * bus/driver.c (bus_driver_handle_introspect): implement
6683         introspection of the bus driver service
6684
6685         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6686         identifiers, doctype decl
6687
6688         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6689         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6690         returning the service unchanged.
6691         (bus_driver_handle_message): remove old check for reply_serial in
6692         method calls, now the message type deals with that
6693         (bus_driver_handle_message): handle NULL interface
6694
6695         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6696
6697         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6698         -1 for len
6699
6700         * tools/dbus-viewer.c: add support for introspecting a service on
6701         a bus
6702
6703         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6704         (dbus_g_pending_call_unref): add
6705
6706 2005-01-29  Havoc Pennington  <hp@redhat.com>
6707
6708         * tools/dbus-tree-view.c: add support for displaying properties.
6709         (run dbus-viewer with an introspect xml file as arg, then resize
6710         the window so the tree elements show up, not sure what that is)
6711
6712         * glib/dbus-gobject.c (handle_introspect): return
6713         org.freedesktop.Properties and org.freedesktop.Introspectable
6714         interfaces when we are introspected.
6715
6716         * doc/dbus-specification.xml: allow empty interface name when 
6717         Get/Set a property
6718
6719 2005-01-29  Havoc Pennington  <hp@redhat.com>
6720
6721         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6722         though it uses glib, it could be extended for any binding in
6723         principle
6724
6725         * glib/dbus-gobject.c (gobject_message_function): change to the
6726         new way properties work
6727
6728         * dbus/dbus-protocol.h: add the new interfaces
6729
6730         * doc/dbus-specification.xml: document the introspection format,
6731         Introspectable interface, and add an org.freedesktop.Properties
6732         interface.
6733
6734         * glib/dbus-gparser.c: add support for a <property> element
6735
6736         * glib/dbus-gidl.c: add PropertyInfo
6737
6738         * glib/dbus-gobject.c (handle_introspect): put the outermost
6739         <node> outside the signal and property descriptions.
6740         (introspect_properties): export properties as <property> rather
6741         than as method calls
6742
6743 2005-01-28  Havoc Pennington  <hp@redhat.com>
6744
6745         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6746         related to authentication protocol
6747
6748 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6749
6750         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6751                 - BUS_ACTIVATION -> BUS_STARTER
6752                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6753                 - class MessageIter (__init__): Added recursion checking 
6754                 so we throw a nice error instead of just disconnecting from the
6755                 bus.
6756                 (get): Added arg_type parameter for recursion.
6757                 Removed the nil type
6758                 Added signiture type placeholder (not implemented)
6759                 Added struct type placeholder (not implemented)
6760                 Added varient type placeholder (not implemented)
6761                 Commented out dict type for now     
6762                 (get_element_type): renamed from get_array_type
6763                 (get_*): changed to use the dbus_message_iter_get_basic API
6764                 (get_*_array): removed in favor of recursive get_array method
6765                 (get_array): new recursive method which calls get to marshal
6766                 the elements of the array
6767                 (value_to_dbus_sig): New method returns the corrasponding
6768                 dbus signiture to a python value
6769                 (append): Comment out dict handling for now
6770                 Handle lists with the new recursive API
6771                 Comment out None handling for now
6772                 (append_nil): removed
6773                 (append_*): changed to use dbus_message_iter_append_basic API
6774                 (append_*_array): removed in favor of recursive append_array 
6775                 method
6776                 (__str__): Make it easier to print out recursive iterators
6777                 for debugging
6778                 - class Message (__str__): moved type inspection to the
6779                 MessageIter class' __str__ method
6780                 (get_iter): Added an append parameter wich defaults to False
6781                 If True use the new API's to create an append iterator
6782
6783         * python/dbus.py: Update to use new bindings API
6784                 - TYPE_ACTIVATION -> TYPE_STARTER
6785                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6786                 - class ActivationBus -> class StarterBus
6787                 - class RemoteObject (__call__): get an append iterator
6788                 - (_dispatch_dbus_method_call): get an append iterator
6789                 - class Object (emit_signal): get an append iterator
6790
6791         * python/examples/: Fixed up the examples to work with the new API
6792                 
6793 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6794
6795         * configure.in: Bump version up to 0.30.
6796
6797         * HACKING: Add a release item to bump the version number up after 
6798         a release.
6799
6800 2005-01-28  Havoc Pennington  <hp@redhat.com>
6801
6802         * doc/dbus-specification.xml: update to describe 16-bit types and
6803         dict entries
6804
6805         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6806         assertion
6807
6808         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6809         type
6810
6811         * dbus/dbus-marshal-recursive.c: implement
6812
6813 2005-01-27  Havoc Pennington  <hp@redhat.com>
6814
6815         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6816
6817         * configure.in: find the right type for 16 and 32 bit ints as well
6818         as 64
6819
6820         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6821         the 16-bit types so people don't have to stuff them in 32-bit or
6822         byte arrays.
6823
6824 2005-01-27  Havoc Pennington  <hp@redhat.com>
6825
6826         * dbus/dbus-message.c: byteswap the message if you init an
6827         iterator to read/write from it
6828         
6829         * dbus/dbus-marshal-byteswap.c: new file implementing 
6830         _dbus_marshal_byteswap()
6831
6832         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6833
6834 2005-01-26  Havoc Pennington  <hp@redhat.com>
6835         
6836         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6837         build, apparently - nobody noticed?)
6838         
6839 2005-01-26  Havoc Pennington  <hp@redhat.com>
6840
6841         * dbus/dbus-marshal-recursive.h: remove todo comment
6842
6843 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6844
6845         * Land the mono binding changes to conform to the new APIs.
6846
6847         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6848         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6849
6850         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6851         type code as a string.
6852         (InitAppending): Rename dbus_message_append_iter_init() to
6853         dbus_message_iter_init_append().
6854
6855         * mono/BusDriver.cs: Rename ServiceEventHandler to
6856         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6857         Rename ServiceOwnerChanged to NameOwnerChanged.
6858
6859         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6860         underlying C call.
6861
6862         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6863
6864         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6865         dbus_bus_acquire_service() to dbus_bus_request_name().
6866
6867         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6868         of Type.UnderlyingSystemType to get the correct element type for
6869         the array.
6870         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6871         dbus_message_get_{element|arg}_type() instead of
6872         dbus_message_iter_init_array_iterator().
6873         (Append): Replace dbus_message_iter_append_array() with
6874         dbus_message_iter_open_container() and
6875         dbus_message_iter_close_container().
6876
6877         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6878         types have been removed.
6879         
6880         * mono/DBusType/*.cs: Replace calls of
6881         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6882         but specify the type in the DllImport extern declaration.  Ditto
6883         for dbus_message_iter_append_[type]() ->
6884         dbus_message_iter_append_basic().
6885
6886         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6887         NameOwnerChangedHandler.
6888
6889 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6890
6891         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6892                 - get_base_service -> get_unique_name
6893                 - bus_get_base_service -> bus_get_unique_name
6894                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6895                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6896                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6897                 - bus_activate_service -> bus_start_service_by_name
6898                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6899                 - bus_acquire_service -> bus_request_name
6900                 - dbus_bus_acquire_service -> dbus_bus_request_name
6901                 - bus_service_exists -> bus_name_has_owner
6902                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6903
6904         * python/dbus.py: Rename of methods
6905                 - activate_service -> start_service_by_name
6906                 - bus_acquire_service -> bus_request_name
6907                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6908                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6909
6910         
6911 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6912
6913         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6914         signature for the method that can't be found.
6915
6916         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6917         the message has any arguments, we need to call
6918         _dbus_type_reader_get_current_type(), not
6919         _dbus_type_reader_has_next().
6920
6921 2005-01-24  Havoc Pennington  <hp@redhat.com>
6922
6923         * dbus/dbus-message-factory.c: more testing of message validation
6924
6925         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6926         header
6927
6928 2005-01-23  Havoc Pennington  <hp@redhat.com>
6929
6930         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6931         get this all working, not many tests in the framework yet though
6932
6933 2005-01-22  Havoc Pennington  <hp@redhat.com>
6934
6935         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6936         tutorial, based on work from David Wheeler.
6937
6938 2005-01-21  Havoc Pennington  <hp@redhat.com>
6939
6940         * dbus/dbus-bus.c: add more return_if_fail checks
6941
6942         * dbus/dbus-message.c (load_message): have the "no validation"
6943         mode (have to edit the code to toggle the mode for now though)
6944
6945         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6946         skips all validation; I want to use this at least for benchmark
6947         baseline, I'm not sure if it should be a publicly-available switch.
6948
6949 2005-01-21  Havoc Pennington  <hp@redhat.com>
6950
6951         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6952         toplevel doxygen group as the low-level API stuff
6953
6954         * dbus/dbus.h: note that libdbus is the low-level API
6955
6956 2005-01-20  Havoc Pennington  <hp@redhat.com>
6957
6958         * update-dbus-docs.sh: script to update docs on the web site, only
6959         works for me though. neener.
6960
6961 2005-01-20  Havoc Pennington  <hp@redhat.com>
6962
6963         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6964         code can reveal bugs in it
6965
6966 2005-01-20  Havoc Pennington  <hp@redhat.com>
6967
6968         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6969         select() version, patches from Tor Lillqvist
6970
6971 2005-01-20  Havoc Pennington  <hp@redhat.com>
6972
6973         * doc/dbus-tutorial.xml: replace > with &gt;
6974
6975         * bus/services.c (bus_registry_acquire_service): validate the name
6976         and return a better error if it's no good.
6977
6978         * doc/dbus-specification.xml: note NO_AUTO_START change
6979
6980         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6981         from AUTO_START, we're toggling the default
6982
6983         * bus/dispatch.c: adapt the tests to change of auto-start default
6984
6985 2005-01-18  Havoc Pennington  <hp@redhat.com>
6986
6987         * rename dbus-daemon-1 to dbus-daemon throughout
6988
6989 2005-01-18  Havoc Pennington  <hp@redhat.com>
6990
6991         * Throughout, grand renaming to strip out the use of "service",
6992         just say "name" instead (or "bus name" when ambiguous).  Did not
6993         change the internal code of the message bus itself, only the
6994         programmer-facing API and messages.
6995         
6996         * doc/dbus-specification.xml: further update the message bus section
6997         
6998         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6999         in error case
7000
7001 2005-01-17  Havoc Pennington  <hp@redhat.com>
7002
7003         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7004         ever
7005
7006         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7007         "invalid name character" not only non-ASCII
7008
7009         * doc/dbus-specification.xml: further update spec, message bus 
7010         parts are still out-of-date but the marshaling etc. stuff is now
7011         accurate-ish
7012
7013 2005-01-17  Havoc Pennington  <hp@redhat.com>
7014
7015         * doc/dbus-specification.xml: partially update spec
7016
7017 2005-01-17  Havoc Pennington  <hp@redhat.com>
7018
7019         * Throughout, align variant bodies according to the contained
7020         type, rather than always to 8. Should save a fair bit of space in
7021         message headers.
7022         
7023         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7024         fix handling of case where p == end
7025
7026         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7027
7028 2005-01-17  Havoc Pennington  <hp@redhat.com>
7029
7030         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7031
7032         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7033         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7034         are marshaling/unmarshaling a boolean.
7035
7036 2005-01-16  Havoc Pennington  <hp@redhat.com>
7037
7038         This is about it on what can be disabled/deleted from libdbus
7039         easily, back below 150K anyhow. Deeper cuts are more work than 
7040         just turning the code off as I've done here.
7041         
7042         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7043         signed int convenience funcs
7044
7045         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7046         verbose mode
7047
7048         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7049         things out of libdbus
7050
7051         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7052         
7053         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7054         tests-enabled-only, though it should probably be deleted)
7055
7056         * dbus/dbus-message-util.c: same stuff
7057
7058         * dbus/dbus-auth-util.c: same stuff
7059
7060 2005-01-16  Havoc Pennington  <hp@redhat.com>
7061
7062         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7063
7064         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7065         way for stripping down dbus-userdb.c stuff included in libdbus.
7066         Rename _dbus_parse_uid for consistency.
7067
7068 2005-01-16  Havoc Pennington  <hp@redhat.com>
7069
7070         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7071         name the assertion failed in
7072
7073         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7074         (_dbus_return_val_if_fail): assert that the name of the function
7075         containing the check doesn't start with '_', since we only want to 
7076         use checks on public functions
7077         
7078         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7079         checks to assertions
7080
7081         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7082         change checks to asserts for private function
7083
7084         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7085         to asserts for private function
7086
7087         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7088         broken assertion that was breaking make check
7089         (_dbus_type_reader_array_is_empty): remove this rather than fix
7090         it, was only used in assertions
7091
7092 2005-01-16  Havoc Pennington  <hp@redhat.com>
7093
7094         * test/unused-code-gc.py: hacky script to find code that's used
7095         only by the bus (not libdbus) or used only by tests or not used at
7096         all. It has some false alarms, but looks like we can clean up a
7097         lot of size from libdbus.
7098
7099         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7100         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7101         
7102 2005-01-16  Havoc Pennington  <hp@redhat.com>
7103
7104         * Add and fix docs according to Doxygen warnings throughout
7105         source.
7106         
7107         * dbus/dbus-marshal-recursive.c
7108         (_dbus_type_reader_array_is_empty): change this to just call
7109         array_reader_get_array_len() and make it static
7110
7111         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7112         from get_array_type
7113         (dbus_message_iter_init_append): rename from append_iter_init
7114
7115         * dbus/dbus-marshal-recursive.c
7116         (_dbus_type_reader_get_element_type): rename from
7117         _dbus_type_reader_get_array_type
7118
7119 2005-01-15  Havoc Pennington  <hp@redhat.com>
7120
7121         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7122
7123         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7124         when DBUS_DISABLE_ASSERT
7125         (_dbus_marshal_set_basic): be sure we align for the string length
7126
7127         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7128         this look faster
7129
7130         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7131         inline macro version
7132         (_dbus_string_set_byte): provide inline macro version
7133
7134 2005-01-15  Havoc Pennington  <hp@redhat.com>
7135
7136         * Land the new message args API and type system.
7137
7138         This patch is huge, but the public API change is not 
7139         really large. The set of D-BUS types has changed somewhat, 
7140         and the arg "getters" are more geared toward language bindings;
7141         they don't make a copy, etc.
7142
7143         There are also some known issues. See these emails for details
7144         on this huge patch:
7145         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7146         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7147         
7148         * dbus/dbus-marshal-*: all the new stuff
7149
7150         * dbus/dbus-message.c: basically rewritten
7151
7152         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7153         freed blocks to be all non-nul bytes so using freed memory is less
7154         likely to work right
7155
7156         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7157         DBUS_FAIL_MALLOC=N environment variable, so you can do
7158         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7159         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7160         thorough.
7161
7162         * qt/message.cpp: port to the new message args API
7163         (operator<<): use str.utf8() rather than str.unicode()
7164         (pretty sure this is right from the Qt docs?)
7165
7166         * glib/dbus-gvalue.c: port to the new message args API
7167
7168         * bus/dispatch.c, bus/driver.c: port to the new message args API
7169
7170         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7171         "locked" flag to TRUE and align_offset to 0; I guess we never
7172         looked at these anyhow, but seems cleaner.
7173
7174         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7175         move allocation padding macro to this header; use it to implement
7176         (_DBUS_STRING_STATIC): ability to declare a static string.
7177
7178         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7179         change to return TRUE if the interface is not set.
7180
7181         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7182         to dbus-marshal-validate.[hc]
7183
7184         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7185         dbus-internals.c
7186
7187         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7188         to dbus-marshal-*.[hc]
7189
7190         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7191         function here from dbus-marshal.c
7192
7193 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7194
7195         * NEWS: Update for 0.23.
7196
7197         * configure.in: Release 0.23.
7198
7199 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7200
7201         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7202         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7203         behind.
7204
7205         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7206         uninstall"
7207
7208         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7209         is an enum, get the enum's underlying type.  Another mono
7210         1.1.3 fix.
7211
7212 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7213
7214         Patch from Sjoerd Simons <sjoerd@luon.net>
7215
7216         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7217         DESTDIR.  It breaks stuff.
7218
7219 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7220
7221         Patch from Tambet Ingo <tambet@ximian.com>
7222
7223         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7224         calling type.GetElementType().  The code previously depended on
7225         broken Mono behavior, which was fixed in Mono 1.1.3.
7226
7227         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7228         Activator.CreateInstance() so that the class's constructor is
7229         called with the right parameters.
7230
7231 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7232
7233         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7234
7235         * dbus/dbus-connection.c
7236         (_dbus_connection_queue_received_message_link): Call
7237         _dbus_connection_remove_timeout() instead of the _locked()
7238         variant, since it's always called from
7239         _dbus_connection_handle_watch(), which handles the locking.
7240         Removed the _locked() variant since it's no longer used.
7241
7242 2005-01-03  Havoc Pennington  <hp@redhat.com>
7243
7244         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7245         return
7246         
7247 2004-12-26  Havoc Pennington  <hp@redhat.com>
7248
7249         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7250
7251 2005-01-03  Havoc Pennington  <hp@redhat.com>
7252
7253         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7254         floating point
7255
7256         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7257
7258 2005-01-02  Havoc Pennington  <hp@redhat.com>
7259
7260         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7261
7262 2005-01-01  Havoc Pennington  <hp@redhat.com>
7263
7264         * configure.in: add -Wfloat-equal
7265
7266 2005-01-01  Havoc Pennington  <hp@redhat.com>
7267
7268         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7269         for a variety of reasons '==' doesn't do this.
7270
7271 2004-12-31  Havoc Pennington  <hp@redhat.com>
7272
7273         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7274         I keep wishing I had
7275
7276 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7277
7278         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7279
7280 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7281
7282         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7283         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7284         dbus-protocol.h.  Because they are defines and not enums they are not
7285         autogenerated.
7286
7287 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7288
7289         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7290         dbus_bus_activate_service
7291
7292         * python/dbus.py (Bus.activate_service): activate a service on the
7293         bus.
7294
7295 2004-12-24  Havoc Pennington  <hp@redhat.com>
7296
7297         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7298         file format has also changed and I haven't adapted to that yet
7299         
7300         * Makefile.am: load .gcno files from latest gcc
7301
7302 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7303         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7304
7305         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7306         lowlevel binding
7307
7308         * python/dbus.py (get_unix_user): Added binding to 
7309         call dbus_bindings.bus_get_unix_user
7310
7311         * python/extract.py: Modified the proto_pat regex to
7312         handle unsigned long
7313
7314 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7315
7316         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7317         better POSIX compliance.
7318
7319 2004-12-19  Havoc Pennington  <hp@redhat.com>
7320
7321         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7322         (_dbus_string_insert_8_aligned): new functions
7323
7324         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7325
7326 2004-12-18  Havoc Pennington  <hp@redhat.com>
7327
7328         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7329         macro
7330
7331         * dbus/dbus-message.c: fix a comment, and add a still-unused
7332         not-implemented function
7333
7334         * dbus/dbus-marshal.h: fix comment
7335
7336         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7337
7338 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7339
7340         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7341         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7342         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7343         Type.UnderlyingSystemType to get the actual system type
7344         underneath.  This code previously depended on the broken Mono
7345         behavior, which was fixed in 1.1.3.
7346
7347 2004-11-27  Havoc Pennington  <hp@redhat.com>
7348
7349         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7350         are disabled
7351         (_dbus_string_get_const_data): inline when asserts are disabled
7352
7353         * dbus/dbus-message.c: record the _dbus_current_generation of
7354         creation so we can complain if dbus_shutdown() is used improperly.
7355         Do this only if checks are enabled.
7356
7357         * dbus/dbus-connection.c: ditto
7358         
7359 2004-11-26  Havoc Pennington  <hp@redhat.com>
7360
7361         * test/glib/test-profile.c: add with_bus mode to profile echoes
7362         that go through the bus.
7363
7364         * test/glib/run-test.sh: add ability to run test-profile
7365
7366         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7367         config file reload.
7368
7369 2004-11-26  Havoc Pennington  <hp@redhat.com>
7370
7371         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7372         thing was implemented
7373
7374 2004-11-26  Havoc Pennington  <hp@redhat.com>
7375
7376         * test/glib/test-profile.c: tweak a bit, add support for some
7377         made-up minimal malloc overhead with plain sockets, since in 
7378         real life some sort of buffers are unavoidable thus we could 
7379         count them in the theoretical best case
7380
7381 2004-11-26  Havoc Pennington  <hp@redhat.com>
7382
7383         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7384         where I was trying to cache one too many messages
7385
7386 2004-11-26  Havoc Pennington  <hp@redhat.com>
7387
7388         * dbus/dbus-message.c: reimplement message cache as an array which 
7389         makes the cache about twice as fast and saves maybe 1.5% overall
7390
7391 2004-11-26  Havoc Pennington  <hp@redhat.com>
7392
7393         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7394         message cache lock here
7395
7396 2004-11-26  Havoc Pennington  <hp@redhat.com>
7397
7398         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7399         the "char byte_order" next to each other to save 4 bytes
7400         (dbus_message_new_empty_header): reduce preallocation, since the
7401         message cache should achieve a similar effect
7402         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7403         message cache that keeps a few DBusMessage around in a pool,
7404         another 8% speedup or so.
7405
7406         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7407
7408 2004-11-25  Havoc Pennington  <hp@redhat.com>
7409
7410         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7411         to write, without reading or blocking, try it before the poll()
7412         and skip the poll() if nothing remains to write. This is about a
7413         3% speedup in the echo client/server
7414
7415 2004-11-25  Havoc Pennington  <hp@redhat.com>
7416
7417         The primary change here is to always write() once before adding
7418         the write watch, which gives us about a 10% performance increase.
7419         
7420         * dbus/dbus-transport-unix.c: a number of modifications to cope
7421         with removing messages_pending
7422         (check_write_watch): properly handle
7423         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7424         messages_pending stuff
7425         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7426         AUTHENTICATED cases
7427         (unix_handle_watch): after writing, see if the write watch can be
7428         removed
7429         (unix_do_iteration): assert that write_watch/read_watch are
7430         non-NULL rather than testing that they aren't, since they 
7431         aren't allowed to be NULL. check_write_watch() at the end so 
7432         we add the watch if we did not finish writing (e.g. got EAGAIN)
7433
7434         * dbus/dbus-transport-protected.h: remove messages_pending call,
7435         since it resulted in too much inefficient watch adding/removing; 
7436         instead we now require that the transport user does an iteration 
7437         after queueing outgoing messages, and after trying the first
7438         write() we add a write watch if we got EAGAIN or exceeded our 
7439         max bytes to write per iteration setting
7440
7441         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7442         function
7443
7444         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7445         freed and then accessed, valgrind flagged this bug, fix it
7446
7447         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7448         as the last valid field plus 1, where really it is equal to the
7449         last valid field. Corrects some message corruption issues.
7450
7451         * dbus/dbus-mainloop.c: verbosity changes
7452
7453         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7454         instead of aborting in one of the test codepaths
7455
7456         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7457         caused not printing the pid ever again if a verbose was missing
7458         the newline at the end
7459         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7460
7461         * dbus/dbus-connection.c: verbosity changes; 
7462         (dbus_connection_has_messages_to_send): new function
7463         (_dbus_connection_message_sent): no longer call transport->messages_pending
7464         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7465         try to write() immediately, so we can avoid the write watch. This
7466         is the core purpose of this patchset
7467         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7468         dump the outgoing message queue, so nobody will get confused
7469         trying to send them or thinking stuff is pending to be sent
7470
7471         * bus/test.c: verbosity changes
7472
7473         * bus/driver.c: verbosity/assertion changes
7474
7475         * bus/dispatch.c: a bunch of little tweaks to get it working again
7476         because this patchset changes when/where you need to block.
7477
7478 2004-11-23  Havoc Pennington  <hp@redhat.com>
7479
7480         * test/glib/test-profile.c: modify to accept a plain_sockets
7481         argument in which case it will bench plain sockets instead of
7482         libdbus, for comparison purposes.
7483
7484 2004-11-22  Havoc Pennington  <hp@redhat.com>
7485
7486         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7487         threads for more time, so sysprof can get a grip on it.
7488
7489         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7490         pointless variable
7491
7492 2004-11-13  Havoc Pennington  <hp@redhat.com>
7493
7494         * test/glib/test-profile.c: fix this thing up a bit
7495
7496         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7497         preallocation sizes by a fair bit; not sure if this will be an
7498         overall performance win or not, but it does reduce reallocs.
7499
7500         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7501         the test hack that forced constant realloc if asserts are
7502         disabled, so we can profile sanely. Sprinkle in some
7503         _DBUS_UNLIKELY() which are probably pointless, but before I
7504         noticed the real performance problem I put them in.
7505         (_dbus_string_validate_utf8): micro-optimize this thing a little
7506         bit, though callgrind says it didn't help; then special-case
7507         ascii, which did help a lot; then be sure we detect nul bytes as
7508         invalid, which is a bugfix.
7509         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7510         superstition; use memset to nul the padding instead of a manual
7511         loop.
7512         (_dbus_string_get_length): inline this as a
7513         macro; it showed up in the profile because it's used for loop
7514         tests and so forth
7515
7516 2004-11-10  Colin Walters  <walters@verbum.org>
7517
7518         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7519         for extra paranoia.
7520
7521 2004-11-09  Colin Walters  <walters@verbum.org>
7522
7523         * dbus/dbus-string.c (_dbus_string_get_length): New
7524         function, writes DBusString to C buffer.
7525
7526         * dbus/dbus-string.h: Prototype it.
7527
7528         * dbus/dbus-message.c (dbus_message_type_to_string): New
7529         function, converts message type into C string.
7530
7531         * dbus/dbus-message.h: Prototype it.
7532
7533         * bus/selinux.c (bus_selinux_check): Take source pid,
7534         target pid, and audit data.  Pass audit data to
7535         avc_has_perm.
7536         (log_audit_callback): New function, appends extra
7537         audit information.
7538         (bus_selinux_allows_acquire_service): Also take
7539         service name, add it to audit data.
7540         (bus_selinux_allows_send): Also take message
7541         type, interface, method member, error name,
7542         and destination, and add them to audit data.
7543         (log_cb): Initialize func_audit.
7544         
7545         * bus/selinux.h (bus_selinux_allows_acquire_service)
7546         (bus_selinux_allows_send): Update prototypes 
7547
7548         * bus/services.c (bus_registry_acquire_service): Pass
7549         service name to bus_selinux_allows_acquire_service.
7550
7551         * bus/bus.c (bus_context_check_security_policy): Pass
7552         additional audit data.  Move assignment of dest
7553         to its own line.
7554
7555 2004-11-07  Colin Walters  <walters@verbum.org>
7556
7557         * dbus/dbus-transport-unix.c (do_authentication): Always
7558         initialize auth_completed.
7559         
7560 2004-11-07  Colin Walters  <walters@verbum.org>
7561
7562         * bus/bus.c (load_config): Break into three
7563         separate functions: process_config_first_time_only,
7564         process_config_every_time, and process_config_postinit.
7565         (process_config_every_time): Move call of
7566         bus_registry_set_service_context_table into
7567         process_config_postinit.
7568         (process_config_postinit): New function, does
7569         any processing that needs to happen late
7570         in initialization (and also on reload).
7571         (bus_context_new): Instead of calling load_config,
7572         open config parser here and call process_config_first_time_only
7573         and process_config_every_time directly.  Later, after
7574         we have forked but before changing UID,
7575         invoke bus_selinux_full_init, and then call
7576         process_config_postinit.
7577         (bus_context_reload_config): As in bus_context_new,
7578         load parse file inside here, and call process_config_every_time
7579         and process_config_postinit.
7580
7581         * bus/services.h, bus/services.c
7582         (bus_registry_set_service_context_table): Rename
7583         from bus_registry_set_sid_table.  Take string hash from config
7584         parser, and convert them here into SIDs.
7585
7586         * bus/config-parser.c (struct BusConfigParser): Have
7587         config parser only store a mapping of service->context
7588         string.
7589         (merge_service_context_hash): New function.
7590         (merge_included): Merge context string hashes instead
7591         of using bus_selinux_id_table_union.
7592         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7593         simply create a new string hash.
7594         (bus_config_parser_unref): Unref it.
7595         (start_selinux_child): Simply insert strings into hash,
7596         don't call bus_selinux_id_table_copy_over.
7597
7598         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7599         (bus_selinux_id_table_copy_over): Delete.
7600
7601 2004-11-03  Colin Walters  <walters@verbum.org>
7602
7603         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7604         variables.
7605         
7606 2004-11-03  Colin Walters  <walters@verbum.org>
7607
7608         * bus/test-main.c (test_pre_hook): Fix test logic,
7609         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7610
7611 2004-11-02  Colin Walters  <walters@redhat.com>
7612
7613         * bus/selinux.c (bus_selinux_init): Split into two functions,
7614         bus_selinux_pre_init and bus_selinux_post_init.
7615         (bus_selinux_pre_init): Just determine whether SELinux is
7616         enabled.
7617         (bus_selinux_post_init): Do everything else.
7618
7619         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7620         config file, and bus_selinux_post_init after.  This ensures that
7621         we don't lose the policyreload notification thread that
7622         bus_selinux_init created before forking previously.
7623         
7624         * bus/test-main.c (test_pre_hook): Update for split.
7625
7626 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7627
7628         Patch from Johan Fischer <linux@fischaz.com>
7629         
7630         * mono/doc/Makefile.am (install-data-local): Added directory
7631         install for DESTDIR
7632
7633 2004-10-29  Colin Walters  <walters@redhat.com>
7634
7635         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7636         parameter for fd to write pid to.       
7637
7638         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7639         
7640         * bus/bus.c (bus_context_new): Pass print_pid_fd
7641         to _dbus_become_daemon (bug #1720)
7642
7643 2004-10-29  Colin Walters  <walters@redhat.com>
7644
7645         Patch from Ed Catmur <ed@catmur.co.uk>
7646
7647         * mono/doc/Makefile.am (install-data-local): Handle
7648         DESTDIR.
7649
7650 2004-10-29  Colin Walters  <walters@redhat.com>
7651
7652         * bus/.cvsignore, qt/.cvsignore: Update.
7653
7654 2004-10-29  Colin Walters  <walters@redhat.com>
7655
7656         Patch from Kristof Vansant <de_lupus@pandora.be>
7657
7658         * configure.in: Detect Slackware.
7659         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7660         * bus/rc.messagebus.in: New file.
7661
7662 2004-10-29  Colin Walters  <walters@redhat.com>
7663
7664         * tools/dbus-monitor.c (filter_func): Return
7665         DBUS_HANDLER_RESULT_HANDLED in filter function
7666         for now.  See:
7667         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7668
7669 2004-10-29  Colin Walters  <walters@redhat.com>
7670
7671         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7672
7673         * bus/services.c (bus_registry_acquire_service): 
7674         Correctly retrieve service name from DBusString
7675         for printing.
7676
7677 2004-10-29  Colin Walters  <walters@redhat.com>
7678
7679         * dbus/dbus-glib.h: Update documentation to not
7680         refer to internal APIs.
7681
7682 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7683
7684         * mono/Arguments.cs (GetDBusTypeConstructor):
7685         type.UnderlyingSystemType will return "System.Byte" if you do it
7686         on "byte[]", which is not what we want.  So check the type.IsArray
7687         property and use System.Array instead.
7688
7689 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7690
7691         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7692         the DBusUserInfo structure since this is passed into the function.
7693         This would cause a double free when the function that allocated
7694         the structure would try to free it when an error occured.
7695
7696         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7697         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7698         for service activation to avoid 32bit/64bit parallel install issues
7699
7700 2004-10-21  Colin Walters  <walters@verbum.org>
7701
7702         * AUTHORS: Fix my email address, the @gnu.org one
7703         has been bouncing for some time.  Also add J5.
7704         
7705 2004-10-21  Colin Walters  <walters@verbum.org>
7706
7707         * dbus/dbus-transport-unix.c (do_authentication): Return
7708         authentication status to callers.
7709         (unix_handle_watch): If we completed authentication this round,
7710         don't do another read.  Instead wait until the next iteration,
7711         after we've read any pending data in the auth buffer.
7712         (unix_do_iteration): Ditto.
7713         (unix_handle_watch): Updated for new do_authentication prototype.
7714
7715 2004-10-18  Colin Walters  <walters@verbum.org>
7716
7717         * bus/selinux.c (bus_selinux_enabled): Handle
7718         --disable-selinux case.
7719         
7720 2004-10-18  Colin Walters  <walters@verbum.org>
7721
7722         * bus/selinux.h: Add bus_selinux_enabled.
7723         
7724         * bus/selinux.c (bus_selinux_enabled): Implement it.
7725         
7726         * bus/config-parser.c (struct include): Add
7727         if_selinux_enabled member.
7728         (start_busconfig_child): Parse if_selinux_enabled
7729         attribute for include.
7730         (bus_config_parser_content): Handle it.
7731
7732         * bus/session.conf.in, bus/system.conf.in: Add
7733         inclusion of context mapping to default config files;
7734         conditional on SELinux being enabled.
7735         
7736         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7737         
7738         * test/data/invalid-config-files/badselinux-1.conf, 
7739         test/data/invalid-config-files/badselinux-2.conf:
7740         Test files for bad syntax.
7741         
7742 2004-10-17  Colin Walters  <walters@verbum.org>
7743
7744         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7745         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7746         format specifier mismatches.
7747
7748 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7749
7750         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7751         format string.
7752
7753         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7754         pointer (bug #1540, Leonardo Boiko).
7755
7756 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7757
7758         * mono/BusDriver.cs: Changed BusDriver struct to remove
7759         the ServiceCreated and ServiceDeleted events and replace them
7760         with the new ServiceOwnerChanged event.
7761
7762         * mono/example/BusListener.cs: Added a new example program,
7763         which listens for and reports any ServiceOwnerChanged events
7764         on the bus driver.
7765
7766         * mono/example/Makefile.am (DESTDIR): Build changes for the
7767         new BusListener.cs example.
7768
7769 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7770
7771         * bus/signals.c (bus_match_rule_parse): validate the components of
7772         match rules (bug #1439).
7773
7774         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7775
7776 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7777
7778         * doc/dbus-specification.xml: document ServiceOwnerChanged
7779         signal.
7780         
7781         * bus/driver.c, bus/driver.h, bus/services.c: Use
7782         ServiceOwnerChanged signal instead of ServiceCreated and
7783         ServiceDeleted.
7784         
7785         * bus/dispatch.c: update testcase for the new signal.
7786
7787 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7788
7789         Patch from Nat Friedman <nat@novell.com>
7790
7791         * mono/Makefile.am: A number of small build fixes to allow "make
7792         distcheck" to succeed.
7793
7794         * mono/example/Makefile.am: "make distcheck" fixes.
7795
7796         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7797         key in @srcdir@.
7798
7799         * test/Makefile.am: "make distcheck" fixes.
7800
7801 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7802
7803         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7804
7805         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7806
7807         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7808         messages after the first one (bug #1389).
7809         
7810         * bus/dispatch.c (check_double_hello_message): add a test case for
7811         the double hello message bug.
7812         (check_existent_service_activation): fix check of spawning error.
7813         
7814 2004-09-16  David Zeuthen  <david@fubar.dk>
7815
7816         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7817
7818 2004-09-12  David Zeuthen  <david@fubar.dk>
7819
7820         Patch from Kay Sievers <kay.sievers@vrfy.org>
7821
7822         * bus/bus.c (bus_context_new):
7823         * bus/bus.h:
7824         * bus/main.c (usage)
7825         (main):
7826         Add commandline option --nofork to override configuration file
7827         setting.
7828
7829 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7830
7831         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7832         compilers don't like it (bug #974).
7833
7834 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7835
7836         * qt/connection.*: Applied patch by Jérôme Lodewyck
7837         <lodewyck@clipper.ens.fr> to integrate an existing
7838         connection into the Qt eventloop
7839
7840 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7841
7842         * mono/BusDriver.cs: Added.  This is a class for interacting with
7843         the org.freedesktop.DBus service.
7844
7845         * mono/Message.cs: Added a mechanism to expose the message that is
7846         currently being dispatched via the static Message.Current
7847         property.  Added Message.Sender and Message.Destination
7848         properties.
7849
7850         * mono/Handler.cs: Expose the dispatched message via
7851         Message.Current when handling method calls.
7852
7853         * mono/Service.cs: Expose the dispatched message via
7854         Message.Current when handling signal emissions.
7855         
7856         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7857         Connection.BaseService property.
7858
7859 2004-08-28  Havoc Pennington  <hp@redhat.com>
7860
7861         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7862
7863         More fixes from Steve Grubb
7864         
7865         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7866         (_dbus_listen_tcp_socket): fix fd leak
7867
7868         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7869         EINTR to a bit lower in the code
7870
7871 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7872
7873         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7874         TRUE if we are inquiring about the existence of the built-in
7875         org.freedesktop.DBus service.
7876
7877 2004-08-25  John Palmieri  <johnp@redhat.com>
7878         * bus/config-parser.c:
7879         (struct PolicyType): Add POLICY_CONSOLE
7880         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7881         (start_busconfig_child): Sets up console element when
7882         <policy at_console=""> is encountered in a policy file
7883         (append_rule_from_element): Convert console elements to console
7884         rules.
7885
7886         * bus/policy.c: 
7887         (bus_policy_create_client_policy): Add console rules to the client
7888         policy based on if the client is at the console
7889         (bus_policy_append_console_rule): New function for adding a
7890         console rule to a policy
7891         (bus_policy_merge): Handle console rule merging
7892
7893         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7894         where we check for console user files
7895         
7896         * dbus/dbus-sysdeps.c:
7897         (_dbus_file_exists): New function which checks if the given
7898         file exists
7899         (_dbus_user_at_console): New function which does the system
7900         specific process of checking if the user is at the console
7901
7902         * dbus/dbus-userdb.c:
7903         (_dbus_is_console_user): New function converts a UID to user name
7904         and then calls the system specific _dbus_user_at_console to 
7905         see if the user is at the console and therefor a console user
7906
7907 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7908
7909         * bus/config-parser.c (set_limit):
7910         * bus/dbus-daemon-1.1.in:
7911         * test/data/valid-config-files/many-rules.conf: set the
7912         max_match_rules_per_connection limt from the config file. 
7913
7914         * doc/busconfig.dtd: update the DTD.
7915
7916         * bus/driver.c: remove some unused variables.
7917
7918 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7919
7920         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7921         it's been replaced by dbus_g_bus_get
7922
7923 2004-08-23  Colin Walters  <walters@redhat.com>
7924
7925         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7926
7927         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7928
7929         * bus/selinux.c: Create a thread for policy reload notification.
7930         (bus_selinux_get_policy_root): Implement.
7931
7932         * bus/config-parser.c (start_busconfig_child)
7933         (bus_config_parser_content): Support SELinux-root relative
7934         inclusion.
7935
7936         * configure.in <HAVE_SELINUX>: Add -lpthread.
7937         
7938         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7939         (test_post_hook): Move memory checking into here.
7940         (test_pre_hook, test_post_hook): Move SELinux checks in
7941         here, but conditional on a DBUS_TEST_SELINUX environment
7942         variable.  Unfortunately we can't run the SELinux checks
7943         as a normal user, since they won't have any permissions
7944         for /selinux.  So this will have to be tested manually
7945         for now, until we have virtualization for most of
7946         libselinux.
7947         
7948 2004-08-23  Havoc Pennington  <hp@redhat.com>
7949
7950         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7951         drop supplementary groups, suggested by Steve Grubb
7952
7953 2004-08-20  Colin Walters  <walters@redhat.com>
7954
7955         * bus/config-parser.c (start_busconfig_child): Remove some unused
7956         variables.
7957         
7958         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7959         warning.
7960
7961 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7962
7963         * configure.in: If --enable-mono is passed in, if we can't find
7964         mono error out.
7965
7966         * mono/Makefile.am: Use /gacutil to install assemblies into the
7967         GAC and not /root.
7968
7969 2004-08-12  Havoc Pennington  <hp@redhat.com>
7970
7971         * NEWS: update for 0.22
7972
7973         * configure.in: release 0.22
7974
7975 2004-08-11  Colin Walters  <walters@redhat.com>
7976
7977         * tools/dbus-send.c (main, usage): Add --reply-timeout
7978         argument.
7979
7980 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7981
7982         * bus/bus.c (process_config_first_time_only): get rid of an unused
7983         DBusError that was causing a memoy leak (bug #989).
7984
7985         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7986         fix compilation on Solaris/Forte C (bug #974)
7987
7988         * bus/main.c (main): plug two minuscule memleaks.
7989
7990 2004-08-10  Havoc Pennington  <hp@redhat.com>
7991
7992         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7993
7994 2004-08-09  Havoc Pennington  <hp@redhat.com>
7995
7996         * COPYING: switch to Academic Free License version 2.1 instead of
7997         2.0, to resolve complaints about patent termination clause.
7998
7999 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8000
8001         * README: added documentation for the --enable-python 
8002         configure switch.
8003
8004 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8005
8006         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8007         _unref in the SELinux support.
8008
8009         * doc/busconfig.dtd: update DTD for SELinux support.
8010
8011         * bus/config-loader-libxml.c: fix error handler and parser
8012         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8013
8014         * configure.in: remove the warning about libxml2.
8015
8016         * dbus/dbus-bus.c: silence doxygen warning.
8017
8018 2004-07-31  Colin Walters  <walters@redhat.com>
8019
8020         * configure.in: Move #error in SELinux check to its own line.
8021
8022 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8023
8024         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8025         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8026         dbus_error_set.
8027
8028         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8029         broken by the change in the _SET_OOM macros.
8030
8031 2004-07-31  Colin Walters  <walters@redhat.com>
8032
8033         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8034         BUS_SET_OOM.
8035
8036 2004-07-31  Colin Walters  <walters@redhat.com>
8037
8038         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8039         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8040         AC_MSG_CHECKING.
8041
8042 2004-07-24  Havoc Pennington  <hp@redhat.com>
8043
8044         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8045
8046         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8047         functionality
8048
8049         * configure.in: add --enable-selinux
8050         
8051         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8052
8053         * bus/main.c (main): initialize and shut down selinux
8054
8055         * bus/connection.c: store SELinux ID on each connection, to avoid 
8056         repeated getting of the string context and converting it into 
8057         an ID
8058
8059         * bus/bus.c (bus_context_get_policy): new accessor, though it
8060         isn't used
8061         (bus_context_check_security_policy): check whether the security
8062         context of sender connection can send to the security context of
8063         recipient connection
8064
8065         * bus/config-parser.c: add parsing for <selinux> and <associate>
8066         
8067         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8068         implement dbus_connection_get_unix_fd()
8069
8070         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8071         function, used by the selinux stuff
8072         
8073 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8074
8075         * bus/config-loader-libxml.c: complete the implementation of
8076         libxml backend for config file loader. Doesn't work with full OOM
8077         test yet. 
8078         
8079         * configure.in: change error when selecting libxml into a warning.
8080         
8081         * test/data/invalid-config-files: add two non-well-formed XML
8082         files. 
8083         
8084         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8085         
8086         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8087         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8088         be necessary to read all the buffer. (bug #894)
8089
8090         * bus/activation.c (bus_activation_activate_service): fix a
8091         potential assertion failure (bug #896). Small optimization in the
8092         case of auto-activation messages.
8093
8094         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8095         add test case for byte-through-vararg bug (#901). patch by Kimmo
8096         Hämäläinen. 
8097
8098 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8099
8100         * python/dbus.py:
8101         * python/dbus_bindings.pyx.in:
8102         Add dbus.init_gthreads (), allow emit_signal to pass
8103         arguments to the signal.
8104         
8105 2004-07-24  Havoc Pennington  <hp@redhat.com>
8106
8107         * AUTHORS: add some people, not really comprehensively, let me
8108         know if I missed you
8109
8110 2004-07-24  Havoc Pennington  <hp@redhat.com>
8111
8112         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8113         Owen
8114
8115         * test/Makefile.am (DIST_SUBDIRS): here also
8116
8117 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8118
8119         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8120         breaking build on Solaris, reported by Farhad Saberi on the ML.
8121
8122         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8123         va_arg invocation to account for integer promotion in the case of
8124         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8125
8126         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8127         _dbus_list_get_first_link, not _dbus_list_get_first.
8128
8129         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8130
8131         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8132         handler functions so that the asserts in _dbus_object_subtree_unref
8133         do not fail.
8134
8135         * dbus/dbus-transport-unix.c (do_reading):
8136         _dbus_transport_queue_messages return value is of type
8137         dbus_bool_t, not DBusDispatchStatus.
8138         
8139 2004-07-19  David Zeuthen  <david@fubar.dk>
8140
8141         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8142
8143         * bus/dispatch.c:
8144         (check_get_connection_unix_user): Debug says GetProperty; but the
8145         method is called GetConnectionUnixUser
8146         (check_get_connection_unix_process_id): New function
8147         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8148         also call check_get_connection_unix_process_id()
8149         
8150         * bus/driver.c:
8151         (bus_driver_handle_get_connection_unix_process_id): New function,
8152         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8153         interface
8154         
8155         * dbus/dbus-auth.c:
8156         (handle_server_data_external_mech): Set pid from the credentials
8157         obtained from the socket
8158         
8159         * dbus/dbus-connection.c:
8160         (dbus_connection_get_unix_process_id): New function
8161         
8162         * dbus/dbus-connection.h: 
8163         Add prototype for dbus_connection_get_unix_process_id
8164         
8165         * dbus/dbus-transport.c:
8166         (_dbus_transport_get_unix_process_id): New function
8167         
8168         * dbus/dbus-transport.h:
8169         Add prototype for _dbus_transport_get_unix_process_id
8170         
8171 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8172
8173         * dbus/dbus-message.c: Message counter fix, patch by Christian
8174         Hammond <chipx86@gnupdate.org>
8175
8176 2004-07-18  Seth Nickell  <seth@gnome.org>
8177
8178         * python/dbus.py:
8179         * python/dbus_bindings.pyx.in:
8180         * python/tests/test-client.py:
8181
8182         Add dbus.ByteArray and dbus_bindings.ByteArray
8183         types so that byte streams can be passed back.
8184
8185         Give jdahlin the heaps of credit that are so
8186         rightfully his.
8187         
8188 2004-07-12  Seth Nickell  <seth@gnome.org>
8189
8190         * python/dbus.py:
8191
8192         Add message argument to the default object_method_handler
8193         function.
8194         
8195         * python/dbus_bindings.pyx.in:
8196
8197         Automatically return NIL when passed an empty list
8198         (we can't pass back a list since lists are typed
8199         and we don't have any idea what type the the client
8200         intended the list to be... :-( )
8201         
8202 2004-07-10  Seth Nickell  <seth@gnome.org>
8203
8204         * python/examples/Makefile.am:
8205
8206         Fix distcheck breakage caused by new examples.
8207
8208 2004-07-10  Seth Nickell  <seth@gnome.org>
8209
8210         * python/dbus.py:
8211
8212         Add "message" argument to service-side dbus.Object
8213         methods. This will break existing services written
8214         using the python bindings, but will allow extraction
8215         of all the message information (e.g. who its from).
8216
8217         Add improved "object oriented" signal handling/emission.
8218         
8219         * python/examples/example-service.py:
8220
8221         Nix this example.
8222         
8223         * python/examples/example-signal-emitter.py:
8224         * python/examples/example-signal-recipient.py:
8225
8226         Two new examples that show how to emit and receive
8227         signals using the new APIs.
8228         
8229         * python/examples/example-signals.py:
8230         * python/examples/gconf-proxy-service.py:
8231         * python/examples/gconf-proxy-service2.py:
8232
8233         Add "message" argument to service methods.
8234
8235 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8236
8237         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8238         * dbus/bus.c (dbus_bus_get_unix_user)
8239         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8240         method of org.freedesktop.DBus interface.
8241
8242         * bus/dispatch.c: test case
8243
8244 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8245
8246         * python/Makefile.am: switched include directory from glib/ to dbus/
8247         since dbus-glib.h moved
8248  
8249 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8250
8251         * configure.in: prevent building the gcj stuff and libxml loader
8252         since they are broken.
8253
8254 2004-06-20  Havoc Pennington  <hp@redhat.com>
8255
8256         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8257         codes from the dbus error names
8258         
8259         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8260         as dbus/dbus-glib.h and that breakage is now visible due to 
8261         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8262         
8263         * glib/dbus-glib.h: s/gproxy/g_proxy/
8264
8265         * dbus/dbus-shared.h: new header to hold stuff shared with
8266         binding APIs
8267         
8268         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8269         than dbus-errors.h
8270
8271         * glib/dbus-glib.h (dbus_set_g_error): move to
8272         dbus-glib-lowlevel.h
8273
8274         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8275         of stuff to enable this
8276
8277         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8278
8279         * a bunch of other changes with the same basic "separate glib 
8280         bindings from dbus.h" theme
8281         
8282 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8283
8284         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8285
8286         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8287
8288 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8289
8290         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8291         the reply value of the ServiceExists message.
8292
8293 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8294
8295         * python/dbus_bindings.pyx.in: No longer need to parse path
8296         elements and pass them as arrays of strings.  The C API now
8297         accepts plain path strings.
8298         (_build_parsed_path): removed 
8299
8300 2004-06-07  Havoc Pennington  <hp@redhat.com>
8301
8302         * doc/TODO: remove auto-activation item since it's done; sort
8303         items by importance/milestone
8304
8305 2004-06-07  Havoc Pennington  <hp@redhat.com>
8306
8307         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8308         random signature when using REQUIRED_FIELDS (this hack won't work
8309         in the long term)
8310
8311         * dbus/dbus-message.c: change the signature to be a header field,
8312         instead of message->signature special-case string. Incremental
8313         step forward. Then we can fix up code to send the signature in the
8314         message, then fix up code to validate said signature, then fix up
8315         code to not put the typecodes inline, etc.
8316         (load_one_message): don't make up the signature after the fact
8317         (decode_header_data): require signature field for the known
8318         message types
8319
8320         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8321
8322         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8323
8324 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8325
8326         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8327
8328         * mono/Handler.cs: Updated to follow new path argument for
8329         (un-)registering objects.
8330
8331         * mono/example/Makefile.am:
8332         * mono/Makefile.am:
8333         * configure.in: Bumped required version for mono and use new -pkg
8334         syntax for deps
8335
8336 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8337
8338         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8339         registration functions take the path argument as char* instead of
8340         char**.
8341
8342         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8343         split off the path decompostion part of
8344         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8345         warnings. 
8346
8347         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8348         
8349 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8350  
8351         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8352         machine approach.  A state is implemented as a function that
8353         handles incoming events as specified for that state.
8354         
8355         * doc/dbus-specification.xml: Update auth protocol state machine
8356         specification to match implementation.  Remove some leftover
8357         base64 examples.
8358
8359 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8360
8361         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8362         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8363         quiet doxygen.
8364
8365         * Doxyfile.in: remove deprecated options.
8366
8367         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8368         glib/test-thread.h, glib/test-thread-client.c,
8369         glib/test-thread-server.c, glib/test-profile.c,
8370         glib/test-dbus-glib.c: remove these unused files.
8371
8372 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8373
8374         * dbus/dbus-object-tree.c
8375         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8376         non-fallback handlers (bug #684).
8377         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8378         (find_subtree_recurse): report wether the returned subtree is an
8379         exact match or a "fallback" match higher up in the tree.
8380         (object_tree_test_iteration): update test case.
8381
8382 2004-06-01  Seth Nickell  <seth@gnome.org>
8383
8384         * python/dbus_bindings.pyx.in:
8385         * python/tests/test-client.py:
8386
8387         Round off basic type support. Add dicts (yay!), and 
8388         remaining array types.
8389
8390         Make MessageIter more general so it works for dicts too.
8391
8392         Mark all loop variables as C integers.
8393         
8394 2004-05-31  Havoc Pennington  <hp@redhat.com>
8395
8396         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8397         "in" before "out"
8398
8399         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8400
8401         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8402         option that runs the tests, and start filling in some code
8403         including for starters just dumping the interfaces to stdout
8404
8405         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8406
8407         * test/data/valid-introspection-files/lots-of-types.xml: test of
8408         an example introspection file
8409
8410         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8411         "node" (I think...)
8412
8413 2004-05-31  Seth Nickell  <seth@gnome.org>
8414
8415         * python/dbus_bindings.pyx.in:
8416         * python/tests/test-client.py:
8417
8418         Test Suite: 1
8419         Python Bindings: 0
8420
8421         Fix string array memory trashing bug... oops...
8422
8423 2004-05-30  Seth Nickell  <seth@gnome.org>
8424
8425         * python/dbus.py:
8426
8427         Add a nicer-but-less-flexible alternate API for handling 
8428         calls to virtual objects in dbus.ObjectTree.
8429
8430         Screw up the argument order to the dbus.Object constructor
8431         for consistency with dbus.ObjectTree (and to make dbus_methods
8432         optional for future extension)
8433         
8434         * python/examples/Makefile.am:
8435         * python/examples/gconf-proxy-service.py:
8436         * python/examples/gconf-proxy-service2.py:
8437
8438         Alternate implementation of gconf-proxy-service using the
8439         nicer dbus.ObjectTree API.
8440         
8441         * python/examples/example-service.py:
8442         * python/tests/test-server.py
8443
8444         Reverse the argument order to deal with dbus.Object constructor
8445         changes.
8446         
8447 2004-05-30  Seth Nickell  <seth@gnome.org>
8448
8449         * python/examples/example-client.py:
8450         * python/examples/example-service.py:
8451
8452         Take it back. Lists seem to work but they're broken
8453         in the test suite. Make the base examples use
8454         lists (works fine).
8455
8456 2004-05-30  Seth Nickell  <seth@gnome.org>
8457
8458         * python/dbus_bindings.pyx.in:
8459         * python/tests/test-client.py:
8460
8461         Add some more tests and fix errors that crop up.
8462         Unfortunately, currently it seems like marshalling
8463         and unmarshalling of lists is completely broken :-(
8464
8465 2004-05-30  Seth Nickell  <seth@gnome.org>
8466
8467         * python/dbus_bindings.pyx.in:
8468
8469         Add support for ObjectPath type.
8470
8471         * python/dbus.py:
8472
8473         Refactor message handling code to a common function.
8474         
8475         * python/tests/test-client.py:
8476         * python/tests/test-server.py:
8477
8478         Add tests that check to make sure values of all types
8479         can be echoed from a service w/o mangling.
8480         
8481 2004-05-29  Seth Nickell  <seth@gnome.org>
8482
8483         * python/dbus.py:
8484
8485         Add ObjectTree class which allows implementation
8486         of trees of "virtual" objects. Basically the python
8487         wrapper for "register_fallback".
8488         
8489         * python/examples/Makefile.am
8490         * python/examples/gconf-proxy-client.py:
8491         * python/examples/gconf-proxy-service.py:
8492
8493         Implement a simple GConf proxy service that supports
8494         get/set on string and int GConf keys using the ObjectTree.
8495         
8496 2004-05-29  Seth Nickell  <seth@gnome.org>
8497
8498         * python/dbus.py:
8499         * python/examples/example-client.py:
8500         * python/examples/example-service.py:
8501         * python/examples/list-system-services.py:
8502
8503         Add SessionBus, SystemBus and ActivationBus classes
8504         so you don't need to know the special little BUS_TYPE
8505         flag.
8506         
8507 2004-05-29  Havoc Pennington  <hp@redhat.com>
8508
8509         * bus/config-parser.c (process_test_valid_subdir): temporarily
8510         stop testing config parser OOM handling, since expat has issues
8511         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8512
8513         * bus/dbus-daemon-1.1.in: change requested_reply to
8514         send_requested_reply/receive_requested_reply so we can send the
8515         replies, not just receive them.
8516
8517         * bus/config-parser.c: parse the new
8518         send_requested_reply/receive_requested_reply
8519
8520         * bus/policy.c (bus_client_policy_check_can_send): add
8521         requested_reply argument and use it
8522
8523         * bus/bus.c (bus_context_check_security_policy): pass through
8524         requested_reply status to message send check
8525
8526         * bus/system.conf.in: adapt to requested_reply change
8527         
8528 2004-05-28  Havoc Pennington  <hp@redhat.com>
8529
8530         * test/glib/test-service-glib.c (main): remove unused variable
8531
8532         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8533
8534         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8535         from the enum, no longer in use.
8536
8537         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8538         works right.
8539
8540         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8541         whether error_name passed in is a valid error name.
8542
8543 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8544
8545         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8546         OBJECT_PATH and OBJECT_PATH_ARRAY
8547
8548 2004-05-28  Seth Nickell  <seth@gnome.org>
8549
8550         * python/examples/Makefile.am:
8551
8552         Forget to add Makefile.am. Do not pass go.
8553
8554 2004-05-28  Michael Meeks  <michael@ximian.com>
8555
8556         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8557         fix no int64 case.
8558
8559         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8560
8561         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8562         (_dbus_message_iter_get_basic_type_array): impl.
8563         drastically simplify ~all relevant _get methods to use these.
8564         (_dbus_message_iter_append_basic_array),
8565         (dbus_message_iter_append_basic): impl
8566         drastically simplify ~all relevant _append methods to use these.
8567
8568         * dbus/dbus-message-builder.c (parse_basic_type) 
8569         (parse_basic_array, lookup_basic_type): impl.
8570         (_dbus_message_data_load): prune scads of duplicate /
8571         cut & paste coding.
8572
8573         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8574         (_dbus_demarshal_basic_type): implement,
8575         (demarshal_and_validate_len/arg): beef up debug.
8576         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8577
8578 2004-05-27  Seth Nickell  <seth@gnome.org>
8579
8580         * configure.in:
8581         * python/Makefile.am:
8582
8583         Include the example python apps in the tarball.
8584         
8585         * python/examples/list-system-services.py
8586
8587         Add a python new example that fetches the list of services
8588         from the system bus.
8589         
8590 2004-05-27  Seth Nickell  <seth@gnome.org>
8591
8592         * python/dbus.py:
8593         * python/dbus_bindings.pyx.in:
8594
8595         Fix failure to notify that a signal was not handled,
8596         resulted in hung functions.
8597         
8598 2004-05-25  Colin Walters  <walters@redhat.com>
8599
8600         * tools/dbus-monitor.c (main): Monitor all types of messages.
8601
8602 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8603
8604         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8605         which unregisters the object path and disposes the handler.
8606
8607 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8608  
8609         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8610          
8611         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8612         operands to && so we call dbus_message_iter_next () for the last
8613         argument also.
8614
8615 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8616
8617         * dbus/dbus-object-tree.c
8618         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8619         children even if the requested path isn't registered.
8620         (object_tree_test_iteration): test object_tree_list_registered.
8621
8622         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8623         it to 0.
8624         
8625 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8626
8627         * doc/TODO: Remove resolved items.
8628
8629         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8630         field.
8631         
8632         * bus/connection.c (bus_connections_expect_reply): Enforce the
8633         per-connection limit on pending replies.
8634         
8635         Patch from Jon Trowbridge <trow@ximian.com>:
8636  
8637         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8638         up a watch that triggers a config reload when one end of the pipe
8639         becomes readable.
8640         (signal_handler): Instead of doing the config reload in our SIGHUP
8641         handler, just write to the reload pipe and let the associated
8642         watch handle the reload when control returns to the main loop.
8643  
8644         * bus/driver.c (bus_driver_handle_reload_config): Added.
8645         Implements a ReloadConfig method for requesting a configuration
8646         file reload via the bus driver.
8647  
8648 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8649
8650         * HACKING: Updated release instructions concerning the wiki page.
8651
8652 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8653
8654         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8655         filter against auth->allowed_mechs; we only add allowed mechs in
8656         record_mechanisms().
8657  
8658         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8659         ALLOWED_MECHS to auth-script format so we can set the list of
8660         allowed mechanisms.
8661  
8662         * data/auth/client-out-of-mechanisms.auth-script: New test to
8663         check client disconnects when it is out of mechanisms to try.
8664  
8665         * dbus/dbus-auth.c (process_command): Remove check for lines
8666         longer that 1 MB; we only buffer up maximum 16 kB.
8667  
8668         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8669         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8670         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8671         assume there might be unused bytes.
8672  
8673         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8674         client-out-of-mechs, it is handled in process_reject(). Move check
8675         for max failures to send_rejected(), as it's a server-only thing.
8676
8677         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8678         send_auth(), send_data(), send_rejected(), send_error(),
8679         send_ok(), send_begin() and send_cancel().
8680
8681 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8682
8683         Remove base64 encoding, replace with hex encoding. Original patch
8684         from trow@ximian.com, added error handling.
8685
8686         * dbus/dbus-string.c (_dbus_string_base64_encode)
8687         (_dbus_string_base64_decode): Remove.
8688         (_dbus_string_hex_decode): Add end_return argument so we can
8689         distinguish between OOM and invalid hex encoding.
8690         (_dbus_string_test): Remove base64 tests and add test case for
8691         invalid hex.
8692
8693         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8694         Replace base64 with hex.
8695
8696         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8697         for invalid hex encoded data in auth protocol.
8698
8699 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8700
8701         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8702         leak.
8703
8704 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8705
8706         * mono/dbus-sharp.dll.config.in: Added for GAC
8707         * mono/dbus-sharp.snk: Added for GAC
8708         * mono/Assembly.cs.in: Added for GAC
8709         * mono/Makefile.am: Changes for GAC installation        
8710         * configure.in: Added refs for dbus-sharp.dll.config.in and
8711         Assembly.cs.in. More fixes for mono testing
8712         * mono/example/Makefile.am: Changed var to CSC
8713         * Makefile.am: Changed flag name to DBUS_USE_CSC
8714
8715 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8716
8717         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8718         * mono/doc/*: Added documentation framework
8719         * configure.in: Added monodoc check
8720         * README: Added description of mono configure flags
8721
8722 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8723
8724         * doc/dbus-specification.xml: Added a "Required" column to the 
8725         header fields table and changed the "zero or more" verbage in
8726         the above paragraph to read "The header must contain the required 
8727         named header fields and zero or more of the optional named header 
8728         fields".
8729         * test/data/invalid-messages/*.message: Added the required PATH 
8730         named header field to the tests so that they don't fail on 
8731         'Missing path field'
8732
8733 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8734
8735         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8736         the stack by implicitly defining variable and parameter types and
8737         removing the hack of defining C pointers as python objects and later
8738         casting them.
8739
8740 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8741
8742         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8743
8744 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8745
8746         * mono/DBusType/Dict.cs: Handle empty dicts
8747         * mono/DBusType/Array.cs: Handle empty arrays
8748         * mono/Arguments.cs: Handle empty arguments
8749
8750 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8751
8752         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8753         field
8754
8755 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8756
8757         * test/data/valid-messages/standard-*.message: Update message
8758         test scripts to new header field names.
8759
8760 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8761
8762         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8763         overflow to times_we_did_each_thing array which would chop off the
8764         first character of the failure_dir string. Increased the size of
8765         the array to 7 to reflect the number of random mutation functions
8766         we have.
8767
8768 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8769
8770         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8771         unix_server->watch here, it is unreffed in disconnect.
8772         (_dbus_server_new_for_tcp_socket): convert NULL host to
8773         "localhost" here so we don't append NULL to address.
8774         
8775         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8776         various addresses, including tcp with no explicit host.
8777
8778 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8779
8780         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8781         fix incorrect setting of .name_offset in the HeaderField (it was
8782         off by two bytes, positioned right after the name and typecode)
8783
8784         * bus/bus.c (bus_context_new, bus_context_unref): test before
8785         calling dbus_server_free_data_slot and _dbus_user_database_unref
8786         in case of an error.
8787
8788         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8789         by libdbus-gtool.
8790
8791 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8792
8793         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8794         _dbus_poll() instead of select().
8795
8796 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8797
8798         * bus/main.c (signal_handler): Reload the configuration files
8799         on SIGHUP.
8800         (main): Set up our SIGHUP handler.
8801
8802         * bus/bus.c (struct BusContext): Store the config file, user and
8803         fork flag in the BusContext.
8804         (process_config_first_time_only): Added.  Contains the code
8805         (previously in bus_context_new) for setting up the BusContext from
8806         the BusConfigParser that should only be run the first time the
8807         config files are read.
8808         (process_config_every_time): Added.  Contains the code (previously
8809         in bus_context_new) for setting up the BusContext from the
8810         BusConfigParser that should be run every time the config files are
8811         read.
8812         (load_config): Added.  Builds a BusConfigParser from the config
8813         files and passes the resulting structure off to
8814         process_config_first_time_only (assuming this is the first time)
8815         and process_config_every_time.
8816         (bus_context_new): All of the config-related code has been moved
8817         to process_config_first_time_only and process_config_every_time.
8818         Now this function just does the non-config-related initializations
8819         and calls load_config.
8820         (bus_context_reload_config): Added.
8821
8822 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8823
8824         * bus/driver.c (bus_driver_handle_get_service_owner):
8825         implement a GetServiceOwner method.
8826         * doc/dbus-specification.xml: document it.
8827         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8828         
8829         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8830         implement, using the bus GetServiceOwner method.
8831
8832         * test/glib/test-dbus-glib.c:
8833         use dbus_gproxy_new_for_service_owner so that we can receive the
8834         signal. 
8835
8836 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8837
8838         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8839         dbus/dbus-message.c, dbus/dbus-protocol.h
8840         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8841
8842         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8843         dbus/dbus-message.c, dbus/dbus-protocol.h
8844         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8845
8846         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8847         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8848         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8849
8850         * doc/dbus-specification.xml (Header Fields Table):
8851         s/SERVICE/DESTINATION
8852         s/SENDER_SERVICE/SENDER
8853
8854
8855 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8856
8857         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8858         a few seconds.
8859
8860 2004-04-13  Michael Meeks  <michael@ximian.com>
8861
8862         * glib/dbus-gobject.c (handle_introspect): split out
8863         (introspect_properties): this.
8864         (handle_introspect): implement this.
8865
8866         * test/glib/Makefile.am: use the absolute path so the bus
8867         daemon's chdir ("/") doesn't kill us dead.
8868
8869         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8870
8871 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8872
8873         * bus/config-parser.c (struct BusConfigParser): Added
8874         included_files field.
8875         (seen_include): Added.  Checks whether or not a file has already
8876         been included by any parent BusConfigParser.
8877         (bus_config_parser_new): Copy the parent's included_files.
8878         (include_file): Track which files have been included, and fail on
8879         circular inclusions.
8880         (process_test_valid_subdir): Changed printf to report if we are
8881         testing valid or invalid conf files.
8882         (all_are_equiv): Changed printf to be a bit clearer about
8883         what we are actually doing.
8884         (bus_config_parser_test): Test invalid configuration files.
8885
8886 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8887
8888         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8889         argument.  If non-null, the newly-constructed BusConfigParser will
8890         be initialized with the parent's BusLimits instead of the default
8891         values.
8892         (include_file): When including a config file, pass in
8893         the current parser as the parent and then copy the BusLimits
8894         from the included BusConfigParser pack to the current parser.
8895         (process_test_valid_subdir): Renamed from process_test_subdir.
8896         (process_test_equiv_subdir): Added.  Walks through a directory,
8897         descending into each subdirectory and loading the config files
8898         it finds there.  If any subdirectory contains two config files
8899         that don't produce identical BusConfigParser structs, fail.
8900         For now, the BusConfigParser's BusPolicies are not compared.
8901         (bus_config_parser_test): Call both process_test_valid_subdir and
8902         process_test_equiv_subdir.
8903
8904         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8905         argument and pass it along to the call to bus_config_parser_new.
8906         Also made a few small changes to allow this code to compile.
8907
8908         * bus/config-loader-expat.c (bus_config_load): Take a parent
8909         argument and pass it along to the call to bus_config_parser_new.
8910
8911         * bus/bus.c (bus_context_new): Load the config file
8912         with a NULL parent argument.
8913
8914 2004-03-29  Michael Meeks  <michael@ximian.com>
8915
8916         * glib/dbus-gobject.c (introspect_properties): split
8917         out, fix mangled 'while' flow control.
8918         (introspect_signals): implement.
8919         (handle_introspect): update.
8920
8921 2004-03-29  Michael Meeks  <michael@ximian.com>
8922
8923         * glib/dbus-gobject.c (set_object_property): split out / 
8924         re-work, use the property type, and not the message type(!)
8925         (get_object_property): ditto.
8926
8927         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8928         (dbus_gvalue_marshal): make this code re-usable, needed
8929         for signals too, also on both proxy and server side.
8930         Re-write for more efficiency / readability.
8931
8932 2004-03-29  Michael Meeks  <michael@ximian.com>
8933
8934         * dbus/dbus-message.c
8935         (dbus_message_new_error_printf): impl.
8936
8937         * dbus/dbus-connection.c
8938         (dbus_connection_unregister_object_path): fix warning.
8939
8940         * configure.in: fix no-mono-installed situation.
8941
8942 2004-03-27  Havoc Pennington  <hp@redhat.com>
8943
8944         Patch from Timo Teräs:
8945         
8946         * tools/dbus-send.c (main): if --print-reply, assume type is
8947         method call; support boolean type args
8948         
8949         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8950         bunch of memleak and logic bugs
8951         
8952 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8953
8954         * mono/Arguments.cs:
8955         * mono/Introspector.cs:
8956         * mono/Handler.cs:
8957         * mono/InterfaceProxy.cs:
8958         * mono/Message.cs
8959         * mono/ProxyBuilder.cs:
8960         * mono/Service.cs:
8961         Added InterfaceProxy class to avoid building proxies for every
8962         object.
8963
8964         * dbus-message.h:
8965         * dbus-message.c (dbus_message_append_args_valist)
8966         (dbus_message_iter_get_object_path)
8967         (dbus_message_iter_get_object_path_array)
8968         (dbus_message_iter_append_object_path)
8969         (dbus_message_iter_append_object_path_array):
8970         Added object_path iter functions to handle OBJECT_PATH arguments
8971         
8972 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8973
8974         First checkin of mono bindings.
8975         * configure.in:
8976         * Makefile.am:
8977         Build stuff for the bindings
8978         * dbus-sharp.pc.in: Added for pkgconfig
8979         
8980 2004-03-21  Havoc Pennington  <hp@redhat.com>
8981
8982         * test/test-service.c (main): remove debug spew
8983
8984 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8985
8986         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8987         arrays
8988
8989         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8990         (dbus_message_iter_init_array_iterator)
8991         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8992         indicate whether the iterator is empty
8993
8994         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8995         warnings
8996
8997 2004-03-19  Havoc Pennington  <hp@redhat.com>
8998
8999         * NEWS: 0.21 updates
9000
9001         * configure.in: 0.21
9002
9003         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9004         
9005         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9006         you don't need pyrex to make dist
9007
9008         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9009         sources; run moc
9010         
9011 2004-03-18  Richard Hult  <richard@imendio.com>
9012
9013         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9014         (dbus_message_set_auto_activation): Add doxygen docs.
9015
9016 2004-03-16  Richard Hult  <richard@imendio.com>
9017
9018         * bus/activation.c: (bus_activation_service_created),
9019         (bus_activation_send_pending_auto_activation_messages),
9020         (bus_activation_activate_service):
9021         * bus/activation.h:
9022         * bus/dispatch.c: (bus_dispatch),
9023         (check_nonexistent_service_auto_activation),
9024         (check_service_auto_activated),
9025         (check_segfault_service_auto_activation),
9026         (check_existent_service_auto_activation), (bus_dispatch_test):
9027         * bus/driver.c: (bus_driver_handle_activate_service):
9028         * bus/services.c: (bus_registry_acquire_service):
9029         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9030         (dbus_message_get_auto_activation):
9031         * dbus/dbus-message.h:
9032         * dbus/dbus-protocol.h: Implement auto-activation.
9033         
9034         * doc/dbus-specification.xml: Add auto-activation to the spec.
9035
9036 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9037
9038         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9039         fix a bug with CUSTOM types.
9040
9041         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9042         a unit test for this bug (used to fail).
9043
9044 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9045
9046         * bus/activation.c:
9047         (babysitter_watch_callback): notify all pending activations waiting for
9048           the same exec that the activation failed.
9049         (bus_activation_activate_service): shortcut the activation if we 
9050           already waiting for the same executable to start up.
9051
9052 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9053
9054         * bus/activation.c: 
9055         - Added service file reloading. 
9056           Each service files directory is kept in an hash table in 
9057           BusActivation and each BusActivationEntry knows what .service-file it
9058           was read from. So when you try to activate a service the bus will 
9059           check if it's been updated, removed or if new .service-files has 
9060           been installed.
9061         - Test code at the bottom for the service file reloading.
9062         * bus/test-main.c: (main):
9063         * bus/test.h:
9064         - added service reloading test.
9065         * dbus/dbus-sysdeps.c: 
9066         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9067
9068 2004-03-08  Michael Meeks  <michael@ximian.com>
9069
9070         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9071         bail immediately if disconnected, to avoid busy loop.
9072
9073         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9074         cleanup cut/paste/inefficiency.
9075
9076 2004-03-01  David Zeuthen  <david@fubar.dk>
9077
9078         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9079         bug where args were used twice. This bug resulted in a segfault
9080         on a Debian/PPC system when starting the messagebus daemon. Include
9081         dbus-sysdeps.h for DBUS_VA_COPY
9082
9083         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9084
9085         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9086         appropriate va_copy implementation. From GLib
9087         
9088 2004-02-24  Joe Shaw  <joe@ximian.com>
9089
9090         * bus/services.c (bus_registry_acquire_service): We need to pass
9091         in the service name to dbus_set_error() to prevent a crash.
9092
9093 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9094
9095         * AUTHORS: Reveal my True identity.
9096
9097 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9098
9099         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9100         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9101
9102 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9103
9104         * doc/TODO: Added not about better error check of configuration files.
9105
9106 2003-12-02  Richard Hult  <richard@imendio.com>
9107
9108         * Update AFL version to 2.0 throughout the source files to reflect
9109         the update that was done a while ago.
9110
9111 2003-12-02  Richard Hult  <richard@imendio.com>
9112
9113         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9114         wrote_dict_key to FALSE on the iter that the dict is appended to,
9115         just like when appending other types. Fixes a bug where a dict
9116         couldn't be put inside a dict.
9117         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9118         (message_iter_test, _dbus_message_test): Add test case for dict
9119         inside dict.
9120
9121 2003-12-01  David Zeuthen  <david@fubar.dk>
9122
9123         * python/dbus.py: Add the actual message when calling the reciever
9124         of a signal such that parameters can be inspected. Add the method
9125         remove_signal_receiver
9126         
9127 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9128
9129         * bus/*.[ch]:
9130         * dbus/*.[ch]:
9131         * glib/*.[ch]: Made ref functions return the pointer
9132
9133 2003-11-25  Zack Rusin  <zack@kde.org>
9134
9135         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9136
9137         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9138         wrappers,
9139
9140         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9141         the Integrator and to better fit with the server,
9142
9143 2003-11-24  Zack Rusin  <zack@kde.org>
9144
9145         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9146         the integrator handles it now
9147
9148         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9149         since QTimer wasn't really meant to be used the way DBusTimeout is
9150
9151 2003-11-24  Zack Rusin  <zack@kde.org>
9152
9153         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9154         Integrator class which integrates D-BUS with the Qt event loop,
9155
9156         * qt/connection.h, qt/connection.cpp: Move all the code which
9157         was dealing with D-BUS integration to the Integrator class,
9158         and start using Integrator,
9159
9160 2003-11-23  Zack Rusin  <zack@kde.org>
9161
9162         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9163         wrapper
9164
9165         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9166         switching namespaces to DBusQt, reworking the class,
9167
9168         * Makefile.cvs: switching dependencies so that it matches KDE 
9169         schematics,
9170         
9171         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9172         the library
9173
9174 2003-11-19  Havoc Pennington  <hp@redhat.com>
9175
9176         * NEWS: update
9177
9178         * configure.in: bump version to 0.20
9179
9180         * configure.in (have_qt): add yet another place to look for qt
9181         (someone hand trolltech a .pc file...)
9182
9183 2003-11-01  Havoc Pennington  <hp@redhat.com>
9184
9185         * doc/dbus-specification.xml: add state machine docs on the auth
9186         protocol; just a first draft, I'm sure it's wrong.      
9187
9188 2003-10-28  David Zeuthen  <david@fubar.dk>
9189
9190         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9191         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9192         
9193 2003-10-28  Havoc Pennington  <hp@redhat.com>
9194
9195         * dbus/dbus-message.c (get_next_field): delete unused function
9196
9197 2003-10-28  Havoc Pennington  <hp@redhat.com>
9198
9199         * bus/expirelist.c (do_expiration_with_current_time): detect
9200         failure of the expire_func due to OOM
9201
9202         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9203
9204         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9205         NoReply error that's now created by the bus when the service exits
9206
9207 2003-10-28  Havoc Pennington  <hp@redhat.com>
9208
9209         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9210         tests for set_path, set_interface, set_member, etc.
9211
9212         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9213
9214         * dbus/dbus-message.c (set_string_field): always just delete and
9215         re-append the field; accept NULL for deletion
9216         (re_align_fields_recurse): reimplement
9217         
9218 2003-10-26  Havoc Pennington  <hp@redhat.com>
9219
9220         * dbus/dbus-connection.c: fix docs to properly describe the
9221         disconnected message
9222         (_dbus_connection_notify_disconnected): remove this function; 
9223         we can't synchronously add the disconnected message, we have to 
9224         do it after we've queued any remaining real messages
9225         (_dbus_connection_get_dispatch_status_unlocked): queue the
9226         disconnect message only if the transport has finished queueing all
9227         its real messages and is disconnected.
9228         (dbus_connection_disconnect): update the dispatch status here
9229
9230 2003-10-22  Havoc Pennington  <hp@redhat.com>
9231
9232         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9233
9234         * bus/connection.c (bus_transaction_send_from_driver): set the
9235         destination to the connection's base service
9236
9237 2003-10-20  Havoc Pennington  <hp@redhat.com>
9238
9239         hmm, make check is currently not passing.
9240         
9241         * doc/dbus-specification.xml: add requirement that custom type
9242         names follow the same rules as interface names.
9243
9244         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9245         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9246         'map'
9247
9248         * doc/dbus-specification.xml: update type codes to match
9249         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9250         CUSTOM. Add type OBJECT_PATH to the spec.
9251
9252 2003-10-17  Havoc Pennington  <hp@redhat.com>
9253
9254         * bus/driver.c (create_unique_client_name): use "." as separator
9255         in base service names instead of '-'
9256
9257         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9258         byte at the end of the string
9259
9260         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9261         optimization macros since string validation seems to be a slow
9262         point.
9263         
9264         * doc/dbus-specification.xml: restrict valid
9265         service/interface/member/error names. Add test suite code for the
9266         name validation.
9267
9268         * dbus/dbus-string.c: limit service/interface/member/error names 
9269         to [0-9][A-Z][a-z]_
9270
9271         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9272         format arg to verbose spew
9273
9274         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9275         memory, return instead of g_error
9276
9277         * test/test-service.c (path_message_func): support emitting a
9278         signal on request
9279
9280         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9281         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9282         assuming the activation bus was the session bus so that services
9283         started manually will still register.
9284         (init_connections_unlocked): fix so that in OOM situation we get
9285         the same semantics when retrying the function
9286         
9287         * test/test-service.c (main): change to use path registration, to
9288         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9289         than DBUS_BUS_SESSION
9290
9291 2003-10-16  Havoc Pennington  <hp@redhat.com>
9292
9293         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9294
9295         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9296         coverage of the tests
9297         (coverage-report.txt): don't move the .da and .bbg files around
9298
9299 2003-10-16  Havoc Pennington  <hp@redhat.com>
9300
9301         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9302         to put there
9303
9304 2003-10-16  Havoc Pennington  <hp@redhat.com>
9305
9306         * bus/connection.c (bus_pending_reply_expired): either cancel or
9307         execute, not both
9308         (bus_connections_check_reply): use unlink, not remove_link, as we
9309         don't want to free the link; fixes double free mess
9310
9311         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9312         where no reply was received
9313
9314         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9315         fix a refcount leak
9316
9317         * bus/signals.c (match_rule_matches): add special cases for the
9318         bus driver, so you can match on sender/destination for it.
9319
9320         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9321         DBUS_PRINT_BACKTRACE is set
9322
9323         * dbus/dbus-internals.c: add pid to assertion failure messages
9324
9325         * dbus/dbus-connection.c: add message type code to the debug spew
9326
9327         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9328         sender=foo not service=foo
9329
9330         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9331         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9332         DBUS_ACTIVATION_ADDRESS instead
9333
9334         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9335         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9336
9337         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9338         context struct
9339
9340         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9341         (dbus_message_iter_get_object_path_array): new function (half
9342         finished, disabled for the moment)
9343         
9344         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9345         DBUS_MESSAGE_TYPE_ERROR
9346
9347         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9348         avoid redirecting stderr to /dev/null
9349         (babysit): close stdin if not doing the "exit_with_session" thing
9350
9351         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9352         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9353         stdout/stdin, so things don't get confused
9354         
9355         * bus/system.conf.in: fix to allow replies, I modified .conf
9356         instead of .conf.in again.
9357
9358 2003-10-14  David Zeuthen  <david@fubar.dk>
9359
9360         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9361         argtype to arg_type when raising unknown arg type exception.
9362         Changed type list to reflect the changes in dbus-protocol.h so 
9363         the bindings actually work.
9364
9365 2003-10-14  Havoc Pennington  <hp@redhat.com>
9366
9367         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9368         to have a bug keeping it from outputting the .da files sometimes
9369         (string_get_string): don't append garbage nul bytes to the string.
9370
9371 2003-10-15  Seth Nickell  <seth@gnome.org>
9372
9373         * python/Makefile.am:
9374
9375         Include dbus_h_wrapper.h in the dist tarball.
9376
9377 2003-10-14  Havoc Pennington  <hp@redhat.com>
9378
9379         * bus/bus.c (bus_context_check_security_policy): revamp this to
9380         work more sanely with new policy-based requested reply setup
9381
9382         * bus/connection.c (bus_transaction_send_from_driver): set bus
9383         driver messages as no reply
9384
9385         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9386         requested_reply attribute on allow/deny rules
9387
9388         * bus/system.conf: add <allow requested_reply="true"/>
9389
9390         * bus/driver.c (bus_driver_handle_message): fix check for replies
9391         sent to the bus driver, which was backward. How did this ever work
9392         at all though? I think I'm missing something.
9393
9394         * dbus/dbus-message.c (decode_header_data): require error and
9395         method return messages to have a reply serial field to be valid
9396         (_dbus_message_loader_queue_messages): break up this function;
9397         validate that reply serial and plain serial are nonzero; 
9398         clean up the OOM/error handling.
9399         (get_uint_field): don't return -1 from this
9400         (dbus_message_create_header): fix signed/unsigned bug
9401
9402         * bus/connection.c (bus_connections_expect_reply): save serial of
9403         the incoming message, not reply serial
9404
9405 2003-10-14  Havoc Pennington  <hp@redhat.com>
9406
9407         * bus/connection.c: implement pending reply tracking using
9408         BusExpireList
9409
9410         * bus/bus.c (bus_context_check_security_policy): verify that a
9411         reply is pending in order to allow a reply to be sent. Deny 
9412         messages of unknown type.
9413
9414         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9415
9416         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9417         (bus_context_get_reply_timeout): new
9418
9419 2003-10-13  Seth Nickell  <seth@gnome.org>
9420
9421         * python/Makefile.am:
9422
9423         Pass "make distcheck": remove a couple files from DIST_FILES
9424         that weren't included in the final version.
9425
9426 2003-10-12  Havoc Pennington  <hp@pobox.com>
9427
9428         Added test code that 1) starts an actual bus daemon and 2) uses
9429         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9430         more testing possible, but this is the basic framework.
9431         
9432         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9433         empty proxy lists from the proxy list hash
9434
9435         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9436         couple of return_if_fail checks
9437
9438         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9439         to allocate, so everything is cleared to NULL as it should be.
9440
9441         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9442         source as data to dbus_connection_set_timeout_functions() as the 
9443         timeout functions expected
9444
9445         * test/glib/run-test.sh: add a little script to start up a message
9446         bus and run tests using it
9447
9448         * tools/dbus-launch.1: updates
9449
9450         * tools/dbus-launch.c (main): add --config-file option
9451
9452         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9453         that could never be reached.
9454
9455         * dbus/dbus-message.c (dbus_message_new_method_return) 
9456         (dbus_message_new_error, dbus_message_new_signal): set the
9457         no-reply-expected flag on all these. Redundant, but may
9458         as well be consistent.
9459
9460 2003-10-11  Havoc Pennington  <hp@pobox.com>
9461
9462         * test/decode-gcov.c (function_solve_graph): make broken block
9463         graph a nonfatal error since it seems to be broken. Need to debug
9464         this.
9465
9466         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9467         can't just check type > INVALID < LAST anymore
9468
9469         * dbus/dbus-message.c (dbus_message_get_signature): new function
9470         (dbus_message_has_signature): new function
9471         (struct DBusMessage): add signature field (right now it isn't sent
9472         over the wire, just generated on the fly)
9473         (dbus_message_copy): copy the signature, and init strings to
9474         proper length to avoid some reallocs
9475         (dbus_message_iter_init_array_iterator): return void, since it
9476         can't fail
9477         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9478         (_dbus_message_loader_queue_messages): add silly temporary hack to
9479         fill in message->signature on load
9480
9481         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9482         characters, so they are relatively human-readable.
9483
9484 2003-10-11  Havoc Pennington  <hp@pobox.com>
9485
9486         * dbus/dbus-message.c (_dbus_message_test): add more test
9487         coverage, but #if 0 for now since they uncover a bug 
9488         not fixed yet; I think in re_align_field_recurse()
9489         (re_align_field_recurse): add FIXME about broken assertion
9490
9491         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9492
9493         * bus/connection.c: share a couple code bits with expirelist.c
9494
9495         * bus/expirelist.h, bus/expirelist.c: implement a generic
9496         expire-items-after-N-seconds facility, was going to share between
9497         expiring connections and replies, decided not to use for expiring
9498         connections for now.
9499
9500         * COPYING: include AFL 2.0 (still need to change all the file headers)
9501
9502 2003-10-09  Havoc Pennington  <hp@redhat.com>
9503
9504         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9505         gcc 3.3. Not that we do anything about it yet.
9506
9507         * bus/signals.c (bus_match_rule_parse): impose max length on the
9508         match rule text
9509
9510         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9511
9512 2003-10-09  Havoc Pennington  <hp@redhat.com>
9513
9514         Make matching rules theoretically work (add parser).
9515         
9516         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9517         the case where destination is explicitly specified as bus driver
9518         and someone else is eavesdropping.
9519         
9520         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9521         definition of eavesdropping and assertion
9522
9523         * tools/dbus-send.c (main): use dbus_message_type_from_string
9524
9525         * bus/signals.c (bus_match_rule_parse): implement
9526
9527         * dbus/dbus-message.c (dbus_message_type_from_string): new
9528
9529         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9530
9531 2003-10-02  Havoc Pennington  <hp@pobox.com>
9532
9533         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9534         dbus_gproxy_oneway_call
9535
9536         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9537         (dbus_server_setup_with_g_main): fix to allow calling them more
9538         than once on the same args
9539         (dbus_bus_get_with_g_main): new function
9540
9541 2003-10-02  Havoc Pennington  <hp@redhat.com>
9542
9543         * doc/dbus-tutorial.xml: write some stuff
9544
9545 2003-09-29  Havoc Pennington  <hp@pobox.com>
9546
9547         * configure.in: split checks for Doxygen from XML docs, check for
9548         xmlto
9549
9550         * doc/Makefile.am: XML-ify all the docs, and add a blank
9551         dbus-tutorial.xml
9552
9553 2003-09-29  Havoc Pennington  <hp@pobox.com>
9554
9555         * Merge dbus-object-names branch. To see the entire patch 
9556         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9557         it's huuuuge though.
9558         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9559         
9560 2003-09-28  Havoc Pennington  <hp@pobox.com>
9561
9562         * HACKING: update to reflect new server
9563
9564 2003-09-26  Seth Nickell  <seth@gnome.org>
9565
9566         * python/dbus.py:
9567         * python/examples/example-signals.py:
9568
9569         Start implementing some notions of signals. The API
9570         is really terrible, but they sort of work (with the
9571         exception of being able to filter by service, and to
9572         transmit signals *as* a particular service). Need to
9573         figure out how to make messages come from the service
9574         we registered :-(
9575         
9576         * python/dbus_bindings.pyx.in:
9577
9578         Removed duplicate message_handler callbacks.
9579         
9580 2003-09-25  Havoc Pennington  <hp@redhat.com>
9581
9582         * bus/session.conf.in: fix my mess
9583
9584 2003-09-25  Havoc Pennington  <hp@pobox.com>
9585
9586         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9587
9588 2003-09-25  Seth Nickell  <seth@gnome.org>
9589
9590         * python/examples/example-service.py:
9591
9592         Johan notices complete wrong code in example-service, but
9593         completely wrong in a way that works exactly the same (!).
9594         Johan is confused, how could this possibly work? Example
9595         code fails to serve purpose of making things clear.
9596         Seth fixes.
9597
9598 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9599
9600         * doc/dbus-specification.sgml: don't require header fields
9601         to be 4-byte aligned and specify that fields should be
9602         distinguished from padding by the fact that zero is not
9603         a valid field name.
9604         
9605         * doc/TODO: remove re-alignment item and add item to doc
9606         the OBJECT_PATH type.
9607         
9608         * dbus/dbus-message.c:
9609         (HeaderField): rename the original member to value_offset
9610         and introduce a name_offset member to keep track of where
9611         the field actually begins.
9612         (adjust_field_offsets): remove.
9613         (append_int_field), (append_uint_field),
9614         (append_string_field): don't align the start of the header
9615         field to a 4-byte boundary.
9616         (get_next_field): impl finding the next marhsalled field
9617         after a given field.
9618         (re_align_field_recurse): impl re-aligning a number of
9619         already marshalled fields.
9620         (delete_field): impl deleting a field of any type and
9621         re-aligning any following fields.
9622         (delete_int_or_uint_field), (delete_string_field): remove.
9623         (set_int_field), (set_uint_field): no need to re-check
9624         that we have the correct type for the field.
9625         (set_string_field): ditto and impl re-aligning any
9626         following fields.
9627         (decode_header_data): update to take into account that
9628         the fields aren't 4-byte aligned any more and the new
9629         way to distinguish padding from header fields. Also,
9630         don't exit when there is too much header padding.
9631         (process_test_subdir): print the directory.
9632         (_dbus_message_test): add test to make sure a following
9633         field is re-aligned correctly after field deletion.
9634         
9635         * dbus/dbus-string.[ch]:
9636         (_dbus_string_insert_bytes): rename from insert_byte and
9637         allow the insert of multiple bytes.
9638         (_dbus_string_test): test inserting multiple bytes.
9639
9640         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9641         warning note to docs about having to re-align any
9642         marshalled values following the string.
9643         
9644         * dbus/dbus-message-builder.c:
9645         (append_string_field), (_dbus_message_data_load):
9646         don't align the header field.
9647         
9648         * dbus/dbus-auth.c: (process_test_subdir): print the
9649         directory.
9650         
9651         * test/break-loader.c: (randomly_add_one_byte): upd. for
9652         insert_byte change.
9653         
9654         * test/data/invalid-messages/bad-header-field-alignment.message:
9655         new test case.
9656         
9657         * test/data/valid-messages/unknown-header-field.message: shove
9658         a dict in the unknown field.
9659
9660 2003-09-25  Seth Nickell  <seth@gnome.org>
9661
9662         * python/dbus.py:
9663         * python/dbus_bindings.pyx.in:
9664
9665         Handle return values.
9666         
9667         * python/examples/example-client.py:
9668         * python/examples/example-service.py:
9669
9670         Pass back return values from the service to the client.
9671         
9672 2003-09-24  Seth Nickell  <seth@gnome.org>
9673
9674         * python/dbus.py:
9675
9676         Connect Object methods (when you are sharing an object) up... pass
9677         in a list of methods to be shared. Sharing all the methods just
9678         worked out too weird. You can now create nice Services over the
9679         DBus in Python. :-)
9680         
9681         * python/dbus_bindings.pyx.in:
9682
9683         Keep references to user_data tuples passed into C functions so 
9684         Python doesn't garbage collect on us.
9685
9686         Implement MethodReturn and Error subclasses of Message for creating
9687         DBusMessage's of those types.
9688         
9689         * python/examples/example-client.py:
9690         * python/examples/example-service.py:
9691
9692         Simple example code showing both how create DBus services and objects,
9693         and how to use them.
9694
9695 2003-09-23  Havoc Pennington  <hp@pobox.com>
9696
9697         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9698
9699 2003-09-23  Havoc Pennington  <hp@redhat.com>
9700
9701         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9702         (dbus_gproxy_disconnect_signal): implement
9703         (dbus_gproxy_manager_remove_signal_match): implement
9704         (dbus_gproxy_manager_add_signal_match): implement
9705         (dbus_gproxy_oneway_call): implement
9706
9707 2003-09-23  Havoc Pennington  <hp@pobox.com>
9708
9709         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9710         subclass. This means dropping the transparent thread safety of the
9711         proxy; you now need a separate proxy per-thread, or your own
9712         locking on the proxy. Probably right anyway.
9713         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9714
9715 2003-09-22  Havoc Pennington  <hp@redhat.com>
9716
9717         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9718
9719 2003-09-21  Seth Nickell  <seth@gnome.org>
9720
9721         First checkin of the Python bindings.
9722         
9723         * python/.cvsignore:
9724         * python/Makefile.am:
9725         * python/dbus_bindings.pyx.in:
9726         * python/dbus_h_wrapper.h:
9727
9728         Pieces for Pyrex to operate on, building a dbus_bindings.so
9729         python module for low-level access to the DBus APIs.
9730         
9731         * python/dbus.py:
9732
9733         High-level Python module for accessing DBus objects.
9734
9735         * configure.in:
9736         * Makefile.am:
9737
9738         Build stuff for the python bindings.
9739
9740         * acinclude.m4:
9741
9742         Extra macro needed for finding the Python C header files.
9743
9744 2003-09-21  Havoc Pennington  <hp@pobox.com>
9745
9746         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9747         implementing the proxy manager, didn't get very far.
9748
9749         * dbus/dbus-bus.c (dbus_bus_add_match): new
9750         (dbus_bus_remove_match): new
9751
9752         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9753         path_name argument; adjust the other not-yet-implemented 
9754         gproxy constructors to be what I think they should be.
9755
9756 2003-09-21  Havoc Pennington  <hp@pobox.com>
9757
9758         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9759         by default for message bus connections.
9760
9761         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9762         exit_on_disconnect flag is set and we process the disconnected
9763         signal.
9764         (dbus_connection_set_exit_on_disconnect): new function
9765
9766 2003-09-21  Havoc Pennington  <hp@pobox.com>
9767
9768         Get matching rules mostly working in the bus; only actually
9769         parsing the rule text remains. However, the client side of
9770         "signal connections" hasn't been started, this patch is only the
9771         bus side.
9772         
9773         * dbus/dispatch.c: fix for the matching rules changes
9774         
9775         * bus/driver.c (bus_driver_handle_remove_match)
9776         (bus_driver_handle_add_match): send an ack reply from these
9777         method calls
9778
9779         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9780         arguments, reported by Seth Nickell
9781
9782         * bus/config-parser.c (append_rule_from_element): support
9783         eavesdrop=true|false attribute on policies so match rules 
9784         can be prevented from snooping on the system bus.
9785
9786         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9787         and "destination" in attribute names; fix some docs bugs; 
9788         add eavesdrop=true|false attribute
9789
9790         * bus/driver.c (bus_driver_handle_add_match)
9791         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9792         messages
9793
9794         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9795         rid of broadcast service concept, signals are just always broadcast
9796
9797         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9798         mostly implement matching rules stuff (currently only exposed as signal
9799         connections)
9800
9801 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9802
9803         * doc/dbus-specification.sgml: Change the header field name
9804         to be an enum and update the rest of the spec to reference
9805         the fields using the conventinal name.
9806
9807         * dbus/dbus-protocol.h: update to reflect the spec.
9808
9809         * doc/TODO: add item to remove the 4 byte alignment requirement.
9810         
9811         * dbus/dbus-message.c: Remove the code to generalise the
9812         header/body length and serial number header fields as named
9813         header fields so we can reference field names using the 
9814         protocol values.
9815         (append_int_field), (append_uint_field), (append_string_field):
9816         Append the field name as a byte rather than four chars.
9817         (delete_int_or_uint_field), (delete_string_field): reflect the
9818         fact that the field name and typecode now occupy 4 bytes instead
9819         of 8.
9820         (decode_string_field), (decode_header_data): update to reflect
9821         protocol changes and move the field specific encoding from
9822         decode_string_field() back into decode_header_data().
9823         
9824         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9825         Add utility to aid debugging.
9826         
9827         * dbus/dbus-message-builder.c:
9828         (append_string_field), (_dbus_message_data_load): Update to
9829         reflect protocol changes; Change the FIELD_NAME directive
9830         to HEADER_FIELD and allow it to take the field's conventional
9831         name rather than the actual value.
9832         
9833         * test/data/*/*.message: Update to use HEADER_FIELD instead
9834         of FIELD_NAME; Always align the header on an 8 byte boundary
9835         *before* updating the header length.
9836
9837 2003-09-15  Havoc Pennington  <hp@pobox.com>
9838
9839         * dbus/dbus-pending-call.c: add the get/set object data
9840         boilerplate as for DBusConnection, etc. Use generic object data
9841         for the notify callback.
9842
9843         * glib/dbus-gparser.c (parse_node): parse child nodes
9844
9845         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9846         
9847         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9848         contain functions shared between the convenience lib and the
9849         installed lib
9850
9851         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9852         -export-symbols-regex to the GLib library
9853
9854         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9855         fix the locking in here, and add a default handler for
9856         Introspect() that just returns sub-nodes.
9857
9858 2003-09-14  Havoc Pennington  <hp@pobox.com>
9859
9860         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9861         rather than gfoo consistent
9862
9863         * glib/dbus-gproxy.h: delete for now, move contents to
9864         dbus-glib.h, because the include files don't work right since we
9865         aren't in the dbus/ subdir.
9866         
9867         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9868         (dbus_gproxy_end_call): finish
9869         (dbus_gproxy_begin_call): finish
9870
9871         * glib/dbus-gmain.c (dbus_set_g_error): new
9872
9873         * glib/dbus-gobject.c (handle_introspect): include information
9874         about child nodes in the introspection
9875
9876         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9877         function to help in implementation of introspection
9878
9879         * dbus/dbus-object-tree.c
9880         (_dbus_object_tree_list_registered_and_unlock): new function
9881
9882 2003-09-12  Havoc Pennington  <hp@pobox.com>
9883
9884         * glib/dbus-gidl.h: add common base class for all the foo_info
9885         types
9886
9887         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9888         similar to kdcop
9889
9890         * test/Makefile.am: try test srcdir -ef . in addition to test
9891         srcdir = ., one of them should work (yeah lame)
9892         
9893         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9894         library
9895         
9896         * glib/dbus-gparser.h: make description_load routines return
9897         NodeInfo* not Parser*
9898
9899         * Makefile.am (SUBDIRS): build test dir after all library dirs
9900
9901         * configure.in: add GTK+ detection
9902
9903 2003-09-07  Havoc Pennington  <hp@pobox.com>
9904
9905         * Make Doxygen contented.
9906
9907 2003-09-07  Havoc Pennington  <hp@pobox.com>
9908
9909         * doc/dbus-specification.sgml: more updates
9910
9911 2003-09-06  Havoc Pennington  <hp@pobox.com>
9912
9913         * doc/dbus-specification.sgml: partial updates
9914
9915         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9916         zillionth time; hopefully I edited the right file this time.
9917
9918         * bus/config-parser.c (append_rule_from_element): support
9919         send_type, send_path, receive_type, receive_path
9920
9921         * bus/policy.c: add message type and path to the list of things
9922         that can be "firewalled"
9923
9924 2003-09-06  Havoc Pennington  <hp@pobox.com>
9925
9926         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9927         (dbus_connection_register_object_path): make this not handle
9928         messages to paths below the given path
9929
9930 2003-09-03  Havoc Pennington  <hp@pobox.com>
9931
9932         * test/glib/Makefile.am: add this with random glib-linked test
9933         programs
9934
9935         * glib/Makefile.am: remove the random test programs from here,
9936         leave only the unit tests
9937
9938         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9939         uscore/javacaps conversion, and fix     
9940         (get_object_property, set_object_property): change to .NET
9941         convention for mapping props to methods, set_FooBar/get_FooBar, 
9942         since one language has such a convention we may as well copy it. 
9943         Plus real methods in either getFooBar or get_foo_bar style won't 
9944         collide with this convention.
9945
9946 2003-09-01  Havoc Pennington  <hp@pobox.com>
9947
9948         * glib/dbus-gparser.c: implement
9949
9950         * glib/dbus-gobject.c: start implementing skeletons support
9951
9952         * configure.in: when disabling checks/assert, also define
9953         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9954
9955 2003-09-01  Havoc Pennington  <hp@pobox.com>
9956
9957         * glib/Makefile.am: rearrange a bunch of files and get "make
9958         check" framework set up
9959
9960 2003-08-31  Havoc Pennington  <hp@pobox.com>
9961
9962         * fix build with --disable-tests
9963
9964 2003-08-30  Havoc Pennington  <hp@pobox.com>
9965
9966         * dbus/dbus-connection.c: purge DBusMessageHandler
9967
9968         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9969         use callbacks everywhere
9970
9971 2003-08-30  Havoc Pennington  <hp@pobox.com>
9972
9973         * test/data/valid-config-files/system.d/test.conf: change to 
9974         root for the user so warnings don't get printed
9975
9976         * dbus/dbus-message.c: add dbus_message_get_path,
9977         dbus_message_set_path
9978         
9979         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9980         dispatching to a path
9981
9982         * dbus/dbus-string.c (_dbus_string_validate_path): add
9983
9984         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9985         (_dbus_marshal_object_path): implement
9986
9987         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9988         to contain the path to the target object
9989         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9990         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9991
9992 2003-08-30  Havoc Pennington  <hp@pobox.com>
9993
9994         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9995
9996 2003-08-29  Havoc Pennington  <hp@pobox.com>
9997
9998         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9999         registered
10000         (struct DBusObjectSubtree): shrink this
10001         a lot, since we may have a lot of them
10002         (_dbus_object_tree_free_all_unlocked): implement
10003         (_dbus_object_tree_dispatch_and_unlock): implement
10004
10005 2003-08-29  Havoc Pennington  <hp@pobox.com>
10006
10007         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10008
10009 2003-08-28  Havoc Pennington  <hp@pobox.com>
10010
10011         purge DBusObjectID
10012         
10013         * dbus/dbus-connection.c: port to no ObjectID, create a
10014         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10015
10016         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10017         everything except UnregisterFunction and MessageFunction
10018         
10019         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10020         add DBUS_TYPE_OBJECT_PATH
10021         
10022         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10023         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10024         path-based object IDs
10025
10026 2003-08-25  Havoc Pennington  <hp@pobox.com>
10027
10028         Just noticed that dbus_message_test is hosed, I wonder when I
10029         broke that. I thought make check was passing earlier...
10030         
10031         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10032         container tree, will replace most of dbus-object-registry
10033
10034         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10035         screwup
10036
10037 2003-08-19  Havoc Pennington  <hp@pobox.com>
10038
10039         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10040         (dbus_message_is_error): fix this function
10041
10042         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10043         match
10044
10045         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10046         reflect clarified man page
10047         (bus_client_policy_check_can_send): ditto
10048         
10049         * bus/session.conf.in: fixup
10050
10051         * bus/system.conf.in: fixup
10052
10053 2003-08-18  Havoc Pennington  <hp@redhat.com>
10054
10055         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10056
10057         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10058         dumb bug created earlier (wrong order of args to
10059         decode_header_data())
10060         
10061         * tools/dbus-send.c: port
10062
10063         * tools/dbus-print-message.c (print_message): port
10064
10065         * test/data/*messages: port all messages over
10066         
10067         * dbus/dbus-message-builder.c: support including 
10068         message type
10069         
10070         * bus/driver.c: port over
10071         
10072         * bus/dispatch.c: port over to new stuff
10073
10074         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10075         rename disconnect signal to "Disconnected"
10076
10077 2003-08-17  Havoc Pennington  <hp@pobox.com>
10078
10079         This doesn't compile yet, but syncing up so I can hack on it from
10080         work. What are branches for if not broken code? ;-)
10081         
10082         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10083         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10084         DBUS_HEADER_FIELD_ERROR_NAME
10085         
10086         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10087         for the interface+member pairs
10088         (string_hash): change to use g_str_hash algorithm
10089         (find_direct_function, find_string_function): refactor these to
10090         share most code.
10091         
10092         * dbus/dbus-message.c: port all of this over to support 
10093         interface/member fields instead of name field
10094
10095         * dbus/dbus-object-registry.c: port over
10096         
10097         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10098         from _dbus_string_validate_name
10099
10100         * bus/dbus-daemon-1.1: change file format for the 
10101         <deny>/<allow> stuff to match new message naming scheme
10102
10103         * bus/policy.c: port over
10104
10105         * bus/config-parser.c: parse new format
10106         
10107 2003-08-16  Havoc Pennington  <hp@pobox.com>
10108
10109         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10110         broken assertion
10111
10112         * glib/dbus-gproxy.c: some hacking
10113
10114 2003-08-15  Havoc Pennington  <hp@redhat.com>
10115
10116         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10117
10118         * dbus/dbus-connection.c
10119         (dbus_connection_send_with_reply_and_block): factor out internals;
10120         change to convert any error replies to DBusError instead of 
10121         returning them as a message
10122
10123 2003-08-15  Havoc Pennington  <hp@pobox.com>
10124
10125         * dbus/dbus-connection.c, 
10126         dbus/dbus-pending-call.c: Finish the pending call stuff
10127
10128 2003-08-14  Havoc Pennington  <hp@redhat.com>
10129
10130         * dbus/dbus-pending-call.c: start on new object that will replace
10131         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10132         replies
10133
10134         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10135         with remote interfaces
10136
10137         * dbus/dbus-gidl.c: do the boring boilerplate in here
10138         
10139 2003-08-12  Havoc Pennington  <hp@pobox.com>
10140
10141         * bus/dispatch.c (bus_dispatch): make this return proper 
10142         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10143
10144         * dbus/dbus-errors.c (dbus_set_error): use
10145         _dbus_string_append_printf_valist
10146
10147         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10148         (_dbus_string_append_printf): new
10149
10150         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10151         UNKNOWN_METHOD
10152
10153         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10154         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10155         message is unhandled.
10156
10157 2003-08-11  Havoc Pennington  <hp@pobox.com>
10158
10159         * bus/test.c (client_disconnect_handler): change to return
10160         HANDLED (would have been REMOVE_MESSAGE)
10161
10162         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10163         HANDLED/NOT_YET_HANDLED instead of
10164         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10165         should be used.
10166
10167 2003-08-10  Havoc Pennington  <hp@pobox.com>
10168
10169         * tools/dbus-send.c (main): add --type argument, for now
10170         supporting only method_call and signal types.
10171
10172         * tools/dbus-print-message.c: print message type
10173
10174         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10175         init connection->objects
10176
10177         * doc/dbus-specification.sgml: fix sgml
10178
10179         * bus/*.c: port over to object-instance API changes
10180
10181         * test/test-service.c: ditto
10182         
10183         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10184         name, we will have to fix up the rest of the code to also handle
10185         this
10186         (dbus_message_new): generic message-creation call
10187         (set_string_field): allow appending name field
10188
10189 2003-08-06  Havoc Pennington  <hp@pobox.com>
10190
10191         * dbus/dbus-object-registry.c: implement signal connection 
10192         and dispatch
10193
10194         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10195
10196         * dbus/dbus-internals.c (_dbus_memdup): new function
10197
10198 2003-08-02  Havoc Pennington  <hp@pobox.com>
10199
10200         * dbus/dbus-message.c (dbus_message_get_no_reply)
10201         (dbus_message_set_no_reply): add these and remove
10202         set_is_error/get_is_error
10203
10204         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10205         remove the ERROR flag, since there's now an ERROR type
10206
10207 2003-08-01  Havoc Pennington  <hp@pobox.com>
10208
10209         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10210         implement
10211
10212         * dbus/dbus-message.c (dbus_message_get_type): new function
10213
10214         * doc/dbus-specification.sgml: add "type" byte to messages
10215
10216 2003-08-01  Havoc Pennington  <hp@pobox.com>
10217
10218         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10219         a message type enum to distinguish kinds of message
10220         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10221         that need not be replied to
10222
10223 2003-08-01  Havoc Pennington  <hp@pobox.com>
10224
10225         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10226         (unpack_8_octets): fix no-64-bit-int bug
10227
10228         * dbus/dbus-object-registry.c (validate_id): validate the 
10229         connection ID bits, not just the instance ID.
10230
10231         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10232         the connection-global 33 bits of the object ID
10233
10234         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10235         object ID in the new way
10236
10237         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10238         define server/client/instance bits.
10239
10240 2003-07-30  Havoc Pennington  <hp@pobox.com>
10241
10242         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10243         build
10244
10245 2003-07-13  Havoc Pennington  <hp@pobox.com>
10246
10247         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10248         fields to DBusObjectVTable and DBusObjectInfo
10249
10250 2003-07-12  Havoc Pennington  <hp@pobox.com>
10251
10252         * dbus/dbus-object-registry.c: implement unit test,
10253         fix bugs discovered in process
10254
10255         * dbus/dbus-connection.c: remove handler_table and
10256         register_handler(), add DBusObjectRegistry usage
10257
10258         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10259         (dbus_object_id_set_null): new functions
10260
10261 2003-07-08  Havoc Pennington  <hp@pobox.com>
10262
10263         * dbus/dbus-object.c: implement some of this
10264
10265         * dbus/dbus-object-registry.c
10266         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10267         param
10268         (_dbus_object_registry_new): handle OOM
10269
10270 2003-07-08  Havoc Pennington  <hp@pobox.com>
10271
10272         * dbus/dbus-object.h: sketch out an API for registering objects
10273         with a connection, that allows us to use as little as 24 bytes
10274         per object and lets application code represent an object in 
10275         any conceivable way.
10276
10277         * dbus/dbus-object-registry.c: implement the hard bits of the
10278         DBusConnection aspect of object API. Not yet wired up.
10279         
10280 2003-07-06  Havoc Pennington  <hp@pobox.com>
10281
10282         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10283         (_dbus_marshal_object_id): new
10284         (_dbus_demarshal_object_id): new
10285         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10286         consolidate identical switch cases. Don't conditionalize handling
10287         of DBUS_TYPE_UINT64, need to handle the type always.
10288         (_dbus_marshal_validate_arg): consolidate identical cases, and
10289         handle DBUS_TYPE_OBJECT_ID
10290
10291         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10292
10293         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10294
10295 2003-09-28  Havoc Pennington  <hp@pobox.com>
10296
10297         * real 0.13 release
10298
10299 2003-09-28  Havoc Pennington  <hp@pobox.com>
10300
10301         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10302         to work with Debian db2html
10303
10304 2003-09-28  Havoc Pennington  <hp@pobox.com>
10305
10306         * configure.in: 0.13
10307
10308         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10309         stylesheet-images for benefit of Debian
10310         
10311         Change back to using filesystem-linked sockets for the system
10312         bus, so only root can create the default system bus address.
10313         
10314         * bus/system.conf.in: change to use
10315         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10316
10317         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10318         from here.
10319
10320         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10321         here, and AC_DEFINE DBUS_SYSTEM_PATH
10322
10323 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10324
10325         * doc/TODO:
10326         * doc/busconfig.dtd:
10327         Add busconfig DTD.
10328         
10329 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10330
10331         * doc/dbus-specification.sgml:
10332         Add activation reply values.
10333         
10334 2003-08-05  Havoc Pennington  <hp@redhat.com>
10335
10336         * configure.in: 0.12
10337
10338 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10339
10340         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10341         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10342         (add_watch), (remove_watch), (create_source):
10343         Refcount fds, fixes some reentrancy issues.
10344         
10345 2003-07-30  Havoc Pennington  <hp@redhat.com>
10346
10347         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10348         bus address to be abstract if we have abstract sockets
10349
10350         * NEWS: update
10351
10352 2003-07-28  Havoc Pennington  <hp@redhat.com>
10353
10354         * bus/messagebus.in: fix to avoid processname/servicename 
10355         confusion, from Michael Kearey
10356         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10357         
10358 2003-07-23  Havoc Pennington  <hp@pobox.com>
10359
10360         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10361         fix from Andy Hanton to remove broken "+1"
10362
10363 2003-07-16  Havoc Pennington  <hp@pobox.com>
10364
10365         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10366         babysitter process, as suggested by Thomas Leonard, so 
10367         an "eval `dbus-launch --exit-with-session`" will actually 
10368         return
10369
10370 2003-07-16  Havoc Pennington  <hp@pobox.com>
10371
10372         * configure.in: print out EXPANDED_* variables in the summary at
10373         the end; clean up the code that computes EXPANDED_ variables and
10374         get the ones using exec_prefix right. Should make things work
10375         when you build without --prefix
10376
10377 2003-06-29  Havoc Pennington  <hp@pobox.com>
10378
10379         * mono/Test.cs (class Test): fire up a main loop and run it
10380
10381         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10382         done once, the app has to do it
10383
10384 2003-06-26  Havoc Pennington  <hp@pobox.com>
10385
10386         * mono/Connection.cs: set up connection with the glib main loop
10387
10388 2003-07-01  Havoc Pennington  <hp@redhat.com>
10389
10390         * doc/dbus-specification.sgml: clarify the format of a type code,
10391         change suggested by Jim Blandy
10392
10393 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10394
10395         * doc/Makefile.am:
10396         * tools/Makefile.am: Don't assume srcdir == builddir.
10397
10398         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10399         the allocated block.
10400         (_dbus_memory_test): New function.
10401         * dbus/dbus-test.h: Add _dbus_memory_test ().
10402         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10403
10404         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10405         of %c%c%c%c.
10406         (dbus_message_new): Remove obsolete @todo.
10407
10408         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10409         (_dbus_marshal_set_uint64): Fix comment.
10410
10411         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10412         hardcode FIELD_REPLY_SERIAL.
10413
10414         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10415         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10416
10417         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10418         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10419
10420 2003-06-24  Havoc Pennington  <hp@pobox.com>
10421
10422         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10423
10424 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10425
10426         * configure.in:
10427         * gcj/.cvsignore:
10428         * gcj/Hello.java:
10429         * gcj/Makefile.am:
10430         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10431         * gcj/org/.cvsignore:
10432         * gcj/org/Makefile.am:
10433         * gcj/org/freedesktop/.cvsignore:
10434         * gcj/org/freedesktop/Makefile.am:
10435         * gcj/org/freedesktop/dbus/.cvsignore:
10436         * gcj/org/freedesktop/dbus/Makefile.am:
10437         * gcj/org/freedesktop/dbus/Message.java: (Message),
10438         (Message.Message):
10439         * gcj/org/freedesktop/dbus/natMessage.cc:
10440         Fix the build system.
10441
10442 2003-06-22  Havoc Pennington  <hp@pobox.com>
10443
10444         * mono/Connection.cs: add more bindings
10445
10446         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10447         more than once.
10448
10449 2003-06-22  Havoc Pennington  <hp@pobox.com>
10450
10451         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10452         Start wrapping more stuff.
10453
10454 2003-06-22  Havoc Pennington  <hp@pobox.com>
10455
10456         * mono/Message.cs: implement Message.Wrap() that ensures we only
10457         have a single C# wrapper per DBusMessage, assuming it works which
10458         it probably doesn't.
10459
10460         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10461         (dbus_message_free_data_slot): new
10462         (dbus_message_set_data): new
10463         (dbus_message_get_data): new
10464
10465 2003-06-22  Havoc Pennington  <hp@pobox.com>
10466
10467         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10468         (_dbus_data_slot_allocator_alloc): rework these to keep a
10469         reference count on each slot and automatically manage a global
10470         slot ID variable passed in by address
10471
10472         * bus/bus.c: convert to new dataslot API
10473
10474         * dbus/dbus-bus.c: convert to new dataslot API
10475
10476         * dbus/dbus-connection.c: convert to new dataslot API
10477
10478         * dbus/dbus-server.c: convert to new dataslot API
10479
10480         * glib/dbus-gmain.c: ditto
10481
10482         * bus/test.c: ditto
10483
10484         * bus/connection.c: ditto
10485
10486 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10487
10488         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10489         after the gcj checks so that the correct configuration tags
10490         will be added to libtool.
10491
10492         * dbus-glib-1.pc.in: No need to specify any includes since
10493         dbus-1.pc.in has those.
10494
10495 2003-06-22  Havoc Pennington  <hp@pobox.com>
10496
10497         * mono/*, gcj/*, configure.in, Makefile.am:
10498         Check in makefiles and subdirs for mono and gcj bindings.
10499         Neither binding actually exists, just trying to get through
10500         all the build and other boring bits.
10501
10502 2003-06-21  Philip Blundell  <philb@gnu.org>
10503
10504         * tools/dbus-monitor.1: Updated.
10505
10506         * tools/dbus-send.1: Likewise.
10507
10508 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10509
10510         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10511         for hangup and error after checking read so we won't discard
10512         pending data if both hangup and read are set.
10513
10514 2003-06-19  Philip Blundell  <philb@gnu.org>
10515
10516         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10517
10518         * tools/dbus-send.c: Accept both --system and --session.
10519
10520         * tools/dbus-monitor.c: Same here.
10521
10522 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10523
10524         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10525         from C++ (Patch by Miloslav Trmac).
10526
10527 2003-06-15  Joe Shaw  <joe@assbarn.com>
10528
10529         * configure.in: Check for socklen_t.
10530
10531         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10532
10533         * test/test-segfault.c: Add #include <sys/time.h>
10534
10535         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10536         dbus-launch needs it.
10537
10538 2003-06-09  Havoc Pennington  <hp@redhat.com>
10539
10540         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10541         SUN_LEN, it breaks abstract socket usage
10542
10543         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10544         starts of lines.
10545
10546 2003-06-04  Havoc Pennington  <hp@pobox.com>
10547
10548         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10549         using unix:abstract=/foo, and when listening in a tmpdir
10550         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10551
10552         * dbus/dbus-transport.c (_dbus_transport_open): support
10553         unix:abstract=/foo
10554
10555         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10556         support abstract sockets
10557
10558         * dbus/dbus-transport-unix.c
10559         (_dbus_transport_new_for_domain_socket): support abstract sockets
10560
10561         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10562         toggle as an argument, implement abstract namespace support
10563         (_dbus_listen_unix_socket): ditto
10564
10565         * configure.in: add --enable-abstract-sockets and implement
10566         a configure check for autodetection of the right value.
10567
10568 2003-06-01  Havoc Pennington  <hp@pobox.com>
10569
10570         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10571         in /tmp (though on Linux this will end up being useless,
10572         when we add abstract namespace support)
10573
10574         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10575         subst'ing it
10576
10577 2003-05-28  Colin Walters  <walters@verbum.org>
10578
10579         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10580
10581 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10582
10583         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10584
10585 2003-05-17  Colin Walters  <walters@gnu.org>
10586
10587         * tools/dbus-send.c: Don't exit with an error code if --help was
10588         passed.  Default to using the session bus instead of the system
10589         one.
10590
10591         * tools/dbus-launch.c: Ditto.
10592
10593         * tools/dbus-monitor.c: Ditto.
10594
10595         * tools/dbus-send.1: Update with new arguments.
10596
10597         * tools/dbus-launch.c: Emit code to export variables.  New
10598         arguments -s and -c to specify shell syntax, and a bit of code to
10599         autodetect syntax.  Also, allow specifying a program to run.
10600
10601         * tools/dbus-launch.1: Update with new arguments.
10602
10603         * tools/dbus-send.1: Ditto.
10604
10605         * tools/dbus-monitor.1: Ditto.
10606
10607 2003-05-17  Havoc Pennington  <hp@pobox.com>
10608
10609         * bus/config-parser.c (merge_included): merge in policies from
10610         child configuration file.
10611
10612         * bus/policy.c (bus_policy_merge): function to merge two policies
10613         together
10614
10615 2003-05-16  Havoc Pennington  <hp@redhat.com>
10616
10617         * dbus/dbus-connection.c: disable verbose lock spew
10618
10619         * tools/dbus-send.c: add --print-reply command line option
10620
10621         * tools/dbus-print-message.h (print_message): new util function
10622         shared by dbus-send and dbus-monitor
10623
10624         * tools/dbus-monitor.c (handler_func): exit on disconnect
10625
10626         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10627         disconnected, don't try to use the read_watch
10628
10629         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10630         so we can find this bug more easily
10631
10632 2003-05-16  Havoc Pennington  <hp@redhat.com>
10633
10634         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10635         NULL as DBusHashTable is annoyingly likely to do.
10636
10637 2003-05-16  Colin Walters  <walters@verbum.org>
10638
10639         * tools/dbus-monitor.c: Add --session argument and usage()
10640         function.
10641
10642         * tools/dbus-monitor.1: Update with new --session arg.
10643
10644         * bus/Makefile.am (install-data-hook): Create
10645         $(libdir)/dbus-1.0/services so that the session bus is happy.
10646
10647 2003-05-15  Havoc Pennington  <hp@redhat.com>
10648
10649         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10650         on non-x86. ifdef's are evil.
10651
10652 2003-05-15  Havoc Pennington  <hp@redhat.com>
10653
10654         * configure.in: 0.11
10655
10656         * NEWS: update
10657
10658         * bus/Makefile.am (initddir): apparently we are supposed to put
10659         init scripts in /etc/rc.d/init.d not /etc/init.d
10660
10661         * bus/Makefile.am: remove the "you must --enable-tests to make
10662         check" as it broke distcheck
10663
10664         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10665
10666 2003-05-13  James Willcox  <jwillcox@gnome.org>
10667
10668         * configure.in:
10669         * bus/activation.c: (bus_activation_service_created),
10670         (bus_activation_activate_service):
10671         * bus/driver.c: (bus_driver_send_service_deleted),
10672         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10673         (bus_driver_send_service_acquired),
10674         (bus_driver_send_welcome_message),
10675         (bus_driver_handle_list_services):
10676         * bus/session.conf.in:
10677         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10678         (dbus_bus_service_exists), (dbus_bus_activate_service):
10679         * dbus/dbus-bus.h:
10680
10681         Add some convenience API which lets you activate a service, and did a
10682         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10683         and dbus_message_get_args()
10684
10685 2003-05-11  Havoc Pennington  <hp@pobox.com>
10686
10687         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10688         calling _dbus_marshal_validate_arg() for every byte in a byte
10689         array, etc.
10690
10691         * dbus/dbus-message-handler.c: use atomic reference counting to
10692         reduce number of locks slightly; the global lock in here sucks
10693
10694         * dbus/dbus-connection.c
10695         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10696         update_dispatch_status that can be called with lock held; then use
10697         in a couple places to reduce locking/unlocking
10698         (dbus_connection_send): hold the lock over the whole function
10699         instead of acquiring it twice.
10700
10701         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10702
10703         * bus/connection.c (bus_connections_setup_connection): fix access
10704         to already-freed memory.
10705
10706         * dbus/dbus-connection.c: keep a little cache of linked list
10707         nodes, to avoid using the global linked list alloc lock in the
10708         normal send-message case. Instead we just use the connection lock
10709         that we already have to take.
10710
10711         * dbus/dbus-list.c (_dbus_list_find_last): new function
10712
10713         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10714         change to use a struct for the atomic type; fix docs,
10715         they return value before increment, not after increment.
10716
10717         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10718         (_dbus_string_append_8_aligned): new functions to try to
10719         microoptimize this operation.
10720         (reallocate_for_length): break this out of set_length(), to
10721         improve profile info, and also so we can consider inlining the
10722         set_length() part.
10723
10724         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10725         strings with some preallocation, cuts down on our calls to realloc
10726         a fair bit. Though if we can get the "move entire string to empty
10727         string" optimization below to kick in here, it would be better.
10728
10729         * dbus/dbus-string.c (_dbus_string_move): just call
10730         _dbus_string_move_len
10731         (_dbus_string_move_len): add a special case for moving
10732         an entire string into an empty string; we can just
10733         swap the string data instead of doing any reallocs.
10734         (_dbus_string_init_preallocated): new function
10735
10736 2003-05-11  Havoc Pennington  <hp@pobox.com>
10737
10738         Write a "test-profile" that does echo client-server with threads;
10739         profile reveals lock contention, memcpy/realloc of buffers, and
10740         UTF-8 validation as hot spots. 20% of lock contention eliminated
10741         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10742         contention is global mempool locks for GList and DBusList.
10743
10744         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10745         x86 implementation
10746
10747         * dbus/dbus-connection.c (struct DBusConnection): use
10748         dbus_atomic_t for the reference count
10749
10750         * dbus/dbus-message.c (struct DBusMessage): declare
10751         dbus_atomic_t values as volatile
10752
10753         * configure.in: code to detect ability to use atomic integer
10754         operations in assembly, from GLib patch
10755
10756         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10757         time, tired of it being wrong in threads and forked processes
10758
10759         * glib/test-profile.c: a little program to bounce messages back
10760         and forth between threads and eat CPU
10761
10762         * dbus/dbus-connection.c: add debug spew macros for debugging
10763         thread locks; include config.h at top; fix deadlock in
10764         dbus_connection_flush()
10765
10766 2003-05-08  Havoc Pennington  <hp@pobox.com>
10767
10768         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10769         data from getting written, and there wasn't a good reason to
10770         use _exit really.
10771
10772         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10773         dbus_verbose lines in test coverage
10774         (main): add list of functions sorted by # of untested blocks
10775         to the coverage report
10776
10777         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10778
10779         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10780
10781         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10782         extend test coverage
10783
10784         * test/data/auth/cancel.auth-script: test canceling an
10785         authentication
10786
10787         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10788         aren't used. in CVS history if we end up needing them.
10789
10790 2003-05-04  Havoc Pennington  <hp@pobox.com>
10791
10792         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10793         unit test
10794
10795         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10796         function, which assumed length was in # of strings, not bytes
10797
10798         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10799         missing coverage
10800
10801         * dbus/dbus-connection.c
10802         (_dbus_connection_queue_received_message): disable function for
10803         now, we are only using it in test mode
10804
10805         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10806         remove a mistaken FIXME
10807
10808 2003-05-04  Havoc Pennington  <hp@pobox.com>
10809
10810         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10811         unlock mutex on successful return, patch from Anders Gustafsson
10812
10813 2003-05-04  Havoc Pennington  <hp@pobox.com>
10814
10815         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10816         Anders Gustafsson
10817
10818 2003-05-04  Havoc Pennington  <hp@pobox.com>
10819
10820         * tools/dbus-launch.c: implement
10821
10822         * bus/main.c (main), bus/bus.c (bus_context_new):
10823         implement --print-pid and --fork
10824
10825 2003-05-03  Havoc Pennington  <hp@redhat.com>
10826
10827         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10828         the address had no value, and add to test suite. Fix and
10829         regression test from Miloslav Trmac
10830
10831 2003-05-03  Havoc Pennington  <hp@pobox.com>
10832
10833         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10834         watch is invalid when handled
10835
10836         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10837         dbus-launch utility to launch the bus from a shell script.  Didn't
10838         actually implement dbus-launch yet, it's just a placeholder still.
10839
10840 2003-05-03  Havoc Pennington  <hp@pobox.com>
10841
10842         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10843         daemon; also documents daemon config file, so replaces
10844         doc/config-file.txt. Corrected some stuff from config-file.txt in
10845         the process of moving it.
10846
10847 2003-05-03  Havoc Pennington  <hp@pobox.com>
10848
10849         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10850         add some man pages
10851
10852 2003-05-03  Colin Walters  <walters@verbum.org>
10853
10854         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10855         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10856
10857         * Makefile.am: Update to use new .pc versioning scheme.
10858
10859 2003-05-02  Havoc Pennington  <hp@redhat.com>
10860
10861         * bus/system.conf.in: allow send/receive to/from message bus
10862         service
10863
10864 2003-04-30  Havoc Pennington  <hp@redhat.com>
10865
10866         * configure.in: print a note when building with unit tests and
10867         without assertions
10868
10869 2003-04-30  Havoc Pennington  <hp@redhat.com>
10870
10871         * Makefile.am: add a check-local that complains if you didn't
10872         configure with --enable-tests
10873
10874 2003-04-29  Havoc Pennington  <hp@redhat.com>
10875
10876         * glib/dbus-gmain.c: docs cleanups
10877
10878         * dbus/dbus-types.h: add docs on int64 types
10879
10880         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10881         public API docs section
10882
10883 2003-04-29  Havoc Pennington  <hp@redhat.com>
10884
10885         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10886         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10887         parallel install API version, not with the D-BUS package version.
10888
10889         * HACKING: move some of README over here
10890
10891         * README: updates, and document API/ABI policy
10892
10893         * configure.in: reindentation
10894
10895 2003-04-29  Havoc Pennington  <hp@redhat.com>
10896
10897         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10898         to use this library" to be sure people have the right
10899         expectations.
10900
10901 2003-04-28  Havoc Pennington  <hp@redhat.com>
10902
10903         * configure.in: add --enable-docs which by default is auto yes if
10904         doxygen and db2html found, no otherwise; but can be forced on/off
10905
10906         * doc/Makefile.am: conditionalize whether to build docs on
10907         --enable-docs
10908
10909 2003-04-28  Havoc Pennington  <hp@redhat.com>
10910
10911         * configure.in: 0.10
10912
10913         * NEWS: update
10914
10915         * bus/system.conf.in: add <includedir>system.d</includedir>
10916
10917         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10918         username was provided but not uid
10919
10920         * bus/config-parser.c (struct BusConfigParser): keep track of
10921         whether the parser is toplevel or was included; change some
10922         of the error handling if it's included.
10923
10924 2003-04-27  Havoc Pennington  <hp@pobox.com>
10925
10926         Unbreak my code...
10927
10928         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10929         report correct status if we finish processing authentication
10930         inside this function.
10931
10932         * bus/activation.c (try_send_activation_failure): use
10933         bus_transaction_send_error_reply
10934
10935         * bus/connection.c (bus_connection_get_groups): return an error
10936         explaining the problem
10937
10938         * bus/bus.c (bus_context_check_security_policy): implement
10939         restriction here that inactive connections can only send the
10940         hello message. Also, allow bus driver to send anything to
10941         any recipient.
10942
10943         * bus/connection.c (bus_connection_complete): create the
10944         BusClientPolicy here instead of on-demand.
10945         (bus_connection_get_policy): don't return an error
10946
10947         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10948         sender field in message being replied to
10949
10950         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10951         causing it to return FALSE always
10952
10953         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10954         we checked sender rather than destination
10955
10956 2003-04-25  Havoc Pennington  <hp@redhat.com>
10957
10958         test suite is slightly hosed at the moment, will fix soon
10959
10960         * bus/connection.c (bus_connections_expire_incomplete): fix to
10961         properly disable the timeout when required
10962         (bus_connection_set_name): check whether we can remove incomplete
10963         connections timeout after we complete each connection.
10964
10965         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10966         probably still broken.
10967
10968         * bus/services.c (bus_registry_acquire_service): implement max
10969         number of services owned, and honor allow/deny rules on which
10970         services a connection can own.
10971
10972         * bus/connection.c (bus_connection_get_policy): report errors here
10973
10974         * bus/activation.c: implement limit on number of pending
10975         activations
10976
10977 2003-04-25  Havoc Pennington  <hp@redhat.com>
10978
10979         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10980         where we used >= 0 instead of != DBUS_UID_UNSET.
10981
10982 2003-04-25  Havoc Pennington  <hp@redhat.com>
10983
10984         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10985         were toggled without add/remove, fix from Anders Gustafsson
10986
10987 2003-04-24  Havoc Pennington  <hp@redhat.com>
10988
10989         * test/data/valid-config-files/basic.conf: add <limit> tags to
10990         this test
10991
10992         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10993         <limit> tag in configuration file.
10994
10995 2003-04-24  Havoc Pennington  <hp@redhat.com>
10996
10997         * bus/dispatch.c: somehow missed some name_is
10998
10999         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11000         (_dbus_timeout_set_interval): new
11001
11002         * bus/connection.c (bus_connections_setup_connection): record time
11003         when each connection is first set up, and expire them after the
11004         auth timeout passes.
11005
11006 2003-04-24  Havoc Pennington  <hp@redhat.com>
11007
11008         * dbus/dbus-message.c (dbus_message_name_is): rename
11009         (dbus_message_service_is): rename
11010         (dbus_message_sender_is): rename
11011         (dbus_message_get_service): rename
11012
11013 2003-04-24  Havoc Pennington  <hp@redhat.com>
11014
11015         * configure.in: add --enable-checks
11016
11017         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11018
11019         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11020         to use thread locks.
11021         (_dbus_connection_handler_destroyed_locked): move some private
11022         functions into proper docs group
11023
11024         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11025         _dbus_return_val_if_fail
11026
11027         Throughout: use dbus_return_if_fail
11028
11029 2003-04-23  James Willcox  <jwillcox@gnome.org>
11030
11031         * glib/dbus-glib.h:
11032         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11033         (dbus_connection_setup_with_g_main),
11034         (dbus_server_setup_with_g_main):
11035         * glib/test-dbus-glib.c: (main):
11036         * glib/test-thread-client.c: (main):
11037         * glib/test-thread-server.c: (new_connection_callback), (main):
11038         * tools/dbus-monitor.c: (main):
11039
11040         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11041         and dbus_server_setup_with_g_main().
11042
11043 2003-04-20  Havoc Pennington  <hp@pobox.com>
11044
11045         * doc/dbus-specification.sgml: document the restrictions on
11046         message and service names
11047
11048 2003-04-22  Havoc Pennington  <hp@redhat.com>
11049
11050         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11051         support, and do some code cleanups to share more code and
11052         speed up array marshal/demarshal.
11053
11054         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11055
11056         * configure.in: generate dbus-arch-deps.h
11057
11058         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11059         64-bit typecodes
11060
11061 2003-04-22  Havoc Pennington  <hp@redhat.com>
11062
11063         * test/data/valid-messages/opposite-endian.message: fix test
11064         to use proper type for rply field
11065
11066         * test/data/invalid-messages: add tests for below validation
11067
11068         * dbus/dbus-message.c (decode_header_data): validate field types,
11069         and validate that named fields are valid names
11070         (decode_name_field): consider messages in the
11071         org.freedesktop.Local. namespace to be invalid.
11072
11073         * dbus/dbus-string.c (_dbus_string_validate_name): new
11074
11075 2003-04-19  Havoc Pennington  <hp@pobox.com>
11076
11077         * bus/driver.c (bus_driver_handle_hello): check limits and
11078         return an error if they are exceeded.
11079
11080         * bus/connection.c: maintain separate lists of active and inactive
11081         connections, and a count of each. Maintain count of completed
11082         connections per user. Implement code to check connection limits.
11083
11084         * dbus/dbus-list.c (_dbus_list_unlink): export
11085
11086         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11087         number of bytes in the message queue for a connection
11088
11089 2003-04-18  Havoc Pennington  <hp@pobox.com>
11090
11091         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11092
11093         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11094         memleaks
11095
11096         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11097         on realloc be sure to update the pointer in the keyring
11098
11099         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11100         offset to avoid writing to unallocated memory
11101
11102         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11103         try the next mechanism, so we properly handle OOM
11104
11105         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11106         on OOM.
11107         (_dbus_keyring_new): fix OOM bug
11108         (_dbus_keyring_new_homedir): always set error; impose a maximum
11109         number of keys we'll load from the file, mostly to speed up the
11110         test suite and make its OOM checks more useful, but also for
11111         general sanity.
11112
11113         * dbus/dbus-auth.c (process_error_server): reject authentication
11114         if we get an error from the client
11115         (process_cancel): on cancel, send REJECTED, per the spec
11116         (process_error_client): send CANCEL if we get an error from the
11117         server.
11118
11119 2003-04-18  Havoc Pennington  <hp@pobox.com>
11120
11121         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11122         debug spew
11123
11124         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11125         handling problem
11126
11127         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11128         about DBUS_TEST_HOMEDIR once
11129
11130         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11131         the environment
11132
11133         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11134         config file so we test the right thing
11135
11136         Throughout: assorted docs improvements
11137
11138 2003-04-18  Havoc Pennington  <hp@pobox.com>
11139
11140         * glib/dbus-gmain.c: adapt to watch changes
11141
11142         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11143
11144         * dbus/dbus-server.h: remove dbus_server_handle_watch
11145
11146         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11147
11148         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11149         like DBusTimeout, so we don't need dbus_connection_handle_watch
11150         etc.
11151
11152 2003-04-17  Havoc Pennington  <hp@redhat.com>
11153
11154         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11155         database usage so it all goes via the DBusUserDatabase cache.
11156
11157 2003-04-17  Havoc Pennington  <hp@redhat.com>
11158
11159         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11160         there was an OOM watch we skipped, we always return TRUE so we
11161         iterate again to have a look at it again. Fixes test suite hang.
11162         Code rearrangement also lets us lose some memset and only iterate
11163         over callbacks once.
11164
11165         * bus/driver.c (bus_driver_handle_message): sense of test for
11166         reply was backward
11167
11168 2003-04-16  Havoc Pennington  <hp@pobox.com>
11169
11170         * doc/dbus-specification.sgml: make spec say serials are unsigned
11171
11172         * dbus/dbus-message.h: change message serials to unsigned
11173
11174         * dbus/dbus-connection.c: adapt to message serials being unsigned
11175
11176 2003-04-15  Havoc Pennington  <hp@pobox.com>
11177
11178         * bus/bus.c: create and keep around a shared DBusUserDatabase
11179         object.
11180
11181         * bus/connection.c (bus_connection_get_groups): don't cache
11182         groups for user in the connection object, since user database
11183         object now does that.
11184
11185 2003-04-16  Havoc Pennington  <hp@redhat.com>
11186
11187         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11188         list of size counters
11189         (_dbus_message_loader_putback_message_link): put back a popped link
11190
11191         * dbus/dbus-connection.c
11192         (dbus_connection_set_max_live_messages_size): rename
11193         max_received_size
11194         (dbus_connection_get_outgoing_size): get size of outgoing
11195         queue
11196         (_dbus_connection_set_connection_counter): remove this cruft
11197
11198 2003-04-14  Havoc Pennington  <hp@redhat.com>
11199
11200         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11201         caching, but at some point we might want to be able to use a
11202         different database.
11203
11204         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11205         SHA1 conf file to test the sha1 auth mechanism, since the regular
11206         test always uses EXTERNAL when available.
11207
11208         * configure.in,
11209         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11210         add conf file that requires use of sha1 auth
11211
11212 2003-04-13  Havoc Pennington  <hp@pobox.com>
11213
11214         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11215         from Philip Blundell to send messages and monitor them.
11216
11217 2003-04-13  Havoc Pennington  <hp@pobox.com>
11218
11219         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11220         callbacks
11221
11222         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11223         users
11224
11225         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11226         fix to only recover unused bytes if we're already authenticated
11227         (_dbus_transport_get_is_authenticated): fix to still mark us
11228         authenticated if there are unused bytes.
11229
11230         * bus/dispatch.c: implement security policy checking
11231
11232         * bus/connection.c (bus_transaction_send_from_driver): new
11233
11234         * bus/bus.c (bus_context_check_security_policy): new
11235
11236         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11237         now we just set the DBusError and it gets converted to an error
11238         reply.
11239
11240         * bus/connection.c (allow_user_function): enable code using actual
11241         data from the config file
11242
11243         * bus/policy.c (list_allows_user): handle wildcard rules for
11244         user/group connection perms
11245
11246 2003-04-13  Havoc Pennington  <hp@pobox.com>
11247
11248         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11249
11250         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11251
11252         * bus/policy.c (bus_policy_append_mandatory_rule)
11253         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11254         (bus_policy_append_group_rule): new functions
11255
11256 2003-04-12  Havoc Pennington  <hp@pobox.com>
11257
11258         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11259
11260         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11261         the pid/gid/uid, just for paranoia.
11262
11263         * test/break-loader.c (randomly_do_n_things): find a byte
11264         containing a type code, and randomly change it to a different
11265         type code.
11266
11267 2003-04-12  Havoc Pennington  <hp@pobox.com>
11268
11269         * bus/policy.h: change BusPolicy to be the thing from the config
11270         file, and rename old BusPolicy to BusClientPolicy
11271
11272         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11273         match change in how policy works
11274
11275         * dbus/dbus-internals.h: mark assert_not_reached as
11276         __attribute((noreturn))__
11277
11278 2003-04-11  Havoc Pennington  <hp@redhat.com>
11279
11280         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11281         the broadcast service. Use boolean return for ServiceExists.
11282
11283 2003-04-11  Havoc Pennington  <hp@redhat.com>
11284
11285         * configure.in: add another directory to look for qt in.
11286
11287 2003-04-11  Havoc Pennington  <hp@redhat.com>
11288
11289         * AUTHORS: add Colin Walters
11290
11291 2003-04-11  Havoc Pennington  <hp@redhat.com>
11292
11293         * NEWS: update
11294
11295         * configure.in: 0.9
11296
11297 2003-04-11  Havoc Pennington  <hp@redhat.com>
11298
11299         * bus/messagebus.in: remove pid file when stopping the
11300         message bus, since the bus won't have privileges to remove it
11301         itself.
11302
11303 2003-04-11  Havoc Pennington  <hp@redhat.com>
11304
11305         * bus/bus.c (bus_context_new): move credentials change after
11306         creating pidfile
11307
11308 2003-04-11  Havoc Pennington  <hp@pobox.com>
11309
11310         * test/decode-gcov.c: add "below average functions" to the
11311         coverage report, and change how some of the code works.
11312
11313         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11314         not in the coverage stats.
11315
11316         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11317         couple places so running the test suite doesn't result in megaspam.
11318
11319 2003-04-11  Havoc Pennington  <hp@pobox.com>
11320
11321         * bus/dispatch.c (check_existent_service_activation): accept a no
11322         memory error in a place we didn't before
11323
11324         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11325         in case the first one failed," since the test suite is less
11326         broken now.
11327
11328 2003-04-10  Havoc Pennington  <hp@pobox.com>
11329
11330         * bus/dispatch.c (check_segfault_service_activation): add test
11331         for launching an executable that just crashes.
11332
11333         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11334         don't leave a million cores. We'll see how portable this is.
11335
11336 2003-04-10  Havoc Pennington  <hp@pobox.com>
11337
11338         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11339         the possible parent failures before we fork, so that we don't
11340         fail to create a babysitter after creating the child.
11341
11342         * bus/activation.c (bus_activation_activate_service): kill child
11343         if we don't successfully complete the activation.
11344
11345 2003-04-10  Havoc Pennington  <hp@redhat.com>
11346
11347         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11348         the connection if it's disconnected
11349
11350         * bus/activation.c (bus_activation_service_created): use new
11351         transaction features to roll back removal of pending activation if
11352         we don't successfully create the service after all. Don't remove
11353         pending activation if the function fails.
11354
11355         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11356         (_dbus_list_insert_after_link): new code to facilitate
11357         services.c fixes
11358
11359         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11360         new functionality, so we can preallocate the ability to insert
11361         into a hash table.
11362
11363         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11364         allowing us to put custom hooks in a transaction to be used for
11365         cancelling said transaction
11366
11367         * doc/dbus-specification.sgml: add some discussion of secondary
11368         service owners, and disallow zero-length service names
11369
11370         * bus/services.c (bus_registry_acquire_service): new function,
11371         splits out part of bus_driver_handle_acquire_service() and fixes
11372         a bug where we didn't remove the service doing the acquiring
11373         from the secondary queue if we failed to remove the current owner
11374         from the front of the queue.
11375
11376 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11377
11378         * doc/dbus-specification.sgml:
11379         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11380
11381 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11382
11383         * bus/.cvsignore:
11384         * glib/.cvsignore:
11385         * test/.cvsignore:
11386         Added files to cvsignore
11387
11388         * dbus/dbus-message.h:
11389         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11390         Make get_named() take two out argument and return a boolean.
11391         (dbus_message_iter_get_args_valist):
11392         Update usage of get_named().
11393         (dbus_message_iter_append_byte):
11394         Fix typo
11395         (dbus_message_iter_append_named)
11396         Fix typo
11397         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11398         More tests.
11399
11400 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11401
11402         * dbus/dbus-marshal.[ch]:
11403         Add array_type_pos argument to _dbus_marshal_validate_arg.
11404         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11405
11406         * dbus/dbus-message.[ch]:
11407         Multi-dimensional arrays have full type specification in the
11408         outermost array. Iter code re-arranged to handle this.
11409         Added some more iter tests.
11410
11411         * doc/dbus-specification.sgml:
11412         Add me to authors.
11413         Remove old FIXME.
11414         Update new array encoding description.
11415         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11416
11417         * test/data/invalid-messages/array-with-mixed-types.message:
11418         * test/data/valid-messages/array-of-array-of-uint32.message:
11419         Change to the new array format.
11420
11421         * test/data/invalid-messages/too-short-dict.message:
11422         Fix bug in test.
11423
11424         * test/data/valid-messages/recursive-types.message:
11425         Fix up and extend test.
11426
11427 2003-04-10  Havoc Pennington  <hp@pobox.com>
11428
11429         * bus/dispatch.c: lots of fixes
11430
11431         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11432         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11433         that was crack, broke the test service.
11434
11435         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11436         handling to avoid piling up errors if we get a failure on the
11437         first address.
11438
11439         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11440         pid in assertion failures.
11441
11442         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11443         to some fixed size of file descriptor array. Don't return TRUE
11444         anytime a timeout exists, that led to lots of busy loop silliness
11445         in the tests.
11446
11447 2003-04-09  Havoc Pennington  <hp@redhat.com>
11448
11449         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11450         I'd checked this in earlier but hadn't.
11451
11452 2003-04-09  Havoc Pennington  <hp@redhat.com>
11453
11454         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11455         the activation test (man this is getting old!)
11456
11457 2003-04-09  Havoc Pennington  <hp@redhat.com>
11458
11459         * test/test-utils.c: use dispatch status function to fix this up
11460
11461         * bus/connection.c (connection_watch_callback): don't dispatch
11462         from here
11463         (connection_timeout_callback): don't dispatch from here
11464         (bus_connections_setup_connection): set the dispatch status function
11465         (bus_connection_disconnected): unset it
11466
11467         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11468         used to add a connection to be dispatched
11469         (_dbus_loop_iterate): do the dispatching at the end of each
11470         iteration
11471
11472         * dbus/dbus-connection.c
11473         (dbus_connection_set_dispatch_status_function): new function
11474         allowing us to fix up main loop usage
11475         (_dbus_connection_last_unref): free all the various function
11476         user data
11477         (dbus_connection_dispatch): call the DispatchStatusFunction
11478         whenever this function returns
11479         (dbus_connection_handle_watch): call DispatchStatusFunction
11480         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11481         (reply_handler_timeout): call DispatchStatusFunction
11482         (dbus_connection_flush): call DispatchStatusFunction
11483
11484 2003-04-09  Havoc Pennington  <hp@redhat.com>
11485
11486         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11487         a memory leak
11488
11489         * bus/dispatch.c (check_service_activated): fix bug in test
11490
11491         * dbus/dbus-mainloop.c (check_timeout): fix this up
11492
11493         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11494         verbose output so we can sort out output from different processes,
11495         e.g. in the activation case.
11496
11497 2003-04-08  Colin Walters  <walters@gnu.org>
11498
11499         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11500         the pid file.
11501         (bus_context_new): Set it.
11502         (bus_context_unref): Use it to delete the pid file.
11503
11504 2003-04-08  Havoc Pennington  <hp@redhat.com>
11505
11506         * test/data/invalid-messages/array-with-mixed-types.message:
11507         regression test that fails for the moment
11508
11509         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11510         tests for convenience
11511
11512         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11513         array of nil, it broke things.
11514
11515         * test/data/invalid-messages/array-of-nil.message: regression test
11516
11517         * test/data/valid-messages/array-of-array-of-uint32.message:
11518         happened to write this so added it to suite
11519
11520 2003-04-08  Havoc Pennington  <hp@redhat.com>
11521
11522         * bus/driver.c (bus_driver_handle_acquire_service): init
11523         retval/reply before checking name
11524
11525         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11526         recursion depth argument
11527
11528         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11529         in the public struct for future extension
11530
11531         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11532         typo
11533
11534         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11535         message
11536
11537         * doc/dbus-specification.sgml: fix typo
11538
11539 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11540
11541         Implemented recursive types, named types and new-style iters
11542
11543         * bus/driver.c:
11544         * glib/test-thread-client.c: (thread_func):
11545         * glib/test-thread-server.c: (handle_test_message):
11546         * test/test-service.c: (handle_echo):
11547         Update to new api
11548
11549         * dbus/Makefile.am:
11550         * dbus/dbus-dict.c:
11551         * dbus/dbus-dict.h:
11552         * dbus/dbus.h
11553         Remove DBusDict
11554
11555         * dbus/dbus-internals.c: (_dbus_type_to_string):
11556         Update for new types.
11557
11558         * dbus/dbus-marshal.[ch]:
11559         Implement recursive types and the new marshalling format.
11560         Remove hardcoded dict marshalling.
11561         Marshal named types.
11562
11563         * dbus/dbus-message-builder.c:
11564         Add BYTE_ARRAY.
11565         Remove references to old types
11566
11567         * dbus/dbus-message.[ch]:
11568         New non-refcounted iter API that supports recursive iters.
11569         Use iters for appending, including support for recursive
11570         iters.
11571         Add byte and named type support.
11572         Update everything to new marshalling formats.
11573         Add tests for new API.
11574
11575         * dbus/dbus-protocol.h:
11576         Remove old array types.
11577         Add types: BYTE, ARRAY, DICT, NAMED
11578
11579         * dbus/dbus-string.c:
11580         * dbus/dbus-sysdeps.c:
11581         Make parse_double locale safe.
11582
11583         * dbus/dbus-test-main.c:
11584         Call setlocale.
11585
11586         * dbus/dbus-test.c:
11587         Kill dict test
11588
11589         * doc/dbus-specification.sgml:
11590         Update spec
11591
11592         * test/data/incomplete-messages/missing-body.message:
11593         * test/data/invalid-messages/bad-boolean.message:
11594         * test/data/invalid-messages/bad-boolean-array.message:
11595         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11596         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11597         * test/data/invalid-messages/too-short-dict.message:
11598         * test/data/valid-messages/dict-simple.message:
11599         * test/data/valid-messages/dict.message:
11600         * test/data/valid-messages/emptiness.message:
11601         * test/data/valid-messages/lots-of-arguments.message:
11602         * test/data/valid-messages/no-padding.message:
11603         * test/data/valid-messages/recursive-types.message:
11604         Add missing NAME fields
11605         Fix up dicts & arrays
11606
11607         * test/data/invalid-messages/dict-with-nil-value.message:
11608         Removed, this is not invalid anymore.
11609
11610         * test/data/valid-messages/recursive-types.message:
11611         Add new test for deeply recursive types.
11612
11613 2003-04-07  Havoc Pennington  <hp@pobox.com>
11614
11615         * bus/driver.c (bus_driver_handle_acquire_service): return an
11616         error if you try to acquire a service that starts with ':'
11617
11618 2003-04-07  Havoc Pennington  <hp@redhat.com>
11619
11620         * doc/dbus-specification.sgml: require that base service names
11621         start with ':' and that the base service is created/deleted
11622         as first and last things a connection does on the bus
11623
11624         * bus/dispatch.c (check_existent_service_activation): lots more
11625         work on the activation test; it doesn't fully pass yet...
11626
11627         * test/test-service.c (main): fix so we don't memleak the
11628         connection to the message bus
11629         (filter_func): accept a message asking us to exit
11630
11631 2003-04-06  Havoc Pennington  <hp@pobox.com>
11632
11633         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11634         from Colin Walters
11635
11636         * configure.in: fixes to Qt detection from Colin Walters
11637
11638         * doc/Makefile.am: Only remove generated docbook dirs if they
11639         exist, from Colin Walters
11640
11641         * dbus/dbus-bus.c: change how we set well-known connections to
11642         NULL, so that it works if a single connection is stored in
11643         two well-known array slots.
11644
11645         * test/Makefile.am: remove a lot of stuff that isn't immediately
11646         useful, it's in CVS history if we want it.
11647
11648         * test/test-service.c: use dbus-mainloop instead of that
11649         watch.[hc] crack
11650
11651 2003-04-06  Havoc Pennington  <hp@pobox.com>
11652
11653         * dbus/Makefile.am: split lists of sources into stuff that goes in
11654         the library, util functions that go in the lib and are also used
11655         elsewhere, and util functions that are used in tests/daemon but
11656         don't go in the lib.
11657
11658         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11659         here so it can be used in test binaries also
11660
11661 2003-04-06  Havoc Pennington  <hp@pobox.com>
11662
11663         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11664         here in the parent process, so we can return an error if it
11665         fails. Also, move some of the code into the child so the parent
11666         is less hosed if we fail midway through.
11667
11668         * bus/bus.c (bus_context_new): move pidfile detection further up
11669         in the function, before we start overwriting sockets and such.
11670
11671         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11672
11673         * configure.in: add --with-system-pid-file and --with-system-socket
11674
11675 2003-04-06  Colin Walters  <walters@verbum.org>
11676
11677         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11678
11679         * bus/system.conf.in: Declare a pidfile.
11680
11681         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11682         create one (if appropriate).
11683
11684         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11685         (struct BusConfigParser) [pidfile]: New.
11686         (element_type_to_name, merge_included, start_busconfig_child)
11687         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11688         (bus_config_parser_unref): Free it.
11689         (bus_config_parser_get_pidfile): New function.
11690
11691         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11692
11693         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11694
11695         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11696
11697         * dbus/dbus-sysdeps.h: Prototype it.
11698
11699 2003-04-06  Havoc Pennington  <hp@pobox.com>
11700
11701         * bus/bus.c (bus_context_new): print the address in here, rather
11702         than in main(), because we need to do it before forking the daemon
11703
11704         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11705         on the service nonexistent error
11706
11707         * bus/driver.c (bus_driver_handle_acquire_service): set the
11708         sender on the AcquireService reply
11709
11710         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11711         server also listen on a UNIX socket so services can connect to it.
11712
11713 2003-04-06  Havoc Pennington  <hp@pobox.com>
11714
11715         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11716         so it detects deadlocks and also we actually init threads when
11717         debugging.
11718
11719 2003-04-06  Havoc Pennington  <hp@pobox.com>
11720
11721         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11722         save the domain socket name, and unlink it when we disconnect the
11723         server. Means that at least when we exit normally, we won't leave
11724         a bunch of junk in /tmp
11725
11726         * dbus/dbus-transport-unix.c
11727         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11728         memory management). (I was making a real change here but then
11729         didn't)
11730
11731 2003-04-06  Havoc Pennington  <hp@pobox.com>
11732
11733         * bus/bus.c (bus_context_new): fix wrong handling of
11734         server_data_slot_unref() in the error case.
11735
11736         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11737         "(condition) != 0" to _dbus_real_assert so that
11738         "_dbus_assert (pointer)" doesn't cause a warning
11739
11740         * bus/main.c (main): accept --print-address option to print out
11741         the message bus address
11742
11743         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11744
11745         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11746         "tmpdir" option to unix: address on client side
11747
11748         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11749         to unix: address
11750
11751         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11752         we can use to create sockets in the test suite.
11753
11754         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11755         cleanly. To be used for testing.
11756
11757         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11758
11759         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11760
11761         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11762         handle trying to call this when there's no servers active
11763
11764 2003-04-05  Havoc Pennington  <hp@pobox.com>
11765
11766         * NEWS: update
11767
11768         * configure.in: 0.8
11769
11770 2003-04-05  Havoc Pennington  <hp@pobox.com>
11771
11772         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11773         crash on startup. Need to get "try starting the daemon"
11774         in the test suite I guess. ;-)
11775
11776         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11777         tracked the number of open connections; it's better done in
11778         application-specific code as you want it to span all servers etc.
11779
11780 2003-04-05  Havoc Pennington  <hp@pobox.com>
11781
11782         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11783         patch from Colin Walters
11784
11785 2003-04-05  Havoc Pennington  <hp@pobox.com>
11786
11787         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11788         reality; in fact multiple mechanisms are allowed.
11789
11790         * dbus/dbus-internals.c (_dbus_real_assert)
11791         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11792         _dbus_assert_not_reached() into functions, so that they don't show
11793         up in basic block counts for test coverage, and don't use up as
11794         much disk space. Does mean slower execution speed though, so
11795         assumes --disable-asserts is the normal production case.
11796
11797 2003-04-05  Havoc Pennington  <hp@pobox.com>
11798
11799         * test/Makefile.am (dist-hook): also dist *.in files
11800
11801         * NEWS: update
11802
11803         * configure.in: 0.7
11804
11805 2003-04-05  Havoc Pennington  <hp@pobox.com>
11806
11807         * dbus/dbus-string.c: docs warning
11808
11809         * dbus/dbus-spawn.c: missing docs
11810
11811         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11812
11813 2003-04-05  Havoc Pennington  <hp@pobox.com>
11814
11815         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11816         magic from GLib
11817
11818         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11819         to -1 once we've reaped the babysitter
11820         (_dbus_babysitter_handle_watch): do as much work as we can, not
11821         just one go of it
11822
11823         * bus/activation.c: add code using DBusBabysitter so that we
11824         handle it when a service fails to start up properly.
11825         (bus_activation_service_created): don't remove the activation
11826         entries as we go, just let them get removed when we free the pending
11827         activation. Unref reply messages after sending them.
11828
11829 2003-04-05  Havoc Pennington  <hp@pobox.com>
11830
11831         * test/decode-gcov.c (main): print per-directory stats in the report
11832
11833         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11834
11835 2003-04-05  Havoc Pennington  <hp@pobox.com>
11836
11837         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11838
11839         * test/decode-gcov.c: hack up a little program to suck data
11840         out of gcov files. Yes this is sort of silly.
11841
11842         * configure.in: define something in config.h and do an
11843         AM_CONDITIONAL when gcov is enabled
11844
11845 2003-04-04  Havoc Pennington  <hp@redhat.com>
11846
11847         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11848         return a "babysitter" object that is used to monitor the status of
11849         the spawned process and reap it when required.
11850
11851         * test/test-segfault.c, test/test-exit.c,
11852         test/test-sleep-forever.c: binaries that do various lame things,
11853         used in the test suite.
11854
11855         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11856
11857 2003-04-03  Havoc Pennington  <hp@pobox.com>
11858
11859         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11860         in preparation for modifying it, dbus-sysdeps is getting
11861         a bit unmanageable.
11862
11863 2003-04-03  Havoc Pennington  <hp@redhat.com>
11864
11865         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11866         have multiple ones
11867
11868         * bus/*.[hc]: adapt to mainloop change
11869
11870 2003-04-03  Havoc Pennington  <hp@redhat.com>
11871
11872         * bus/activation.c (load_directory): fix up memleaks
11873         (bus_activation_entry_free): free the entry
11874
11875         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11876         we get one from the message bus; fix memleaks.
11877
11878         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11879
11880 2003-04-03  Havoc Pennington  <hp@pobox.com>
11881
11882         * bus/config-parser.c (bus_config_parser_unref): free
11883         list of mechanisms, bug discovered by test suite enhancements
11884         (putting system.conf and session.conf into suite)
11885
11886         * test/Makefile.am, test/test-service.c: add placeholder for a
11887         test service that we'll activate as part of test suite. Doesn't
11888         do anything yet.
11889
11890         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11891         setting NULL value, and use system malloc not dbus_malloc()
11892         when we have unavoidable memleakage.
11893
11894         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11895         didn't work, and support DBUS_BUS_ACTIVATION.
11896
11897         * bus/activation.c (child_setup): pass our well-known bus type to
11898         the child
11899
11900         * bus/config-parser.c: support <type> to specify well-known type
11901
11902         * doc/dbus-specification.sgml: document the env variables to
11903         locate well-known buses and find service activator
11904
11905 2003-04-02  Havoc Pennington  <hp@redhat.com>
11906
11907         * test/Makefile.am (all-local): add a rule to copy tests to
11908         builddir, so we can have generated tests. Use this to remove the
11909         silly hack for testing system.conf and session.conf. Will use this
11910         shortly to generate .service files pointing to test binaries.
11911
11912 2003-04-02  Havoc Pennington  <hp@redhat.com>
11913
11914         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11915         current alloc and needed new length, not max of the doubled
11916         allocation and needed new length. Also, when building tests,
11917         don't do the double-allocation stuff, just realloc every time.
11918
11919 2003-04-02  Havoc Pennington  <hp@redhat.com>
11920
11921         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11922         in error messages
11923         (_dbus_string_get_dirname): new
11924         (_dbus_sysdeps_test): new
11925         (_dbus_directory_open): include dirnames in error messages
11926
11927         * bus/config-parser.c: interpret <include> and <includedir> and
11928         <servicedir> relative to config file location if the given
11929         filename is not absolute.
11930
11931         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11932
11933 2003-04-02  Havoc Pennington  <hp@redhat.com>
11934
11935         * bus/connection.c (bus_transaction_send_error_reply): set sender
11936         service for the error, and unref the reply on success
11937
11938         * bus/activation.c: convert to use BusTransaction so OOM can be
11939         handled correctly
11940         (bus_activation_service_created): set sender of the message
11941
11942 2003-04-01  Havoc Pennington  <hp@redhat.com>
11943
11944         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11945         <includedir> (at least mostly)
11946
11947         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11948         first, then the user ID
11949
11950 2003-04-01  Havoc Pennington  <hp@pobox.com>
11951
11952         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11953         function
11954
11955         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11956
11957         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11958
11959         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11960         socket 0777, and unlink any existing socket.
11961
11962         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11963         the configuration file so specifies; set up auth mechanism
11964         restrictions
11965
11966         * bus/config-parser.c (bus_config_parser_content): add support
11967         for <fork> option and fill in code for <auth>
11968
11969         * bus/system.conf.in: add <fork/> to default configuration,
11970         and limit auth mechanisms to EXTERNAL
11971
11972         * doc/config-file.txt (Elements): add <fork>
11973
11974         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11975         (_dbus_change_identity): new function
11976
11977 2003-03-31  Havoc Pennington  <hp@redhat.com>
11978
11979         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11980         (_dbus_listen_unix_socket): fix off-by-one error in null
11981         termination spotted by Nalin
11982
11983 2003-03-31  Havoc Pennington  <hp@redhat.com>
11984
11985         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11986         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11987         having a real home directory available.
11988
11989 2003-03-31  Havoc Pennington  <hp@redhat.com>
11990
11991         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11992
11993         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11994
11995         * configure.in: add support for specifying a style of init script
11996         to install
11997
11998 2003-03-31  Havoc Pennington  <hp@redhat.com>
11999
12000         Fix some annoying DBusString API and fix all affected code.
12001
12002         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12003         max_length argument
12004         (_dbus_string_get_data): change to return string instead of using
12005         an out param
12006         (_dbus_string_get_const_data): ditto
12007         (_dbus_string_get_data_len): ditto
12008         (_dbus_string_get_const_data_len): ditto
12009
12010 2003-03-31  Havoc Pennington  <hp@redhat.com>
12011
12012         * bus/main.c (main): fix up the command line arguments to be nicer
12013
12014 2003-03-31  Havoc Pennington  <hp@redhat.com>
12015
12016         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12017         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12018         final location that lands in the config file
12019
12020         * bus/config-loader-expat.c (bus_config_load): fix type of
12021         XML_Parser variable
12022
12023         * doc/TODO: remove TODO item for dbus_bus_get()
12024
12025         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12026
12027 2003-03-31  Havoc Pennington  <hp@pobox.com>
12028
12029         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12030         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12031         argument since they are always client side
12032
12033         * dbus/dbus-server.c (dbus_server_get_address): new function
12034
12035         * bus/main.c (main): take the configuration file as an argument.
12036
12037         * test/data/valid-config-files/debug-allow-all.conf: new file to
12038         use with dispatch.c tests for example
12039
12040         * bus/test-main.c (main): require test data dir
12041
12042         * bus/bus.c (bus_context_new): change this to take a
12043         configuration file name as argument
12044
12045         * doc/config-file.txt (Elements): add <servicedir>
12046
12047         * bus/system.conf, bus/session.conf: new files
12048
12049         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12050         well-known socket if none set
12051
12052         * configure.in: create system.conf and session.conf
12053
12054 2003-03-30  Havoc Pennington  <hp@pobox.com>
12055
12056         * bus/config-parser.c: hacking
12057
12058         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12059         to shut down, since it could cause weirdness with the DBusList
12060         lock
12061
12062         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12063         link-oriented stack routines
12064         (alloc_link): free the mempool if the first alloc from it fails
12065
12066         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12067
12068         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12069         from GLib
12070         (_dbus_string_skip_white): new
12071
12072         * doc/config-file.txt (Elements): add <includedir>
12073
12074 2003-03-28  Havoc Pennington  <hp@pobox.com>
12075
12076         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12077         (_dbus_string_copy_data): new functions
12078
12079 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12080
12081         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12082         * dbus/dbus-bus.h:
12083         Add dbus_bus_get.
12084
12085         * dbus/dbus-memory.c:
12086         Fix a doc comment.
12087
12088 2003-03-28  Havoc Pennington  <hp@pobox.com>
12089
12090         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12091         I think it may have just been superstition. Not sure.
12092
12093         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12094         failures that were not being handled.
12095
12096         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12097
12098         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12099         row that will fail on out-of-memory.
12100
12101         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12102         function for testing out-of-memory handling.
12103
12104         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12105         allocation functions, they do map exactly to the expat ones.
12106
12107 2003-03-27  Havoc Pennington  <hp@redhat.com>
12108
12109         * bus/config-loader-libxml.c (bus_config_load): add another error
12110         check
12111
12112 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12113
12114         * doc/TODO:
12115         Add note about automatic service activation.
12116
12117         * doc/dbus-specification.sgml:
12118         Rename the specification and clarify a few things.
12119
12120 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12121
12122         * Doxyfile.in:
12123         * dbus/dbus-address.c:
12124         * dbus/dbus-dict.c:
12125         * dbus/dbus-marshal.c:
12126         * dbus/dbus-server-debug-pipe.c:
12127         * dbus/dbus-transport-unix.c:
12128         Fix documentation warnings.
12129
12130 2003-03-26  Havoc Pennington  <hp@pobox.com>
12131
12132         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12133         after every test so it's quick and easy to see which leaked, and
12134         so we test multiple dbus_shutdown() calls
12135
12136         * configure.in: change configure.in XML stuff to also support
12137         expat
12138
12139         * config-loader-libxml.c: some hacking
12140
12141         * config-loader-expat.c: some hacking
12142
12143         * config-parser.c: some hacking, plus tests
12144
12145 2003-03-25  Havoc Pennington  <hp@redhat.com>
12146
12147         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12148
12149         * configure.in: add --with-xml option to specify XML library,
12150         right now only libxml is supported.
12151
12152         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12153         nonworking code between home and work, still just stubs
12154
12155 2003-03-24  Havoc Pennington  <hp@redhat.com>
12156
12157         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12158         file
12159
12160         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12161         NULL argument for "message" if the error is a well-known one,
12162         fill in a generic message in this case.
12163
12164         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12165         favor of DBusError
12166
12167         * bus/test.c (bus_test_flush_bus): add
12168
12169         * bus/policy.c (bus_policy_test): test code stub
12170
12171 2003-03-24  Havoc Pennington  <hp@pobox.com>
12172
12173         * bus/connection.c (bus_connections_setup_connection): set up
12174         the "can this user connect" function, but it always returns
12175         TRUE until we have a config file parser so we can have a config
12176         file that allows connections.
12177
12178 2003-03-23  Havoc Pennington  <hp@pobox.com>
12179
12180         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12181         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12182         the mutex, so we can check for proper memory management
12183         and OOM handling.
12184
12185         * dbus/dbus-dataslot.c: remove the mutex from
12186         DBusDataSlotAllocator and lock it manually when using it,
12187         to simplify fitting it into the global slots framework.
12188
12189         * dbus/dbus-threads.c (init_static_locks): rework how we're
12190         handling global locks so they are easily shut down.
12191
12192         * bus/policy.c (bus_policy_append_rule): fix
12193
12194         * bus/test-main.c (main): check for memleaks
12195
12196         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12197         test suite check for memleaks
12198
12199         * dbus/dbus-memory.c: add support in test mode for tracking
12200         number of outstanding blocks
12201
12202 2003-03-23  Havoc Pennington  <hp@pobox.com>
12203
12204         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12205         policies code
12206
12207         * dbus/dbus-hash.h: add ULONG hash keys
12208
12209         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12210         (_dbus_get_group_id): new function
12211
12212 2003-03-20  Havoc Pennington  <hp@redhat.com>
12213
12214         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12215         new function
12216         (dbus_connection_get_unix_user): new function
12217
12218 2003-03-20  Havoc Pennington  <hp@pobox.com>
12219
12220         * bus/connection.c (bus_connection_send_oom_error): assert that
12221         message has a sender
12222         (connection_execute_transaction): ditto
12223         (bus_connection_preallocate_oom_error): fix to set the sender, and
12224         set recipient to the destination service, not the bus driver
12225
12226         * bus/policy.c: hacking
12227
12228         * dbus/dbus-message.c (dbus_message_service_is): new function
12229         (dbus_message_sender_is): new
12230
12231 2003-03-19  Havoc Pennington  <hp@redhat.com>
12232
12233         * bus/policy.c: start sketching code for policy restrictions on
12234         what connections can do.
12235
12236 2003-03-18  Havoc Pennington  <hp@redhat.com>
12237
12238         * doc/TODO: some notes on high-level todo items. Little nitpick
12239         stuff is all in @todo, so no need to add it here.
12240
12241         * doc/config-file.txt: some notes on how config file might look
12242
12243 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12244
12245         * configure.in: 0.6
12246
12247         * NEWS: Update.
12248
12249 2003-03-17  Havoc Pennington  <hp@redhat.com>
12250
12251         * dbus/dbus-internals.h: add gcc attributes so that
12252         our printf-style functions warn on bad arguments to
12253         format
12254
12255         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12256         format bug
12257
12258         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12259         printf format bug
12260
12261 2003-03-17  Havoc Pennington  <hp@redhat.com>
12262
12263         * bus/test-main.c (main): make it print something as it runs
12264         so make check doesn't look stuck
12265
12266         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12267         from CVS, now obsolete
12268
12269 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12270
12271         * bus/dispatch.c: (bus_dispatch):
12272         Refetch the service name since it may have been reallocated
12273         when dbus_message_set_sender was called.
12274
12275         * dbus/dbus-sysdeps.c: (_dbus_accept):
12276         Add address and address length variables and use them to stop
12277         valgrind from complaining.
12278
12279 2003-03-17  Havoc Pennington  <hp@pobox.com>
12280
12281         All tests pass, no memleaks, no valgrind complaints.
12282
12283         * bus/test.c: refcount handler_slot
12284
12285         * bus/connection.c (bus_connections_new): refcount
12286         connection_data_slot
12287
12288         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12289         bytes so that auth scripts pass.
12290
12291         * bus/dispatch.c: init message_handler_slot so it gets allocated
12292         properly
12293
12294         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12295
12296         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12297         dealloc server_pipe_hash when no longer used for benefit of
12298         leak checking
12299
12300         * dbus/dbus-auth.c (process_command): memleak fix
12301
12302         * bus/dispatch.c (check_hello_message): memleak fix
12303
12304 2003-03-16  Havoc Pennington  <hp@pobox.com>
12305
12306         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12307
12308 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12309
12310         * bus/activation.c (bus_activation_activate_service): Append
12311         the pending activation entry to the list of pending activations.
12312
12313 2003-03-16  Havoc Pennington  <hp@pobox.com>
12314
12315         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12316         connections
12317
12318         * dbus/dbus-address.c (create_entry): fix OOM handling when
12319         failing to alloc entry->method
12320
12321 2003-03-16  Havoc Pennington  <hp@pobox.com>
12322
12323         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12324         the watch
12325
12326         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12327         add some missing dbus_set_result
12328
12329         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12330         alloc the DBusMessageHandler
12331
12332         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12333         the transport here, since we call this from the finalizer; it
12334         resulted in a double-finalize.
12335
12336         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12337         where we tried to use transport->connection that was NULL,
12338         happened when transport was disconnected early on due to OOM
12339
12340         * bus/*.c: adapt to handle OOM for watches/timeouts
12341
12342         * dbus/dbus-transport-unix.c: port to handle OOM during
12343         watch handling
12344
12345         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12346         reference to unused bytes instead of a copy
12347
12348         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12349         out of memory
12350
12351         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12352         FALSE on OOM
12353
12354         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12355         of memory
12356
12357 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12358
12359         * doc/dbus-specification.sgml:
12360         Document reply message for ActivateService.
12361
12362 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12363
12364         * bus/activation.c: (bus_pending_activation_entry_free),
12365         (bus_pending_activation_free), (bus_activation_new),
12366         (bus_activation_unref), (bus_activation_service_created),
12367         (bus_activation_activate_service):
12368         * bus/activation.h:
12369         * bus/bus.c: (bus_context_new):
12370         * bus/desktop-file.c: (new_section):
12371         * bus/driver.c: (bus_driver_send_service_deleted),
12372         (bus_driver_handle_activate_service):
12373         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12374         * bus/services.h:
12375         * dbus/dbus-connection.c:
12376         (dbus_connection_send_with_reply_and_block):
12377         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12378         * dbus/dbus-protocol.h:
12379         Make activation work better. Now pending activations will be queued
12380         and the daemon won't try to activate services that are already registered.
12381
12382 2003-03-16  Havoc Pennington  <hp@pobox.com>
12383
12384         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12385         connection data
12386
12387         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12388         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12389
12390 2003-03-16  Havoc Pennington  <hp@pobox.com>
12391
12392         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12393         this. always run the test suite before commit...
12394
12395         * bus/*: adapt to DBusConnection API changes
12396
12397         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12398         requires renaming stuff to avoid dbus_connection_dispatch name
12399         conflict.
12400
12401         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12402         function
12403
12404         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12405         separate from _dbus_message_loader_return_buffer()
12406
12407         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12408         this, because it's now always broken to use; the number of
12409         messages in queue vs. the number still buffered by the message
12410         loader is undefined/meaningless. Should use
12411         dbus_connection_get_dispatch_state().
12412         (dbus_connection_dispatch): rename from
12413         dbus_connection_dispatch_message
12414
12415 2003-03-16  Havoc Pennington  <hp@pobox.com>
12416
12417         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12418         implementation
12419
12420 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12421
12422         * dbus/dbus-connection.c:
12423         (dbus_connection_send_with_reply_and_block):
12424         Decrease connection->n_incoming when removing an entry
12425         from the list.
12426         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12427         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12428         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12429         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12430         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12431         (dbus_dict_get_byte_array):
12432         Handle NULL arrays and strings. Also add support for byte arrays.
12433
12434         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12435         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12436         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12437         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12438         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12439         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12440         * dbus/dbus-marshal.h:
12441         Add support for marshalling and demarshalling empty arrays and strings.
12442
12443         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12444         (dbus_message_append_string_array),
12445         (dbus_message_iter_get_boolean),
12446         (dbus_message_iter_get_boolean_array),
12447         (dbus_message_iter_get_int32_array),
12448         (dbus_message_iter_get_uint32_array),
12449         (dbus_message_iter_get_double_array),
12450         (dbus_message_iter_get_byte_array),
12451         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12452         (check_message_handling):
12453         Add support for getting empty arrays and dicts.
12454
12455         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12456         Don't do any validation at all for now, that's better than just checking
12457         for ASCII.
12458
12459         * test/data/valid-messages/emptiness.message:
12460         New test message with lots of empty arrays.
12461
12462 2003-03-16  Havoc Pennington  <hp@pobox.com>
12463
12464         * dbus/dbus-connection.c
12465         (_dbus_connection_queue_received_message_link): new function that
12466         can't fail due to OOM
12467
12468         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12469         new function pops a message together with a list link
12470         containing it.
12471
12472         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12473         message queuing functions to avoid needing to alloc memory
12474
12475 2003-03-16  Havoc Pennington  <hp@pobox.com>
12476
12477         Oops - test code was only testing failure of around 30 of the
12478         mallocs in the test path, but it turns out there are 500+
12479         mallocs. I believe this was due to misguided linking setup such
12480         that there was one copy of dbus_malloc etc. in the daemon and one
12481         in the shared lib, and only daemon mallocs were tested. In any
12482         case, the test case now tests all 500+ mallocs, and doesn't pass
12483         yet, though there are lots of fixes in this patch.
12484
12485         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12486         this so that it doesn't need to allocate memory, since it
12487         has no way of indicating failure due to OOM (and would be
12488         annoying if it did).
12489
12490         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12491
12492         * bus/Makefile.am: rearrange to create two self-contained
12493         libraries, to avoid having libraries with overlapping symbols.
12494         that was resulting in weirdness, e.g. I'm pretty sure there
12495         were two copies of global static variables.
12496
12497         * dbus/dbus-internals.c: move the malloc debug stuff to
12498         dbus-memory.c
12499
12500         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12501         empty.
12502
12503         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12504
12505         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12506         on failure.
12507
12508         * bus/dispatch.c (bus_dispatch_add_connection): free
12509         message_handler_slot when no longer using it, so
12510         memory leak checkers are happy for the test suite.
12511
12512         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12513
12514         * bus/bus.c (new_connection_callback): disconnect in here if
12515         bus_connections_setup_connection fails.
12516
12517         * bus/connection.c (bus_connections_unref): fix to free the
12518         connections
12519         (bus_connections_setup_connection): if this fails, don't
12520         disconnect the connection, just be sure there are no side
12521         effects.
12522
12523         * dbus/dbus-string.c (undo_alignment): unbreak this
12524
12525         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12526         leaking
12527         (_dbus_auth_new): fix the order in which we free strings
12528         on OOM failure
12529
12530         * bus/connection.c (bus_connection_disconnected): fix to
12531         not send ServiceDeleted multiple times in case of memory
12532         allocation failure
12533
12534         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12535         get the base service name
12536         (dbus_bus_register_client): don't return base service name,
12537         instead store it on the DBusConnection and have an accessor
12538         function for it.
12539         (dbus_bus_register_client): rename dbus_bus_register()
12540
12541         * bus/dispatch.c (check_hello_message): verify that other
12542         connections on the bus also got the correct results, not
12543         just the one sending hello
12544
12545 2003-03-15  Havoc Pennington  <hp@pobox.com>
12546
12547         Make it pass the Hello handling test including all OOM codepaths.
12548         Now to do other messages...
12549
12550         * bus/services.c (bus_service_remove_owner): fix crash when
12551         removing owner from an empty list of owners
12552         (bus_registry_ensure): don't leave service in the list of
12553         a connection's owned services if we fail to put the service
12554         in the hash table.
12555
12556         * bus/connection.c (bus_connection_preallocate_oom_error): set
12557         error flag on the OOM error.
12558
12559         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12560         handle _dbus_transport_set_connection failure
12561
12562         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12563         to create watches up front and simply enable/disable them as
12564         needed.
12565         (unix_connection_set): this can now fail on OOM
12566
12567         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12568         of enabling/disabling a watch or timeout.
12569
12570         * bus/loop.c (bus_loop_iterate): don't touch disabled
12571         watches/timeouts
12572
12573         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12574
12575 2003-03-15  Havoc Pennington  <hp@pobox.com>
12576
12577         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12578         write useful test code, after all that futzing around ;-)
12579
12580         Test does not yet pass because we can't handle OOM in
12581         _dbus_transport_messages_pending (basically,
12582         dbus_connection_preallocate_send() does not prealloc the write
12583         watch). To fix this, I think we need to add new stuff to
12584         set_watch_functions, namely a SetEnabled function so we can alloc
12585         the watch earlier, then enable it later.
12586
12587         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12588         dbus-memory.c to the convenience lib
12589
12590         * bus/test.c: rename some static functions to keep them clearly
12591         distinct from stuff in connection.c. Handle client disconnection.
12592
12593 2003-03-14  Havoc Pennington  <hp@pobox.com>
12594
12595         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12596         transport, tests more of the real codepath. Set up clients
12597         with bus_setup_debug_client.
12598
12599         * bus/test.c (bus_setup_debug_client): function to set up debug
12600         "clients" on the main loop
12601
12602         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12603         support
12604
12605         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12606         server type
12607
12608         * dbus/dbus-server-debug.c: support a debug server based on pipes
12609
12610         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12611         (_dbus_close): new function
12612
12613         * configure.in: check for socketpair
12614
12615 2003-03-14  Havoc Pennington  <hp@redhat.com>
12616
12617         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12618         cheesy hack
12619
12620         * dbus/dbus-transport-debug.c: rework this a good bit to be
12621         less complicated. hopefully still works.
12622
12623         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12624         manually
12625
12626         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12627         after running it
12628
12629         * dbus/dbus-message.c (dbus_message_copy): rename from
12630         dbus_message_new_from_message, fix it up to copy
12631         all the message fields, add test case
12632
12633         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12634         not quite passing yet
12635
12636 2003-03-14  Havoc Pennington  <hp@pobox.com>
12637
12638         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12639         until no work remains" in test code. (the large diff here
12640         is just code movement, no actual changes)
12641
12642         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12643         1, no point waiting around for test code.
12644         (_dbus_server_debug_accept_transport): unref the timeout
12645         after adding it (right?)
12646
12647         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12648
12649 2003-03-13  Havoc Pennington  <hp@redhat.com>
12650
12651         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12652         out of memory
12653
12654         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12655         of memory
12656
12657         * dbus/dbus-connection.h: Make AddWatchFunction and
12658         AddTimeoutFunction return a bool so they can fail on out-of-memory
12659
12660         * bus/bus.c (bus_context_new): set up timeout handlers
12661
12662         * bus/connection.c (bus_connections_setup_connection): set up
12663         timeout handlers
12664
12665         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12666         can fail
12667
12668         * bus/bus.c (bus_context_new): adapt to changes
12669
12670         * bus/connection.c: adapt to changes
12671
12672         * test/watch.c: adapt to DBusWatch changes
12673
12674         * bus/dispatch.c (bus_dispatch_test): started adding this but
12675         didn't finish
12676
12677 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12678
12679         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12680
12681 2003-03-13  Havoc Pennington  <hp@pobox.com>
12682
12683         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12684         set up a test framework as for the library
12685
12686 2003-03-12  Havoc Pennington  <hp@pobox.com>
12687
12688         Throughout: purge global variables, introduce BusActivation,
12689         BusConnections, BusRegistry, etc. objects instead.
12690
12691         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12692         message bus object
12693
12694         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12695         going to redo this a bit differently I think
12696
12697 2003-03-12  Havoc Pennington  <hp@redhat.com>
12698
12699         Mega-patch that gets the message bus daemon initially handling
12700         out-of-memory. Work still needed. Also lots of random
12701         moving stuff to DBusError instead of ResultCode.
12702
12703         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12704
12705         * dbus/dbus-connection.c
12706         (dbus_connection_send_with_reply_and_block): use DBusError
12707
12708         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12709         DBusResultCode
12710
12711         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12712         code here, as the only failure possible is OOM.
12713
12714         * bus/connection.c (bus_connection_disconnect):
12715         rename bus_connection_disconnected as it's a notification only
12716
12717         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12718         "name" on get_args failure, should be done by get_args;
12719         don't disconnect client for bad args, just return an error.
12720         (bus_driver_handle_service_exists): ditto
12721
12722         * bus/services.c (bus_services_list): NULL-terminate returned array
12723
12724         * bus/driver.c (bus_driver_send_service_lost)
12725         (bus_driver_send_service_acquired): send messages from driver to a
12726         specific client to the client's unique name, not to the broadcast
12727         service.
12728
12729         * dbus/dbus-message.c (decode_header_data): reject messages that
12730         contain no name field
12731         (_dbus_message_get_client_serial): rename to
12732         dbus_message_get_serial and make public
12733         (_dbus_message_set_serial): rename from set_client_serial
12734         (_dbus_message_set_reply_serial): make public
12735         (_dbus_message_get_reply_serial): make public
12736
12737         * bus/connection.c (bus_connection_foreach): allow stopping
12738         iteration by returning FALSE from foreach function.
12739
12740         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12741         (dbus_connection_free_preallocated_send)
12742         (dbus_connection_preallocate_send): new API for sending a message
12743         without possibility of malloc failure.
12744         (dbus_connection_send_message): rename to just
12745         dbus_connection_send (and same for whole function family)
12746
12747         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12748
12749         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12750
12751         * bus/activation.c: handle/return errors
12752
12753         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12754
12755         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12756         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12757         (_dbus_result_from_errno): move to this file
12758
12759 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12760
12761         * dbus/dbus-marshal.c:
12762         (_dbus_marshal_set_string):
12763         Take a length argument so we can marshal the correct string
12764         length.
12765
12766         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12767         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12768         (_dbus_marshal_test):
12769         * dbus/dbus-marshal.h:
12770         Add support for marshalling and demarshalling dicts.
12771
12772         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12773         Add support for TYPE DICT.
12774
12775         * dbus/dbus-message.c: (set_string_field):
12776         Adjust header padding.
12777
12778         (dbus_message_append_args_valist), (dbus_message_append_dict),
12779         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12780         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12781         (check_message_handling), (check_have_valid_message):
12782         * dbus/dbus-message.h:
12783         Add functions for setting and getting dicts.
12784
12785         * dbus/dbus-protocol.h:
12786         Add DBUS_TYPE_DICT.
12787
12788         * dbus/dbus.h:
12789         Add dbus-dict.h
12790
12791         * doc/dbus-specification.sgml:
12792         Add information about how dicts are marshalled.
12793
12794         * test/data/invalid-messages/dict-with-nil-value.message:
12795         * test/data/invalid-messages/too-short-dict.message:
12796         * test/data/valid-messages/dict-simple.message:
12797         * test/data/valid-messages/dict.message:
12798         Add sample messages containing dicts.
12799
12800 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12801
12802         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12803
12804 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12805
12806         * dbus/Makefile.am:
12807         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12808         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12809         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12810         (dbus_dict_set_double), (dbus_dict_set_string),
12811         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12812         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12813         (dbus_dict_set_string_array), (_dbus_dict_test):
12814         * dbus/dbus-dict.h:
12815         Fix according to comments from Havoc.
12816
12817 2003-03-06  Michael Meeks  <michael@server.home>
12818
12819         * configure.in: if we don't have kde-config, disable have_qt.
12820
12821 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12822
12823         * dbus/Makefile.am:
12824         Add dbus-dict.[ch]
12825
12826         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12827         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12828         (dbus_dict_remove), (dbus_dict_get_value_type),
12829         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12830         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12831         (dbus_dict_put_double), (dbus_dict_put_string),
12832         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12833         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12834         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12835         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12836         (dbus_dict_get_double), (dbus_dict_get_string),
12837         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12838         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12839         (dbus_dict_get_string_array), (_dbus_dict_test):
12840         * dbus/dbus-dict.h:
12841         Add DBusDict implementation
12842
12843         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12844         * dbus/dbus-test.h:
12845         Add _dbus_dict_test
12846
12847 2003-03-04  Havoc Pennington  <hp@pobox.com>
12848
12849         * test/data/auth/*: adapt to changes
12850
12851         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12852         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12853         userid
12854
12855         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12856         more stuff from being in a context name, to make the protocol
12857         simpler to deal with
12858
12859         * dbus/dbus-errors.c (dbus_error_has_name): new function
12860         (dbus_error_is_set): new function
12861
12862         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12863         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12864
12865         * dbus/dbus-connection.c (dbus_connection_flush): also read
12866         messages during a flush operation
12867
12868         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12869
12870 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12871
12872         * configure.in: Check for gethostbyname on Solaris.
12873
12874         * dbus/dbus-transport.c: (_dbus_transport_open):
12875         Remove duplicate "tcp" entry.
12876
12877         * doc/dbus-specification.sgml:
12878         Clarify some things.
12879
12880 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12881
12882         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12883         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12884         (_dbus_keyring_test):
12885         * dbus/dbus-md5.c: (_dbus_md5_compute):
12886         * dbus/dbus-sha.c: (_dbus_sha_compute):
12887         Plug memory leaks.
12888
12889 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12890
12891         * README: Add some things.
12892
12893 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12894
12895         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12896         after case DBUS_TYPE_BOOELAN.
12897
12898 2003-03-02  Havoc Pennington  <hp@pobox.com>
12899
12900         * test/break-loader.c (randomly_set_extreme_ints): add test that
12901         sets really huge and small integers
12902
12903         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12904         that length of boolean array fits in the string, and that
12905         string has room for boolean value in single-bool case.
12906
12907         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12908         optional value to "ALIGN" command which is what to fill the
12909         alignment with.
12910
12911         * test/data/valid-messages/no-padding.message: add regression
12912         test for the message padding problem
12913
12914 2003-03-02  Havoc Pennington  <hp@pobox.com>
12915
12916         * dbus/dbus-message.c (decode_header_data): fix to always init
12917         message_padding, from Benjamin Dauvergne
12918
12919 2003-03-02  Havoc Pennington  <hp@pobox.com>
12920
12921         * configure.in: 0.5
12922
12923         * NEWS: Update.
12924
12925 2003-03-01  Joe Shaw  <joe@assbarn.com>
12926
12927         * configure.in: Check for "struct cmsgcred" and try to access its
12928         members for BSD-like unices.
12929
12930         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12931         _dbus_read_credentials_unix_socket().
12932         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12933         read() for reading the credential byte off the unix socket.  Use
12934         struct cmsgcred on systems that support it.
12935
12936 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12937
12938         * glib/Makefile.am:
12939         * configure.in:
12940         Make gthreads-2.0 dependency optional. Don't build thread test if
12941         its not found.
12942
12943 2003-02-27  Havoc Pennington  <hp@pobox.com>
12944
12945         * dbus/dbus-connection.c
12946         (dbus_connection_send_message_with_reply_and_block): fix doh!
12947         doh! doh! bug that resulted in never removing a reply from the
12948         queue, no wonder we called get_reply_serial so much ;-)
12949
12950         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12951         and client serial instead of demarshaling them every time
12952
12953 2003-02-27  Havoc Pennington  <hp@pobox.com>
12954
12955         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12956         more inlined, using dbus-string-private.h, speeds things up
12957         substantially
12958
12959         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12960         when freeing the string
12961         (_dbus_string_steal_data): fix for align offset
12962         (undo_alignment): new function
12963
12964 2003-02-26  Havoc Pennington  <hp@redhat.com>
12965
12966         All kinds of audit fixes from Owen, plus initial attempt to
12967         handle unaligned memory returned from malloc.
12968
12969         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12970         leave room for align_offset and nul byte
12971         (fixup_alignment): function to track an align_offset and
12972         ensure real->str is aligned
12973         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12974         to allow a nul byte plus align offset
12975         (_dbus_string_lock): fix overflow issue
12976         (_dbus_string_init_const_len): add assertions on sanity of len,
12977         assign allocated to be ALLOCATION_PADDING larger than len
12978         (set_length): fixup the overflow handling
12979         (_dbus_string_get_data_len): fix overflow in assertion
12980         (open_gap): detect overflow in size of gap to be opened
12981         (_dbus_string_lengthen): add overflow check
12982         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12983         (_dbus_string_append): add overflow check
12984         (_dbus_string_append_unichar): overflow
12985         (_dbus_string_delete): fix overflow in assertion
12986         (_dbus_string_copy_len): overflow in assertion
12987         (_dbus_string_replace_len): overflows in assertions
12988         (_dbus_string_find): change to implement in terms of
12989         _dbus_string_find_to
12990         (_dbus_string_find_to): assorted fixage
12991         (_dbus_string_equal_c_str): assert c_str != NULL,
12992         fix logic so the function works
12993         (_dbus_string_ends_with_c_str): fix overflow thingy
12994         (_dbus_string_base64_encode): overflow fix
12995         (_dbus_string_validate_ascii): overflow
12996         (_dbus_string_validate_nul): overflow
12997
12998 2003-02-26  Havoc Pennington  <hp@redhat.com>
12999
13000         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13001
13002 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13003
13004         * configure.in:
13005         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13006
13007         * dbus/dbus-connection.c:
13008         * dbus/dbus-connection.h:
13009         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13010         Add dbus_connection_set_wakeup_main_function and use it when queueing
13011         incoming and outgoing messages.
13012
13013
13014         * dbus/dbus-dataslot.c:
13015         Threadsafe usage of DBusDataSlotAllocator
13016
13017         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13018         dbus_new can fail.
13019
13020         * dbus/dbus-server-unix.c:
13021         Add todo comment
13022
13023         * glib/dbus-gmain.c:
13024         Implement the new wakeup functions for glib.
13025
13026         * glib/Makefile.am:
13027         * glib/test-thread-client.c:
13028         * glib/test-thread-server.c:
13029         * glib/test-thread.h:
13030         Initial cut at some thread test code. Not really done yet.
13031
13032 2003-02-26  Havoc Pennington  <hp@pobox.com>
13033
13034         * dbus/dbus-connection.c
13035         (dbus_connection_send_message_with_reply_and_block): fix crash
13036         where we ref'd the outgoing message instead of the returned reply
13037
13038         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13039         at the end of this function, so if we didn't need to read for
13040         authentication, we reinstall it for receiving messages
13041
13042         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13043         a NULL sender for peer-to-peer case
13044
13045         * dbus/dbus-transport-unix.c (check_read_watch): handle
13046         !authenticated case correctly
13047
13048         * glib/dbus-gmain.c: add support for DBusServer
13049
13050         * dbus/dbus-server.c: add data slot support
13051
13052         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13053         return values and handle errors
13054
13055         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13056         DBusConnection
13057
13058         * Doxyfile.in (INPUT): add glib subdir
13059
13060         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13061         setup_with_g_main instead of hookup_with_g_main; write docs
13062
13063 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13064
13065         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13066         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13067         * dbus/dbus-message.c: (dbus_message_append_boolean),
13068         (dbus_message_append_boolean_array),
13069         (dbus_message_get_args_valist), (_dbus_message_test):
13070         * dbus/dbus-message.h:
13071         * doc/dbus-specification.sgml:
13072         Various fixes as pointed out by Havoc.
13073
13074         * test/data/invalid-messages/bad-boolean-array.message:
13075         * test/data/invalid-messages/bad-boolean.message:
13076         Add invalid boolean value test cases.
13077
13078 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13079
13080         * dbus/dbus-internals.c: (_dbus_type_to_string):
13081         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13082         (_dbus_marshal_validate_arg):
13083         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13084         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13085         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13086         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13087         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13088         (dbus_message_iter_get_double),
13089         (dbus_message_iter_get_boolean_array), (message_iter_test):
13090         * dbus/dbus-message.h:
13091         * dbus/dbus-protocol.h:
13092         * doc/dbus-specification.sgml:
13093         * test/data/valid-messages/lots-of-arguments.message:
13094         Add support for boolean and boolean array types.
13095
13096 2003-02-23  Havoc Pennington  <hp@pobox.com>
13097
13098         * dbus/dbus-keyring.c: finish most of this implementation and
13099         simple unit test
13100
13101         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13102         these barf if the error isn't cleared to NULL
13103
13104         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13105         (_dbus_create_directory): new function
13106
13107         * dbus/dbus-errors.c (dbus_set_error): fix warning
13108
13109         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13110         (_dbus_string_hex_decode): new function
13111         (test_hex_roundtrip): test code
13112
13113         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13114
13115         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13116
13117         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13118         the save-to-temp/rename trick to atomically write the new file
13119         (_dbus_string_parse_uint): new function
13120
13121 2003-02-22  Havoc Pennington  <hp@pobox.com>
13122
13123         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13124
13125 2003-02-22  Havoc Pennington  <hp@pobox.com>
13126
13127         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13128         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13129
13130         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13131
13132         * dbus/test/data/sha-1: add US government test suite for SHA-1
13133
13134 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13135
13136         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13137         Make string arrays NULL-terminated.
13138
13139         * dbus/dbus-memory.c: (dbus_free_string_array):
13140         * dbus/dbus-memory.h:
13141         New function for freeing NULL-terminated string arrays.
13142
13143         * dbus/dbus-message-builder.c: (append_quoted_string),
13144         (_dbus_message_data_load):
13145         Add support for array types.
13146
13147         * dbus/dbus-message.c: (check_message_handling):
13148         Add more types as test cases.
13149
13150         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13151         (_dbus_string_parse_double):
13152         Add the start offset to the end offset.
13153
13154         * test/data/valid-messages/lots-of-arguments.message:
13155         New test message with lots of arguments.
13156
13157 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13158
13159         * dbus/dbus-message.c: (dbus_message_append_nil),
13160         (dbus_message_append_int32), (dbus_message_append_uint32),
13161         (dbus_message_append_double), (dbus_message_append_string),
13162         (dbus_message_append_int32_array),
13163         (dbus_message_append_uint32_array),
13164         (dbus_message_append_double_array),
13165         (dbus_message_append_byte_array),
13166         (dbus_message_append_string_array):
13167         Fix all out-of-memory handling in these functions.
13168
13169 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13170
13171         * dbus/dbus-message.c: (dbus_message_append_nil):
13172         Fix a silly.
13173
13174 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13175
13176         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13177         (dbus_message_append_nil), (dbus_message_append_int32_array),
13178         (dbus_message_append_uint32_array),
13179         (dbus_message_append_double_array),
13180         (dbus_message_append_byte_array),
13181         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13182         (dbus_message_iter_get_int32_array),
13183         (dbus_message_iter_get_uint32_array),
13184         (dbus_message_iter_get_double_array),
13185         (dbus_message_iter_get_byte_array),
13186         (dbus_message_iter_get_string_array):
13187
13188         * dbus/dbus-message.h:
13189         Add functions for appending and getting arrays.
13190
13191 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13192
13193         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13194         element size at least 8 bytes, fixes mempool tests on
13195         64-bit machines.
13196
13197 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13198
13199         * dbus/dbus-transport-unix.c (unix_do_iteration):
13200         Unlock the connection mutex during a blocking select call.
13201         Add todo about how we need a way to wake up the select.
13202
13203         * dbus/dbus-connection-internal.h:
13204         * dbus/dbus-connection.c:
13205         Add _dbus_connection_lock and _dbus_connection_unlock.
13206
13207 2003-02-19  Havoc Pennington  <hp@pobox.com>
13208
13209         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13210         Doxyfile.in, not Doxyfile
13211
13212         * dbus/dbus-keyring.c: do some hacking on this
13213
13214         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13215
13216         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13217         dbus_error_init
13218         (dbus_set_error): remove dbus_error_init, check for message ==
13219         NULL *before* we sprintf into it, and add @todo about including
13220         system headers in this file
13221
13222         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13223
13224         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13225
13226         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13227         get various bits of user information based on either username
13228         or user ID
13229         (_dbus_homedir_from_username): new function
13230
13231 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13232
13233         * configure.in:
13234         Add check for nonposix getpwnam_r
13235
13236         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13237         Align the pool element size to a sizeof (void *) boundary.
13238
13239         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13240         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13241         General Solaris fixes.
13242
13243         * test/data/valid-messages/simplest-manual.message:
13244         Explicitly state that we want little-endian packing.
13245
13246 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13247
13248         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13249
13250         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13251         Added to create a transport connecting using a tcp/ip socket.
13252
13253         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13254         to a tcp socket at given host and port.
13255         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13256         hostname and port.
13257
13258         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13259
13260         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13261         Added to create a server listening on a TCP/IP socket.
13262
13263 2003-02-19  Havoc Pennington  <hp@pobox.com>
13264
13265         Throughout: mop up all the Doxygen warnings and undocumented
13266         stuff.
13267
13268         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13269         to search any paths.
13270
13271         * dbus/dbus-threads.c: move global mutex initializers to
13272         dbus-internals.h, multiple prototypes was confusing doxygen
13273         besides being kind of ugly
13274
13275         * Doxyfile (PREDEFINED): have Doxygen define
13276         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13277         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13278         (do not abuse the feature! it's for stuff like the autogenerated
13279         macros in dbus-md5.c, not just for things you don't feel like
13280         documenting...)
13281
13282 2003-02-18  Havoc Pennington  <hp@pobox.com>
13283
13284         * dbus/dbus-string.c (_dbus_string_zero): new function
13285
13286         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13287         wrap it in some dbus-friendly API
13288
13289         * dbus/dbus-types.h: add 16-bit types
13290
13291 2003-02-18  Joe Shaw  <joe@assbarn.com>
13292
13293         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13294         credentials from our currently running process.
13295         (get_word): Fix a buglet where we were copying the entire length
13296         instead of relative to our position.
13297
13298         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13299         keys on the stack... it's 640k of data.
13300
13301         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13302         read the credentials byte off the socket, even if we don't have
13303         SO_PEERCRED.
13304         (_dbus_poll): Implement poll() using select() for systems which
13305         don't have it.
13306
13307         * glib/test-dbus-glib.c (main): Print out an error if no
13308         parameters are given.
13309
13310         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13311         can fallback to a secondary auth mechanism if the first fails.
13312
13313 2003-02-18  Havoc Pennington  <hp@pobox.com>
13314
13315         * AUTHORS: add Alex
13316
13317 2003-02-17  Havoc Pennington  <hp@pobox.com>
13318
13319         * doc/dbus-specification.sgml: lots of cosmetic
13320         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13321         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13322         s/server/bus/ (except in authentication section). Add a section
13323         "Message Bus Message Routing"
13324
13325 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13326
13327         Release 0.4
13328
13329         * NEWS: Update
13330
13331 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13332
13333         * doc/dbus-specification.sgml:
13334         Specification updates.
13335
13336 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13337
13338         * bus/activation.c: (bus_activation_init), (child_setup),
13339         (bus_activation_activate_service):
13340         * bus/activation.h:
13341         * bus/main.c: (main):
13342         Set DBUS_ADDRESS environment variable.
13343
13344         * dbus/dbus-errors.c: (dbus_set_error):
13345         Don't use va_copy since that's a C99 feature.
13346
13347         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13348         (_dbus_spawn_async):
13349         * dbus/dbus-sysdeps.h:
13350         Add child_setup_func to _dbus_spawn_async.
13351
13352         * doc/dbus-specification.sgml:
13353         Update specification.
13354
13355         * test/spawn-test.c: (setup_func), (main):
13356         Fix test.
13357
13358 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13359
13360         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13361         Added todo.
13362
13363 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13364
13365         * doc/.cvsignore:
13366         * doc/Makefile.am:
13367         * doc/dbus-test-plan.sgml:
13368         Add test plan document.
13369
13370         * test/Makefile.am:
13371         Fix distcheck.
13372
13373 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13374
13375         * dbus/dbus-message.c: (decode_header_data),
13376         (_dbus_message_loader_return_buffer):
13377         Set the header padding amount when loading a message.
13378
13379 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13380
13381         * bus/dispatch.c: (send_one_message):
13382         Only send broadcast messages to registered connections.
13383
13384         * dbus/dbus-message.c: (dbus_message_name_is):
13385         * dbus/dbus-message.h:
13386         New convenience function.
13387
13388         * dbus/dbus-transport-debug.c: (do_reading):
13389         Only dispatch one message per run.
13390
13391         * test/Makefile.am:
13392         * test/bus-test.c: (new_connection_callback), (die),
13393         (test_hello_client1_handler), (test_hello_client2_handler),
13394         (test_hello_replies), (main):
13395
13396         * test/bus-test-loop.[ch]:
13397         Add these.
13398
13399 2003-02-16  Havoc Pennington  <hp@pobox.com>
13400
13401         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13402         backward conditional
13403
13404 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13405
13406         * dbus/dbus-connection.c:
13407         Implement sent_message_with_reply. (with_reply_and block is still
13408         busted).
13409         Made dispatch_message not lose message if OOM.
13410
13411         * dbus/dbus-errors.h:
13412         Add NoReply error (for reply timeouts).
13413
13414 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13415
13416         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13417         Actually free keys and values when destroying hashtable.
13418
13419 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13420
13421         * dbus/dbus-auth.c: (client_try_next_mechanism):
13422         Plug a leak.
13423
13424         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13425         Return TRUE if there's no thread implementation around.
13426
13427         * glib/dbus-gmain.c: (free_source),
13428         (dbus_connection_hookup_with_g_main):
13429         Make sure to remove the GSource when the connection is finalized.
13430
13431 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13432
13433         * bus/dispatch.c: (bus_dispatch_message_handler):
13434         * dbus/dbus-errors.h:
13435         Return an error if someone tries to send a message to a service
13436         that doesn't exist.
13437
13438 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13439
13440         * bus/activation.c: (load_directory), (bus_activation_init),
13441         (bus_activation_activate_service):
13442         * bus/activation.h:
13443         * bus/driver.c:
13444         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13445         More work on the activation handling.
13446
13447         * dbus/dbus-errors.h:
13448         Add some error messages
13449
13450         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13451         * dbus/dbus-message.h:
13452         New function that creates an error message.
13453
13454         * dbus/dbus-protocol.h:
13455         Add ACTIVATE_SERVER message.
13456
13457         * dbus/dbus-server-unix.c: (unix_handle_watch),
13458         (_dbus_server_new_for_domain_socket):
13459         Call _dbus_fd_set_close_on_exec.
13460
13461         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13462         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13463         (_dbus_fd_set_close_on_exec):
13464         * dbus/dbus-sysdeps.h:
13465         Add _dbus_fd_set_close_on exec function. Also add function that checks
13466         that all open fds are set to close-on-exec and warns otherwise.
13467
13468         * dbus/dbus-transport-unix.c:
13469         (_dbus_transport_new_for_domain_socket):
13470         Call _dbus_fd_set_close_on_exec.
13471
13472 2003-02-16  Havoc Pennington  <hp@pobox.com>
13473
13474         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13475         allow people to avoid setting SIGPIPE to SIG_IGN
13476         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13477         we've been asked not to
13478
13479 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13480
13481         * dbus/dbus-list.c: (_dbus_list_append_link),
13482         (_dbus_list_prepend_link):
13483         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13484         (dbus_realloc):
13485         Warning fixes.
13486
13487 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13488
13489         * bus/Makefile.am:
13490         * bus/activation.c: (bus_activation_entry_free),
13491         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13492         * bus/activation.h:
13493         * bus/main.c: (main):
13494         Add simple activation support, doesn't work yet though.
13495
13496 2003-02-15   Zack Rusin  <zack@kde.org>
13497
13498         * qt/dbus-qthread.cpp:  small casting fix
13499
13500 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13501
13502         * dbus/dbus-errors.c: (dbus_set_error):
13503         * dbus/dbus-errors.h:
13504         Add a few errors and make dbus_set_error void.
13505
13506         * dbus/dbus-sysdeps.c:
13507         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13508         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13509         * dbus/dbus-sysdeps.h:
13510         Add _dbus_spawn_async.
13511
13512         * test/spawn-test.c: (main):
13513         Test for _dbus_spawn_async.
13514
13515 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13516
13517         * dbus/dbus-internals.h:
13518         Fix build without tests.
13519
13520         * dbus/dbus-list.c: (alloc_link):
13521         Fix a segfault when a malloc fails.
13522
13523         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13524         (dbus_malloc0), (dbus_realloc):
13525         Add support for malloc debugging.
13526
13527 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13528
13529         * dbus/dbus-threads.c:
13530         * dbus/dbus-threads.h:
13531         Add condvars. Remove static mutext from API.
13532         Implement static mutexes by initializing them from threads_init.
13533
13534         * glib/dbus-gthread.c:
13535         * qt/dbus-qthread.cpp:
13536         Update with the thread api changes.
13537
13538
13539         * dbus/dbus-list.c:
13540         * dbus/dbus-list.h:
13541         Turn StaticMutex into normal mutex + init function.
13542         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13543         _dbus_list_append_link, _dbus_list_prepend_link
13544
13545
13546         * dbus/dbus-sysdeps.c:
13547         * dbus/dbus-sysdeps.h:
13548         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13549         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13550
13551         * dbus/dbus-protocol.h:
13552         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13553
13554         * dbus/dbus-message.c:
13555         Make ref/unref atomic.
13556         Fix some docs.
13557
13558         * dbus/dbus-connection-internal.h:
13559         * dbus/dbus-connection.c:
13560         * dbus/dbus-connection.h:
13561         Make threadsafe.
13562         Change _peek to _borrow,_return & _steal_borrowed.
13563         Change disconnect callback to event.
13564         Make dbus_connection_dispatch_messages reentrant.
13565
13566         * dbus/dbus-transport.c:
13567         Don't ref the connection on calls to the transport
13568         implementation.
13569
13570         * dbus/dbus-message-handler.c:
13571         Make threadsafe.
13572
13573         * glib/dbus-gmain.c:
13574         Don't use peek_message anymore
13575
13576         * test/Makefile.am:
13577         * test/debug-thread.c:
13578         * test/debug-thread.h:
13579         Simple thread implementation that asserts() on deadlocks in
13580         single-threaded code.
13581
13582         * test/bus-test.c:
13583         (main) Call debug_threads_init.
13584
13585         * test/watch.c:
13586         Use disconnect message instead of disconnect callback.
13587
13588         * bus/connection.c:
13589         * bus/connection.h:
13590         Don't call dbus_connection_set_disconnect_function. Instead export
13591         bus_connection_disconnect.
13592
13593         * bus/dispatch.c:
13594         Call bus_connection_disconnect when we get a disconnected message.
13595
13596 2003-02-15  Havoc Pennington  <hp@pobox.com>
13597
13598         * dbus/dbus-message.c (dbus_message_new): fool around with the
13599         docs
13600
13601 2003-02-14  Havoc Pennington  <hp@pobox.com>
13602
13603         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13604
13605         * dbus/dbus-memory.c: fail if the debug functions indicate we
13606         should
13607
13608         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13609         (_dbus_decrement_fail_alloc_counter): debug functions to
13610         simulate memory allocation failures
13611
13612 2003-02-14  Havoc Pennington  <hp@pobox.com>
13613
13614         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13615         to DBusError
13616
13617 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13618
13619         * bus/driver.c: (bus_driver_handle_hello):
13620         * bus/driver.h:
13621         * bus/services.c: (bus_service_lookup):
13622         Reorder message sending so we get a more sane order.
13623
13624         * test/bus-test.c: (message_handler):
13625         Fix tyop.
13626
13627 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13628
13629         * bus/driver.c: (bus_driver_send_service_deleted),
13630         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13631         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13632         (bus_driver_send_welcome_message),
13633         (bus_driver_handle_list_services),
13634         (bus_driver_handle_acquire_service),
13635         (bus_driver_handle_service_exists):
13636         * dbus/dbus-bus.c: (dbus_bus_register_client),
13637         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13638         * dbus/dbus-errors.c: (dbus_result_to_string):
13639         * dbus/dbus-errors.h:
13640         * dbus/dbus-message.c: (dbus_message_append_args),
13641         (dbus_message_append_args_valist), (dbus_message_get_args),
13642         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13643         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13644         (dbus_message_iter_get_byte_array),
13645         (dbus_message_iter_get_string_array), (message_iter_test),
13646         (check_message_handling), (_dbus_message_test):
13647         * dbus/dbus-message.h:
13648         * test/bus-test.c: (main):
13649         Change fields to arguments in messages, so that they won't be
13650         confused with header fields.
13651
13652         * glib/test-dbus-glib.c: (main):
13653         Remove append_fields from hello message.
13654
13655 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13656
13657         * dbus/dbus-errors.c:
13658         * dbus/dbus-message.c:
13659         * dbus/dbus-string.c:
13660         Documentation fixes.
13661
13662 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13663
13664         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13665         (remove_timeout):
13666         Implement support for timeouts in dbus-glib.
13667
13668 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13669
13670         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13671         * dbus/dbus-message.c: (process_test_subdir):
13672         * test/break-loader.c: (find_breaks_based_on):
13673         Plug some memory leaks.
13674
13675 2003-02-13  Richard Hult  <rhult@codefactory.se>
13676
13677         * bus/main.c: Fix build.
13678
13679         * dbus/dbus-errors.h:
13680         * dbus/dbus-errors.c: Fix copyright for Anders.
13681
13682 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13683
13684         * bus/Makefile.am:
13685         Add utils.[ch]
13686
13687         * bus/connection.c: (bus_connection_foreach):
13688         Fix a warning.
13689
13690         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13691         (unescape_string), (new_section), (parse_section_start),
13692         (parse_key_value), (report_error), (bus_desktop_file_load),
13693         (bus_desktop_file_get_string):
13694         * bus/desktop-file.h:
13695         Use DBusError for error reporting.
13696
13697         * bus/dispatch.c: (send_one_message),
13698         (bus_dispatch_message_handler):
13699         * bus/driver.c: (bus_driver_send_service_deleted),
13700         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13701         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13702         (bus_driver_send_welcome_message),
13703         (bus_driver_handle_list_services),
13704         (bus_driver_handle_acquire_service),
13705         (bus_driver_handle_service_exists):
13706         * bus/loop.c: (bus_loop_run):
13707         * bus/main.c:
13708         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13709
13710         * bus/utils.c: (bus_wait_for_memory):
13711         * bus/utils.h:
13712         New files with general utility functions.
13713
13714         * dbus/dbus-internals.h:
13715         Remove _DBUS_HANDLE_OOM.
13716
13717 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13718
13719         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13720         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13721         * dbus/dbus-errors.h:
13722         Add DBusError structure.
13723
13724 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13725
13726         * test/data/valid-messages/standard-acquire-service.message:
13727         * test/data/valid-messages/standard-hello.message:
13728         * test/data/valid-messages/standard-list-services.message:
13729         * test/data/valid-messages/standard-service-exists.message:
13730         Add some standard messages.
13731
13732 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13733
13734         * bus/driver.c: (bus_driver_send_welcome_message),
13735         (bus_driver_handle_list_services),
13736         (bus_driver_handle_acquire_service),
13737         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13738         Update for API changes in libdbus.
13739
13740         * dbus/dbus-message.c: (dbus_message_new_reply):
13741         * dbus/dbus-message.h:
13742         Remove the name argument. The spec states that replies shouldn't
13743         have a name.
13744
13745 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13746
13747         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13748         (report_error), (bus_desktop_file_load), (lookup_section),
13749         (lookup_line), (bus_desktop_file_get_raw),
13750         (bus_desktop_file_get_string):
13751         * bus/desktop-file.h:
13752         Some fixes, and new functions for getting a key value from a section.
13753
13754 2003-02-13  Havoc Pennington  <hp@pobox.com>
13755
13756         * test/data/auth/fail-after-n-attempts.auth-script: new test
13757
13758         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13759         reject the client.
13760
13761 2003-02-13  Havoc Pennington  <hp@pobox.com>
13762
13763         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13764         dbus_credentials_match were backward
13765
13766         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13767         NO_CREDENTIALS and ROOT_CREDENTIALS
13768
13769         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13770         into here. Never process more commands after we've reached an
13771         end state; store further data as unused bytes.
13772
13773         * test/data/auth/*: add more auth tests
13774
13775         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13776         command to match exact string and EXPECT_UNUSED to match unused
13777         bytes
13778
13779         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13780
13781 2003-02-12  Havoc Pennington  <hp@pobox.com>
13782
13783         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13784         \r off of popped lines
13785
13786         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13787         scripts
13788
13789         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13790         SEND, append \r\n
13791
13792 2003-02-12  Havoc Pennington  <hp@pobox.com>
13793
13794         * dbus/Makefile.am: remove break-loader from the build, since it
13795         moved.
13796
13797         * configure.in: add --enable-gcov to turn on coverage profiling
13798         flags and disable optimization
13799
13800 2003-02-10  Havoc Pennington  <hp@pobox.com>
13801
13802         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13803         initial cut at test framework for DBusAuth from laptop.
13804         Doesn't quite work yet but it compiles and I need to get
13805         it off the 266mhz laptop. ;-)
13806
13807         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13808         fix a memleak in error case
13809
13810 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13811
13812         * bus/Makefile.am:
13813         * bus/desktop-file.c:
13814         * bus/desktop-file.h:
13815         Add a desktop file parser.
13816
13817 2003-02-11  Zack Rusin  <zack@kde.org>
13818
13819         * qt/message.[h|cpp]: sample implementation
13820         of the KDE wrapper for DBusMessage
13821
13822 2003-02-09  Zack Rusin  <zack@kde.org>
13823
13824         * test/bus-test.c: make_it_compile
13825         * doc/dbus-specification.sgml: minimal semantic fix
13826
13827 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13828
13829         Release 0.3
13830
13831         * NEWS: Update
13832
13833 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13834
13835         * dbus/Makefile.am:
13836         * dbus/dbus-break-loader.c:
13837         * test/Makefile.am:
13838         * test/break-loader.c:
13839         Move dbus-break-loader to test/ and rename it to break-loader.
13840
13841 2003-02-02  Havoc Pennington  <hp@pobox.com>
13842
13843         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13844         for code to manage cookies in your home directory
13845
13846         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13847
13848         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13849         to authenticate, then disconnect the client.
13850
13851 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13852
13853         * dbus/dbus-message.c (dbus_message_append_fields):
13854         Correct docs.
13855
13856 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13857
13858         * doc/dbus-specification.sgml:
13859         Update address format section.
13860
13861 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13862
13863         * test/Makefile.am:
13864         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13865         (message_handler), (new_connection_callback), (loop_quit),
13866         (loop_run), (main):
13867         Add bus test.
13868
13869 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13870
13871         * bus/driver.c: (bus_driver_handle_service_exists):
13872         Simplify the code a bit.
13873
13874         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13875         Fix a silly.
13876
13877 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13878
13879         * bus/Makefile.am:
13880         Add libdbus-daemon.la and link to it.
13881
13882 2003-02-01  James Willcox  <jwillcox@gnome.org>
13883
13884         * bus/driver.c: (bus_driver_handle_own_service):
13885         Actually include the service reply code in the message.
13886
13887 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13888
13889         * bus/driver.c: (bus_driver_handle_service_exists):
13890         Don't unref the incoming message.
13891
13892 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13893
13894         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13895
13896 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13897
13898         * dbus/dbus-server.c: (dbus_server_listen):
13899         * dbus/dbus-transport.c: (_dbus_transport_open):
13900         ifdef out the calls to the debug transport and server.
13901
13902 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13903
13904         * dbus/dbus-watch.c (dbus_watch_get_flags):
13905         Add note in the docs that ERROR or HANGUP won't be returned
13906         and are assumed always on.
13907
13908         * glib/dbus-gmain.c (add_watch):
13909         Always add IO_ERR | IO_HUP
13910
13911         * dbus/dbus-message.h:
13912         Add semicolon after dbus_message_iter_get_string_array().
13913         Makes qt code build again
13914
13915 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13916
13917         * bus/driver.c: (create_unique_client_name),
13918         (bus_driver_handle_hello):
13919         Don't take a name, just use a numeric id to identify
13920         each client.
13921
13922         * dbus/Makefile.am:
13923         * dbus/dbus-bus.c: (dbus_bus_register_client),
13924         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13925         * dbus/dbus-bus.h:
13926         Add new convenience functions for communicating with the bus.
13927
13928         * dbus/dbus-message.h:
13929
13930         * dbus/dbus-protocol.h:
13931         Fix a typo.
13932
13933 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13934
13935         * dbus/dbus-message.c (dbus_message_append_fields):
13936         Add some more doc comments.
13937
13938 2003-02-01  Havoc Pennington  <hp@pobox.com>
13939
13940         * dbus/dbus-break-loader.c (randomly_modify_length): change
13941         a 4-byte value in the message as if it were a length
13942
13943         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13944         execute bit on saved files
13945
13946 2003-02-01  Havoc Pennington  <hp@pobox.com>
13947
13948         * dbus/dbus-break-loader.c (main): new program to find messages
13949         that break the loader.
13950
13951         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13952         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13953
13954         * dbus/dbus-string.c (_dbus_string_set_byte): new
13955
13956 2003-01-31  Havoc Pennington  <hp@pobox.com>
13957
13958         * dbus/dbus-message.c: refactor the test code to be more general,
13959         in preparation for writing a "randomly permute test cases to
13960         try to break the loader" program.
13961
13962 2003-01-31  Havoc Pennington  <hp@pobox.com>
13963
13964         * doc/dbus-specification.sgml: work on the specification
13965
13966         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13967         the protocol version of the message.
13968
13969         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13970         no longer specifies that.
13971         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13972         1/2/3/4)
13973
13974         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13975         "break" for DBUS_TYPE_NIL, remove @todo
13976
13977 2003-01-31  Havoc Pennington  <hp@pobox.com>
13978
13979         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13980         just set_is_error/get_is_error as this is a commonly-used
13981         function, and write docs.
13982
13983 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13984
13985         * dbus/dbus-address.c: (dbus_address_entry_free):
13986         Free key and value lists.
13987
13988         * dbus/dbus-internals.c: (_dbus_type_to_string):
13989         Add the types we didn't have.
13990
13991         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13992         (_dbus_marshal_validate_arg):
13993         Add NIL types.
13994
13995         * dbus/dbus-message.c: (dbus_message_set_sender):
13996         Remove todo about being able to set sender to NULL.
13997
13998         (dbus_message_set_is_error_reply),
13999         (dbus_message_get_is_error_reply):
14000         * dbus/dbus-message.h:
14001         New functions.
14002
14003         * dbus/dbus-protocol.h:
14004         Add error reply flag.
14005
14006         * test/data/valid-messages/opposite-endian.message:
14007         Add NIL type to test.
14008
14009 2003-01-31  Havoc Pennington  <hp@pobox.com>
14010
14011         * doc/dbus-specification.sgml: fully specify the header.  Add
14012         flags and major protocol version, and change header/body len to
14013         unsigned.
14014
14015         * dbus/dbus-message-builder.c (append_saved_length): append length
14016         as uint32
14017
14018         * dbus/dbus-message.c (dbus_message_create_header): change header
14019         length and body length to unsigned. Add the new fields from the
14020         spec
14021         (_dbus_message_loader_return_buffer): unsigned header/body len
14022
14023 2003-01-30  Havoc Pennington  <hp@pobox.com>
14024
14025         * dbus/dbus-auth.c: rework to use only REJECTED, no
14026         MECHANISMS
14027
14028         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14029         use REJECTED, suggested by Mark McLoughlin
14030
14031 2003-01-30  Havoc Pennington  <hp@pobox.com>
14032
14033         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14034         a better way to report errors here. e.g.  "unix address lacks
14035         path" or something. also "no such file" when the path doesn't
14036         exist, etc.
14037
14038         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14039         leaking list nodes
14040         (dbus_parse_address): add @todo about documenting address format,
14041         and allowing , and ; to be escaped
14042
14043 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14044
14045         * dbus/Makefile.am:
14046         Add dbus-address.[ch]
14047
14048         * dbus/dbus-address.c: (dbus_address_entry_free),
14049         (dbus_address_entries_free), (create_entry),
14050         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14051         (dbus_parse_address), (_dbus_address_test):
14052         * dbus/dbus-address.h:
14053         New files for dealing with address parsing.
14054
14055         * dbus/dbus-connection.c:
14056         Document timeout functions.
14057
14058         * dbus/dbus-message.c:
14059         Document dbus_message_new_from_message.
14060
14061         * dbus/dbus-server-debug.c:
14062         Document.
14063
14064         * dbus/dbus-server.c: (dbus_server_listen):
14065         Parse address and use correct server implementation.
14066
14067         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14068         * dbus/dbus-string.h:
14069         New function with test.
14070
14071         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14072         * dbus/dbus-test.h:
14073         Add address tests.
14074
14075         * dbus/dbus-transport-debug.c:
14076         Document.
14077
14078         * dbus/dbus-transport.c: (_dbus_transport_open):
14079         Parse address and use correct transport implementation.
14080
14081 2003-01-30  Havoc Pennington  <hp@pobox.com>
14082
14083         * dbus/dbus-message.c: use message->byte_order instead of
14084         DBUS_COMPILER_BYTE_ORDER throughout.
14085         (dbus_message_create_header): pad header to align the
14086         start of the body of the message to 8-byte boundary
14087
14088         * dbus/dbus-marshal.h: make all the demarshalers take const
14089         DBusString arguments.
14090
14091         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14092         validate message args here, so we don't have to do slow validation
14093         later, and so we catch bad messages as they are incoming. Also add
14094         better checks on header_len and body_len. Also fill in
14095         message->byte_order
14096
14097         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14098         implemented properly)
14099         (_dbus_string_validate_nul): new function to check all-nul
14100
14101         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14102         get_arg_end_pos and remove all validation
14103         (_dbus_marshal_validate_arg): actually do validation here.
14104
14105 2003-01-29  Havoc Pennington  <hp@pobox.com>
14106
14107         * dbus/dbus-message.c (check_message_handling): fix assertion
14108         failure on set_client_serial
14109
14110 2003-01-28  Havoc Pennington  <hp@pobox.com>
14111
14112         * dbus/dbus-server-debug.c: Add doc section comments
14113
14114         * dbus/dbus-transport-debug.c: add doc section comments
14115
14116 2003-01-28  Havoc Pennington  <hp@redhat.com>
14117
14118         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14119         the reverse order from how I had it
14120         (_dbus_string_base64_encode): reverse encoding order. I was
14121         basically byteswapping everything during encoding.
14122
14123 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14124
14125         * dbus/dbus-connection-internal.h:
14126         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14127         (_dbus_connection_remove_timeout):
14128         Add functions for adding and removing timeouts.
14129
14130         * dbus/dbus-message.c: (dbus_message_new_from_message):
14131         Add new function that takes a message and creates an exact
14132         copy of it, but with the refcount set to 1.
14133         (check_message_handling):
14134         Fix build error.
14135
14136         * dbus/dbus-server-protected.h:
14137         * dbus/dbus-server.c: (_dbus_server_init_base),
14138         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14139         (dbus_server_set_timeout_functions):
14140         (_dbus_server_remove_timeout):
14141         New functions so that a server can add and remove timeouts.
14142
14143         (dbus_server_listen):
14144         Add commented out call to dbus_server_debug_new.
14145
14146         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14147         Actually set the handler, doh.
14148
14149         * dbus/dbus-transport.c: (_dbus_transport_open):
14150         Add commented out call to dbus_transport_debug_client_new.
14151
14152         * dbus/Makefile.am:
14153         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14154
14155 2003-01-28  Havoc Pennington  <hp@pobox.com>
14156
14157         * dbus/dbus-message.c (check_message_handling): function to check
14158         on the loaded message, iterates over it etc.
14159
14160 2003-01-28  Havoc Pennington  <hp@pobox.com>
14161
14162         * test/Makefile.am (dist-hook): fix make distdir
14163
14164         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14165
14166 2003-01-27  Havoc Pennington  <hp@pobox.com>
14167
14168         * dbus/dbus-mempool.c (time_for_size): replace printf with
14169         _dbus_verbose
14170
14171         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14172         empty lines; fix the SAVE_LENGTH stuff to be
14173         START_LENGTH/END_LENGTH so it actually works; couple other
14174         bugfixes
14175
14176         * test/Makefile.am (dist-hook): add dist-hook for .message files
14177
14178         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14179         can be constant or locked.
14180         (_dbus_string_free): allow freeing a const string as
14181         documented/intended
14182
14183         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14184
14185         * dbus/dbus-test-main.c (main): take an argument which is the
14186         directory containing test data
14187
14188         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14189         argument to this and load all the messages in test/data/
14190         checking that they can be loaded or not loaded as appropriate.
14191
14192 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14193
14194         * bus/dispatch.c: (bus_dispatch_message_handler):
14195         Dispatch messages sent to services.
14196
14197         * bus/driver.c: (bus_driver_send_service_deleted),
14198         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14199         (bus_driver_send_service_acquired):
14200         Add helper functions for sending service related messages.
14201
14202         (bus_driver_send_welcome_message):
14203         Send HELLO_REPLY instead of WELCOME.
14204
14205         (bus_driver_handle_list_services):
14206         Send LIST_SERVICES_REPLY instead of SERVICES.
14207
14208         (bus_driver_handle_own_service),
14209         (bus_driver_handle_service_exists):
14210         New message handlers.
14211
14212         (bus_driver_handle_message):
14213         Invoke new message handlers.
14214
14215         (bus_driver_remove_connection):
14216         Don't remove any services here since that's done automatically
14217         by bus_service_remove_owner now.
14218
14219         * bus/driver.h:
14220         New function signatures.
14221
14222         * bus/services.c: (bus_service_add_owner):
14223         Send ServiceAcquired message if we're the only primary owner.
14224
14225         (bus_service_remove_owner):
14226         Send ServiceAcquired/ServiceLost messages.
14227
14228         (bus_service_set_prohibit_replacement),
14229         (bus_service_get_prohibit_replacement):
14230         Functions for setting prohibit replacement.
14231
14232         (bus_service_has_owner):
14233         New function that checks if a connection is in the owner queue of
14234         a certain service.
14235
14236         * bus/services.h:
14237         Add new function signatures.
14238
14239         * dbus/dbus-list.c: (_dbus_list_test):
14240         Add tests for _dbus_list_remove_last and traversing the list backwards.
14241
14242         * dbus/dbus-list.h:
14243         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14244         go any further, so return NULL then.
14245
14246         * dbus/dbus-protocol.h:
14247         Add new messages, service flags and service replies.
14248
14249 2003-01-26  Havoc Pennington  <hp@pobox.com>
14250
14251         * dbus/dbus-message-builder.c: implement, completely untested.
14252
14253         * test/data/*: add data to be used in testing.
14254         ".message" files are our simple loadable text format.
14255         ".message-raw" will be binary dumps of messages.
14256
14257         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14258
14259 2003-01-26  Havoc Pennington  <hp@pobox.com>
14260
14261         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14262
14263         * dbus/dbus-errors.c (dbus_result_to_string): add
14264         file errors
14265
14266         * dbus/dbus-message-builder.c: new file, will contain code to load
14267         up messages from files. Not implemented yet.
14268
14269 2003-01-26  Havoc Pennington  <hp@pobox.com>
14270
14271         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14272         the sender by setting to NULL
14273
14274 2003-01-26  Havoc Pennington  <hp@pobox.com>
14275
14276         The unit tests pass, but otherwise untested.  If it breaks, the
14277         tests should have been better. ;-)
14278
14279         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14280         the connection.
14281
14282         * dbus/dbus-message.c: redo everything so we maintain
14283         message->header as the only copy of the various fields.
14284         This avoids the possibility of out-of-memory in some cases,
14285         for example dbus_message_lock() can't run out of memory anymore,
14286         and avoids extra copying. Figured I may as well go ahead and do
14287         this since it was busted for dbus_message_lock to not return
14288         failure on OOM, and dbus_message_write_header was totally
14289         unchecked for OOM. Also fixed some random other bugs.
14290
14291         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14292         that strings are nul-terminated. Also, end_pos can be equal
14293         to string length just not greater than, I think.
14294         (_dbus_marshal_set_int32): new function
14295         (_dbus_marshal_set_uint32): new function
14296         (_dbus_marshal_set_string): new function
14297
14298         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14299         a warning, init timeout_list to NULL
14300         (dbus_connection_send_message): don't use uninitialized variable
14301         "serial"
14302
14303         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14304
14305 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14306
14307         * bus/driver.c: (bus_driver_handle_hello),
14308         (bus_driver_send_welcome_message):
14309         Plug leaks
14310
14311 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14312
14313         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14314         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14315         (dbus_connection_unref):
14316         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14317         * dbus/dbus-message.c: (dbus_message_unref),
14318         Plug memory leaks.
14319
14320         (dbus_message_get_fields):
14321         Remove debugging printout.
14322
14323         (_dbus_message_loader_return_buffer):
14324         Don't store the header string.
14325
14326         (_dbus_message_test):
14327         Plug leaks.
14328
14329 2003-01-26  Richard Hult  <rhult@codefactory.se>
14330
14331         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14332         the file descriptor list, since it can change under us.
14333
14334 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14335
14336         * glib/dbus-gmain.c: (dbus_connection_prepare),
14337         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14338         (remove_watch), (dbus_connection_hookup_with_g_main):
14339         Rewrite the glib handling to use its own GSource instead of a
14340         GIOChannel so we can catch messages put in the queue while waiting
14341         for a reply.
14342
14343 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14344
14345         * bus/Makefile.am:
14346         * bus/connection.c: (connection_disconnect_handler),
14347         (connection_watch_callback), (bus_connection_setup):
14348         * bus/dispatch.c: (send_one_message),
14349         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14350         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14351         * bus/dispatch.h:
14352         * bus/driver.c: (bus_driver_send_service_deleted),
14353         (bus_driver_send_service_created), (bus_driver_handle_hello),
14354         (bus_driver_send_welcome_message),
14355         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14356         (bus_driver_handle_message):
14357         * bus/driver.h:
14358         Refactor code, put the message dispatching in its own file. Use
14359         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14360         is disconnected.
14361
14362 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14363
14364         * dbus/dbus-internals.h:
14365         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14366
14367         * dbus/dbus-message.c: (dbus_message_get_sender):
14368         * dbus/dbus-message.h:
14369         Implement dbus_message_get_sender.
14370
14371         * dbus/dbus-protocol.h:
14372         Add message and service defines.
14373
14374 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14375
14376         * dbus/dbus-connection.c: (dbus_connection_send_message):
14377         * dbus/dbus-message-internal.h:
14378         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14379         (dbus_message_write_header):
14380         Remove _dbus_messag_unlock and don't set the client serial on a
14381         message if one already exists.
14382
14383 2003-01-24  Havoc Pennington  <hp@pobox.com>
14384
14385         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14386         list_pool
14387
14388         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14389         on OOM
14390
14391 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14392
14393         * dbus/dbus-list.c: (alloc_link), (free_link):
14394         Use a memory pool for the links.
14395
14396 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14397
14398         * bus/connection.c: (bus_connection_foreach):
14399         * bus/connection.h:
14400         Add new bus_connection_foreach function.
14401
14402         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14403         Add function that broadcasts a message to all clients.
14404
14405         (bus_driver_send_service_created), (bus_driver_handle_hello),
14406         (bus_driver_send_welcome_message),
14407         (bus_driver_handle_list_services), (bus_driver_message_handler):
14408         Implement functions that take care of listing services, and notifying
14409         clients when new services are created.
14410
14411         * bus/services.c: (bus_services_list):
14412         * bus/services.h:
14413         Add new function that returns an array of strings with the currently
14414         registered services.
14415
14416         * glib/dbus-glib.h:
14417         * glib/dbus-gmain.c:
14418         Update copyright year.
14419
14420 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14421
14422         * dbus/dbus-connection.c: (dbus_connection_send_message):
14423         Unlock the message in case it was sent earlier.
14424
14425         (dbus_connection_send_message_with_reply_and_block):
14426         Remove the reply message from the list.
14427
14428         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14429         Set array_len and new_pos correctly.
14430
14431         (_dbus_marshal_test):
14432         Remove debug output.
14433
14434         * dbus/dbus-message-internal.h:
14435         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14436         New function that returns the reply serial.
14437
14438         (_dbus_message_unlock):
14439         New function that unlocks a message and resets its header.
14440
14441         (dbus_message_append_string_array),
14442         (dbus_message_get_fields_valist),
14443         (dbus_message_iter_get_field_type),
14444         (dbus_message_iter_get_string_array),
14445         (dbus_message_get_fields),
14446         (dbus_message_append_fields_valist):
14447         Handle string arrays.
14448
14449         (dbus_message_set_sender):
14450         Make this function public since the bus daemon needs it.
14451
14452         (decode_header_data):
14453         Set the reply serial to -1 initially.
14454
14455         * dbus/dbus-message.h:
14456         Add dbus_message_set_sender.
14457
14458 2003-01-24  Havoc Pennington  <hp@pobox.com>
14459
14460         * doc/dbus-specification.sgml: add some stuff
14461
14462 2003-01-22  Havoc Pennington  <hp@pobox.com>
14463
14464         * doc/dbus-specification.sgml: Start to document the protocol.
14465
14466 2003-01-22  Havoc Pennington  <hp@pobox.com>
14467
14468         * dbus/dbus-connection.c
14469         (dbus_connection_send_message_with_reply_and_block): add some @todo
14470
14471         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14472
14473 2003-01-21  Havoc Pennington  <hp@pobox.com>
14474
14475         (patch untested because can't compile)
14476
14477         * bus/driver.c (create_unique_client_name): make this function
14478         never recycle client names. Also, caller should initialize
14479         the DBusString.
14480
14481         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14482
14483 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14484
14485         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14486         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14487         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14488         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14489         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14490         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14491         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14492         * dbus/dbus-marshal.h:
14493         * dbus/dbus-protocol.h:
14494         Add support for marshalling and demarshalling integer, double
14495         and string arrays.
14496
14497 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14498
14499         * bus/Makefile.am:
14500         Add driver.[ch]
14501
14502         * bus/connection.c: (connection_disconnect_handler):
14503         Remove the connection from the bus driver's list.
14504
14505         (connection_watch_callback): Dispatch messages.
14506
14507         (free_connection_data): Free connection name.
14508
14509         (bus_connection_setup): Add connection to the bus driver's list.
14510         (bus_connection_remove_owned_service):
14511         (bus_connection_set_name), (bus_connection_get_name):
14512         Add functions for setting and getting the connection's name.
14513
14514         * bus/connection.h:
14515         Add function headers.
14516
14517         * bus/driver.c: (create_unique_client_name),
14518         (bus_driver_handle_hello_message),
14519         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14520         (bus_driver_add_connection), (bus_driver_remove_connection):
14521         * bus/driver.h:
14522         * bus/main.c:
14523         * bus/services.c: (bus_service_free):
14524         * bus/services.h:
14525         New file that handles communication and registreation with the bus
14526         itself.
14527
14528 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14529
14530         * dbus/dbus-connection.c: (dbus_connection_send_message):
14531         Add a new client_serial parameter.
14532
14533         (dbus_connection_send_message_with_reply):
14534         Remove a @todo since we've implemented the blocking function.
14535
14536         (dbus_connection_send_message_with_reply_and_block):
14537         New function that sends a message and waits for a reply and
14538         then returns the reply.
14539
14540         * dbus/dbus-connection.h:
14541         Add new functions.
14542
14543         * dbus/dbus-errors.c: (dbus_result_to_string):
14544         * dbus/dbus-errors.h:
14545         Add new DBUS_RESULT.
14546
14547         * dbus/dbus-message-internal.h:
14548         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14549         (_dbus_message_set_sender), (dbus_message_write_header),
14550         (dbus_message_new_reply), (decode_header_data),
14551         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14552         * dbus/dbus-message.h:
14553         Add new functions that set the reply serial and sender.
14554         Also marshal and demarshal them correctly and add test.
14555
14556         * dbus/dbus-protocol.h:
14557         Add new DBUS_MESSAGE_TYPE_SENDER.
14558
14559         * glib/dbus-glib.h:
14560         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14561         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14562         (dbus_connection_hookup_with_g_main):
14563         * glib/test-dbus-glib.c: (main):
14564         Rewrite to use GIOChannel and remove the GSource crack.
14565
14566         * test/echo-client.c: (main):
14567         * test/watch.c: (check_messages):
14568         Update for changed APIs
14569
14570 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14571
14572         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14573
14574         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14575         Create a DBusTimeoutList.
14576         (dbus_connection_set_timeout_functions): Add new function to
14577         set timeout callbacks
14578
14579         * dbus/dbus-connection.h: Add public DBusTimeout API.
14580
14581         * dbus/dbus-message.c: (dbus_message_get_service):
14582         * dbus/dbus-message.h:  New function.
14583
14584         * dbus/dbus-server.c: Fix small doc typo.
14585
14586         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14587
14588 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14589
14590         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14591         of the string, just as long as specified.
14592
14593 2003-01-19  Havoc Pennington  <hp@pobox.com>
14594
14595         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14596         new function
14597
14598         * dbus/dbus-server.c (dbus_server_set_max_connections)
14599         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14600         keep track of current number of connections, and add API for
14601         setting a max (but haven't implemented enforcing the max yet)
14602
14603 2003-01-18  Havoc Pennington  <hp@pobox.com>
14604
14605         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14606         reading/writing if read_watch != NULL or write_watch != NULL.
14607
14608         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14609         the message loader code to actually load message->header and
14610         message->body into the newly-created message.
14611
14612         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14613         in OOM case
14614
14615         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14616         (dbus_connection_get_max_message_size)
14617         (dbus_connection_set_max_live_messages_size)
14618         (dbus_connection_get_max_live_messages_size): implement some
14619         resource limitation functions
14620
14621         * dbus/dbus-resources.c: new file implementing some of the
14622         resource limits stuff
14623
14624         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14625         missing docs, add @todo to handle OOM etc.
14626
14627         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14628         docs
14629
14630 2003-01-18  Havoc Pennington  <hp@pobox.com>
14631
14632         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14633         connection if it hasn't been already.
14634
14635         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14636         replace with DisconnectFunction.
14637
14638 2003-01-18  Havoc Pennington  <hp@pobox.com>
14639
14640         Building --disable-verbose-mode --disable-asserts --disable-tests
14641         cuts the library from 112K to 45K or so
14642
14643         * configure.in: check for varargs macro support,
14644         add --enable-verbose-mode, --enable-asserts.
14645
14646         * dbus/dbus-internals.h (_dbus_assert): support
14647         DBUS_DISABLE_ASSERT
14648         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14649
14650 2003-01-18  Havoc Pennington  <hp@pobox.com>
14651
14652         * dbus/dbus-test.c: include config.h so that tests actually run
14653
14654         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14655         so the failure mode when that assumption fails will be plenty
14656         obvious.
14657
14658 2003-01-18  Havoc Pennington  <hp@pobox.com>
14659
14660         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14661
14662         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14663         the distribution
14664
14665         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14666         since we don't want to use those in make check
14667
14668 2003-01-15  Havoc Pennington  <hp@redhat.com>
14669
14670         Release 0.2
14671
14672         * NEWS: update
14673
14674 2003-01-15  Havoc Pennington  <hp@redhat.com>
14675
14676         * test/Makefile.am: fix so that test source code ends up in the
14677         distribution on make distcheck
14678
14679 2003-01-15  Havoc Pennington  <hp@redhat.com>
14680
14681         Release 0.1.
14682
14683         * NEWS: update
14684
14685 2003-01-15  Havoc Pennington  <hp@redhat.com>
14686
14687         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14688         fix build when --disable-tests
14689
14690         * Makefile.am (EXTRA_DIST): put HACKING in here
14691
14692         * HACKING: document procedure for making a tarball release.
14693
14694 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14695
14696         * bus/connection.c: (connection_error_handler),
14697         (bus_connection_setup):
14698         * bus/main.c: (main):
14699         Make sure that the DBusConnectionData struct is NULLed
14700         out to prevent a segfault.
14701
14702         * dbus/dbus-errors.c: (dbus_result_to_string):
14703         * dbus/dbus-errors.h:
14704         * dbus/dbus-message.c: (dbus_message_get_fields),
14705         (dbus_message_get_fields_valist), (_dbus_message_test):
14706         * dbus/dbus-message.h:
14707         Make dbus_message_get_fields return a result code so we can
14708         track invalid fields as well as oom.
14709
14710 2003-01-11  Havoc Pennington  <hp@pobox.com>
14711
14712         * configure.in: change --enable-test/--enable-ansi action-if-given
14713         to enable_foo=$enableval instead of enable_foo=yes
14714
14715 2003-01-08  Havoc Pennington  <hp@pobox.com>
14716
14717         * dbus/dbus-string.c (_dbus_string_align_length): new function
14718
14719         * dbus/dbus-test-main.c: move main() for test app here
14720         * dbus/dbus-test.c
14721         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14722         symbol to run tests, because dbus-test isn't in the main
14723         library
14724
14725         Code review nitpicks.
14726
14727         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14728         for people with narrow emacs ;-). Assert client_serial was filled
14729         in. Assert message->name != NULL.
14730         (dbus_message_append_fields): have "first_field_type" arg separate
14731         from va list, needed for C++ binding that also uses varargs IIRC
14732         and helps with type safety
14733         (dbus_message_new): add @todo about using DBusString to store
14734         service/name internally
14735         (dbus_message_new): don't leak ->service and ->name on OOM later
14736         in the function
14737         (dbus_message_unref): free the service name
14738         (dbus_message_get_fields): same change to varargs
14739         i.e. first_field_type
14740         (_dbus_message_loader_return_buffer): assert that the message data
14741         is aligned (if not it's a bug in our code). Put in verbose griping
14742         about why we set corrupted = TRUE.
14743         (decode_header_data): add FIXME that char* is evil.  Was going to
14744         add FIXME about evil locale-specific string.h strncmp, but just
14745         switched to wacky string-as-uint32 optimization. Move check for
14746         "no room for field name" above get_const_data_len() to avoid
14747         assertion failure in get_const_data_len if we have trailing 2
14748         bytes or the like. Check for service and name fields being
14749         provided twice. Don't leak service/name on error. Require field
14750         names to be aligned to 4 bytes.
14751
14752         * dbus/dbus-marshal.c: move byte swap stuff to header
14753         (_dbus_pack_int32): uscore-prefix
14754         (_dbus_unpack_int32): uscore-prefix
14755         (_dbus_unpack_uint32): export
14756         (_dbus_demarshal_string): add @todo complaining about use of
14757         memcpy()
14758         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14759         handling allowing corrupt data to go unchecked
14760
14761 2003-01-08  Havoc Pennington  <hp@redhat.com>
14762
14763         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14764         to the select() as needed for authentication. (should be using
14765         _dbus_poll() not select, but for another day)
14766
14767         * dbus/dbus.h: include dbus/dbus-protocol.h
14768
14769 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14770
14771         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14772         dbus-connection.h
14773
14774 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14775
14776         * dbus/dbus-internals.c: (_dbus_type_to_string):
14777         New function that returns a string describing a type.
14778
14779         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14780         * dbus/dbus-marshal.h:
14781         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14782         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14783         (dbus_message_iter_get_byte_array):
14784         * dbus/dbus-message.h:
14785         Add new convenience functions for appending and getting message fields.
14786         Also add demarshalling routines for byte arrays.
14787
14788 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14789
14790         * dbus/dbus-connection-internal.h:
14791         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14792         (_dbus_connection_get_next_client_serial),
14793         (dbus_connection_send_message):
14794         * dbus/dbus-internals.h:
14795         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14796         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14797         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14798         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14799         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14800         (_dbus_verbose_bytes), (_dbus_marshal_test):
14801         * dbus/dbus-marshal.h:
14802         * dbus/dbus-message-internal.h:
14803         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14804         (dbus_message_write_header), (_dbus_message_lock),
14805         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14806         (dbus_message_get_name), (dbus_message_append_int32),
14807         (dbus_message_append_uint32), (dbus_message_append_double),
14808         (dbus_message_append_string), (dbus_message_append_byte_array),
14809         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14810         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14811         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14812         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14813         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14814         (decode_header_data), (_dbus_message_loader_return_buffer),
14815         (message_iter_test), (_dbus_message_test):
14816         * dbus/dbus-message.h:
14817         * dbus/dbus-protocol.h:
14818         * dbus/dbus-test.c: (main):
14819         * dbus/dbus-test.h:
14820         * glib/test-dbus-glib.c: (message_handler), (main):
14821         * test/echo-client.c: (main):
14822         * test/watch.c: (check_messages):
14823         Make messages sendable and receivable for real.
14824
14825 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14826
14827         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14828         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14829         * dbus/dbus-message.c: (dbus_message_append_int32),
14830         (dbus_message_append_uint32), (dbus_message_append_double),
14831         (dbus_message_append_string), (dbus_message_append_byte_array):
14832         Handle OOM restoration.
14833
14834 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14835
14836         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14837         (_dbus_demarshal_string), (_dbus_marshal_test):
14838         * dbus/dbus-marshal.h:
14839         * dbus/dbus-message.c: (dbus_message_get_name),
14840         Document these functions.
14841
14842         (dbus_message_append_int32), (dbus_message_append_uint32),
14843         (dbus_message_append_double), (dbus_message_append_string),
14844         (dbus_message_append_byte_array):
14845         * dbus/dbus-message.h:
14846         Add functions for adding message fields of different types.
14847
14848         * dbus/dbus-protocol.h:
14849         Add the different types.
14850
14851 2003-01-05  Havoc Pennington  <hp@pobox.com>
14852
14853         * bus/connection.c: implement routines for handling connections,
14854         first thing is keeping a list of owned services on each connection
14855         and setting up watches etc.
14856
14857         * bus/services.c: implement a mapping from service names to lists
14858         of connections
14859
14860         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14861
14862         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14863         to use static mutexes for global data
14864
14865         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14866         collection of functions to set/get application-specific data
14867         on the DBusConnection.
14868
14869 2003-01-04  Havoc Pennington  <hp@pobox.com>
14870
14871         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14872         (_dbus_poll): new function
14873
14874         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14875         copied from GLib
14876
14877         * bus/loop.c: initial code for the daemon main loop
14878
14879 2003-01-04  Havoc Pennington  <hp@pobox.com>
14880
14881         * test/watch.c (error_handler): make it safe if the error handler
14882         is called multiple times (if we s/error handler/disconnect
14883         handler/ we should just guarantee it's called only once)
14884
14885         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14886         error handler on disconnect (it's quite possible we should
14887         just change the error handler to a "disconnect handler," I'm
14888         not sure we have any other meaningful errors)
14889
14890         * configure.in: check for getpwnam_r
14891
14892         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14893         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14894         mechanism as in SASL spec, using socket credentials
14895
14896         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14897         (_dbus_send_credentials_unix_socket): new function
14898
14899         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14900         dbus_accept()
14901         (_dbus_write): only check errno if <0 returned
14902         (_dbus_write_two): ditto
14903
14904 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14905
14906         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14907         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14908         (_dbus_marshal_test):
14909         * dbus/dbus-marshal.h:
14910         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14911         to _dbus_marshal_utf8_string. Also fix some tests.
14912
14913 2002-12-28  Harri Porten  <porten@kde.org>
14914
14915         * configure.in: added check for C++ compiler and a very cheesy
14916         check for the Qt integration
14917
14918         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14919
14920         * qt/Makefile.am: added
14921
14922         * qt/.cvsignore: added
14923
14924         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14925         latter, added #ifdef QT_THREAD_SUPPORT guard.
14926
14927         * dbus/Makefile.am: added missing headers for make dist
14928
14929 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14930
14931         * dbus/Makefile.am: fixup export-symbols-regex.
14932
14933 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14934
14935         * acinclude.m4: Add this file and put the
14936         PKG_CHECK_MODULE macro in it.
14937
14938 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14939
14940         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14941         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14942         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14943         (_dbus_marshal_test):
14944         Make the demarshalling routines align the pos argument.
14945         Add string marshalling tests and fix the obvious bugs
14946         discovered.
14947
14948 2002-12-26  Havoc Pennington  <hp@pobox.com>
14949
14950         * dbus/dbus-auth.c: fixes fixes fixes
14951
14952         * dbus/dbus-transport-unix.c: wire up support for
14953         encoding/decoding data on the wire
14954
14955         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14956         (_dbus_auth_decode_data): append to target string
14957         instead of nuking it.
14958
14959 2002-12-26  Havoc Pennington  <hp@pobox.com>
14960
14961         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14962         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14963         doh
14964
14965         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14966         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14967         now). Main point is because I wanted unpack_uint32 to implement
14968         _dbus_verbose_bytes
14969         (_dbus_verbose_bytes): new function
14970
14971         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14972
14973         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14974         mechanism to handle a corrupt message stream
14975         (_dbus_message_loader_new): fix preallocation to only prealloc,
14976         not prelengthen
14977
14978         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14979         (_dbus_string_test): enhance tests for copy/move and fix the
14980         functions
14981
14982         * dbus/dbus-transport-unix.c: Hold references in more places to
14983         avoid reentrancy problems
14984
14985         * dbus/dbus-transport.c: ditto
14986
14987         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14988         leak reference count in no-message case
14989
14990         * test/watch.c (do_mainloop): handle adding/removing watches
14991         during iteration over the watches. Also, ref the connection/server
14992         stored on a watch, so we don't try to mangle a destroyed one.
14993
14994         * dbus/dbus-transport-unix.c (do_authentication): perform
14995         authentication
14996
14997         * dbus/dbus-auth.c (get_state): add a state
14998         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14999         (_dbus_auth_get_unused_bytes): append the unused bytes
15000         to the passed in string, rather than prepend
15001
15002         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15003         the auth conversation DBusAuth
15004
15005         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15006         (_dbus_transport_new_for_domain_socket): when creating a
15007         transport, pass in whether it's a client-side or server-side
15008         transport so we know which DBusAuth to create
15009
15010 2002-12-03  Havoc Pennington  <hp@pobox.com>
15011
15012         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15013         _after_ finalizing the derived members
15014         (unix_connection_set): unref watch if we fail to add it
15015
15016         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15017         transport first, so that the connection owned by the
15018         transport will be valid as the transport finalizes.
15019
15020         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15021         if necessary, and remove watches from the connection.
15022
15023         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15024
15025 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15026
15027         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15028         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15029         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15030         (_dbus_marshal_test):
15031         * dbus/dbus-marshal.h:
15032         Add string marshal functions and have the demarshal functions
15033         return the new position.
15034
15035 2002-12-25  Havoc Pennington  <hp@pobox.com>
15036
15037         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15038         it is a simple protocol that just maps directly to SASL.
15039
15040         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15041         initial implementation, not actually used yet.
15042
15043         * dbus/dbus-string.c (_dbus_string_find): new function
15044         (_dbus_string_equal): new function
15045         (_dbus_string_base64_encode): new function
15046         (_dbus_string_base64_decode): new function
15047
15048 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15049
15050         * dbus/Makefile.am:
15051         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15052         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15053         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15054         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15055         * dbus/dbus-marshal.h:
15056         * dbus/dbus-protocol.h:
15057         * dbus/dbus-test.c: (main):
15058         * dbus/dbus-test.h:
15059         Add un-optimized marshalling/demarshalling routines.
15060
15061 2002-12-25  Harri Porten  <porten@kde.org>
15062
15063         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15064
15065 2002-12-24  Zack Rusin  <zack@kde.org>
15066
15067         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15068         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15069         main loop stuff
15070
15071 2002-12-24  Havoc Pennington  <hp@pobox.com>
15072
15073         * glib/dbus-gthread.c: fix include
15074
15075         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15076         I think glib API needs to change, though, as you don't
15077         want to use DBusMessageFunction, you want to use the
15078         DBusMessageHandler object. Probably
15079         dbus_connection_open_with_g_main_loop()
15080         and dbus_connection_setup_g_main_loop() or something like that
15081         (but think of better names...) that just create a connection
15082         that has watch/timeout functions etc. already set up.
15083
15084         * dbus/dbus-connection.c
15085         (dbus_connection_send_message_with_reply): new function just to
15086         show how the message handler helps us deal with replies.
15087
15088         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15089
15090         * dbus/dbus-string.c (_dbus_string_test): free a string that
15091         wasn't
15092
15093         * dbus/dbus-hash.c: use memory pools for the hash entries
15094         (rebuild_table): be more paranoid about overflow, and
15095         shrink table when we can
15096         (_dbus_hash_test): reduce number of sprintfs and write
15097         valid C89. Add tests for case where we grow and then
15098         shrink the hash table.
15099
15100         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15101
15102         * dbus/dbus-connection.c (dbus_connection_register_handler)
15103         (dbus_connection_unregister_handler): new functions
15104
15105         * dbus/dbus-message.c (dbus_message_get_name): new
15106
15107         * dbus/dbus-list.c: fix docs typo
15108
15109         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15110         an object representing a handler for messages.
15111
15112 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15113
15114         * glib/dbus-glib.h:
15115         * glib/dbus-gthread.c: (dbus_gthread_init):
15116         Don't use the gdbus prefix for public functions.
15117
15118 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15119
15120         * Makefile.am:
15121         * configure.in:
15122         Add GLib checks and fixup .pc files
15123
15124         * glib/Makefile.am:
15125         * glib/dbus-glib.h:
15126         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15127         (gdbus_connection_check), (gdbus_connection_dispatch),
15128         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15129         (dbus_connection_gsource_new):
15130         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15131         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15132         * glib/test-dbus-glib.c: (message_handler), (main):
15133         Add GLib support.
15134
15135 2002-12-15  Harri Porten  <porten@kde.org>
15136
15137         * autogen.sh: check for libtoolize before attempting to use it
15138
15139         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15140         struct.
15141
15142         * .cvsignore: ignore more stamp files
15143
15144         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15145
15146         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15147         without make install.
15148
15149 2002-12-15  Havoc Pennington  <hp@pobox.com>
15150
15151         * dbus/dbus-threads.c: add thread stubs that a higher library
15152         layer can fill in. e.g. the GLib wrapper might fill them in with
15153         GThread stuff. We still need to use this thread API to
15154         thread-safe-ize the library.
15155
15156 2002-12-12  Havoc Pennington  <hp@pobox.com>
15157
15158         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15159         below new interfaces and include fewer system headers.
15160
15161         * dbus/dbus-sysdeps.c (_dbus_read): new function
15162         (_dbus_write): new function
15163         (_dbus_write_two): new function
15164         (_dbus_connect_unix_socket): new function
15165         (_dbus_listen_unix_socket): new function
15166
15167         * dbus/dbus-message-internal.h: change interfaces to use
15168         DBusString
15169
15170 2002-12-11  Havoc Pennington  <hp@pobox.com>
15171
15172         * dbus/dbus-types.h: add dbus_unichar
15173
15174         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15175
15176         * dbus/dbus-connection.c (dbus_connection_send_message): return
15177         TRUE on success
15178
15179         * dbus/dbus-transport.c: include dbus-watch.h
15180
15181         * dbus/dbus-connection.c: include dbus-message-internal.h
15182
15183         * HACKING: add file with coding guidelines stuff.
15184
15185         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15186         handling here, for security purposes (as in vsftpd). Not actually
15187         using this class yet.
15188
15189         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15190         system/libc usage here, as in vsftpd, for ease of auditing (and
15191         should also simplify portability). Haven't actually moved all the
15192         system/libc usage into here yet.
15193
15194 2002-11-25  Havoc Pennington  <hp@pobox.com>
15195
15196         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15197         always print the first verbose message.
15198
15199 2002-11-24  Havoc Pennington  <hp@pobox.com>
15200
15201         * test/echo-client.c, test/echo-server.c: cheesy test
15202         clients.
15203
15204         * configure.in (AC_CHECK_FUNCS): check for writev
15205
15206         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15207         function
15208
15209         * dbus/dbus-list.c (_dbus_list_foreach): new function
15210
15211         * dbus/dbus-internals.c (_dbus_verbose): new function
15212
15213         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15214         representing a server that listens for connections.
15215
15216         * dbus/.cvsignore: create
15217
15218         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15219         public API for reporting errors
15220
15221         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15222         public object representing a connection that
15223         sends/receives messages. (Same object used for
15224         both client and server.)
15225
15226         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15227         Basic abstraction for different kinds of stream
15228         that we might read/write messages from.
15229
15230 2002-11-23  Havoc Pennington  <hp@pobox.com>
15231
15232         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15233         _DBUS_INT_MAX
15234
15235         * dbus/dbus-test.c (main): add list test, and include
15236         dbus-test.h as intended
15237
15238         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15239         (_dbus_hash_table_remove_int): return value indicates
15240         whether the entry existed to remove
15241
15242         * dbus/dbus-list.c: add linked list utility class,
15243         with docs and tests
15244
15245         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15246         array sometimes.
15247
15248 2002-11-23  Havoc Pennington  <hp@pobox.com>
15249
15250         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15251         DBUS_END_DECLS to nothing, that should fix this once and for all
15252
15253         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15254
15255         * dbus/dbus-message.c, dbus/dbus-hash.c:
15256         add some missing @brief
15257
15258 2002-11-23  Havoc Pennington  <hp@pobox.com>
15259
15260         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15261         to avoid confusing Doxygen
15262
15263         * dbus/dbus-hash.c: @} not }@
15264
15265         * dbus/dbus-message.c (struct DBusMessage): split out
15266         internals docs
15267
15268 2002-11-23  Havoc Pennington  <hp@pobox.com>
15269
15270         * configure.in: pile on more warning flags if using gcc
15271
15272         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15273         to document static functions
15274
15275         * configure.in: add summary to end of configure so it
15276         looks nice and attractive
15277
15278         * dbus/dbus-hash.c: finish implementation and write unit
15279         tests and docs
15280
15281         * configure.in: add --enable-tests to enable unit tests
15282
15283         * dbus/dbus-test.c: test program to run unit tests
15284         for all files in dbus/*, initially runs a test for
15285         dbus-hash.c
15286
15287         * dbus/dbus-internals.h: file to hold some internal utility stuff
15288
15289 2002-11-22  Havoc Pennington  <hp@redhat.com>
15290
15291         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15292         "ported" away from Tcl
15293
15294         * dbus/dbus-types.h: header for types such as dbus_bool_t
15295
15296 2002-11-22  Havoc Pennington  <hp@redhat.com>
15297
15298         * dbus/dbus.h: fixups for doc warnings
15299
15300         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15301         macros
15302         (QUIET): make it quiet so we can see warnings
15303
15304         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15305
15306 2002-11-22  Havoc Pennington  <hp@redhat.com>
15307
15308         * Makefile.am: include "Doxyfile" target in all-local
15309
15310         * configure.in: generate the Doxyfile
15311
15312         * Doxyfile.in: move Doxyfile here, so we can use
15313         configure to generate a Doxyfile with the right
15314         version number etc.
15315
15316 2002-11-22  Havoc Pennington  <hp@redhat.com>
15317
15318         * dbus/dbus-message.c: move inline docs into .c file
15319
15320         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15321         so all docs are under doc/
15322         (MAN_EXTENSION): generate man pages. Use extension
15323         ".3dbus" which matches ".3qt" on my system,
15324         I guess this is OK, I don't know really.
15325         (FILE_PATTERNS): look for .c files not .h, makes sense
15326         for plain C I think
15327
15328 2002-11-22  Havoc Pennington  <hp@pobox.com>
15329
15330         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15331         because any app can be a server, and any app can be a client,
15332         the bus is a special kind of server.
15333
15334 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15335
15336         * Doxyfile : adding. Still needs Makefile rules to be generated
15337         automatically (just run "doxygen" in the toplevel dir for now to
15338         generate docs)
15339
15340         * dbus/dbus-message.h : Adding sample docs (javadoc since
15341         resembles gtk-doc a little more)
15342
15343         * dbus/dbus.h : Adding sample docs
15344
15345 2002-11-21  Havoc Pennington  <hp@redhat.com>
15346
15347         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15348         so we can allow ourselves to include files directly,
15349         instead of having to use dbus.h
15350
15351         * dbus/dbus.h: fill in
15352
15353         * dbus/dbus-message.h: sketch out a sample header file.
15354         Include griping if you include it directly instead of
15355         via dbus.h
15356
15357         * dbus/dbus-macros.h: new file with macros for extern "C",
15358         TRUE/FALSE, NULL, etc.
15359
15360         * doc/file-boilerplate.c: put include guards in here
15361
15362 2002-11-21  Havoc Pennington  <hp@redhat.com>
15363
15364         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15365
15366         * COPYING: include the GPL as well, and license code
15367         under both AFL and GPL.
15368
15369 2002-11-21  Havoc Pennington  <hp@redhat.com>
15370
15371         * acconfig.h: get rid of this
15372
15373         * autogen.sh (run_configure): add --no-configure option
15374
15375         * configure.in: remove AC_ARG_PROGRAM to make
15376         autoconf complain less. add AC_PREREQ.
15377         add AC_DEFINE third arg.
15378
15379 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15380
15381         * doc/Makefile.am:
15382         Fix references so we can distcheck.
15383
15384 2002-11-21  Havoc Pennington  <hp@redhat.com>
15385
15386         * Initial module creation
15387