* dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
4         the correct value so we don't assert when initalizing recursive threads
5
6         * test/name-test/test-thread-init.c: call dbus_threads_init_default
7         instead of _dbus_threads_init_debug since it is more of a real world
8         test
9
10 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
11
12         * Released 1.0.0
13
14 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
15
16         * AUTHORS: added Peter and Tor of windows porting fame
17
18 2006-11-08  Havoc Pennington  <hp@redhat.com>
19
20         * doc/dbus-specification.xml: add a note about protocol stability
21
22         * doc/TODO: Remove "important for 1.0" section, replace with
23         "important for 1.2" section
24         
25 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
26
27         * README: remove some of the out of date flags
28
29         * doc/TODO: Remove todo items which are done
30
31 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
32
33         * tools/dbus-monitor.c: Handle sigint so we flush stdout
34         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
35
36 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
37
38         * tools/dbus-monitor.1: update the manpage for dbus-monitor
39         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
40
41 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
42
43         * AUTHORS: Update with all people listed in the ChangeLog
44
45 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
46
47         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
48         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
49
50 2006-11-07  Havoc Pennington  <hp@redhat.com>
51
52         * HACKING: Update release instructions to include stuff about
53         stable releases, branching, etc. May not be totally correct,
54         please fix if needed, but keep instructions up-to-date so we do
55         each stable release consistently in the future.
56
57 2006-11-07  Havoc Pennington  <hp@redhat.com>
58
59         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
60         documentation updates. Bump faq/spec versions (not to 1.0; I don't
61         think the spec will be "finished"/1.0 when we ship the 1.0 library).
62
63 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
64
65         * bus/bus.c: Missed patch - pass in the context to the directory watch
66
67 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
68
69         * Released D-Bus 1.0 RC 3(0.95)
70
71 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
72
73         * bus/activation.c (bus_activation_new): don't fail if we can not read
74         the directory as it may not exist
75
76 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
77
78         * bus/config-parser.c (service_dirs_find_dir): use 
79         _dbus_list_get_next_link so we don't get stuck in an infinite loop
80         (start_busconfig_child): move processing of standard_session_servicedirs
81         tags here because they have no content
82         (bus_config_parser_content): check we don't have content in 
83         standard_session_servicedirs tag
84
85 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
86
87         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
88         Packagers need to own this directory
89
90 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
91
92         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
93         <standard_session_servicedirs> tag with a <sevicedir> tag that
94         points to the test service directory
95
96 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
97
98         * configure.in: Add a check for DIR *dirp->dd_fd
99
100         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
101         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
102         of both Solaris and Irix
103
104 2006-11-01  Havoc Pennington  <hp@redhat.com>
105
106         * bus/dbus-daemon.1.in: document standard_session_servicedirs
107
108 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
109
110         * configure.in: expose DBUS_DATADIR
111         
112         * bus/config-parser.c: add the standard_session_servicedirs element
113         to the parser
114         (bus_config_parser_content): process the standard_session_servicedirs
115         element by getting the standard directories from sysdeps and merging
116         them into the service directory list
117         (test_default_session_servicedirs): make sure we get what we expect
118
119         * bus/session.conf.in: replace the servicedir tag with the 
120         standard_session_servicedirs tag
121
122         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
123         dbus-sysdeps.h to avoid circular header dependencies
124
125         * dbus/dbus-sysdeps.h: add the typedef of DBusList
126
127         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
128         which takes a string of directories delimited by colons, parses them 
129         out, appends a suffix and puts them in a list ignoring empty elements
130         (_dbus_get_standard_session_servicedirs): returns the standard 
131         directories for a session bus to look for service activation files
132         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
133         DBUS_DATADIR directories
134
135         * test/data/valid-config-files/many-rules.conf: add the 
136         standard_session_servicedirs tag to the valid config file tests
137
138 2006-10-30  Havoc Pennington  <hp@redhat.com>
139
140         * tools/dbus-launch.1, doc/TODO: capture intent to change the
141         command line options of dbus-launch a bit post 1.0
142
143 2006-10-27  Havoc Pennington  <hp@redhat.com>
144         
145         * dbus/dbus-connection.c (dbus_connection_open_private): document
146         how to choose shared vs. private connections
147
148 2006-10-27  Havoc Pennington  <hp@redhat.com>
149
150         * dbus/dbus-test.c: enclose more of the file in the
151         DBUS_BUILD_TESTS check.
152
153         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
154         DBUS_DISABLE_ASSERT case.
155
156         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
157         that it only works on the server side
158
159         * dbus/dbus-bus.c: add a global lock covering the BusData we
160         attach to each connection
161         (internal_bus_get): lock our access to the BusData
162         (dbus_bus_register): lock the entire registration process
163         with _DBUS_LOCK(bus_datas). If we get the lock and 
164         registration is already complete, silently return (vs. previous
165         behavior of aborting).
166         (dbus_bus_set_unique_name): lock the BusData
167         (dbus_bus_get_unique_name): lock the BusData
168
169 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
170
171         * bus/config-parser.c (service_dirs_find_dir, 
172         service_dirs_append_unique_or_free, 
173         service_dirs_append_link_unique_or_free): New static methods
174         for only appending unique service directory names into
175         the service directory list
176         (merge_included, bus_config_parser_content): Only add unique
177         service directory names into the list
178
179 2006-10-27  Havoc Pennington  <hp@redhat.com>
180
181         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
182         variables volatile, suggested by Thiago. Document struct fields.
183         (PTHREAD_CHECK): remove pthread error checking if assertions are
184         disabled, should reduce the no-assertions case to the bare
185         minimum code.
186
187 2006-10-26  Havoc Pennington  <hp@redhat.com>
188         
189         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
190         to be recursive
191         (_dbus_pthread_mutex_unlock): make it recursive
192         (_dbus_pthread_condvar_wait): save/restore the recursion count
193         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
194
195 2006-10-26  Havoc Pennington  <hp@redhat.com>
196
197         * doc/dbus-specification.xml: clarify the UUID text slightly
198
199         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
200         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
201         in preparation for being able to extend them for e.g. recursive
202         mutexes.
203
204 2006-10-26  Havoc Pennington  <hp@redhat.com>
205
206         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
207         condition variables relate to recursive mutexes.
208         
209         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
210         dbus/dbus-threads.c: Split the platforms-specific thread 
211         implementations into their own files.
212         
213         * dbus/dbus-sysdeps-pthread.c
214         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
215         was backward. Not that anything uses it.
216
217 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
218
219         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
220         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
221         needs to be cleaned up more.
222
223         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
224         up the CREDS issue.
225
226 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
227
228         * configure.in, dbus-1.pc.in: Check to see if thread methods 
229         are in glibc or libpthread and add -lpthread to the link stage 
230         if it is the latter
231
232 2006-10-26  Thiago Macieira  <thiago@kde.org>
233
234         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
235         bug 8780: the connection lock is only required while recording
236         the shared connection, so protect only that code
237         section. Don't require connection_lookup_shared to return a
238         locked connection.
239
240 2006-10-26  Thiago Macieira  <thiago@kde.org>
241
242         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
243         check if get_machine_uuid() returns NULL before proceeding any
244         further: we can't init the X atoms or create a session file
245         name if there is no machine ID.
246         This solves a crash reported by some users if
247         --exit-with-session was used without --autolaunch=<machine-id>
248
249 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
250
251         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
252         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
253
254         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
255         before we run dbus-launch
256
257         * configure.in: define TEST_BUS_BINARY to be the full path to 
258         dbus-daemon in the build root 
259
260 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
261
262         * dbus/Makefile.am:
263         * tools/Makefile.am:
264         * toos/dbus-uuidgen.1:
265                 Move the machine-id file to /var/lib/dbus 
266
267 2006-10-24  David Zeuthen  <davidz@redhat.com>
268
269         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
270         _dbus_assert (thread_init_generation != _dbus_current_generation)
271         not _dbus_assert (thread_init_generation == _dbus_current_generation)
272
273 2006-10-24  Thiago Macieira  <thiago@kde.org>
274
275         * dbus/dbus-sysdeps.h:
276         * dbus/dbus-sysdeps-unix.c: Add function
277         _dbus_make_file_world_readable that chmods a file to 0644.
278
279         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
280         Avoid writing to the static "argv" array, thereby avoiding a
281         COW on the child process.
282
283         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
284         call _dbus_make_file_world_readable on the created file.
285
286 2006-10-23  David Zeuthen  <davidz@redhat.com>
287
288         * dbus/dbus-memory.c: Use atomic variable to protect
289         n_blocks_outstanding otherwise OOM will be reported using SMP on
290         some arches
291         
292         * bus/dispatch.c: Add missing end of line characters
293
294         * bus/desktop-file.c (parse_section_start, parse_key_value) 
295         (bus_desktop_file_load): Propertly handle OOM
296
297         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
298         thread_init_generation equals _dbus_current_generation, not 0
299
300 2006-10-22  Havoc Pennington  <hp@redhat.com>
301
302         * dbus/dbus-connection-internal.h: move prototype of
303         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
304         it isn't in a public header and doesn't end up in the DBusBus
305         group in Doxygen
306
307 2006-10-21  Havoc Pennington  <hp@redhat.com>
308
309         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
310         the tarball if packagers want to run it
311
312         * cleanup-man-pages.sh: Add a script which munges all the internal
313         API man pages out of the Doxygen output. This reduces the size of
314         the installed man pages from 7 to 2 megs, and avoids
315         namespace-polluting pages. Right now (like Doxygen) this script
316         isn't in the build, it's something packagers can do manually.
317
318 2006-10-21  Havoc Pennington  <hp@redhat.com>
319
320         * dbus/dbus-connection.h: don't include the watch/timeout
321         functions in connection section
322
323 2006-10-21  Havoc Pennington  <hp@redhat.com>
324
325         * Documentation! Whee! Doxygen now 100% silent. If you make it
326         angry again, you will be punished.
327         
328 2006-10-21  Havoc Pennington  <hp@redhat.com>
329
330         * More documentation - all public API now documented according to
331         Doxygen
332
333 2006-10-21  Havoc Pennington  <hp@redhat.com>
334
335         * Document a bunch of undocumented stuff
336         
337 2006-10-21  Havoc Pennington  <hp@redhat.com>
338
339         * Clean up Doxygen group markers for public API so Doxygen finds
340         everything (not comprehensively fixed for private API).
341         Means all remaining Doxygen warnings are just about missing docs
342         and thus pretty simple to resolve.
343         
344 2006-10-21  Havoc Pennington  <hp@redhat.com>
345         
346         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
347
348         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
349         as DBUS_GNUC_DEPRECATED
350
351 2006-10-21  Havoc Pennington  <hp@redhat.com>
352
353         * Move all private API into the private Doxygen group sections of
354         the files, so they don't show up in the public API docs
355         
356 2006-10-21  Havoc Pennington  <hp@redhat.com>
357
358         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
359         dbus_message_iter_get_array_len().
360
361         * throughout: documentation improvements.
362
363 2006-10-20  Havoc Pennington  <hp@redhat.com>
364
365         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
366         matter, and the message-loader-breaker thing since nobody is going
367         to do it.  Add an item to 1.0 about supporting recursive locks
368         in dbus_threads_init_default() though, since it should be easy.
369
370         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
371         Fix this in the !dispatch case to avoid busy-looping after
372         disconnection
373
374         * More misc docs improvements
375
376 2006-10-19  Havoc Pennington  <hp@redhat.com>
377
378         * more Doxygen-related fixes (lots of moving things from the
379         public to internal section in dbus-connection.c)
380
381 2006-10-19  Havoc Pennington  <hp@redhat.com>
382
383         * Fix a pile of Doxygen warnings and missing docs
384
385 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
386
387         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
388         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
389         instead of a void *.  kqueue uses this to get the context's loop
390         while the other modules ignore the parameter.  This allows us to
391         avoid platform conditionals
392
393         * bus/bus.c (process_config_postinit): Pass in the context to the 
394         watch
395
396 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
397
398         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
399         when starting the system bus
400
401 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
402
403         * configure.in: More fixups for cross compile (Patch from 
404         Marco Pracucci <development at pracucci dot com>)
405
406 2006-10-17  Havoc Pennington  <hp@redhat.com>
407
408         * tools/dbus-send.c (main): don't close shared connection, fix
409         from Timo Hoenig
410
411 2006-10-17  Havoc Pennington  <hp@redhat.com>
412
413         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
414
415         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
416         since realistically it doesn't look like we'll be changing it
417         anymore.
418
419 2006-10-17  Havoc Pennington  <hp@redhat.com>
420
421         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
422         be used for return_if_fail type warnings; prefixes the pid, and
423         fatal by default.
424
425 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
426
427         * configure.in: Released 1.0 RC 2(0.94)
428         Add check for -fPIC and enable it if available
429
430 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
431
432         * doc/TODO: Remove the check TODO item
433
434 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
435
436         * dbus-transport-socket.c (exchange_credentials):
437         Print out more detailed errors if reading or sending
438         credentials fail (Patch from Julio M. Merino Vidal 
439         <jmmv at NetBSD dot org>)
440
441 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
442
443         * configure.in: when checking for posix getpwnam_r assume true
444         for cross compiles
445
446 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
447
448         * configure.in: Check for gethostbyname first before we check for it
449         in libnsl.  On gnu systems it is implemeneted 
450
451 2006-10-13  Havoc Pennington  <hp@redhat.com>
452
453         * dbus/dbus-connection.c
454         (dbus_connection_send_with_reply_and_block): fix to handle closed
455         connections, from Tambet Ingo bug #8631
456
457 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
458
459         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
460
461 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
462
463         * test/name-test/Makefile.am: don't link against both libdbus and
464         libdbus-convenience
465
466 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
467
468         * configure.in: check for dirfd even if it is a macro
469         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
470
471 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
472
473         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
474         avoid using dirfd on systems that don't have dirfd 
475         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
476
477 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
478
479         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
480         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
481
482         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
483         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
484         macro because _dbus_abort calls it
485
486         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
487         works
488
489 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
490
491         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
492         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
493
494 2006-10-02  Thiago Macieira  <thiago@kde.org>
495
496         * tools/dbus-launch.c (main): make it complain and abort
497         execution in case an unknown option is given. Also, process
498         the '--' argument as the end of arguments.
499
500 2006-10-01  Havoc Pennington  <hp@redhat.com>
501
502         * tools/dbus-launch.c (print_variables): if no syntax is given,
503         don't print something that's sort-of-half-sh-syntax, just print
504         a plain key-value pairs thing.
505
506         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
507         the local machine representation (but still have the hostname in
508         the display). Remove the hostname from the display if it is
509         localhost. Change session files to be named
510         ~/.dbus/session-bus/machine-display. Change X atoms to be
511         underscore-prefixed so nobody whines about ICCCM compliance.
512         Otherwise name them the same as the env variables.
513         Change session file format to include key-value pairs and an
514         explanatory comment. Keys are the same as the env variables.
515         (set_address_in_x11): X property format can't depend on
516         sizeof(pid_t) on a particular machine, fix to always be 32 bits
517
518         * tools/dbus-launch.c: make --autolaunch take a machine id
519         argument. If --autolaunch is used with a program to run, complain
520         for now (but add a FIXME). Also, don't look for existing bus if 
521         there's a program to run (but add a FIXME).
522
523         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
524         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
525         just to get this, and avoids duplicating uuid-reading code).
526
527         * tools/dbus-launch.1: clarify various things
528         
529 2006-10-01  Havoc Pennington  <hp@redhat.com>
530
531         * test/test-service.c (path_message_func): remove broken extra
532         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
533
534         * test/test-shell-service.c (path_message_func): same fix
535         
536         * dbus/dbus-connection.c
537         (_dbus_connection_get_dispatch_status_unlocked): break up the
538         function a little for clarity and fix the notification of
539         dbus-bus.c to not require dispatch to be complete
540
541         * dbus/dbus-connection.c (dbus_connection_unref): improve the
542         warning when you try to finalize an open connection.
543         
544 2006-10-01  Havoc Pennington  <hp@redhat.com>
545
546         * dbus/dbus-bus.c
547         (internal_bus_get): only weak ref the connection; this means 
548         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
549         called safely in any context
550         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
551         unref
552
553         * dbus/dbus-connection.c
554         (_dbus_connection_get_dispatch_status_unlocked): move
555         _dbus_bus_notify_shared_connection_disconnected_unlocked here
556         when queuing Disconnected instead of when the Disconnected message
557         arrives, so dbus_bus_get() won't return closed connections.
558         
559 2006-10-01  Havoc Pennington  <hp@redhat.com>
560
561         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
562         Add a hack to make DBusNewConnectionFunction work right.
563
564         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
565         the hack here. Also, fix the todo about refcount leak.
566         
567         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
568         and use the hack here
569         
570         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
571         "shareable" flag; this was completely broken, since it meant 
572         dbus_connection_open() returned a connection of unknown
573         shared-ness. Now, we always hold a ref on anything opened 
574         as shareable.
575
576         Move the call to notify dbus-bus.c into
577         connection_forget_shared_unlocked, so libdbus consistently forgets
578         all its knowledge of a connection at once. This exposed numerous
579         places where things were totally broken if we dropped a ref inside
580         get_dispatch_status_unlocked where
581         connection_forget_shared_unlocked was previously, so move
582         connection_forget_shared_unlocked into
583         _dbus_connection_update_dispatch_status_and_unlock. Also move the
584         exit_on_disconnect here.
585
586         (shared_connections_shutdown): this assumed weak refs to the
587         shared connections; since we have strong refs now, the assertion 
588         was failing and stuff was left in the hash. Fix it to close
589         still-open shared connections.
590         
591         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
592         debug pipe connections
593         
594         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
595         dbus-bus.c if the closed connection is in fact shared
596         (_dbus_connection_close_possibly_shared): rename from 
597         _dbus_connection_close_internal
598         (dbus_connection_close, dbus_connection_open,
599         dbus_connection_open_private): Improve docs to explain the deal
600         with when you should close or unref or both
601
602         * dbus/dbus-bus.c
603         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
604         from _dbus_bus_check_connection_and_unref_unlocked and modify to
605         loop over all connections
606
607         * test/test-utils.c (test_connection_shutdown): don't try to close
608         shared connections.
609
610         * test/name-test/test-threads-init.c (main): fix warnings in here
611
612         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
613         env variable to cause blocking waiting for gdb; drop
614         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
615         unconditionally.
616
617         * configure.in: add -export-dynamic to libtool flags if assertions enabled
618         so _dbus_print_backtrace works.
619
620         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
621         instead of _dbus_verbose to print the backtrace, and diagnose lack 
622         of -rdynamic/-export-dynamic
623         
624 2006-09-30  Havoc Pennington  <hp@redhat.com>
625
626         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
627         (internal_bus_get): fix screwy code formatting. whoever committed
628         that was not paying attention!
629
630 2006-09-30  Havoc Pennington  <hp@redhat.com>
631
632         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
633         reflect addition of interfaces.
634
635         * doc/dbus-specification.xml: describe a new
636         org.freedesktop.DBus.Peer.GetMachineId method
637
638         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
639         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
640         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
641         at end of skip_white
642         (_dbus_string_chop_white): new function
643
644         * bus/connection.c (bus_connections_setup_connection): call
645         dbus_connection_set_route_peer_messages.
646
647         * dbus/dbus-connection.c
648         (_dbus_connection_peer_filter_unlocked_no_update): modify to
649         support a GetMachineId method.
650
651         Also, support a new flag to let the bus pass peer methods through
652         to apps on the bus, which can be set with
653         dbus_connection_set_route_peer_messages.
654
655         Finally, handle and return an error for anything unknown on the
656         Peer interface, which will allow us to extend the Peer interface
657         in the future without fear that we're now intercepting something
658         apps were wanting to see.
659         
660         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
661         dbus/dbus-uuidgen.c
662
663         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
664         binary here, since most of the code is already in libdbus
665
666         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
667         uuid from the system config file
668
669         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
670         (_dbus_read_uuid_file_without_creating) 
671         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
672         uuid-related functions, partly factored out from dbus-server.c
673
674         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
675         DBUS_ERROR_FILE_EXISTS instead of EEXIST
676
677         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
678
679         * tools/dbus-cleanup-sockets.1: explain what the point of this
680         thing is a bit more
681
682         * autogen.sh (run_configure): add --config-cache to default
683         configure args
684
685         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
686         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
687
688         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
689         don't try to save address, fixes crash in make check
690         
691 2006-09-30  Thiago Macieira  <thiago@kde.org>
692
693         * configure.in: add DBUS_BINDIR as a #define to C source code.
694
695         * tools/dbus-launch.c
696         * tools/dbus-launch.h
697         * tools/dbus-launch-x11.c:
698         * tools/dbus-launch.1: Add the --autolaunch option to
699         dbus-launch, which makes it scan for an existing session
700         started with --autolaunch. With that option, it also creates
701         an X11 window and saves the bus address and PID to it.
702
703         * dbus/dbus-sysdeps.h:
704         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
705         a function that runs "dbus-launch --autolaunch" to retrieve
706         the running D-Bus session address (or start one if none was running)
707
708         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
709         address protocol, which tries to get the running session from
710         dbus-launch.
711
712         * dbus/dbus-bus.c:
713         * dbus/dbus-internals.h: Make "autolaunch:" be the default
714         D-Bus session bus address.
715
716         * dbus/dbus-connection.c: Fix horrible typo in error message.
717
718 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
719
720         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
721
722 2006-09-17  Havoc Pennington  <hp@redhat.com>
723
724         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
725         fix so that if unix_user_function is set on windows, we still
726         do the default check that the auth identity matches the bus identity
727
728 2006-09-16  Havoc Pennington  <hp@redhat.com>
729
730         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
731         to _dbus_transport_open_platform_specific,
732         _dbus_transport_open_socket,
733         and _dbus_transport_open_debug_pipe
734
735         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
736
737 2006-09-16  Havoc Pennington  <hp@redhat.com>
738
739         Attempt auditing public API to remove all cases where a Unix
740         function returns weird emulated goo to Windows. This probably 
741         breaks the bus daemon on Windows, to fix it again we may 
742         need to stop processing unix-specific config options on Windows,
743         and may need to add Windows-specific public API or config options.
744         
745         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
746         to reflect added interfaces; should not break soname.
747         
748         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
749         not invoke unix user function on Windows. Kind of a hacky fix, but 
750         we don't want a "unix uid" leaking out on Windows.
751
752         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
753         to get the socket fd on Windows or UNIX
754         (dbus_connection_get_unix_fd): make this always fail on Windows
755
756 2006-09-16  Havoc Pennington  <hp@redhat.com>
757
758         * dbus/dbus-server.c (dbus_server_listen): change how this works
759         to be able to delegate to a set of handlers that can succeed,
760         fail, or choose not to handle. Allows us to have 
761         dbus_server_listen_platform_specific.
762
763         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
764         factor out the tcp socket stuff to be used on windows, leaving
765         unix domain socket only in dbus-socket-unix.c
766
767         * dbus/dbus-transport-socket.c
768         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
769         stuff to be used on windows, leaving unix domain socket only 
770         in dbus-transport-unix.c
771
772         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
773         temporary hack to be sure this fails on windows
774         (dbus_connection_get_unix_process_id): ditto
775
776 2006-09-16  Havoc Pennington  <hp@redhat.com>
777
778         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
779         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
780         _dbus_open_socket so the domain/type/protocol from system headers
781         are not required. This is kind of pointless though unless we move
782         part of _dbus_connect_tcp_socket into sysdeps.c instead of
783         sysdeps-unix.c, which would mean adding a wrapper around
784         bind/listen/etc.
785         Also, add DBusError to the socket-opening functions so they 
786         don't require use of errno.
787
788 2006-09-16  Havoc Pennington  <hp@redhat.com>
789
790         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
791         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
792
793         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
794         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
795         functions specifically for sockets only, and move generic 
796         read/write/open/close into unix-specific code.
797
798 2006-09-14  Havoc Pennington  <hp@redhat.com>
799
800         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
801         complaint about accessing revents when poll returns 0, from Julian Seward.
802
803 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
804
805         * Released 1.0 RC 1 (0.93) 
806
807 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
808
809         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
810         use _dbus_close instead of close
811
812 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
813
814         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
815         credentials.  Fixes "external" authentication under e.g. NetBSD
816         which does not support any other socket credentials mechanism.
817         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
818
819 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
820
821         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
822         dbus_threads_init and be used by the dbus mutex functions to
823         avoid deadlocks.
824
825         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
826
827 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
828
829         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
830         use threadsafe readdir_r instead of readdir
831
832 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
833
834         * dbus-threads.c (dbus_threads_init_default): New method for
835         initializing the internal thread implementation (Patch from
836         Alexander Larsson <alexl at redhat dot com>)
837
838 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
839
840         * remove a bunch of todo items from the 1.0 list
841
842 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
843
844         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
845         key not found
846
847 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
848
849         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
850         complex debugging code
851
852         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
853         between the test suite ifdefs
854         (_dbus_verbose_bytes): return if verbosity is not enabled 
855
856 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
857
858         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
859         remove DBusMark
860
861 2006-09-10  Havoc Pennington  <hp@redhat.com>
862
863        patch mostly by Peter Kümmel, bug #8211
864         
865         * dbus/dbus-sysdeps-unix.c: new file, which splits out
866         unix-specific stuff in dbus-sysdeps.c
867
868         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
869         and move unix-specific stuff to dbus-sysdeps-unix.c
870
871         * configure.in: check HAVE_ERRNO_H
872         
873 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
874
875         * bus/test-main.c (main): Initialize threading during tests
876
877         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
878         Unlock connection on error
879         (generate_local_error_message): static method for generating
880         an error message when we don't have a message to reply to
881         (_dbus_connection_block_pending_call): Send a disconnect error
882         instead of just a timeout (NULL) when the bus gets disconnected
883         while blocking for a reply.
884         
885 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
886
887         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
888         filters (Patch from Kimmo Hämäläinen 
889         <kimmo dot hamalainen at nokia dot com>)
890
891 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
892
893         * dbus/dbus-connection-internal.h: Add prototype for 
894         _dbus_connection_test_get_locks to remove warning
895
896 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
897
898         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
899         close child_err_report_pipe[WRITE_END] on exec (Patch from 
900         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
901
902 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
903
904         * Clean up close calls to use _dbus_close (Patch from 
905         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
906
907 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
908
909         * doc/TODO:
910         - Remove pending call locking todo item
911         - dbus_connection_open now holds hard ref.  Remove todo item
912         - do proper locking on _dbus_bus_check_connection_and_unref
913           and handle DBUS_BUS_STARTER. Remove todo item
914         - Warn on closing of a shared connection.  Remove todo item
915
916         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
917         dbus/dbus-connection.c: Use the dbus_connection_close_internal
918         so we don't get the warning when closing shared connections
919
920         * test/test-service.c, test/test-shell-service.c: Applications
921         don't close shared connections themselves so we unref instead of
922         close
923
924         * test/test-utils.c (test_connection_shutdown): Close the connection
925
926         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
927         _dbus_bus_check_connection_and_unref_unlocked since we only call this
928         method on a locked connection.  
929         Make sure we call _dbus_connection_unref_unlocked instead of 
930         dbus_connection_unref also.
931         Handle DBUS_BUS_STARTER correctly
932
933         * dbus/dbus-connection.c (connection_record_shared_unlocked):
934         Mark as shared and hard ref the connection
935         (connection_forget_shared_unlocked): Remove the hard ref from the 
936         connection
937         (_dbus_connection_close_internal_and_unlock):  New internal function
938         which takes a locked connection and unlocks it after closing it
939         (_dbus_connection_close_internal): New internal function which acts
940         like the origonal dbus_connection_close method by grabbing a connection
941         lock and calling _dbus_connection_close_internal_and_unlock
942         (dbus_connection_close): Public close method, warns when the app
943         trys to close a shared connection
944
945 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
946
947         * bus/driver.c:
948         (bus_driver_generate_introspect_string): New method for populating
949         a DBusString with the introspect data
950         (bus_driver_handle_introspect): Move introspect generation code to 
951         bus_driver_generate_introspect_string
952
953         * bus/main.c:
954         (introspect): New function which prints out the intropect data and
955         exits
956         (main): Add a --introspect switch
957
958 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
959
960         * doc/TODO: Removed dtd publishing item.  
961         It seems the dtd has already been added at
962         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
963
964 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
965
966         * doc/TODO, various source files: Audited todo's and FIXME's and
967         prepended the ones we should be looking at with 1.0.  Those
968         prepended with 1.0? need clerification or might not be needed
969         for 1.0
970
971 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
972
973         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
974         NULL in the public API (Patch from Kimmo Hämäläinen 
975         <kimmo dot hamalainen at nokia dot com>)
976
977 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
978
979         * configure.in: Fix for OS-X compile time endian issues (patch from
980         Benjamin Reed <ranger at befunk dot com>)
981
982 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
983
984         * configure.in: Check for no-common compiler flag (OS-X fix from
985         Benjamin Reed <ranger at befunk dot com>)
986
987 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
988
989         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
990         <fcrozat at mandriva dot com>)
991
992 2006-08-29  Havoc Pennington  <hp@redhat.com>
993
994         * test/test-service.c (path_message_func): fix lack of return value
995
996         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
997         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
998         any more sense than on anything else in this file.
999         (_dbus_get_tmpdir): add const to return value, and keep the
1000         results of the various getenv around in a static variable.
1001
1002 2006-08-29  Havoc Pennington  <hp@redhat.com>
1003
1004         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1005         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1006
1007 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1008
1009         * test/Makefile.am: change find to use syntax that works with non
1010         gnu versions of find
1011
1012 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * dbus/dbus-transport.c: fix invalid deref when checking if
1015         a vtable method exists (Patch from Christian Ehrlicher 
1016         <ch dot ehrlicher at gmx dot de>)
1017
1018 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1019
1020         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1021         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1022         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1023         <bernard at brenda-arkle dot demon dot co dot uk>)
1024
1025 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1026
1027         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1028         default case
1029
1030 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1031
1032         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1033         it works on any system providing this interface, not only FreeBSD.
1034         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1035
1036 2006-08-20  Havoc Pennington  <hp@redhat.com>
1037
1038         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1039         the docs
1040
1041 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1042
1043         * Released 0.92 
1044
1045 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1046
1047         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1048         to reflect the init late change
1049
1050         * bus/bus.c (bus_context_new): Check user before we fork so we can
1051         print out an error message a user will be able to see
1052
1053 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1054
1055         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1056
1057         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1058         Add two more global locks for use on windows platforms.  These are
1059         unused on non-windows platforms but are not ifdefed out to avoid
1060         potential bugs (i.e. the few bytes lost does not warrent the extra
1061         maintanence and complexity that having seperate sets of locks would
1062         cause)
1063
1064 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1065
1066         * bus/services.c (bus_registry_acquire_service): Return an error
1067         when an application tries to register the org.freedesktop.DBus Bus Name
1068
1069         * bus/services.c (bus_registry_release_service): Return an error
1070         when an application tries to release the org.freedesktop.DBus Bus Name
1071
1072 2006-08-17  Alp Toker  <alp@atoker.com>
1073
1074         * doc/dbus-specification.xml: Fix some minor typos.
1075
1076 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1077
1078         * configure.in: use $with_init_scripts instead of $operating_system
1079         to determine where to store the pid since the init scripts manipulate 
1080         the pid file (patch from Marcelo Ricardo Leitner 
1081         <marcelo dot leitner at terra dot com dot br>.  
1082
1083 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1086         static DBusList *uninitialized_condvar_list to support new late 
1087         initialization threading model.  In this model threads can be initialized
1088         even after the D-Bus API has been used but still needs to be initialized 
1089         before the second thread has been started.  Mutexes and condvar addresses
1090         are stored in the two static lists and are replaced with actuall locks
1091         when threads are initalized.
1092         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1093         the location into the static list
1094         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1095         from the static list and freeing the mutex
1096         (_dbus_condvar_new_at_location): New method for creating a conditional 
1097         variable and placing the location into the static list
1098         (_dbus_condvar_free_at_location): New method for removing a conditional
1099         variable location from the static list and freeing the conditional variable 
1100         (init_uninitialized_locks): Atomic method which goes through the static 
1101         lists of mutex and condvar location and updates them with actuall locks
1102         (init_global_locks): changed to init_locks
1103         
1104         * dbus/dbus-connection.c:
1105         (_dbus_connection_test_get_locks): New method for tests to check connections
1106         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1107         condvar API
1108         (dbus_connection_allocate_data_slot): Pass in the global lock address
1109         to _dbus_data_slot_allocator_alloc
1110
1111         * dbus/dbus-dataslot.c:
1112         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1113         instead of the mutex itself
1114
1115         * dbus/dbus-message.c:
1116         (dbus_message_allocate_data_slot): Pass in the global lock address
1117         to _dbus_data_slot_allocator_alloc
1118
1119         * dbus/dbus-pending-call.c:
1120         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1121         to _dbus_data_slot_allocator_alloc
1122
1123         * dbus/dbus-server.c:
1124         (_dbus_server_init_base): Use the new at_location mutex API
1125         (dbus_server_allocate_data_slot): Pass in the global lock address
1126         to _dbus_data_slot_allocator_alloc
1127
1128         * test/name-test/test-threads-init.c: New test case for late thread
1129         initialization
1130
1131 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1132
1133         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1134         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1135         causes compile problems when asserts are turned off
1136         Keeping _dbus_warn for printing out the message so even if
1137         asserts are turned off the user gets the messages that something is 
1138         wrong 
1139
1140 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1141
1142         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1143
1144         * bus/services.c (bus_service_list_queued_owners):
1145         Add a pointer cast to fix compiler warning
1146
1147         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1148         return a NULL instead of FALSE since the return type
1149         is not expecting a boolean
1150
1151         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1152         Remove unused variable
1153
1154         * dbus/dbus-marshal-recursive-util.c (node_new):
1155         return a NULL instead of FALSE since the return type
1156         is not expecting a boolean
1157
1158         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1159         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1160         because we are expecting a pointer not a boolean
1161
1162         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1163         add void as the parameter so some compilers
1164         don't complain
1165
1166         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1167           _dbus_transport_new_for_tcp_socket):
1168         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1169         because we are expecting a pointer not a boolean
1170
1171         * test/shell-test.c (test_command_line):
1172         cast the second argument to _dbus_list_append to avoid compiler
1173         warnings
1174
1175         * test/test-names.c (main): remove unused variable
1176
1177         * test/test-service.c (check_hello_from_self_reply):
1178         Initialize echo_message and echo_reply to NULL
1179         
1180         * test/test-shell-service.c (handle_echo):
1181         Remove unused variable and cast the third parameter passed to
1182         dbus_connection_get_object_path_data to avoid compiler warrnings
1183
1184         * test/name-test/test-names.c (clear_message_queue):
1185         Remove unused function
1186
1187         * test/name-test/test-pending-call-dispatch.c:
1188         Fix format string in printf
1189
1190
1191 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * dbus/dbus-bus.c:
1194         * test/name-test/test-names.c:
1195         Remove test method dbus_bus_connection_get_unique_name because 
1196         we already have public method dbus_bus_get_unique_name that 
1197         does the exact same thing
1198
1199 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1200
1201         * dbus/dbus-signature.c:
1202         fix typos in Julio's previous patch which cause make check to fail
1203
1204 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1205
1206         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1207         In any case it was wrong since this is a test checking to see if
1208         address parsing is correct.  There was no need to get the true
1209         tmp directory.  
1210
1211 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1212
1213         * dbus/dbus-macros.h: Revert the addition of stddef.h
1214         as we should not be adding it to library headers 
1215
1216 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * dbus/dbus-signature.c:
1219         Fix the unit tests so that they work if assertions are not enabled.
1220         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1221
1222 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * tools/run-with-tmp-session-bus.sh:
1225         * test/name-test/run-test.sh:
1226         Remove bashisms (patch from Julio M. Merino Vidal
1227         <jmmv at NetBSD dot org>)
1228
1229 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1230
1231         * configure.in: add a version (>= 2.6.0) check for libxml2
1232
1233 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * configure.in: make sure the compiler supports -Wfloat-equal
1236         
1237         * bus/dir-watch-dnotify.c: move functional code after 
1238         variable declerations (C99 fix)  (patches from Jens Granseuer
1239         <jensgr at gmx dot net>
1240
1241 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1242
1243         * dbus/dbus-macros.h:
1244         add #include <stddef.h> so that Sun compilers don't complain about
1245         the defining NULL
1246
1247 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * dbus/dbus-sysdeps.c:
1250         * dbus/dbus-address.c:
1251         * bus/activation.c:
1252         * test/shell-test.c:
1253         don't hardcode tmp directory (patch from Dave Meikle 
1254         <dmk at davemeikle dot co dot uk>)
1255
1256 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1257
1258         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1259         Change an assert to a detailed warning and abort.  
1260         When allocator->lock != mutex it indicates that the user has failed
1261         to initalize threads before using the D-Bus library.  This warning
1262         helps the user identify the issue and fix their app.
1263
1264 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1265
1266         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1267         with cleanups of bugs found from Coverity reports:
1268
1269         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1270         close the file on error to avoid a leak
1271
1272         * bus/expirelist.c (bus_expire_list_test):
1273         Check for NULL on dbus_new0
1274
1275         * bus/activation.c (update_directory):
1276         remove dead code
1277
1278         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1279         Fix some leaks
1280
1281         * bus/bus.c (process_config_every_time):
1282         Fixed a leak
1283
1284         * bus/desktop-file.c (parse_key_value):
1285         Fixed leak
1286
1287         * bus/selinux.c (bus_selinux_id_table_insert):
1288         Fixed leak
1289
1290 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1291
1292         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1293         remove dead code
1294
1295 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1296
1297         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1298         #!/bin/bash
1299
1300 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1301
1302         * Doxyfile.in: fix the INPUT line so we can generate docs 
1303         when sourcedir != builddir (patch from Cygwin Ports maintainer
1304         <yselkowitz at users dot sourceforge dot net>
1305
1306 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1307
1308         * dbus/dbus-sysdeps.h:
1309         * dbus/dbus-sysdeps.c: 
1310         * dbus/dbus-string.c: 
1311         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1312         GLib's function which does the same thing
1313
1314         * configure.in:
1315         * bus/Makefile.am:
1316         * bus/dir-watch-default.c:
1317         * bus/dir-watch-dnotify.c:
1318         * bus/dir-watch-kqueue.c:
1319         Add kqueue directory watching for freebsd and split the directory
1320         watching code into seperate files per method/arch
1321         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1322
1323 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * configure.in:
1326         * tools/Makefile.am:
1327         * tools/dbus-launch.c:
1328         * bus/Makefile.am:
1329         allow --with-dbus-daemondir switch to be used to make the
1330         daemon install to a seperate bindir like /usr/libexec
1331         (patch from Brian Cameron <brian dot cameron at sun dot com)
1332
1333 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1334
1335         * bus/Makefile.am (install-data-hook): removed the slash after 
1336         $(DESTDIR) so we don't get the double slash which does not work
1337         in windows (patch from Andras Porjesz 
1338         <andras dot porjesz at siemens dot com>)
1339
1340 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * dbus/dbus-sysdeps.h:
1343         * dbus/dbus-sysdeps.c: 
1344           add _dbus_printf_length (patch from Peter Kümmel 
1345           <syntheticpp at gmx dot net>)
1346
1347 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1348
1349         * dbus/dbus-internals.c: unistd.h is not used 
1350         (_dbus_verbose_real): only enable verbose printing 
1351         if DBUS_VERBOSE environment var is set to '1'
1352         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1353
1354 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1357         so we still compile on older gcc (patch from Frederic Peters 
1358         <fpeters at 0d dot be>
1359
1360 2006-08-04  Havoc Pennington  <hp@redhat.com>
1361
1362         * configure.in: add -Wdeclaration-after-statement
1363
1364         * dbus/dbus-connection.c: change all the pending call stuff to
1365         reflect the fact that pending call operations use the connection
1366         lock
1367
1368         * dbus/dbus-pending-call.c: add locking here
1369
1370         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1371         field const consistent with how message field is done
1372
1373 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1374
1375         * s/D-BUS/D-Bus/g
1376
1377 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1378
1379         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1380         <in7y118 at public.uni-hamburg dot de> - fix invalid
1381         read/write reported by valgrind
1382
1383 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1384
1385         * Released 0.91
1386
1387 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * dbus/dbus-connection.c:
1390         (_dbus_connection_attach_pending_call_unlocked):
1391         (connection_timeout_and_complete_all_pending_calls_unlocked):
1392         Make sure we set timeout_added on pending calls to FALSE when
1393         we remove the timeout from the connection
1394
1395 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1396
1397         * Removed some extra bindings stuff lingering around (thanks timo)
1398         * dbus-pendingcall.c (_dbus_pending_call_new): 
1399         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1400         when we tried to take a lock on an already locked connection
1401
1402 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * Released 0.90
1405
1406 2006-07-17  Havoc Pennington  <hp@redhat.com>
1407
1408         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1409         ints, reported by Owen Taylor
1410
1411 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * doc/TODO:
1414         * dbus/dbus-bus.c:
1415         * dbus-errors.c:
1416         * dbus/dbus-marshal-validate.c:
1417           Removed TODO items which were fixed or are no longer relevent
1418
1419 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1422         Remove stray files from the stripped bindings
1423
1424 2006-07-16  Havoc Pennington  <hp@redhat.com>
1425
1426         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1427         Improve the error message on reply timeout
1428
1429 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1430
1431         * Remove all bindings
1432
1433 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1436         and set pending_reply out arg to NULL is connection is disconnected
1437         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1438         static method for cleaning up pending calls on disconnect
1439         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1440         calls queued timeouts on disconnect 
1441
1442          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1443         Remove 
1444
1445 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1446
1447         * bus/activation.[ch] (bus_activation_list_services): new function to 
1448         get the list of services that can be activated
1449
1450         * bus/dispatch.c: test coverage for the new bus method
1451         ListActivatableNames
1452
1453         * bus/driver.c: new bus method ListActivatableNames to get the list of
1454         services that can be activated
1455
1456         * doc/dbus-specification.xml: ListActivatableNames method documentation
1457
1458 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1459         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1460         source files
1461
1462 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1463         * dbus/dbus-message-factory.c:
1464         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1465
1466 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1467         * dbus/dbus-connection-internal.h:
1468         * dbus/dbus-connection.c:
1469         * file dbus/dbus-pending-call.c:
1470         * dbus/dbus-pending-call.h:
1471         Make DBusPendingCall an opaque type even to D-Bus internals
1472
1473 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1476         connection_close
1477
1478         * dbus/dbus-connection.c: include dbus-bus.h
1479         (_dbus_connection_read_write_dispatch): make static
1480
1481 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1484         function
1485         (dbus_connection_dispatch): On disconnect unref any shared connections
1486
1487         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1488         for cleaning up shared connections on disconnect
1489         (internal_bus_get): get a hard refrence to shared connections when
1490         they are created
1491         
1492         * doc/TODO: Remove items which are no longer relevent or have been fixed
1493         Split 1.0 todo items with a 0.90 freeze todo list
1494  
1495 2006-06-14  Ross Burton  <ross@openedhand.com>
1496
1497         * glib/dbus-gobject.c:
1498         Free a leaking GArray (surely not!) in dbus_g_method_return.
1499
1500 2006-06-14  Ross Burton  <ross@openedhand.com>
1501
1502         * tools/Makefile.am:
1503         * tools/dbus-monitor.c:
1504         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1505         Habacker).
1506         
1507 2006-06-14  Ross Burton  <ross@openedhand.com>
1508
1509         * tools/dbus-print-message.c:
1510         Also print the object path when outputting signals or method calls.
1511
1512 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1513
1514         * qt/src/Makefile.am: install the qdbus.h header.
1515         This allows people to actually use the installed code.
1516
1517 2006-06-12  Ross Burton  <ross@openedhand.com>
1518
1519         * glib/dbus-gproxy.c:
1520         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1521
1522 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1523
1524         * Released 0.62
1525
1526 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1527
1528         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1529         break pedantic builds. Closes bug 6043 (patch approved by
1530         Havoc back in February).
1531
1532 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1533
1534         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1535         that took a QDBusMessage parameter.
1536         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1537         * qt/tools/dbus.cpp: Don't use automatic call because we might
1538         be calling an async method: request a reply.
1539
1540 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1541
1542         * test/qt/*: Update the testcases, including testing the new
1543         functionality of sending null QByteArray and QString over the
1544         bus. Add new headertest test and restore the old
1545         qdbusxmlparser test.
1546
1547 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1548
1549         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1550         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1551
1552         * qt/examples/Makefile.am:
1553         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1554         form.
1555
1556         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1557         QByteArray() (nulls) over the bus.
1558         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1559         the one that has the signature suffix stripped.
1560         * qt/src/qdbusreply.h: Make some methods const.
1561
1562 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1563
1564         Patch from Timo Hoenig <thoenig@suse.de>.
1565
1566         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1567         required during build to EXTRA_DIST.
1568         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1569         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1570         * configure.in: Fix "make dist", take care that the Makefile for
1571         qt/dbus is being generated.
1572
1573 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * bus/bus.c: Fix eavesdropping on method calls
1576
1577 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1578
1579         * configure.in:
1580         * dbus/dbus-userdb-util.c:
1581         Add Solaris console owner patch from Artem Kachitchkine
1582
1583 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1584
1585         * qt/Makfile.am:
1586         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1587         reorganisation. Thanks to Timo Hoenig for pointing this out.
1588
1589 2006-06-06  Robert McQueen  <robot101@debian.org>
1590
1591         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1592           call to dbus_g_type_get_struct.
1593
1594 2006-06-06  Robert McQueen  <robot101@debian.org>
1595
1596         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1597           pointers were put into a GPtrArray-based specialised collection, and
1598           then freed along with the array. GValues which you add into
1599           collections or maps which have the NOCOPY flag set are assumed to not
1600           belong to the caller, so rather than the existing pointer-stealing
1601           semantics, they are copied instead. Given that the main consumers of
1602           this abstraction are the bindings themselves, I don't think this is
1603           too bad, but others should watch their choice of take vs set_static.
1604
1605 2006-06-06  Robert McQueen  <robot101@debian.org>
1606
1607         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1608           of g_slist_prepend not being used. Fixed copying of slist-based
1609           specialised collections, then wrote a test case and found that it was
1610           all broken. Went on to fix iterating and appending too. Good thing
1611           nobody uses this code yet.
1612
1613 2006-06-06  Robert McQueen  <robot101@debian.org>
1614
1615         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1616           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1617           are discarded without unsetting, so it makes no difference whether
1618           we take or set_static). Remove cases for G_TYPE_POINTER because
1619           there really is nothing useful we can do with them in our
1620           specialised types - we *need* boxed copy/free functions at the very
1621           least.
1622
1623 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1624
1625         * qt/dbus: Add directory. I had forgotten to add this
1626         yesterday after the move...
1627
1628         * qt/examples/Makefile.am:
1629         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1630
1631         * qt/tools/Makefile.am:
1632         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1633         Added feature to get and set properties.
1634         Added validation of service, object path and interface names.
1635
1636         * qt/tools/dbusidl2cpp.cpp: Two new features:
1637         1) Allow specifying both the header and the source file names,
1638         by separating them with a colon.
1639         2) Don't write an interface output if the -p switch wasn't
1640         given, but the -a was.
1641
1642         * qt/src/*: Fix usage of Iterators and ConstIterators.
1643         Fix shadowing of variables by other variables (-Wshadow).
1644         Fix keyword-cleanliness in headers.
1645         Fix ASCII-cast (QLatin1String, QLatin1Char).
1646         Fix validation of member names.
1647         Add extra checking of introspection data during XML parsing.
1648         Various bug fixes.
1649
1650 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1651
1652         * dbus/Makefile.am:
1653         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1654         qt/dbus/qdbus.h now.
1655
1656 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1657
1658         * configure.in: Make --disable-qt actually do
1659           something. Patch inspired by Zack Rusin.
1660
1661 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1662
1663         * qt/: Update to Subversion r548032.
1664         This includes a big reorganisation of the files inside the
1665         subdir.
1666
1667 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1668
1669         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1670         clear:  
1671         "Failed to connect to socket <host>:<port> <error>" instead of
1672         "Failed to connect to socket <host>: <error>:<port>"
1673
1674         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1675         for a tcp transport. 
1676
1677 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1678
1679         * qt/*: Update the QtDBus bindings up to revision 546310 in
1680         Subversion.
1681         This adds the dbuscpp2xml tool, that parses a C++ header and
1682         outputs a D-BUS Introspection XML.
1683
1684 2006-05-21  Havoc Pennington  <hp@redhat.com>
1685
1686         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1687         is not NULL when it shouldn't be. Also a couple of possible fixes
1688         for #4637 though I don't understand why the bug happens, to be
1689         honest... also the object constructor has an assert name != NULL
1690         and the name is only currently NULL for peer-to-peer proxies that 
1691         I don't think anyone uses? So it should be asserting.
1692         Anyway, for now at least see if we get an earlier assertion failure.
1693
1694         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1695         apparently broken code to be sure the tests fail and someone 
1696         will fix them...
1697
1698 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1699
1700         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1701         and arrays when they had a single element: has_next returns
1702         false, even before you read the element. So, instead, check
1703         the array length.
1704
1705 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1706
1707         * qt/qdbusmessage.cpp:
1708         * qt/qdbustypehelper_p.h:
1709         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1710         the list is a const-reference
1711
1712 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1713
1714         * Adding old doc patch that never got applied
1715         
1716         * dbus/bus.c (dbus_bus_add_match): Add documentation
1717
1718         * doc/dbus-specification.xml: Add documentation for the match rules
1719           and the AddMatch and RemoveMatch methods
1720
1721 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1722
1723         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1724         call (r535506)
1725
1726         * qt/dbusidl2cpp.cpp:
1727         * qt/qdbusabstractadaptor.cpp:
1728         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1729         sibling of the QDBusAbstractAdaptor objects instead of the
1730         parent. (r535848)
1731
1732         * qt/dbusidl2cpp.cpp:
1733         * qt/qdbusabstractinterface.cpp:
1734         * qt/qdbusabstractinterface.h:
1735         * qt/qdbusabstractinterface_p.h:
1736         * qt/qdbusinterface.cpp: Make properties in interfaces
1737         actually work. The code that was generated would not compile,
1738         due to moc calls to functions that did not exist. They now
1739         shall. (r536571)
1740
1741 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1742
1743         * Makefile.am:
1744         * configure.in:
1745         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1746         Thanks to Brad Hards for providing the patch
1747
1748 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1749
1750         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1751         call. (r535506)
1752
1753 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1754
1755         * qt/examples/dbus.cpp: Enhance error messages and use
1756         QDBusInterfacePtr.
1757
1758 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1759
1760         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1761         and disable the copy operators. (r533772, r534746)
1762
1763         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1764
1765         * qt/qdbusabstractinterface.cpp:
1766         * qt/qdbusabstractinterface.h: Change the default call mode to
1767         not use the event loop. Add convenience call() methods that
1768         take a CallMode parameter. (r534042)
1769
1770         * qt/qdbusconnection.h: Change the default call mode to not
1771         use the event loop. (r534042)
1772
1773         * qt/qdbusinterface.cpp:
1774         * qt/qdbusinterface.h: Add a method to tell us if the
1775         interface is valid (since we don't return a null pointer
1776         anymore) (r534099)
1777
1778         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1779         (r534101)
1780
1781         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1782         function in two so taht we get the chance to introspect
1783         without having a QDBusMessage (r534102)
1784
1785         * qt/qdbusbus.h:
1786         * qt/qdbusconnection.cpp:
1787         * qt/qdbusconnection_p.h:
1788         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1789         avoid a round-trip to the server when attempting to introspect
1790         one of our own objects. Also make sure the filter functions
1791         match the empty interface as well. (r534108)
1792         Don't keep the connection names. Instead, trust the unique
1793         connection name (r534111)
1794         Remove event loop usage (r534112)
1795
1796 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1797
1798         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1799         Brad Hards.
1800
1801 2006-04-28  Robert McQueen  <robot101@debian.org>
1802
1803         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1804         any order, making it easier for people who inherit from this
1805         object.
1806
1807 2006-04-28  Robert McQueen  <robot101@debian.org>
1808
1809         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1810         of memory from within pointer arrays and lists. Fixes bug #6300.
1811
1812 2006-04-28  Robert McQueen  <robot101@debian.org>
1813
1814         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1815         generating struct signatures. Fixes bug #6083.
1816
1817 2006-04-28  Robert McQueen  <robot101@debian.org>
1818
1819         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1820         to qdbusconnection_p.moc.
1821
1822 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1823
1824         * README, INSTALL: Doc fixes
1825         Patch from Brad Hards <bradh at frogmouth.net>
1826
1827 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1828
1829         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1830         the dynamic meta object. No need to guess which interface to
1831         call.
1832
1833 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1834
1835         * qt/qdbusconnection_p.h:
1836         * qt/qdbusmetaobject.cpp:
1837         * qt/qdbusmetaobject_p.h:
1838         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1839         for the dynamic meta object. No need to guess which
1840         interface to call.
1841         * qt/qdbusabstractinterface_p.h:
1842         * qt/qdbusconnection.cpp:
1843         * qt/qdbusintegrator.cpp:
1844         * qt/qdbusinterface.cpp:
1845         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1846         Add a QDBusRef that looks and behaves like DCOPRef.
1847
1848 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1849
1850         * dbus/dbus-connection.c: Interfaces are optional in method
1851         calls, so don't give up if the interface parameter is NULL.
1852         Patch reviewed by Havoc Pennington.
1853
1854 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1855
1856         * qt/qdbusreply.h: Add default constructor and operator=
1857           (r532625)
1858         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1859           in public headers (r532952)
1860         * qt/qdbusabstractinterface.cpp:
1861         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1862           make it the default (r532951)
1863
1864 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1865
1866         * dbus/dbus-connection.c: Fix asserts
1867         Patch from Tim Moloney <t.moloney at verizon.net>
1868
1869 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1870
1871         * mono/Connection.cs, mono/Message.cs: Check Target type
1872         Patch from Aaron Bockover (abockover at novell.com)
1873
1874 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1875
1876         * INSTALL: fine-tune the requirements for the Qt4 binding.
1877
1878 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1879
1880         * tools/dbus-print-message.c: Added support for printing of all 
1881           remaining data types. Fixed logic for indentation of compound
1882           data types.
1883         
1884 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1885
1886         * INSTALL: fill out content of file providing DBus specific
1887           build installations, followed by generic Auto* INSTALL file
1888           content
1889         
1890 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1891
1892         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1893           Patch by Stefan Eilers. (r529537)
1894
1895 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1896
1897         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1898           contents (r528208)
1899
1900 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1901
1902         * qt/Makefile.am: fix the dependency for
1903           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1904           not in qdbusconnection.cpp.
1905           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1906           spotting this.
1907
1908 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1909
1910         * qt/examples/listnames.cpp:
1911         * qt/examples/Makefile.am: Three ways to list the names on the
1912           bus.
1913
1914 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1915
1916         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1917           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1918
1919 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1920
1921         Merge from Subversion:
1922         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1923           something that exists (r526315)
1924         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1925           slots/signals (r526316)
1926         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1927           also return an unknown-method error if the parameters don't
1928           match for org.freedesktop.DBus.Properties. (r526842)
1929         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1930         * qt/qdbusintegrator.cpp: Restore the proper order of
1931           delivery: don't make method returns be delivered on priority
1932           (r528150)
1933
1934 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1935
1936         * configure.in qt/Makefile.am: add qt/examples
1937         * qt/examples: Add QtDBus example programs:
1938           - hello: Hello, World
1939           - ping: Simple method-calling program
1940           - pong: Simple object-exporting program (not using adaptors)
1941           - complexping: Interactive method-calling program 
1942                 (also gets and sets properties).
1943           - complexpong: Sample program exporting methods, signals and
1944                 properties, using adaptors.
1945           - dbus: Simple implementation of a generic method-calling
1946                 program, similar to 'dbus-send', but with semantics
1947                 similar to 'dcop'.
1948           - chat: Simplistic chat program, implemented using signals
1949                 and the system bus. Looks like IRC.
1950
1951 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1952
1953         * configure.in: Detect QtGui (necessary for one of the
1954           example programs). Note: this increases the minimum required
1955           version of Qt to 4.1.3.
1956
1957 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1958
1959         * test/qt/*: Sync with KDE Subversion revision 523647.
1960         Update the testcases to the new API. Remove testcases for
1961         classes that are no longer public or have been removed.
1962
1963 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1964
1965         * qt/*: 
1966         * dbus/qdbus.h: Sync with KDE Subversion revision
1967         523647. Hopefully, this will be the last of the
1968         source-incompatible changes. Documentation has been improved;
1969         support for QList<basic-types> has been added; QDBusObject is
1970         gone; QDBus(Abstract)Interface is now a QObject with
1971         auto-generated meta-object; QDBusIntrospection is marked
1972         private, since QMetaObject can be used now; lots of bugfixes.
1973
1974 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1975
1976         Patch from Milosz Derezynski <internalerror at gmail.com>
1977         
1978         * configure.in:
1979         Output the service directory in the configure summary
1980
1981         * dbus-1.pc.in:
1982         Add session_bus_services_dir
1983
1984 2006-03-10  Ross Burton  <ross@openedhand.com>
1985
1986         * tools/dbus-print-message.c:
1987         Add support for object paths and signatures.
1988
1989 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1990
1991         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1992         config reload.
1993         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1994         information caches
1995         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1996         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1997         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1998         * dbus/dbus-userdb.h: Add function to flush all user/group information
1999         caches.
2000
2001 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2002
2003         * qt/dbusidl2cpp.cpp:
2004         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2005         for dcopidl2cpp, found in the KDE installations (or the more
2006         modern kalyptus): generate Qt4 C++ code for the input XML
2007         introspection. Currently no IDL parsing.
2008
2009 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2010
2011         * test/qt/*: Update the self-tests.
2012
2013 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2014
2015         * qt/*: 
2016         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2017         represents the first feature-complete version of the Qt4
2018         bindings since I took ove maintainership.
2019
2020 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2021
2022         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2023         dir. This is C++, so we can't use the DBus ones.
2024
2025 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2026
2027         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2028         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2029
2030 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2031
2032         * dbus/dbus-connection.c: 
2033         (_dbus_connection_block_pending_call):
2034         Check to see if our data has already been read off the connection
2035         by another blocking pending call before we block in poll.
2036         (check_for_reply_and_update_dispatch_unlocked):
2037         Code taken from _dbus_connection_block_pending_call - checks for
2038         an already read reply and updates the dispatch if there is one.
2039
2040         * test/name-test/test-pending-call-dispatch.c:
2041         New test for making sure we don't get stuck polling a 
2042         dbus connection which has no data on the socket when
2043         blocking out of order on two or more pending calls.
2044
2045 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2046
2047         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2048         make/automake don't detect that we're talking about the same
2049         .lo file if I specify the full path to the source files.
2050
2051 2006-02-26  Havoc Pennington  <hp@redhat.com>
2052
2053         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2054
2055         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2056         session bus variable is unset, suggest "man dbus-launch" and "man
2057         dbus-daemon" to figure out how to fix the problem
2058
2059 2006-02-25  Havoc Pennington  <hp@redhat.com>
2060
2061         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2062         should make this thing use the new glib options parser
2063
2064 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2065
2066         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2067         .lo files taking moc sources.
2068
2069 2006-02-25  Havoc Pennington  <hp@redhat.com>
2070
2071         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2072         and install it as a public header
2073
2074 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2075
2076         * Released 0.61
2077
2078 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2079         
2080         * proxies.py: Fix the callchain
2081
2082 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2083         
2084         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2085
2086         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2087         dbus/dbus-sysdeps.c
2088
2089         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2090         call _dbus_group_info_free_allocated which causes infinite loop,
2091         correctly call _dbus_group_info_free
2092
2093 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2094
2095         * qt/qdbusinterface_p.h:
2096         * qt/qdbusinterface.cpp: Use the standard
2097         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2098         calls instead of creating one for us.
2099
2100         * qt/qdbusconnection_p.h:
2101         * qt/qdbusintegrator.cpp: Remove debugging code.
2102
2103         * qt/qdbusintegrator.cpp:
2104         * qt/qdbusmessage.cpp:
2105         * qt/qdbusmessage_p.h:
2106         * qt/qdbusmessage.h: Change the behaviour of automatic
2107         reply-sending: now a reply is always sent, unless the caller
2108         didn't request one or if the user slot has already sent one.
2109
2110 2006-02-16  Robert McQueen  <robot101@debian.org>
2111
2112         * configure.in: Patch from Debian packages by Sjoerd Simons
2113         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2114         arguments so it's possible to build both bindings in the
2115         same tree.
2116
2117         * qt/Makefile.am: Fix truncated value so that make dist works.
2118
2119 2006-02-16  Robert McQueen  <robot101@debian.org>
2120
2121         * acinclude.m4, configure.in: Patch from Brad Hards
2122         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2123         improving quoting, re-ordering a few checks, and a few other
2124         aesthetic tidy-ups.
2125
2126 2006-02-16  Robert McQueen  <robot101@debian.org>
2127
2128         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2129         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2130         assertion that the next element to read from the iter is fixed in
2131         size. This is not the case when you are at the end of the iter,
2132         because the next element type is INVALID.
2133
2134         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2135         a bogus assert which means that you may not initialise a 0-length
2136         string unless you provide a non-NULL pointer. This prevented
2137         you from marshalling messages containing zero-length arrays in
2138         some cases.
2139
2140         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2141         from Rob to correct bogus asserts when trying to demarshal an
2142         array and get_fixed_array got you 0 elements. Append nothing to
2143         the GArray in this case.
2144
2145         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2146         an empty array via the glib bindings. Without all of the above
2147         patches, this new test fails.
2148
2149 2006-02-16  Robert McQueen  <robot101@debian.org>
2150
2151         * glib/dbus-gmain.c: Make the previous commit compile.
2152
2153         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2154         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2155         specify sender_keyword="foo", path_keyword="bar" when adding
2156         a signal listener, so that you can bind to signals generically
2157         but still do something useful in your callback.
2158
2159         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2160         chars so that they're not cast to chars and made negative. Thanks
2161         to Jakub Stachowski for reporting this and testing the fix.
2162
2163 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2164
2165         * dbus/dbus-glib.h:
2166         * glib/dbus-gmain.h:
2167         (dbus_g_connection_open): new method for openning
2168         a connection to an arbitrary address in the glib bindings
2169
2170         * ChangeLog: checkin last entry which doesn't seem to be commited
2171
2172 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2173
2174         * tools/dbus-launch.c: Fixed sh syntax output
2175
2176 2006-02-13  Robert McQueen  <robot101@debian.org>
2177
2178         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2179         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2180         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2181         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2182         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2183         missing piece of the glib bindings jigsaw puzzle. This modifies
2184         the existing specialised types to have N type parameters (rather
2185         than the current 1 or 2 for arrays and dictionaries respectively).
2186         You can then use this to get a glib type to represent any arbitrary
2187         D-Bus struct type using dbus_g_type_get_struct. The only
2188         implementation of these types is with GValueArrays as before,
2189         but it's now possible to store these in arrays, emit them in
2190         signals, etc.
2191
2192 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2193
2194         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2195         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2196         <thiago.macieira at trolltech.com>
2197
2198 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2199
2200         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2201         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2202
2203 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2204
2205         * bus/connection.c (bus_connections_expect_reply): Make
2206         pending reply limit not common to all connections (Bug #5416)
2207         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2208
2209 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2210
2211         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2212
2213 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2214
2215         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2216         patch from Doug Goldstein <cardoe at gentoo.org>
2217
2218 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2219
2220         * mono/Arguments.cs: Fix a magic number in the mono bindings
2221         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2222
2223 2006-01-27  Robert McQueen  <robot101@debian.org>
2224
2225         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2226         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2227         when generating the client-side methods, instead of overloading
2228         CSymbol which broke everything horribly. My apologies.
2229
2230 2006-01-27  Robert McQueen  <robot101@debian.org>
2231
2232         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2233         by me and Rob Taylor to add a simple_free function to D-Bus map
2234         and collection types, which allows those types which can be freed
2235         with a GDestroyNotify (such as GHashTables and GArrays, but not
2236         GPtrArrays) to be stored as the values in hashtables.
2237
2238         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2239         Patch by Rob Taylor to add nested dicts to the glib tests to check
2240         the above code works, and appears not to leak when called repeatedly.
2241
2242 2006-01-27  Robert McQueen  <robot101@debian.org>
2243
2244         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2245         to free a D-Bus allocated string with dbus_free () instead of
2246         g_free ().
2247
2248 2006-01-27  Iain Holmes  <iain@openedhand.com>
2249
2250         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2251         method from being called multiple times.
2252
2253 2006-01-19  Robert McQueen  <robot101@debian.org>
2254
2255         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2256         <rob.taylor@collabora.co.uk> to add support for generating bindings
2257         to arrays that are represented as GPtrArrays rather than GArrays (ie
2258         size-variable things, such as strings, objects, structs, etc).
2259
2260 2006-01-05  Robert McQueen  <robot101@debian.org>
2261
2262         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2263         <ricardo.kekki@movial.fi> to make it possible to inherit from
2264         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2265         a private part, and moving the setting of the DBusGProxyManager into a
2266         connection property, allowing proper GObject construction.
2267
2268 2006-01-05  Robert McQueen  <robot101@debian.org>
2269
2270         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2271         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2272         annotations when generating glib client bindings.
2273
2274 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2275
2276         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2277
2278         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2279
2280 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2281
2282         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2283
2284 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2285
2286         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2287
2288 2005-12-19  Ross Burton  <ross@openedhand.com>
2289
2290         * doc/dbus-tutorial.xml:
2291         Document the Glib client-side bindings, and list all possible annotations.
2292
2293 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2294
2295         * dbus/bus.c (dbus_bus_release_name): Add documentation
2296
2297 2005-12-06  Robert McQueen  <robot101@debian.org>
2298
2299         * python/service.py: s/sucessful/successful/ so we're allocating to
2300         and reading from the same variable. Oops.
2301
2302 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2303
2304         * Released 0.60
2305
2306 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2307
2308         * test/qt/Makefile.am: build from srcdir
2309
2310         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2311         Note - this code is wrong and needs to be fixed by the Qt binding
2312         developers.  The flags should be treated as bitfields and not enums.
2313
2314         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2315
2316 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2317
2318         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2319           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2320           in production code
2321
2322 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2323
2324         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2325         method for getting messages off the bus in the absence of a
2326         mainloop.  This method is much like 
2327         dbus_connection_read_write_dispatch except it does not dispatch
2328         the messages to a registered filter function.  Instead it
2329         allows a developer to process messages by directly popping
2330         them off the bus.
2331
2332 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2333
2334         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2335         the parser to continue instead of returning error
2336         (bus_desktop_file_load): Do not free parser data when
2337         parse_section_start or parse_key_value fails because it was 
2338         already freed by parser_free (patch from Carlos Garcia Campos  
2339         <carlosgc at gnome.org>)
2340
2341 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2342
2343         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2344         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2345         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2346         test/test-segfault.c, test/test-utils.c,
2347         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2348         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2349         Various cleanup of dead code and compiler warnings (patch from
2350         Kjartan Maraas <kmaraas at gnome.org>) 
2351
2352 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2353
2354         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2355         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2356
2357 2005-11-27  Robert McQueen  <robot101@debian.org>
2358
2359         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2360         part of the preceding one. Oops. Merge patch by Johan Hedberg
2361         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2362         on big-endian platforms.
2363
2364         * test/python/test-client.py: Add some 16-bit integers to the test
2365         values.
2366
2367 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2368
2369         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2370         method return message for property getters
2371
2372 2005-11-27  Robert McQueen  <robot101@debian.org>
2373
2374         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2375         with type v of an instance of dbus.Variant(foo, type='x') caused
2376         it to be boxed twice before sending over the bus.
2377
2378         * python/dbus_bindings.pyx, python/service.py,
2379         test/python/test-client.py: Update the constants for the new
2380         request_name flags, and update comments/test cases now that queueing
2381         is the default action.
2382
2383 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2384
2385         * configure.in:
2386         - Change version to 0.60 for impending release
2387         - upped the sonames because of ABI and API breakage
2388
2389 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2390
2391         * configure.in: Add test/name-test/Makefile to the generated
2392         Makefile list
2393
2394         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2395         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2396         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2397         not to queue an ower if it can't be the primary owner
2398
2399         * bus/bus.h: Add new internal BusOwner struct
2400
2401         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2402         to bus_registry_ensure and don't set the prohibit_replacement flag
2403         since they are now set per BusOwner and not per name.
2404         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2405         that returns the list of connections in a name's connection queue
2406         
2407         * bus/services.c (struct BusService): remove prohibit_replacement field
2408         (struct BusOwner): new struct for keeping track of queued connections
2409         and their associated flags for the queue
2410         (struct BusRegistry): add a BusOwner memory pool
2411         (bus_registry_new): initialize the BusOwner memory pool
2412         (bus_registry_unref): free the BusOwner memory pool
2413         (_bus_service_find_owner_link): new internal method for
2414         searching the queue for a specific connection
2415         (bus_owner_set_flags): new method for adding setting the flags on a
2416         bus owner
2417         (bus_owner_new): new method that creates a BusOwner object from the
2418         pool and sets its flags
2419         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2420         (bus_registry_ensure): Add the flags parameter
2421         (bus_registry_acquire_service): Switch from using raw connections to
2422         using the BusOwner struct
2423         Add new state machine for dealing with the new set of flags
2424         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2425         cancel_ownership, free_ownership_cancel_data, 
2426         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2427         restore_ownership, free_ownership_restore_data, 
2428         add_restore_ownership_to_transaction): Switch to using BusOwner 
2429         instead of raw connections
2430         (bus_service_add_owner): Add flags parameter
2431         Switch to using BusOwner instead of raw connections
2432         Add state machine for dealing with the new set of flags
2433         (bus_service_swap_owner): Swaps the first and second owners in the
2434         queue.  Used to make sure proper signals are sent when a service looses 
2435         or gains primary ownership.  We never insert an owner at the top of the
2436         queue.  Instead we insert it in the second position and then swap.
2437         (bus_service_remove_owner): Remove the owner from the queue sending
2438         out the NameLost and NameOwnerChanged signals if the we were the 
2439         primary owner
2440         (bus_service_get_primary_owners_connection): New method that extracts
2441         the connection from the primary owner
2442         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2443         connection
2444         (bus_service_get_allow_replacement): Changed from the old 
2445         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2446         primary owner and returns if it can be replaced or not
2447         (bus_service_set_prohibit_replacement): removed
2448         (bus_service_has_owner): returns TRUE if and owner with
2449         the specified connection exists in the queue
2450         
2451         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2452         method that only compiles if tests are enabled.  Allows us to get the 
2453         unique name of a connection so we can check it against the queue when
2454         doing regression tests
2455
2456         * bus/activation.c (bus_activation_send_pending_auto_activate),
2457         bus/dispatch.c (bus_dispatch),  
2458         bus/driver.c (bus_driver_handle_get_service_owner, 
2459         bus_driver_handle_get_connection_unix_user, 
2460         bus_driver_handle_get_connection_unix_process_id,
2461         bus_driver_handle_get_connection_selinux_security_context),
2462         bus/signals.c (connection_is_primary_owner): 
2463         use bus_service_get_primary_owners_connection instead of
2464         bus_service_get_primary_owner
2465
2466         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2467         _dbus_listen_unix_socket): Calculate the length of the socket
2468         path and use that instead of using a fixed length which was
2469         causing socket names to contain many trailing Nul bytes.
2470
2471         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2472         (dbus_g_method_get_sender): New method for extracting the sender 
2473         from a DBusGMethodInvocation
2474         (dbus_g_method_return_get_reply): changed name to 
2475         dbus_g_method_get_reply
2476         (dbus_g_method_return_send_reply): changed name to
2477         dbus_g_method_send reply
2478
2479         * doc/dbus-specification.xml: New docs that describe how the new
2480         queueing system works and talks about the changes to the how
2481         we specify socket names
2482
2483         * glib/examples/example-service.c, 
2484         glib/examples/example-signal-emitter.c,
2485         glib/examples/statemachine/statemachine-server.c:
2486         Changed the RequestName flags to the new system
2487
2488         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2489         regression test suite for testing various states of the new
2490         queueing system
2491         
2492 2005-11-15  Robert McQueen  <robot101@debian.org>
2493
2494         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2495         Taylor to add two methods, dbus_g_method_return_get_reply and
2496         dbus_g_method_return_send_reply, to allow you to get the reply
2497         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2498         and send it. The GLib bindings can't marshal a return value of
2499         something like a(s) if the array is empty - ultimately they should be
2500         made to heed the signature of the out arguments as the Python bindings
2501         now can, but this is a workable interim solution which might have
2502         other applications.
2503
2504 2005-11-15  Robert McQueen  <robot101@debian.org>
2505
2506         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2507         method to org.freedesktop.DBus to release a bus name or give up
2508         waiting in the queue for it.
2509
2510         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2511         dbus_bus_release_name method to send the ReleaseName method calls.
2512         Add constants for the return values to dbus/dbus-shared.h.
2513
2514         * doc/dbus-specification.xml: Document the new ReleaseName method
2515         in the specification.
2516
2517         * python/dbus_bindings.pyx: Add a low-level python binding for the
2518         release name method.
2519
2520         * python/exceptions.py, python/service.py: Make freeing BusName
2521         objects release the name. Add a NameExistsException, and fix a
2522         bug with creating UnknownMethodException.
2523
2524         * test/python/test-client.py: Add tests for freeing BusName
2525         objects causing names to be released.
2526
2527 2005-11-14  Robert McQueen  <robot101@debian.org>
2528
2529         * python/service.py: Include the traceback in the error reply when we
2530         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2531
2532 2005-11-14  David Zeuthen  <davidz@redhat.com>
2533
2534         Patch from Timo Hoenig <thoenig@suse.de>.
2535
2536         * bus/bus.c: I've recently investigated why the automatic reload
2537         of configuration files does not work as expected.
2538
2539         Currently, reloading configuration files does only work when
2540         running dbus-daemon with --nodaemon.  If we are running as daemon
2541         we're hitting a dnotify bug once we fork the process.
2542
2543         We're initializing the dnotify fds before calling fork().  Once
2544         the child process forked it does still have the fds (and they
2545         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2546         getting SIGIO as changes are made to the configuration files.
2547
2548         The attached patch moves the initialization of the dnotify fds to
2549         process_config_postinit().  This is safe for all current code
2550         paths and solves the dnotify disfunction.  If we're running
2551         dbus-daemon as daemon the fds for dnotify are now being
2552         initialized after fork() for the child process.
2553
2554         * configure.in: The current configure.in check for dnotify probes
2555         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2556         match for 'xlinux', too. Additionally I have adapted the configure
2557         option's style to match with the others.
2558
2559 2005-11-14  Robert McQueen  <robot101@debian.org>
2560
2561         * python/decorators.py, python/service.py: Add a new argument to the
2562         dbus.service.method decorator called sender_keyword, which if set,
2563         specifies the name of an argument which will be provided the bus
2564         name of the method caller.
2565
2566         * test/python/test-client.py, test/python/test-service.py: Add a
2567         method and test to check the sender_keyword functionality.
2568
2569 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2570
2571         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2572         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2573         Simons <sjoerd at luon.net>)
2574
2575         * AUTHORS: Add Robert McQueen for his work on the Python
2576         Bindings and other parts of D-Bus
2577
2578 2005-11-07  Robert McQueen  <robot101@debian.org>
2579
2580         * python/decorators.py: Change emit_signal function to use the
2581         signature annotation of the signal when marhsalling the arguments from
2582         the service. Fix a bug where the code checking signature length
2583         against argument length referenced the wrong variable.
2584
2585         * python/introspect_parser.py: Avoid adding the type signature of
2586         signal arguments to any methods which occur after them in the
2587         introspection data (!) by making the parser a little more careful
2588         about its current state.
2589
2590         * python/service.py: Remove debug prints from last commit (again :D).
2591
2592         * test/python/test-client.py, test/python/test-service.py: Add test
2593         signals with signature decorators to test the strict marshalling code
2594         gives errors at the right time. Could do with checking the signals
2595         actually get emitted too, given that the test does nothing with
2596         signals at the moment...
2597
2598 2005-11-07  Robert McQueen  <robot101@debian.org>
2599
2600         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2601         instances to stop madness of creating new instances representing
2602         the same bus connection all the time, rendering any tracking of
2603         match rules and bus names quite meaningless. Caught a bug where
2604         the private argument to SessionBus() and friends was being passed
2605         in as use_default_mainloop by mistake. Still some problems with
2606         multiple dbus_binding.Connection instances representing the same
2607         low-level connection (eg when you use both SessionBus() and
2608         StarterBus() in same process), but it's a lot better now than it
2609         was.
2610
2611         * python/dbus_bindings.pyx: Add constants with the return values
2612         for bus_request_name().
2613
2614         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2615         and retrieve the same instances for the same name, so deletion can be
2616         done with refcounting. Also now throws some kind of error if you
2617         don't actually get the name you requested, unlike previously...
2618
2619         * test/python/test-client.py: Add tests for instance caching of buses
2620         and bus name objects.
2621
2622 2005-11-04  Robert McQueen  <robot101@debian.org>
2623
2624         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2625         marshalling of boolean values. Add some booleans to the values in
2626         the test client.
2627
2628         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2629         argument to the dbus.service.method decorator, which allows you to
2630         name arguments to take two callback functions for replying with
2631         return values or an exception.
2632
2633         * test/python/test-client.py, test/python/test-service.py: Add test
2634         case using asynchronous method reply functions, both return values and
2635         errors, and from within both the function itself and from a mainloop
2636         callback.
2637
2638         * python/decorators.py, python/service.py: Perform checking that the
2639         number of method/signal arguments matches the number of types in the
2640         signature at class loading time, not when you first introspect the
2641         class.
2642
2643         * python/service.py: Remove debug print left by the last commit.
2644
2645 2005-11-03  Robert McQueen  <robot101@debian.org>
2646
2647         * python/service.py: Heavy refactoring of method invocation, with
2648         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2649         in favour of a new _message_cb that uses seperate functions for
2650         looking up the method to call, marshalling the return values, and
2651         sending exceptions as errors, and is easier to follow as a
2652         consequence.  Fixes some corner cases about returning things that
2653         don't match your declared out_signature, allows exceptions to define
2654         _dbus_error_name and have it be sent over the bus as the error name,
2655         and paves the way for cool stuff like heeding the message no reply
2656         flag, asynchronous method implementations, informing the method of the
2657         sender, and including backtraces in the error messages.
2658
2659         * test/python/test-client.py: Catch and print exceptions thrown in the
2660         async callback tests, rather than passing them to the low-level
2661         bindings to be ignored in a noisy and frustrating manner.
2662
2663 2005-11-03  Robert McQueen  <robot101@debian.org>
2664
2665         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2666         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2667         tweak others to be consistent.
2668
2669         * test/python/test-client.py: Tweak output of testInheritance.
2670
2671 2005-10-29  Robert McQueen  <robot101@debian.org>
2672
2673         * python/service.py: Major changes to allow multiple inheritance
2674         from classes that define D-Bus interfaces:
2675         
2676          1. Create a new Interface class which is the parent class of
2677             Object, and make the ObjectType metaclass into InterfaceType.
2678         
2679          2. Patch written with Rob Taylor to replace use of method_vtable
2680             with code that walks the class's __MRO__ (method resolution order)
2681             to behave like Python does when invoking methods and allow
2682             overriding as you'd expect. Code is quite tricky because
2683             we have to find two methods, the one to invoke which has the
2684             right name and isn't decorated with the /wrong/ interface,
2685             and the one to pick up the signatures from which is decorated
2686             with the right interface.
2687         
2688             The same caveats apply as to normal multiple inheritance -
2689             this has undefined behaviour if you try and inherit from two
2690             classes that define a method with the same name but are
2691             decorated with different interfaces. You should decorate
2692             your overriding method with the interface you want.
2693         
2694          3. Replace grungy introspection XML generation code in the metaclass
2695             with dictionaries that cope correctly with multiple inheritance
2696             and the overriding of methods. This also uses the signature
2697             decorations to provide correct introspection data, including
2698             the debut appearance of the types of your return values. :D
2699
2700         * test/python/test-client.py, test/python/test-service.py: Add a test
2701         case to try invoking an method that overrides one inherited from a
2702         D-Bus interface class.
2703
2704 2005-10-29  Robert McQueen  <robot101@debian.org>
2705
2706         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2707         Add checking for the end of struct character when marshalling a
2708         struct in MessageIter.append_strict.
2709
2710         * python/examples/example-service.py,
2711         python/examples/gconf-proxy-service.py,
2712         python/examples/gconf-proxy-service2.py: Update to use gobject
2713         mainloop directly rather than appearing to depend on gtk.
2714
2715         * python/test/test-client.py, python/test/test-server.py: Remove
2716         obsolete and broken test scripts for old bindings. We have up to date
2717         and working tests in test/python/.
2718
2719 2005-10-29  Robert McQueen  <robot101@debian.org>
2720
2721         * python/decorators.py: Add optional arguments to the method and
2722         signal decorators to allow you to specify the signature of arguments
2723         and return values. Preserve the doc strings of signal functions in the
2724         decorated version, for pydoc and friends.
2725
2726         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2727         parse_signature_block function with an iterable dbus.Signature()
2728         type. Fix a bug in MessageIter.append_strict where you could append
2729         anything by claiming it was a string.
2730
2731         * python/service.py: Use the out_signature decoration on methods to
2732         marshal return values, meaning you no longer require dbus.Array()
2733         or dbus.Dictionary() to indicate the type when returning empty
2734         arrays or dictionaries. Fix a bug where exceptions which are defined
2735         in __main__ are not turned into error replies.
2736
2737         * test/python/test-client.py, test/python/test-service.py: Add test
2738         for correct marshalling of return values according to out_signature.
2739         Fix a bug in the async call test where the error_handler is missing a
2740         self argument.
2741
2742 2005-10-29  Robert McQueen  <robot101@debian.org>
2743
2744         * glib/Makefile.am, glib/examples/Makefile.am,
2745         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2746         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2747
2748         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2749
2750         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2751         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2752         the command line.
2753
2754 2005-10-27  Ross Burton  <ross@openedhand.com>
2755
2756         * dbus/dbus-marshal-header.c:
2757         Remove dead code.
2758
2759         * glib/dbus-gobject.c:
2760         Stop compiler warning.
2761
2762 2005-10-25  Ross Burton  <ross@openedhand.com>
2763
2764         * dbus/dbus-auth.c:
2765         * dbus/dbus-server-unix.c:
2766         * dbus/dbus-transport-unix.c:
2767         * glib/dbus-gmain.c:
2768         * glib/dbus-gobject.c:
2769         Add some const keywords.
2770
2771 2005-10-25  Ross Burton  <ross@openedhand.com>
2772
2773         * doc/dbus-specification.xml:
2774         Document the NoReply annotation.
2775
2776         * glib/dbus-binding-tool-glib.h:
2777         * glib/dbus-binding-tool-glib.c:
2778         Respect the NoReply annotation.
2779
2780 2005-10-24  Robert McQueen <robot101@debian.org>
2781
2782         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2783         derive from unicode instead of str, and encode/decode UTF-8 when
2784         marshalling/unmarshalling bus messages
2785
2786         * python/introspect_parser.py: encode introspection data as UTF-8
2787         before passing the buffer into libxml2
2788
2789         * test/python/test-client.py: add unicode test strings
2790
2791         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2792         ignore generated python test files
2793
2794 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2795
2796         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2797         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2798         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2799
2800         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2801         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2802         when constructing struct signatures
2803
2804         * python/_dbus.py (Bus): handle private connections using the
2805         private keyword in the constructor. defaults to private=False
2806         (Bus::close): new method to close a connection to the bus
2807
2808         * python/dbus_bindings.pyx (Connection::close): renamed method
2809         was previously called disconnect
2810         (bus_get): now supports getting a private connection
2811
2812         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2813         keyword is set to True.  if it is, execute the method without waiting
2814         for a reply
2815         (ProxyObject::_introspect_execute_queue): new method for executing
2816         all the pending methods that were waiting for the introspect to
2817         finish.  this is called when introspect either succeeds or fails
2818         (ProxyObject::_introspect_error_handler): call queued methods
2819
2820 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2821
2822         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2823         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2824
2825         * python/service.py (Object::_message_cb): handle exceptions correctly
2826         by sending them over the wire to the calling app.  This makes sure
2827         the client returns immediately instead of waiting the 15 seconds to
2828         timeout.
2829
2830         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2831         Add a test to benchmark how long it takes to introspect a service and 
2832         call a method which returns a large element (pretty fast)
2833
2834         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2835         method which pushes a lot of data
2836
2837 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2838
2839         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2840         reclaim memory outside of the loop and use del istead of just setting
2841         the key to None
2842
2843 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2844
2845         * python/service.py (ObjectType::_reflect_on_signal): Always close
2846         signal tag even when there are no arguments
2847
2848 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2849
2850         * configure.in: Set mono, mono-docs and Qt3 to default
2851         to no instead of auto when building.  These bindings do not
2852         have full time maintainers and will not be supported for the
2853         1.0 release.
2854
2855 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2856
2857         patches from Michael Krivoruchko <misha at sun.com>: 
2858         
2859         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2860         _dbus_connection_message_sent, 
2861         _dbus_connection_send_preallocated_unlocked_no_update, 
2862         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2863         is NULL when calling _dbus_verbose
2864
2865         * configure.in: check for functions getpeerucred and getpeereid
2866
2867         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2868         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2869         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2870         Patch was only tested on Solaris 10 x86 so it might be issues
2871         with other platforms (i.e. BSDs and MacOSX)
2872         
2873
2874 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2875
2876         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2877         instead of marshal basic so we can handle recursive types in a variant
2878
2879         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2880         in variants
2881
2882         * test/glib/test-service-glib.c, test-service-glib.xml
2883         (my_object_echo_variant [EchoVariant], 
2884         my_object_process_variant_of_array_of_ints123
2885         [ProcessVariantOfArrayOfInts123]): 
2886         Add two test methods
2887
2888         * python/introspect_parser.py: New module for parsing introspect
2889         data.
2890
2891         * python/dbus_bindings.pyx:
2892         (various places): when throwing errors fix to use errormsg instead 
2893         of message local variable because Pyrex can get confused with other 
2894         message variables (initial patch by Robert McQueen 
2895         <robert.mcqueen at collabora.co.uk>)
2896         (MessageIter::parse_signature_block): new method for getting the next
2897         block in a signiture.
2898         (MessageIter::append_strict): new method for appending values strictly
2899         using the passed in signature instead of guessing at the type
2900         (MessageItter:: append_dict, append_struct, append_array): use 
2901         signatures to marshal children if the signature is available
2902         
2903         * python/exceptions.py (IntrospectionParserException): new exception
2904
2905         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2906         introspected signatures if available, else we fall back to the
2907         old way of doing things.
2908         (ProxyObject::_introspect_reply_handler ): parse introspection data
2909         
2910         * python/service.py (ObjectType::_reflect_on_method): Properly
2911         terminate <method> if there are no args in the reflection data
2912
2913         * test/python/test-client.py: add tests for talking with the GLib
2914         test server.  This gives us better coverage for introspection since
2915         python to python will always generate arguments as variants.  It also
2916         allows us to test the robustness of the GLib bindings and interlanguage
2917         communications.
2918
2919         
2920 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2921
2922         * bus/driver.c (bus_driver_handle_introspect): Add signals
2923         to the introspect data. (patch from Daniel P. Berrange 
2924         <dan at berrange.com>)
2925
2926         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2927         
2928         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2929         _dbus_connection_run_builtin_filters): Changed these to
2930         be unlock_no_update functions and call 
2931         _dbus_connection_send_unlocked_no_update instead of
2932         dbus_connection_send to avoid locking errors.
2933         
2934         * doc/TODO: Removed the make Ping test TODO
2935         
2936 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2937
2938         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2939         We now copy the message from a DBusError and then free 
2940         the error object befor throwing the error
2941
2942         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2943         DBusBindingOutputMode enum which was causing a warning.
2944         #include <time.h> so using time_t is explicitly defined
2945
2946 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2947
2948         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2949         - dbus/dbus-bus.c
2950         (internal_bus_get): new method that take over the heavy lifting
2951         of dbus_bus_get and adds the ability to get a private connection
2952         to the bus
2953         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2954         interface as in previous versions
2955         (dbus_bus_get_private): new method that is a wrapper to 
2956         internal_bus_get to get a private connection to the bus
2957
2958         - dbus/dbus-bus.h
2959         (dbus_bus_get_private): add as a public libdbus interface
2960
2961         - dbus-1.pc.in: output system_bus_default_address and 
2962         sysconfdir variables so apps can use them when compiling
2963
2964 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2965         * dbus/qt: New Qt bindings
2966
2967 2005-09-12  Waldo Bastian  <bastian@kde.org>
2968
2969         * dbus/dbus-marshal-validate.c,
2970         doc/dbus-specification.xml, test/Makefile.am,
2971         test/test-names.c: allow hyphens in bus names.
2972
2973 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2974
2975         * test/data/auth/fallback.auth-script: we don't
2976         retry the EXTERNAL method when we know its going
2977         to fail anymore.
2978
2979 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2980
2981         * dbus/dbus-connection-internal.h: rename
2982         (add|remove|toggle)_(watch|timeout) to unlocked()
2983         
2984         * dbus/dbus-connection.c: ditto.
2985         
2986         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2987         Update some callers for the renaming.
2988
2989 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2990
2991         * dbus/dbus-auth.c: (record_mechanisms): don't
2992         retry the first auth mechanism because we know
2993         we're just going to get rejected again.
2994         
2995         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2996         Fix thinko ... and what a nasty little bugger to
2997         track down you were ...
2998
2999         * dbus/dbus-connection.c:
3000         (_dbus_connection_add_watch),
3001         (_dbus_connection_remove_watch): add note about
3002         these needing the connection to be locked.
3003         (_dbus_connection_get_dispatch_status_unlocked):
3004         set status to DATA_REMAINS when we queue the
3005         disconnected message.
3006         
3007         * bus/dispatch.c:
3008         (bus_dispatch): fix warning.
3009         (check_existent_service_no_auto_start):
3010         Expect ChildSignaled error too.
3011         (check_existent_hello_from_self): fix another
3012         couple of warnings.
3013         
3014 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3015
3016         Patches from James Willcox <snorp@snorp.net>
3017
3018         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3019
3020         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3021         support array "out" parameters.
3022
3023         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3024         for 16-bit int support.
3025
3026 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3027
3028         * Released 0.50
3029
3030         * Patch from Steve Grubb:
3031         - bus/activation.c (bus_activation_service_reload_test): clean up
3032         some indentation
3033         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3034         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3035         buffer overflows in the test suite.  This is non critical because
3036         it can not be exploited and this code is only run when doing a 
3037         make check.
3038
3039         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3040         - configure.in: Don't check and link against kdecore, only qt headers
3041         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3042         - gcj/org/freedesktop/dbus/Makefile.am:
3043         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3044         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3045         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3046         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3047         - tools/Makefile.am: Add platform extentions to binaries 
3048         (i.e. .exe on windows)
3049
3050         * configure.in: 
3051         - Make it so if no suitable version of python is found we only 
3052         disable building python instead of exiting the configure script
3053         - Require version 2.4 of glib for glib bindings
3054         - Up version to 0.50
3055
3056         * python/__init__.py: Sync version with libdbus to (0,50,0)
3057         
3058 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3059
3060         * dbus/dbus-object-tree.c (find_subtree_recurse):
3061         a couple of optimizations (bug #710):
3062         - do a binary search in the tree
3063         - insert a new child at the right place directly, no need for
3064           qsort anymore
3065         - do the "double alloc" thing when allocating children
3066
3067 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3068
3069         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3070
3071         * python/dbus_bindings.pyx: Memory management foo
3072         (global): remove hacky _user_data_references global list
3073         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3074         tuples. Unref user_data
3075         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3076         (Connection::__del__): Remove and replace with __dealloc__ method
3077         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3078         to keep tuple from being deallocated instead of the global var hack
3079         (Connection::register_object_path): Stuff user_data into a tuple.
3080         Use Py_INCREF to keep tuple from being deallocated instead of the 
3081         global var hack
3082         (Connection::register_fallback): Stuff user_data into a tuple.
3083         Use Py_INCREF to keep tuple from being deallocated instead of the 
3084         global var hack
3085         (GIL_safe_pending_call_notification): Don't unref the message
3086         because it gets unreffed when going out of scope.  Py_XDECREF
3087         the user_data
3088         (PendingCall::__del__): Remove and replace with __dealloc__ method
3089         (PendingCall::set_notify): ref the pending call because we will
3090         need it to stick around for when the notify callback gets called
3091         (Message::__del__): Remove and replace with __dealloc__ method
3092
3093         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3094         gthreads_init to match up with the dbus call
3095
3096         * python/glib.py (init_threads): Changed to threads_init to match
3097         up with gobject.threads_init().  init_threads is kept for backwards
3098         compat but will most likely be deprecated in the future
3099
3100         * test/python/test-client.py: 
3101         - revamp to use Python's unittest functionality
3102         - add async call tests
3103         - setup threads in glib and dbus so we make sure locks are working
3104         
3105 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3106
3107         * python/dbus_bindings.pyx 
3108         (_pending_call_notification, cunregister_function_handler, 
3109         cmessage_function_handler): All callback functions have been rearranged 
3110         to workaround a bug in Pyrex when working with the GIL which is Python's 
3111         global lock when dealing with threads.  They have been split into
3112         a wrapper function (which assumes the name of the old function) and
3113         a _GIL_safe_<function name> function which contains the functionality
3114         of the old function.  This ensures that Pyrex does not write code
3115         the lock is released.
3116         
3117
3118 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3119
3120         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3121         GIL global lock when calling back into Python
3122
3123 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3124
3125         * Release 0.36.2
3126
3127         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3128
3129         * bus/policy.c (bus_policy_allow_user): change default "user is
3130         allowed" to be "user has same uid as the bus itself"; any
3131         allow/deny rules will override.
3132
3133         * bus/session.conf.in: don't allow all users, since now by default
3134         the user that ran the bus can connect.
3135
3136 2005-08-26  Colin Walters  <walters@verbum.org>
3137
3138         * tools/dbus-print-message.c (print_message): Flush stdout
3139         after printing a message, so that redirecting to a file, then
3140         hitting Ctrl-C works.
3141
3142 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3143
3144         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3145         (EmptyMessage): new class that subclasses Message.  This is a workaround
3146         to a Pyrex bug that fails to call __del__ when the Message object goes out
3147         of scope.  For some reason subclassing Message fixes this bug
3148         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3149         - s/Message(_create=0)/EmptyMessage everywhere else
3150         
3151         * test/python/test-{server|client}.py: add the python/.libs directory
3152         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3153         get picked up from the system
3154
3155 2005-08-25  Colin Walters  <walters@verbum.org>
3156
3157         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3158         to Ryan Lortie for the suggestion.
3159
3160 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3161
3162         * test/python: Add python regression test
3163
3164         * configure.in: Add test/python/Makefile
3165
3166         * test/Makefile.am: Add the python directory to SUBDIRS
3167
3168 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * Release 0.36.1
3171
3172         * python/_dbus.py: 
3173         (Interface::connect_to_signal): propigate keywords for match on args
3174         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3175
3176         * python/proxies.py (ProxyObject::connect_to_signal):
3177         propigate keywords for match on args
3178
3179         * Makefile.am: point everything to pyexecdir since python borks
3180         on multilib
3181
3182 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3183
3184         * Release 0.36
3185
3186 2005-08-23  Colin Walters  <walters@verbum.org>
3187
3188         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3189
3190 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3191
3192         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3193         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3194         of defining DBusConnection ourselves.
3195
3196 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3197
3198         * python/dbus.pth: New path file to fix up problems when installing
3199         c libraries to lib64 and python files to lib.
3200
3201         * python/Makefile.am: install dbus.pth in the correct spot
3202
3203 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3204         * ChangeLog: clean up my last entry a bit
3205
3206         * doc/introspect.xsl: New stylesheet for converting introspection data
3207         into browser renderable xhtml. Contributed by Lennart Poettering.
3208
3209         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3210         Poettering.
3211
3212         * doc/dbus-tutorial.xml: 
3213         - Add Colin Walter to the Authors section for authoring the GLib
3214         section
3215         - Add descriptions of the new signature and type functionality
3216         in the Python complex type mapping section
3217         - Add a sidenote on the new args matching functionality in 
3218         the Python bindings
3219         - Fixed up some of the examples to use the gobject.MainLoop
3220         instead of gtk.main
3221         
3222         * python/_dbus.py:
3223         (Bus::_create_args_dict): New. Converts a hash of arg matches
3224         to a more useable format
3225         (Bus::add_signal_receiver): add a **keywords parameter for catching
3226         arg match parameters
3227         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3228         arg match parameters
3229         
3230         * python/matchrules.py:
3231         (MatchTree::exec_matches): Check for arg matches
3232         (SignalMatchRule::add_args_match): New method
3233         (SignalMatchRule::execute): Added args_list parameter as an optimization
3234         so we don't have to marshal the args more than once
3235         (SignalMatchRule::match_args_from_list): New method that checks to see
3236         if the rule's arg matches match an argument list.  Only arguments
3237         set in the rule are checked.
3238         (SignalMatchRule::match_args_from_rule): New method that checks to see
3239         if the rule's arg matches match another rule's.  All args have to match
3240         in order for this method to return true.  If either rule has more args
3241         then it is not a match.
3242         (SignalMatchRule::is_match): Add args match
3243         (SignalMatchRule::repr): Add args to the final output if they exist
3244
3245 2005-08-17  Ross Burton  <ross@burtonini.com>
3246
3247         * glib/dbus-gproxy.c:
3248         (dbus_g_proxy_call_no_reply): unref the message once sent.
3249         (dbus_g_proxy_call): protect against NULL proxy.
3250
3251 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3252
3253         * python/__init__.py: Version updated (0, 43, 0)
3254         
3255         * python/dbus_bindings.pyx: 
3256         - Fixed type objects to have self passed into __init__
3257         - Added the Variant type
3258         - Add the ability to specify types or signatures for Array, Variant 
3259         and Dictionary
3260         (Connection::send_with_reply_handlers): return a PendingCall object
3261         (_pending_call_notification): handle the case when an error is returned 
3262         without an error message in the body
3263         (MessageIter::get_boolean): return True or False instead of an integer
3264         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3265         and add checks for objects with embeded signatures or types (Array, 
3266         Variant and Dictionary)
3267         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3268         (MessageIter::append_dict): handle embeded types or signatures
3269         (MessageIter::append_array): handle embeded types or signatures
3270         (MessageIter::append_variant): new method
3271         
3272         * python/proxies.py:
3273         (DeferedMethod): New. Dummy executable object used when queuing calls 
3274         blocking on introspection data
3275         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3276         or shorter timeouts for method calls
3277         (ProxyObject): Add first pass at an introspection state machine
3278         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3279         introspection. 
3280         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3281         the usual mechanisms for sending messages.  This is to avoid a deadlock
3282         where the Intospect call would be queued waiting for the Introspect 
3283         call to finish ;-)
3284         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3285         when introspection returns with no error
3286         (ProxyObject::_introspect_error_handler): New.  This method is called 
3287         when introspection encounters an error
3288         (ProxyObject::__getattr__): Code to handle different introspection 
3289         states.  Queue async calls or block blocking calls if we are 
3290         introspecting.  Pass through as normal if we are not or are done with 
3291         introspecting.
3292         
3293         * python/service.py: Import signal and method from decorators.py
3294
3295         * python/types.py: Add Variant type
3296
3297 2005-08-16  Colin Walters  <walters@verbum.org>
3298
3299         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3300         DBusError message is NULL.
3301
3302 2005-08-09  Havoc Pennington  <hp@redhat.com>
3303
3304         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3305         malloc'd copy of the name parameter
3306
3307 2005-08-09  Havoc Pennington  <hp@redhat.com>
3308
3309         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3310         warning if the reply serial is set to 0
3311
3312 2005-08-04  Colin Walters  <walters@verbum.org>
3313
3314         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3315         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3316         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3317         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3318         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3319         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3320         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3321         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3322         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3323         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3324         
3325         Prefix name with _ to ensure they're not exported.  All callers
3326         updated.
3327
3328         * glib/dbus-gvalue.c (typecode_to_gtype)
3329         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3330         (signature_iter_to_g_type_dict)
3331         (signature_iter_to_g_type_array)
3332         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3333         (dbus_gtypes_from_arg_signature):
3334         Move to dbus-gsignature.c.
3335
3336         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3337         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3338         (dbus_binding_tool_output_glib_client): Ditto.
3339
3340         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3341         and dbus-gsignature.h
3342
3343         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3344         unused variable.
3345
3346 2005-08-03  Colin Walters  <walters@verbum.org>
3347
3348         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3349         catch any incompatible changes accidentally made.
3350
3351 2005-08-03  Havoc Pennington  <hp@redhat.com>
3352
3353         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3354         typo, from Julien Puydt
3355
3356         * bus/connection.c (bus_connection_disconnected): we were always
3357         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3358
3359 2005-08-01  Colin Walters  <walters@verbum.org>
3360
3361         Patch from Joe Markus Clarke:   
3362         
3363         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3364         use-after-free.
3365
3366 2005-08-01  Colin Walters  <walters@verbum.org>
3367         
3368         Patch from Joe Markus Clarke:   
3369         
3370         * tools/dbus-send.c (main): 
3371         
3372         Don't use C99 style initializers (bug #3933).
3373         
3374 2005-08-01  Colin Walters  <walters@verbum.org>
3375
3376         Patch from Joe Markus Clarke:   
3377
3378         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3379         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3380         * glib/dbus-gobject.c (write_interface):
3381
3382         Don't use C99 style initializers (bug #3933).
3383
3384 2005-07-31  Havoc Pennington  <hp@redhat.com>
3385
3386         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3387         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3388
3389 2005-07-30  Havoc Pennington  <hp@redhat.com>
3390
3391         * fix a bunch of Doxygen warnings and mistakes
3392
3393 2005-07-30  Havoc Pennington  <hp@redhat.com>
3394
3395         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3396         DBUS_BUILD_TESTS since it's now used in production code
3397
3398 2005-07-29  Havoc Pennington  <hp@redhat.com>
3399
3400         * test/glib/test-profile.c (write_junk): initialize the junk
3401         buffer so valgrind doesn't have a breakdown
3402
3403 2005-07-29  Havoc Pennington  <hp@redhat.com>
3404
3405         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3406         (match_rule_matches): remove unused arg
3407         (test_matching): add tests for match_rule_matches()
3408
3409         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3410         do arg0='foo' arg5='bar' in the match rules
3411         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3412
3413         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3414
3415 2005-07-29  Ross Burton  <ross@openedhand.com>
3416
3417         * dbus/dbus-connection.c:
3418         Don't create a DBusCondVar which is never used.
3419
3420 2005-07-27  Ross Burton  <ross@openedhand.com>
3421
3422         * dbus/dbus-message.c:
3423         Reduce the size of the maximum cached message to 10K.
3424
3425 2005-07-25  Ross Burton  <ross@openedhand.com>
3426
3427         * glib/dbus-gproxy.c:
3428         Remove matches when all proxies are unregistered.
3429
3430 2005-07-24  Colin Walters  <walters@verbum.org>
3431
3432         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3433         typedata; recursive arrays won't have it.
3434
3435         * test/glib/test-dbus-glib.c:
3436         * test/glib/test-service-glib.c:
3437         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3438         
3439 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3440
3441         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3442         proxies.py, service.py: Cleanup of code after running it through the
3443         pyflakes code checker mostly dealing with undefined names.  
3444         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3445
3446 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3447
3448         * NEWS: Update to 0.35.2
3449
3450 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3451
3452         * python/_dbus.py: Remove import of the dbus.services
3453         module as it no longer exists (patch from Dimitur Kirov)
3454
3455         * python/service.py (Object::__init__): Fixed typo
3456         s/name/bus_name (patch from Dimitur Kirov)
3457
3458         * python/examples/example-signal-emitter.py: import dbus.glib
3459         to get the main loop and use glib mainloop instead of gtk so
3460         X doesn't have to be running.
3461
3462         * python/examples/example-signal-recipient.py: import dbus.glib
3463         to get the main loop and use glib mainloop instead of gtk so
3464         X doesn't have to be running. Import the decorators module
3465         directly.
3466
3467         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3468         didn't pick up on but are needed to build
3469
3470         * configure.in: upped version to 0.35.2
3471
3472         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3473         added Colin Walters' SELinux API rename patch from head 
3474         s/unix sercurity context/selinux security context/
3475
3476 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3477
3478         * python/Makefile.am: dbus_binding.pxd.in should be included 
3479         in EXTRA_DIST not dbus_binding.pxd
3480         fix up $(srcdir) hopefully for the last time
3481
3482         * NEWS: Update to 0.35.1
3483
3484 2005-07-16  Colin Walters  <walters@verbum.org>
3485
3486         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3487         from bus_driver_handle_get_connection_unix_security_context.  Update for
3488         error usage.
3489         (message_handlers): Update for renames.
3490
3491         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3492         _dbus_string_init failure correctly.
3493         (bus_selinux_append_context): Convert SID to context.  Append it
3494         as a byte array.
3495         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3496         hasn't been called.
3497
3498         * bus/selinux.h: Update prototype.
3499
3500         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3501         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3502
3503 2005-07-15  Colin Walters  <walters@verbum.org>
3504
3505         * doc/TODO: Add note about convenience wrappers.
3506
3507 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3508
3509         * NEWS: Update to 0.35
3510
3511 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3512
3513         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3514         so distcheck doesn't fail
3515
3516         * glib/examples/Makefile.am: Add example-service.xml and 
3517         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3518
3519         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3520         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3521
3522         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3523         compiler looks in the right places during distcheck
3524
3525 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3526
3527         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3528         to fail
3529
3530 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3531
3532         * python/examples/example-service.py,
3533         python/examples/example-signal-emitter.py: Fixed up examples
3534         for API changes
3535
3536 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3537
3538         * python/__init__.py: Upped to version (0,42,0) because of
3539         the API change
3540
3541 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3542
3543         * ChangeLog: fix date in last entry
3544
3545         * configure.in, bus/system.conf.in: add the ability to configure 
3546         the system bus user at compiletime with the --with-dbus-user flag
3547         (patch from Kristof Vansant)
3548
3549 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3550
3551         * bus/dispatch.c, test/test-service.c: Add testcase
3552         for sending messages to oneself (TODO item).
3553
3554         * python/service.py (class Object): Swap ordering of bus_name 
3555         and object_path parameters to better support inheritance.
3556
3557         * doc/dbus-tutorial.xml: change Python docs to reflect change
3558         in parameter ordering and fix the inheritance section.
3559
3560         * doc/TODO: remove sending message to oneself TODO item
3561
3562 2005-07-15  Ross Burton  <ross@openedhand.com>
3563
3564         * glib/dbus-gproxy.c:
3565         Fix a leak when calling methods via the proxy.
3566
3567 2005-07-15  Colin Walters  <walters@verbum.org>
3568
3569         * bus/selinux.c (bus_selinux_append_context): Wrap in
3570         HAVE_SELINUX.
3571
3572 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3573
3574         * python/_dbus.py (Bus::remove_signal_receiver):
3575         don't add a callback to the match if none has been passed in
3576         
3577         * python/matchrules.py (SignalMatchTree::remove): if the rule
3578         being matched does not have a callback treat it as a wildcard
3579         fix matching logic
3580
3581         * doc/dbus-tutorial.xml: Add Python tutorial
3582
3583 2005-07-14  Colin Walters  <walters@verbum.org>
3584
3585         * bus/driver.c
3586         (bus_driver_handle_get_connection_unix_security_context): New function.
3587         (message_handlers): Add.
3588
3589         * bus/selinux.c (bus_selinux_append_context): New function; appends
3590         security context to message.
3591
3592         * bus/selinux.h: Prototype.
3593
3594         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3595
3596 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3597
3598         * bus/activation.c: clean up all tabs to be 8 spaces 
3599         (bus_activation_activate_service): make sure we clean up
3600         if activation fails
3601
3602         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3603         (check_shell_fail_service_auto_start): New function
3604         tests to make sure we get fail properly when trying to auto start a service
3605         with a faulty command line
3606         (check_shell_service_success_auto_start): New function tests to make sure
3607         auto started services get the arguments on the command line
3608
3609         * test/test-shell-service.c: Added service for testing auto-starting with 
3610         command line arguments
3611
3612         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3613         test/data/valid-service-files/debug-shell-echo-success.service.in:
3614         Added service files for testing auto-starting with command line arguments
3615
3616         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3617
3618 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3619
3620         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3621         
3622         * dbus/Makefile.am: added new files to build.
3623
3624         * bus/activation.c (bus_activation_activate_service): support
3625         activation commands with parameters.
3626
3627         * test/shell-test.c: added test program for the shell parsing
3628         code.
3629
3630 2005-07-13  David Zeuthen  <davidz@redhat.com>
3631
3632         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3633         64 bit signed and unsigned parameters
3634
3635 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3636
3637         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3638
3639         * python/service.py (class Name): renamed BusName to make it clearer
3640         what the object is for (a name on the bus)
3641
3642         * python/examples/example-service.py,
3643         python/examples/example-signal-emitter.py: change the Name object to
3644         BusName
3645
3646 2005-07-12  Colin Walters  <walters@verbum.org>
3647
3648         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3649
3650         * tools/dbus-launch.c: Include sys/select.h.
3651
3652 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3653         * python/dbus_bindings.pyx.in: removed
3654
3655         * python/dbus_bindings.pyx: Added.
3656         - Fixed some memleaks (patch from 
3657         Sean Meiners <sean.meiners@linspireinc.com>)
3658         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3659         own pxd file (Pyrex definition)
3660         - Broke out glib dependancies into its own pyx module
3661         
3662         * python/dbus_bindings.pdx: Added.
3663         - Defines C class Connection for exporting to other modules
3664
3665         * python/dbus_glib_bindings.pyx: Added.
3666         - New module to handle lowlevel dbus-glib mainloop integration
3667
3668         * python/glib.py: Added.
3669         - Registers the glib mainloop when you import this module
3670
3671         * python/services.py: Removed (renamed to service.py)
3672         
3673         * python/service.py: Added.
3674         - (class Server): renamed Name
3675
3676         * python/__init__.py: Bump ro version (0,41,0)
3677         -don't import the decorators or service module
3678         by default.  These now reside in the dbus.service namespace
3679
3680         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3681         setup function on creation 
3682
3683         * python/examples/example-service.py,
3684         python/examples/example-signal-emitter.py: update examples
3685
3686         * python/examples/gconf-proxy-service.py,
3687         python/examples/gconf-proxy-service2.py: TODO fix these up
3688
3689         * doc/TODO: Addition
3690         - Added a Python Bindings 1.0 section
3691         - added "Add match on args or match on details to match rules"
3692
3693
3694 2005-07-12  Colin Walters  <walters@verbum.org>
3695
3696         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3697         (statemachine-glue.h): 
3698         * glib/examples/Makefile.am (example-service-glue.h) 
3699         (example-signal-emitter-glue.h): 
3700         * glib/Makefile.am (dbus-glib-error-switch.h): 
3701         Add libtool --mode=execute so we use the built library instead
3702         of any installed one.
3703
3704 2005-07-11  Colin Walters  <walters@verbum.org>
3705
3706         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3707         (dbus_g_value_types_init): Remove assertion.
3708         (dbus_g_value_get_g_type, dbus_g_value_open)
3709         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3710         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3711         functions related to DBusGValue.  Now we marshal/demarshal
3712         structures as GValueArray.
3713         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3714         structures.
3715         (signature_iter_to_g_type_array): Don't call
3716         signature_iter_to_g_type_struct.
3717         (signature_iter_to_g_type_struct): Delete.
3718         (dbus_gvalue_to_signature): Delete.
3719         (dbus_gvalue_to_signature): New function with same name as other
3720         one; we can convert structures to signatures.
3721         (demarshal_valuearray): New function.
3722         (get_type_demarshaller): Use it.
3723         (demarshal_recurse): Delete.
3724         (marshal_proxy): New function.
3725         (marshal_map): Warn if we can't determine signature from type.
3726         (marshal_collection_ptrarray): Ditto.
3727         (marshal_collection_array): Ditto.
3728         (get_type_marshaller): Use marshal_valuearray.
3729         (marshal_recurse): Delete.
3730         (_dbus_gvalue_test): Add some tests.
3731
3732         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3733         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3734         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3735         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3736         (dbus_g_value_free): Remove prototypes.
3737
3738         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3739         G_TYPE_VALUE_ARRAY.
3740
3741         * glib/examples/example-service.c:
3742         * glib/examples/example-client.c: Implement GetTuple.
3743
3744         * test/glib/test-dbus-glib.c:
3745         * test/glib/test-service-glib.c:
3746         * test/glib/test-service-glib.xml: Add structure tests.
3747
3748 2005-07-10  Colin Walters  <walters@verbum.org>
3749
3750         * doc/TODO: Knock off some GLib items with this patch.
3751
3752         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3753         (_dbus_gvalue_signals_error): New functions.
3754
3755         * glib/dbus-gvalue-utils.h: Prototype them.
3756
3757         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3758         and change to not output const/retval flags for input args.  All
3759         callers updated.
3760         (invoke_object_method): Refactor to handle return values.  Add
3761         some more comments in various places.  Remove debug g_print.
3762
3763         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3764
3765         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3766         Handle G_TYPE_NONE.
3767         (compute_gsignature): New function; refactored from code from
3768         compute_marshaller and compute_marshaller_name.  Enhance to
3769         handle return values and async ops more cleanly.  Update for
3770         async ops returning NONE instead of BOOLEAN.
3771         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3772         and output appropriate string.
3773         (generate_glue): Handle return value annotation.  Also don't dump
3774         constness flag for input arguments.
3775
3776         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3777         files shared between installed library and utilities.
3778         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3779         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3780         binding tool can access gtype utility functions.
3781
3782         * test/glib/test-service-glib.c: 
3783         * test/glib/test-service-glib.xml: 
3784         * test/glib/test-dbus-glib.c: Add some tests for return values.
3785
3786 2005-07-09  Colin Walters  <walters@verbum.org>
3787
3788         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3789         argument if available, not method.
3790
3791         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3792         (invoke_object_method): First, remove some redundant
3793         GValues (object_value, error_value) in favor of working on
3794         array directly.  Second, rework constness to be less buggy.
3795         Now we iterate directly over the argument metadata instead
3796         of parallel iterating over output signature and metadata.
3797
3798         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3799
3800         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3801         annotation on input args.
3802         
3803 2005-07-09  Colin Walters  <walters@verbum.org>
3804
3805         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3806         Define.
3807
3808         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3809         annotation.
3810
3811         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3812         (method_dir_signature_from_object_info): Handle arg_iterate change.
3813         (write_interface): Ditto.
3814         (lookup_object_info): Don't barf if format_version is > 0.
3815         (invoke_object_method): Handle arg constness.
3816
3817         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3818         (arg_info_new): Create.
3819         (arg_info_unref): Destroy.
3820         (arg_info_get_annotations, arg_info_get_annotation) 
3821         (arg_info_add_annotation): New functions.
3822
3823         * glib/dbus-gidl.h: Prototype them.
3824
3825         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3826         args, disallow them in properties.
3827         (parse_annotation): Handle arg annotations.
3828
3829         * test/glib/test-service-glib.xml: 
3830         * test/glib/test-service-glib.c: Update to make some methods
3831         const.
3832
3833 2005-07-08  Colin Walters  <walters@verbum.org>
3834
3835         * test/glib/test-service-glib.xml: 
3836         * test/glib/test-service-glib.c:
3837         * test/glib/test-dbus-glib.c: Test a{sv}.
3838
3839         * glib/examples/statemachine/statemachine.c:
3840         * glib/examples/statemachine/statemachine-server.c:
3841         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3842         add progress bar, etc.
3843
3844         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3845         needed anymore due to generic array/map marshalling.
3846         (dbus_g_value_types_init): Don't register basic arrays or the
3847         string/string hash.
3848         (dbus_gtype_from_signature_iter): Don't try to recurse into
3849         variants.
3850         (dbus_gtype_to_signature): Check collection/map before type
3851         metadata.
3852         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3853         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3854         generic map creation/append functions instead of hash table
3855         specifically.
3856         (get_type_demarshaller): Handle maps.
3857         (demarshal_collection): Dispatch on collection type to either
3858         demarshal_collection_ptrarray or demarshal_collection_array.
3859         (get_type_marshaller): Handle maps.
3860         (marshal_collection): Dispatch collection type to either
3861         marshal_collection_ptrarray or marshal_collection_array.
3862         (_dbus_gvalue_test): New test.
3863
3864         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3865         (hash_free_from_gtype): Use it to free GValues.
3866         (hashtable_append): New function.
3867         (ptrarray_append): Fix prototype.
3868         (slist_append): Ditto.
3869         (_dbus_gvalue_utils_test): Extend tests.
3870
3871         * glib/dbus-gtype-specialized.c
3872         (dbus_g_type_specialized_init_append): Renamed from
3873         dbus_g_type_specialized_collection_init_append.  Remove const from
3874         value, since we steal it.
3875         (dbus_g_type_specialized_map_append): New function.
3876
3877         * glib/dbus-gtype-specialized.h: Update prototypes.
3878         Add DBusGTypeSpecializedMapAppendFunc.
3879
3880         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3881         _dbus_gvalue_test.
3882         
3883         * glib/dbus-gtest.h: Prototype it.
3884
3885 2005-07-08  Ross Burton  <ross@openedhand.com>
3886
3887         * dbus/dbus-glib.h:
3888         Add DBysGAsyncData for the async bindings.
3889
3890         * glib/dbus-binding-tool-glib.c:
3891         Re-enable the async bindings.
3892
3893         * test/glib/test-dbus-glib.c:
3894         Add a test for the generated async bindings.
3895
3896 2005-07-08  Colin Walters  <walters@verbum.org>
3897
3898         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3899         connection concept.
3900         
3901 2005-07-08  Colin Walters  <walters@verbum.org>
3902         
3903         * tools/Makefile.am: Kill of print-introspect in favor of using
3904         dbus-send --print-reply=literal.
3905
3906         * test/glib/test-service-glib.xml: 
3907         * test/glib/test-service-glib.c (my_object_get_objs): New test
3908         for "ao".
3909
3910         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3911         (main): Test GetObjs.
3912
3913         * glib/examples/statemachine/Makefile.am:
3914         * glib/examples/statemachine/sm-marshal.list:
3915         * glib/examples/statemachine/statemachine-client.c:
3916         * glib/examples/statemachine/statemachine-server.c:
3917         * glib/examples/statemachine/statemachine-server.xml:
3918         * glib/examples/statemachine/statemachine.c:
3919         * glib/examples/statemachine/statemachine.h:
3920         * glib/examples/statemachine/statemachine.xml:
3921
3922         New example.
3923
3924         * glib/examples/example-service.c (main): Move invocation
3925         of dbus_g_object_type_install_info earlier, to emphasize it
3926         should only be done once.
3927
3928         * glib/examples/example-signal-emitter.c (main): Ditto.
3929
3930         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3931
3932         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3933         (dbus_gvalue_marshal): Update prototypes.
3934
3935         * glib/dbus-gvalue.c: Update all marshalling functions to take
3936         const GValue instead of GValue.
3937         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3938         types.
3939         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3940         change.
3941         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3942         Return a newly-allocated string.
3943         (demarshal_proxy, demarshal_object_path, demarshal_object)
3944         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3945         we get the wrong types from message.
3946         (get_type_demarshaller): New function, extracted from
3947         dbus_gvalue_demarshal.
3948         (demarshal_collection): New function, demarshals generic
3949         collection.
3950         (dbus_gvalue_demarshal): Just invoke result of
3951         get_type_demarshaller.  Throw error if we don't have one.
3952         (marshal_garray_basic): Abort on OOM.
3953         (get_type_marshaller): New function, extracted from
3954         dbus_gvalue_marshal.
3955         (collection_marshal_iterator, marshal_collection): New functions;
3956         implements generic marshalling for an iteratable specialized
3957         collection.
3958         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3959
3960         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3961         G_TYPE_STRING.
3962         (ptrarray_value_from_gvalue): Ditto.
3963         (ptrarray_append, ptrarray_free): New functions.
3964         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3965         (slist_append, slist_end_append, slist_free): New functions.
3966         (dbus_g_type_specialized_builtins_init): Add append fuctions
3967         for GPtrArray and GSList.  Register GSList.
3968         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3969
3970         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3971         New.
3972         (dbus_g_type_specialized_collection_init_append)
3973         (dbus_g_type_specialized_collection_append)
3974         (dbus_g_type_specialized_collection_end_append): Prototype.
3975         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3976         end_append_func.
3977
3978         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3979         (dbus_g_type_specialized_collection_append) 
3980         (dbus_g_type_specialized_collection_end_append): New functions.
3981         (dbus_g_type_map_value_iterate): Take const GValue.
3982         (dbus_g_type_collection_value_iterate): Ditto.
3983
3984         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3985         _dbus_gvalue_utils_test.
3986         
3987         * glib/dbus-gtest.h: Prototype it.
3988
3989         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3990         using uninitialized owner_list.
3991         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3992         public API.
3993         (dbus_g_proxy_end_call_internal): Update to use error set
3994         from dbus_gvalue_demarshal instead of setting it here.
3995         (dbus_g_proxy_begin_call): Move return_if_fail here.
3996
3997         * glib/dbus-gobject.c (write_interface): Update for
3998         dbus_gtype_to_signature returning new string.
3999
4000         * configure.in: Add glib/examples/statemachine.
4001
4002 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4003
4004         * configure.in: Add a configure option, --with-console-auth-dir
4005         
4006         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4007         new setting.  Patch from Kay Sievers.
4008
4009 2005-07-06  Colin Walters  <walters@verbum.org>
4010
4011         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4012         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4013         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4014         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4015         Delete in favor of dbus_g_proxy_begin_call and
4016         dbus_g_proxy_cancel_call.
4017         (DBusGProxyCall, DBusGProxyCallNotify): New.
4018         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4019         data, and destroy function.  This replaces
4020         dbus_g_pending_call_set_notify.
4021         (dbus_g_proxy_cancel_call): Prototype.
4022         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4023
4024         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4025         pending_calls map.
4026         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4027         internal proxy for calls to the bus. Remove
4028         pending_nameowner_calls, now the internal proxy keeps track.
4029         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4030         pending_nameowner_calls.
4031         (got_name_owner_cb): Update prototype, and use
4032         dbus_g_proxy_end_call.
4033         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4034         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4035         favor of using internal proxy.
4036         (dbus_g_proxy_manager_unregister): Update to use
4037         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4038         (dbus_g_proxy_init): Initialize pending calls map.
4039         (dbus_g_proxy_constructor): New.
4040         (dbus_g_proxy_class_init): Add get/set property functions,
4041         constructor, and add NAME, PATH, and INTERFACE properties.
4042         (cancel_pending_call): New function.
4043         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4044         cancel them.
4045         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4046         (GPendingNotifyClosure): New structure.
4047         (d_pending_call_notify, d_pending_call_free): Moved here from
4048         dbus-glib.c.
4049         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4050         ordering.
4051         (manager_begin_bus_call): New internal function for talking to
4052         internal bus proxy.
4053         (dbus_g_proxy_new): Construct object using GObjet properties.
4054         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4055         Create closure of same, and insert call into map of pending calls.
4056         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4057         call.  Look up pending call in current set.  Remove it when we've
4058         completed.
4059         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4060         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4061         and destroy function directly.
4062         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4063         (dbus_g_proxy_call): Invoke with NULL callback.
4064         (dbus_g_proxy_cancel_call): New function, replaces
4065         dbus_g_pending_call_cancel.
4066
4067         * glib/dbus-gparser.c (validate_signature): Fix call to
4068         dbus_set_g_error.
4069
4070         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4071         New quark for attaching metadata to GType.
4072         (info_hash): Delete.
4073         (lookup_object_info): Look up using quark.
4074         (dbus_g_object_type_install_info): Check that a type is classed,
4075         not that it's an object.  Also just install type data using quark
4076         instead of using global hash.
4077
4078         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4079         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4080         (GPendingNotifyClosure): Delete.
4081         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4082         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4083
4084         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4085         client method generation until we can fix it...
4086         
4087         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4088         (load_from_service_thread_func): Ditto.
4089
4090         * tools/dbus-names-model.c (struct NamesModel): Hold
4091         DBusGProxyCall.
4092         (have_names_notify): Update prototype, use
4093         dbus_g_proxy_cancel_call.
4094         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4095
4096         * tools/dbus-monitor.c (filter_func): Update for print_message
4097         API change.
4098
4099         * test/glib/test-dbus-glib.c: Add more tests for async
4100         invocations.  Update many begin_call/end_call pairs to just use
4101         dbus_g_proxy_call.
4102
4103         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4104         allows us to dump print-introspect.c.
4105
4106         * tools/dbus-print-message.h (print_message): Add literal argument
4107         to print_message which is intended to allow printing arguments without
4108         metadata like "string=".
4109
4110         * tools/dbus-print-message.c (print_iter): Add literal argument.
4111         (print_message): Allow printing string messages literally.
4112
4113 2005-07-05  Colin Walters  <walters@verbum.org>
4114
4115         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4116         Remove value refcount leak, original patch from Jorn Baayen
4117         <jorn@openedhand.com>.  Also remove useless extra value in favor
4118         of prepending to value array directly.
4119
4120 2005-07-02  Colin Walters  <walters@verbum.org>
4121
4122         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4123
4124 2005-07-01  Colin Walters  <walters@verbum.org>
4125
4126         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4127         
4128         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4129         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4130         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4131         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4132
4133 2005-06-30  Colin Walters  <walters@verbum.org>
4134
4135         * test/glib/test-dbus-glib.c:
4136         * test/glib/test-service-glib.c:
4137         * test/glib/test-service-glib.xml: Update tests for new error
4138         setting bits, also add async tests (patch from Ross Burton).
4139
4140         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4141         DBUS_GLIB_THREADS_LIBS.
4142
4143         * glib/dbus-gproxy.c (get_name_owner)
4144         (dbus_g_pending_call_end_valist): Ditto.
4145
4146         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4147         domain (GQuark) to DBusGErrorInfo.  
4148         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4149         quark in error_metadata.  Take message interface as default
4150         error message interface.
4151         (gerror_to_dbus_error_message): Pass message interface.
4152         (dbus_set_g_error): Resurrected.
4153         (dbus_g_error_info_free): New function.
4154         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4155         of _peek to actually create the object class if it hasn't been
4156         created yet.
4157         (dbus_g_error_domain_register): New function.
4158
4159         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4160
4161         * glib/dbus-gparser.c (validate_signature): Ditto.
4162
4163         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4164         (dbus_g_error_domain_register): Prototype.
4165
4166         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4167         Update tests.
4168
4169 2005-06-29  Colin Walters  <walters@verbum.org>
4170
4171         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4172         DBUS_TYPE_G_OBJECT_PATH.
4173
4174         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4175         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4176         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4177         (dbus_g_object_path_get_g_type): New function.
4178         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4179         to DBUS_TYPE_G_OBJECT_PATH by default.
4180         (demarshal_proxy): Remove unused name variable.
4181         (demarshal_object_path, marshal_object_path): New functions.
4182         (demarshal_proxy_array, marshal_proxy_array): Delete.
4183         
4184         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4185         DBUS_TYPE_G_OBJECT_PATH to char *.
4186         (dbus_g_type_get_lookup_function): Map builtin
4187         DBUS_TYPE_G_OBJECT_PATH.
4188
4189         * test/glib/test-dbus-glib.c
4190         * test/glib/test-service-glib.c (my_object_objpath): 
4191         Adapt tests to new object path marshalling.
4192
4193 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4194
4195         * configure.in: force check for Python >= 2.4
4196
4197 2005-06-29  Colin Walters  <walters@verbum.org>
4198         
4199         Patch from Ross Burton <ross@openedhand.com>
4200         
4201         * glib/dbus-gobject.c (invoke_object_method): Unset object
4202         value in all cases, not only in async case.
4203
4204 2005-06-29  Colin Walters  <walters@verbum.org>
4205
4206         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4207         name_call for keeping track of any outgoing GetNameOwner call.
4208         Also add for_owner and associated.
4209         (struct _DBusGProxyManager): Add owner_names, which is hash table
4210         that maps a base name to a list of names it owns (that we're
4211         interested in).  Add pending_nameowner_calls which is a list of
4212         all outstanding GetNameOwner; avoids us having to iterate over
4213         every proxy.  Add unassociated_proxies which keeps track of name
4214         proxies with no associated name owner.
4215         (dbus_g_proxy_manager_unref): Destroy owner_names.
4216         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4217         name refcounts.
4218         (find_name_in_info, name_owner_foreach)
4219         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4220         (dbus_g_proxy_manager_monitor_name_owner)
4221         (dbus_g_proxy_manager_unmonitor_name_owner)
4222         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4223         New functions; they manipulate the owner_names mapping.
4224         (got_name_owner_cb): New function.
4225         (get_name_owner): New function, extracted from
4226         dbus_g_proxy_new_for_name_owner.
4227         (dbus_g_proxy_manager_register): For now we need to keep track of
4228         all NameOwnerChanged.  Also if the proxy is for a name, if we
4229         don't already know the name owner, queue a new GetNameOwner
4230         request and add it to our list of unassociated proxies.  Otherwise
4231         inc the refcount.
4232         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4233         cancel any pending GetNameOwner call, etc.
4234         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4235         the owner_names mapping to look up the current names for the
4236         signal source, and dispatch to any proxies for that name.
4237         (dbus_g_proxy_new): Initialize new members.
4238         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4239         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4240         (dbus_g_pending_call_end_valist): New function, extracted from
4241         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4242         but want to use the GLib infrastructure.  Also note how many
4243         arguments in reply were over.
4244         (dbus_g_pending_call_end): New function, just call
4245         dbus_g_pending_call_end_valist.
4246         (dbus_g_proxy_end_call_internal): Just call
4247         dbus_g_pending_call_end_valist.
4248
4249         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4250         of builtin marshaller for STRING_STRING_STRING.
4251
4252         * test/glib/test-dbus-glib.c: 
4253         * test/glib/test-service-glib.c:
4254         * test/glib/test-service-glib.xml:
4255         Extend tests to cover name proxies, destruction of owner proxies,
4256         etc.
4257         
4258         * glib/examples/example-signal-recipient.c
4259         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4260         
4261         * tools/dbus-send.c (main): Print D-BUS error name in addition
4262         to message.
4263
4264 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4265
4266         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4267         cmessage_function_handler): Patch from 
4268         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4269         by using the Py_GILState_Ensure/Release to synchronize with the
4270         python runtime.
4271         
4272 2005-06-28  Ray Strode  <rstrode@redhat.com>
4273
4274         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4275         babysitter helper process on last unref, bug #2813.
4276
4277 2005-06-27  Colin Walters  <walters@verbum.org>
4278
4279         * test/glib/test-dbus-glib.c: 
4280         * test/glib/test-service-glib.c:
4281         * test/glib/test-service-glib.xml:
4282         Test hash table signal emitting.
4283
4284         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4285         types to their fundamental basis types, since this is what
4286         marshallers operate on.  Also add an entry for VOID__BOXED.
4287         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4288
4289 2005-06-26  Havoc Pennington  <hp@redhat.com>
4290
4291         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4292         from Don Park
4293
4294 2005-06-26  Colin Walters  <walters@verbum.org>
4295
4296         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4297         (dbus_g_error_set): New public function from its ashes; used by
4298         both service-side method implementation and GLib bindings
4299         internals.
4300         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4301         (_dbus_glib_test): Add some tests.
4302
4303         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4304
4305         * test/glib/test-service-glib.c (my_object_throw_error): Use
4306         dbus_g_error_set.
4307
4308         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4309         errors thrown by dbus_g_error_set.
4310
4311         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4312
4313         * glib/dbus-gparser.c (validate_signature): Ditto.
4314
4315         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4316         (dbus_g_proxy_end_call_internal): Ditto.
4317
4318         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4319         converts DBUS_ERROR_x to DBUS_GERROR_x.
4320         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4321
4322         * doc/TODO: Remove error TODO.
4323
4324         * doc/dbus-tutorial.xml: Update with documentation about error
4325         handling.
4326
4327         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4328         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4329         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4330
4331 2005-06-22  Colin Walters  <walters@verbum.org>
4332         
4333         Patch from Ross Burton <ross@openedhand.com>
4334
4335         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4336
4337 2005-06-20  Colin Walters  <walters@verbum.org>
4338
4339         * configure.in: Add glib/examples.
4340
4341         * glib/Makefile.am: Add examples/
4342
4343         * glib/examples/.cvsignore
4344         * glib/examples/Makefile.am
4345         * glib/examples/example-client.c
4346         * glib/examples/example-service.c
4347         * glib/examples/example-service.xml
4348         * glib/examples/example-signal-emitter.c
4349         * glib/examples/example-signal-emitter.xml
4350         * glib/examples/example-signal-recipient.c:
4351         New files; GLib binding examples, ported from
4352         python/examples.
4353
4354 2005-06-20  Colin Walters  <walters@verbum.org>
4355
4356         * dbus/dbus-glib.h: 
4357         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4358         dbus_g_proxy_call.
4359
4360         * glib/dbus-binding-tool-glib.c: 
4361         * doc/dbus-tutorial.xml: 
4362         * test/glib/test-dbus-glib.c: Update for rename.
4363         
4364 2005-06-20  Colin Walters  <walters@verbum.org>
4365
4366         Patch suggested by Ross Burton <ross@openedhand.com>
4367
4368         * glib/dbus-gobject.c (export_signals): Free signal name.
4369         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4370         memory leak.  Add a bit of documentation.
4371         (dbus_g_method_return_error): Free context, and note we do
4372         so.
4373
4374 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4375
4376         * dbus/dbus-glib.h:
4377         * glib/dbus-gobject.c:
4378         * glib/dbus-gproxy.c:
4379         * glib/dbus-gvalue.c: Predeclare structs as 
4380         typedef struct _Something Something instead of 
4381         typedef struct Something Something, so we can 
4382         redeclare the prototypes. Other GNOME libraries 
4383         do this already.
4384
4385 2005-06-17  Colin Walters  <walters@verbum.org>
4386
4387         * tools/dbus-names-model.c (have_names_notify): Fix call
4388         to dbus_g_proxy_end_call.
4389         
4390 2005-06-17  Colin Walters  <walters@verbum.org>
4391
4392         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4393         spew warnings if we get malformed remote signals.
4394
4395         * glib/dbus-gobject.c (propsig_iterate): New function.
4396         (lookup_object_info): New function, extracted from
4397         lookup_object_and_method.
4398         (introspect_properties, introspect_signals): Delete; these
4399         are merged into write_interface.
4400         (write_interface): Write out signals and properties here;
4401         dump the org.gtk.object stuff and use the interface given
4402         in the introspection data blob.  Also fix up property XML.
4403         (lookup_values): New function.
4404         (introspect_interfaces): Gather a mapping from interface to a
4405         list of its methods, signals, and properties, then write out
4406         each interface.
4407         (lookup_object_and_method): Use lookup_object_info.
4408         (struct DBusGSignalClosure): Add interface.
4409         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4410         we can just use the constant data.
4411         (dbus_g_signal_closure_finalize): Don't free signal name.
4412         (signal_emitter_marshaller): Use interface from signal closure.
4413         (export_signals): Only export signals mentioned in introspection
4414         blob.
4415         (dbus_g_connection_register_g_object): Warn if we have no
4416         introspection data for an object.
4417         (funcsig_equal): Remove unused variable.
4418         (dbus_g_object_register_marshaller): Take varargs instead of
4419         list.
4420         (dbus_g_object_register_marshaller_array): New function,
4421         extracted from old dbus_g_object_register_marshaller.
4422
4423         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4424         signals and property data.
4425         (write_quoted_string): New function, extracted from generate_glue.
4426         (generate_glue): Write signals and properties to introspection
4427         blob.
4428
4429         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4430         exported_signals and exported_properties.
4431         (dbus_g_object_register_marshaller): Update prototype.
4432         (dbus_g_object_register_marshaller_array): Prototype.
4433         
4434         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4435
4436         * test/glib/test-service-glib.c: Add new test signals and method
4437         to emit them.
4438
4439         * test/glib/test-service-glib.xml: Add some test signals.
4440
4441         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4442         and my-object-marshal.h
4443         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4444         my-object-marshal.c.
4445         (my-object-marshal.c, my-object-marshal.h): Implement.
4446
4447         * test/glib/.cvsignore: Update.
4448
4449         * doc/TODO: Remove two GLib TODO items fixed by this
4450         patch.
4451
4452 2005-06-16  Colin Walters  <walters@verbum.org>
4453
4454         * doc/TODO: Update for GLib bindings.
4455         
4456 2005-06-16  Colin Walters  <walters@verbum.org>
4457
4458         * glib/dbus-binding-tool-glib.c:
4459         * glib/dbus-gobject.c:
4460         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4461         from Ross Burton, for his GLib bindings work.
4462
4463 2005-06-16  Colin Walters  <walters@verbum.org>
4464
4465         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4466         to iterate instead of walking to G_TYPE_INVALID.
4467
4468         Patch based on a patch from Ryan Gammon.
4469
4470 2005-06-16  Colin Walters  <walters@verbum.org>
4471
4472         * bus/bus.c (bus_context_new): Set parser to NULL
4473         after we unref it (Patch from Chris Boscolo, #2174).
4474         
4475 2005-06-16  Colin Walters  <walters@verbum.org>
4476
4477         * python/dbus_bindings.pyx.in: Import size_t,
4478         __int64_t, __uint64_t, and __signed.
4479
4480         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4481         Define cmsg struct, output it.
4482         (_dbus_read_credentials_unix_socket):
4483         Use cmsg struct.
4484         
4485         Patch from Joe Markus Clarke for FreeBSD support.
4486         
4487 2005-06-16  Colin Walters  <walters@verbum.org>
4488
4489         * tools/dbus-send.c (append_array): Use strtok.
4490         (append_dict): New function.
4491         (type_from_name): New function, extracted from main.
4492         (main): Handle sending dicts.
4493
4494         * tools/dbus-print-message.c (print_iter): Print dict
4495         entries.
4496         
4497 2005-06-16  Colin Walters  <walters@verbum.org>
4498
4499         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4500         values as the empty string (#2948).
4501         
4502 2005-06-16  Colin Walters  <walters@verbum.org>
4503
4504         * dbus/Makefile.am:
4505         * mono/doc/Makefile.am:
4506         * test/glib/Makefile.am:
4507
4508         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4509
4510 2005-06-16  Colin Walters  <walters@verbum.org>
4511
4512         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4513         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4514
4515         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4516         Increment pointer after swapping fixed array.  Add assertion
4517         for array length.
4518                 
4519 2005-06-15  Colin Walters  <walters@verbum.org>
4520
4521         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4522         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4523         
4524 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4525
4526         * NEWS: Update to 0.34
4527
4528 2005-06-15  David Zeuthen  <davidz@redhat.com>
4529
4530         * configure.in (LT_CURRENT): Revert back to 1 as the library
4531         hasn't changed and we've certainly not committed to protocol
4532         stability yet.  All this does is to break ABI. See commit note
4533         from hp@redhat.com 2005-05-05 for details.
4534         
4535 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4536
4537         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4538         (_dbus_connection_run_builtin_filters): New method
4539         (dbus_connection_dispatch): Run the builtin filters which in turn
4540         runs the peer filter which handles Ping messages.
4541
4542         * doc/TODO: 
4543          - Ping isn't handled: This patch fixes it
4544          
4545          - Add a test case for the Ping message: added TODO item
4546
4547 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4548
4549         * dbus/dbus-message.c:
4550         (dbus_message_has_path): New method
4551         (dbus_message_has_interface): New method
4552         (dbus_message_has_member): New method
4553
4554         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4555         New method
4556
4557         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4558         the keyring directory is private to the user
4559
4560         * doc/TODO:
4561          - The convenience functions in dbus-bus.h should perhaps have
4562          the signatures that they would have if they were autogenerated
4563          stubs. e.g. the acquire service function. We should also evaluate
4564          which of these functions to include, in light of the fact that
4565          GLib/Qt native stubs will probably also exist.: Punted
4566
4567          - add dbus_message_has_path(), maybe has_member/interface:
4568          fixed in this patch
4569
4570          - in dbus-keyring.c, enforce that the keyring dir is not
4571          world readable/writable: Fixed in this patch
4572
4573 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4574
4575         * dbus/dbus-marshal-validate.h: Added a new validation
4576         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4577         out of memory errors when validating signitures
4578
4579         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4580         in places where we previously used DBUS_VALID and a FALSE return 
4581         value to indicate OOM
4582         
4583         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4584         Use a stack to track the number of elements inside containers.  The 
4585         stack values are then used to validate that dict entries have only two
4586         elements within them.
4587         (validate_body_helper): check the reason for failure when validating
4588         varients
4589         
4590         * dbus/dbus-message.c (load_message): use 
4591         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4592         DBUS_VALID and a FALSE return value to indicate OOM
4593
4594         * doc/TODO: remove "- validate dict entry number of fields" as this
4595         patch fixes it
4596
4597 2005-06-14  David Zeuthen  <davidz@redhat.com>
4598
4599         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4600         watches (if applicable) and add new watches
4601
4602         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4603         (main): Setup SIGIO signal handler if using D_NOTIFY
4604
4605         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4606
4607         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4608         (merge_included): Also merge conf_dirs list
4609         (bus_config_parser_unref): Clear conf_dirs list
4610         (include_dir): Add directory to conf_dirs list
4611         (bus_config_parser_get_conf_dirs): New function
4612
4613         * bus/dir-watch.[ch]: New files
4614
4615         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4616
4617         * configure.in: Add checks for D_NOTIFY on Linux
4618
4619 2005-06-14  Colin Walters  <walters@verbum.org>
4620
4621         * glib/dbus-binding-tool-glib.c:
4622         * glib/dbus-gobject.c:
4623         * glib/dbus-gvalue.c: Fix indentation and brace style.
4624         
4625 2005-06-14  Ross Burton <ross@openedhand.com>.
4626
4627         * glib/dbus-glib.h: Make DBusGMethodInvocation
4628         a private structure.  Rearrange prototypes a bit.
4629         
4630         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4631         documentation for first_arg_type.
4632         
4633         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4634         here, add documentation.  Move dbus_g_method_return
4635         and dbus_g_method_return_error into public API
4636         section.
4637
4638 2005-06-14  Colin Walters  <walters@verbum.org>
4639
4640         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4641         Add missing return statements, noticed by Ross Burton.
4642         
4643 2005-06-13  Ross Burton <ross@openedhand.com>.
4644
4645         * glib/dbus-gobject.c: Handle errors on message
4646         demarshalling by sending error message back.
4647         * glib/dbus-gvalue.c: Initialize return variables.
4648
4649 2005-06-13  Colin Walters  <walters@verbum.org>
4650
4651         * glib/Makefile.am: Fix thinko in last patch.
4652
4653 2005-06-13  Colin Walters  <walters@verbum.org>
4654
4655         * glib/Makefile.am: Move dbus-gtype-specialized.c
4656         and dbus-gtype-specialized.h into a _HEADERS variable,
4657         install them.
4658
4659 2005-06-12  Colin Walters  <walters@verbum.org>
4660
4661         Async signals and various bugfixes and testing by
4662         Ross Burton <ross@openedhand.com>.
4663
4664         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4665         (dbus_gvalue_genmarshal_name_from_type)
4666         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4667         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4668         (dbus_g_value_types_init, dbus_gtype_from_signature)
4669         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4670         (dbus_gtypes_from_arg_signature): New function prototypes.
4671         (dbus_gvalue_demarshal): Take context and error arguments.
4672         (dbus_gvalue_demarshal_variant): New function.
4673         (dbus_gvalue_demarshal_message): New function.
4674         (dbus_gvalue_store): Delete.
4675
4676         * glib/dbus-gvalue.c:
4677
4678         File has been almost entirely rewritten; now we special-case
4679         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4680         hash tables correctly, etc.  Full support for recursive values
4681         is not yet complete.
4682
4683         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4684         argument of signal to G_TYPE_POINTER since we now pass a
4685         structure.
4686         (lookup_g_marshaller): Delete in favor of
4687         _dbus_gobject_lookup_marshaller.
4688         (marshal_dbus_message_to_g_marshaller): Use
4689         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4690         to handle remote signal callbacks.
4691         (dbus_g_proxy_new_from_proxy): New function; creates a new
4692         DBusGProxy by copying an existing one.
4693         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4694         (dbus_g_proxy_get_path): New functions.
4695         (dbus_g_proxy_marshal_args_to_message): New function;
4696         factored out of existing code.
4697         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4698         from a varargs array.
4699         (dbus_g_proxy_begin_call_internal): New function.
4700         (dbus_g_proxy_end_call_internal): New function.
4701         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4702         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4703         after collecting args into value array.
4704         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4705         invoke dbus_g_proxy_end_call_internal.
4706         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4707         end_call_internal.
4708         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4709         types.
4710         (array_free_all): New function.
4711         (dbus_g_proxy_add_signal): Take GTypes.
4712
4713         * glib/dbus-gobject.h:
4714         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4715         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4716         Prototype.
4717
4718         * glib/dbus-gobject.c: Add a global marshal_table hash which
4719         stores mappings from type signatures to marshallers.  Change lots
4720         of invocations of dbus_gtype_to_dbus_type to
4721         dbus_gtype_to_signature.
4722         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4723         (introspect_signals): Fix test for query.return_type.
4724         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4725         (invoke_object_method): Many changes.  Handle asynchronous
4726         invocations.  Convert arguments with
4727         dbus_gvalue_demarshal_message.  Handle errors.  Use
4728         DBusSignatureIter instead of strlen on args. Handle all arguments
4729         generically.  Special-case variants.
4730         (dbus_g_method_return, dbus_g_method_return_error): New function.
4731         (DBusGSignalClosure): New structure, closes over signal
4732         information.
4733         (dbus_g_signal_closure_new): New function.
4734         (dbus_g_signal_closure_finalize): New function.
4735         (signal_emitter_marshaller): New function; is special marshaller
4736         which emits signals on bus.
4737         (export_signals): New function; introspects object signals and
4738         connects to them.
4739         (dbus_g_object_type_install_info): Take GType instead of
4740         GObjectClass.
4741         (dbus_g_connection_register_g_object): Invoke export_signals.
4742         (dbus_g_connection_lookup_g_object): New function.
4743         (DBusGFuncSignature) New structure; used for mapping type
4744         signatures to marshallers.
4745         (funcsig_hash): New function; hashes DBusGFuncSignature.
4746         (funcsig_equal): New function; compares DBusGFuncSignature.
4747         (_dbus_gobject_lookup_marshaller): New function.
4748         (dbus_g_object_register_marshaller): New function; used to
4749         register a marshaller at runtime for a particular signature.
4750
4751         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4752
4753         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4754         which notes a server method implementation should be
4755         asynchronous.
4756
4757         * glib/dbus-binding-tool-glib.c
4758         (dbus_binding_tool_output_glib_server): Call
4759         dbus_g_value_types_init.
4760         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4761         variants specially.
4762         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4763         of a lookup function.
4764         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4765         (write_untyped_out_args): New method; write output arguments.
4766         (write_formal_declarations_for_direction): Function for
4767         writing prototypes.
4768         (write_formal_parameters_for_direction): Function for
4769         writing implementations.
4770         (write_typed_args_for_direction): Function for writing
4771         arguments prefixed with GTypes.
4772         (write_async_method_client): Write out async version
4773         of method.
4774
4775         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4776         (dbus_g_type_get_marshal_name): Move mapping from GType
4777         to marshal name into here.
4778         (dbus_g_type_get_c_name): Move into here.
4779         (compute_marshaller): Convert signature to type with
4780         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4781         (compute_marshaller_name): Ditto.
4782         (compute_marshaller): Handle async signal annotations.
4783         (gather_marshallers): Return if we don't have a known
4784         prefix.
4785         (generate_glue): Collect introspection blob here, and
4786         write all of the blob at the end.  This allows an object
4787         with multiple interfaces to work.
4788         Mark async methods in introspection blob.
4789
4790         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4791         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4792         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4793
4794         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4795         avoids people accidentally using DBUS_TYPE_* which should
4796         not be necessary anymore.
4797         Do include dbus-gtype-specialized.h, which are utilities
4798         for GLib container types.
4799         Add various #defines for types such as
4800         DBUS_TYPE_G_BOOLEAN_ARRAY.
4801         (DBusGValueIterator, DBusGValue): Define, not fully used
4802         yet.
4803         (dbus_g_value_get_g_type): Type for recursive value.
4804         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4805         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4806         (dbus_g_value_free): Prototypes.
4807         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4808         (dbus_g_proxy_set_interface): Prototype.
4809         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4810         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4811         types.
4812         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4813         Accessors.
4814         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4815         doing async invocations.
4816         (dbus_g_method_return, dbus_g_method_return_error):
4817         Prototypes.
4818         * doc/dbus-tutorial.xml: Update GLib section.
4819         
4820         * tools/dbus-viewer.c (load_child_nodes): Update
4821         for new invocation type of dbus_g_proxy_end_call.
4822         (load_from_service_thread_func): Ditto.
4823
4824         * tools/print-introspect.c (main): Ditto.
4825
4826         * tools/dbus-names-model.c (have_names_notify)
4827         (names_model_reload, names_model_set_connection)
4828         Use GTypes.
4829
4830         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4831         needed since Python bindings use GLib bindings.
4832
4833         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4834         Add --prefix argument.
4835
4836         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4837         unneeded --ignore-unsupported arg.
4838         
4839         * test/glib/test-service-glib.c: 
4840         * test/glib/test-service-glib.xml:
4841         * test/glib/test-dbus-glib.c: Add many more tests.
4842
4843 2005-06-06  David Zeuthen  <davidz@redhat.com>
4844
4845         * doc/TODO: Add item about need to remove deprecated functions.
4846
4847         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4848
4849         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4850         to repair the ABI which was broken with the last commit.
4851
4852 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4853
4854         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4855         (dbus_connection_disconnect): renamed to dbus_connection_close 
4856         for API symmetry with dbus_connection_open
4857         (_dbus_connection_open_internal): 
4858         s/dbus_connection_disconnect/dbus_connection_close
4859
4860         * dbus/dbus-bus.c (dbus_bus_get):
4861         s/dbus_connection_disconnect/dbus_connection_close
4862
4863         * bus/connection.c (bus_connections_unref, 
4864         bus_connections_setup_connection, bus_connections_expire_incomplete):
4865         s/dbus_connection_disconnect/dbus_connection_close
4866
4867         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4868         kill_client_connection_unchecked, check_hello_connection):
4869         s/dbus_connection_disconnect/dbus_connection_close
4870
4871         * bus/bus.c (new_connection_callback):
4872         s/dbus_connection_disconnect/dbus_connection_close
4873
4874         * tools/dbus-send.c (main):
4875         s/dbus_connection_disconnect/dbus_connection_close
4876
4877         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4878         s/dbus_connection_disconnect/dbus_connection_close
4879         
4880         * test/test-service.c (path_message_func, filter_func):
4881         s/dbus_connection_disconnect/dbus_connection_close
4882         
4883         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4884         
4885 2005-05-25  Colin Walters  <walters@verbum.org>
4886
4887         * dbus/dbus-protocol.h: Move various bus service #defines such
4888           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4889           dbus/dbus-shared.h.
4890         * dbus/dbus-shared.h: Various defines moved here.
4891         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4892
4893 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4894
4895         * python/__init__.py: Python bindings deserve a minor version
4896         update.  Upped to (0, 40, 2)
4897
4898 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4899
4900         * python/decorators.py: add explicitly_pass_message decorator
4901         for passing in the dbus message as keyword for edge case signal
4902         handling
4903
4904         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4905         to conform with what dbus expects for match rules
4906         (SignalMatchRule.execute): add the dbus message as a keyword
4907         if the signal handler has requested it
4908
4909         * python/examples/example/signal-recipient.py: added some more
4910         examples on how to hook up to signals
4911
4912 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4913
4914         * python/decorators.py: import dbus_bindings
4915
4916         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4917         SignalMatchNode): new classes that implement wildcard signal
4918         callback matching using a tree lookup. Heavily modified from a
4919         patch sent by Celso Pinto (fd.o bug #3241)
4920
4921         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4922         use new match classes to handle signals.
4923
4924 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4925         
4926         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4927
4928 2005-05-18  Havoc Pennington  <hp@redhat.com>
4929
4930         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4931         gettext. Not really worth requiring yet perhaps, but any
4932         production quality 1.0 would require it so we should go ahead and
4933         get things set up. We do have a couple token calls to
4934         bindtextdomain in the code already.
4935
4936 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4937
4938         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4939         when using recursive g_main_loops
4940
4941         * python/_dbus.py (class Bus): add the ProxyObjectClass
4942         alias for ProxyObject to make it easier for the Twisted 
4943         networking framework to integrate dbus.
4944
4945         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4946         alias for ProxyMethod to make it easier for the Twisted 
4947         networking framework to integrate dbus. 
4948
4949 2005-05-11  Ross Burton  <ross@openedhand.com>
4950
4951         * glib/dbus-glib-tool.c: Add --prefix argument.
4952         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4953         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4954         Add prefix argument.
4955         (generate_glue): Pass prefix argument down.
4956         (dbus_binding_tool_output_glib_server): Pass prefix to
4957         glib-genmarshal.
4958         
4959 2005-05-11  Colin Walters  <walters@verbum.org>
4960
4961         * tools/dbus-send.c (append_array): New function.
4962         (append_arg): Broken out from main.
4963         (main): Add cheesy hack to send arrays and variants.
4964         (usage): Update.
4965         * tools/dbus-print-message.c (print_iter): Broken out
4966         from main.
4967
4968 2005-05-11  Colin Walters  <walters@verbum.org>
4969
4970         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4971         New function, returns signature string for signature iter.
4972         * dbus/dbus-signature.h: Prototype it.
4973         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4974         New function, returns signature string for message iter.
4975         (dbus_message_iter_get_array_len): New function, returns
4976         length of array.
4977         (dbus_message_iter_get_fixed_array): Fix assertion; this
4978         function should be used when the iter is pointing to the
4979         contents of an array
4980         * dbus/dbus-message.h: Prototypes.
4981         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4982         New function; returns length of an array.
4983         * dbus/dbus-marshal-recursive.h: Prototype it.
4984         
4985 2005-05-11  Colin Walters  <walters@verbum.org>
4986
4987         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4988         compilation error.
4989         
4990 2005-05-08  Havoc Pennington  <hp@redhat.com>
4991
4992         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4993         daemon's pid, not the parent's pid, to the file descriptor.
4994         Reported by Taj Morton.
4995
4996 2005-05-05  Havoc Pennington  <hp@redhat.com>
4997
4998         * configure.in (LT_*): add notes on how the libtool versioning
4999         works to save thinking. Increment soname to indicate protocol
5000         breakage (though really the library interface hasn't changed I
5001         guess)
5002
5003         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5004         verify the GUID received from server matches what we were
5005         expecting, if we had an expectation
5006
5007         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5008         (_dbus_auth_get_guid_from_server): new function
5009         (send_begin): parse the OK args
5010
5011         * doc/dbus-specification.xml: add GUID to the auth protocol
5012
5013 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5014
5015         * Fix my name in previous changelog ;)
5016
5017         * python/proxies.py (ProxyObject.__getattr__): add further patch
5018         from Anthony Baxter to throw an AttributeError when python 
5019         __special__ functions are called instead of marshling them over 
5020         the bus (Bug#1685 comment 3).
5021
5022 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5023
5024         * python/Makefile.am: changed to use pyexecdir for the binding
5025         shared libraries (Bug#2494)
5026
5027         * python/exceptions.py: bring exceptions over from the bindings
5028         so they can be used in applications (Bug#2036)
5029         Make all exceptions derive from DBusException
5030
5031         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5032         of classes so that print obj doesn't throw an exception (Bug #1685)
5033
5034 2005-05-03  Ross Burton  <ross@openedhand.com>
5035
5036         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5037         Return if we get an error during registration.  Set up a
5038         weak reference on object to unregister if object is destroyed.
5039         (unregister_gobject): New function.
5040         
5041 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5042
5043         * python/dbus_bindings.pyx.in: 
5044         - added new type classes for hinting to the marashaler what type 
5045         to send over the wire
5046         - added int16 and uint16 marshalers
5047         - Fixed a bug in the type constants that caused int32 to go out
5048         as uint16 over the wire
5049         * python/dbus.py: split up into different files and renamed _dbus.py
5050         * python/__init__.py, python/_util.py, python/decorators.py, 
5051         python/exceptions.py, python/proxies.py, python/services.py,
5052         python/types.py: new files split off from dbus.py
5053         * python/Makefile.am: Add new files, remove dbus.py and 
5054         install all python files to <python module dir>/dbus
5055         * python/examples/*: Added #!/usr/bin/env python to the top of
5056         every example.  Patch provided by Tatavarty Kalyan
5057
5058 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5059
5060         * NEWS: Update to 0.33
5061
5062 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5063
5064         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5065         method for doing async calls
5066         (_pending_call_notification): New C function for handling pendning call
5067         callbacks
5068         (set_notify): New method for setting pending call notification
5069         
5070         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5071         Async capabilities added to remote method calls
5072         (Sender): class removed
5073         (RemoteService): class removed
5074         (ObjectTree): class removed for now
5075         (RemoteObject): Renamed to ProxyObject
5076         (RemoteMethod): Renamed to ProxyMethod
5077         (method): Decorator added for decorating python methods as dbus methods
5078         (signal): Decorator added for decorating python methods as signal emitters
5079         (ObjectType): Metaclass added for generating introspection data and the
5080         method callback vtable
5081         (Interface): Wrapper class added to wrap objects in a dbus interface
5082         (Object): Uses ObjectType as its metaclass and exports Introspect
5083         of the org.freedesktop.DBus.Introspectable interface
5084         (ValidationException, UnknownMethodException): new exceptions
5085
5086         * python/examples/*: Modified to fit with the new bindings
5087
5088 2005-04-23  Havoc Pennington  <hp@redhat.com>
5089
5090         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5091         reported by Tony Houghton
5092
5093         * test/test-service.c (main): test
5094         dbus_connection_get_object_path_data()
5095
5096         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5097         the exact_match
5098         (_dbus_object_tree_get_user_data_unlocked): new function used by
5099         dbus_connection_get_object_path_data()
5100         (do_register): add assertion test for get_user_data_unlocked
5101         (object_tree_test_iteration): more tests
5102
5103         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5104         new function from Dan Reed to let you get the user data from 
5105         dbus_connection_register_object_path()
5106
5107 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5108
5109         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5110         in numerous places that did not account for the NULL terminator
5111         (signature_from_seed): changed the manual string copy loop to 
5112         just use strcpy instead
5113         make check should now pass
5114
5115 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5116
5117         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5118         so that it allows messages that are not signals to pass in 
5119         NULL as the interface.
5120
5121 2005-04-18  David Zeuthen  <davidz@redhat.com>
5122
5123         * glib/dbus-gmain.c (io_handler_destroy_source): 
5124         (timeout_handler_destroy_source, connection_setup_free): 
5125         Also unref the source to avoid memory leaks.
5126
5127 2005-04-13  David Zeuthen  <davidz@redhat.com>
5128
5129         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5130         more reasonable, yet still totally arbitrary, value :-). 
5131
5132 2005-04-13  David Zeuthen  <davidz@redhat.com>
5133
5134         * doc/TODO: Added an "important for 1.0" item about selinux
5135         allow/deny messages
5136
5137 2005-04-13  David Zeuthen  <davidz@redhat.com>
5138
5139         * bus/selinux.c: Add c-file-style to top of file
5140         (log_audit_callback): Don't free the data here anymore
5141         (bus_selinux_check): Don't take spid and tpid since appending
5142         that to auxdata may OOM.
5143         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5144         to the caller if we are OOM by taking an error object.
5145         (bus_selinux_allows_send): -do-
5146
5147         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5148         and bus_selinux_allows_send
5149
5150         * bus/bus.c (bus_context_check_security_policy): Pass error and
5151         pass on OOM thrown by bus_selinux_allows_send()
5152
5153         * bus/services.c (bus_registry_acquire_service): Pass error and
5154         pass on OOM thrown by bus_selinux_allows_acquire_service()
5155
5156 2005-04-13  Havoc Pennington  <hp@redhat.com>
5157
5158         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5159         message at a time to avoid monopolizing the main loop, bug 
5160         #2953 from Benjamin Otte
5161
5162 2005-04-09  Havoc Pennington  <hp@redhat.com>
5163
5164         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5165         possible overlap, fix from Daniel Reed
5166         (fixup_alignment): fix signedness warnings
5167         (_dbus_string_append_unichar): ditto
5168
5169 2005-04-09  Havoc Pennington  <hp@redhat.com>
5170
5171         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5172
5173         * glib/dbus-glib-tool.c (main): fix warning
5174
5175         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5176
5177         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5178         add a new function that can be used in simple applications that
5179         don't have a main loop and are willing to block
5180
5181 2005-04-05  David Zeuthen  <davidz@redhat.com>
5182
5183         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5184
5185         * glib/dbus-gmain.c:
5186         (io_handler_destroy_source): Remove from list of IO handlers
5187         of the ConnectionSetup object
5188         (timeout_handler_destroy_source): -do- for timeout handlers
5189         (io_handler_source_finalized): Don't remove from list since
5190         we now do that in io_handler_destroy_source(). Renamed from
5191         io_handler_source_destroyed
5192         (timeout_handler_source_destroyed): -do- for timeout handlers
5193         (connection_setup_free): It is now safe to iterate over all
5194         IO and timeout handlers as the _destroy_source removes them
5195         from the list synchronously
5196
5197 2005-03-30  Havoc Pennington  <hp@redhat.com>
5198
5199         * configure.in: change check to gtk 2.4
5200
5201         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5202         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5203         to 2.4
5204
5205 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5206
5207         * News: Update 0.32
5208
5209         * HACKING: Fixed realease instructions.  configure.in should be updated to
5210           the next release by the person who made the last release.
5211
5212 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5213
5214         * python/lvalue_cast_post_process.py - removed.  Patch has been
5215           submitted to Pyrex maintainers that fixes gcc4.0 errors
5216
5217         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5218
5219 2005-03-24  Daniel Reed  <n@ml.org>
5220
5221         * tools/Makefile.am: Make print-introspect and
5222         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5223
5224 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5225
5226         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5227
5228         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5229           had in Red Hat packages for a while but for some reason never 
5230           got merged upstream
5231           (_dbus_is_a_number): New checks if a string
5232           can be converted to a number and does the conversion if it can
5233           (_dbus_user_database_lookup): Add check to see if the given username
5234           is a udi.  This allows udi's to be used instead of usernames in the
5235           config file.
5236           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5237           is a gdi.  This allows gdi's to be used instead of groupnames in the
5238           config file.
5239
5240 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5241
5242         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5243           code so that it compiles with gcc4.0
5244
5245         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5246           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5247           results back to dbus_binding.c
5248
5249 2005-03-20  Colin Walters  <walters@verbum.org>
5250
5251         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5252
5253         * configure.in: Require GTK+ 2.6.
5254         
5255 2005-03-20  Colin Walters  <walters@verbum.org>
5256
5257         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5258
5259 2005-03-17  Tom Parker  <palfrey@tevp.net>
5260
5261         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5262         print DBUS_UID_UNSET; instead print passed username.  Also
5263         be sure to actually use gid looked up in cache.
5264         
5265         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5266         for DBUS_GID_UNSET and groupname.
5267
5268 2005-03-17  Colin Walters  <walters@verbum.org>
5269
5270         * bus/print-introspect.c: Move to tools/.
5271         * bus/run-with-tmp-session-bus.sh: Ditto.
5272         
5273         * glib/Makefile.am (dbus-glib-bindings.h): Move
5274         generation to tools/Makefile.am.
5275
5276         * test/glib/run-test.sh: Update to handle move
5277         of run-with-tmp-session-bus.sh.
5278
5279         * test/glib/test-service-glib.c: Update to handle
5280         move of dbus-glib-bindings.h.
5281
5282         * tools/print-introspect.c: Moved here
5283         from bus/, and ported to GLib bindings.
5284
5285         * tools/run-with-tmp-session-bus.sh: Moved here
5286         from bus/.
5287
5288         * tools/Makefile.am: Generate dbus-glib-bindings.h
5289         and dbus-bus-introspect.xml here.
5290
5291         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5292         Update.
5293
5294 2005-03-17  Colin Walters  <walters@verbum.org>
5295
5296         * bus/driver.c (write_args_for_direction): Use
5297         _dbus_string_get_const_data to retrieve string;
5298         _dbus_string_get_const_data_len doesn't actually return
5299         a NULL-terminated substring.
5300
5301         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5302         (main): Change to use org_freedesktop_DBus_request_name
5303         instead of using g_proxy_begin_call/end_call.
5304
5305 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5306
5307         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5308         generating the finalizer.  Fixes from Ben Maurer.
5309
5310 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5311
5312         * mono/BusDriver.cs: Update method names: ListServices
5313         becomes ListNames; GetOwner becomes GetNameOwner.
5314
5315         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5316         onto the eval stack when removing the delegate.
5317
5318 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5319
5320         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5321         LT_CURRENT.  Set it to the autoconf variable.
5322                                                                                 
5323         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5324         classes that disconnects the signal handler delegate from the
5325         service object.  Fixes a big leak of proxy objects on the
5326         client side of things.  Patch from Ben Maurer
5327         <bmaurer@ximian.com>
5328
5329 2005-03-12  Colin Walters  <walters@verbum.org>
5330
5331         * bus/driver.c (write_args_for_direction): New function,
5332         parses a type signature into arguments and outputs to
5333         XML.
5334         (bus_driver_handle_introspect): Use it instead of
5335         hardcoding XML for certain signatures.
5336         
5337         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5338         dependency on dbus-daemon.
5339
5340         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5341         argument, pass it to dbus_binding_tool_output_glib_client.
5342
5343         * glib/dbus-binding-tool-glib.c
5344         (generate_client_glue): Protect against multiple inclusion.
5345         (dbus_binding_tool_output_glib_client): Add
5346         G_BEGIN_DECLS/G_END_DECLS.
5347
5348         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5349         Change to just take iface prefix directly.
5350         (write_formal_parameters): Clarify error message.
5351         (check_supported_parameters): New function; checks to see type
5352         signatures of method parameters are supported.
5353         (generate_client_glue): Handle ignore_unsupported flag.
5354         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5355         parameter.
5356
5357         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5358         --ignore-unsupported by default until glib bindings
5359         support arrays.
5360
5361 2005-03-11  Colin Walters  <walters@verbum.org>
5362
5363         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5364         install it.
5365
5366         * bus/print-introspect.c: New file; prints introspection
5367         data for a given name and object path.
5368
5369         * bus/run-with-tmp-session-bus.sh: New file, refactored
5370         from test/glib/run-test.sh.  Creates a temporary session
5371         bus and runs another program.
5372
5373         * test/glib/run-test.sh: Refactor to invoke
5374         run-with-tmp-session-bus.sh.
5375
5376         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5377         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5378         macros instead of hardcoding.
5379
5380         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5381
5382 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5383
5384         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5385         this unref; it doesn't match up evenly in some codepaths.
5386         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5387         this evenly matches with the ref near the top of this function.
5388
5389 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5390
5391         * dbus/dbus-object-tree.c
5392         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5393         and we try to unregister a path that's not registered, still go
5394         through the process of unlocking and don't just return.
5395
5396 2005-03-09  Colin Walters  <walters@verbum.org>
5397
5398         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5399         to this are generated for client-side wrappers.  Invokes a
5400         D-BUS method and returns reply values.  
5401
5402         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5403         function; writes signature string for argument direction.
5404         (write_args_for_direction): Change to pass input values directly
5405         instead of via address, and fix indentation.
5406         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5407         make generated wrappers inlineable.
5408
5409         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5410         note about using dbus_type_is_fixed.
5411
5412         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5413         dbus/dbus-signature.c as dbus_type_is_fixed.
5414
5415         All callers updated.
5416
5417         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5418         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5419
5420         * dbus/dbus-signature.h: Prototype.
5421
5422         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5423         error printf code.
5424
5425         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5426         appropriate instead of just freeing it.
5427         (main): Free returned strings using g_free.
5428
5429         * test/glib/Makefile.am (test-service-glib-glue.h)
5430         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5431
5432         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5433         simply maps a simple D-BUS type to GType.
5434         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5435         GType.
5436         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5437         initialize the value with it.
5438         (dbus_gvalue_binding_type_from_type): Unused, delete.
5439         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5440         various types instead of unmarshalling to value data directly.
5441         Remove can_convert boolean.
5442         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5443         returning directly instead of using can_convert boolean.
5444         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5445         Stores a GValue in a pointer to a value of its corresponding C
5446         type.
5447
5448         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5449         add dbus_gvalue_store.
5450
5451 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5452
5453         Fix a bunch of lifecycle and memory management problems
5454         in the mono bindings.
5455
5456         * mono/Arguments.cs (Arguments): Implement IDisposable
5457
5458         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5459         strictly a static class.
5460
5461         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5462         delegates into this file.
5463         (Connection): Implement IDisposable.
5464         (Dispose): Disconnect the connection and set the raw connection
5465         pointer to IntPtr.Zero.
5466         (~Connection): Call Dispose().
5467         (RegisterObjectPath): Added.  Manages the registration of object
5468         paths so we can cleanly disconnect them at dispose/finalize time.
5469         (UnregisterObjectPath): Ditto.
5470         (set_RawConnection): Unregister all of the object paths when
5471         changing the underlying DBusConnection.  Add them back onto the
5472         new connection, if any.
5473
5474         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5475         more unmanaged resources anymore, so it's not necessary.  Move all
5476         the DBusObjectPathVTable stuff out of here.
5477         (Handler): Save references to our delegates so that they don't get
5478         finalized.  Call Connection.RegisterObjectPath() instead of
5479         dbus_connection_register_object_path() directly.
5480         (Message_Called): Dispose the message after we're finished with
5481         it.
5482
5483         * mono/Message.cs (Message): Implement IDisposable.
5484         (Dispose): Dispose the Arguments, and set the RawMessage to
5485         IntPtr.Zero.
5486         (SendWithReplyAndBlock): We own the ref to the reply that comes
5487         back from dbus_connection_send_with_reply_and_block() so add a
5488         comment about that and unref it after we've constructed a managed
5489         MethodReturn class around it.  Fixes a big, big leak.
5490
5491         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5492         method.
5493         (BuildSignalHandler): After we've sent the Signal message, dispose
5494         of it.
5495         (BuildMethod): Dispose of the method call and reply messages after
5496         we've sent the message and extracted the data we want from the
5497         reply.
5498
5499         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5500         anymore.
5501         (Service_FilterCalled): Dispose of the message after we're
5502         finished with it.
5503
5504 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5505
5506         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5507         After we attach our pending call to the connection, unref
5508         it.  Fixes a leak.
5509  
5510         * mono/Connection.cs (set_RawConnection): Disconnect our
5511         filter and match callbacks from the old connection and
5512         reconnect them to the new connection, if any.
5513
5514         * mono/DBusType/Array.cs: "Code" is a static member, so
5515         don't use "this" to refer to it.  Fix for stricter checking
5516         in Mono 1.1.4.
5517  
5518         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5519         object path that we pass into unmanaged code.
5520  
5521         * mono/DBusType/String.cs (Append): Don't leak the string
5522         that we pass into unmanged code.
5523
5524 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5525         * NEWS: Update for 0.31
5526
5527         * configure.in: Release 0.31
5528         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5529
5530         * qt/Makefile.am: fixed build
5531
5532         * dbus/Makefile.am: soname bump for libdbus
5533
5534         * glib/Makefile.am: soname bump for libdbus-glib
5535
5536 2005-03-05  Havoc Pennington  <hp@redhat.com>
5537
5538         * dbus/dbus-sysdeps.c:
5539         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5540         value
5541         (_dbus_generate_random_bytes_buffer): fix return value
5542
5543         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5544         checks actually work, from Tom Parker <fdo@tevp.net>
5545
5546 2005-03-01  Colin Walters  <walters@verbum.org>
5547
5548         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5549         functions copied from dbus-glib-tool.c.
5550         (main): Convert lots of error code to use them.
5551         Also add some testing for introspection bits.
5552
5553 2005-03-01  Colin Walters  <walters@verbum.org>
5554         
5555         * doc/TODO: Remove introspection signature TODO.
5556
5557 2005-02-27  Colin Walters  <walters@verbum.org>
5558
5559         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5560         Change return value to const char * instead of int so we can do
5561         full signatures.
5562         (struct PropertyInfo, struct ArgInfo): Store char *.
5563         (property_info_new, arg_info_new): Update parameters, strdup.
5564         (property_info_unref, arg_info_unref): Free.
5565
5566         * glib/dbus-gidl.h: Update prototypes.
5567
5568         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5569         (validate_signature): New function, just validates signature and
5570         sets GError.
5571         (parse_property, parse_arg): Invoke validate_signature.  Store
5572         signature instead of just type code.
5573
5574         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5575         function to return a primary type for a signature, dropping
5576         information about types in container types.
5577         (dbus_gvalue_genmarshal_name_from_type)
5578         (dbus_gvalue_binding_type_from_type)
5579         (dbus_gvalue_ctype_from_type): Update to take full signature
5580          instead of type code.
5581         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5582
5583         * glib/dbus-gvalue.h: Update prototypes for above.
5584
5585         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5586         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5587         (introspect_properties, introspect_signals, write_interface):
5588         Update to handle signatures, and remove usage of
5589         _dbus_gutils_type_to_string.
5590         (handle_introspect): Print out type codes instead of e.g. "string"
5591         in hardcoded introspection XML; also use x_AS_STRING constants
5592         instead of hardcoding in string.
5593
5594         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5595         to string.  Remove usage of _dbus_gutils_type_to_string.
5596
5597         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5598
5599         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5600         deletion.
5601         
5602         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5603         (compute_marshaller_name, generate_glue): Handle signature change
5604         to string.
5605         (write_formal_parameters, write_args_for_direction): Ditto, and
5606         remove FIXME.
5607
5608         * tools/dbus-tree-view.c (type_to_string): Delete.
5609         (info_set_func_text): Update to print full signatures.
5610
5611         * test/glib/test-service-glib.xml: Change types to new
5612         introspection format.
5613
5614 2005-02-26  Havoc Pennington  <hp@redhat.com>
5615
5616         * doc/TODO: remove the "guid" item
5617
5618         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5619         (with_bus_thread_func): use open_private
5620
5621         * dbus/dbus-connection.c (dbus_connection_open_private): new
5622         function that works like the old dbus_connection_open()
5623         (dbus_connection_open): now returns an existing connection if
5624         possible
5625
5626         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5627         through the GUID to the transport
5628
5629         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5630         GUID in hex-encoded form.
5631
5632         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5633         pass GUID argument in to the transport
5634
5635         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5636         guid argument
5637
5638         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5639
5640         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5641
5642 2005-02-25  Havoc Pennington  <hp@redhat.com>
5643
5644         * doc/dbus-specification.xml: document the GUID thing
5645
5646         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5647         globally unique ID for the server, and put a "guid=hexencoded"
5648         field in the address
5649
5650         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5651
5652         * dbus/dbus-message.c: ditto
5653
5654         * dbus/dbus-dataslot.c: ditto
5655
5656         * dbus/dbus-list.c: ditto
5657
5658         * dbus/dbus-internals.h: wait, just include
5659         dbus-threads-internal.h here
5660         
5661         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5662         use in main library
5663
5664         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5665
5666 2005-02-24  Colin Walters  <walters@verbum.org>
5667
5668         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5669
5670 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5671
5672         * glib/Makefile.am: added dbus-gobject.h to sources list
5673         so distcheck doesn't fail
5674         
5675 2005-02-24  Havoc Pennington  <hp@redhat.com>
5676
5677         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5678         you must disconnect before unref, since locking and other things
5679         are screwed up otherwise. Fix assorted other locking stuff.
5680
5681         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5682         fix compilation
5683
5684         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5685         into a private header and don't export from the library
5686
5687         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5688
5689 2005-02-24  Colin Walters  <walters@verbum.org>
5690         
5691         * dbus/dbus-signature.c: New file; implements various functions
5692         related to type signatures.  Includes an interator for parsing,
5693         validation functions.
5694         (dbus_type_is_basic): Moved here from
5695         dbus-marshal-basic.c:_dbus_type_is_basic.
5696         (dbus_type_is_container): Moved here from
5697         dbus-marshal-basic.c:_dbus_type_is_container.
5698
5699         All callers of _dbus_type_is_container and _dbus_type_is_basic
5700         updated, and include dbus-signature.h.
5701
5702         * dbus/dbus-signature.h: New file; prototypes for the above.
5703
5704         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5705         dbus-signature.h.
5706
5707         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5708         function factored out of _dbus_first_type_in_signature.
5709         (_dbus_first_type_in_signature_c_str): New function; returns first
5710         type code for a type signature character.
5711
5712         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5713         handle function moves.
5714
5715         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5716
5717         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5718         function; skips to next complete type in type signature.
5719         Implemented using previous skip_one_complete_type.  Now
5720         skip_one_complete_type just delegates to
5721         _dbus_type_signature_next.
5722
5723         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5724         to dbus-signature.c
5725         (_dbus_type_is_container): Ditto.
5726
5727         * doc/dbus-specification.xml: Update introspection sample to
5728         use real type signatures.
5729
5730         * dbus/dbus-test.h: Prototype signature test.
5731
5732         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5733         signature tests.
5734
5735         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5736
5737 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5738
5739         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5740         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5741
5742 2005-02-21  Colin Walters  <walters@verbum.org>
5743
5744         * dbus/dbus-test-main.c (main): Take optional specific test
5745         argument.
5746
5747         * dbus/dbus-test.c (run_test): New function, runs a test function
5748         with no data directory.
5749         (run_data_test): Like above, but takes data directory.
5750         (dbus_internal_do_not_use_run_tests): Take
5751         specific test argument.  Replace lots of cut n' paste code
5752         with run_test and run_data_test.
5753
5754         * dbus/dbus-test.h: Update prototype for
5755         dbus_internal_do_not_use_run_tests.
5756
5757 2005-02-20  Havoc Pennington  <hp@redhat.com>
5758
5759         Fix bugs reported by Daniel P. Berrange
5760         
5761         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5762         (protected_change_watch): new function
5763         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5764         (_dbus_server_add_watch): change to work like the
5765         dbus-connection.c equivalents; like those, probably kind of
5766         busted, but should at least mostly work for now
5767         (dbus_server_disconnect): drop the lock if we were already
5768         disconnected, patch from Daniel P. Berrange
5769
5770         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5771         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5772         same stuff
5773
5774         * doc/TODO: todo about unscrewing this mess
5775
5776 2005-02-19  Colin Walters  <walters@verbum.org>
5777
5778         * glib/dbus-binding-tool-glib.c
5779         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5780
5781         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5782         as errno.h and sys/stat.h.
5783         (lose): New function, prints error with
5784         newline and exits.
5785         (lose_gerror): Similar, but takes GError for message.
5786         (main): Add --output argument to specify output file to write to,
5787         instead of always printing to stdout.  In this mode, determine
5788         timestamps on source files to see whether any are newer than the
5789         target file.  If not, exit.  Also convert a number of error
5790         messages to use lose (since it's shorter), and switch to using
5791         g_io_channel_shutdown.
5792
5793 2005-02-19  Havoc Pennington  <hp@redhat.com>
5794
5795         * glib/dbus-gobject.c
5796         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5797
5798         * glib/dbus-glib.c: fix doxygen warnings
5799
5800         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5801         is found on an <arg>
5802
5803 2005-02-17  Colin Walters  <walters@verbum.org>
5804
5805         * glib/dbus-gobject.h: Don't export
5806         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5807         
5808         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5809         (invoke_object_method): Handle it.
5810
5811         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5812         Handle rename.
5813         
5814 2005-02-17  Colin Walters  <walters@verbum.org>
5815
5816         * bus/.cvsignore, doc/.cvsignore
5817         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5818         Update.
5819
5820 2005-02-17  Colin Walters  <walters@verbum.org>
5821         
5822         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5823         Rename to DBUS_SERVICE_DBUS.
5824         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5825         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5826         Change the value from "org.freedesktop.Local"
5827         to "org.freedesktop.DBus.Local".
5828         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5829         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5830         DBUS_INTERFACE_INTROSPECTABLE.
5831         Change the value from "org.freedesktop.Introspectable"
5832         to "org.freedesktop.DBus.Introspectable".
5833         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5834         DBUS_INTERFACE_PROPERTIES.
5835         Change the value from "org.freedesktop.Properties"
5836         to "org.freedesktop.DBus.Properties".
5837         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5838         DBUS_INTERFACE_PEER.
5839         Change the value from "org.freedesktop.Peer"
5840         to "org.freedesktop.DBus.Peer".
5841         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5842         DBUS_INTERFACE_LOCAL.
5843         Change the value from "org.freedesktop.Local"
5844         to "org.freedesktop.DBus.Local".
5845
5846         All other users of those constants have been changed.
5847
5848         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5849
5850         * glib/dbus-gobject.c (handle_introspect): Use constants.
5851
5852         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5853
5854 2005-02-17  Colin Walters  <walters@verbum.org>
5855
5856         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5857         (parse_node, parse_interface, parse_method, parse_signal)
5858         (parse_property, parse_annotation): Lose if we're currently in an
5859         annotation.
5860         (parse_annotation): New function.
5861         (parser_start_element, parser_end_element): Handle annotation.
5862         (parse_method, parse_interface): Remove support for c_name attribute,
5863         switch to annotations.
5864
5865         * glib/dbus-gidl.h (interface_info_get_binding_names)
5866         (method_info_get_binding_names)
5867         (interface_info_get_binding_name, method_info_get_binding_name)
5868         (interface_info_set_binding_name, method_info_set_binding_name):
5869         Remove.
5870         (interface_info_get_annotations, method_info_get_annotations)
5871         (interface_info_get_annotation, method_info_get_annotation)
5872         (interface_info_add_annotation, method_info_add_annotation):
5873         Prototype.
5874
5875         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5876         for "bindings".
5877         (struct MethodInfo): Ditto.
5878         Straightfoward conversion of binding methods into annotation methods
5879         as prototyped.
5880
5881         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5882
5883         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5884
5885         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5886         Use new annotation API.
5887
5888         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5889         annotation element.
5890         
5891         * doc/dbus-specification.xml: Discuss introspection annotations,
5892         include list of well-known annotations.
5893
5894         * test/glib/test-service-glib.xml: Make validate against new DTD.
5895
5896 2005-02-17  Colin Walters  <walters@verbum.org>
5897
5898         This patch is based on initial work from
5899         Paul Kuliniewicz <kuliniew@purdue.edu>.
5900
5901         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5902         initialization of GValue from dbus type to here.
5903         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5904         for the "glib-genmarshal" program from a DBus type.
5905         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5906         into the C name for it we use in the glib bindings.
5907         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5908         glib C type (not GValue).
5909         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5910
5911         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5912         from dbus-gobject.c.
5913
5914         * glib/dbus-gutils.h: Prototype it.
5915
5916         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5917         (marshal_dbus_message_to_g_marshaller): Use new shared function
5918         dbus_glib_marshal_dbus_message_to_gvalue_array.
5919
5920         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5921         Will be changed once we have annotations.
5922
5923         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5924         GStaticRWLock.  Callers updated.
5925         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5926         (string_table_next): New function for iterating over zero-terminated
5927         string value array.
5928         (string_table_lookup): New function; retrieves specific entry in
5929         array.
5930         (get_method_data): New function; look up method data in object data chunk.
5931         (object_error_domain_prefix_from_object_info)
5932         (object_error_code_from_object_info): New functions, but not implemented yet.
5933         (method_interface_from_object_info): New function; retrieve interface name.
5934         (method_name_from_object_info): New function; retrieve method name.
5935         (method_arg_info_from_object_info): New function; retrieve argument data.
5936         (arg_iterate): New function; iterates over serialized argument data.
5937         (method_dir_signature_from_object_info): New function; returns a
5938         GString holding type signature for arguments for just one
5939         direction (input or output).
5940         (method_input_signature_from_object_info)
5941         (method_output_signature_from_object_info): New functions.
5942         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5943         converts dbus message arguments into a GValue array.  Used for both
5944         signal handling and method invocation.
5945         (struct DBusGlibWriteIterfaceData): New utility structure.
5946         (write_interface): New function; generate introspection XML for
5947         an interface.
5948         (introspect_interfaces): New function; gathers all interface->methods,
5949         generates introspection XML for them.
5950         (handle_introspect): Invoke introspect_interfaces.
5951         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5952         (lookup_object_and_method): New function; examines an incoming message
5953         and attempts to match it up (via interface, method name, and argument
5954         signature) with a known object and method.
5955         (gerror_domaincode_to_dbus_error_name): New function; converts a
5956         GError domain and code into a DBus error name.  Needs GError data
5957         added to object introspection to work well.
5958         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5959         GError.
5960         (invoke_object_method): New function to invoke an object method
5961         looked up via lookup_object_and_method.  Parses the incoming
5962         message, turns it into a GValue array, then invokes the marshaller
5963         specified in the DBusGMethodInfo.  Creates a new message with
5964         either return values or error message as appropriate.
5965         (gobject_message_function): Invoke lookup_object_and_method and
5966         invoke_object_method.
5967
5968         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5969         (enum DBusBindingOutputMode): New enum for binding output modes.
5970         (pretty_print): Print binding names.
5971         (dbus_binding_tool_error_quark): GError bits.
5972         (version): Fix typo.
5973         (main): Create GIOChannel for output.  Parse new --mode argument,
5974         possible values are "pretty-print", "glib-server", "glib-client".
5975         Use mode to invoke appropriate function.
5976         
5977         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5978
5979         * glib/dbus-glib-tool.h: New header, just includes GError bits
5980         for now.
5981
5982         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5983         maps binding style to name.
5984         (struct MethodInfo): Ditto.
5985         (get_hash_keys, get_hash_key): Utility function, returns keys for
5986         a GHashTable.
5987         (interface_info_new, method_info_new): Initialize bindings.
5988         (interface_info_unref, method_info_unref): Destroy bindings.
5989         (method_info_get_binding_names, method_info_get_binding_name)
5990         (interface_info_get_binding_names, interface_info_get_binding_name):
5991         Functions for retrieving binding names.
5992         (method_info_set_binding_name, interface_info_set_binding_name):
5993         Functions for setting binding names.
5994
5995         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5996         for glib binding generation.
5997
5998         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5999         and client-side glib glue generation.
6000
6001         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6002         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6003         dbus-glib-tool.h.
6004
6005         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6006         of using GClosureMarshal directly.
6007         (struct DBusGObjectInfo): Add n_infos member.
6008
6009         * test/glib/test-service-glib.xml: New file; contains introspection data
6010         for MyTestObject used in test-service-glib.c.
6011
6012         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6013         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6014         (my_object_uppercase, my_object_many_args): New test methods.
6015         (main): Use dbus_g_object_class_install_info to include generated object
6016         info.
6017
6018         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6019         as well as client-side bindings.
6020
6021         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6022         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6023         using both the dbus_gproxy stuff directly as well as the generated bindings.
6024
6025 2005-02-15  Havoc Pennington  <hp@redhat.com>
6026
6027         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6028         complete a pending call, don't run filters first.
6029
6030         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6031         dbus_pending_call_steal_reply
6032
6033         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6034         _dbus_connection_block_pending_call
6035         (dbus_pending_call_get_reply): change to steal_reply and return a
6036         ref
6037
6038         * dbus/dbus-connection.c
6039         (dbus_connection_send_with_reply_and_block): port to work in terms
6040         of DBusPendingCall
6041         (_dbus_connection_block_pending_call): replace block_for_reply
6042         with this
6043
6044 2005-02-14  Havoc Pennington  <hp@redhat.com>
6045
6046         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6047         properly handle looking up group information by name; fix 
6048         from j@bootlab.org
6049
6050 2005-02-13  Havoc Pennington  <hp@redhat.com>
6051
6052         * dbus/dbus-connection.c (dbus_connection_return_message) 
6053         (dbus_connection_borrow_message): hold dispatch lock while message
6054         is outstanding
6055         (_dbus_connection_block_for_reply): hold dispatch lock while we
6056         block for the reply, so nobody steals our reply
6057         (dbus_connection_pop_message): hold the dispatch lock while we
6058         pluck the message
6059
6060 2005-02-13  Havoc Pennington  <hp@redhat.com>
6061
6062         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6063         (_dbus_connection_release_dispatch)
6064         (_dbus_connection_acquire_io_path)
6065         (_dbus_connection_release_io_path): make the mutex and condvar
6066         control access to the "acquired" flag. Drop the connection lock
6067         while waiting on the condvar. Hopefully these are baby steps in
6068         roughly the right direction.
6069
6070 2005-02-13  Havoc Pennington  <hp@redhat.com>
6071
6072         * dbus/dbus-connection.c: use separate mutexes for the condition
6073         variables; this is some kind of baseline for sanity, but the
6074         condition variables still aren't used correctly afaict
6075
6076 2005-02-13  Havoc Pennington  <hp@redhat.com>
6077
6078         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6079         fix a double-unlock
6080
6081         * dbus/dbus-connection.c
6082         (_dbus_connection_detach_pending_call_unlocked): add this
6083
6084         Initial semi-correct pass through to fix thread locking; there are
6085         still some issues with the condition variable paths I'm pretty
6086         sure
6087         
6088         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6089         lock/unlock calls
6090
6091         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6092         rename to add _unlocked
6093         (struct DBusConnection): move "dispatch_acquired" and
6094         "io_path_acquired" to use only one bit each.
6095         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6096         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6097         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6098         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6099         (_dbus_connection_remove_timeout) 
6100         (_dbus_connection_toggle_timeout): drop lock when calling out to
6101         user functions; done in a hacky/bad way.
6102         (_dbus_connection_send_and_unlock): add a missing unlock
6103         (_dbus_connection_block_for_reply): add a missing unlock
6104
6105         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6106         drop lock in a hacky probably unsafe way to call out to user
6107         function
6108
6109 2005-02-12  Havoc Pennington  <hp@redhat.com>
6110
6111         * tools/dbus-tree-view.c (info_set_func_text): display more
6112         details on args
6113
6114         * bus/driver.c (bus_driver_handle_list_services): list the bus
6115         driver
6116
6117         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6118
6119         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6120         (method_info_get_n_args): new function
6121
6122 2005-02-12  Havoc Pennington  <hp@redhat.com>
6123
6124         * bus/driver.c (bus_driver_handle_introspect): add introspection
6125         for bus driver
6126
6127 2005-02-12  Havoc Pennington  <hp@redhat.com>
6128
6129         * bus/driver.c: put the signature of each bus driver method in the
6130         table of handlers and check it on incoming calls; this isn't
6131         really useful, but going to add introspect support in a minute.
6132
6133 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6134
6135         * mono/Connection.cs: The unpredictability of finalizers in mono
6136         prevents us from deterministically disconnecting the filters from
6137         the Service class's finalizer, so move tracking of filters and
6138         matches here.  Add API for that.
6139
6140         * mono/Service.cs: Remove the code, add code which calls the
6141         methods now on the Connection class.
6142
6143 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6144
6145         * python/dbus.py (class Sender): added to support dbus signals better
6146         (Bus::add_signal_receiver): added expand_args parameter which defaults
6147         to True.  When expand args is True the signal handler will pass the 
6148         message arguments as parameters to the signal handler.  If False
6149         revert to previous behavior where the signal handler must get the
6150         argument list from the message.  This is to help port applications
6151         like HAL that have a tendancy to send variable length argument lists.
6152         self._match_rule_to_receivers is now a dict of dicts.
6153         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6154         removing it from a list
6155         (Bus::_signal_func): change signal handlers so that interface,
6156         signal_name, service, path and message are packed into a Sender
6157         object and that is passed to the handler.  If expand_args is True
6158         extract the args list from the message and append it to the parameter
6159         list
6160         
6161         * python/dbus_bindings.pyx.in (class Signature): added to support 
6162         signiature types
6163         (MessageIter::__init__): changed iteration limit to match D-BUS
6164         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6165         STRUCT and VARIENT type support
6166         (MessageIter::python_value_to_dbus_sig): made recursive to support
6167         recursive types
6168         (MessageIter::append*): added Signature, dict, tuple 
6169         support
6170
6171         * python/examples/example-client.py: added examples of getting tuples
6172         and dicts
6173
6174         * python/examples/example-service.py: added examples of sending tuples
6175         and dicts
6176
6177         * python/examples/example-signal-recipient.py: Fixed to handle new
6178         signal callback format
6179
6180 2005-02-10  Havoc Pennington  <hp@redhat.com>
6181
6182         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6183         (call dbus_g_proxy_add_signal)
6184
6185         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6186         escape the hostname
6187         (_dbus_server_new_for_domain_socket): escape the path
6188
6189         * dbus/dbus-address.c (dbus_address_escape_value): new
6190         (dbus_address_unescape_value): new
6191         (dbus_parse_address): unescape values
6192
6193         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6194
6195         * doc/dbus-specification.xml: explain how to escape values in
6196         addresses
6197
6198 2005-02-10  Havoc Pennington  <hp@redhat.com>
6199
6200         * dbus/dbus-message-factory.c (generate_special): modify test to
6201         avoid using a non-basic dict key
6202
6203         * dbus/dbus-marshal-validate-util.c: add test for the below
6204
6205         * doc/dbus-specification.xml: require that dict keys are a basic
6206         type
6207
6208         * dbus/dbus-marshal-validate.c
6209         (_dbus_validate_signature_with_reason): require that dict key is a
6210         basic type
6211
6212 2005-02-10  Havoc Pennington  <hp@redhat.com>
6213
6214         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6215         change to be _and_unlock instead of _unlocked
6216
6217         * dbus/dbus-connection.c
6218         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6219         have no_update so we can find this bug quickly in future
6220
6221 2005-02-10  Havoc Pennington  <hp@redhat.com>
6222
6223         * dbus/dbus-message-util.c (verify_test_message): tests for string
6224         array
6225
6226         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6227         support for arrays of string/signature/path
6228
6229 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6230
6231         * dbus/dbus-connection.c
6232         (_dbus_connection_queue_received_message_link,
6233         _dbus_connection_message_sent): Add the path to
6234         the verbose output.
6235         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6236         _dbus_connection_send_preallocated_unlocked(), updated the
6237         dispatch status, and unlocks.  Fixes a bug where certain
6238         situations (like a broken pipe) could cause a Disconnect message
6239         to not be sent, tricking the bus into thinking a service was still
6240         there when the process had quit.
6241         (_dbus_connection_send_preallocated): Call
6242         _dbus_connection_send_preallocated_and_unlock().
6243         (_dbus_connection_send_and_unlock): Added.  Calls
6244         _dbus_connection_send_preallocated_and_unlock().
6245         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6246         (dbus_connection_send_with_reply): Update the dispatch status and
6247         unlock.
6248
6249         * mono/Service.cs (~Service): Added.  Removes the filter so that
6250         we don't get unmanaged code calling back into a GCed delegate.
6251         (RemoveFilter); Added.
6252
6253 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6254
6255         * dbus/dbus-message.c (dbus_message_iter_open_container):
6256         - Removed check for iterator type being an array because
6257         get_arg_type does not work with writer iterators
6258         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6259
6260 2005-02-07  Havoc Pennington  <hp@redhat.com>
6261
6262         * doc/dbus-specification.xml: some more language cleanups; add
6263         stuff about how to deal with invalid protocol and extension
6264         points; add _ to allowed chars in auth commands; add EXTENSION_
6265         auth command prefix
6266
6267 2005-02-06  Havoc Pennington  <hp@redhat.com>
6268
6269         * s/expected/required/ in a couple places for clarity
6270
6271 2005-02-07  Colin Walters  <walters@verbum.org>
6272
6273         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6274         sender or proposed_recipient.
6275
6276 2005-02-06  Havoc Pennington  <hp@redhat.com>
6277
6278         * dbus/dbus-message-factory.c (generate_special): more tests
6279
6280         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6281         array length that exceeds the maximum
6282
6283 2005-02-05  Havoc Pennington  <hp@redhat.com>
6284
6285         * dbus/dbus-message-factory.c (generate_special): more test cases,
6286         increasing coverage
6287
6288         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6289         reason why a signature was invalid
6290
6291         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6292         skip the length of the string before we look at it in validation
6293
6294         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6295         equal_substring
6296
6297         * dbus/dbus-message.c (_dbus_message_loader_new): default
6298         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6299
6300 2005-02-05  Havoc Pennington  <hp@redhat.com>
6301
6302         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6303         if the signature of a variant was empty
6304         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6305         struct with no element type)
6306
6307         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6308         mangled messages to break things
6309
6310 2005-02-04  Havoc Pennington  <hp@redhat.com>
6311
6312         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6313         g_quark_try_string() so it actually can return 0
6314         (dbus_g_proxy_connect_signal): ditto
6315
6316 2005-02-04  Havoc Pennington  <hp@redhat.com>
6317
6318         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6319         bogus warning
6320         (tristring_from_message): assert cleanly on null path/interface
6321         (should not be possible though I decided later)
6322         (dbus_g_proxy_dispose): move proxy manager unregistration here
6323         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6324         g_return_if_fail() checks
6325
6326 2005-02-04  Havoc Pennington  <hp@redhat.com>
6327
6328         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6329
6330         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6331         (with some minor changes)
6332
6333         * doc/dbus-specification.xml: add deprecated attribute to
6334         introspection format
6335
6336 2005-01-31  Havoc Pennington  <hp@redhat.com>
6337
6338         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6339         think it's sort of right
6340
6341 2005-01-30  Havoc Pennington  <hp@redhat.com>
6342
6343         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6344
6345 2005-01-30  Havoc Pennington  <hp@redhat.com>
6346
6347         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6348
6349         * autogen.sh: change to autotools 1.9
6350
6351         * glib/dbus-gproxy.c: completely change how signals work
6352         (dbus_g_proxy_add_signal): new function to specify signature of a
6353         signal
6354         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6355         and g_warning if the incoming message has the wrong signature.
6356
6357 2005-01-30  Havoc Pennington  <hp@redhat.com>
6358
6359         * tools/dbus-names-model.c (have_names_notify): fix this
6360
6361         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6362         up the string array handling a bit 
6363
6364 2005-01-30  Havoc Pennington  <hp@redhat.com>
6365
6366         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6367         (dbus_g_pending_call_cancel): new function
6368
6369         * dbus/dbus-glib.h: move GType decls for connection/message here;
6370         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6371         here, just kind of rationalizing how we handle all that
6372
6373         * tools/dbus-names-model.c: new file for a tree model listing the
6374         services on a bus
6375
6376         * tools/dbus-tree-view.c (model_new): use proper typing on the
6377         model rows
6378
6379 2005-01-30  Havoc Pennington  <hp@redhat.com>
6380
6381         * glib/dbus-gmain.c: add a custom GSource back that just checks
6382         whether the message queue has anything in it; otherwise, there are 
6383         cases where we won't see messages in the queue since there was no 
6384         IO visible to the glib main loop
6385
6386         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6387         increase default message timeout to 25 seconds
6388
6389 2005-01-30  Havoc Pennington  <hp@redhat.com>
6390
6391         * test/glib/test-profile.c (no_bus_stop_server): remove the
6392         warning about the g_warning that I just fixed
6393
6394         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6395         custom source, seems to be a lot easier to understand and work
6396         better.
6397
6398 2005-01-30  Havoc Pennington  <hp@redhat.com>
6399
6400         I think this main loop thing is conceptually broken, but here are 
6401         some band aids. I'll maybe rewrite it in a minute.
6402         
6403         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6404         custom GSource, so don't pass it in; confusing
6405         (gsource_server_finalize, gsource_connection_finalize): add
6406         finalize handlers that remove all the watches.  
6407
6408 2005-01-30  Havoc Pennington  <hp@redhat.com>
6409
6410         * glib/dbus-gobject.c (introspect_properties): fix the XML
6411         generated
6412
6413         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6414         which effectively detects the use of freed messages
6415
6416         * glib/dbus-gobject.c (handle_introspect): modify and return the
6417         reply message instead of the incoming message
6418
6419         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6420         gee, maybe it should SEND THE XML instead of just making a string
6421         and freeing it again ;-)
6422
6423         * tools/dbus-print-message.c (print_message): improve printing of
6424         messages
6425
6426         * configure.in: add debug-glib.service to the output
6427
6428 2005-01-30  Havoc Pennington  <hp@redhat.com>
6429
6430         dbus-viewer introspected and displayed the bus driver
6431         
6432         * dbus/dbus-object-tree.c 
6433         (object_tree_test_iteration): add tests for a handler registered on "/"
6434
6435         * dbus/dbus-object-tree.c
6436         (_dbus_decompose_path): fix to handle path "/" properly
6437         (run_decompose_tests): add tests for path decomposition
6438         
6439         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6440         properly
6441
6442         * glib/dbus-gobject.c (handle_introspect): fix quotes
6443
6444         * test/glib/run-test.sh: support launching the bus, then running
6445         dbus-viewer
6446
6447         * test/glib/test-service-glib.c (main): put in a trivial gobject
6448         subclass and register it on the connection
6449
6450         * bus/driver.c (bus_driver_handle_introspect): implement
6451         introspection of the bus driver service
6452
6453         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6454         identifiers, doctype decl
6455
6456         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6457         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6458         returning the service unchanged.
6459         (bus_driver_handle_message): remove old check for reply_serial in
6460         method calls, now the message type deals with that
6461         (bus_driver_handle_message): handle NULL interface
6462
6463         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6464
6465         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6466         -1 for len
6467
6468         * tools/dbus-viewer.c: add support for introspecting a service on
6469         a bus
6470
6471         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6472         (dbus_g_pending_call_unref): add
6473
6474 2005-01-29  Havoc Pennington  <hp@redhat.com>
6475
6476         * tools/dbus-tree-view.c: add support for displaying properties.
6477         (run dbus-viewer with an introspect xml file as arg, then resize
6478         the window so the tree elements show up, not sure what that is)
6479
6480         * glib/dbus-gobject.c (handle_introspect): return
6481         org.freedesktop.Properties and org.freedesktop.Introspectable
6482         interfaces when we are introspected.
6483
6484         * doc/dbus-specification.xml: allow empty interface name when 
6485         Get/Set a property
6486
6487 2005-01-29  Havoc Pennington  <hp@redhat.com>
6488
6489         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6490         though it uses glib, it could be extended for any binding in
6491         principle
6492
6493         * glib/dbus-gobject.c (gobject_message_function): change to the
6494         new way properties work
6495
6496         * dbus/dbus-protocol.h: add the new interfaces
6497
6498         * doc/dbus-specification.xml: document the introspection format,
6499         Introspectable interface, and add an org.freedesktop.Properties
6500         interface.
6501
6502         * glib/dbus-gparser.c: add support for a <property> element
6503
6504         * glib/dbus-gidl.c: add PropertyInfo
6505
6506         * glib/dbus-gobject.c (handle_introspect): put the outermost
6507         <node> outside the signal and property descriptions.
6508         (introspect_properties): export properties as <property> rather
6509         than as method calls
6510
6511 2005-01-28  Havoc Pennington  <hp@redhat.com>
6512
6513         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6514         related to authentication protocol
6515
6516 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6517
6518         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6519                 - BUS_ACTIVATION -> BUS_STARTER
6520                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6521                 - class MessageIter (__init__): Added recursion checking 
6522                 so we throw a nice error instead of just disconnecting from the
6523                 bus.
6524                 (get): Added arg_type parameter for recursion.
6525                 Removed the nil type
6526                 Added signiture type placeholder (not implemented)
6527                 Added struct type placeholder (not implemented)
6528                 Added varient type placeholder (not implemented)
6529                 Commented out dict type for now     
6530                 (get_element_type): renamed from get_array_type
6531                 (get_*): changed to use the dbus_message_iter_get_basic API
6532                 (get_*_array): removed in favor of recursive get_array method
6533                 (get_array): new recursive method which calls get to marshal
6534                 the elements of the array
6535                 (value_to_dbus_sig): New method returns the corrasponding
6536                 dbus signiture to a python value
6537                 (append): Comment out dict handling for now
6538                 Handle lists with the new recursive API
6539                 Comment out None handling for now
6540                 (append_nil): removed
6541                 (append_*): changed to use dbus_message_iter_append_basic API
6542                 (append_*_array): removed in favor of recursive append_array 
6543                 method
6544                 (__str__): Make it easier to print out recursive iterators
6545                 for debugging
6546                 - class Message (__str__): moved type inspection to the
6547                 MessageIter class' __str__ method
6548                 (get_iter): Added an append parameter wich defaults to False
6549                 If True use the new API's to create an append iterator
6550
6551         * python/dbus.py: Update to use new bindings API
6552                 - TYPE_ACTIVATION -> TYPE_STARTER
6553                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6554                 - class ActivationBus -> class StarterBus
6555                 - class RemoteObject (__call__): get an append iterator
6556                 - (_dispatch_dbus_method_call): get an append iterator
6557                 - class Object (emit_signal): get an append iterator
6558
6559         * python/examples/: Fixed up the examples to work with the new API
6560                 
6561 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6562
6563         * configure.in: Bump version up to 0.30.
6564
6565         * HACKING: Add a release item to bump the version number up after 
6566         a release.
6567
6568 2005-01-28  Havoc Pennington  <hp@redhat.com>
6569
6570         * doc/dbus-specification.xml: update to describe 16-bit types and
6571         dict entries
6572
6573         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6574         assertion
6575
6576         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6577         type
6578
6579         * dbus/dbus-marshal-recursive.c: implement
6580
6581 2005-01-27  Havoc Pennington  <hp@redhat.com>
6582
6583         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6584
6585         * configure.in: find the right type for 16 and 32 bit ints as well
6586         as 64
6587
6588         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6589         the 16-bit types so people don't have to stuff them in 32-bit or
6590         byte arrays.
6591
6592 2005-01-27  Havoc Pennington  <hp@redhat.com>
6593
6594         * dbus/dbus-message.c: byteswap the message if you init an
6595         iterator to read/write from it
6596         
6597         * dbus/dbus-marshal-byteswap.c: new file implementing 
6598         _dbus_marshal_byteswap()
6599
6600         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6601
6602 2005-01-26  Havoc Pennington  <hp@redhat.com>
6603         
6604         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6605         build, apparently - nobody noticed?)
6606         
6607 2005-01-26  Havoc Pennington  <hp@redhat.com>
6608
6609         * dbus/dbus-marshal-recursive.h: remove todo comment
6610
6611 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6612
6613         * Land the mono binding changes to conform to the new APIs.
6614
6615         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6616         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6617
6618         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6619         type code as a string.
6620         (InitAppending): Rename dbus_message_append_iter_init() to
6621         dbus_message_iter_init_append().
6622
6623         * mono/BusDriver.cs: Rename ServiceEventHandler to
6624         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6625         Rename ServiceOwnerChanged to NameOwnerChanged.
6626
6627         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6628         underlying C call.
6629
6630         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6631
6632         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6633         dbus_bus_acquire_service() to dbus_bus_request_name().
6634
6635         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6636         of Type.UnderlyingSystemType to get the correct element type for
6637         the array.
6638         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6639         dbus_message_get_{element|arg}_type() instead of
6640         dbus_message_iter_init_array_iterator().
6641         (Append): Replace dbus_message_iter_append_array() with
6642         dbus_message_iter_open_container() and
6643         dbus_message_iter_close_container().
6644
6645         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6646         types have been removed.
6647         
6648         * mono/DBusType/*.cs: Replace calls of
6649         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6650         but specify the type in the DllImport extern declaration.  Ditto
6651         for dbus_message_iter_append_[type]() ->
6652         dbus_message_iter_append_basic().
6653
6654         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6655         NameOwnerChangedHandler.
6656
6657 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6658
6659         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6660                 - get_base_service -> get_unique_name
6661                 - bus_get_base_service -> bus_get_unique_name
6662                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6663                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6664                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6665                 - bus_activate_service -> bus_start_service_by_name
6666                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6667                 - bus_acquire_service -> bus_request_name
6668                 - dbus_bus_acquire_service -> dbus_bus_request_name
6669                 - bus_service_exists -> bus_name_has_owner
6670                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6671
6672         * python/dbus.py: Rename of methods
6673                 - activate_service -> start_service_by_name
6674                 - bus_acquire_service -> bus_request_name
6675                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6676                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6677
6678         
6679 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6680
6681         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6682         signature for the method that can't be found.
6683
6684         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6685         the message has any arguments, we need to call
6686         _dbus_type_reader_get_current_type(), not
6687         _dbus_type_reader_has_next().
6688
6689 2005-01-24  Havoc Pennington  <hp@redhat.com>
6690
6691         * dbus/dbus-message-factory.c: more testing of message validation
6692
6693         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6694         header
6695
6696 2005-01-23  Havoc Pennington  <hp@redhat.com>
6697
6698         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6699         get this all working, not many tests in the framework yet though
6700
6701 2005-01-22  Havoc Pennington  <hp@redhat.com>
6702
6703         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6704         tutorial, based on work from David Wheeler.
6705
6706 2005-01-21  Havoc Pennington  <hp@redhat.com>
6707
6708         * dbus/dbus-bus.c: add more return_if_fail checks
6709
6710         * dbus/dbus-message.c (load_message): have the "no validation"
6711         mode (have to edit the code to toggle the mode for now though)
6712
6713         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6714         skips all validation; I want to use this at least for benchmark
6715         baseline, I'm not sure if it should be a publicly-available switch.
6716
6717 2005-01-21  Havoc Pennington  <hp@redhat.com>
6718
6719         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6720         toplevel doxygen group as the low-level API stuff
6721
6722         * dbus/dbus.h: note that libdbus is the low-level API
6723
6724 2005-01-20  Havoc Pennington  <hp@redhat.com>
6725
6726         * update-dbus-docs.sh: script to update docs on the web site, only
6727         works for me though. neener.
6728
6729 2005-01-20  Havoc Pennington  <hp@redhat.com>
6730
6731         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6732         code can reveal bugs in it
6733
6734 2005-01-20  Havoc Pennington  <hp@redhat.com>
6735
6736         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6737         select() version, patches from Tor Lillqvist
6738
6739 2005-01-20  Havoc Pennington  <hp@redhat.com>
6740
6741         * doc/dbus-tutorial.xml: replace > with &gt;
6742
6743         * bus/services.c (bus_registry_acquire_service): validate the name
6744         and return a better error if it's no good.
6745
6746         * doc/dbus-specification.xml: note NO_AUTO_START change
6747
6748         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6749         from AUTO_START, we're toggling the default
6750
6751         * bus/dispatch.c: adapt the tests to change of auto-start default
6752
6753 2005-01-18  Havoc Pennington  <hp@redhat.com>
6754
6755         * rename dbus-daemon-1 to dbus-daemon throughout
6756
6757 2005-01-18  Havoc Pennington  <hp@redhat.com>
6758
6759         * Throughout, grand renaming to strip out the use of "service",
6760         just say "name" instead (or "bus name" when ambiguous).  Did not
6761         change the internal code of the message bus itself, only the
6762         programmer-facing API and messages.
6763         
6764         * doc/dbus-specification.xml: further update the message bus section
6765         
6766         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6767         in error case
6768
6769 2005-01-17  Havoc Pennington  <hp@redhat.com>
6770
6771         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6772         ever
6773
6774         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6775         "invalid name character" not only non-ASCII
6776
6777         * doc/dbus-specification.xml: further update spec, message bus 
6778         parts are still out-of-date but the marshaling etc. stuff is now
6779         accurate-ish
6780
6781 2005-01-17  Havoc Pennington  <hp@redhat.com>
6782
6783         * doc/dbus-specification.xml: partially update spec
6784
6785 2005-01-17  Havoc Pennington  <hp@redhat.com>
6786
6787         * Throughout, align variant bodies according to the contained
6788         type, rather than always to 8. Should save a fair bit of space in
6789         message headers.
6790         
6791         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6792         fix handling of case where p == end
6793
6794         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6795
6796 2005-01-17  Havoc Pennington  <hp@redhat.com>
6797
6798         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6799
6800         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6801         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6802         are marshaling/unmarshaling a boolean.
6803
6804 2005-01-16  Havoc Pennington  <hp@redhat.com>
6805
6806         This is about it on what can be disabled/deleted from libdbus
6807         easily, back below 150K anyhow. Deeper cuts are more work than 
6808         just turning the code off as I've done here.
6809         
6810         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6811         signed int convenience funcs
6812
6813         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6814         verbose mode
6815
6816         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6817         things out of libdbus
6818
6819         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6820         
6821         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6822         tests-enabled-only, though it should probably be deleted)
6823
6824         * dbus/dbus-message-util.c: same stuff
6825
6826         * dbus/dbus-auth-util.c: same stuff
6827
6828 2005-01-16  Havoc Pennington  <hp@redhat.com>
6829
6830         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6831
6832         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6833         way for stripping down dbus-userdb.c stuff included in libdbus.
6834         Rename _dbus_parse_uid for consistency.
6835
6836 2005-01-16  Havoc Pennington  <hp@redhat.com>
6837
6838         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6839         name the assertion failed in
6840
6841         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6842         (_dbus_return_val_if_fail): assert that the name of the function
6843         containing the check doesn't start with '_', since we only want to 
6844         use checks on public functions
6845         
6846         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6847         checks to assertions
6848
6849         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6850         change checks to asserts for private function
6851
6852         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6853         to asserts for private function
6854
6855         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6856         broken assertion that was breaking make check
6857         (_dbus_type_reader_array_is_empty): remove this rather than fix
6858         it, was only used in assertions
6859
6860 2005-01-16  Havoc Pennington  <hp@redhat.com>
6861
6862         * test/unused-code-gc.py: hacky script to find code that's used
6863         only by the bus (not libdbus) or used only by tests or not used at
6864         all. It has some false alarms, but looks like we can clean up a
6865         lot of size from libdbus.
6866
6867         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6868         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6869         
6870 2005-01-16  Havoc Pennington  <hp@redhat.com>
6871
6872         * Add and fix docs according to Doxygen warnings throughout
6873         source.
6874         
6875         * dbus/dbus-marshal-recursive.c
6876         (_dbus_type_reader_array_is_empty): change this to just call
6877         array_reader_get_array_len() and make it static
6878
6879         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6880         from get_array_type
6881         (dbus_message_iter_init_append): rename from append_iter_init
6882
6883         * dbus/dbus-marshal-recursive.c
6884         (_dbus_type_reader_get_element_type): rename from
6885         _dbus_type_reader_get_array_type
6886
6887 2005-01-15  Havoc Pennington  <hp@redhat.com>
6888
6889         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6890
6891         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6892         when DBUS_DISABLE_ASSERT
6893         (_dbus_marshal_set_basic): be sure we align for the string length
6894
6895         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6896         this look faster
6897
6898         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6899         inline macro version
6900         (_dbus_string_set_byte): provide inline macro version
6901
6902 2005-01-15  Havoc Pennington  <hp@redhat.com>
6903
6904         * Land the new message args API and type system.
6905
6906         This patch is huge, but the public API change is not 
6907         really large. The set of D-BUS types has changed somewhat, 
6908         and the arg "getters" are more geared toward language bindings;
6909         they don't make a copy, etc.
6910
6911         There are also some known issues. See these emails for details
6912         on this huge patch:
6913         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6914         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6915         
6916         * dbus/dbus-marshal-*: all the new stuff
6917
6918         * dbus/dbus-message.c: basically rewritten
6919
6920         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6921         freed blocks to be all non-nul bytes so using freed memory is less
6922         likely to work right
6923
6924         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6925         DBUS_FAIL_MALLOC=N environment variable, so you can do
6926         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6927         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6928         thorough.
6929
6930         * qt/message.cpp: port to the new message args API
6931         (operator<<): use str.utf8() rather than str.unicode()
6932         (pretty sure this is right from the Qt docs?)
6933
6934         * glib/dbus-gvalue.c: port to the new message args API
6935
6936         * bus/dispatch.c, bus/driver.c: port to the new message args API
6937
6938         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6939         "locked" flag to TRUE and align_offset to 0; I guess we never
6940         looked at these anyhow, but seems cleaner.
6941
6942         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6943         move allocation padding macro to this header; use it to implement
6944         (_DBUS_STRING_STATIC): ability to declare a static string.
6945
6946         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6947         change to return TRUE if the interface is not set.
6948
6949         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6950         to dbus-marshal-validate.[hc]
6951
6952         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6953         dbus-internals.c
6954
6955         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6956         to dbus-marshal-*.[hc]
6957
6958         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6959         function here from dbus-marshal.c
6960
6961 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6962
6963         * NEWS: Update for 0.23.
6964
6965         * configure.in: Release 0.23.
6966
6967 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6968
6969         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6970         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6971         behind.
6972
6973         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6974         uninstall"
6975
6976         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6977         is an enum, get the enum's underlying type.  Another mono
6978         1.1.3 fix.
6979
6980 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6981
6982         Patch from Sjoerd Simons <sjoerd@luon.net>
6983
6984         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6985         DESTDIR.  It breaks stuff.
6986
6987 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6988
6989         Patch from Tambet Ingo <tambet@ximian.com>
6990
6991         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6992         calling type.GetElementType().  The code previously depended on
6993         broken Mono behavior, which was fixed in Mono 1.1.3.
6994
6995         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6996         Activator.CreateInstance() so that the class's constructor is
6997         called with the right parameters.
6998
6999 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7000
7001         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7002
7003         * dbus/dbus-connection.c
7004         (_dbus_connection_queue_received_message_link): Call
7005         _dbus_connection_remove_timeout() instead of the _locked()
7006         variant, since it's always called from
7007         _dbus_connection_handle_watch(), which handles the locking.
7008         Removed the _locked() variant since it's no longer used.
7009
7010 2005-01-03  Havoc Pennington  <hp@redhat.com>
7011
7012         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7013         return
7014         
7015 2004-12-26  Havoc Pennington  <hp@redhat.com>
7016
7017         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7018
7019 2005-01-03  Havoc Pennington  <hp@redhat.com>
7020
7021         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7022         floating point
7023
7024         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7025
7026 2005-01-02  Havoc Pennington  <hp@redhat.com>
7027
7028         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7029
7030 2005-01-01  Havoc Pennington  <hp@redhat.com>
7031
7032         * configure.in: add -Wfloat-equal
7033
7034 2005-01-01  Havoc Pennington  <hp@redhat.com>
7035
7036         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7037         for a variety of reasons '==' doesn't do this.
7038
7039 2004-12-31  Havoc Pennington  <hp@redhat.com>
7040
7041         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7042         I keep wishing I had
7043
7044 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7045
7046         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7047
7048 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7049
7050         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7051         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7052         dbus-protocol.h.  Because they are defines and not enums they are not
7053         autogenerated.
7054
7055 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7056
7057         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7058         dbus_bus_activate_service
7059
7060         * python/dbus.py (Bus.activate_service): activate a service on the
7061         bus.
7062
7063 2004-12-24  Havoc Pennington  <hp@redhat.com>
7064
7065         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7066         file format has also changed and I haven't adapted to that yet
7067         
7068         * Makefile.am: load .gcno files from latest gcc
7069
7070 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7071         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7072
7073         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7074         lowlevel binding
7075
7076         * python/dbus.py (get_unix_user): Added binding to 
7077         call dbus_bindings.bus_get_unix_user
7078
7079         * python/extract.py: Modified the proto_pat regex to
7080         handle unsigned long
7081
7082 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7083
7084         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7085         better POSIX compliance.
7086
7087 2004-12-19  Havoc Pennington  <hp@redhat.com>
7088
7089         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7090         (_dbus_string_insert_8_aligned): new functions
7091
7092         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7093
7094 2004-12-18  Havoc Pennington  <hp@redhat.com>
7095
7096         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7097         macro
7098
7099         * dbus/dbus-message.c: fix a comment, and add a still-unused
7100         not-implemented function
7101
7102         * dbus/dbus-marshal.h: fix comment
7103
7104         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7105
7106 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7107
7108         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7109         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7110         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7111         Type.UnderlyingSystemType to get the actual system type
7112         underneath.  This code previously depended on the broken Mono
7113         behavior, which was fixed in 1.1.3.
7114
7115 2004-11-27  Havoc Pennington  <hp@redhat.com>
7116
7117         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7118         are disabled
7119         (_dbus_string_get_const_data): inline when asserts are disabled
7120
7121         * dbus/dbus-message.c: record the _dbus_current_generation of
7122         creation so we can complain if dbus_shutdown() is used improperly.
7123         Do this only if checks are enabled.
7124
7125         * dbus/dbus-connection.c: ditto
7126         
7127 2004-11-26  Havoc Pennington  <hp@redhat.com>
7128
7129         * test/glib/test-profile.c: add with_bus mode to profile echoes
7130         that go through the bus.
7131
7132         * test/glib/run-test.sh: add ability to run test-profile
7133
7134         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7135         config file reload.
7136
7137 2004-11-26  Havoc Pennington  <hp@redhat.com>
7138
7139         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7140         thing was implemented
7141
7142 2004-11-26  Havoc Pennington  <hp@redhat.com>
7143
7144         * test/glib/test-profile.c: tweak a bit, add support for some
7145         made-up minimal malloc overhead with plain sockets, since in 
7146         real life some sort of buffers are unavoidable thus we could 
7147         count them in the theoretical best case
7148
7149 2004-11-26  Havoc Pennington  <hp@redhat.com>
7150
7151         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7152         where I was trying to cache one too many messages
7153
7154 2004-11-26  Havoc Pennington  <hp@redhat.com>
7155
7156         * dbus/dbus-message.c: reimplement message cache as an array which 
7157         makes the cache about twice as fast and saves maybe 1.5% overall
7158
7159 2004-11-26  Havoc Pennington  <hp@redhat.com>
7160
7161         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7162         message cache lock here
7163
7164 2004-11-26  Havoc Pennington  <hp@redhat.com>
7165
7166         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7167         the "char byte_order" next to each other to save 4 bytes
7168         (dbus_message_new_empty_header): reduce preallocation, since the
7169         message cache should achieve a similar effect
7170         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7171         message cache that keeps a few DBusMessage around in a pool,
7172         another 8% speedup or so.
7173
7174         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7175
7176 2004-11-25  Havoc Pennington  <hp@redhat.com>
7177
7178         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7179         to write, without reading or blocking, try it before the poll()
7180         and skip the poll() if nothing remains to write. This is about a
7181         3% speedup in the echo client/server
7182
7183 2004-11-25  Havoc Pennington  <hp@redhat.com>
7184
7185         The primary change here is to always write() once before adding
7186         the write watch, which gives us about a 10% performance increase.
7187         
7188         * dbus/dbus-transport-unix.c: a number of modifications to cope
7189         with removing messages_pending
7190         (check_write_watch): properly handle
7191         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7192         messages_pending stuff
7193         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7194         AUTHENTICATED cases
7195         (unix_handle_watch): after writing, see if the write watch can be
7196         removed
7197         (unix_do_iteration): assert that write_watch/read_watch are
7198         non-NULL rather than testing that they aren't, since they 
7199         aren't allowed to be NULL. check_write_watch() at the end so 
7200         we add the watch if we did not finish writing (e.g. got EAGAIN)
7201
7202         * dbus/dbus-transport-protected.h: remove messages_pending call,
7203         since it resulted in too much inefficient watch adding/removing; 
7204         instead we now require that the transport user does an iteration 
7205         after queueing outgoing messages, and after trying the first
7206         write() we add a write watch if we got EAGAIN or exceeded our 
7207         max bytes to write per iteration setting
7208
7209         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7210         function
7211
7212         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7213         freed and then accessed, valgrind flagged this bug, fix it
7214
7215         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7216         as the last valid field plus 1, where really it is equal to the
7217         last valid field. Corrects some message corruption issues.
7218
7219         * dbus/dbus-mainloop.c: verbosity changes
7220
7221         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7222         instead of aborting in one of the test codepaths
7223
7224         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7225         caused not printing the pid ever again if a verbose was missing
7226         the newline at the end
7227         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7228
7229         * dbus/dbus-connection.c: verbosity changes; 
7230         (dbus_connection_has_messages_to_send): new function
7231         (_dbus_connection_message_sent): no longer call transport->messages_pending
7232         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7233         try to write() immediately, so we can avoid the write watch. This
7234         is the core purpose of this patchset
7235         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7236         dump the outgoing message queue, so nobody will get confused
7237         trying to send them or thinking stuff is pending to be sent
7238
7239         * bus/test.c: verbosity changes
7240
7241         * bus/driver.c: verbosity/assertion changes
7242
7243         * bus/dispatch.c: a bunch of little tweaks to get it working again
7244         because this patchset changes when/where you need to block.
7245
7246 2004-11-23  Havoc Pennington  <hp@redhat.com>
7247
7248         * test/glib/test-profile.c: modify to accept a plain_sockets
7249         argument in which case it will bench plain sockets instead of
7250         libdbus, for comparison purposes.
7251
7252 2004-11-22  Havoc Pennington  <hp@redhat.com>
7253
7254         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7255         threads for more time, so sysprof can get a grip on it.
7256
7257         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7258         pointless variable
7259
7260 2004-11-13  Havoc Pennington  <hp@redhat.com>
7261
7262         * test/glib/test-profile.c: fix this thing up a bit
7263
7264         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7265         preallocation sizes by a fair bit; not sure if this will be an
7266         overall performance win or not, but it does reduce reallocs.
7267
7268         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7269         the test hack that forced constant realloc if asserts are
7270         disabled, so we can profile sanely. Sprinkle in some
7271         _DBUS_UNLIKELY() which are probably pointless, but before I
7272         noticed the real performance problem I put them in.
7273         (_dbus_string_validate_utf8): micro-optimize this thing a little
7274         bit, though callgrind says it didn't help; then special-case
7275         ascii, which did help a lot; then be sure we detect nul bytes as
7276         invalid, which is a bugfix.
7277         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7278         superstition; use memset to nul the padding instead of a manual
7279         loop.
7280         (_dbus_string_get_length): inline this as a
7281         macro; it showed up in the profile because it's used for loop
7282         tests and so forth
7283
7284 2004-11-10  Colin Walters  <walters@verbum.org>
7285
7286         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7287         for extra paranoia.
7288
7289 2004-11-09  Colin Walters  <walters@verbum.org>
7290
7291         * dbus/dbus-string.c (_dbus_string_get_length): New
7292         function, writes DBusString to C buffer.
7293
7294         * dbus/dbus-string.h: Prototype it.
7295
7296         * dbus/dbus-message.c (dbus_message_type_to_string): New
7297         function, converts message type into C string.
7298
7299         * dbus/dbus-message.h: Prototype it.
7300
7301         * bus/selinux.c (bus_selinux_check): Take source pid,
7302         target pid, and audit data.  Pass audit data to
7303         avc_has_perm.
7304         (log_audit_callback): New function, appends extra
7305         audit information.
7306         (bus_selinux_allows_acquire_service): Also take
7307         service name, add it to audit data.
7308         (bus_selinux_allows_send): Also take message
7309         type, interface, method member, error name,
7310         and destination, and add them to audit data.
7311         (log_cb): Initialize func_audit.
7312         
7313         * bus/selinux.h (bus_selinux_allows_acquire_service)
7314         (bus_selinux_allows_send): Update prototypes 
7315
7316         * bus/services.c (bus_registry_acquire_service): Pass
7317         service name to bus_selinux_allows_acquire_service.
7318
7319         * bus/bus.c (bus_context_check_security_policy): Pass
7320         additional audit data.  Move assignment of dest
7321         to its own line.
7322
7323 2004-11-07  Colin Walters  <walters@verbum.org>
7324
7325         * dbus/dbus-transport-unix.c (do_authentication): Always
7326         initialize auth_completed.
7327         
7328 2004-11-07  Colin Walters  <walters@verbum.org>
7329
7330         * bus/bus.c (load_config): Break into three
7331         separate functions: process_config_first_time_only,
7332         process_config_every_time, and process_config_postinit.
7333         (process_config_every_time): Move call of
7334         bus_registry_set_service_context_table into
7335         process_config_postinit.
7336         (process_config_postinit): New function, does
7337         any processing that needs to happen late
7338         in initialization (and also on reload).
7339         (bus_context_new): Instead of calling load_config,
7340         open config parser here and call process_config_first_time_only
7341         and process_config_every_time directly.  Later, after
7342         we have forked but before changing UID,
7343         invoke bus_selinux_full_init, and then call
7344         process_config_postinit.
7345         (bus_context_reload_config): As in bus_context_new,
7346         load parse file inside here, and call process_config_every_time
7347         and process_config_postinit.
7348
7349         * bus/services.h, bus/services.c
7350         (bus_registry_set_service_context_table): Rename
7351         from bus_registry_set_sid_table.  Take string hash from config
7352         parser, and convert them here into SIDs.
7353
7354         * bus/config-parser.c (struct BusConfigParser): Have
7355         config parser only store a mapping of service->context
7356         string.
7357         (merge_service_context_hash): New function.
7358         (merge_included): Merge context string hashes instead
7359         of using bus_selinux_id_table_union.
7360         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7361         simply create a new string hash.
7362         (bus_config_parser_unref): Unref it.
7363         (start_selinux_child): Simply insert strings into hash,
7364         don't call bus_selinux_id_table_copy_over.
7365
7366         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7367         (bus_selinux_id_table_copy_over): Delete.
7368
7369 2004-11-03  Colin Walters  <walters@verbum.org>
7370
7371         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7372         variables.
7373         
7374 2004-11-03  Colin Walters  <walters@verbum.org>
7375
7376         * bus/test-main.c (test_pre_hook): Fix test logic,
7377         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7378
7379 2004-11-02  Colin Walters  <walters@redhat.com>
7380
7381         * bus/selinux.c (bus_selinux_init): Split into two functions,
7382         bus_selinux_pre_init and bus_selinux_post_init.
7383         (bus_selinux_pre_init): Just determine whether SELinux is
7384         enabled.
7385         (bus_selinux_post_init): Do everything else.
7386
7387         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7388         config file, and bus_selinux_post_init after.  This ensures that
7389         we don't lose the policyreload notification thread that
7390         bus_selinux_init created before forking previously.
7391         
7392         * bus/test-main.c (test_pre_hook): Update for split.
7393
7394 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7395
7396         Patch from Johan Fischer <linux@fischaz.com>
7397         
7398         * mono/doc/Makefile.am (install-data-local): Added directory
7399         install for DESTDIR
7400
7401 2004-10-29  Colin Walters  <walters@redhat.com>
7402
7403         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7404         parameter for fd to write pid to.       
7405
7406         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7407         
7408         * bus/bus.c (bus_context_new): Pass print_pid_fd
7409         to _dbus_become_daemon (bug #1720)
7410
7411 2004-10-29  Colin Walters  <walters@redhat.com>
7412
7413         Patch from Ed Catmur <ed@catmur.co.uk>
7414
7415         * mono/doc/Makefile.am (install-data-local): Handle
7416         DESTDIR.
7417
7418 2004-10-29  Colin Walters  <walters@redhat.com>
7419
7420         * bus/.cvsignore, qt/.cvsignore: Update.
7421
7422 2004-10-29  Colin Walters  <walters@redhat.com>
7423
7424         Patch from Kristof Vansant <de_lupus@pandora.be>
7425
7426         * configure.in: Detect Slackware.
7427         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7428         * bus/rc.messagebus.in: New file.
7429
7430 2004-10-29  Colin Walters  <walters@redhat.com>
7431
7432         * tools/dbus-monitor.c (filter_func): Return
7433         DBUS_HANDLER_RESULT_HANDLED in filter function
7434         for now.  See:
7435         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7436
7437 2004-10-29  Colin Walters  <walters@redhat.com>
7438
7439         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7440
7441         * bus/services.c (bus_registry_acquire_service): 
7442         Correctly retrieve service name from DBusString
7443         for printing.
7444
7445 2004-10-29  Colin Walters  <walters@redhat.com>
7446
7447         * dbus/dbus-glib.h: Update documentation to not
7448         refer to internal APIs.
7449
7450 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7451
7452         * mono/Arguments.cs (GetDBusTypeConstructor):
7453         type.UnderlyingSystemType will return "System.Byte" if you do it
7454         on "byte[]", which is not what we want.  So check the type.IsArray
7455         property and use System.Array instead.
7456
7457 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7458
7459         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7460         the DBusUserInfo structure since this is passed into the function.
7461         This would cause a double free when the function that allocated
7462         the structure would try to free it when an error occured.
7463
7464         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7465         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7466         for service activation to avoid 32bit/64bit parallel install issues
7467
7468 2004-10-21  Colin Walters  <walters@verbum.org>
7469
7470         * AUTHORS: Fix my email address, the @gnu.org one
7471         has been bouncing for some time.  Also add J5.
7472         
7473 2004-10-21  Colin Walters  <walters@verbum.org>
7474
7475         * dbus/dbus-transport-unix.c (do_authentication): Return
7476         authentication status to callers.
7477         (unix_handle_watch): If we completed authentication this round,
7478         don't do another read.  Instead wait until the next iteration,
7479         after we've read any pending data in the auth buffer.
7480         (unix_do_iteration): Ditto.
7481         (unix_handle_watch): Updated for new do_authentication prototype.
7482
7483 2004-10-18  Colin Walters  <walters@verbum.org>
7484
7485         * bus/selinux.c (bus_selinux_enabled): Handle
7486         --disable-selinux case.
7487         
7488 2004-10-18  Colin Walters  <walters@verbum.org>
7489
7490         * bus/selinux.h: Add bus_selinux_enabled.
7491         
7492         * bus/selinux.c (bus_selinux_enabled): Implement it.
7493         
7494         * bus/config-parser.c (struct include): Add
7495         if_selinux_enabled member.
7496         (start_busconfig_child): Parse if_selinux_enabled
7497         attribute for include.
7498         (bus_config_parser_content): Handle it.
7499
7500         * bus/session.conf.in, bus/system.conf.in: Add
7501         inclusion of context mapping to default config files;
7502         conditional on SELinux being enabled.
7503         
7504         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7505         
7506         * test/data/invalid-config-files/badselinux-1.conf, 
7507         test/data/invalid-config-files/badselinux-2.conf:
7508         Test files for bad syntax.
7509         
7510 2004-10-17  Colin Walters  <walters@verbum.org>
7511
7512         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7513         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7514         format specifier mismatches.
7515
7516 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7517
7518         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7519         format string.
7520
7521         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7522         pointer (bug #1540, Leonardo Boiko).
7523
7524 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7525
7526         * mono/BusDriver.cs: Changed BusDriver struct to remove
7527         the ServiceCreated and ServiceDeleted events and replace them
7528         with the new ServiceOwnerChanged event.
7529
7530         * mono/example/BusListener.cs: Added a new example program,
7531         which listens for and reports any ServiceOwnerChanged events
7532         on the bus driver.
7533
7534         * mono/example/Makefile.am (DESTDIR): Build changes for the
7535         new BusListener.cs example.
7536
7537 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7538
7539         * bus/signals.c (bus_match_rule_parse): validate the components of
7540         match rules (bug #1439).
7541
7542         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7543
7544 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7545
7546         * doc/dbus-specification.xml: document ServiceOwnerChanged
7547         signal.
7548         
7549         * bus/driver.c, bus/driver.h, bus/services.c: Use
7550         ServiceOwnerChanged signal instead of ServiceCreated and
7551         ServiceDeleted.
7552         
7553         * bus/dispatch.c: update testcase for the new signal.
7554
7555 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7556
7557         Patch from Nat Friedman <nat@novell.com>
7558
7559         * mono/Makefile.am: A number of small build fixes to allow "make
7560         distcheck" to succeed.
7561
7562         * mono/example/Makefile.am: "make distcheck" fixes.
7563
7564         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7565         key in @srcdir@.
7566
7567         * test/Makefile.am: "make distcheck" fixes.
7568
7569 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7570
7571         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7572
7573         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7574
7575         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7576         messages after the first one (bug #1389).
7577         
7578         * bus/dispatch.c (check_double_hello_message): add a test case for
7579         the double hello message bug.
7580         (check_existent_service_activation): fix check of spawning error.
7581         
7582 2004-09-16  David Zeuthen  <david@fubar.dk>
7583
7584         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7585
7586 2004-09-12  David Zeuthen  <david@fubar.dk>
7587
7588         Patch from Kay Sievers <kay.sievers@vrfy.org>
7589
7590         * bus/bus.c (bus_context_new):
7591         * bus/bus.h:
7592         * bus/main.c (usage)
7593         (main):
7594         Add commandline option --nofork to override configuration file
7595         setting.
7596
7597 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7598
7599         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7600         compilers don't like it (bug #974).
7601
7602 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7603
7604         * qt/connection.*: Applied patch by Jérôme Lodewyck
7605         <lodewyck@clipper.ens.fr> to integrate an existing
7606         connection into the Qt eventloop
7607
7608 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7609
7610         * mono/BusDriver.cs: Added.  This is a class for interacting with
7611         the org.freedesktop.DBus service.
7612
7613         * mono/Message.cs: Added a mechanism to expose the message that is
7614         currently being dispatched via the static Message.Current
7615         property.  Added Message.Sender and Message.Destination
7616         properties.
7617
7618         * mono/Handler.cs: Expose the dispatched message via
7619         Message.Current when handling method calls.
7620
7621         * mono/Service.cs: Expose the dispatched message via
7622         Message.Current when handling signal emissions.
7623         
7624         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7625         Connection.BaseService property.
7626
7627 2004-08-28  Havoc Pennington  <hp@redhat.com>
7628
7629         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7630
7631         More fixes from Steve Grubb
7632         
7633         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7634         (_dbus_listen_tcp_socket): fix fd leak
7635
7636         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7637         EINTR to a bit lower in the code
7638
7639 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7640
7641         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7642         TRUE if we are inquiring about the existence of the built-in
7643         org.freedesktop.DBus service.
7644
7645 2004-08-25  John Palmieri  <johnp@redhat.com>
7646         * bus/config-parser.c:
7647         (struct PolicyType): Add POLICY_CONSOLE
7648         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7649         (start_busconfig_child): Sets up console element when
7650         <policy at_console=""> is encountered in a policy file
7651         (append_rule_from_element): Convert console elements to console
7652         rules.
7653
7654         * bus/policy.c: 
7655         (bus_policy_create_client_policy): Add console rules to the client
7656         policy based on if the client is at the console
7657         (bus_policy_append_console_rule): New function for adding a
7658         console rule to a policy
7659         (bus_policy_merge): Handle console rule merging
7660
7661         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7662         where we check for console user files
7663         
7664         * dbus/dbus-sysdeps.c:
7665         (_dbus_file_exists): New function which checks if the given
7666         file exists
7667         (_dbus_user_at_console): New function which does the system
7668         specific process of checking if the user is at the console
7669
7670         * dbus/dbus-userdb.c:
7671         (_dbus_is_console_user): New function converts a UID to user name
7672         and then calls the system specific _dbus_user_at_console to 
7673         see if the user is at the console and therefor a console user
7674
7675 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7676
7677         * bus/config-parser.c (set_limit):
7678         * bus/dbus-daemon-1.1.in:
7679         * test/data/valid-config-files/many-rules.conf: set the
7680         max_match_rules_per_connection limt from the config file. 
7681
7682         * doc/busconfig.dtd: update the DTD.
7683
7684         * bus/driver.c: remove some unused variables.
7685
7686 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7687
7688         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7689         it's been replaced by dbus_g_bus_get
7690
7691 2004-08-23  Colin Walters  <walters@redhat.com>
7692
7693         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7694
7695         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7696
7697         * bus/selinux.c: Create a thread for policy reload notification.
7698         (bus_selinux_get_policy_root): Implement.
7699
7700         * bus/config-parser.c (start_busconfig_child)
7701         (bus_config_parser_content): Support SELinux-root relative
7702         inclusion.
7703
7704         * configure.in <HAVE_SELINUX>: Add -lpthread.
7705         
7706         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7707         (test_post_hook): Move memory checking into here.
7708         (test_pre_hook, test_post_hook): Move SELinux checks in
7709         here, but conditional on a DBUS_TEST_SELINUX environment
7710         variable.  Unfortunately we can't run the SELinux checks
7711         as a normal user, since they won't have any permissions
7712         for /selinux.  So this will have to be tested manually
7713         for now, until we have virtualization for most of
7714         libselinux.
7715         
7716 2004-08-23  Havoc Pennington  <hp@redhat.com>
7717
7718         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7719         drop supplementary groups, suggested by Steve Grubb
7720
7721 2004-08-20  Colin Walters  <walters@redhat.com>
7722
7723         * bus/config-parser.c (start_busconfig_child): Remove some unused
7724         variables.
7725         
7726         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7727         warning.
7728
7729 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7730
7731         * configure.in: If --enable-mono is passed in, if we can't find
7732         mono error out.
7733
7734         * mono/Makefile.am: Use /gacutil to install assemblies into the
7735         GAC and not /root.
7736
7737 2004-08-12  Havoc Pennington  <hp@redhat.com>
7738
7739         * NEWS: update for 0.22
7740
7741         * configure.in: release 0.22
7742
7743 2004-08-11  Colin Walters  <walters@redhat.com>
7744
7745         * tools/dbus-send.c (main, usage): Add --reply-timeout
7746         argument.
7747
7748 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7749
7750         * bus/bus.c (process_config_first_time_only): get rid of an unused
7751         DBusError that was causing a memoy leak (bug #989).
7752
7753         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7754         fix compilation on Solaris/Forte C (bug #974)
7755
7756         * bus/main.c (main): plug two minuscule memleaks.
7757
7758 2004-08-10  Havoc Pennington  <hp@redhat.com>
7759
7760         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7761
7762 2004-08-09  Havoc Pennington  <hp@redhat.com>
7763
7764         * COPYING: switch to Academic Free License version 2.1 instead of
7765         2.0, to resolve complaints about patent termination clause.
7766
7767 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7768
7769         * README: added documentation for the --enable-python 
7770         configure switch.
7771
7772 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7773
7774         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7775         _unref in the SELinux support.
7776
7777         * doc/busconfig.dtd: update DTD for SELinux support.
7778
7779         * bus/config-loader-libxml.c: fix error handler and parser
7780         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7781
7782         * configure.in: remove the warning about libxml2.
7783
7784         * dbus/dbus-bus.c: silence doxygen warning.
7785
7786 2004-07-31  Colin Walters  <walters@redhat.com>
7787
7788         * configure.in: Move #error in SELinux check to its own line.
7789
7790 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7791
7792         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7793         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7794         dbus_error_set.
7795
7796         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7797         broken by the change in the _SET_OOM macros.
7798
7799 2004-07-31  Colin Walters  <walters@redhat.com>
7800
7801         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7802         BUS_SET_OOM.
7803
7804 2004-07-31  Colin Walters  <walters@redhat.com>
7805
7806         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7807         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7808         AC_MSG_CHECKING.
7809
7810 2004-07-24  Havoc Pennington  <hp@redhat.com>
7811
7812         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7813
7814         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7815         functionality
7816
7817         * configure.in: add --enable-selinux
7818         
7819         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7820
7821         * bus/main.c (main): initialize and shut down selinux
7822
7823         * bus/connection.c: store SELinux ID on each connection, to avoid 
7824         repeated getting of the string context and converting it into 
7825         an ID
7826
7827         * bus/bus.c (bus_context_get_policy): new accessor, though it
7828         isn't used
7829         (bus_context_check_security_policy): check whether the security
7830         context of sender connection can send to the security context of
7831         recipient connection
7832
7833         * bus/config-parser.c: add parsing for <selinux> and <associate>
7834         
7835         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7836         implement dbus_connection_get_unix_fd()
7837
7838         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7839         function, used by the selinux stuff
7840         
7841 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7842
7843         * bus/config-loader-libxml.c: complete the implementation of
7844         libxml backend for config file loader. Doesn't work with full OOM
7845         test yet. 
7846         
7847         * configure.in: change error when selecting libxml into a warning.
7848         
7849         * test/data/invalid-config-files: add two non-well-formed XML
7850         files. 
7851         
7852         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7853         
7854         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7855         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7856         be necessary to read all the buffer. (bug #894)
7857
7858         * bus/activation.c (bus_activation_activate_service): fix a
7859         potential assertion failure (bug #896). Small optimization in the
7860         case of auto-activation messages.
7861
7862         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7863         add test case for byte-through-vararg bug (#901). patch by Kimmo
7864         Hämäläinen. 
7865
7866 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7867
7868         * python/dbus.py:
7869         * python/dbus_bindings.pyx.in:
7870         Add dbus.init_gthreads (), allow emit_signal to pass
7871         arguments to the signal.
7872         
7873 2004-07-24  Havoc Pennington  <hp@redhat.com>
7874
7875         * AUTHORS: add some people, not really comprehensively, let me
7876         know if I missed you
7877
7878 2004-07-24  Havoc Pennington  <hp@redhat.com>
7879
7880         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7881         Owen
7882
7883         * test/Makefile.am (DIST_SUBDIRS): here also
7884
7885 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7886
7887         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7888         breaking build on Solaris, reported by Farhad Saberi on the ML.
7889
7890         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7891         va_arg invocation to account for integer promotion in the case of
7892         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7893
7894         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7895         _dbus_list_get_first_link, not _dbus_list_get_first.
7896
7897         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7898
7899         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7900         handler functions so that the asserts in _dbus_object_subtree_unref
7901         do not fail.
7902
7903         * dbus/dbus-transport-unix.c (do_reading):
7904         _dbus_transport_queue_messages return value is of type
7905         dbus_bool_t, not DBusDispatchStatus.
7906         
7907 2004-07-19  David Zeuthen  <david@fubar.dk>
7908
7909         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7910
7911         * bus/dispatch.c:
7912         (check_get_connection_unix_user): Debug says GetProperty; but the
7913         method is called GetConnectionUnixUser
7914         (check_get_connection_unix_process_id): New function
7915         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7916         also call check_get_connection_unix_process_id()
7917         
7918         * bus/driver.c:
7919         (bus_driver_handle_get_connection_unix_process_id): New function,
7920         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7921         interface
7922         
7923         * dbus/dbus-auth.c:
7924         (handle_server_data_external_mech): Set pid from the credentials
7925         obtained from the socket
7926         
7927         * dbus/dbus-connection.c:
7928         (dbus_connection_get_unix_process_id): New function
7929         
7930         * dbus/dbus-connection.h: 
7931         Add prototype for dbus_connection_get_unix_process_id
7932         
7933         * dbus/dbus-transport.c:
7934         (_dbus_transport_get_unix_process_id): New function
7935         
7936         * dbus/dbus-transport.h:
7937         Add prototype for _dbus_transport_get_unix_process_id
7938         
7939 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7940
7941         * dbus/dbus-message.c: Message counter fix, patch by Christian
7942         Hammond <chipx86@gnupdate.org>
7943
7944 2004-07-18  Seth Nickell  <seth@gnome.org>
7945
7946         * python/dbus.py:
7947         * python/dbus_bindings.pyx.in:
7948         * python/tests/test-client.py:
7949
7950         Add dbus.ByteArray and dbus_bindings.ByteArray
7951         types so that byte streams can be passed back.
7952
7953         Give jdahlin the heaps of credit that are so
7954         rightfully his.
7955         
7956 2004-07-12  Seth Nickell  <seth@gnome.org>
7957
7958         * python/dbus.py:
7959
7960         Add message argument to the default object_method_handler
7961         function.
7962         
7963         * python/dbus_bindings.pyx.in:
7964
7965         Automatically return NIL when passed an empty list
7966         (we can't pass back a list since lists are typed
7967         and we don't have any idea what type the the client
7968         intended the list to be... :-( )
7969         
7970 2004-07-10  Seth Nickell  <seth@gnome.org>
7971
7972         * python/examples/Makefile.am:
7973
7974         Fix distcheck breakage caused by new examples.
7975
7976 2004-07-10  Seth Nickell  <seth@gnome.org>
7977
7978         * python/dbus.py:
7979
7980         Add "message" argument to service-side dbus.Object
7981         methods. This will break existing services written
7982         using the python bindings, but will allow extraction
7983         of all the message information (e.g. who its from).
7984
7985         Add improved "object oriented" signal handling/emission.
7986         
7987         * python/examples/example-service.py:
7988
7989         Nix this example.
7990         
7991         * python/examples/example-signal-emitter.py:
7992         * python/examples/example-signal-recipient.py:
7993
7994         Two new examples that show how to emit and receive
7995         signals using the new APIs.
7996         
7997         * python/examples/example-signals.py:
7998         * python/examples/gconf-proxy-service.py:
7999         * python/examples/gconf-proxy-service2.py:
8000
8001         Add "message" argument to service methods.
8002
8003 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8004
8005         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8006         * dbus/bus.c (dbus_bus_get_unix_user)
8007         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8008         method of org.freedesktop.DBus interface.
8009
8010         * bus/dispatch.c: test case
8011
8012 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8013
8014         * python/Makefile.am: switched include directory from glib/ to dbus/
8015         since dbus-glib.h moved
8016  
8017 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8018
8019         * configure.in: prevent building the gcj stuff and libxml loader
8020         since they are broken.
8021
8022 2004-06-20  Havoc Pennington  <hp@redhat.com>
8023
8024         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8025         codes from the dbus error names
8026         
8027         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8028         as dbus/dbus-glib.h and that breakage is now visible due to 
8029         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8030         
8031         * glib/dbus-glib.h: s/gproxy/g_proxy/
8032
8033         * dbus/dbus-shared.h: new header to hold stuff shared with
8034         binding APIs
8035         
8036         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8037         than dbus-errors.h
8038
8039         * glib/dbus-glib.h (dbus_set_g_error): move to
8040         dbus-glib-lowlevel.h
8041
8042         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8043         of stuff to enable this
8044
8045         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8046
8047         * a bunch of other changes with the same basic "separate glib 
8048         bindings from dbus.h" theme
8049         
8050 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8051
8052         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8053
8054         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8055
8056 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8057
8058         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8059         the reply value of the ServiceExists message.
8060
8061 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8062
8063         * python/dbus_bindings.pyx.in: No longer need to parse path
8064         elements and pass them as arrays of strings.  The C API now
8065         accepts plain path strings.
8066         (_build_parsed_path): removed 
8067
8068 2004-06-07  Havoc Pennington  <hp@redhat.com>
8069
8070         * doc/TODO: remove auto-activation item since it's done; sort
8071         items by importance/milestone
8072
8073 2004-06-07  Havoc Pennington  <hp@redhat.com>
8074
8075         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8076         random signature when using REQUIRED_FIELDS (this hack won't work
8077         in the long term)
8078
8079         * dbus/dbus-message.c: change the signature to be a header field,
8080         instead of message->signature special-case string. Incremental
8081         step forward. Then we can fix up code to send the signature in the
8082         message, then fix up code to validate said signature, then fix up
8083         code to not put the typecodes inline, etc.
8084         (load_one_message): don't make up the signature after the fact
8085         (decode_header_data): require signature field for the known
8086         message types
8087
8088         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8089
8090         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8091
8092 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8093
8094         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8095
8096         * mono/Handler.cs: Updated to follow new path argument for
8097         (un-)registering objects.
8098
8099         * mono/example/Makefile.am:
8100         * mono/Makefile.am:
8101         * configure.in: Bumped required version for mono and use new -pkg
8102         syntax for deps
8103
8104 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8105
8106         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8107         registration functions take the path argument as char* instead of
8108         char**.
8109
8110         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8111         split off the path decompostion part of
8112         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8113         warnings. 
8114
8115         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8116         
8117 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8118  
8119         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8120         machine approach.  A state is implemented as a function that
8121         handles incoming events as specified for that state.
8122         
8123         * doc/dbus-specification.xml: Update auth protocol state machine
8124         specification to match implementation.  Remove some leftover
8125         base64 examples.
8126
8127 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8128
8129         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8130         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8131         quiet doxygen.
8132
8133         * Doxyfile.in: remove deprecated options.
8134
8135         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8136         glib/test-thread.h, glib/test-thread-client.c,
8137         glib/test-thread-server.c, glib/test-profile.c,
8138         glib/test-dbus-glib.c: remove these unused files.
8139
8140 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8141
8142         * dbus/dbus-object-tree.c
8143         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8144         non-fallback handlers (bug #684).
8145         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8146         (find_subtree_recurse): report wether the returned subtree is an
8147         exact match or a "fallback" match higher up in the tree.
8148         (object_tree_test_iteration): update test case.
8149
8150 2004-06-01  Seth Nickell  <seth@gnome.org>
8151
8152         * python/dbus_bindings.pyx.in:
8153         * python/tests/test-client.py:
8154
8155         Round off basic type support. Add dicts (yay!), and 
8156         remaining array types.
8157
8158         Make MessageIter more general so it works for dicts too.
8159
8160         Mark all loop variables as C integers.
8161         
8162 2004-05-31  Havoc Pennington  <hp@redhat.com>
8163
8164         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8165         "in" before "out"
8166
8167         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8168
8169         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8170         option that runs the tests, and start filling in some code
8171         including for starters just dumping the interfaces to stdout
8172
8173         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8174
8175         * test/data/valid-introspection-files/lots-of-types.xml: test of
8176         an example introspection file
8177
8178         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8179         "node" (I think...)
8180
8181 2004-05-31  Seth Nickell  <seth@gnome.org>
8182
8183         * python/dbus_bindings.pyx.in:
8184         * python/tests/test-client.py:
8185
8186         Test Suite: 1
8187         Python Bindings: 0
8188
8189         Fix string array memory trashing bug... oops...
8190
8191 2004-05-30  Seth Nickell  <seth@gnome.org>
8192
8193         * python/dbus.py:
8194
8195         Add a nicer-but-less-flexible alternate API for handling 
8196         calls to virtual objects in dbus.ObjectTree.
8197
8198         Screw up the argument order to the dbus.Object constructor
8199         for consistency with dbus.ObjectTree (and to make dbus_methods
8200         optional for future extension)
8201         
8202         * python/examples/Makefile.am:
8203         * python/examples/gconf-proxy-service.py:
8204         * python/examples/gconf-proxy-service2.py:
8205
8206         Alternate implementation of gconf-proxy-service using the
8207         nicer dbus.ObjectTree API.
8208         
8209         * python/examples/example-service.py:
8210         * python/tests/test-server.py
8211
8212         Reverse the argument order to deal with dbus.Object constructor
8213         changes.
8214         
8215 2004-05-30  Seth Nickell  <seth@gnome.org>
8216
8217         * python/examples/example-client.py:
8218         * python/examples/example-service.py:
8219
8220         Take it back. Lists seem to work but they're broken
8221         in the test suite. Make the base examples use
8222         lists (works fine).
8223
8224 2004-05-30  Seth Nickell  <seth@gnome.org>
8225
8226         * python/dbus_bindings.pyx.in:
8227         * python/tests/test-client.py:
8228
8229         Add some more tests and fix errors that crop up.
8230         Unfortunately, currently it seems like marshalling
8231         and unmarshalling of lists is completely broken :-(
8232
8233 2004-05-30  Seth Nickell  <seth@gnome.org>
8234
8235         * python/dbus_bindings.pyx.in:
8236
8237         Add support for ObjectPath type.
8238
8239         * python/dbus.py:
8240
8241         Refactor message handling code to a common function.
8242         
8243         * python/tests/test-client.py:
8244         * python/tests/test-server.py:
8245
8246         Add tests that check to make sure values of all types
8247         can be echoed from a service w/o mangling.
8248         
8249 2004-05-29  Seth Nickell  <seth@gnome.org>
8250
8251         * python/dbus.py:
8252
8253         Add ObjectTree class which allows implementation
8254         of trees of "virtual" objects. Basically the python
8255         wrapper for "register_fallback".
8256         
8257         * python/examples/Makefile.am
8258         * python/examples/gconf-proxy-client.py:
8259         * python/examples/gconf-proxy-service.py:
8260
8261         Implement a simple GConf proxy service that supports
8262         get/set on string and int GConf keys using the ObjectTree.
8263         
8264 2004-05-29  Seth Nickell  <seth@gnome.org>
8265
8266         * python/dbus.py:
8267         * python/examples/example-client.py:
8268         * python/examples/example-service.py:
8269         * python/examples/list-system-services.py:
8270
8271         Add SessionBus, SystemBus and ActivationBus classes
8272         so you don't need to know the special little BUS_TYPE
8273         flag.
8274         
8275 2004-05-29  Havoc Pennington  <hp@redhat.com>
8276
8277         * bus/config-parser.c (process_test_valid_subdir): temporarily
8278         stop testing config parser OOM handling, since expat has issues
8279         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8280
8281         * bus/dbus-daemon-1.1.in: change requested_reply to
8282         send_requested_reply/receive_requested_reply so we can send the
8283         replies, not just receive them.
8284
8285         * bus/config-parser.c: parse the new
8286         send_requested_reply/receive_requested_reply
8287
8288         * bus/policy.c (bus_client_policy_check_can_send): add
8289         requested_reply argument and use it
8290
8291         * bus/bus.c (bus_context_check_security_policy): pass through
8292         requested_reply status to message send check
8293
8294         * bus/system.conf.in: adapt to requested_reply change
8295         
8296 2004-05-28  Havoc Pennington  <hp@redhat.com>
8297
8298         * test/glib/test-service-glib.c (main): remove unused variable
8299
8300         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8301
8302         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8303         from the enum, no longer in use.
8304
8305         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8306         works right.
8307
8308         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8309         whether error_name passed in is a valid error name.
8310
8311 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8312
8313         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8314         OBJECT_PATH and OBJECT_PATH_ARRAY
8315
8316 2004-05-28  Seth Nickell  <seth@gnome.org>
8317
8318         * python/examples/Makefile.am:
8319
8320         Forget to add Makefile.am. Do not pass go.
8321
8322 2004-05-28  Michael Meeks  <michael@ximian.com>
8323
8324         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8325         fix no int64 case.
8326
8327         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8328
8329         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8330         (_dbus_message_iter_get_basic_type_array): impl.
8331         drastically simplify ~all relevant _get methods to use these.
8332         (_dbus_message_iter_append_basic_array),
8333         (dbus_message_iter_append_basic): impl
8334         drastically simplify ~all relevant _append methods to use these.
8335
8336         * dbus/dbus-message-builder.c (parse_basic_type) 
8337         (parse_basic_array, lookup_basic_type): impl.
8338         (_dbus_message_data_load): prune scads of duplicate /
8339         cut & paste coding.
8340
8341         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8342         (_dbus_demarshal_basic_type): implement,
8343         (demarshal_and_validate_len/arg): beef up debug.
8344         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8345
8346 2004-05-27  Seth Nickell  <seth@gnome.org>
8347
8348         * configure.in:
8349         * python/Makefile.am:
8350
8351         Include the example python apps in the tarball.
8352         
8353         * python/examples/list-system-services.py
8354
8355         Add a python new example that fetches the list of services
8356         from the system bus.
8357         
8358 2004-05-27  Seth Nickell  <seth@gnome.org>
8359
8360         * python/dbus.py:
8361         * python/dbus_bindings.pyx.in:
8362
8363         Fix failure to notify that a signal was not handled,
8364         resulted in hung functions.
8365         
8366 2004-05-25  Colin Walters  <walters@redhat.com>
8367
8368         * tools/dbus-monitor.c (main): Monitor all types of messages.
8369
8370 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8371
8372         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8373         which unregisters the object path and disposes the handler.
8374
8375 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8376  
8377         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8378          
8379         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8380         operands to && so we call dbus_message_iter_next () for the last
8381         argument also.
8382
8383 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8384
8385         * dbus/dbus-object-tree.c
8386         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8387         children even if the requested path isn't registered.
8388         (object_tree_test_iteration): test object_tree_list_registered.
8389
8390         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8391         it to 0.
8392         
8393 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8394
8395         * doc/TODO: Remove resolved items.
8396
8397         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8398         field.
8399         
8400         * bus/connection.c (bus_connections_expect_reply): Enforce the
8401         per-connection limit on pending replies.
8402         
8403         Patch from Jon Trowbridge <trow@ximian.com>:
8404  
8405         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8406         up a watch that triggers a config reload when one end of the pipe
8407         becomes readable.
8408         (signal_handler): Instead of doing the config reload in our SIGHUP
8409         handler, just write to the reload pipe and let the associated
8410         watch handle the reload when control returns to the main loop.
8411  
8412         * bus/driver.c (bus_driver_handle_reload_config): Added.
8413         Implements a ReloadConfig method for requesting a configuration
8414         file reload via the bus driver.
8415  
8416 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8417
8418         * HACKING: Updated release instructions concerning the wiki page.
8419
8420 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8421
8422         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8423         filter against auth->allowed_mechs; we only add allowed mechs in
8424         record_mechanisms().
8425  
8426         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8427         ALLOWED_MECHS to auth-script format so we can set the list of
8428         allowed mechanisms.
8429  
8430         * data/auth/client-out-of-mechanisms.auth-script: New test to
8431         check client disconnects when it is out of mechanisms to try.
8432  
8433         * dbus/dbus-auth.c (process_command): Remove check for lines
8434         longer that 1 MB; we only buffer up maximum 16 kB.
8435  
8436         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8437         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8438         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8439         assume there might be unused bytes.
8440  
8441         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8442         client-out-of-mechs, it is handled in process_reject(). Move check
8443         for max failures to send_rejected(), as it's a server-only thing.
8444
8445         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8446         send_auth(), send_data(), send_rejected(), send_error(),
8447         send_ok(), send_begin() and send_cancel().
8448
8449 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8450
8451         Remove base64 encoding, replace with hex encoding. Original patch
8452         from trow@ximian.com, added error handling.
8453
8454         * dbus/dbus-string.c (_dbus_string_base64_encode)
8455         (_dbus_string_base64_decode): Remove.
8456         (_dbus_string_hex_decode): Add end_return argument so we can
8457         distinguish between OOM and invalid hex encoding.
8458         (_dbus_string_test): Remove base64 tests and add test case for
8459         invalid hex.
8460
8461         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8462         Replace base64 with hex.
8463
8464         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8465         for invalid hex encoded data in auth protocol.
8466
8467 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8468
8469         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8470         leak.
8471
8472 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8473
8474         * mono/dbus-sharp.dll.config.in: Added for GAC
8475         * mono/dbus-sharp.snk: Added for GAC
8476         * mono/Assembly.cs.in: Added for GAC
8477         * mono/Makefile.am: Changes for GAC installation        
8478         * configure.in: Added refs for dbus-sharp.dll.config.in and
8479         Assembly.cs.in. More fixes for mono testing
8480         * mono/example/Makefile.am: Changed var to CSC
8481         * Makefile.am: Changed flag name to DBUS_USE_CSC
8482
8483 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8484
8485         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8486         * mono/doc/*: Added documentation framework
8487         * configure.in: Added monodoc check
8488         * README: Added description of mono configure flags
8489
8490 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8491
8492         * doc/dbus-specification.xml: Added a "Required" column to the 
8493         header fields table and changed the "zero or more" verbage in
8494         the above paragraph to read "The header must contain the required 
8495         named header fields and zero or more of the optional named header 
8496         fields".
8497         * test/data/invalid-messages/*.message: Added the required PATH 
8498         named header field to the tests so that they don't fail on 
8499         'Missing path field'
8500
8501 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8502
8503         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8504         the stack by implicitly defining variable and parameter types and
8505         removing the hack of defining C pointers as python objects and later
8506         casting them.
8507
8508 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8509
8510         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8511
8512 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8513
8514         * mono/DBusType/Dict.cs: Handle empty dicts
8515         * mono/DBusType/Array.cs: Handle empty arrays
8516         * mono/Arguments.cs: Handle empty arguments
8517
8518 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8519
8520         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8521         field
8522
8523 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8524
8525         * test/data/valid-messages/standard-*.message: Update message
8526         test scripts to new header field names.
8527
8528 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8529
8530         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8531         overflow to times_we_did_each_thing array which would chop off the
8532         first character of the failure_dir string. Increased the size of
8533         the array to 7 to reflect the number of random mutation functions
8534         we have.
8535
8536 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8537
8538         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8539         unix_server->watch here, it is unreffed in disconnect.
8540         (_dbus_server_new_for_tcp_socket): convert NULL host to
8541         "localhost" here so we don't append NULL to address.
8542         
8543         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8544         various addresses, including tcp with no explicit host.
8545
8546 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8547
8548         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8549         fix incorrect setting of .name_offset in the HeaderField (it was
8550         off by two bytes, positioned right after the name and typecode)
8551
8552         * bus/bus.c (bus_context_new, bus_context_unref): test before
8553         calling dbus_server_free_data_slot and _dbus_user_database_unref
8554         in case of an error.
8555
8556         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8557         by libdbus-gtool.
8558
8559 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8560
8561         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8562         _dbus_poll() instead of select().
8563
8564 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8565
8566         * bus/main.c (signal_handler): Reload the configuration files
8567         on SIGHUP.
8568         (main): Set up our SIGHUP handler.
8569
8570         * bus/bus.c (struct BusContext): Store the config file, user and
8571         fork flag in the BusContext.
8572         (process_config_first_time_only): Added.  Contains the code
8573         (previously in bus_context_new) for setting up the BusContext from
8574         the BusConfigParser that should only be run the first time the
8575         config files are read.
8576         (process_config_every_time): Added.  Contains the code (previously
8577         in bus_context_new) for setting up the BusContext from the
8578         BusConfigParser that should be run every time the config files are
8579         read.
8580         (load_config): Added.  Builds a BusConfigParser from the config
8581         files and passes the resulting structure off to
8582         process_config_first_time_only (assuming this is the first time)
8583         and process_config_every_time.
8584         (bus_context_new): All of the config-related code has been moved
8585         to process_config_first_time_only and process_config_every_time.
8586         Now this function just does the non-config-related initializations
8587         and calls load_config.
8588         (bus_context_reload_config): Added.
8589
8590 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8591
8592         * bus/driver.c (bus_driver_handle_get_service_owner):
8593         implement a GetServiceOwner method.
8594         * doc/dbus-specification.xml: document it.
8595         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8596         
8597         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8598         implement, using the bus GetServiceOwner method.
8599
8600         * test/glib/test-dbus-glib.c:
8601         use dbus_gproxy_new_for_service_owner so that we can receive the
8602         signal. 
8603
8604 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8605
8606         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8607         dbus/dbus-message.c, dbus/dbus-protocol.h
8608         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8609
8610         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8611         dbus/dbus-message.c, dbus/dbus-protocol.h
8612         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8613
8614         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8615         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8616         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8617
8618         * doc/dbus-specification.xml (Header Fields Table):
8619         s/SERVICE/DESTINATION
8620         s/SENDER_SERVICE/SENDER
8621
8622
8623 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8624
8625         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8626         a few seconds.
8627
8628 2004-04-13  Michael Meeks  <michael@ximian.com>
8629
8630         * glib/dbus-gobject.c (handle_introspect): split out
8631         (introspect_properties): this.
8632         (handle_introspect): implement this.
8633
8634         * test/glib/Makefile.am: use the absolute path so the bus
8635         daemon's chdir ("/") doesn't kill us dead.
8636
8637         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8638
8639 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8640
8641         * bus/config-parser.c (struct BusConfigParser): Added
8642         included_files field.
8643         (seen_include): Added.  Checks whether or not a file has already
8644         been included by any parent BusConfigParser.
8645         (bus_config_parser_new): Copy the parent's included_files.
8646         (include_file): Track which files have been included, and fail on
8647         circular inclusions.
8648         (process_test_valid_subdir): Changed printf to report if we are
8649         testing valid or invalid conf files.
8650         (all_are_equiv): Changed printf to be a bit clearer about
8651         what we are actually doing.
8652         (bus_config_parser_test): Test invalid configuration files.
8653
8654 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8655
8656         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8657         argument.  If non-null, the newly-constructed BusConfigParser will
8658         be initialized with the parent's BusLimits instead of the default
8659         values.
8660         (include_file): When including a config file, pass in
8661         the current parser as the parent and then copy the BusLimits
8662         from the included BusConfigParser pack to the current parser.
8663         (process_test_valid_subdir): Renamed from process_test_subdir.
8664         (process_test_equiv_subdir): Added.  Walks through a directory,
8665         descending into each subdirectory and loading the config files
8666         it finds there.  If any subdirectory contains two config files
8667         that don't produce identical BusConfigParser structs, fail.
8668         For now, the BusConfigParser's BusPolicies are not compared.
8669         (bus_config_parser_test): Call both process_test_valid_subdir and
8670         process_test_equiv_subdir.
8671
8672         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8673         argument and pass it along to the call to bus_config_parser_new.
8674         Also made a few small changes to allow this code to compile.
8675
8676         * bus/config-loader-expat.c (bus_config_load): Take a parent
8677         argument and pass it along to the call to bus_config_parser_new.
8678
8679         * bus/bus.c (bus_context_new): Load the config file
8680         with a NULL parent argument.
8681
8682 2004-03-29  Michael Meeks  <michael@ximian.com>
8683
8684         * glib/dbus-gobject.c (introspect_properties): split
8685         out, fix mangled 'while' flow control.
8686         (introspect_signals): implement.
8687         (handle_introspect): update.
8688
8689 2004-03-29  Michael Meeks  <michael@ximian.com>
8690
8691         * glib/dbus-gobject.c (set_object_property): split out / 
8692         re-work, use the property type, and not the message type(!)
8693         (get_object_property): ditto.
8694
8695         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8696         (dbus_gvalue_marshal): make this code re-usable, needed
8697         for signals too, also on both proxy and server side.
8698         Re-write for more efficiency / readability.
8699
8700 2004-03-29  Michael Meeks  <michael@ximian.com>
8701
8702         * dbus/dbus-message.c
8703         (dbus_message_new_error_printf): impl.
8704
8705         * dbus/dbus-connection.c
8706         (dbus_connection_unregister_object_path): fix warning.
8707
8708         * configure.in: fix no-mono-installed situation.
8709
8710 2004-03-27  Havoc Pennington  <hp@redhat.com>
8711
8712         Patch from Timo Teräs:
8713         
8714         * tools/dbus-send.c (main): if --print-reply, assume type is
8715         method call; support boolean type args
8716         
8717         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8718         bunch of memleak and logic bugs
8719         
8720 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8721
8722         * mono/Arguments.cs:
8723         * mono/Introspector.cs:
8724         * mono/Handler.cs:
8725         * mono/InterfaceProxy.cs:
8726         * mono/Message.cs
8727         * mono/ProxyBuilder.cs:
8728         * mono/Service.cs:
8729         Added InterfaceProxy class to avoid building proxies for every
8730         object.
8731
8732         * dbus-message.h:
8733         * dbus-message.c (dbus_message_append_args_valist)
8734         (dbus_message_iter_get_object_path)
8735         (dbus_message_iter_get_object_path_array)
8736         (dbus_message_iter_append_object_path)
8737         (dbus_message_iter_append_object_path_array):
8738         Added object_path iter functions to handle OBJECT_PATH arguments
8739         
8740 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8741
8742         First checkin of mono bindings.
8743         * configure.in:
8744         * Makefile.am:
8745         Build stuff for the bindings
8746         * dbus-sharp.pc.in: Added for pkgconfig
8747         
8748 2004-03-21  Havoc Pennington  <hp@redhat.com>
8749
8750         * test/test-service.c (main): remove debug spew
8751
8752 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8753
8754         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8755         arrays
8756
8757         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8758         (dbus_message_iter_init_array_iterator)
8759         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8760         indicate whether the iterator is empty
8761
8762         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8763         warnings
8764
8765 2004-03-19  Havoc Pennington  <hp@redhat.com>
8766
8767         * NEWS: 0.21 updates
8768
8769         * configure.in: 0.21
8770
8771         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8772         
8773         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8774         you don't need pyrex to make dist
8775
8776         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8777         sources; run moc
8778         
8779 2004-03-18  Richard Hult  <richard@imendio.com>
8780
8781         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8782         (dbus_message_set_auto_activation): Add doxygen docs.
8783
8784 2004-03-16  Richard Hult  <richard@imendio.com>
8785
8786         * bus/activation.c: (bus_activation_service_created),
8787         (bus_activation_send_pending_auto_activation_messages),
8788         (bus_activation_activate_service):
8789         * bus/activation.h:
8790         * bus/dispatch.c: (bus_dispatch),
8791         (check_nonexistent_service_auto_activation),
8792         (check_service_auto_activated),
8793         (check_segfault_service_auto_activation),
8794         (check_existent_service_auto_activation), (bus_dispatch_test):
8795         * bus/driver.c: (bus_driver_handle_activate_service):
8796         * bus/services.c: (bus_registry_acquire_service):
8797         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8798         (dbus_message_get_auto_activation):
8799         * dbus/dbus-message.h:
8800         * dbus/dbus-protocol.h: Implement auto-activation.
8801         
8802         * doc/dbus-specification.xml: Add auto-activation to the spec.
8803
8804 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8805
8806         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8807         fix a bug with CUSTOM types.
8808
8809         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8810         a unit test for this bug (used to fail).
8811
8812 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8813
8814         * bus/activation.c:
8815         (babysitter_watch_callback): notify all pending activations waiting for
8816           the same exec that the activation failed.
8817         (bus_activation_activate_service): shortcut the activation if we 
8818           already waiting for the same executable to start up.
8819
8820 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8821
8822         * bus/activation.c: 
8823         - Added service file reloading. 
8824           Each service files directory is kept in an hash table in 
8825           BusActivation and each BusActivationEntry knows what .service-file it
8826           was read from. So when you try to activate a service the bus will 
8827           check if it's been updated, removed or if new .service-files has 
8828           been installed.
8829         - Test code at the bottom for the service file reloading.
8830         * bus/test-main.c: (main):
8831         * bus/test.h:
8832         - added service reloading test.
8833         * dbus/dbus-sysdeps.c: 
8834         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8835
8836 2004-03-08  Michael Meeks  <michael@ximian.com>
8837
8838         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8839         bail immediately if disconnected, to avoid busy loop.
8840
8841         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8842         cleanup cut/paste/inefficiency.
8843
8844 2004-03-01  David Zeuthen  <david@fubar.dk>
8845
8846         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8847         bug where args were used twice. This bug resulted in a segfault
8848         on a Debian/PPC system when starting the messagebus daemon. Include
8849         dbus-sysdeps.h for DBUS_VA_COPY
8850
8851         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8852
8853         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8854         appropriate va_copy implementation. From GLib
8855         
8856 2004-02-24  Joe Shaw  <joe@ximian.com>
8857
8858         * bus/services.c (bus_registry_acquire_service): We need to pass
8859         in the service name to dbus_set_error() to prevent a crash.
8860
8861 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8862
8863         * AUTHORS: Reveal my True identity.
8864
8865 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8866
8867         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8868         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8869
8870 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8871
8872         * doc/TODO: Added not about better error check of configuration files.
8873
8874 2003-12-02  Richard Hult  <richard@imendio.com>
8875
8876         * Update AFL version to 2.0 throughout the source files to reflect
8877         the update that was done a while ago.
8878
8879 2003-12-02  Richard Hult  <richard@imendio.com>
8880
8881         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8882         wrote_dict_key to FALSE on the iter that the dict is appended to,
8883         just like when appending other types. Fixes a bug where a dict
8884         couldn't be put inside a dict.
8885         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8886         (message_iter_test, _dbus_message_test): Add test case for dict
8887         inside dict.
8888
8889 2003-12-01  David Zeuthen  <david@fubar.dk>
8890
8891         * python/dbus.py: Add the actual message when calling the reciever
8892         of a signal such that parameters can be inspected. Add the method
8893         remove_signal_receiver
8894         
8895 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8896
8897         * bus/*.[ch]:
8898         * dbus/*.[ch]:
8899         * glib/*.[ch]: Made ref functions return the pointer
8900
8901 2003-11-25  Zack Rusin  <zack@kde.org>
8902
8903         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8904
8905         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8906         wrappers,
8907
8908         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8909         the Integrator and to better fit with the server,
8910
8911 2003-11-24  Zack Rusin  <zack@kde.org>
8912
8913         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8914         the integrator handles it now
8915
8916         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8917         since QTimer wasn't really meant to be used the way DBusTimeout is
8918
8919 2003-11-24  Zack Rusin  <zack@kde.org>
8920
8921         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8922         Integrator class which integrates D-BUS with the Qt event loop,
8923
8924         * qt/connection.h, qt/connection.cpp: Move all the code which
8925         was dealing with D-BUS integration to the Integrator class,
8926         and start using Integrator,
8927
8928 2003-11-23  Zack Rusin  <zack@kde.org>
8929
8930         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8931         wrapper
8932
8933         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8934         switching namespaces to DBusQt, reworking the class,
8935
8936         * Makefile.cvs: switching dependencies so that it matches KDE 
8937         schematics,
8938         
8939         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8940         the library
8941
8942 2003-11-19  Havoc Pennington  <hp@redhat.com>
8943
8944         * NEWS: update
8945
8946         * configure.in: bump version to 0.20
8947
8948         * configure.in (have_qt): add yet another place to look for qt
8949         (someone hand trolltech a .pc file...)
8950
8951 2003-11-01  Havoc Pennington  <hp@redhat.com>
8952
8953         * doc/dbus-specification.xml: add state machine docs on the auth
8954         protocol; just a first draft, I'm sure it's wrong.      
8955
8956 2003-10-28  David Zeuthen  <david@fubar.dk>
8957
8958         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8959         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8960         
8961 2003-10-28  Havoc Pennington  <hp@redhat.com>
8962
8963         * dbus/dbus-message.c (get_next_field): delete unused function
8964
8965 2003-10-28  Havoc Pennington  <hp@redhat.com>
8966
8967         * bus/expirelist.c (do_expiration_with_current_time): detect
8968         failure of the expire_func due to OOM
8969
8970         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8971
8972         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8973         NoReply error that's now created by the bus when the service exits
8974
8975 2003-10-28  Havoc Pennington  <hp@redhat.com>
8976
8977         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8978         tests for set_path, set_interface, set_member, etc.
8979
8980         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8981
8982         * dbus/dbus-message.c (set_string_field): always just delete and
8983         re-append the field; accept NULL for deletion
8984         (re_align_fields_recurse): reimplement
8985         
8986 2003-10-26  Havoc Pennington  <hp@redhat.com>
8987
8988         * dbus/dbus-connection.c: fix docs to properly describe the
8989         disconnected message
8990         (_dbus_connection_notify_disconnected): remove this function; 
8991         we can't synchronously add the disconnected message, we have to 
8992         do it after we've queued any remaining real messages
8993         (_dbus_connection_get_dispatch_status_unlocked): queue the
8994         disconnect message only if the transport has finished queueing all
8995         its real messages and is disconnected.
8996         (dbus_connection_disconnect): update the dispatch status here
8997
8998 2003-10-22  Havoc Pennington  <hp@redhat.com>
8999
9000         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9001
9002         * bus/connection.c (bus_transaction_send_from_driver): set the
9003         destination to the connection's base service
9004
9005 2003-10-20  Havoc Pennington  <hp@redhat.com>
9006
9007         hmm, make check is currently not passing.
9008         
9009         * doc/dbus-specification.xml: add requirement that custom type
9010         names follow the same rules as interface names.
9011
9012         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9013         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9014         'map'
9015
9016         * doc/dbus-specification.xml: update type codes to match
9017         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9018         CUSTOM. Add type OBJECT_PATH to the spec.
9019
9020 2003-10-17  Havoc Pennington  <hp@redhat.com>
9021
9022         * bus/driver.c (create_unique_client_name): use "." as separator
9023         in base service names instead of '-'
9024
9025         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9026         byte at the end of the string
9027
9028         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9029         optimization macros since string validation seems to be a slow
9030         point.
9031         
9032         * doc/dbus-specification.xml: restrict valid
9033         service/interface/member/error names. Add test suite code for the
9034         name validation.
9035
9036         * dbus/dbus-string.c: limit service/interface/member/error names 
9037         to [0-9][A-Z][a-z]_
9038
9039         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9040         format arg to verbose spew
9041
9042         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9043         memory, return instead of g_error
9044
9045         * test/test-service.c (path_message_func): support emitting a
9046         signal on request
9047
9048         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9049         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9050         assuming the activation bus was the session bus so that services
9051         started manually will still register.
9052         (init_connections_unlocked): fix so that in OOM situation we get
9053         the same semantics when retrying the function
9054         
9055         * test/test-service.c (main): change to use path registration, to
9056         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9057         than DBUS_BUS_SESSION
9058
9059 2003-10-16  Havoc Pennington  <hp@redhat.com>
9060
9061         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9062
9063         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9064         coverage of the tests
9065         (coverage-report.txt): don't move the .da and .bbg files around
9066
9067 2003-10-16  Havoc Pennington  <hp@redhat.com>
9068
9069         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9070         to put there
9071
9072 2003-10-16  Havoc Pennington  <hp@redhat.com>
9073
9074         * bus/connection.c (bus_pending_reply_expired): either cancel or
9075         execute, not both
9076         (bus_connections_check_reply): use unlink, not remove_link, as we
9077         don't want to free the link; fixes double free mess
9078
9079         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9080         where no reply was received
9081
9082         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9083         fix a refcount leak
9084
9085         * bus/signals.c (match_rule_matches): add special cases for the
9086         bus driver, so you can match on sender/destination for it.
9087
9088         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9089         DBUS_PRINT_BACKTRACE is set
9090
9091         * dbus/dbus-internals.c: add pid to assertion failure messages
9092
9093         * dbus/dbus-connection.c: add message type code to the debug spew
9094
9095         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9096         sender=foo not service=foo
9097
9098         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9099         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9100         DBUS_ACTIVATION_ADDRESS instead
9101
9102         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9103         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9104
9105         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9106         context struct
9107
9108         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9109         (dbus_message_iter_get_object_path_array): new function (half
9110         finished, disabled for the moment)
9111         
9112         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9113         DBUS_MESSAGE_TYPE_ERROR
9114
9115         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9116         avoid redirecting stderr to /dev/null
9117         (babysit): close stdin if not doing the "exit_with_session" thing
9118
9119         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9120         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9121         stdout/stdin, so things don't get confused
9122         
9123         * bus/system.conf.in: fix to allow replies, I modified .conf
9124         instead of .conf.in again.
9125
9126 2003-10-14  David Zeuthen  <david@fubar.dk>
9127
9128         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9129         argtype to arg_type when raising unknown arg type exception.
9130         Changed type list to reflect the changes in dbus-protocol.h so 
9131         the bindings actually work.
9132
9133 2003-10-14  Havoc Pennington  <hp@redhat.com>
9134
9135         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9136         to have a bug keeping it from outputting the .da files sometimes
9137         (string_get_string): don't append garbage nul bytes to the string.
9138
9139 2003-10-15  Seth Nickell  <seth@gnome.org>
9140
9141         * python/Makefile.am:
9142
9143         Include dbus_h_wrapper.h in the dist tarball.
9144
9145 2003-10-14  Havoc Pennington  <hp@redhat.com>
9146
9147         * bus/bus.c (bus_context_check_security_policy): revamp this to
9148         work more sanely with new policy-based requested reply setup
9149
9150         * bus/connection.c (bus_transaction_send_from_driver): set bus
9151         driver messages as no reply
9152
9153         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9154         requested_reply attribute on allow/deny rules
9155
9156         * bus/system.conf: add <allow requested_reply="true"/>
9157
9158         * bus/driver.c (bus_driver_handle_message): fix check for replies
9159         sent to the bus driver, which was backward. How did this ever work
9160         at all though? I think I'm missing something.
9161
9162         * dbus/dbus-message.c (decode_header_data): require error and
9163         method return messages to have a reply serial field to be valid
9164         (_dbus_message_loader_queue_messages): break up this function;
9165         validate that reply serial and plain serial are nonzero; 
9166         clean up the OOM/error handling.
9167         (get_uint_field): don't return -1 from this
9168         (dbus_message_create_header): fix signed/unsigned bug
9169
9170         * bus/connection.c (bus_connections_expect_reply): save serial of
9171         the incoming message, not reply serial
9172
9173 2003-10-14  Havoc Pennington  <hp@redhat.com>
9174
9175         * bus/connection.c: implement pending reply tracking using
9176         BusExpireList
9177
9178         * bus/bus.c (bus_context_check_security_policy): verify that a
9179         reply is pending in order to allow a reply to be sent. Deny 
9180         messages of unknown type.
9181
9182         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9183
9184         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9185         (bus_context_get_reply_timeout): new
9186
9187 2003-10-13  Seth Nickell  <seth@gnome.org>
9188
9189         * python/Makefile.am:
9190
9191         Pass "make distcheck": remove a couple files from DIST_FILES
9192         that weren't included in the final version.
9193
9194 2003-10-12  Havoc Pennington  <hp@pobox.com>
9195
9196         Added test code that 1) starts an actual bus daemon and 2) uses
9197         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9198         more testing possible, but this is the basic framework.
9199         
9200         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9201         empty proxy lists from the proxy list hash
9202
9203         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9204         couple of return_if_fail checks
9205
9206         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9207         to allocate, so everything is cleared to NULL as it should be.
9208
9209         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9210         source as data to dbus_connection_set_timeout_functions() as the 
9211         timeout functions expected
9212
9213         * test/glib/run-test.sh: add a little script to start up a message
9214         bus and run tests using it
9215
9216         * tools/dbus-launch.1: updates
9217
9218         * tools/dbus-launch.c (main): add --config-file option
9219
9220         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9221         that could never be reached.
9222
9223         * dbus/dbus-message.c (dbus_message_new_method_return) 
9224         (dbus_message_new_error, dbus_message_new_signal): set the
9225         no-reply-expected flag on all these. Redundant, but may
9226         as well be consistent.
9227
9228 2003-10-11  Havoc Pennington  <hp@pobox.com>
9229
9230         * test/decode-gcov.c (function_solve_graph): make broken block
9231         graph a nonfatal error since it seems to be broken. Need to debug
9232         this.
9233
9234         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9235         can't just check type > INVALID < LAST anymore
9236
9237         * dbus/dbus-message.c (dbus_message_get_signature): new function
9238         (dbus_message_has_signature): new function
9239         (struct DBusMessage): add signature field (right now it isn't sent
9240         over the wire, just generated on the fly)
9241         (dbus_message_copy): copy the signature, and init strings to
9242         proper length to avoid some reallocs
9243         (dbus_message_iter_init_array_iterator): return void, since it
9244         can't fail
9245         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9246         (_dbus_message_loader_queue_messages): add silly temporary hack to
9247         fill in message->signature on load
9248
9249         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9250         characters, so they are relatively human-readable.
9251
9252 2003-10-11  Havoc Pennington  <hp@pobox.com>
9253
9254         * dbus/dbus-message.c (_dbus_message_test): add more test
9255         coverage, but #if 0 for now since they uncover a bug 
9256         not fixed yet; I think in re_align_field_recurse()
9257         (re_align_field_recurse): add FIXME about broken assertion
9258
9259         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9260
9261         * bus/connection.c: share a couple code bits with expirelist.c
9262
9263         * bus/expirelist.h, bus/expirelist.c: implement a generic
9264         expire-items-after-N-seconds facility, was going to share between
9265         expiring connections and replies, decided not to use for expiring
9266         connections for now.
9267
9268         * COPYING: include AFL 2.0 (still need to change all the file headers)
9269
9270 2003-10-09  Havoc Pennington  <hp@redhat.com>
9271
9272         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9273         gcc 3.3. Not that we do anything about it yet.
9274
9275         * bus/signals.c (bus_match_rule_parse): impose max length on the
9276         match rule text
9277
9278         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9279
9280 2003-10-09  Havoc Pennington  <hp@redhat.com>
9281
9282         Make matching rules theoretically work (add parser).
9283         
9284         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9285         the case where destination is explicitly specified as bus driver
9286         and someone else is eavesdropping.
9287         
9288         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9289         definition of eavesdropping and assertion
9290
9291         * tools/dbus-send.c (main): use dbus_message_type_from_string
9292
9293         * bus/signals.c (bus_match_rule_parse): implement
9294
9295         * dbus/dbus-message.c (dbus_message_type_from_string): new
9296
9297         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9298
9299 2003-10-02  Havoc Pennington  <hp@pobox.com>
9300
9301         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9302         dbus_gproxy_oneway_call
9303
9304         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9305         (dbus_server_setup_with_g_main): fix to allow calling them more
9306         than once on the same args
9307         (dbus_bus_get_with_g_main): new function
9308
9309 2003-10-02  Havoc Pennington  <hp@redhat.com>
9310
9311         * doc/dbus-tutorial.xml: write some stuff
9312
9313 2003-09-29  Havoc Pennington  <hp@pobox.com>
9314
9315         * configure.in: split checks for Doxygen from XML docs, check for
9316         xmlto
9317
9318         * doc/Makefile.am: XML-ify all the docs, and add a blank
9319         dbus-tutorial.xml
9320
9321 2003-09-29  Havoc Pennington  <hp@pobox.com>
9322
9323         * Merge dbus-object-names branch. To see the entire patch 
9324         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9325         it's huuuuge though.
9326         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9327         
9328 2003-09-28  Havoc Pennington  <hp@pobox.com>
9329
9330         * HACKING: update to reflect new server
9331
9332 2003-09-26  Seth Nickell  <seth@gnome.org>
9333
9334         * python/dbus.py:
9335         * python/examples/example-signals.py:
9336
9337         Start implementing some notions of signals. The API
9338         is really terrible, but they sort of work (with the
9339         exception of being able to filter by service, and to
9340         transmit signals *as* a particular service). Need to
9341         figure out how to make messages come from the service
9342         we registered :-(
9343         
9344         * python/dbus_bindings.pyx.in:
9345
9346         Removed duplicate message_handler callbacks.
9347         
9348 2003-09-25  Havoc Pennington  <hp@redhat.com>
9349
9350         * bus/session.conf.in: fix my mess
9351
9352 2003-09-25  Havoc Pennington  <hp@pobox.com>
9353
9354         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9355
9356 2003-09-25  Seth Nickell  <seth@gnome.org>
9357
9358         * python/examples/example-service.py:
9359
9360         Johan notices complete wrong code in example-service, but
9361         completely wrong in a way that works exactly the same (!).
9362         Johan is confused, how could this possibly work? Example
9363         code fails to serve purpose of making things clear.
9364         Seth fixes.
9365
9366 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9367
9368         * doc/dbus-specification.sgml: don't require header fields
9369         to be 4-byte aligned and specify that fields should be
9370         distinguished from padding by the fact that zero is not
9371         a valid field name.
9372         
9373         * doc/TODO: remove re-alignment item and add item to doc
9374         the OBJECT_PATH type.
9375         
9376         * dbus/dbus-message.c:
9377         (HeaderField): rename the original member to value_offset
9378         and introduce a name_offset member to keep track of where
9379         the field actually begins.
9380         (adjust_field_offsets): remove.
9381         (append_int_field), (append_uint_field),
9382         (append_string_field): don't align the start of the header
9383         field to a 4-byte boundary.
9384         (get_next_field): impl finding the next marhsalled field
9385         after a given field.
9386         (re_align_field_recurse): impl re-aligning a number of
9387         already marshalled fields.
9388         (delete_field): impl deleting a field of any type and
9389         re-aligning any following fields.
9390         (delete_int_or_uint_field), (delete_string_field): remove.
9391         (set_int_field), (set_uint_field): no need to re-check
9392         that we have the correct type for the field.
9393         (set_string_field): ditto and impl re-aligning any
9394         following fields.
9395         (decode_header_data): update to take into account that
9396         the fields aren't 4-byte aligned any more and the new
9397         way to distinguish padding from header fields. Also,
9398         don't exit when there is too much header padding.
9399         (process_test_subdir): print the directory.
9400         (_dbus_message_test): add test to make sure a following
9401         field is re-aligned correctly after field deletion.
9402         
9403         * dbus/dbus-string.[ch]:
9404         (_dbus_string_insert_bytes): rename from insert_byte and
9405         allow the insert of multiple bytes.
9406         (_dbus_string_test): test inserting multiple bytes.
9407
9408         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9409         warning note to docs about having to re-align any
9410         marshalled values following the string.
9411         
9412         * dbus/dbus-message-builder.c:
9413         (append_string_field), (_dbus_message_data_load):
9414         don't align the header field.
9415         
9416         * dbus/dbus-auth.c: (process_test_subdir): print the
9417         directory.
9418         
9419         * test/break-loader.c: (randomly_add_one_byte): upd. for
9420         insert_byte change.
9421         
9422         * test/data/invalid-messages/bad-header-field-alignment.message:
9423         new test case.
9424         
9425         * test/data/valid-messages/unknown-header-field.message: shove
9426         a dict in the unknown field.
9427
9428 2003-09-25  Seth Nickell  <seth@gnome.org>
9429
9430         * python/dbus.py:
9431         * python/dbus_bindings.pyx.in:
9432
9433         Handle return values.
9434         
9435         * python/examples/example-client.py:
9436         * python/examples/example-service.py:
9437
9438         Pass back return values from the service to the client.
9439         
9440 2003-09-24  Seth Nickell  <seth@gnome.org>
9441
9442         * python/dbus.py:
9443
9444         Connect Object methods (when you are sharing an object) up... pass
9445         in a list of methods to be shared. Sharing all the methods just
9446         worked out too weird. You can now create nice Services over the
9447         DBus in Python. :-)
9448         
9449         * python/dbus_bindings.pyx.in:
9450
9451         Keep references to user_data tuples passed into C functions so 
9452         Python doesn't garbage collect on us.
9453
9454         Implement MethodReturn and Error subclasses of Message for creating
9455         DBusMessage's of those types.
9456         
9457         * python/examples/example-client.py:
9458         * python/examples/example-service.py:
9459
9460         Simple example code showing both how create DBus services and objects,
9461         and how to use them.
9462
9463 2003-09-23  Havoc Pennington  <hp@pobox.com>
9464
9465         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9466
9467 2003-09-23  Havoc Pennington  <hp@redhat.com>
9468
9469         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9470         (dbus_gproxy_disconnect_signal): implement
9471         (dbus_gproxy_manager_remove_signal_match): implement
9472         (dbus_gproxy_manager_add_signal_match): implement
9473         (dbus_gproxy_oneway_call): implement
9474
9475 2003-09-23  Havoc Pennington  <hp@pobox.com>
9476
9477         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9478         subclass. This means dropping the transparent thread safety of the
9479         proxy; you now need a separate proxy per-thread, or your own
9480         locking on the proxy. Probably right anyway.
9481         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9482
9483 2003-09-22  Havoc Pennington  <hp@redhat.com>
9484
9485         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9486
9487 2003-09-21  Seth Nickell  <seth@gnome.org>
9488
9489         First checkin of the Python bindings.
9490         
9491         * python/.cvsignore:
9492         * python/Makefile.am:
9493         * python/dbus_bindings.pyx.in:
9494         * python/dbus_h_wrapper.h:
9495
9496         Pieces for Pyrex to operate on, building a dbus_bindings.so
9497         python module for low-level access to the DBus APIs.
9498         
9499         * python/dbus.py:
9500
9501         High-level Python module for accessing DBus objects.
9502
9503         * configure.in:
9504         * Makefile.am:
9505
9506         Build stuff for the python bindings.
9507
9508         * acinclude.m4:
9509
9510         Extra macro needed for finding the Python C header files.
9511
9512 2003-09-21  Havoc Pennington  <hp@pobox.com>
9513
9514         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9515         implementing the proxy manager, didn't get very far.
9516
9517         * dbus/dbus-bus.c (dbus_bus_add_match): new
9518         (dbus_bus_remove_match): new
9519
9520         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9521         path_name argument; adjust the other not-yet-implemented 
9522         gproxy constructors to be what I think they should be.
9523
9524 2003-09-21  Havoc Pennington  <hp@pobox.com>
9525
9526         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9527         by default for message bus connections.
9528
9529         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9530         exit_on_disconnect flag is set and we process the disconnected
9531         signal.
9532         (dbus_connection_set_exit_on_disconnect): new function
9533
9534 2003-09-21  Havoc Pennington  <hp@pobox.com>
9535
9536         Get matching rules mostly working in the bus; only actually
9537         parsing the rule text remains. However, the client side of
9538         "signal connections" hasn't been started, this patch is only the
9539         bus side.
9540         
9541         * dbus/dispatch.c: fix for the matching rules changes
9542         
9543         * bus/driver.c (bus_driver_handle_remove_match)
9544         (bus_driver_handle_add_match): send an ack reply from these
9545         method calls
9546
9547         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9548         arguments, reported by Seth Nickell
9549
9550         * bus/config-parser.c (append_rule_from_element): support
9551         eavesdrop=true|false attribute on policies so match rules 
9552         can be prevented from snooping on the system bus.
9553
9554         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9555         and "destination" in attribute names; fix some docs bugs; 
9556         add eavesdrop=true|false attribute
9557
9558         * bus/driver.c (bus_driver_handle_add_match)
9559         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9560         messages
9561
9562         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9563         rid of broadcast service concept, signals are just always broadcast
9564
9565         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9566         mostly implement matching rules stuff (currently only exposed as signal
9567         connections)
9568
9569 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9570
9571         * doc/dbus-specification.sgml: Change the header field name
9572         to be an enum and update the rest of the spec to reference
9573         the fields using the conventinal name.
9574
9575         * dbus/dbus-protocol.h: update to reflect the spec.
9576
9577         * doc/TODO: add item to remove the 4 byte alignment requirement.
9578         
9579         * dbus/dbus-message.c: Remove the code to generalise the
9580         header/body length and serial number header fields as named
9581         header fields so we can reference field names using the 
9582         protocol values.
9583         (append_int_field), (append_uint_field), (append_string_field):
9584         Append the field name as a byte rather than four chars.
9585         (delete_int_or_uint_field), (delete_string_field): reflect the
9586         fact that the field name and typecode now occupy 4 bytes instead
9587         of 8.
9588         (decode_string_field), (decode_header_data): update to reflect
9589         protocol changes and move the field specific encoding from
9590         decode_string_field() back into decode_header_data().
9591         
9592         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9593         Add utility to aid debugging.
9594         
9595         * dbus/dbus-message-builder.c:
9596         (append_string_field), (_dbus_message_data_load): Update to
9597         reflect protocol changes; Change the FIELD_NAME directive
9598         to HEADER_FIELD and allow it to take the field's conventional
9599         name rather than the actual value.
9600         
9601         * test/data/*/*.message: Update to use HEADER_FIELD instead
9602         of FIELD_NAME; Always align the header on an 8 byte boundary
9603         *before* updating the header length.
9604
9605 2003-09-15  Havoc Pennington  <hp@pobox.com>
9606
9607         * dbus/dbus-pending-call.c: add the get/set object data
9608         boilerplate as for DBusConnection, etc. Use generic object data
9609         for the notify callback.
9610
9611         * glib/dbus-gparser.c (parse_node): parse child nodes
9612
9613         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9614         
9615         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9616         contain functions shared between the convenience lib and the
9617         installed lib
9618
9619         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9620         -export-symbols-regex to the GLib library
9621
9622         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9623         fix the locking in here, and add a default handler for
9624         Introspect() that just returns sub-nodes.
9625
9626 2003-09-14  Havoc Pennington  <hp@pobox.com>
9627
9628         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9629         rather than gfoo consistent
9630
9631         * glib/dbus-gproxy.h: delete for now, move contents to
9632         dbus-glib.h, because the include files don't work right since we
9633         aren't in the dbus/ subdir.
9634         
9635         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9636         (dbus_gproxy_end_call): finish
9637         (dbus_gproxy_begin_call): finish
9638
9639         * glib/dbus-gmain.c (dbus_set_g_error): new
9640
9641         * glib/dbus-gobject.c (handle_introspect): include information
9642         about child nodes in the introspection
9643
9644         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9645         function to help in implementation of introspection
9646
9647         * dbus/dbus-object-tree.c
9648         (_dbus_object_tree_list_registered_and_unlock): new function
9649
9650 2003-09-12  Havoc Pennington  <hp@pobox.com>
9651
9652         * glib/dbus-gidl.h: add common base class for all the foo_info
9653         types
9654
9655         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9656         similar to kdcop
9657
9658         * test/Makefile.am: try test srcdir -ef . in addition to test
9659         srcdir = ., one of them should work (yeah lame)
9660         
9661         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9662         library
9663         
9664         * glib/dbus-gparser.h: make description_load routines return
9665         NodeInfo* not Parser*
9666
9667         * Makefile.am (SUBDIRS): build test dir after all library dirs
9668
9669         * configure.in: add GTK+ detection
9670
9671 2003-09-07  Havoc Pennington  <hp@pobox.com>
9672
9673         * Make Doxygen contented.
9674
9675 2003-09-07  Havoc Pennington  <hp@pobox.com>
9676
9677         * doc/dbus-specification.sgml: more updates
9678
9679 2003-09-06  Havoc Pennington  <hp@pobox.com>
9680
9681         * doc/dbus-specification.sgml: partial updates
9682
9683         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9684         zillionth time; hopefully I edited the right file this time.
9685
9686         * bus/config-parser.c (append_rule_from_element): support
9687         send_type, send_path, receive_type, receive_path
9688
9689         * bus/policy.c: add message type and path to the list of things
9690         that can be "firewalled"
9691
9692 2003-09-06  Havoc Pennington  <hp@pobox.com>
9693
9694         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9695         (dbus_connection_register_object_path): make this not handle
9696         messages to paths below the given path
9697
9698 2003-09-03  Havoc Pennington  <hp@pobox.com>
9699
9700         * test/glib/Makefile.am: add this with random glib-linked test
9701         programs
9702
9703         * glib/Makefile.am: remove the random test programs from here,
9704         leave only the unit tests
9705
9706         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9707         uscore/javacaps conversion, and fix     
9708         (get_object_property, set_object_property): change to .NET
9709         convention for mapping props to methods, set_FooBar/get_FooBar, 
9710         since one language has such a convention we may as well copy it. 
9711         Plus real methods in either getFooBar or get_foo_bar style won't 
9712         collide with this convention.
9713
9714 2003-09-01  Havoc Pennington  <hp@pobox.com>
9715
9716         * glib/dbus-gparser.c: implement
9717
9718         * glib/dbus-gobject.c: start implementing skeletons support
9719
9720         * configure.in: when disabling checks/assert, also define
9721         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9722
9723 2003-09-01  Havoc Pennington  <hp@pobox.com>
9724
9725         * glib/Makefile.am: rearrange a bunch of files and get "make
9726         check" framework set up
9727
9728 2003-08-31  Havoc Pennington  <hp@pobox.com>
9729
9730         * fix build with --disable-tests
9731
9732 2003-08-30  Havoc Pennington  <hp@pobox.com>
9733
9734         * dbus/dbus-connection.c: purge DBusMessageHandler
9735
9736         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9737         use callbacks everywhere
9738
9739 2003-08-30  Havoc Pennington  <hp@pobox.com>
9740
9741         * test/data/valid-config-files/system.d/test.conf: change to 
9742         root for the user so warnings don't get printed
9743
9744         * dbus/dbus-message.c: add dbus_message_get_path,
9745         dbus_message_set_path
9746         
9747         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9748         dispatching to a path
9749
9750         * dbus/dbus-string.c (_dbus_string_validate_path): add
9751
9752         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9753         (_dbus_marshal_object_path): implement
9754
9755         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9756         to contain the path to the target object
9757         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9758         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9759
9760 2003-08-30  Havoc Pennington  <hp@pobox.com>
9761
9762         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9763
9764 2003-08-29  Havoc Pennington  <hp@pobox.com>
9765
9766         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9767         registered
9768         (struct DBusObjectSubtree): shrink this
9769         a lot, since we may have a lot of them
9770         (_dbus_object_tree_free_all_unlocked): implement
9771         (_dbus_object_tree_dispatch_and_unlock): implement
9772
9773 2003-08-29  Havoc Pennington  <hp@pobox.com>
9774
9775         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9776
9777 2003-08-28  Havoc Pennington  <hp@pobox.com>
9778
9779         purge DBusObjectID
9780         
9781         * dbus/dbus-connection.c: port to no ObjectID, create a
9782         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9783
9784         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9785         everything except UnregisterFunction and MessageFunction
9786         
9787         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9788         add DBUS_TYPE_OBJECT_PATH
9789         
9790         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9791         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9792         path-based object IDs
9793
9794 2003-08-25  Havoc Pennington  <hp@pobox.com>
9795
9796         Just noticed that dbus_message_test is hosed, I wonder when I
9797         broke that. I thought make check was passing earlier...
9798         
9799         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9800         container tree, will replace most of dbus-object-registry
9801
9802         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9803         screwup
9804
9805 2003-08-19  Havoc Pennington  <hp@pobox.com>
9806
9807         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9808         (dbus_message_is_error): fix this function
9809
9810         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9811         match
9812
9813         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9814         reflect clarified man page
9815         (bus_client_policy_check_can_send): ditto
9816         
9817         * bus/session.conf.in: fixup
9818
9819         * bus/system.conf.in: fixup
9820
9821 2003-08-18  Havoc Pennington  <hp@redhat.com>
9822
9823         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9824
9825         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9826         dumb bug created earlier (wrong order of args to
9827         decode_header_data())
9828         
9829         * tools/dbus-send.c: port
9830
9831         * tools/dbus-print-message.c (print_message): port
9832
9833         * test/data/*messages: port all messages over
9834         
9835         * dbus/dbus-message-builder.c: support including 
9836         message type
9837         
9838         * bus/driver.c: port over
9839         
9840         * bus/dispatch.c: port over to new stuff
9841
9842         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9843         rename disconnect signal to "Disconnected"
9844
9845 2003-08-17  Havoc Pennington  <hp@pobox.com>
9846
9847         This doesn't compile yet, but syncing up so I can hack on it from
9848         work. What are branches for if not broken code? ;-)
9849         
9850         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9851         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9852         DBUS_HEADER_FIELD_ERROR_NAME
9853         
9854         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9855         for the interface+member pairs
9856         (string_hash): change to use g_str_hash algorithm
9857         (find_direct_function, find_string_function): refactor these to
9858         share most code.
9859         
9860         * dbus/dbus-message.c: port all of this over to support 
9861         interface/member fields instead of name field
9862
9863         * dbus/dbus-object-registry.c: port over
9864         
9865         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9866         from _dbus_string_validate_name
9867
9868         * bus/dbus-daemon-1.1: change file format for the 
9869         <deny>/<allow> stuff to match new message naming scheme
9870
9871         * bus/policy.c: port over
9872
9873         * bus/config-parser.c: parse new format
9874         
9875 2003-08-16  Havoc Pennington  <hp@pobox.com>
9876
9877         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9878         broken assertion
9879
9880         * glib/dbus-gproxy.c: some hacking
9881
9882 2003-08-15  Havoc Pennington  <hp@redhat.com>
9883
9884         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9885
9886         * dbus/dbus-connection.c
9887         (dbus_connection_send_with_reply_and_block): factor out internals;
9888         change to convert any error replies to DBusError instead of 
9889         returning them as a message
9890
9891 2003-08-15  Havoc Pennington  <hp@pobox.com>
9892
9893         * dbus/dbus-connection.c, 
9894         dbus/dbus-pending-call.c: Finish the pending call stuff
9895
9896 2003-08-14  Havoc Pennington  <hp@redhat.com>
9897
9898         * dbus/dbus-pending-call.c: start on new object that will replace
9899         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9900         replies
9901
9902         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9903         with remote interfaces
9904
9905         * dbus/dbus-gidl.c: do the boring boilerplate in here
9906         
9907 2003-08-12  Havoc Pennington  <hp@pobox.com>
9908
9909         * bus/dispatch.c (bus_dispatch): make this return proper 
9910         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9911
9912         * dbus/dbus-errors.c (dbus_set_error): use
9913         _dbus_string_append_printf_valist
9914
9915         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9916         (_dbus_string_append_printf): new
9917
9918         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9919         UNKNOWN_METHOD
9920
9921         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9922         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9923         message is unhandled.
9924
9925 2003-08-11  Havoc Pennington  <hp@pobox.com>
9926
9927         * bus/test.c (client_disconnect_handler): change to return
9928         HANDLED (would have been REMOVE_MESSAGE)
9929
9930         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9931         HANDLED/NOT_YET_HANDLED instead of
9932         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9933         should be used.
9934
9935 2003-08-10  Havoc Pennington  <hp@pobox.com>
9936
9937         * tools/dbus-send.c (main): add --type argument, for now
9938         supporting only method_call and signal types.
9939
9940         * tools/dbus-print-message.c: print message type
9941
9942         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9943         init connection->objects
9944
9945         * doc/dbus-specification.sgml: fix sgml
9946
9947         * bus/*.c: port over to object-instance API changes
9948
9949         * test/test-service.c: ditto
9950         
9951         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9952         name, we will have to fix up the rest of the code to also handle
9953         this
9954         (dbus_message_new): generic message-creation call
9955         (set_string_field): allow appending name field
9956
9957 2003-08-06  Havoc Pennington  <hp@pobox.com>
9958
9959         * dbus/dbus-object-registry.c: implement signal connection 
9960         and dispatch
9961
9962         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9963
9964         * dbus/dbus-internals.c (_dbus_memdup): new function
9965
9966 2003-08-02  Havoc Pennington  <hp@pobox.com>
9967
9968         * dbus/dbus-message.c (dbus_message_get_no_reply)
9969         (dbus_message_set_no_reply): add these and remove
9970         set_is_error/get_is_error
9971
9972         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9973         remove the ERROR flag, since there's now an ERROR type
9974
9975 2003-08-01  Havoc Pennington  <hp@pobox.com>
9976
9977         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9978         implement
9979
9980         * dbus/dbus-message.c (dbus_message_get_type): new function
9981
9982         * doc/dbus-specification.sgml: add "type" byte to messages
9983
9984 2003-08-01  Havoc Pennington  <hp@pobox.com>
9985
9986         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9987         a message type enum to distinguish kinds of message
9988         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9989         that need not be replied to
9990
9991 2003-08-01  Havoc Pennington  <hp@pobox.com>
9992
9993         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9994         (unpack_8_octets): fix no-64-bit-int bug
9995
9996         * dbus/dbus-object-registry.c (validate_id): validate the 
9997         connection ID bits, not just the instance ID.
9998
9999         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10000         the connection-global 33 bits of the object ID
10001
10002         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10003         object ID in the new way
10004
10005         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10006         define server/client/instance bits.
10007
10008 2003-07-30  Havoc Pennington  <hp@pobox.com>
10009
10010         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10011         build
10012
10013 2003-07-13  Havoc Pennington  <hp@pobox.com>
10014
10015         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10016         fields to DBusObjectVTable and DBusObjectInfo
10017
10018 2003-07-12  Havoc Pennington  <hp@pobox.com>
10019
10020         * dbus/dbus-object-registry.c: implement unit test,
10021         fix bugs discovered in process
10022
10023         * dbus/dbus-connection.c: remove handler_table and
10024         register_handler(), add DBusObjectRegistry usage
10025
10026         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10027         (dbus_object_id_set_null): new functions
10028
10029 2003-07-08  Havoc Pennington  <hp@pobox.com>
10030
10031         * dbus/dbus-object.c: implement some of this
10032
10033         * dbus/dbus-object-registry.c
10034         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10035         param
10036         (_dbus_object_registry_new): handle OOM
10037
10038 2003-07-08  Havoc Pennington  <hp@pobox.com>
10039
10040         * dbus/dbus-object.h: sketch out an API for registering objects
10041         with a connection, that allows us to use as little as 24 bytes
10042         per object and lets application code represent an object in 
10043         any conceivable way.
10044
10045         * dbus/dbus-object-registry.c: implement the hard bits of the
10046         DBusConnection aspect of object API. Not yet wired up.
10047         
10048 2003-07-06  Havoc Pennington  <hp@pobox.com>
10049
10050         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10051         (_dbus_marshal_object_id): new
10052         (_dbus_demarshal_object_id): new
10053         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10054         consolidate identical switch cases. Don't conditionalize handling
10055         of DBUS_TYPE_UINT64, need to handle the type always.
10056         (_dbus_marshal_validate_arg): consolidate identical cases, and
10057         handle DBUS_TYPE_OBJECT_ID
10058
10059         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10060
10061         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10062
10063 2003-09-28  Havoc Pennington  <hp@pobox.com>
10064
10065         * real 0.13 release
10066
10067 2003-09-28  Havoc Pennington  <hp@pobox.com>
10068
10069         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10070         to work with Debian db2html
10071
10072 2003-09-28  Havoc Pennington  <hp@pobox.com>
10073
10074         * configure.in: 0.13
10075
10076         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10077         stylesheet-images for benefit of Debian
10078         
10079         Change back to using filesystem-linked sockets for the system
10080         bus, so only root can create the default system bus address.
10081         
10082         * bus/system.conf.in: change to use
10083         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10084
10085         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10086         from here.
10087
10088         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10089         here, and AC_DEFINE DBUS_SYSTEM_PATH
10090
10091 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10092
10093         * doc/TODO:
10094         * doc/busconfig.dtd:
10095         Add busconfig DTD.
10096         
10097 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10098
10099         * doc/dbus-specification.sgml:
10100         Add activation reply values.
10101         
10102 2003-08-05  Havoc Pennington  <hp@redhat.com>
10103
10104         * configure.in: 0.12
10105
10106 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10107
10108         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10109         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10110         (add_watch), (remove_watch), (create_source):
10111         Refcount fds, fixes some reentrancy issues.
10112         
10113 2003-07-30  Havoc Pennington  <hp@redhat.com>
10114
10115         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10116         bus address to be abstract if we have abstract sockets
10117
10118         * NEWS: update
10119
10120 2003-07-28  Havoc Pennington  <hp@redhat.com>
10121
10122         * bus/messagebus.in: fix to avoid processname/servicename 
10123         confusion, from Michael Kearey
10124         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10125         
10126 2003-07-23  Havoc Pennington  <hp@pobox.com>
10127
10128         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10129         fix from Andy Hanton to remove broken "+1"
10130
10131 2003-07-16  Havoc Pennington  <hp@pobox.com>
10132
10133         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10134         babysitter process, as suggested by Thomas Leonard, so 
10135         an "eval `dbus-launch --exit-with-session`" will actually 
10136         return
10137
10138 2003-07-16  Havoc Pennington  <hp@pobox.com>
10139
10140         * configure.in: print out EXPANDED_* variables in the summary at
10141         the end; clean up the code that computes EXPANDED_ variables and
10142         get the ones using exec_prefix right. Should make things work
10143         when you build without --prefix
10144
10145 2003-06-29  Havoc Pennington  <hp@pobox.com>
10146
10147         * mono/Test.cs (class Test): fire up a main loop and run it
10148
10149         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10150         done once, the app has to do it
10151
10152 2003-06-26  Havoc Pennington  <hp@pobox.com>
10153
10154         * mono/Connection.cs: set up connection with the glib main loop
10155
10156 2003-07-01  Havoc Pennington  <hp@redhat.com>
10157
10158         * doc/dbus-specification.sgml: clarify the format of a type code,
10159         change suggested by Jim Blandy
10160
10161 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10162
10163         * doc/Makefile.am:
10164         * tools/Makefile.am: Don't assume srcdir == builddir.
10165
10166         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10167         the allocated block.
10168         (_dbus_memory_test): New function.
10169         * dbus/dbus-test.h: Add _dbus_memory_test ().
10170         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10171
10172         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10173         of %c%c%c%c.
10174         (dbus_message_new): Remove obsolete @todo.
10175
10176         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10177         (_dbus_marshal_set_uint64): Fix comment.
10178
10179         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10180         hardcode FIELD_REPLY_SERIAL.
10181
10182         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10183         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10184
10185         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10186         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10187
10188 2003-06-24  Havoc Pennington  <hp@pobox.com>
10189
10190         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10191
10192 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10193
10194         * configure.in:
10195         * gcj/.cvsignore:
10196         * gcj/Hello.java:
10197         * gcj/Makefile.am:
10198         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10199         * gcj/org/.cvsignore:
10200         * gcj/org/Makefile.am:
10201         * gcj/org/freedesktop/.cvsignore:
10202         * gcj/org/freedesktop/Makefile.am:
10203         * gcj/org/freedesktop/dbus/.cvsignore:
10204         * gcj/org/freedesktop/dbus/Makefile.am:
10205         * gcj/org/freedesktop/dbus/Message.java: (Message),
10206         (Message.Message):
10207         * gcj/org/freedesktop/dbus/natMessage.cc:
10208         Fix the build system.
10209
10210 2003-06-22  Havoc Pennington  <hp@pobox.com>
10211
10212         * mono/Connection.cs: add more bindings
10213
10214         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10215         more than once.
10216
10217 2003-06-22  Havoc Pennington  <hp@pobox.com>
10218
10219         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10220         Start wrapping more stuff.
10221
10222 2003-06-22  Havoc Pennington  <hp@pobox.com>
10223
10224         * mono/Message.cs: implement Message.Wrap() that ensures we only
10225         have a single C# wrapper per DBusMessage, assuming it works which
10226         it probably doesn't.
10227
10228         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10229         (dbus_message_free_data_slot): new
10230         (dbus_message_set_data): new
10231         (dbus_message_get_data): new
10232
10233 2003-06-22  Havoc Pennington  <hp@pobox.com>
10234
10235         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10236         (_dbus_data_slot_allocator_alloc): rework these to keep a
10237         reference count on each slot and automatically manage a global
10238         slot ID variable passed in by address
10239
10240         * bus/bus.c: convert to new dataslot API
10241
10242         * dbus/dbus-bus.c: convert to new dataslot API
10243
10244         * dbus/dbus-connection.c: convert to new dataslot API
10245
10246         * dbus/dbus-server.c: convert to new dataslot API
10247
10248         * glib/dbus-gmain.c: ditto
10249
10250         * bus/test.c: ditto
10251
10252         * bus/connection.c: ditto
10253
10254 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10255
10256         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10257         after the gcj checks so that the correct configuration tags
10258         will be added to libtool.
10259
10260         * dbus-glib-1.pc.in: No need to specify any includes since
10261         dbus-1.pc.in has those.
10262
10263 2003-06-22  Havoc Pennington  <hp@pobox.com>
10264
10265         * mono/*, gcj/*, configure.in, Makefile.am:
10266         Check in makefiles and subdirs for mono and gcj bindings.
10267         Neither binding actually exists, just trying to get through
10268         all the build and other boring bits.
10269
10270 2003-06-21  Philip Blundell  <philb@gnu.org>
10271
10272         * tools/dbus-monitor.1: Updated.
10273
10274         * tools/dbus-send.1: Likewise.
10275
10276 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10277
10278         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10279         for hangup and error after checking read so we won't discard
10280         pending data if both hangup and read are set.
10281
10282 2003-06-19  Philip Blundell  <philb@gnu.org>
10283
10284         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10285
10286         * tools/dbus-send.c: Accept both --system and --session.
10287
10288         * tools/dbus-monitor.c: Same here.
10289
10290 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10291
10292         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10293         from C++ (Patch by Miloslav Trmac).
10294
10295 2003-06-15  Joe Shaw  <joe@assbarn.com>
10296
10297         * configure.in: Check for socklen_t.
10298
10299         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10300
10301         * test/test-segfault.c: Add #include <sys/time.h>
10302
10303         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10304         dbus-launch needs it.
10305
10306 2003-06-09  Havoc Pennington  <hp@redhat.com>
10307
10308         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10309         SUN_LEN, it breaks abstract socket usage
10310
10311         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10312         starts of lines.
10313
10314 2003-06-04  Havoc Pennington  <hp@pobox.com>
10315
10316         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10317         using unix:abstract=/foo, and when listening in a tmpdir
10318         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10319
10320         * dbus/dbus-transport.c (_dbus_transport_open): support
10321         unix:abstract=/foo
10322
10323         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10324         support abstract sockets
10325
10326         * dbus/dbus-transport-unix.c
10327         (_dbus_transport_new_for_domain_socket): support abstract sockets
10328
10329         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10330         toggle as an argument, implement abstract namespace support
10331         (_dbus_listen_unix_socket): ditto
10332
10333         * configure.in: add --enable-abstract-sockets and implement
10334         a configure check for autodetection of the right value.
10335
10336 2003-06-01  Havoc Pennington  <hp@pobox.com>
10337
10338         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10339         in /tmp (though on Linux this will end up being useless,
10340         when we add abstract namespace support)
10341
10342         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10343         subst'ing it
10344
10345 2003-05-28  Colin Walters  <walters@verbum.org>
10346
10347         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10348
10349 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10350
10351         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10352
10353 2003-05-17  Colin Walters  <walters@gnu.org>
10354
10355         * tools/dbus-send.c: Don't exit with an error code if --help was
10356         passed.  Default to using the session bus instead of the system
10357         one.
10358
10359         * tools/dbus-launch.c: Ditto.
10360
10361         * tools/dbus-monitor.c: Ditto.
10362
10363         * tools/dbus-send.1: Update with new arguments.
10364
10365         * tools/dbus-launch.c: Emit code to export variables.  New
10366         arguments -s and -c to specify shell syntax, and a bit of code to
10367         autodetect syntax.  Also, allow specifying a program to run.
10368
10369         * tools/dbus-launch.1: Update with new arguments.
10370
10371         * tools/dbus-send.1: Ditto.
10372
10373         * tools/dbus-monitor.1: Ditto.
10374
10375 2003-05-17  Havoc Pennington  <hp@pobox.com>
10376
10377         * bus/config-parser.c (merge_included): merge in policies from
10378         child configuration file.
10379
10380         * bus/policy.c (bus_policy_merge): function to merge two policies
10381         together
10382
10383 2003-05-16  Havoc Pennington  <hp@redhat.com>
10384
10385         * dbus/dbus-connection.c: disable verbose lock spew
10386
10387         * tools/dbus-send.c: add --print-reply command line option
10388
10389         * tools/dbus-print-message.h (print_message): new util function
10390         shared by dbus-send and dbus-monitor
10391
10392         * tools/dbus-monitor.c (handler_func): exit on disconnect
10393
10394         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10395         disconnected, don't try to use the read_watch
10396
10397         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10398         so we can find this bug more easily
10399
10400 2003-05-16  Havoc Pennington  <hp@redhat.com>
10401
10402         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10403         NULL as DBusHashTable is annoyingly likely to do.
10404
10405 2003-05-16  Colin Walters  <walters@verbum.org>
10406
10407         * tools/dbus-monitor.c: Add --session argument and usage()
10408         function.
10409
10410         * tools/dbus-monitor.1: Update with new --session arg.
10411
10412         * bus/Makefile.am (install-data-hook): Create
10413         $(libdir)/dbus-1.0/services so that the session bus is happy.
10414
10415 2003-05-15  Havoc Pennington  <hp@redhat.com>
10416
10417         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10418         on non-x86. ifdef's are evil.
10419
10420 2003-05-15  Havoc Pennington  <hp@redhat.com>
10421
10422         * configure.in: 0.11
10423
10424         * NEWS: update
10425
10426         * bus/Makefile.am (initddir): apparently we are supposed to put
10427         init scripts in /etc/rc.d/init.d not /etc/init.d
10428
10429         * bus/Makefile.am: remove the "you must --enable-tests to make
10430         check" as it broke distcheck
10431
10432         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10433
10434 2003-05-13  James Willcox  <jwillcox@gnome.org>
10435
10436         * configure.in:
10437         * bus/activation.c: (bus_activation_service_created),
10438         (bus_activation_activate_service):
10439         * bus/driver.c: (bus_driver_send_service_deleted),
10440         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10441         (bus_driver_send_service_acquired),
10442         (bus_driver_send_welcome_message),
10443         (bus_driver_handle_list_services):
10444         * bus/session.conf.in:
10445         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10446         (dbus_bus_service_exists), (dbus_bus_activate_service):
10447         * dbus/dbus-bus.h:
10448
10449         Add some convenience API which lets you activate a service, and did a
10450         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10451         and dbus_message_get_args()
10452
10453 2003-05-11  Havoc Pennington  <hp@pobox.com>
10454
10455         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10456         calling _dbus_marshal_validate_arg() for every byte in a byte
10457         array, etc.
10458
10459         * dbus/dbus-message-handler.c: use atomic reference counting to
10460         reduce number of locks slightly; the global lock in here sucks
10461
10462         * dbus/dbus-connection.c
10463         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10464         update_dispatch_status that can be called with lock held; then use
10465         in a couple places to reduce locking/unlocking
10466         (dbus_connection_send): hold the lock over the whole function
10467         instead of acquiring it twice.
10468
10469         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10470
10471         * bus/connection.c (bus_connections_setup_connection): fix access
10472         to already-freed memory.
10473
10474         * dbus/dbus-connection.c: keep a little cache of linked list
10475         nodes, to avoid using the global linked list alloc lock in the
10476         normal send-message case. Instead we just use the connection lock
10477         that we already have to take.
10478
10479         * dbus/dbus-list.c (_dbus_list_find_last): new function
10480
10481         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10482         change to use a struct for the atomic type; fix docs,
10483         they return value before increment, not after increment.
10484
10485         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10486         (_dbus_string_append_8_aligned): new functions to try to
10487         microoptimize this operation.
10488         (reallocate_for_length): break this out of set_length(), to
10489         improve profile info, and also so we can consider inlining the
10490         set_length() part.
10491
10492         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10493         strings with some preallocation, cuts down on our calls to realloc
10494         a fair bit. Though if we can get the "move entire string to empty
10495         string" optimization below to kick in here, it would be better.
10496
10497         * dbus/dbus-string.c (_dbus_string_move): just call
10498         _dbus_string_move_len
10499         (_dbus_string_move_len): add a special case for moving
10500         an entire string into an empty string; we can just
10501         swap the string data instead of doing any reallocs.
10502         (_dbus_string_init_preallocated): new function
10503
10504 2003-05-11  Havoc Pennington  <hp@pobox.com>
10505
10506         Write a "test-profile" that does echo client-server with threads;
10507         profile reveals lock contention, memcpy/realloc of buffers, and
10508         UTF-8 validation as hot spots. 20% of lock contention eliminated
10509         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10510         contention is global mempool locks for GList and DBusList.
10511
10512         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10513         x86 implementation
10514
10515         * dbus/dbus-connection.c (struct DBusConnection): use
10516         dbus_atomic_t for the reference count
10517
10518         * dbus/dbus-message.c (struct DBusMessage): declare
10519         dbus_atomic_t values as volatile
10520
10521         * configure.in: code to detect ability to use atomic integer
10522         operations in assembly, from GLib patch
10523
10524         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10525         time, tired of it being wrong in threads and forked processes
10526
10527         * glib/test-profile.c: a little program to bounce messages back
10528         and forth between threads and eat CPU
10529
10530         * dbus/dbus-connection.c: add debug spew macros for debugging
10531         thread locks; include config.h at top; fix deadlock in
10532         dbus_connection_flush()
10533
10534 2003-05-08  Havoc Pennington  <hp@pobox.com>
10535
10536         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10537         data from getting written, and there wasn't a good reason to
10538         use _exit really.
10539
10540         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10541         dbus_verbose lines in test coverage
10542         (main): add list of functions sorted by # of untested blocks
10543         to the coverage report
10544
10545         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10546
10547         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10548
10549         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10550         extend test coverage
10551
10552         * test/data/auth/cancel.auth-script: test canceling an
10553         authentication
10554
10555         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10556         aren't used. in CVS history if we end up needing them.
10557
10558 2003-05-04  Havoc Pennington  <hp@pobox.com>
10559
10560         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10561         unit test
10562
10563         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10564         function, which assumed length was in # of strings, not bytes
10565
10566         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10567         missing coverage
10568
10569         * dbus/dbus-connection.c
10570         (_dbus_connection_queue_received_message): disable function for
10571         now, we are only using it in test mode
10572
10573         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10574         remove a mistaken FIXME
10575
10576 2003-05-04  Havoc Pennington  <hp@pobox.com>
10577
10578         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10579         unlock mutex on successful return, patch from Anders Gustafsson
10580
10581 2003-05-04  Havoc Pennington  <hp@pobox.com>
10582
10583         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10584         Anders Gustafsson
10585
10586 2003-05-04  Havoc Pennington  <hp@pobox.com>
10587
10588         * tools/dbus-launch.c: implement
10589
10590         * bus/main.c (main), bus/bus.c (bus_context_new):
10591         implement --print-pid and --fork
10592
10593 2003-05-03  Havoc Pennington  <hp@redhat.com>
10594
10595         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10596         the address had no value, and add to test suite. Fix and
10597         regression test from Miloslav Trmac
10598
10599 2003-05-03  Havoc Pennington  <hp@pobox.com>
10600
10601         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10602         watch is invalid when handled
10603
10604         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10605         dbus-launch utility to launch the bus from a shell script.  Didn't
10606         actually implement dbus-launch yet, it's just a placeholder still.
10607
10608 2003-05-03  Havoc Pennington  <hp@pobox.com>
10609
10610         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10611         daemon; also documents daemon config file, so replaces
10612         doc/config-file.txt. Corrected some stuff from config-file.txt in
10613         the process of moving it.
10614
10615 2003-05-03  Havoc Pennington  <hp@pobox.com>
10616
10617         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10618         add some man pages
10619
10620 2003-05-03  Colin Walters  <walters@verbum.org>
10621
10622         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10623         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10624
10625         * Makefile.am: Update to use new .pc versioning scheme.
10626
10627 2003-05-02  Havoc Pennington  <hp@redhat.com>
10628
10629         * bus/system.conf.in: allow send/receive to/from message bus
10630         service
10631
10632 2003-04-30  Havoc Pennington  <hp@redhat.com>
10633
10634         * configure.in: print a note when building with unit tests and
10635         without assertions
10636
10637 2003-04-30  Havoc Pennington  <hp@redhat.com>
10638
10639         * Makefile.am: add a check-local that complains if you didn't
10640         configure with --enable-tests
10641
10642 2003-04-29  Havoc Pennington  <hp@redhat.com>
10643
10644         * glib/dbus-gmain.c: docs cleanups
10645
10646         * dbus/dbus-types.h: add docs on int64 types
10647
10648         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10649         public API docs section
10650
10651 2003-04-29  Havoc Pennington  <hp@redhat.com>
10652
10653         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10654         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10655         parallel install API version, not with the D-BUS package version.
10656
10657         * HACKING: move some of README over here
10658
10659         * README: updates, and document API/ABI policy
10660
10661         * configure.in: reindentation
10662
10663 2003-04-29  Havoc Pennington  <hp@redhat.com>
10664
10665         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10666         to use this library" to be sure people have the right
10667         expectations.
10668
10669 2003-04-28  Havoc Pennington  <hp@redhat.com>
10670
10671         * configure.in: add --enable-docs which by default is auto yes if
10672         doxygen and db2html found, no otherwise; but can be forced on/off
10673
10674         * doc/Makefile.am: conditionalize whether to build docs on
10675         --enable-docs
10676
10677 2003-04-28  Havoc Pennington  <hp@redhat.com>
10678
10679         * configure.in: 0.10
10680
10681         * NEWS: update
10682
10683         * bus/system.conf.in: add <includedir>system.d</includedir>
10684
10685         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10686         username was provided but not uid
10687
10688         * bus/config-parser.c (struct BusConfigParser): keep track of
10689         whether the parser is toplevel or was included; change some
10690         of the error handling if it's included.
10691
10692 2003-04-27  Havoc Pennington  <hp@pobox.com>
10693
10694         Unbreak my code...
10695
10696         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10697         report correct status if we finish processing authentication
10698         inside this function.
10699
10700         * bus/activation.c (try_send_activation_failure): use
10701         bus_transaction_send_error_reply
10702
10703         * bus/connection.c (bus_connection_get_groups): return an error
10704         explaining the problem
10705
10706         * bus/bus.c (bus_context_check_security_policy): implement
10707         restriction here that inactive connections can only send the
10708         hello message. Also, allow bus driver to send anything to
10709         any recipient.
10710
10711         * bus/connection.c (bus_connection_complete): create the
10712         BusClientPolicy here instead of on-demand.
10713         (bus_connection_get_policy): don't return an error
10714
10715         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10716         sender field in message being replied to
10717
10718         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10719         causing it to return FALSE always
10720
10721         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10722         we checked sender rather than destination
10723
10724 2003-04-25  Havoc Pennington  <hp@redhat.com>
10725
10726         test suite is slightly hosed at the moment, will fix soon
10727
10728         * bus/connection.c (bus_connections_expire_incomplete): fix to
10729         properly disable the timeout when required
10730         (bus_connection_set_name): check whether we can remove incomplete
10731         connections timeout after we complete each connection.
10732
10733         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10734         probably still broken.
10735
10736         * bus/services.c (bus_registry_acquire_service): implement max
10737         number of services owned, and honor allow/deny rules on which
10738         services a connection can own.
10739
10740         * bus/connection.c (bus_connection_get_policy): report errors here
10741
10742         * bus/activation.c: implement limit on number of pending
10743         activations
10744
10745 2003-04-25  Havoc Pennington  <hp@redhat.com>
10746
10747         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10748         where we used >= 0 instead of != DBUS_UID_UNSET.
10749
10750 2003-04-25  Havoc Pennington  <hp@redhat.com>
10751
10752         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10753         were toggled without add/remove, fix from Anders Gustafsson
10754
10755 2003-04-24  Havoc Pennington  <hp@redhat.com>
10756
10757         * test/data/valid-config-files/basic.conf: add <limit> tags to
10758         this test
10759
10760         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10761         <limit> tag in configuration file.
10762
10763 2003-04-24  Havoc Pennington  <hp@redhat.com>
10764
10765         * bus/dispatch.c: somehow missed some name_is
10766
10767         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10768         (_dbus_timeout_set_interval): new
10769
10770         * bus/connection.c (bus_connections_setup_connection): record time
10771         when each connection is first set up, and expire them after the
10772         auth timeout passes.
10773
10774 2003-04-24  Havoc Pennington  <hp@redhat.com>
10775
10776         * dbus/dbus-message.c (dbus_message_name_is): rename
10777         (dbus_message_service_is): rename
10778         (dbus_message_sender_is): rename
10779         (dbus_message_get_service): rename
10780
10781 2003-04-24  Havoc Pennington  <hp@redhat.com>
10782
10783         * configure.in: add --enable-checks
10784
10785         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10786
10787         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10788         to use thread locks.
10789         (_dbus_connection_handler_destroyed_locked): move some private
10790         functions into proper docs group
10791
10792         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10793         _dbus_return_val_if_fail
10794
10795         Throughout: use dbus_return_if_fail
10796
10797 2003-04-23  James Willcox  <jwillcox@gnome.org>
10798
10799         * glib/dbus-glib.h:
10800         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10801         (dbus_connection_setup_with_g_main),
10802         (dbus_server_setup_with_g_main):
10803         * glib/test-dbus-glib.c: (main):
10804         * glib/test-thread-client.c: (main):
10805         * glib/test-thread-server.c: (new_connection_callback), (main):
10806         * tools/dbus-monitor.c: (main):
10807
10808         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10809         and dbus_server_setup_with_g_main().
10810
10811 2003-04-20  Havoc Pennington  <hp@pobox.com>
10812
10813         * doc/dbus-specification.sgml: document the restrictions on
10814         message and service names
10815
10816 2003-04-22  Havoc Pennington  <hp@redhat.com>
10817
10818         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10819         support, and do some code cleanups to share more code and
10820         speed up array marshal/demarshal.
10821
10822         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10823
10824         * configure.in: generate dbus-arch-deps.h
10825
10826         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10827         64-bit typecodes
10828
10829 2003-04-22  Havoc Pennington  <hp@redhat.com>
10830
10831         * test/data/valid-messages/opposite-endian.message: fix test
10832         to use proper type for rply field
10833
10834         * test/data/invalid-messages: add tests for below validation
10835
10836         * dbus/dbus-message.c (decode_header_data): validate field types,
10837         and validate that named fields are valid names
10838         (decode_name_field): consider messages in the
10839         org.freedesktop.Local. namespace to be invalid.
10840
10841         * dbus/dbus-string.c (_dbus_string_validate_name): new
10842
10843 2003-04-19  Havoc Pennington  <hp@pobox.com>
10844
10845         * bus/driver.c (bus_driver_handle_hello): check limits and
10846         return an error if they are exceeded.
10847
10848         * bus/connection.c: maintain separate lists of active and inactive
10849         connections, and a count of each. Maintain count of completed
10850         connections per user. Implement code to check connection limits.
10851
10852         * dbus/dbus-list.c (_dbus_list_unlink): export
10853
10854         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10855         number of bytes in the message queue for a connection
10856
10857 2003-04-18  Havoc Pennington  <hp@pobox.com>
10858
10859         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10860
10861         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10862         memleaks
10863
10864         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10865         on realloc be sure to update the pointer in the keyring
10866
10867         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10868         offset to avoid writing to unallocated memory
10869
10870         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10871         try the next mechanism, so we properly handle OOM
10872
10873         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10874         on OOM.
10875         (_dbus_keyring_new): fix OOM bug
10876         (_dbus_keyring_new_homedir): always set error; impose a maximum
10877         number of keys we'll load from the file, mostly to speed up the
10878         test suite and make its OOM checks more useful, but also for
10879         general sanity.
10880
10881         * dbus/dbus-auth.c (process_error_server): reject authentication
10882         if we get an error from the client
10883         (process_cancel): on cancel, send REJECTED, per the spec
10884         (process_error_client): send CANCEL if we get an error from the
10885         server.
10886
10887 2003-04-18  Havoc Pennington  <hp@pobox.com>
10888
10889         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10890         debug spew
10891
10892         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10893         handling problem
10894
10895         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10896         about DBUS_TEST_HOMEDIR once
10897
10898         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10899         the environment
10900
10901         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10902         config file so we test the right thing
10903
10904         Throughout: assorted docs improvements
10905
10906 2003-04-18  Havoc Pennington  <hp@pobox.com>
10907
10908         * glib/dbus-gmain.c: adapt to watch changes
10909
10910         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10911
10912         * dbus/dbus-server.h: remove dbus_server_handle_watch
10913
10914         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10915
10916         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10917         like DBusTimeout, so we don't need dbus_connection_handle_watch
10918         etc.
10919
10920 2003-04-17  Havoc Pennington  <hp@redhat.com>
10921
10922         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10923         database usage so it all goes via the DBusUserDatabase cache.
10924
10925 2003-04-17  Havoc Pennington  <hp@redhat.com>
10926
10927         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10928         there was an OOM watch we skipped, we always return TRUE so we
10929         iterate again to have a look at it again. Fixes test suite hang.
10930         Code rearrangement also lets us lose some memset and only iterate
10931         over callbacks once.
10932
10933         * bus/driver.c (bus_driver_handle_message): sense of test for
10934         reply was backward
10935
10936 2003-04-16  Havoc Pennington  <hp@pobox.com>
10937
10938         * doc/dbus-specification.sgml: make spec say serials are unsigned
10939
10940         * dbus/dbus-message.h: change message serials to unsigned
10941
10942         * dbus/dbus-connection.c: adapt to message serials being unsigned
10943
10944 2003-04-15  Havoc Pennington  <hp@pobox.com>
10945
10946         * bus/bus.c: create and keep around a shared DBusUserDatabase
10947         object.
10948
10949         * bus/connection.c (bus_connection_get_groups): don't cache
10950         groups for user in the connection object, since user database
10951         object now does that.
10952
10953 2003-04-16  Havoc Pennington  <hp@redhat.com>
10954
10955         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10956         list of size counters
10957         (_dbus_message_loader_putback_message_link): put back a popped link
10958
10959         * dbus/dbus-connection.c
10960         (dbus_connection_set_max_live_messages_size): rename
10961         max_received_size
10962         (dbus_connection_get_outgoing_size): get size of outgoing
10963         queue
10964         (_dbus_connection_set_connection_counter): remove this cruft
10965
10966 2003-04-14  Havoc Pennington  <hp@redhat.com>
10967
10968         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10969         caching, but at some point we might want to be able to use a
10970         different database.
10971
10972         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10973         SHA1 conf file to test the sha1 auth mechanism, since the regular
10974         test always uses EXTERNAL when available.
10975
10976         * configure.in,
10977         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10978         add conf file that requires use of sha1 auth
10979
10980 2003-04-13  Havoc Pennington  <hp@pobox.com>
10981
10982         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10983         from Philip Blundell to send messages and monitor them.
10984
10985 2003-04-13  Havoc Pennington  <hp@pobox.com>
10986
10987         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10988         callbacks
10989
10990         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10991         users
10992
10993         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10994         fix to only recover unused bytes if we're already authenticated
10995         (_dbus_transport_get_is_authenticated): fix to still mark us
10996         authenticated if there are unused bytes.
10997
10998         * bus/dispatch.c: implement security policy checking
10999
11000         * bus/connection.c (bus_transaction_send_from_driver): new
11001
11002         * bus/bus.c (bus_context_check_security_policy): new
11003
11004         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11005         now we just set the DBusError and it gets converted to an error
11006         reply.
11007
11008         * bus/connection.c (allow_user_function): enable code using actual
11009         data from the config file
11010
11011         * bus/policy.c (list_allows_user): handle wildcard rules for
11012         user/group connection perms
11013
11014 2003-04-13  Havoc Pennington  <hp@pobox.com>
11015
11016         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11017
11018         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11019
11020         * bus/policy.c (bus_policy_append_mandatory_rule)
11021         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11022         (bus_policy_append_group_rule): new functions
11023
11024 2003-04-12  Havoc Pennington  <hp@pobox.com>
11025
11026         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11027
11028         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11029         the pid/gid/uid, just for paranoia.
11030
11031         * test/break-loader.c (randomly_do_n_things): find a byte
11032         containing a type code, and randomly change it to a different
11033         type code.
11034
11035 2003-04-12  Havoc Pennington  <hp@pobox.com>
11036
11037         * bus/policy.h: change BusPolicy to be the thing from the config
11038         file, and rename old BusPolicy to BusClientPolicy
11039
11040         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11041         match change in how policy works
11042
11043         * dbus/dbus-internals.h: mark assert_not_reached as
11044         __attribute((noreturn))__
11045
11046 2003-04-11  Havoc Pennington  <hp@redhat.com>
11047
11048         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11049         the broadcast service. Use boolean return for ServiceExists.
11050
11051 2003-04-11  Havoc Pennington  <hp@redhat.com>
11052
11053         * configure.in: add another directory to look for qt in.
11054
11055 2003-04-11  Havoc Pennington  <hp@redhat.com>
11056
11057         * AUTHORS: add Colin Walters
11058
11059 2003-04-11  Havoc Pennington  <hp@redhat.com>
11060
11061         * NEWS: update
11062
11063         * configure.in: 0.9
11064
11065 2003-04-11  Havoc Pennington  <hp@redhat.com>
11066
11067         * bus/messagebus.in: remove pid file when stopping the
11068         message bus, since the bus won't have privileges to remove it
11069         itself.
11070
11071 2003-04-11  Havoc Pennington  <hp@redhat.com>
11072
11073         * bus/bus.c (bus_context_new): move credentials change after
11074         creating pidfile
11075
11076 2003-04-11  Havoc Pennington  <hp@pobox.com>
11077
11078         * test/decode-gcov.c: add "below average functions" to the
11079         coverage report, and change how some of the code works.
11080
11081         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11082         not in the coverage stats.
11083
11084         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11085         couple places so running the test suite doesn't result in megaspam.
11086
11087 2003-04-11  Havoc Pennington  <hp@pobox.com>
11088
11089         * bus/dispatch.c (check_existent_service_activation): accept a no
11090         memory error in a place we didn't before
11091
11092         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11093         in case the first one failed," since the test suite is less
11094         broken now.
11095
11096 2003-04-10  Havoc Pennington  <hp@pobox.com>
11097
11098         * bus/dispatch.c (check_segfault_service_activation): add test
11099         for launching an executable that just crashes.
11100
11101         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11102         don't leave a million cores. We'll see how portable this is.
11103
11104 2003-04-10  Havoc Pennington  <hp@pobox.com>
11105
11106         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11107         the possible parent failures before we fork, so that we don't
11108         fail to create a babysitter after creating the child.
11109
11110         * bus/activation.c (bus_activation_activate_service): kill child
11111         if we don't successfully complete the activation.
11112
11113 2003-04-10  Havoc Pennington  <hp@redhat.com>
11114
11115         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11116         the connection if it's disconnected
11117
11118         * bus/activation.c (bus_activation_service_created): use new
11119         transaction features to roll back removal of pending activation if
11120         we don't successfully create the service after all. Don't remove
11121         pending activation if the function fails.
11122
11123         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11124         (_dbus_list_insert_after_link): new code to facilitate
11125         services.c fixes
11126
11127         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11128         new functionality, so we can preallocate the ability to insert
11129         into a hash table.
11130
11131         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11132         allowing us to put custom hooks in a transaction to be used for
11133         cancelling said transaction
11134
11135         * doc/dbus-specification.sgml: add some discussion of secondary
11136         service owners, and disallow zero-length service names
11137
11138         * bus/services.c (bus_registry_acquire_service): new function,
11139         splits out part of bus_driver_handle_acquire_service() and fixes
11140         a bug where we didn't remove the service doing the acquiring
11141         from the secondary queue if we failed to remove the current owner
11142         from the front of the queue.
11143
11144 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11145
11146         * doc/dbus-specification.sgml:
11147         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11148
11149 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11150
11151         * bus/.cvsignore:
11152         * glib/.cvsignore:
11153         * test/.cvsignore:
11154         Added files to cvsignore
11155
11156         * dbus/dbus-message.h:
11157         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11158         Make get_named() take two out argument and return a boolean.
11159         (dbus_message_iter_get_args_valist):
11160         Update usage of get_named().
11161         (dbus_message_iter_append_byte):
11162         Fix typo
11163         (dbus_message_iter_append_named)
11164         Fix typo
11165         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11166         More tests.
11167
11168 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11169
11170         * dbus/dbus-marshal.[ch]:
11171         Add array_type_pos argument to _dbus_marshal_validate_arg.
11172         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11173
11174         * dbus/dbus-message.[ch]:
11175         Multi-dimensional arrays have full type specification in the
11176         outermost array. Iter code re-arranged to handle this.
11177         Added some more iter tests.
11178
11179         * doc/dbus-specification.sgml:
11180         Add me to authors.
11181         Remove old FIXME.
11182         Update new array encoding description.
11183         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11184
11185         * test/data/invalid-messages/array-with-mixed-types.message:
11186         * test/data/valid-messages/array-of-array-of-uint32.message:
11187         Change to the new array format.
11188
11189         * test/data/invalid-messages/too-short-dict.message:
11190         Fix bug in test.
11191
11192         * test/data/valid-messages/recursive-types.message:
11193         Fix up and extend test.
11194
11195 2003-04-10  Havoc Pennington  <hp@pobox.com>
11196
11197         * bus/dispatch.c: lots of fixes
11198
11199         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11200         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11201         that was crack, broke the test service.
11202
11203         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11204         handling to avoid piling up errors if we get a failure on the
11205         first address.
11206
11207         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11208         pid in assertion failures.
11209
11210         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11211         to some fixed size of file descriptor array. Don't return TRUE
11212         anytime a timeout exists, that led to lots of busy loop silliness
11213         in the tests.
11214
11215 2003-04-09  Havoc Pennington  <hp@redhat.com>
11216
11217         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11218         I'd checked this in earlier but hadn't.
11219
11220 2003-04-09  Havoc Pennington  <hp@redhat.com>
11221
11222         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11223         the activation test (man this is getting old!)
11224
11225 2003-04-09  Havoc Pennington  <hp@redhat.com>
11226
11227         * test/test-utils.c: use dispatch status function to fix this up
11228
11229         * bus/connection.c (connection_watch_callback): don't dispatch
11230         from here
11231         (connection_timeout_callback): don't dispatch from here
11232         (bus_connections_setup_connection): set the dispatch status function
11233         (bus_connection_disconnected): unset it
11234
11235         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11236         used to add a connection to be dispatched
11237         (_dbus_loop_iterate): do the dispatching at the end of each
11238         iteration
11239
11240         * dbus/dbus-connection.c
11241         (dbus_connection_set_dispatch_status_function): new function
11242         allowing us to fix up main loop usage
11243         (_dbus_connection_last_unref): free all the various function
11244         user data
11245         (dbus_connection_dispatch): call the DispatchStatusFunction
11246         whenever this function returns
11247         (dbus_connection_handle_watch): call DispatchStatusFunction
11248         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11249         (reply_handler_timeout): call DispatchStatusFunction
11250         (dbus_connection_flush): call DispatchStatusFunction
11251
11252 2003-04-09  Havoc Pennington  <hp@redhat.com>
11253
11254         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11255         a memory leak
11256
11257         * bus/dispatch.c (check_service_activated): fix bug in test
11258
11259         * dbus/dbus-mainloop.c (check_timeout): fix this up
11260
11261         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11262         verbose output so we can sort out output from different processes,
11263         e.g. in the activation case.
11264
11265 2003-04-08  Colin Walters  <walters@gnu.org>
11266
11267         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11268         the pid file.
11269         (bus_context_new): Set it.
11270         (bus_context_unref): Use it to delete the pid file.
11271
11272 2003-04-08  Havoc Pennington  <hp@redhat.com>
11273
11274         * test/data/invalid-messages/array-with-mixed-types.message:
11275         regression test that fails for the moment
11276
11277         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11278         tests for convenience
11279
11280         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11281         array of nil, it broke things.
11282
11283         * test/data/invalid-messages/array-of-nil.message: regression test
11284
11285         * test/data/valid-messages/array-of-array-of-uint32.message:
11286         happened to write this so added it to suite
11287
11288 2003-04-08  Havoc Pennington  <hp@redhat.com>
11289
11290         * bus/driver.c (bus_driver_handle_acquire_service): init
11291         retval/reply before checking name
11292
11293         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11294         recursion depth argument
11295
11296         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11297         in the public struct for future extension
11298
11299         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11300         typo
11301
11302         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11303         message
11304
11305         * doc/dbus-specification.sgml: fix typo
11306
11307 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11308
11309         Implemented recursive types, named types and new-style iters
11310
11311         * bus/driver.c:
11312         * glib/test-thread-client.c: (thread_func):
11313         * glib/test-thread-server.c: (handle_test_message):
11314         * test/test-service.c: (handle_echo):
11315         Update to new api
11316
11317         * dbus/Makefile.am:
11318         * dbus/dbus-dict.c:
11319         * dbus/dbus-dict.h:
11320         * dbus/dbus.h
11321         Remove DBusDict
11322
11323         * dbus/dbus-internals.c: (_dbus_type_to_string):
11324         Update for new types.
11325
11326         * dbus/dbus-marshal.[ch]:
11327         Implement recursive types and the new marshalling format.
11328         Remove hardcoded dict marshalling.
11329         Marshal named types.
11330
11331         * dbus/dbus-message-builder.c:
11332         Add BYTE_ARRAY.
11333         Remove references to old types
11334
11335         * dbus/dbus-message.[ch]:
11336         New non-refcounted iter API that supports recursive iters.
11337         Use iters for appending, including support for recursive
11338         iters.
11339         Add byte and named type support.
11340         Update everything to new marshalling formats.
11341         Add tests for new API.
11342
11343         * dbus/dbus-protocol.h:
11344         Remove old array types.
11345         Add types: BYTE, ARRAY, DICT, NAMED
11346
11347         * dbus/dbus-string.c:
11348         * dbus/dbus-sysdeps.c:
11349         Make parse_double locale safe.
11350
11351         * dbus/dbus-test-main.c:
11352         Call setlocale.
11353
11354         * dbus/dbus-test.c:
11355         Kill dict test
11356
11357         * doc/dbus-specification.sgml:
11358         Update spec
11359
11360         * test/data/incomplete-messages/missing-body.message:
11361         * test/data/invalid-messages/bad-boolean.message:
11362         * test/data/invalid-messages/bad-boolean-array.message:
11363         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11364         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11365         * test/data/invalid-messages/too-short-dict.message:
11366         * test/data/valid-messages/dict-simple.message:
11367         * test/data/valid-messages/dict.message:
11368         * test/data/valid-messages/emptiness.message:
11369         * test/data/valid-messages/lots-of-arguments.message:
11370         * test/data/valid-messages/no-padding.message:
11371         * test/data/valid-messages/recursive-types.message:
11372         Add missing NAME fields
11373         Fix up dicts & arrays
11374
11375         * test/data/invalid-messages/dict-with-nil-value.message:
11376         Removed, this is not invalid anymore.
11377
11378         * test/data/valid-messages/recursive-types.message:
11379         Add new test for deeply recursive types.
11380
11381 2003-04-07  Havoc Pennington  <hp@pobox.com>
11382
11383         * bus/driver.c (bus_driver_handle_acquire_service): return an
11384         error if you try to acquire a service that starts with ':'
11385
11386 2003-04-07  Havoc Pennington  <hp@redhat.com>
11387
11388         * doc/dbus-specification.sgml: require that base service names
11389         start with ':' and that the base service is created/deleted
11390         as first and last things a connection does on the bus
11391
11392         * bus/dispatch.c (check_existent_service_activation): lots more
11393         work on the activation test; it doesn't fully pass yet...
11394
11395         * test/test-service.c (main): fix so we don't memleak the
11396         connection to the message bus
11397         (filter_func): accept a message asking us to exit
11398
11399 2003-04-06  Havoc Pennington  <hp@pobox.com>
11400
11401         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11402         from Colin Walters
11403
11404         * configure.in: fixes to Qt detection from Colin Walters
11405
11406         * doc/Makefile.am: Only remove generated docbook dirs if they
11407         exist, from Colin Walters
11408
11409         * dbus/dbus-bus.c: change how we set well-known connections to
11410         NULL, so that it works if a single connection is stored in
11411         two well-known array slots.
11412
11413         * test/Makefile.am: remove a lot of stuff that isn't immediately
11414         useful, it's in CVS history if we want it.
11415
11416         * test/test-service.c: use dbus-mainloop instead of that
11417         watch.[hc] crack
11418
11419 2003-04-06  Havoc Pennington  <hp@pobox.com>
11420
11421         * dbus/Makefile.am: split lists of sources into stuff that goes in
11422         the library, util functions that go in the lib and are also used
11423         elsewhere, and util functions that are used in tests/daemon but
11424         don't go in the lib.
11425
11426         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11427         here so it can be used in test binaries also
11428
11429 2003-04-06  Havoc Pennington  <hp@pobox.com>
11430
11431         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11432         here in the parent process, so we can return an error if it
11433         fails. Also, move some of the code into the child so the parent
11434         is less hosed if we fail midway through.
11435
11436         * bus/bus.c (bus_context_new): move pidfile detection further up
11437         in the function, before we start overwriting sockets and such.
11438
11439         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11440
11441         * configure.in: add --with-system-pid-file and --with-system-socket
11442
11443 2003-04-06  Colin Walters  <walters@verbum.org>
11444
11445         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11446
11447         * bus/system.conf.in: Declare a pidfile.
11448
11449         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11450         create one (if appropriate).
11451
11452         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11453         (struct BusConfigParser) [pidfile]: New.
11454         (element_type_to_name, merge_included, start_busconfig_child)
11455         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11456         (bus_config_parser_unref): Free it.
11457         (bus_config_parser_get_pidfile): New function.
11458
11459         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11460
11461         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11462
11463         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11464
11465         * dbus/dbus-sysdeps.h: Prototype it.
11466
11467 2003-04-06  Havoc Pennington  <hp@pobox.com>
11468
11469         * bus/bus.c (bus_context_new): print the address in here, rather
11470         than in main(), because we need to do it before forking the daemon
11471
11472         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11473         on the service nonexistent error
11474
11475         * bus/driver.c (bus_driver_handle_acquire_service): set the
11476         sender on the AcquireService reply
11477
11478         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11479         server also listen on a UNIX socket so services can connect to it.
11480
11481 2003-04-06  Havoc Pennington  <hp@pobox.com>
11482
11483         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11484         so it detects deadlocks and also we actually init threads when
11485         debugging.
11486
11487 2003-04-06  Havoc Pennington  <hp@pobox.com>
11488
11489         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11490         save the domain socket name, and unlink it when we disconnect the
11491         server. Means that at least when we exit normally, we won't leave
11492         a bunch of junk in /tmp
11493
11494         * dbus/dbus-transport-unix.c
11495         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11496         memory management). (I was making a real change here but then
11497         didn't)
11498
11499 2003-04-06  Havoc Pennington  <hp@pobox.com>
11500
11501         * bus/bus.c (bus_context_new): fix wrong handling of
11502         server_data_slot_unref() in the error case.
11503
11504         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11505         "(condition) != 0" to _dbus_real_assert so that
11506         "_dbus_assert (pointer)" doesn't cause a warning
11507
11508         * bus/main.c (main): accept --print-address option to print out
11509         the message bus address
11510
11511         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11512
11513         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11514         "tmpdir" option to unix: address on client side
11515
11516         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11517         to unix: address
11518
11519         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11520         we can use to create sockets in the test suite.
11521
11522         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11523         cleanly. To be used for testing.
11524
11525         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11526
11527         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11528
11529         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11530         handle trying to call this when there's no servers active
11531
11532 2003-04-05  Havoc Pennington  <hp@pobox.com>
11533
11534         * NEWS: update
11535
11536         * configure.in: 0.8
11537
11538 2003-04-05  Havoc Pennington  <hp@pobox.com>
11539
11540         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11541         crash on startup. Need to get "try starting the daemon"
11542         in the test suite I guess. ;-)
11543
11544         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11545         tracked the number of open connections; it's better done in
11546         application-specific code as you want it to span all servers etc.
11547
11548 2003-04-05  Havoc Pennington  <hp@pobox.com>
11549
11550         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11551         patch from Colin Walters
11552
11553 2003-04-05  Havoc Pennington  <hp@pobox.com>
11554
11555         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11556         reality; in fact multiple mechanisms are allowed.
11557
11558         * dbus/dbus-internals.c (_dbus_real_assert)
11559         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11560         _dbus_assert_not_reached() into functions, so that they don't show
11561         up in basic block counts for test coverage, and don't use up as
11562         much disk space. Does mean slower execution speed though, so
11563         assumes --disable-asserts is the normal production case.
11564
11565 2003-04-05  Havoc Pennington  <hp@pobox.com>
11566
11567         * test/Makefile.am (dist-hook): also dist *.in files
11568
11569         * NEWS: update
11570
11571         * configure.in: 0.7
11572
11573 2003-04-05  Havoc Pennington  <hp@pobox.com>
11574
11575         * dbus/dbus-string.c: docs warning
11576
11577         * dbus/dbus-spawn.c: missing docs
11578
11579         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11580
11581 2003-04-05  Havoc Pennington  <hp@pobox.com>
11582
11583         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11584         magic from GLib
11585
11586         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11587         to -1 once we've reaped the babysitter
11588         (_dbus_babysitter_handle_watch): do as much work as we can, not
11589         just one go of it
11590
11591         * bus/activation.c: add code using DBusBabysitter so that we
11592         handle it when a service fails to start up properly.
11593         (bus_activation_service_created): don't remove the activation
11594         entries as we go, just let them get removed when we free the pending
11595         activation. Unref reply messages after sending them.
11596
11597 2003-04-05  Havoc Pennington  <hp@pobox.com>
11598
11599         * test/decode-gcov.c (main): print per-directory stats in the report
11600
11601         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11602
11603 2003-04-05  Havoc Pennington  <hp@pobox.com>
11604
11605         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11606
11607         * test/decode-gcov.c: hack up a little program to suck data
11608         out of gcov files. Yes this is sort of silly.
11609
11610         * configure.in: define something in config.h and do an
11611         AM_CONDITIONAL when gcov is enabled
11612
11613 2003-04-04  Havoc Pennington  <hp@redhat.com>
11614
11615         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11616         return a "babysitter" object that is used to monitor the status of
11617         the spawned process and reap it when required.
11618
11619         * test/test-segfault.c, test/test-exit.c,
11620         test/test-sleep-forever.c: binaries that do various lame things,
11621         used in the test suite.
11622
11623         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11624
11625 2003-04-03  Havoc Pennington  <hp@pobox.com>
11626
11627         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11628         in preparation for modifying it, dbus-sysdeps is getting
11629         a bit unmanageable.
11630
11631 2003-04-03  Havoc Pennington  <hp@redhat.com>
11632
11633         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11634         have multiple ones
11635
11636         * bus/*.[hc]: adapt to mainloop change
11637
11638 2003-04-03  Havoc Pennington  <hp@redhat.com>
11639
11640         * bus/activation.c (load_directory): fix up memleaks
11641         (bus_activation_entry_free): free the entry
11642
11643         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11644         we get one from the message bus; fix memleaks.
11645
11646         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11647
11648 2003-04-03  Havoc Pennington  <hp@pobox.com>
11649
11650         * bus/config-parser.c (bus_config_parser_unref): free
11651         list of mechanisms, bug discovered by test suite enhancements
11652         (putting system.conf and session.conf into suite)
11653
11654         * test/Makefile.am, test/test-service.c: add placeholder for a
11655         test service that we'll activate as part of test suite. Doesn't
11656         do anything yet.
11657
11658         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11659         setting NULL value, and use system malloc not dbus_malloc()
11660         when we have unavoidable memleakage.
11661
11662         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11663         didn't work, and support DBUS_BUS_ACTIVATION.
11664
11665         * bus/activation.c (child_setup): pass our well-known bus type to
11666         the child
11667
11668         * bus/config-parser.c: support <type> to specify well-known type
11669
11670         * doc/dbus-specification.sgml: document the env variables to
11671         locate well-known buses and find service activator
11672
11673 2003-04-02  Havoc Pennington  <hp@redhat.com>
11674
11675         * test/Makefile.am (all-local): add a rule to copy tests to
11676         builddir, so we can have generated tests. Use this to remove the
11677         silly hack for testing system.conf and session.conf. Will use this
11678         shortly to generate .service files pointing to test binaries.
11679
11680 2003-04-02  Havoc Pennington  <hp@redhat.com>
11681
11682         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11683         current alloc and needed new length, not max of the doubled
11684         allocation and needed new length. Also, when building tests,
11685         don't do the double-allocation stuff, just realloc every time.
11686
11687 2003-04-02  Havoc Pennington  <hp@redhat.com>
11688
11689         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11690         in error messages
11691         (_dbus_string_get_dirname): new
11692         (_dbus_sysdeps_test): new
11693         (_dbus_directory_open): include dirnames in error messages
11694
11695         * bus/config-parser.c: interpret <include> and <includedir> and
11696         <servicedir> relative to config file location if the given
11697         filename is not absolute.
11698
11699         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11700
11701 2003-04-02  Havoc Pennington  <hp@redhat.com>
11702
11703         * bus/connection.c (bus_transaction_send_error_reply): set sender
11704         service for the error, and unref the reply on success
11705
11706         * bus/activation.c: convert to use BusTransaction so OOM can be
11707         handled correctly
11708         (bus_activation_service_created): set sender of the message
11709
11710 2003-04-01  Havoc Pennington  <hp@redhat.com>
11711
11712         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11713         <includedir> (at least mostly)
11714
11715         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11716         first, then the user ID
11717
11718 2003-04-01  Havoc Pennington  <hp@pobox.com>
11719
11720         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11721         function
11722
11723         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11724
11725         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11726
11727         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11728         socket 0777, and unlink any existing socket.
11729
11730         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11731         the configuration file so specifies; set up auth mechanism
11732         restrictions
11733
11734         * bus/config-parser.c (bus_config_parser_content): add support
11735         for <fork> option and fill in code for <auth>
11736
11737         * bus/system.conf.in: add <fork/> to default configuration,
11738         and limit auth mechanisms to EXTERNAL
11739
11740         * doc/config-file.txt (Elements): add <fork>
11741
11742         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11743         (_dbus_change_identity): new function
11744
11745 2003-03-31  Havoc Pennington  <hp@redhat.com>
11746
11747         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11748         (_dbus_listen_unix_socket): fix off-by-one error in null
11749         termination spotted by Nalin
11750
11751 2003-03-31  Havoc Pennington  <hp@redhat.com>
11752
11753         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11754         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11755         having a real home directory available.
11756
11757 2003-03-31  Havoc Pennington  <hp@redhat.com>
11758
11759         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11760
11761         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11762
11763         * configure.in: add support for specifying a style of init script
11764         to install
11765
11766 2003-03-31  Havoc Pennington  <hp@redhat.com>
11767
11768         Fix some annoying DBusString API and fix all affected code.
11769
11770         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11771         max_length argument
11772         (_dbus_string_get_data): change to return string instead of using
11773         an out param
11774         (_dbus_string_get_const_data): ditto
11775         (_dbus_string_get_data_len): ditto
11776         (_dbus_string_get_const_data_len): ditto
11777
11778 2003-03-31  Havoc Pennington  <hp@redhat.com>
11779
11780         * bus/main.c (main): fix up the command line arguments to be nicer
11781
11782 2003-03-31  Havoc Pennington  <hp@redhat.com>
11783
11784         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11785         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11786         final location that lands in the config file
11787
11788         * bus/config-loader-expat.c (bus_config_load): fix type of
11789         XML_Parser variable
11790
11791         * doc/TODO: remove TODO item for dbus_bus_get()
11792
11793         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11794
11795 2003-03-31  Havoc Pennington  <hp@pobox.com>
11796
11797         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11798         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11799         argument since they are always client side
11800
11801         * dbus/dbus-server.c (dbus_server_get_address): new function
11802
11803         * bus/main.c (main): take the configuration file as an argument.
11804
11805         * test/data/valid-config-files/debug-allow-all.conf: new file to
11806         use with dispatch.c tests for example
11807
11808         * bus/test-main.c (main): require test data dir
11809
11810         * bus/bus.c (bus_context_new): change this to take a
11811         configuration file name as argument
11812
11813         * doc/config-file.txt (Elements): add <servicedir>
11814
11815         * bus/system.conf, bus/session.conf: new files
11816
11817         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11818         well-known socket if none set
11819
11820         * configure.in: create system.conf and session.conf
11821
11822 2003-03-30  Havoc Pennington  <hp@pobox.com>
11823
11824         * bus/config-parser.c: hacking
11825
11826         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11827         to shut down, since it could cause weirdness with the DBusList
11828         lock
11829
11830         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11831         link-oriented stack routines
11832         (alloc_link): free the mempool if the first alloc from it fails
11833
11834         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11835
11836         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11837         from GLib
11838         (_dbus_string_skip_white): new
11839
11840         * doc/config-file.txt (Elements): add <includedir>
11841
11842 2003-03-28  Havoc Pennington  <hp@pobox.com>
11843
11844         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11845         (_dbus_string_copy_data): new functions
11846
11847 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11848
11849         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11850         * dbus/dbus-bus.h:
11851         Add dbus_bus_get.
11852
11853         * dbus/dbus-memory.c:
11854         Fix a doc comment.
11855
11856 2003-03-28  Havoc Pennington  <hp@pobox.com>
11857
11858         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11859         I think it may have just been superstition. Not sure.
11860
11861         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11862         failures that were not being handled.
11863
11864         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11865
11866         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11867         row that will fail on out-of-memory.
11868
11869         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11870         function for testing out-of-memory handling.
11871
11872         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11873         allocation functions, they do map exactly to the expat ones.
11874
11875 2003-03-27  Havoc Pennington  <hp@redhat.com>
11876
11877         * bus/config-loader-libxml.c (bus_config_load): add another error
11878         check
11879
11880 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11881
11882         * doc/TODO:
11883         Add note about automatic service activation.
11884
11885         * doc/dbus-specification.sgml:
11886         Rename the specification and clarify a few things.
11887
11888 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11889
11890         * Doxyfile.in:
11891         * dbus/dbus-address.c:
11892         * dbus/dbus-dict.c:
11893         * dbus/dbus-marshal.c:
11894         * dbus/dbus-server-debug-pipe.c:
11895         * dbus/dbus-transport-unix.c:
11896         Fix documentation warnings.
11897
11898 2003-03-26  Havoc Pennington  <hp@pobox.com>
11899
11900         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11901         after every test so it's quick and easy to see which leaked, and
11902         so we test multiple dbus_shutdown() calls
11903
11904         * configure.in: change configure.in XML stuff to also support
11905         expat
11906
11907         * config-loader-libxml.c: some hacking
11908
11909         * config-loader-expat.c: some hacking
11910
11911         * config-parser.c: some hacking, plus tests
11912
11913 2003-03-25  Havoc Pennington  <hp@redhat.com>
11914
11915         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11916
11917         * configure.in: add --with-xml option to specify XML library,
11918         right now only libxml is supported.
11919
11920         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11921         nonworking code between home and work, still just stubs
11922
11923 2003-03-24  Havoc Pennington  <hp@redhat.com>
11924
11925         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11926         file
11927
11928         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11929         NULL argument for "message" if the error is a well-known one,
11930         fill in a generic message in this case.
11931
11932         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11933         favor of DBusError
11934
11935         * bus/test.c (bus_test_flush_bus): add
11936
11937         * bus/policy.c (bus_policy_test): test code stub
11938
11939 2003-03-24  Havoc Pennington  <hp@pobox.com>
11940
11941         * bus/connection.c (bus_connections_setup_connection): set up
11942         the "can this user connect" function, but it always returns
11943         TRUE until we have a config file parser so we can have a config
11944         file that allows connections.
11945
11946 2003-03-23  Havoc Pennington  <hp@pobox.com>
11947
11948         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11949         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11950         the mutex, so we can check for proper memory management
11951         and OOM handling.
11952
11953         * dbus/dbus-dataslot.c: remove the mutex from
11954         DBusDataSlotAllocator and lock it manually when using it,
11955         to simplify fitting it into the global slots framework.
11956
11957         * dbus/dbus-threads.c (init_static_locks): rework how we're
11958         handling global locks so they are easily shut down.
11959
11960         * bus/policy.c (bus_policy_append_rule): fix
11961
11962         * bus/test-main.c (main): check for memleaks
11963
11964         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11965         test suite check for memleaks
11966
11967         * dbus/dbus-memory.c: add support in test mode for tracking
11968         number of outstanding blocks
11969
11970 2003-03-23  Havoc Pennington  <hp@pobox.com>
11971
11972         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11973         policies code
11974
11975         * dbus/dbus-hash.h: add ULONG hash keys
11976
11977         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11978         (_dbus_get_group_id): new function
11979
11980 2003-03-20  Havoc Pennington  <hp@redhat.com>
11981
11982         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11983         new function
11984         (dbus_connection_get_unix_user): new function
11985
11986 2003-03-20  Havoc Pennington  <hp@pobox.com>
11987
11988         * bus/connection.c (bus_connection_send_oom_error): assert that
11989         message has a sender
11990         (connection_execute_transaction): ditto
11991         (bus_connection_preallocate_oom_error): fix to set the sender, and
11992         set recipient to the destination service, not the bus driver
11993
11994         * bus/policy.c: hacking
11995
11996         * dbus/dbus-message.c (dbus_message_service_is): new function
11997         (dbus_message_sender_is): new
11998
11999 2003-03-19  Havoc Pennington  <hp@redhat.com>
12000
12001         * bus/policy.c: start sketching code for policy restrictions on
12002         what connections can do.
12003
12004 2003-03-18  Havoc Pennington  <hp@redhat.com>
12005
12006         * doc/TODO: some notes on high-level todo items. Little nitpick
12007         stuff is all in @todo, so no need to add it here.
12008
12009         * doc/config-file.txt: some notes on how config file might look
12010
12011 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12012
12013         * configure.in: 0.6
12014
12015         * NEWS: Update.
12016
12017 2003-03-17  Havoc Pennington  <hp@redhat.com>
12018
12019         * dbus/dbus-internals.h: add gcc attributes so that
12020         our printf-style functions warn on bad arguments to
12021         format
12022
12023         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12024         format bug
12025
12026         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12027         printf format bug
12028
12029 2003-03-17  Havoc Pennington  <hp@redhat.com>
12030
12031         * bus/test-main.c (main): make it print something as it runs
12032         so make check doesn't look stuck
12033
12034         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12035         from CVS, now obsolete
12036
12037 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12038
12039         * bus/dispatch.c: (bus_dispatch):
12040         Refetch the service name since it may have been reallocated
12041         when dbus_message_set_sender was called.
12042
12043         * dbus/dbus-sysdeps.c: (_dbus_accept):
12044         Add address and address length variables and use them to stop
12045         valgrind from complaining.
12046
12047 2003-03-17  Havoc Pennington  <hp@pobox.com>
12048
12049         All tests pass, no memleaks, no valgrind complaints.
12050
12051         * bus/test.c: refcount handler_slot
12052
12053         * bus/connection.c (bus_connections_new): refcount
12054         connection_data_slot
12055
12056         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12057         bytes so that auth scripts pass.
12058
12059         * bus/dispatch.c: init message_handler_slot so it gets allocated
12060         properly
12061
12062         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12063
12064         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12065         dealloc server_pipe_hash when no longer used for benefit of
12066         leak checking
12067
12068         * dbus/dbus-auth.c (process_command): memleak fix
12069
12070         * bus/dispatch.c (check_hello_message): memleak fix
12071
12072 2003-03-16  Havoc Pennington  <hp@pobox.com>
12073
12074         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12075
12076 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12077
12078         * bus/activation.c (bus_activation_activate_service): Append
12079         the pending activation entry to the list of pending activations.
12080
12081 2003-03-16  Havoc Pennington  <hp@pobox.com>
12082
12083         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12084         connections
12085
12086         * dbus/dbus-address.c (create_entry): fix OOM handling when
12087         failing to alloc entry->method
12088
12089 2003-03-16  Havoc Pennington  <hp@pobox.com>
12090
12091         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12092         the watch
12093
12094         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12095         add some missing dbus_set_result
12096
12097         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12098         alloc the DBusMessageHandler
12099
12100         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12101         the transport here, since we call this from the finalizer; it
12102         resulted in a double-finalize.
12103
12104         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12105         where we tried to use transport->connection that was NULL,
12106         happened when transport was disconnected early on due to OOM
12107
12108         * bus/*.c: adapt to handle OOM for watches/timeouts
12109
12110         * dbus/dbus-transport-unix.c: port to handle OOM during
12111         watch handling
12112
12113         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12114         reference to unused bytes instead of a copy
12115
12116         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12117         out of memory
12118
12119         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12120         FALSE on OOM
12121
12122         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12123         of memory
12124
12125 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12126
12127         * doc/dbus-specification.sgml:
12128         Document reply message for ActivateService.
12129
12130 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12131
12132         * bus/activation.c: (bus_pending_activation_entry_free),
12133         (bus_pending_activation_free), (bus_activation_new),
12134         (bus_activation_unref), (bus_activation_service_created),
12135         (bus_activation_activate_service):
12136         * bus/activation.h:
12137         * bus/bus.c: (bus_context_new):
12138         * bus/desktop-file.c: (new_section):
12139         * bus/driver.c: (bus_driver_send_service_deleted),
12140         (bus_driver_handle_activate_service):
12141         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12142         * bus/services.h:
12143         * dbus/dbus-connection.c:
12144         (dbus_connection_send_with_reply_and_block):
12145         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12146         * dbus/dbus-protocol.h:
12147         Make activation work better. Now pending activations will be queued
12148         and the daemon won't try to activate services that are already registered.
12149
12150 2003-03-16  Havoc Pennington  <hp@pobox.com>
12151
12152         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12153         connection data
12154
12155         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12156         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12157
12158 2003-03-16  Havoc Pennington  <hp@pobox.com>
12159
12160         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12161         this. always run the test suite before commit...
12162
12163         * bus/*: adapt to DBusConnection API changes
12164
12165         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12166         requires renaming stuff to avoid dbus_connection_dispatch name
12167         conflict.
12168
12169         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12170         function
12171
12172         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12173         separate from _dbus_message_loader_return_buffer()
12174
12175         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12176         this, because it's now always broken to use; the number of
12177         messages in queue vs. the number still buffered by the message
12178         loader is undefined/meaningless. Should use
12179         dbus_connection_get_dispatch_state().
12180         (dbus_connection_dispatch): rename from
12181         dbus_connection_dispatch_message
12182
12183 2003-03-16  Havoc Pennington  <hp@pobox.com>
12184
12185         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12186         implementation
12187
12188 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12189
12190         * dbus/dbus-connection.c:
12191         (dbus_connection_send_with_reply_and_block):
12192         Decrease connection->n_incoming when removing an entry
12193         from the list.
12194         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12195         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12196         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12197         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12198         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12199         (dbus_dict_get_byte_array):
12200         Handle NULL arrays and strings. Also add support for byte arrays.
12201
12202         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12203         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12204         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12205         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12206         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12207         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12208         * dbus/dbus-marshal.h:
12209         Add support for marshalling and demarshalling empty arrays and strings.
12210
12211         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12212         (dbus_message_append_string_array),
12213         (dbus_message_iter_get_boolean),
12214         (dbus_message_iter_get_boolean_array),
12215         (dbus_message_iter_get_int32_array),
12216         (dbus_message_iter_get_uint32_array),
12217         (dbus_message_iter_get_double_array),
12218         (dbus_message_iter_get_byte_array),
12219         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12220         (check_message_handling):
12221         Add support for getting empty arrays and dicts.
12222
12223         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12224         Don't do any validation at all for now, that's better than just checking
12225         for ASCII.
12226
12227         * test/data/valid-messages/emptiness.message:
12228         New test message with lots of empty arrays.
12229
12230 2003-03-16  Havoc Pennington  <hp@pobox.com>
12231
12232         * dbus/dbus-connection.c
12233         (_dbus_connection_queue_received_message_link): new function that
12234         can't fail due to OOM
12235
12236         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12237         new function pops a message together with a list link
12238         containing it.
12239
12240         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12241         message queuing functions to avoid needing to alloc memory
12242
12243 2003-03-16  Havoc Pennington  <hp@pobox.com>
12244
12245         Oops - test code was only testing failure of around 30 of the
12246         mallocs in the test path, but it turns out there are 500+
12247         mallocs. I believe this was due to misguided linking setup such
12248         that there was one copy of dbus_malloc etc. in the daemon and one
12249         in the shared lib, and only daemon mallocs were tested. In any
12250         case, the test case now tests all 500+ mallocs, and doesn't pass
12251         yet, though there are lots of fixes in this patch.
12252
12253         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12254         this so that it doesn't need to allocate memory, since it
12255         has no way of indicating failure due to OOM (and would be
12256         annoying if it did).
12257
12258         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12259
12260         * bus/Makefile.am: rearrange to create two self-contained
12261         libraries, to avoid having libraries with overlapping symbols.
12262         that was resulting in weirdness, e.g. I'm pretty sure there
12263         were two copies of global static variables.
12264
12265         * dbus/dbus-internals.c: move the malloc debug stuff to
12266         dbus-memory.c
12267
12268         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12269         empty.
12270
12271         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12272
12273         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12274         on failure.
12275
12276         * bus/dispatch.c (bus_dispatch_add_connection): free
12277         message_handler_slot when no longer using it, so
12278         memory leak checkers are happy for the test suite.
12279
12280         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12281
12282         * bus/bus.c (new_connection_callback): disconnect in here if
12283         bus_connections_setup_connection fails.
12284
12285         * bus/connection.c (bus_connections_unref): fix to free the
12286         connections
12287         (bus_connections_setup_connection): if this fails, don't
12288         disconnect the connection, just be sure there are no side
12289         effects.
12290
12291         * dbus/dbus-string.c (undo_alignment): unbreak this
12292
12293         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12294         leaking
12295         (_dbus_auth_new): fix the order in which we free strings
12296         on OOM failure
12297
12298         * bus/connection.c (bus_connection_disconnected): fix to
12299         not send ServiceDeleted multiple times in case of memory
12300         allocation failure
12301
12302         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12303         get the base service name
12304         (dbus_bus_register_client): don't return base service name,
12305         instead store it on the DBusConnection and have an accessor
12306         function for it.
12307         (dbus_bus_register_client): rename dbus_bus_register()
12308
12309         * bus/dispatch.c (check_hello_message): verify that other
12310         connections on the bus also got the correct results, not
12311         just the one sending hello
12312
12313 2003-03-15  Havoc Pennington  <hp@pobox.com>
12314
12315         Make it pass the Hello handling test including all OOM codepaths.
12316         Now to do other messages...
12317
12318         * bus/services.c (bus_service_remove_owner): fix crash when
12319         removing owner from an empty list of owners
12320         (bus_registry_ensure): don't leave service in the list of
12321         a connection's owned services if we fail to put the service
12322         in the hash table.
12323
12324         * bus/connection.c (bus_connection_preallocate_oom_error): set
12325         error flag on the OOM error.
12326
12327         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12328         handle _dbus_transport_set_connection failure
12329
12330         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12331         to create watches up front and simply enable/disable them as
12332         needed.
12333         (unix_connection_set): this can now fail on OOM
12334
12335         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12336         of enabling/disabling a watch or timeout.
12337
12338         * bus/loop.c (bus_loop_iterate): don't touch disabled
12339         watches/timeouts
12340
12341         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12342
12343 2003-03-15  Havoc Pennington  <hp@pobox.com>
12344
12345         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12346         write useful test code, after all that futzing around ;-)
12347
12348         Test does not yet pass because we can't handle OOM in
12349         _dbus_transport_messages_pending (basically,
12350         dbus_connection_preallocate_send() does not prealloc the write
12351         watch). To fix this, I think we need to add new stuff to
12352         set_watch_functions, namely a SetEnabled function so we can alloc
12353         the watch earlier, then enable it later.
12354
12355         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12356         dbus-memory.c to the convenience lib
12357
12358         * bus/test.c: rename some static functions to keep them clearly
12359         distinct from stuff in connection.c. Handle client disconnection.
12360
12361 2003-03-14  Havoc Pennington  <hp@pobox.com>
12362
12363         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12364         transport, tests more of the real codepath. Set up clients
12365         with bus_setup_debug_client.
12366
12367         * bus/test.c (bus_setup_debug_client): function to set up debug
12368         "clients" on the main loop
12369
12370         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12371         support
12372
12373         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12374         server type
12375
12376         * dbus/dbus-server-debug.c: support a debug server based on pipes
12377
12378         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12379         (_dbus_close): new function
12380
12381         * configure.in: check for socketpair
12382
12383 2003-03-14  Havoc Pennington  <hp@redhat.com>
12384
12385         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12386         cheesy hack
12387
12388         * dbus/dbus-transport-debug.c: rework this a good bit to be
12389         less complicated. hopefully still works.
12390
12391         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12392         manually
12393
12394         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12395         after running it
12396
12397         * dbus/dbus-message.c (dbus_message_copy): rename from
12398         dbus_message_new_from_message, fix it up to copy
12399         all the message fields, add test case
12400
12401         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12402         not quite passing yet
12403
12404 2003-03-14  Havoc Pennington  <hp@pobox.com>
12405
12406         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12407         until no work remains" in test code. (the large diff here
12408         is just code movement, no actual changes)
12409
12410         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12411         1, no point waiting around for test code.
12412         (_dbus_server_debug_accept_transport): unref the timeout
12413         after adding it (right?)
12414
12415         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12416
12417 2003-03-13  Havoc Pennington  <hp@redhat.com>
12418
12419         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12420         out of memory
12421
12422         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12423         of memory
12424
12425         * dbus/dbus-connection.h: Make AddWatchFunction and
12426         AddTimeoutFunction return a bool so they can fail on out-of-memory
12427
12428         * bus/bus.c (bus_context_new): set up timeout handlers
12429
12430         * bus/connection.c (bus_connections_setup_connection): set up
12431         timeout handlers
12432
12433         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12434         can fail
12435
12436         * bus/bus.c (bus_context_new): adapt to changes
12437
12438         * bus/connection.c: adapt to changes
12439
12440         * test/watch.c: adapt to DBusWatch changes
12441
12442         * bus/dispatch.c (bus_dispatch_test): started adding this but
12443         didn't finish
12444
12445 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12446
12447         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12448
12449 2003-03-13  Havoc Pennington  <hp@pobox.com>
12450
12451         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12452         set up a test framework as for the library
12453
12454 2003-03-12  Havoc Pennington  <hp@pobox.com>
12455
12456         Throughout: purge global variables, introduce BusActivation,
12457         BusConnections, BusRegistry, etc. objects instead.
12458
12459         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12460         message bus object
12461
12462         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12463         going to redo this a bit differently I think
12464
12465 2003-03-12  Havoc Pennington  <hp@redhat.com>
12466
12467         Mega-patch that gets the message bus daemon initially handling
12468         out-of-memory. Work still needed. Also lots of random
12469         moving stuff to DBusError instead of ResultCode.
12470
12471         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12472
12473         * dbus/dbus-connection.c
12474         (dbus_connection_send_with_reply_and_block): use DBusError
12475
12476         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12477         DBusResultCode
12478
12479         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12480         code here, as the only failure possible is OOM.
12481
12482         * bus/connection.c (bus_connection_disconnect):
12483         rename bus_connection_disconnected as it's a notification only
12484
12485         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12486         "name" on get_args failure, should be done by get_args;
12487         don't disconnect client for bad args, just return an error.
12488         (bus_driver_handle_service_exists): ditto
12489
12490         * bus/services.c (bus_services_list): NULL-terminate returned array
12491
12492         * bus/driver.c (bus_driver_send_service_lost)
12493         (bus_driver_send_service_acquired): send messages from driver to a
12494         specific client to the client's unique name, not to the broadcast
12495         service.
12496
12497         * dbus/dbus-message.c (decode_header_data): reject messages that
12498         contain no name field
12499         (_dbus_message_get_client_serial): rename to
12500         dbus_message_get_serial and make public
12501         (_dbus_message_set_serial): rename from set_client_serial
12502         (_dbus_message_set_reply_serial): make public
12503         (_dbus_message_get_reply_serial): make public
12504
12505         * bus/connection.c (bus_connection_foreach): allow stopping
12506         iteration by returning FALSE from foreach function.
12507
12508         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12509         (dbus_connection_free_preallocated_send)
12510         (dbus_connection_preallocate_send): new API for sending a message
12511         without possibility of malloc failure.
12512         (dbus_connection_send_message): rename to just
12513         dbus_connection_send (and same for whole function family)
12514
12515         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12516
12517         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12518
12519         * bus/activation.c: handle/return errors
12520
12521         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12522
12523         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12524         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12525         (_dbus_result_from_errno): move to this file
12526
12527 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12528
12529         * dbus/dbus-marshal.c:
12530         (_dbus_marshal_set_string):
12531         Take a length argument so we can marshal the correct string
12532         length.
12533
12534         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12535         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12536         (_dbus_marshal_test):
12537         * dbus/dbus-marshal.h:
12538         Add support for marshalling and demarshalling dicts.
12539
12540         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12541         Add support for TYPE DICT.
12542
12543         * dbus/dbus-message.c: (set_string_field):
12544         Adjust header padding.
12545
12546         (dbus_message_append_args_valist), (dbus_message_append_dict),
12547         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12548         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12549         (check_message_handling), (check_have_valid_message):
12550         * dbus/dbus-message.h:
12551         Add functions for setting and getting dicts.
12552
12553         * dbus/dbus-protocol.h:
12554         Add DBUS_TYPE_DICT.
12555
12556         * dbus/dbus.h:
12557         Add dbus-dict.h
12558
12559         * doc/dbus-specification.sgml:
12560         Add information about how dicts are marshalled.
12561
12562         * test/data/invalid-messages/dict-with-nil-value.message:
12563         * test/data/invalid-messages/too-short-dict.message:
12564         * test/data/valid-messages/dict-simple.message:
12565         * test/data/valid-messages/dict.message:
12566         Add sample messages containing dicts.
12567
12568 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12569
12570         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12571
12572 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12573
12574         * dbus/Makefile.am:
12575         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12576         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12577         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12578         (dbus_dict_set_double), (dbus_dict_set_string),
12579         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12580         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12581         (dbus_dict_set_string_array), (_dbus_dict_test):
12582         * dbus/dbus-dict.h:
12583         Fix according to comments from Havoc.
12584
12585 2003-03-06  Michael Meeks  <michael@server.home>
12586
12587         * configure.in: if we don't have kde-config, disable have_qt.
12588
12589 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12590
12591         * dbus/Makefile.am:
12592         Add dbus-dict.[ch]
12593
12594         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12595         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12596         (dbus_dict_remove), (dbus_dict_get_value_type),
12597         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12598         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12599         (dbus_dict_put_double), (dbus_dict_put_string),
12600         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12601         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12602         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12603         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12604         (dbus_dict_get_double), (dbus_dict_get_string),
12605         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12606         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12607         (dbus_dict_get_string_array), (_dbus_dict_test):
12608         * dbus/dbus-dict.h:
12609         Add DBusDict implementation
12610
12611         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12612         * dbus/dbus-test.h:
12613         Add _dbus_dict_test
12614
12615 2003-03-04  Havoc Pennington  <hp@pobox.com>
12616
12617         * test/data/auth/*: adapt to changes
12618
12619         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12620         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12621         userid
12622
12623         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12624         more stuff from being in a context name, to make the protocol
12625         simpler to deal with
12626
12627         * dbus/dbus-errors.c (dbus_error_has_name): new function
12628         (dbus_error_is_set): new function
12629
12630         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12631         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12632
12633         * dbus/dbus-connection.c (dbus_connection_flush): also read
12634         messages during a flush operation
12635
12636         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12637
12638 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12639
12640         * configure.in: Check for gethostbyname on Solaris.
12641
12642         * dbus/dbus-transport.c: (_dbus_transport_open):
12643         Remove duplicate "tcp" entry.
12644
12645         * doc/dbus-specification.sgml:
12646         Clarify some things.
12647
12648 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12651         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12652         (_dbus_keyring_test):
12653         * dbus/dbus-md5.c: (_dbus_md5_compute):
12654         * dbus/dbus-sha.c: (_dbus_sha_compute):
12655         Plug memory leaks.
12656
12657 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12658
12659         * README: Add some things.
12660
12661 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12662
12663         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12664         after case DBUS_TYPE_BOOELAN.
12665
12666 2003-03-02  Havoc Pennington  <hp@pobox.com>
12667
12668         * test/break-loader.c (randomly_set_extreme_ints): add test that
12669         sets really huge and small integers
12670
12671         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12672         that length of boolean array fits in the string, and that
12673         string has room for boolean value in single-bool case.
12674
12675         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12676         optional value to "ALIGN" command which is what to fill the
12677         alignment with.
12678
12679         * test/data/valid-messages/no-padding.message: add regression
12680         test for the message padding problem
12681
12682 2003-03-02  Havoc Pennington  <hp@pobox.com>
12683
12684         * dbus/dbus-message.c (decode_header_data): fix to always init
12685         message_padding, from Benjamin Dauvergne
12686
12687 2003-03-02  Havoc Pennington  <hp@pobox.com>
12688
12689         * configure.in: 0.5
12690
12691         * NEWS: Update.
12692
12693 2003-03-01  Joe Shaw  <joe@assbarn.com>
12694
12695         * configure.in: Check for "struct cmsgcred" and try to access its
12696         members for BSD-like unices.
12697
12698         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12699         _dbus_read_credentials_unix_socket().
12700         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12701         read() for reading the credential byte off the unix socket.  Use
12702         struct cmsgcred on systems that support it.
12703
12704 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12705
12706         * glib/Makefile.am:
12707         * configure.in:
12708         Make gthreads-2.0 dependency optional. Don't build thread test if
12709         its not found.
12710
12711 2003-02-27  Havoc Pennington  <hp@pobox.com>
12712
12713         * dbus/dbus-connection.c
12714         (dbus_connection_send_message_with_reply_and_block): fix doh!
12715         doh! doh! bug that resulted in never removing a reply from the
12716         queue, no wonder we called get_reply_serial so much ;-)
12717
12718         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12719         and client serial instead of demarshaling them every time
12720
12721 2003-02-27  Havoc Pennington  <hp@pobox.com>
12722
12723         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12724         more inlined, using dbus-string-private.h, speeds things up
12725         substantially
12726
12727         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12728         when freeing the string
12729         (_dbus_string_steal_data): fix for align offset
12730         (undo_alignment): new function
12731
12732 2003-02-26  Havoc Pennington  <hp@redhat.com>
12733
12734         All kinds of audit fixes from Owen, plus initial attempt to
12735         handle unaligned memory returned from malloc.
12736
12737         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12738         leave room for align_offset and nul byte
12739         (fixup_alignment): function to track an align_offset and
12740         ensure real->str is aligned
12741         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12742         to allow a nul byte plus align offset
12743         (_dbus_string_lock): fix overflow issue
12744         (_dbus_string_init_const_len): add assertions on sanity of len,
12745         assign allocated to be ALLOCATION_PADDING larger than len
12746         (set_length): fixup the overflow handling
12747         (_dbus_string_get_data_len): fix overflow in assertion
12748         (open_gap): detect overflow in size of gap to be opened
12749         (_dbus_string_lengthen): add overflow check
12750         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12751         (_dbus_string_append): add overflow check
12752         (_dbus_string_append_unichar): overflow
12753         (_dbus_string_delete): fix overflow in assertion
12754         (_dbus_string_copy_len): overflow in assertion
12755         (_dbus_string_replace_len): overflows in assertions
12756         (_dbus_string_find): change to implement in terms of
12757         _dbus_string_find_to
12758         (_dbus_string_find_to): assorted fixage
12759         (_dbus_string_equal_c_str): assert c_str != NULL,
12760         fix logic so the function works
12761         (_dbus_string_ends_with_c_str): fix overflow thingy
12762         (_dbus_string_base64_encode): overflow fix
12763         (_dbus_string_validate_ascii): overflow
12764         (_dbus_string_validate_nul): overflow
12765
12766 2003-02-26  Havoc Pennington  <hp@redhat.com>
12767
12768         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12769
12770 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12771
12772         * configure.in:
12773         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12774
12775         * dbus/dbus-connection.c:
12776         * dbus/dbus-connection.h:
12777         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12778         Add dbus_connection_set_wakeup_main_function and use it when queueing
12779         incoming and outgoing messages.
12780
12781
12782         * dbus/dbus-dataslot.c:
12783         Threadsafe usage of DBusDataSlotAllocator
12784
12785         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12786         dbus_new can fail.
12787
12788         * dbus/dbus-server-unix.c:
12789         Add todo comment
12790
12791         * glib/dbus-gmain.c:
12792         Implement the new wakeup functions for glib.
12793
12794         * glib/Makefile.am:
12795         * glib/test-thread-client.c:
12796         * glib/test-thread-server.c:
12797         * glib/test-thread.h:
12798         Initial cut at some thread test code. Not really done yet.
12799
12800 2003-02-26  Havoc Pennington  <hp@pobox.com>
12801
12802         * dbus/dbus-connection.c
12803         (dbus_connection_send_message_with_reply_and_block): fix crash
12804         where we ref'd the outgoing message instead of the returned reply
12805
12806         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12807         at the end of this function, so if we didn't need to read for
12808         authentication, we reinstall it for receiving messages
12809
12810         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12811         a NULL sender for peer-to-peer case
12812
12813         * dbus/dbus-transport-unix.c (check_read_watch): handle
12814         !authenticated case correctly
12815
12816         * glib/dbus-gmain.c: add support for DBusServer
12817
12818         * dbus/dbus-server.c: add data slot support
12819
12820         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12821         return values and handle errors
12822
12823         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12824         DBusConnection
12825
12826         * Doxyfile.in (INPUT): add glib subdir
12827
12828         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12829         setup_with_g_main instead of hookup_with_g_main; write docs
12830
12831 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12832
12833         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12834         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12835         * dbus/dbus-message.c: (dbus_message_append_boolean),
12836         (dbus_message_append_boolean_array),
12837         (dbus_message_get_args_valist), (_dbus_message_test):
12838         * dbus/dbus-message.h:
12839         * doc/dbus-specification.sgml:
12840         Various fixes as pointed out by Havoc.
12841
12842         * test/data/invalid-messages/bad-boolean-array.message:
12843         * test/data/invalid-messages/bad-boolean.message:
12844         Add invalid boolean value test cases.
12845
12846 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12847
12848         * dbus/dbus-internals.c: (_dbus_type_to_string):
12849         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12850         (_dbus_marshal_validate_arg):
12851         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12852         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12853         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12854         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12855         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12856         (dbus_message_iter_get_double),
12857         (dbus_message_iter_get_boolean_array), (message_iter_test):
12858         * dbus/dbus-message.h:
12859         * dbus/dbus-protocol.h:
12860         * doc/dbus-specification.sgml:
12861         * test/data/valid-messages/lots-of-arguments.message:
12862         Add support for boolean and boolean array types.
12863
12864 2003-02-23  Havoc Pennington  <hp@pobox.com>
12865
12866         * dbus/dbus-keyring.c: finish most of this implementation and
12867         simple unit test
12868
12869         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12870         these barf if the error isn't cleared to NULL
12871
12872         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12873         (_dbus_create_directory): new function
12874
12875         * dbus/dbus-errors.c (dbus_set_error): fix warning
12876
12877         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12878         (_dbus_string_hex_decode): new function
12879         (test_hex_roundtrip): test code
12880
12881         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12882
12883         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12884
12885         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12886         the save-to-temp/rename trick to atomically write the new file
12887         (_dbus_string_parse_uint): new function
12888
12889 2003-02-22  Havoc Pennington  <hp@pobox.com>
12890
12891         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12892
12893 2003-02-22  Havoc Pennington  <hp@pobox.com>
12894
12895         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12896         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12897
12898         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12899
12900         * dbus/test/data/sha-1: add US government test suite for SHA-1
12901
12902 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12903
12904         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12905         Make string arrays NULL-terminated.
12906
12907         * dbus/dbus-memory.c: (dbus_free_string_array):
12908         * dbus/dbus-memory.h:
12909         New function for freeing NULL-terminated string arrays.
12910
12911         * dbus/dbus-message-builder.c: (append_quoted_string),
12912         (_dbus_message_data_load):
12913         Add support for array types.
12914
12915         * dbus/dbus-message.c: (check_message_handling):
12916         Add more types as test cases.
12917
12918         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12919         (_dbus_string_parse_double):
12920         Add the start offset to the end offset.
12921
12922         * test/data/valid-messages/lots-of-arguments.message:
12923         New test message with lots of arguments.
12924
12925 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12926
12927         * dbus/dbus-message.c: (dbus_message_append_nil),
12928         (dbus_message_append_int32), (dbus_message_append_uint32),
12929         (dbus_message_append_double), (dbus_message_append_string),
12930         (dbus_message_append_int32_array),
12931         (dbus_message_append_uint32_array),
12932         (dbus_message_append_double_array),
12933         (dbus_message_append_byte_array),
12934         (dbus_message_append_string_array):
12935         Fix all out-of-memory handling in these functions.
12936
12937 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12938
12939         * dbus/dbus-message.c: (dbus_message_append_nil):
12940         Fix a silly.
12941
12942 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12943
12944         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12945         (dbus_message_append_nil), (dbus_message_append_int32_array),
12946         (dbus_message_append_uint32_array),
12947         (dbus_message_append_double_array),
12948         (dbus_message_append_byte_array),
12949         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12950         (dbus_message_iter_get_int32_array),
12951         (dbus_message_iter_get_uint32_array),
12952         (dbus_message_iter_get_double_array),
12953         (dbus_message_iter_get_byte_array),
12954         (dbus_message_iter_get_string_array):
12955
12956         * dbus/dbus-message.h:
12957         Add functions for appending and getting arrays.
12958
12959 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12960
12961         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12962         element size at least 8 bytes, fixes mempool tests on
12963         64-bit machines.
12964
12965 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12966
12967         * dbus/dbus-transport-unix.c (unix_do_iteration):
12968         Unlock the connection mutex during a blocking select call.
12969         Add todo about how we need a way to wake up the select.
12970
12971         * dbus/dbus-connection-internal.h:
12972         * dbus/dbus-connection.c:
12973         Add _dbus_connection_lock and _dbus_connection_unlock.
12974
12975 2003-02-19  Havoc Pennington  <hp@pobox.com>
12976
12977         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12978         Doxyfile.in, not Doxyfile
12979
12980         * dbus/dbus-keyring.c: do some hacking on this
12981
12982         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12983
12984         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12985         dbus_error_init
12986         (dbus_set_error): remove dbus_error_init, check for message ==
12987         NULL *before* we sprintf into it, and add @todo about including
12988         system headers in this file
12989
12990         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12991
12992         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12993
12994         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12995         get various bits of user information based on either username
12996         or user ID
12997         (_dbus_homedir_from_username): new function
12998
12999 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13000
13001         * configure.in:
13002         Add check for nonposix getpwnam_r
13003
13004         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13005         Align the pool element size to a sizeof (void *) boundary.
13006
13007         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13008         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13009         General Solaris fixes.
13010
13011         * test/data/valid-messages/simplest-manual.message:
13012         Explicitly state that we want little-endian packing.
13013
13014 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13015
13016         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13017
13018         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13019         Added to create a transport connecting using a tcp/ip socket.
13020
13021         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13022         to a tcp socket at given host and port.
13023         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13024         hostname and port.
13025
13026         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13027
13028         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13029         Added to create a server listening on a TCP/IP socket.
13030
13031 2003-02-19  Havoc Pennington  <hp@pobox.com>
13032
13033         Throughout: mop up all the Doxygen warnings and undocumented
13034         stuff.
13035
13036         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13037         to search any paths.
13038
13039         * dbus/dbus-threads.c: move global mutex initializers to
13040         dbus-internals.h, multiple prototypes was confusing doxygen
13041         besides being kind of ugly
13042
13043         * Doxyfile (PREDEFINED): have Doxygen define
13044         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13045         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13046         (do not abuse the feature! it's for stuff like the autogenerated
13047         macros in dbus-md5.c, not just for things you don't feel like
13048         documenting...)
13049
13050 2003-02-18  Havoc Pennington  <hp@pobox.com>
13051
13052         * dbus/dbus-string.c (_dbus_string_zero): new function
13053
13054         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13055         wrap it in some dbus-friendly API
13056
13057         * dbus/dbus-types.h: add 16-bit types
13058
13059 2003-02-18  Joe Shaw  <joe@assbarn.com>
13060
13061         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13062         credentials from our currently running process.
13063         (get_word): Fix a buglet where we were copying the entire length
13064         instead of relative to our position.
13065
13066         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13067         keys on the stack... it's 640k of data.
13068
13069         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13070         read the credentials byte off the socket, even if we don't have
13071         SO_PEERCRED.
13072         (_dbus_poll): Implement poll() using select() for systems which
13073         don't have it.
13074
13075         * glib/test-dbus-glib.c (main): Print out an error if no
13076         parameters are given.
13077
13078         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13079         can fallback to a secondary auth mechanism if the first fails.
13080
13081 2003-02-18  Havoc Pennington  <hp@pobox.com>
13082
13083         * AUTHORS: add Alex
13084
13085 2003-02-17  Havoc Pennington  <hp@pobox.com>
13086
13087         * doc/dbus-specification.sgml: lots of cosmetic
13088         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13089         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13090         s/server/bus/ (except in authentication section). Add a section
13091         "Message Bus Message Routing"
13092
13093 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13094
13095         Release 0.4
13096
13097         * NEWS: Update
13098
13099 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13100
13101         * doc/dbus-specification.sgml:
13102         Specification updates.
13103
13104 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13105
13106         * bus/activation.c: (bus_activation_init), (child_setup),
13107         (bus_activation_activate_service):
13108         * bus/activation.h:
13109         * bus/main.c: (main):
13110         Set DBUS_ADDRESS environment variable.
13111
13112         * dbus/dbus-errors.c: (dbus_set_error):
13113         Don't use va_copy since that's a C99 feature.
13114
13115         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13116         (_dbus_spawn_async):
13117         * dbus/dbus-sysdeps.h:
13118         Add child_setup_func to _dbus_spawn_async.
13119
13120         * doc/dbus-specification.sgml:
13121         Update specification.
13122
13123         * test/spawn-test.c: (setup_func), (main):
13124         Fix test.
13125
13126 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13127
13128         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13129         Added todo.
13130
13131 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13132
13133         * doc/.cvsignore:
13134         * doc/Makefile.am:
13135         * doc/dbus-test-plan.sgml:
13136         Add test plan document.
13137
13138         * test/Makefile.am:
13139         Fix distcheck.
13140
13141 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13142
13143         * dbus/dbus-message.c: (decode_header_data),
13144         (_dbus_message_loader_return_buffer):
13145         Set the header padding amount when loading a message.
13146
13147 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13148
13149         * bus/dispatch.c: (send_one_message):
13150         Only send broadcast messages to registered connections.
13151
13152         * dbus/dbus-message.c: (dbus_message_name_is):
13153         * dbus/dbus-message.h:
13154         New convenience function.
13155
13156         * dbus/dbus-transport-debug.c: (do_reading):
13157         Only dispatch one message per run.
13158
13159         * test/Makefile.am:
13160         * test/bus-test.c: (new_connection_callback), (die),
13161         (test_hello_client1_handler), (test_hello_client2_handler),
13162         (test_hello_replies), (main):
13163
13164         * test/bus-test-loop.[ch]:
13165         Add these.
13166
13167 2003-02-16  Havoc Pennington  <hp@pobox.com>
13168
13169         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13170         backward conditional
13171
13172 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13173
13174         * dbus/dbus-connection.c:
13175         Implement sent_message_with_reply. (with_reply_and block is still
13176         busted).
13177         Made dispatch_message not lose message if OOM.
13178
13179         * dbus/dbus-errors.h:
13180         Add NoReply error (for reply timeouts).
13181
13182 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13183
13184         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13185         Actually free keys and values when destroying hashtable.
13186
13187 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13188
13189         * dbus/dbus-auth.c: (client_try_next_mechanism):
13190         Plug a leak.
13191
13192         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13193         Return TRUE if there's no thread implementation around.
13194
13195         * glib/dbus-gmain.c: (free_source),
13196         (dbus_connection_hookup_with_g_main):
13197         Make sure to remove the GSource when the connection is finalized.
13198
13199 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13200
13201         * bus/dispatch.c: (bus_dispatch_message_handler):
13202         * dbus/dbus-errors.h:
13203         Return an error if someone tries to send a message to a service
13204         that doesn't exist.
13205
13206 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13207
13208         * bus/activation.c: (load_directory), (bus_activation_init),
13209         (bus_activation_activate_service):
13210         * bus/activation.h:
13211         * bus/driver.c:
13212         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13213         More work on the activation handling.
13214
13215         * dbus/dbus-errors.h:
13216         Add some error messages
13217
13218         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13219         * dbus/dbus-message.h:
13220         New function that creates an error message.
13221
13222         * dbus/dbus-protocol.h:
13223         Add ACTIVATE_SERVER message.
13224
13225         * dbus/dbus-server-unix.c: (unix_handle_watch),
13226         (_dbus_server_new_for_domain_socket):
13227         Call _dbus_fd_set_close_on_exec.
13228
13229         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13230         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13231         (_dbus_fd_set_close_on_exec):
13232         * dbus/dbus-sysdeps.h:
13233         Add _dbus_fd_set_close_on exec function. Also add function that checks
13234         that all open fds are set to close-on-exec and warns otherwise.
13235
13236         * dbus/dbus-transport-unix.c:
13237         (_dbus_transport_new_for_domain_socket):
13238         Call _dbus_fd_set_close_on_exec.
13239
13240 2003-02-16  Havoc Pennington  <hp@pobox.com>
13241
13242         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13243         allow people to avoid setting SIGPIPE to SIG_IGN
13244         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13245         we've been asked not to
13246
13247 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13248
13249         * dbus/dbus-list.c: (_dbus_list_append_link),
13250         (_dbus_list_prepend_link):
13251         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13252         (dbus_realloc):
13253         Warning fixes.
13254
13255 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13256
13257         * bus/Makefile.am:
13258         * bus/activation.c: (bus_activation_entry_free),
13259         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13260         * bus/activation.h:
13261         * bus/main.c: (main):
13262         Add simple activation support, doesn't work yet though.
13263
13264 2003-02-15   Zack Rusin  <zack@kde.org>
13265
13266         * qt/dbus-qthread.cpp:  small casting fix
13267
13268 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13269
13270         * dbus/dbus-errors.c: (dbus_set_error):
13271         * dbus/dbus-errors.h:
13272         Add a few errors and make dbus_set_error void.
13273
13274         * dbus/dbus-sysdeps.c:
13275         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13276         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13277         * dbus/dbus-sysdeps.h:
13278         Add _dbus_spawn_async.
13279
13280         * test/spawn-test.c: (main):
13281         Test for _dbus_spawn_async.
13282
13283 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13284
13285         * dbus/dbus-internals.h:
13286         Fix build without tests.
13287
13288         * dbus/dbus-list.c: (alloc_link):
13289         Fix a segfault when a malloc fails.
13290
13291         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13292         (dbus_malloc0), (dbus_realloc):
13293         Add support for malloc debugging.
13294
13295 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13296
13297         * dbus/dbus-threads.c:
13298         * dbus/dbus-threads.h:
13299         Add condvars. Remove static mutext from API.
13300         Implement static mutexes by initializing them from threads_init.
13301
13302         * glib/dbus-gthread.c:
13303         * qt/dbus-qthread.cpp:
13304         Update with the thread api changes.
13305
13306
13307         * dbus/dbus-list.c:
13308         * dbus/dbus-list.h:
13309         Turn StaticMutex into normal mutex + init function.
13310         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13311         _dbus_list_append_link, _dbus_list_prepend_link
13312
13313
13314         * dbus/dbus-sysdeps.c:
13315         * dbus/dbus-sysdeps.h:
13316         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13317         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13318
13319         * dbus/dbus-protocol.h:
13320         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13321
13322         * dbus/dbus-message.c:
13323         Make ref/unref atomic.
13324         Fix some docs.
13325
13326         * dbus/dbus-connection-internal.h:
13327         * dbus/dbus-connection.c:
13328         * dbus/dbus-connection.h:
13329         Make threadsafe.
13330         Change _peek to _borrow,_return & _steal_borrowed.
13331         Change disconnect callback to event.
13332         Make dbus_connection_dispatch_messages reentrant.
13333
13334         * dbus/dbus-transport.c:
13335         Don't ref the connection on calls to the transport
13336         implementation.
13337
13338         * dbus/dbus-message-handler.c:
13339         Make threadsafe.
13340
13341         * glib/dbus-gmain.c:
13342         Don't use peek_message anymore
13343
13344         * test/Makefile.am:
13345         * test/debug-thread.c:
13346         * test/debug-thread.h:
13347         Simple thread implementation that asserts() on deadlocks in
13348         single-threaded code.
13349
13350         * test/bus-test.c:
13351         (main) Call debug_threads_init.
13352
13353         * test/watch.c:
13354         Use disconnect message instead of disconnect callback.
13355
13356         * bus/connection.c:
13357         * bus/connection.h:
13358         Don't call dbus_connection_set_disconnect_function. Instead export
13359         bus_connection_disconnect.
13360
13361         * bus/dispatch.c:
13362         Call bus_connection_disconnect when we get a disconnected message.
13363
13364 2003-02-15  Havoc Pennington  <hp@pobox.com>
13365
13366         * dbus/dbus-message.c (dbus_message_new): fool around with the
13367         docs
13368
13369 2003-02-14  Havoc Pennington  <hp@pobox.com>
13370
13371         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13372
13373         * dbus/dbus-memory.c: fail if the debug functions indicate we
13374         should
13375
13376         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13377         (_dbus_decrement_fail_alloc_counter): debug functions to
13378         simulate memory allocation failures
13379
13380 2003-02-14  Havoc Pennington  <hp@pobox.com>
13381
13382         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13383         to DBusError
13384
13385 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13386
13387         * bus/driver.c: (bus_driver_handle_hello):
13388         * bus/driver.h:
13389         * bus/services.c: (bus_service_lookup):
13390         Reorder message sending so we get a more sane order.
13391
13392         * test/bus-test.c: (message_handler):
13393         Fix tyop.
13394
13395 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13396
13397         * bus/driver.c: (bus_driver_send_service_deleted),
13398         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13399         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13400         (bus_driver_send_welcome_message),
13401         (bus_driver_handle_list_services),
13402         (bus_driver_handle_acquire_service),
13403         (bus_driver_handle_service_exists):
13404         * dbus/dbus-bus.c: (dbus_bus_register_client),
13405         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13406         * dbus/dbus-errors.c: (dbus_result_to_string):
13407         * dbus/dbus-errors.h:
13408         * dbus/dbus-message.c: (dbus_message_append_args),
13409         (dbus_message_append_args_valist), (dbus_message_get_args),
13410         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13411         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13412         (dbus_message_iter_get_byte_array),
13413         (dbus_message_iter_get_string_array), (message_iter_test),
13414         (check_message_handling), (_dbus_message_test):
13415         * dbus/dbus-message.h:
13416         * test/bus-test.c: (main):
13417         Change fields to arguments in messages, so that they won't be
13418         confused with header fields.
13419
13420         * glib/test-dbus-glib.c: (main):
13421         Remove append_fields from hello message.
13422
13423 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13424
13425         * dbus/dbus-errors.c:
13426         * dbus/dbus-message.c:
13427         * dbus/dbus-string.c:
13428         Documentation fixes.
13429
13430 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13431
13432         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13433         (remove_timeout):
13434         Implement support for timeouts in dbus-glib.
13435
13436 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13437
13438         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13439         * dbus/dbus-message.c: (process_test_subdir):
13440         * test/break-loader.c: (find_breaks_based_on):
13441         Plug some memory leaks.
13442
13443 2003-02-13  Richard Hult  <rhult@codefactory.se>
13444
13445         * bus/main.c: Fix build.
13446
13447         * dbus/dbus-errors.h:
13448         * dbus/dbus-errors.c: Fix copyright for Anders.
13449
13450 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13451
13452         * bus/Makefile.am:
13453         Add utils.[ch]
13454
13455         * bus/connection.c: (bus_connection_foreach):
13456         Fix a warning.
13457
13458         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13459         (unescape_string), (new_section), (parse_section_start),
13460         (parse_key_value), (report_error), (bus_desktop_file_load),
13461         (bus_desktop_file_get_string):
13462         * bus/desktop-file.h:
13463         Use DBusError for error reporting.
13464
13465         * bus/dispatch.c: (send_one_message),
13466         (bus_dispatch_message_handler):
13467         * bus/driver.c: (bus_driver_send_service_deleted),
13468         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13469         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13470         (bus_driver_send_welcome_message),
13471         (bus_driver_handle_list_services),
13472         (bus_driver_handle_acquire_service),
13473         (bus_driver_handle_service_exists):
13474         * bus/loop.c: (bus_loop_run):
13475         * bus/main.c:
13476         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13477
13478         * bus/utils.c: (bus_wait_for_memory):
13479         * bus/utils.h:
13480         New files with general utility functions.
13481
13482         * dbus/dbus-internals.h:
13483         Remove _DBUS_HANDLE_OOM.
13484
13485 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13486
13487         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13488         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13489         * dbus/dbus-errors.h:
13490         Add DBusError structure.
13491
13492 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13493
13494         * test/data/valid-messages/standard-acquire-service.message:
13495         * test/data/valid-messages/standard-hello.message:
13496         * test/data/valid-messages/standard-list-services.message:
13497         * test/data/valid-messages/standard-service-exists.message:
13498         Add some standard messages.
13499
13500 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13501
13502         * bus/driver.c: (bus_driver_send_welcome_message),
13503         (bus_driver_handle_list_services),
13504         (bus_driver_handle_acquire_service),
13505         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13506         Update for API changes in libdbus.
13507
13508         * dbus/dbus-message.c: (dbus_message_new_reply):
13509         * dbus/dbus-message.h:
13510         Remove the name argument. The spec states that replies shouldn't
13511         have a name.
13512
13513 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13514
13515         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13516         (report_error), (bus_desktop_file_load), (lookup_section),
13517         (lookup_line), (bus_desktop_file_get_raw),
13518         (bus_desktop_file_get_string):
13519         * bus/desktop-file.h:
13520         Some fixes, and new functions for getting a key value from a section.
13521
13522 2003-02-13  Havoc Pennington  <hp@pobox.com>
13523
13524         * test/data/auth/fail-after-n-attempts.auth-script: new test
13525
13526         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13527         reject the client.
13528
13529 2003-02-13  Havoc Pennington  <hp@pobox.com>
13530
13531         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13532         dbus_credentials_match were backward
13533
13534         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13535         NO_CREDENTIALS and ROOT_CREDENTIALS
13536
13537         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13538         into here. Never process more commands after we've reached an
13539         end state; store further data as unused bytes.
13540
13541         * test/data/auth/*: add more auth tests
13542
13543         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13544         command to match exact string and EXPECT_UNUSED to match unused
13545         bytes
13546
13547         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13548
13549 2003-02-12  Havoc Pennington  <hp@pobox.com>
13550
13551         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13552         \r off of popped lines
13553
13554         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13555         scripts
13556
13557         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13558         SEND, append \r\n
13559
13560 2003-02-12  Havoc Pennington  <hp@pobox.com>
13561
13562         * dbus/Makefile.am: remove break-loader from the build, since it
13563         moved.
13564
13565         * configure.in: add --enable-gcov to turn on coverage profiling
13566         flags and disable optimization
13567
13568 2003-02-10  Havoc Pennington  <hp@pobox.com>
13569
13570         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13571         initial cut at test framework for DBusAuth from laptop.
13572         Doesn't quite work yet but it compiles and I need to get
13573         it off the 266mhz laptop. ;-)
13574
13575         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13576         fix a memleak in error case
13577
13578 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13579
13580         * bus/Makefile.am:
13581         * bus/desktop-file.c:
13582         * bus/desktop-file.h:
13583         Add a desktop file parser.
13584
13585 2003-02-11  Zack Rusin  <zack@kde.org>
13586
13587         * qt/message.[h|cpp]: sample implementation
13588         of the KDE wrapper for DBusMessage
13589
13590 2003-02-09  Zack Rusin  <zack@kde.org>
13591
13592         * test/bus-test.c: make_it_compile
13593         * doc/dbus-specification.sgml: minimal semantic fix
13594
13595 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13596
13597         Release 0.3
13598
13599         * NEWS: Update
13600
13601 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13602
13603         * dbus/Makefile.am:
13604         * dbus/dbus-break-loader.c:
13605         * test/Makefile.am:
13606         * test/break-loader.c:
13607         Move dbus-break-loader to test/ and rename it to break-loader.
13608
13609 2003-02-02  Havoc Pennington  <hp@pobox.com>
13610
13611         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13612         for code to manage cookies in your home directory
13613
13614         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13615
13616         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13617         to authenticate, then disconnect the client.
13618
13619 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13620
13621         * dbus/dbus-message.c (dbus_message_append_fields):
13622         Correct docs.
13623
13624 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13625
13626         * doc/dbus-specification.sgml:
13627         Update address format section.
13628
13629 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13630
13631         * test/Makefile.am:
13632         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13633         (message_handler), (new_connection_callback), (loop_quit),
13634         (loop_run), (main):
13635         Add bus test.
13636
13637 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13638
13639         * bus/driver.c: (bus_driver_handle_service_exists):
13640         Simplify the code a bit.
13641
13642         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13643         Fix a silly.
13644
13645 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13646
13647         * bus/Makefile.am:
13648         Add libdbus-daemon.la and link to it.
13649
13650 2003-02-01  James Willcox  <jwillcox@gnome.org>
13651
13652         * bus/driver.c: (bus_driver_handle_own_service):
13653         Actually include the service reply code in the message.
13654
13655 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13656
13657         * bus/driver.c: (bus_driver_handle_service_exists):
13658         Don't unref the incoming message.
13659
13660 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13661
13662         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13663
13664 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13665
13666         * dbus/dbus-server.c: (dbus_server_listen):
13667         * dbus/dbus-transport.c: (_dbus_transport_open):
13668         ifdef out the calls to the debug transport and server.
13669
13670 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13671
13672         * dbus/dbus-watch.c (dbus_watch_get_flags):
13673         Add note in the docs that ERROR or HANGUP won't be returned
13674         and are assumed always on.
13675
13676         * glib/dbus-gmain.c (add_watch):
13677         Always add IO_ERR | IO_HUP
13678
13679         * dbus/dbus-message.h:
13680         Add semicolon after dbus_message_iter_get_string_array().
13681         Makes qt code build again
13682
13683 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13684
13685         * bus/driver.c: (create_unique_client_name),
13686         (bus_driver_handle_hello):
13687         Don't take a name, just use a numeric id to identify
13688         each client.
13689
13690         * dbus/Makefile.am:
13691         * dbus/dbus-bus.c: (dbus_bus_register_client),
13692         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13693         * dbus/dbus-bus.h:
13694         Add new convenience functions for communicating with the bus.
13695
13696         * dbus/dbus-message.h:
13697
13698         * dbus/dbus-protocol.h:
13699         Fix a typo.
13700
13701 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13702
13703         * dbus/dbus-message.c (dbus_message_append_fields):
13704         Add some more doc comments.
13705
13706 2003-02-01  Havoc Pennington  <hp@pobox.com>
13707
13708         * dbus/dbus-break-loader.c (randomly_modify_length): change
13709         a 4-byte value in the message as if it were a length
13710
13711         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13712         execute bit on saved files
13713
13714 2003-02-01  Havoc Pennington  <hp@pobox.com>
13715
13716         * dbus/dbus-break-loader.c (main): new program to find messages
13717         that break the loader.
13718
13719         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13720         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13721
13722         * dbus/dbus-string.c (_dbus_string_set_byte): new
13723
13724 2003-01-31  Havoc Pennington  <hp@pobox.com>
13725
13726         * dbus/dbus-message.c: refactor the test code to be more general,
13727         in preparation for writing a "randomly permute test cases to
13728         try to break the loader" program.
13729
13730 2003-01-31  Havoc Pennington  <hp@pobox.com>
13731
13732         * doc/dbus-specification.sgml: work on the specification
13733
13734         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13735         the protocol version of the message.
13736
13737         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13738         no longer specifies that.
13739         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13740         1/2/3/4)
13741
13742         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13743         "break" for DBUS_TYPE_NIL, remove @todo
13744
13745 2003-01-31  Havoc Pennington  <hp@pobox.com>
13746
13747         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13748         just set_is_error/get_is_error as this is a commonly-used
13749         function, and write docs.
13750
13751 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13752
13753         * dbus/dbus-address.c: (dbus_address_entry_free):
13754         Free key and value lists.
13755
13756         * dbus/dbus-internals.c: (_dbus_type_to_string):
13757         Add the types we didn't have.
13758
13759         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13760         (_dbus_marshal_validate_arg):
13761         Add NIL types.
13762
13763         * dbus/dbus-message.c: (dbus_message_set_sender):
13764         Remove todo about being able to set sender to NULL.
13765
13766         (dbus_message_set_is_error_reply),
13767         (dbus_message_get_is_error_reply):
13768         * dbus/dbus-message.h:
13769         New functions.
13770
13771         * dbus/dbus-protocol.h:
13772         Add error reply flag.
13773
13774         * test/data/valid-messages/opposite-endian.message:
13775         Add NIL type to test.
13776
13777 2003-01-31  Havoc Pennington  <hp@pobox.com>
13778
13779         * doc/dbus-specification.sgml: fully specify the header.  Add
13780         flags and major protocol version, and change header/body len to
13781         unsigned.
13782
13783         * dbus/dbus-message-builder.c (append_saved_length): append length
13784         as uint32
13785
13786         * dbus/dbus-message.c (dbus_message_create_header): change header
13787         length and body length to unsigned. Add the new fields from the
13788         spec
13789         (_dbus_message_loader_return_buffer): unsigned header/body len
13790
13791 2003-01-30  Havoc Pennington  <hp@pobox.com>
13792
13793         * dbus/dbus-auth.c: rework to use only REJECTED, no
13794         MECHANISMS
13795
13796         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13797         use REJECTED, suggested by Mark McLoughlin
13798
13799 2003-01-30  Havoc Pennington  <hp@pobox.com>
13800
13801         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13802         a better way to report errors here. e.g.  "unix address lacks
13803         path" or something. also "no such file" when the path doesn't
13804         exist, etc.
13805
13806         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13807         leaking list nodes
13808         (dbus_parse_address): add @todo about documenting address format,
13809         and allowing , and ; to be escaped
13810
13811 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13812
13813         * dbus/Makefile.am:
13814         Add dbus-address.[ch]
13815
13816         * dbus/dbus-address.c: (dbus_address_entry_free),
13817         (dbus_address_entries_free), (create_entry),
13818         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13819         (dbus_parse_address), (_dbus_address_test):
13820         * dbus/dbus-address.h:
13821         New files for dealing with address parsing.
13822
13823         * dbus/dbus-connection.c:
13824         Document timeout functions.
13825
13826         * dbus/dbus-message.c:
13827         Document dbus_message_new_from_message.
13828
13829         * dbus/dbus-server-debug.c:
13830         Document.
13831
13832         * dbus/dbus-server.c: (dbus_server_listen):
13833         Parse address and use correct server implementation.
13834
13835         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13836         * dbus/dbus-string.h:
13837         New function with test.
13838
13839         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13840         * dbus/dbus-test.h:
13841         Add address tests.
13842
13843         * dbus/dbus-transport-debug.c:
13844         Document.
13845
13846         * dbus/dbus-transport.c: (_dbus_transport_open):
13847         Parse address and use correct transport implementation.
13848
13849 2003-01-30  Havoc Pennington  <hp@pobox.com>
13850
13851         * dbus/dbus-message.c: use message->byte_order instead of
13852         DBUS_COMPILER_BYTE_ORDER throughout.
13853         (dbus_message_create_header): pad header to align the
13854         start of the body of the message to 8-byte boundary
13855
13856         * dbus/dbus-marshal.h: make all the demarshalers take const
13857         DBusString arguments.
13858
13859         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13860         validate message args here, so we don't have to do slow validation
13861         later, and so we catch bad messages as they are incoming. Also add
13862         better checks on header_len and body_len. Also fill in
13863         message->byte_order
13864
13865         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13866         implemented properly)
13867         (_dbus_string_validate_nul): new function to check all-nul
13868
13869         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13870         get_arg_end_pos and remove all validation
13871         (_dbus_marshal_validate_arg): actually do validation here.
13872
13873 2003-01-29  Havoc Pennington  <hp@pobox.com>
13874
13875         * dbus/dbus-message.c (check_message_handling): fix assertion
13876         failure on set_client_serial
13877
13878 2003-01-28  Havoc Pennington  <hp@pobox.com>
13879
13880         * dbus/dbus-server-debug.c: Add doc section comments
13881
13882         * dbus/dbus-transport-debug.c: add doc section comments
13883
13884 2003-01-28  Havoc Pennington  <hp@redhat.com>
13885
13886         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13887         the reverse order from how I had it
13888         (_dbus_string_base64_encode): reverse encoding order. I was
13889         basically byteswapping everything during encoding.
13890
13891 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13892
13893         * dbus/dbus-connection-internal.h:
13894         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13895         (_dbus_connection_remove_timeout):
13896         Add functions for adding and removing timeouts.
13897
13898         * dbus/dbus-message.c: (dbus_message_new_from_message):
13899         Add new function that takes a message and creates an exact
13900         copy of it, but with the refcount set to 1.
13901         (check_message_handling):
13902         Fix build error.
13903
13904         * dbus/dbus-server-protected.h:
13905         * dbus/dbus-server.c: (_dbus_server_init_base),
13906         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13907         (dbus_server_set_timeout_functions):
13908         (_dbus_server_remove_timeout):
13909         New functions so that a server can add and remove timeouts.
13910
13911         (dbus_server_listen):
13912         Add commented out call to dbus_server_debug_new.
13913
13914         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13915         Actually set the handler, doh.
13916
13917         * dbus/dbus-transport.c: (_dbus_transport_open):
13918         Add commented out call to dbus_transport_debug_client_new.
13919
13920         * dbus/Makefile.am:
13921         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13922
13923 2003-01-28  Havoc Pennington  <hp@pobox.com>
13924
13925         * dbus/dbus-message.c (check_message_handling): function to check
13926         on the loaded message, iterates over it etc.
13927
13928 2003-01-28  Havoc Pennington  <hp@pobox.com>
13929
13930         * test/Makefile.am (dist-hook): fix make distdir
13931
13932         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13933
13934 2003-01-27  Havoc Pennington  <hp@pobox.com>
13935
13936         * dbus/dbus-mempool.c (time_for_size): replace printf with
13937         _dbus_verbose
13938
13939         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13940         empty lines; fix the SAVE_LENGTH stuff to be
13941         START_LENGTH/END_LENGTH so it actually works; couple other
13942         bugfixes
13943
13944         * test/Makefile.am (dist-hook): add dist-hook for .message files
13945
13946         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13947         can be constant or locked.
13948         (_dbus_string_free): allow freeing a const string as
13949         documented/intended
13950
13951         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13952
13953         * dbus/dbus-test-main.c (main): take an argument which is the
13954         directory containing test data
13955
13956         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13957         argument to this and load all the messages in test/data/
13958         checking that they can be loaded or not loaded as appropriate.
13959
13960 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13961
13962         * bus/dispatch.c: (bus_dispatch_message_handler):
13963         Dispatch messages sent to services.
13964
13965         * bus/driver.c: (bus_driver_send_service_deleted),
13966         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13967         (bus_driver_send_service_acquired):
13968         Add helper functions for sending service related messages.
13969
13970         (bus_driver_send_welcome_message):
13971         Send HELLO_REPLY instead of WELCOME.
13972
13973         (bus_driver_handle_list_services):
13974         Send LIST_SERVICES_REPLY instead of SERVICES.
13975
13976         (bus_driver_handle_own_service),
13977         (bus_driver_handle_service_exists):
13978         New message handlers.
13979
13980         (bus_driver_handle_message):
13981         Invoke new message handlers.
13982
13983         (bus_driver_remove_connection):
13984         Don't remove any services here since that's done automatically
13985         by bus_service_remove_owner now.
13986
13987         * bus/driver.h:
13988         New function signatures.
13989
13990         * bus/services.c: (bus_service_add_owner):
13991         Send ServiceAcquired message if we're the only primary owner.
13992
13993         (bus_service_remove_owner):
13994         Send ServiceAcquired/ServiceLost messages.
13995
13996         (bus_service_set_prohibit_replacement),
13997         (bus_service_get_prohibit_replacement):
13998         Functions for setting prohibit replacement.
13999
14000         (bus_service_has_owner):
14001         New function that checks if a connection is in the owner queue of
14002         a certain service.
14003
14004         * bus/services.h:
14005         Add new function signatures.
14006
14007         * dbus/dbus-list.c: (_dbus_list_test):
14008         Add tests for _dbus_list_remove_last and traversing the list backwards.
14009
14010         * dbus/dbus-list.h:
14011         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14012         go any further, so return NULL then.
14013
14014         * dbus/dbus-protocol.h:
14015         Add new messages, service flags and service replies.
14016
14017 2003-01-26  Havoc Pennington  <hp@pobox.com>
14018
14019         * dbus/dbus-message-builder.c: implement, completely untested.
14020
14021         * test/data/*: add data to be used in testing.
14022         ".message" files are our simple loadable text format.
14023         ".message-raw" will be binary dumps of messages.
14024
14025         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14026
14027 2003-01-26  Havoc Pennington  <hp@pobox.com>
14028
14029         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14030
14031         * dbus/dbus-errors.c (dbus_result_to_string): add
14032         file errors
14033
14034         * dbus/dbus-message-builder.c: new file, will contain code to load
14035         up messages from files. Not implemented yet.
14036
14037 2003-01-26  Havoc Pennington  <hp@pobox.com>
14038
14039         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14040         the sender by setting to NULL
14041
14042 2003-01-26  Havoc Pennington  <hp@pobox.com>
14043
14044         The unit tests pass, but otherwise untested.  If it breaks, the
14045         tests should have been better. ;-)
14046
14047         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14048         the connection.
14049
14050         * dbus/dbus-message.c: redo everything so we maintain
14051         message->header as the only copy of the various fields.
14052         This avoids the possibility of out-of-memory in some cases,
14053         for example dbus_message_lock() can't run out of memory anymore,
14054         and avoids extra copying. Figured I may as well go ahead and do
14055         this since it was busted for dbus_message_lock to not return
14056         failure on OOM, and dbus_message_write_header was totally
14057         unchecked for OOM. Also fixed some random other bugs.
14058
14059         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14060         that strings are nul-terminated. Also, end_pos can be equal
14061         to string length just not greater than, I think.
14062         (_dbus_marshal_set_int32): new function
14063         (_dbus_marshal_set_uint32): new function
14064         (_dbus_marshal_set_string): new function
14065
14066         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14067         a warning, init timeout_list to NULL
14068         (dbus_connection_send_message): don't use uninitialized variable
14069         "serial"
14070
14071         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14072
14073 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14074
14075         * bus/driver.c: (bus_driver_handle_hello),
14076         (bus_driver_send_welcome_message):
14077         Plug leaks
14078
14079 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14080
14081         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14082         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14083         (dbus_connection_unref):
14084         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14085         * dbus/dbus-message.c: (dbus_message_unref),
14086         Plug memory leaks.
14087
14088         (dbus_message_get_fields):
14089         Remove debugging printout.
14090
14091         (_dbus_message_loader_return_buffer):
14092         Don't store the header string.
14093
14094         (_dbus_message_test):
14095         Plug leaks.
14096
14097 2003-01-26  Richard Hult  <rhult@codefactory.se>
14098
14099         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14100         the file descriptor list, since it can change under us.
14101
14102 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14103
14104         * glib/dbus-gmain.c: (dbus_connection_prepare),
14105         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14106         (remove_watch), (dbus_connection_hookup_with_g_main):
14107         Rewrite the glib handling to use its own GSource instead of a
14108         GIOChannel so we can catch messages put in the queue while waiting
14109         for a reply.
14110
14111 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14112
14113         * bus/Makefile.am:
14114         * bus/connection.c: (connection_disconnect_handler),
14115         (connection_watch_callback), (bus_connection_setup):
14116         * bus/dispatch.c: (send_one_message),
14117         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14118         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14119         * bus/dispatch.h:
14120         * bus/driver.c: (bus_driver_send_service_deleted),
14121         (bus_driver_send_service_created), (bus_driver_handle_hello),
14122         (bus_driver_send_welcome_message),
14123         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14124         (bus_driver_handle_message):
14125         * bus/driver.h:
14126         Refactor code, put the message dispatching in its own file. Use
14127         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14128         is disconnected.
14129
14130 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14131
14132         * dbus/dbus-internals.h:
14133         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14134
14135         * dbus/dbus-message.c: (dbus_message_get_sender):
14136         * dbus/dbus-message.h:
14137         Implement dbus_message_get_sender.
14138
14139         * dbus/dbus-protocol.h:
14140         Add message and service defines.
14141
14142 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14143
14144         * dbus/dbus-connection.c: (dbus_connection_send_message):
14145         * dbus/dbus-message-internal.h:
14146         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14147         (dbus_message_write_header):
14148         Remove _dbus_messag_unlock and don't set the client serial on a
14149         message if one already exists.
14150
14151 2003-01-24  Havoc Pennington  <hp@pobox.com>
14152
14153         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14154         list_pool
14155
14156         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14157         on OOM
14158
14159 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14160
14161         * dbus/dbus-list.c: (alloc_link), (free_link):
14162         Use a memory pool for the links.
14163
14164 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14165
14166         * bus/connection.c: (bus_connection_foreach):
14167         * bus/connection.h:
14168         Add new bus_connection_foreach function.
14169
14170         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14171         Add function that broadcasts a message to all clients.
14172
14173         (bus_driver_send_service_created), (bus_driver_handle_hello),
14174         (bus_driver_send_welcome_message),
14175         (bus_driver_handle_list_services), (bus_driver_message_handler):
14176         Implement functions that take care of listing services, and notifying
14177         clients when new services are created.
14178
14179         * bus/services.c: (bus_services_list):
14180         * bus/services.h:
14181         Add new function that returns an array of strings with the currently
14182         registered services.
14183
14184         * glib/dbus-glib.h:
14185         * glib/dbus-gmain.c:
14186         Update copyright year.
14187
14188 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14189
14190         * dbus/dbus-connection.c: (dbus_connection_send_message):
14191         Unlock the message in case it was sent earlier.
14192
14193         (dbus_connection_send_message_with_reply_and_block):
14194         Remove the reply message from the list.
14195
14196         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14197         Set array_len and new_pos correctly.
14198
14199         (_dbus_marshal_test):
14200         Remove debug output.
14201
14202         * dbus/dbus-message-internal.h:
14203         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14204         New function that returns the reply serial.
14205
14206         (_dbus_message_unlock):
14207         New function that unlocks a message and resets its header.
14208
14209         (dbus_message_append_string_array),
14210         (dbus_message_get_fields_valist),
14211         (dbus_message_iter_get_field_type),
14212         (dbus_message_iter_get_string_array),
14213         (dbus_message_get_fields),
14214         (dbus_message_append_fields_valist):
14215         Handle string arrays.
14216
14217         (dbus_message_set_sender):
14218         Make this function public since the bus daemon needs it.
14219
14220         (decode_header_data):
14221         Set the reply serial to -1 initially.
14222
14223         * dbus/dbus-message.h:
14224         Add dbus_message_set_sender.
14225
14226 2003-01-24  Havoc Pennington  <hp@pobox.com>
14227
14228         * doc/dbus-specification.sgml: add some stuff
14229
14230 2003-01-22  Havoc Pennington  <hp@pobox.com>
14231
14232         * doc/dbus-specification.sgml: Start to document the protocol.
14233
14234 2003-01-22  Havoc Pennington  <hp@pobox.com>
14235
14236         * dbus/dbus-connection.c
14237         (dbus_connection_send_message_with_reply_and_block): add some @todo
14238
14239         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14240
14241 2003-01-21  Havoc Pennington  <hp@pobox.com>
14242
14243         (patch untested because can't compile)
14244
14245         * bus/driver.c (create_unique_client_name): make this function
14246         never recycle client names. Also, caller should initialize
14247         the DBusString.
14248
14249         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14250
14251 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14252
14253         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14254         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14255         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14256         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14257         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14258         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14259         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14260         * dbus/dbus-marshal.h:
14261         * dbus/dbus-protocol.h:
14262         Add support for marshalling and demarshalling integer, double
14263         and string arrays.
14264
14265 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14266
14267         * bus/Makefile.am:
14268         Add driver.[ch]
14269
14270         * bus/connection.c: (connection_disconnect_handler):
14271         Remove the connection from the bus driver's list.
14272
14273         (connection_watch_callback): Dispatch messages.
14274
14275         (free_connection_data): Free connection name.
14276
14277         (bus_connection_setup): Add connection to the bus driver's list.
14278         (bus_connection_remove_owned_service):
14279         (bus_connection_set_name), (bus_connection_get_name):
14280         Add functions for setting and getting the connection's name.
14281
14282         * bus/connection.h:
14283         Add function headers.
14284
14285         * bus/driver.c: (create_unique_client_name),
14286         (bus_driver_handle_hello_message),
14287         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14288         (bus_driver_add_connection), (bus_driver_remove_connection):
14289         * bus/driver.h:
14290         * bus/main.c:
14291         * bus/services.c: (bus_service_free):
14292         * bus/services.h:
14293         New file that handles communication and registreation with the bus
14294         itself.
14295
14296 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14297
14298         * dbus/dbus-connection.c: (dbus_connection_send_message):
14299         Add a new client_serial parameter.
14300
14301         (dbus_connection_send_message_with_reply):
14302         Remove a @todo since we've implemented the blocking function.
14303
14304         (dbus_connection_send_message_with_reply_and_block):
14305         New function that sends a message and waits for a reply and
14306         then returns the reply.
14307
14308         * dbus/dbus-connection.h:
14309         Add new functions.
14310
14311         * dbus/dbus-errors.c: (dbus_result_to_string):
14312         * dbus/dbus-errors.h:
14313         Add new DBUS_RESULT.
14314
14315         * dbus/dbus-message-internal.h:
14316         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14317         (_dbus_message_set_sender), (dbus_message_write_header),
14318         (dbus_message_new_reply), (decode_header_data),
14319         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14320         * dbus/dbus-message.h:
14321         Add new functions that set the reply serial and sender.
14322         Also marshal and demarshal them correctly and add test.
14323
14324         * dbus/dbus-protocol.h:
14325         Add new DBUS_MESSAGE_TYPE_SENDER.
14326
14327         * glib/dbus-glib.h:
14328         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14329         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14330         (dbus_connection_hookup_with_g_main):
14331         * glib/test-dbus-glib.c: (main):
14332         Rewrite to use GIOChannel and remove the GSource crack.
14333
14334         * test/echo-client.c: (main):
14335         * test/watch.c: (check_messages):
14336         Update for changed APIs
14337
14338 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14339
14340         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14341
14342         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14343         Create a DBusTimeoutList.
14344         (dbus_connection_set_timeout_functions): Add new function to
14345         set timeout callbacks
14346
14347         * dbus/dbus-connection.h: Add public DBusTimeout API.
14348
14349         * dbus/dbus-message.c: (dbus_message_get_service):
14350         * dbus/dbus-message.h:  New function.
14351
14352         * dbus/dbus-server.c: Fix small doc typo.
14353
14354         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14355
14356 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14357
14358         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14359         of the string, just as long as specified.
14360
14361 2003-01-19  Havoc Pennington  <hp@pobox.com>
14362
14363         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14364         new function
14365
14366         * dbus/dbus-server.c (dbus_server_set_max_connections)
14367         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14368         keep track of current number of connections, and add API for
14369         setting a max (but haven't implemented enforcing the max yet)
14370
14371 2003-01-18  Havoc Pennington  <hp@pobox.com>
14372
14373         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14374         reading/writing if read_watch != NULL or write_watch != NULL.
14375
14376         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14377         the message loader code to actually load message->header and
14378         message->body into the newly-created message.
14379
14380         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14381         in OOM case
14382
14383         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14384         (dbus_connection_get_max_message_size)
14385         (dbus_connection_set_max_live_messages_size)
14386         (dbus_connection_get_max_live_messages_size): implement some
14387         resource limitation functions
14388
14389         * dbus/dbus-resources.c: new file implementing some of the
14390         resource limits stuff
14391
14392         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14393         missing docs, add @todo to handle OOM etc.
14394
14395         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14396         docs
14397
14398 2003-01-18  Havoc Pennington  <hp@pobox.com>
14399
14400         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14401         connection if it hasn't been already.
14402
14403         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14404         replace with DisconnectFunction.
14405
14406 2003-01-18  Havoc Pennington  <hp@pobox.com>
14407
14408         Building --disable-verbose-mode --disable-asserts --disable-tests
14409         cuts the library from 112K to 45K or so
14410
14411         * configure.in: check for varargs macro support,
14412         add --enable-verbose-mode, --enable-asserts.
14413
14414         * dbus/dbus-internals.h (_dbus_assert): support
14415         DBUS_DISABLE_ASSERT
14416         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14417
14418 2003-01-18  Havoc Pennington  <hp@pobox.com>
14419
14420         * dbus/dbus-test.c: include config.h so that tests actually run
14421
14422         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14423         so the failure mode when that assumption fails will be plenty
14424         obvious.
14425
14426 2003-01-18  Havoc Pennington  <hp@pobox.com>
14427
14428         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14429
14430         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14431         the distribution
14432
14433         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14434         since we don't want to use those in make check
14435
14436 2003-01-15  Havoc Pennington  <hp@redhat.com>
14437
14438         Release 0.2
14439
14440         * NEWS: update
14441
14442 2003-01-15  Havoc Pennington  <hp@redhat.com>
14443
14444         * test/Makefile.am: fix so that test source code ends up in the
14445         distribution on make distcheck
14446
14447 2003-01-15  Havoc Pennington  <hp@redhat.com>
14448
14449         Release 0.1.
14450
14451         * NEWS: update
14452
14453 2003-01-15  Havoc Pennington  <hp@redhat.com>
14454
14455         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14456         fix build when --disable-tests
14457
14458         * Makefile.am (EXTRA_DIST): put HACKING in here
14459
14460         * HACKING: document procedure for making a tarball release.
14461
14462 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14463
14464         * bus/connection.c: (connection_error_handler),
14465         (bus_connection_setup):
14466         * bus/main.c: (main):
14467         Make sure that the DBusConnectionData struct is NULLed
14468         out to prevent a segfault.
14469
14470         * dbus/dbus-errors.c: (dbus_result_to_string):
14471         * dbus/dbus-errors.h:
14472         * dbus/dbus-message.c: (dbus_message_get_fields),
14473         (dbus_message_get_fields_valist), (_dbus_message_test):
14474         * dbus/dbus-message.h:
14475         Make dbus_message_get_fields return a result code so we can
14476         track invalid fields as well as oom.
14477
14478 2003-01-11  Havoc Pennington  <hp@pobox.com>
14479
14480         * configure.in: change --enable-test/--enable-ansi action-if-given
14481         to enable_foo=$enableval instead of enable_foo=yes
14482
14483 2003-01-08  Havoc Pennington  <hp@pobox.com>
14484
14485         * dbus/dbus-string.c (_dbus_string_align_length): new function
14486
14487         * dbus/dbus-test-main.c: move main() for test app here
14488         * dbus/dbus-test.c
14489         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14490         symbol to run tests, because dbus-test isn't in the main
14491         library
14492
14493         Code review nitpicks.
14494
14495         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14496         for people with narrow emacs ;-). Assert client_serial was filled
14497         in. Assert message->name != NULL.
14498         (dbus_message_append_fields): have "first_field_type" arg separate
14499         from va list, needed for C++ binding that also uses varargs IIRC
14500         and helps with type safety
14501         (dbus_message_new): add @todo about using DBusString to store
14502         service/name internally
14503         (dbus_message_new): don't leak ->service and ->name on OOM later
14504         in the function
14505         (dbus_message_unref): free the service name
14506         (dbus_message_get_fields): same change to varargs
14507         i.e. first_field_type
14508         (_dbus_message_loader_return_buffer): assert that the message data
14509         is aligned (if not it's a bug in our code). Put in verbose griping
14510         about why we set corrupted = TRUE.
14511         (decode_header_data): add FIXME that char* is evil.  Was going to
14512         add FIXME about evil locale-specific string.h strncmp, but just
14513         switched to wacky string-as-uint32 optimization. Move check for
14514         "no room for field name" above get_const_data_len() to avoid
14515         assertion failure in get_const_data_len if we have trailing 2
14516         bytes or the like. Check for service and name fields being
14517         provided twice. Don't leak service/name on error. Require field
14518         names to be aligned to 4 bytes.
14519
14520         * dbus/dbus-marshal.c: move byte swap stuff to header
14521         (_dbus_pack_int32): uscore-prefix
14522         (_dbus_unpack_int32): uscore-prefix
14523         (_dbus_unpack_uint32): export
14524         (_dbus_demarshal_string): add @todo complaining about use of
14525         memcpy()
14526         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14527         handling allowing corrupt data to go unchecked
14528
14529 2003-01-08  Havoc Pennington  <hp@redhat.com>
14530
14531         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14532         to the select() as needed for authentication. (should be using
14533         _dbus_poll() not select, but for another day)
14534
14535         * dbus/dbus.h: include dbus/dbus-protocol.h
14536
14537 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14538
14539         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14540         dbus-connection.h
14541
14542 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14543
14544         * dbus/dbus-internals.c: (_dbus_type_to_string):
14545         New function that returns a string describing a type.
14546
14547         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14548         * dbus/dbus-marshal.h:
14549         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14550         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14551         (dbus_message_iter_get_byte_array):
14552         * dbus/dbus-message.h:
14553         Add new convenience functions for appending and getting message fields.
14554         Also add demarshalling routines for byte arrays.
14555
14556 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14557
14558         * dbus/dbus-connection-internal.h:
14559         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14560         (_dbus_connection_get_next_client_serial),
14561         (dbus_connection_send_message):
14562         * dbus/dbus-internals.h:
14563         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14564         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14565         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14566         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14567         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14568         (_dbus_verbose_bytes), (_dbus_marshal_test):
14569         * dbus/dbus-marshal.h:
14570         * dbus/dbus-message-internal.h:
14571         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14572         (dbus_message_write_header), (_dbus_message_lock),
14573         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14574         (dbus_message_get_name), (dbus_message_append_int32),
14575         (dbus_message_append_uint32), (dbus_message_append_double),
14576         (dbus_message_append_string), (dbus_message_append_byte_array),
14577         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14578         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14579         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14580         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14581         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14582         (decode_header_data), (_dbus_message_loader_return_buffer),
14583         (message_iter_test), (_dbus_message_test):
14584         * dbus/dbus-message.h:
14585         * dbus/dbus-protocol.h:
14586         * dbus/dbus-test.c: (main):
14587         * dbus/dbus-test.h:
14588         * glib/test-dbus-glib.c: (message_handler), (main):
14589         * test/echo-client.c: (main):
14590         * test/watch.c: (check_messages):
14591         Make messages sendable and receivable for real.
14592
14593 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14594
14595         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14596         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14597         * dbus/dbus-message.c: (dbus_message_append_int32),
14598         (dbus_message_append_uint32), (dbus_message_append_double),
14599         (dbus_message_append_string), (dbus_message_append_byte_array):
14600         Handle OOM restoration.
14601
14602 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14603
14604         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14605         (_dbus_demarshal_string), (_dbus_marshal_test):
14606         * dbus/dbus-marshal.h:
14607         * dbus/dbus-message.c: (dbus_message_get_name),
14608         Document these functions.
14609
14610         (dbus_message_append_int32), (dbus_message_append_uint32),
14611         (dbus_message_append_double), (dbus_message_append_string),
14612         (dbus_message_append_byte_array):
14613         * dbus/dbus-message.h:
14614         Add functions for adding message fields of different types.
14615
14616         * dbus/dbus-protocol.h:
14617         Add the different types.
14618
14619 2003-01-05  Havoc Pennington  <hp@pobox.com>
14620
14621         * bus/connection.c: implement routines for handling connections,
14622         first thing is keeping a list of owned services on each connection
14623         and setting up watches etc.
14624
14625         * bus/services.c: implement a mapping from service names to lists
14626         of connections
14627
14628         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14629
14630         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14631         to use static mutexes for global data
14632
14633         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14634         collection of functions to set/get application-specific data
14635         on the DBusConnection.
14636
14637 2003-01-04  Havoc Pennington  <hp@pobox.com>
14638
14639         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14640         (_dbus_poll): new function
14641
14642         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14643         copied from GLib
14644
14645         * bus/loop.c: initial code for the daemon main loop
14646
14647 2003-01-04  Havoc Pennington  <hp@pobox.com>
14648
14649         * test/watch.c (error_handler): make it safe if the error handler
14650         is called multiple times (if we s/error handler/disconnect
14651         handler/ we should just guarantee it's called only once)
14652
14653         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14654         error handler on disconnect (it's quite possible we should
14655         just change the error handler to a "disconnect handler," I'm
14656         not sure we have any other meaningful errors)
14657
14658         * configure.in: check for getpwnam_r
14659
14660         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14661         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14662         mechanism as in SASL spec, using socket credentials
14663
14664         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14665         (_dbus_send_credentials_unix_socket): new function
14666
14667         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14668         dbus_accept()
14669         (_dbus_write): only check errno if <0 returned
14670         (_dbus_write_two): ditto
14671
14672 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14673
14674         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14675         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14676         (_dbus_marshal_test):
14677         * dbus/dbus-marshal.h:
14678         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14679         to _dbus_marshal_utf8_string. Also fix some tests.
14680
14681 2002-12-28  Harri Porten  <porten@kde.org>
14682
14683         * configure.in: added check for C++ compiler and a very cheesy
14684         check for the Qt integration
14685
14686         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14687
14688         * qt/Makefile.am: added
14689
14690         * qt/.cvsignore: added
14691
14692         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14693         latter, added #ifdef QT_THREAD_SUPPORT guard.
14694
14695         * dbus/Makefile.am: added missing headers for make dist
14696
14697 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14698
14699         * dbus/Makefile.am: fixup export-symbols-regex.
14700
14701 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14702
14703         * acinclude.m4: Add this file and put the
14704         PKG_CHECK_MODULE macro in it.
14705
14706 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14707
14708         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14709         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14710         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14711         (_dbus_marshal_test):
14712         Make the demarshalling routines align the pos argument.
14713         Add string marshalling tests and fix the obvious bugs
14714         discovered.
14715
14716 2002-12-26  Havoc Pennington  <hp@pobox.com>
14717
14718         * dbus/dbus-auth.c: fixes fixes fixes
14719
14720         * dbus/dbus-transport-unix.c: wire up support for
14721         encoding/decoding data on the wire
14722
14723         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14724         (_dbus_auth_decode_data): append to target string
14725         instead of nuking it.
14726
14727 2002-12-26  Havoc Pennington  <hp@pobox.com>
14728
14729         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14730         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14731         doh
14732
14733         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14734         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14735         now). Main point is because I wanted unpack_uint32 to implement
14736         _dbus_verbose_bytes
14737         (_dbus_verbose_bytes): new function
14738
14739         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14740
14741         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14742         mechanism to handle a corrupt message stream
14743         (_dbus_message_loader_new): fix preallocation to only prealloc,
14744         not prelengthen
14745
14746         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14747         (_dbus_string_test): enhance tests for copy/move and fix the
14748         functions
14749
14750         * dbus/dbus-transport-unix.c: Hold references in more places to
14751         avoid reentrancy problems
14752
14753         * dbus/dbus-transport.c: ditto
14754
14755         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14756         leak reference count in no-message case
14757
14758         * test/watch.c (do_mainloop): handle adding/removing watches
14759         during iteration over the watches. Also, ref the connection/server
14760         stored on a watch, so we don't try to mangle a destroyed one.
14761
14762         * dbus/dbus-transport-unix.c (do_authentication): perform
14763         authentication
14764
14765         * dbus/dbus-auth.c (get_state): add a state
14766         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14767         (_dbus_auth_get_unused_bytes): append the unused bytes
14768         to the passed in string, rather than prepend
14769
14770         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14771         the auth conversation DBusAuth
14772
14773         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14774         (_dbus_transport_new_for_domain_socket): when creating a
14775         transport, pass in whether it's a client-side or server-side
14776         transport so we know which DBusAuth to create
14777
14778 2002-12-03  Havoc Pennington  <hp@pobox.com>
14779
14780         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14781         _after_ finalizing the derived members
14782         (unix_connection_set): unref watch if we fail to add it
14783
14784         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14785         transport first, so that the connection owned by the
14786         transport will be valid as the transport finalizes.
14787
14788         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14789         if necessary, and remove watches from the connection.
14790
14791         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14792
14793 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14794
14795         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14796         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14797         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14798         (_dbus_marshal_test):
14799         * dbus/dbus-marshal.h:
14800         Add string marshal functions and have the demarshal functions
14801         return the new position.
14802
14803 2002-12-25  Havoc Pennington  <hp@pobox.com>
14804
14805         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14806         it is a simple protocol that just maps directly to SASL.
14807
14808         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14809         initial implementation, not actually used yet.
14810
14811         * dbus/dbus-string.c (_dbus_string_find): new function
14812         (_dbus_string_equal): new function
14813         (_dbus_string_base64_encode): new function
14814         (_dbus_string_base64_decode): new function
14815
14816 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14817
14818         * dbus/Makefile.am:
14819         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14820         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14821         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14822         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14823         * dbus/dbus-marshal.h:
14824         * dbus/dbus-protocol.h:
14825         * dbus/dbus-test.c: (main):
14826         * dbus/dbus-test.h:
14827         Add un-optimized marshalling/demarshalling routines.
14828
14829 2002-12-25  Harri Porten  <porten@kde.org>
14830
14831         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14832
14833 2002-12-24  Zack Rusin  <zack@kde.org>
14834
14835         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14836         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14837         main loop stuff
14838
14839 2002-12-24  Havoc Pennington  <hp@pobox.com>
14840
14841         * glib/dbus-gthread.c: fix include
14842
14843         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14844         I think glib API needs to change, though, as you don't
14845         want to use DBusMessageFunction, you want to use the
14846         DBusMessageHandler object. Probably
14847         dbus_connection_open_with_g_main_loop()
14848         and dbus_connection_setup_g_main_loop() or something like that
14849         (but think of better names...) that just create a connection
14850         that has watch/timeout functions etc. already set up.
14851
14852         * dbus/dbus-connection.c
14853         (dbus_connection_send_message_with_reply): new function just to
14854         show how the message handler helps us deal with replies.
14855
14856         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14857
14858         * dbus/dbus-string.c (_dbus_string_test): free a string that
14859         wasn't
14860
14861         * dbus/dbus-hash.c: use memory pools for the hash entries
14862         (rebuild_table): be more paranoid about overflow, and
14863         shrink table when we can
14864         (_dbus_hash_test): reduce number of sprintfs and write
14865         valid C89. Add tests for case where we grow and then
14866         shrink the hash table.
14867
14868         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14869
14870         * dbus/dbus-connection.c (dbus_connection_register_handler)
14871         (dbus_connection_unregister_handler): new functions
14872
14873         * dbus/dbus-message.c (dbus_message_get_name): new
14874
14875         * dbus/dbus-list.c: fix docs typo
14876
14877         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14878         an object representing a handler for messages.
14879
14880 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14881
14882         * glib/dbus-glib.h:
14883         * glib/dbus-gthread.c: (dbus_gthread_init):
14884         Don't use the gdbus prefix for public functions.
14885
14886 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14887
14888         * Makefile.am:
14889         * configure.in:
14890         Add GLib checks and fixup .pc files
14891
14892         * glib/Makefile.am:
14893         * glib/dbus-glib.h:
14894         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14895         (gdbus_connection_check), (gdbus_connection_dispatch),
14896         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14897         (dbus_connection_gsource_new):
14898         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14899         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14900         * glib/test-dbus-glib.c: (message_handler), (main):
14901         Add GLib support.
14902
14903 2002-12-15  Harri Porten  <porten@kde.org>
14904
14905         * autogen.sh: check for libtoolize before attempting to use it
14906
14907         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14908         struct.
14909
14910         * .cvsignore: ignore more stamp files
14911
14912         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14913
14914         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14915         without make install.
14916
14917 2002-12-15  Havoc Pennington  <hp@pobox.com>
14918
14919         * dbus/dbus-threads.c: add thread stubs that a higher library
14920         layer can fill in. e.g. the GLib wrapper might fill them in with
14921         GThread stuff. We still need to use this thread API to
14922         thread-safe-ize the library.
14923
14924 2002-12-12  Havoc Pennington  <hp@pobox.com>
14925
14926         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14927         below new interfaces and include fewer system headers.
14928
14929         * dbus/dbus-sysdeps.c (_dbus_read): new function
14930         (_dbus_write): new function
14931         (_dbus_write_two): new function
14932         (_dbus_connect_unix_socket): new function
14933         (_dbus_listen_unix_socket): new function
14934
14935         * dbus/dbus-message-internal.h: change interfaces to use
14936         DBusString
14937
14938 2002-12-11  Havoc Pennington  <hp@pobox.com>
14939
14940         * dbus/dbus-types.h: add dbus_unichar
14941
14942         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14943
14944         * dbus/dbus-connection.c (dbus_connection_send_message): return
14945         TRUE on success
14946
14947         * dbus/dbus-transport.c: include dbus-watch.h
14948
14949         * dbus/dbus-connection.c: include dbus-message-internal.h
14950
14951         * HACKING: add file with coding guidelines stuff.
14952
14953         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14954         handling here, for security purposes (as in vsftpd). Not actually
14955         using this class yet.
14956
14957         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14958         system/libc usage here, as in vsftpd, for ease of auditing (and
14959         should also simplify portability). Haven't actually moved all the
14960         system/libc usage into here yet.
14961
14962 2002-11-25  Havoc Pennington  <hp@pobox.com>
14963
14964         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14965         always print the first verbose message.
14966
14967 2002-11-24  Havoc Pennington  <hp@pobox.com>
14968
14969         * test/echo-client.c, test/echo-server.c: cheesy test
14970         clients.
14971
14972         * configure.in (AC_CHECK_FUNCS): check for writev
14973
14974         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14975         function
14976
14977         * dbus/dbus-list.c (_dbus_list_foreach): new function
14978
14979         * dbus/dbus-internals.c (_dbus_verbose): new function
14980
14981         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14982         representing a server that listens for connections.
14983
14984         * dbus/.cvsignore: create
14985
14986         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14987         public API for reporting errors
14988
14989         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14990         public object representing a connection that
14991         sends/receives messages. (Same object used for
14992         both client and server.)
14993
14994         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14995         Basic abstraction for different kinds of stream
14996         that we might read/write messages from.
14997
14998 2002-11-23  Havoc Pennington  <hp@pobox.com>
14999
15000         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15001         _DBUS_INT_MAX
15002
15003         * dbus/dbus-test.c (main): add list test, and include
15004         dbus-test.h as intended
15005
15006         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15007         (_dbus_hash_table_remove_int): return value indicates
15008         whether the entry existed to remove
15009
15010         * dbus/dbus-list.c: add linked list utility class,
15011         with docs and tests
15012
15013         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15014         array sometimes.
15015
15016 2002-11-23  Havoc Pennington  <hp@pobox.com>
15017
15018         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15019         DBUS_END_DECLS to nothing, that should fix this once and for all
15020
15021         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15022
15023         * dbus/dbus-message.c, dbus/dbus-hash.c:
15024         add some missing @brief
15025
15026 2002-11-23  Havoc Pennington  <hp@pobox.com>
15027
15028         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15029         to avoid confusing Doxygen
15030
15031         * dbus/dbus-hash.c: @} not }@
15032
15033         * dbus/dbus-message.c (struct DBusMessage): split out
15034         internals docs
15035
15036 2002-11-23  Havoc Pennington  <hp@pobox.com>
15037
15038         * configure.in: pile on more warning flags if using gcc
15039
15040         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15041         to document static functions
15042
15043         * configure.in: add summary to end of configure so it
15044         looks nice and attractive
15045
15046         * dbus/dbus-hash.c: finish implementation and write unit
15047         tests and docs
15048
15049         * configure.in: add --enable-tests to enable unit tests
15050
15051         * dbus/dbus-test.c: test program to run unit tests
15052         for all files in dbus/*, initially runs a test for
15053         dbus-hash.c
15054
15055         * dbus/dbus-internals.h: file to hold some internal utility stuff
15056
15057 2002-11-22  Havoc Pennington  <hp@redhat.com>
15058
15059         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15060         "ported" away from Tcl
15061
15062         * dbus/dbus-types.h: header for types such as dbus_bool_t
15063
15064 2002-11-22  Havoc Pennington  <hp@redhat.com>
15065
15066         * dbus/dbus.h: fixups for doc warnings
15067
15068         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15069         macros
15070         (QUIET): make it quiet so we can see warnings
15071
15072         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15073
15074 2002-11-22  Havoc Pennington  <hp@redhat.com>
15075
15076         * Makefile.am: include "Doxyfile" target in all-local
15077
15078         * configure.in: generate the Doxyfile
15079
15080         * Doxyfile.in: move Doxyfile here, so we can use
15081         configure to generate a Doxyfile with the right
15082         version number etc.
15083
15084 2002-11-22  Havoc Pennington  <hp@redhat.com>
15085
15086         * dbus/dbus-message.c: move inline docs into .c file
15087
15088         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15089         so all docs are under doc/
15090         (MAN_EXTENSION): generate man pages. Use extension
15091         ".3dbus" which matches ".3qt" on my system,
15092         I guess this is OK, I don't know really.
15093         (FILE_PATTERNS): look for .c files not .h, makes sense
15094         for plain C I think
15095
15096 2002-11-22  Havoc Pennington  <hp@pobox.com>
15097
15098         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15099         because any app can be a server, and any app can be a client,
15100         the bus is a special kind of server.
15101
15102 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15103
15104         * Doxyfile : adding. Still needs Makefile rules to be generated
15105         automatically (just run "doxygen" in the toplevel dir for now to
15106         generate docs)
15107
15108         * dbus/dbus-message.h : Adding sample docs (javadoc since
15109         resembles gtk-doc a little more)
15110
15111         * dbus/dbus.h : Adding sample docs
15112
15113 2002-11-21  Havoc Pennington  <hp@redhat.com>
15114
15115         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15116         so we can allow ourselves to include files directly,
15117         instead of having to use dbus.h
15118
15119         * dbus/dbus.h: fill in
15120
15121         * dbus/dbus-message.h: sketch out a sample header file.
15122         Include griping if you include it directly instead of
15123         via dbus.h
15124
15125         * dbus/dbus-macros.h: new file with macros for extern "C",
15126         TRUE/FALSE, NULL, etc.
15127
15128         * doc/file-boilerplate.c: put include guards in here
15129
15130 2002-11-21  Havoc Pennington  <hp@redhat.com>
15131
15132         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15133
15134         * COPYING: include the GPL as well, and license code
15135         under both AFL and GPL.
15136
15137 2002-11-21  Havoc Pennington  <hp@redhat.com>
15138
15139         * acconfig.h: get rid of this
15140
15141         * autogen.sh (run_configure): add --no-configure option
15142
15143         * configure.in: remove AC_ARG_PROGRAM to make
15144         autoconf complain less. add AC_PREREQ.
15145         add AC_DEFINE third arg.
15146
15147 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15148
15149         * doc/Makefile.am:
15150         Fix references so we can distcheck.
15151
15152 2002-11-21  Havoc Pennington  <hp@redhat.com>
15153
15154         * Initial module creation
15155