* Released 1.0.0
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Released 1.0.0
4
5 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
6
7         * README: remove some of the out of date flags
8
9         * doc/TODO: Remove todo items which are done
10
11 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
12
13         * tools/dbus-monitor.c: Handle sigint so we flush stdout
14         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
15
16 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
17
18         * tools/dbus-monitor.1: update the manpage for dbus-monitor
19         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
20
21 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
22
23         * AUTHORS: Update with all people listed in the ChangeLog
24
25 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
26
27         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
28         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
29
30 2006-11-07  Havoc Pennington  <hp@redhat.com>
31
32         * HACKING: Update release instructions to include stuff about
33         stable releases, branching, etc. May not be totally correct,
34         please fix if needed, but keep instructions up-to-date so we do
35         each stable release consistently in the future.
36
37 2006-11-07  Havoc Pennington  <hp@redhat.com>
38
39         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
40         documentation updates. Bump faq/spec versions (not to 1.0; I don't
41         think the spec will be "finished"/1.0 when we ship the 1.0 library).
42
43 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
44
45         * bus/bus.c: Missed patch - pass in the context to the directory watch
46
47 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
48
49         * Released D-Bus 1.0 RC 3(0.95)
50
51 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
52
53         * bus/activation.c (bus_activation_new): don't fail if we can not read
54         the directory as it may not exist
55
56 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
57
58         * bus/config-parser.c (service_dirs_find_dir): use 
59         _dbus_list_get_next_link so we don't get stuck in an infinite loop
60         (start_busconfig_child): move processing of standard_session_servicedirs
61         tags here because they have no content
62         (bus_config_parser_content): check we don't have content in 
63         standard_session_servicedirs tag
64
65 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
66
67         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
68         Packagers need to own this directory
69
70 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
71
72         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
73         <standard_session_servicedirs> tag with a <sevicedir> tag that
74         points to the test service directory
75
76 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
77
78         * configure.in: Add a check for DIR *dirp->dd_fd
79
80         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
81         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
82         of both Solaris and Irix
83
84 2006-11-01  Havoc Pennington  <hp@redhat.com>
85
86         * bus/dbus-daemon.1.in: document standard_session_servicedirs
87
88 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
89
90         * configure.in: expose DBUS_DATADIR
91         
92         * bus/config-parser.c: add the standard_session_servicedirs element
93         to the parser
94         (bus_config_parser_content): process the standard_session_servicedirs
95         element by getting the standard directories from sysdeps and merging
96         them into the service directory list
97         (test_default_session_servicedirs): make sure we get what we expect
98
99         * bus/session.conf.in: replace the servicedir tag with the 
100         standard_session_servicedirs tag
101
102         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
103         dbus-sysdeps.h to avoid circular header dependencies
104
105         * dbus/dbus-sysdeps.h: add the typedef of DBusList
106
107         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
108         which takes a string of directories delimited by colons, parses them 
109         out, appends a suffix and puts them in a list ignoring empty elements
110         (_dbus_get_standard_session_servicedirs): returns the standard 
111         directories for a session bus to look for service activation files
112         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
113         DBUS_DATADIR directories
114
115         * test/data/valid-config-files/many-rules.conf: add the 
116         standard_session_servicedirs tag to the valid config file tests
117
118 2006-10-30  Havoc Pennington  <hp@redhat.com>
119
120         * tools/dbus-launch.1, doc/TODO: capture intent to change the
121         command line options of dbus-launch a bit post 1.0
122
123 2006-10-27  Havoc Pennington  <hp@redhat.com>
124         
125         * dbus/dbus-connection.c (dbus_connection_open_private): document
126         how to choose shared vs. private connections
127
128 2006-10-27  Havoc Pennington  <hp@redhat.com>
129
130         * dbus/dbus-test.c: enclose more of the file in the
131         DBUS_BUILD_TESTS check.
132
133         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
134         DBUS_DISABLE_ASSERT case.
135
136         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
137         that it only works on the server side
138
139         * dbus/dbus-bus.c: add a global lock covering the BusData we
140         attach to each connection
141         (internal_bus_get): lock our access to the BusData
142         (dbus_bus_register): lock the entire registration process
143         with _DBUS_LOCK(bus_datas). If we get the lock and 
144         registration is already complete, silently return (vs. previous
145         behavior of aborting).
146         (dbus_bus_set_unique_name): lock the BusData
147         (dbus_bus_get_unique_name): lock the BusData
148
149 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
150
151         * bus/config-parser.c (service_dirs_find_dir, 
152         service_dirs_append_unique_or_free, 
153         service_dirs_append_link_unique_or_free): New static methods
154         for only appending unique service directory names into
155         the service directory list
156         (merge_included, bus_config_parser_content): Only add unique
157         service directory names into the list
158
159 2006-10-27  Havoc Pennington  <hp@redhat.com>
160
161         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
162         variables volatile, suggested by Thiago. Document struct fields.
163         (PTHREAD_CHECK): remove pthread error checking if assertions are
164         disabled, should reduce the no-assertions case to the bare
165         minimum code.
166
167 2006-10-26  Havoc Pennington  <hp@redhat.com>
168         
169         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
170         to be recursive
171         (_dbus_pthread_mutex_unlock): make it recursive
172         (_dbus_pthread_condvar_wait): save/restore the recursion count
173         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
174
175 2006-10-26  Havoc Pennington  <hp@redhat.com>
176
177         * doc/dbus-specification.xml: clarify the UUID text slightly
178
179         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
180         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
181         in preparation for being able to extend them for e.g. recursive
182         mutexes.
183
184 2006-10-26  Havoc Pennington  <hp@redhat.com>
185
186         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
187         condition variables relate to recursive mutexes.
188         
189         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
190         dbus/dbus-threads.c: Split the platforms-specific thread 
191         implementations into their own files.
192         
193         * dbus/dbus-sysdeps-pthread.c
194         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
195         was backward. Not that anything uses it.
196
197 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
198
199         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
200         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
201         needs to be cleaned up more.
202
203         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
204         up the CREDS issue.
205
206 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
207
208         * configure.in, dbus-1.pc.in: Check to see if thread methods 
209         are in glibc or libpthread and add -lpthread to the link stage 
210         if it is the latter
211
212 2006-10-26  Thiago Macieira  <thiago@kde.org>
213
214         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
215         bug 8780: the connection lock is only required while recording
216         the shared connection, so protect only that code
217         section. Don't require connection_lookup_shared to return a
218         locked connection.
219
220 2006-10-26  Thiago Macieira  <thiago@kde.org>
221
222         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
223         check if get_machine_uuid() returns NULL before proceeding any
224         further: we can't init the X atoms or create a session file
225         name if there is no machine ID.
226         This solves a crash reported by some users if
227         --exit-with-session was used without --autolaunch=<machine-id>
228
229 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
230
231         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
232         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
233
234         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
235         before we run dbus-launch
236
237         * configure.in: define TEST_BUS_BINARY to be the full path to 
238         dbus-daemon in the build root 
239
240 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
241
242         * dbus/Makefile.am:
243         * tools/Makefile.am:
244         * toos/dbus-uuidgen.1:
245                 Move the machine-id file to /var/lib/dbus 
246
247 2006-10-24  David Zeuthen  <davidz@redhat.com>
248
249         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
250         _dbus_assert (thread_init_generation != _dbus_current_generation)
251         not _dbus_assert (thread_init_generation == _dbus_current_generation)
252
253 2006-10-24  Thiago Macieira  <thiago@kde.org>
254
255         * dbus/dbus-sysdeps.h:
256         * dbus/dbus-sysdeps-unix.c: Add function
257         _dbus_make_file_world_readable that chmods a file to 0644.
258
259         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
260         Avoid writing to the static "argv" array, thereby avoiding a
261         COW on the child process.
262
263         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
264         call _dbus_make_file_world_readable on the created file.
265
266 2006-10-23  David Zeuthen  <davidz@redhat.com>
267
268         * dbus/dbus-memory.c: Use atomic variable to protect
269         n_blocks_outstanding otherwise OOM will be reported using SMP on
270         some arches
271         
272         * bus/dispatch.c: Add missing end of line characters
273
274         * bus/desktop-file.c (parse_section_start, parse_key_value) 
275         (bus_desktop_file_load): Propertly handle OOM
276
277         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
278         thread_init_generation equals _dbus_current_generation, not 0
279
280 2006-10-22  Havoc Pennington  <hp@redhat.com>
281
282         * dbus/dbus-connection-internal.h: move prototype of
283         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
284         it isn't in a public header and doesn't end up in the DBusBus
285         group in Doxygen
286
287 2006-10-21  Havoc Pennington  <hp@redhat.com>
288
289         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
290         the tarball if packagers want to run it
291
292         * cleanup-man-pages.sh: Add a script which munges all the internal
293         API man pages out of the Doxygen output. This reduces the size of
294         the installed man pages from 7 to 2 megs, and avoids
295         namespace-polluting pages. Right now (like Doxygen) this script
296         isn't in the build, it's something packagers can do manually.
297
298 2006-10-21  Havoc Pennington  <hp@redhat.com>
299
300         * dbus/dbus-connection.h: don't include the watch/timeout
301         functions in connection section
302
303 2006-10-21  Havoc Pennington  <hp@redhat.com>
304
305         * Documentation! Whee! Doxygen now 100% silent. If you make it
306         angry again, you will be punished.
307         
308 2006-10-21  Havoc Pennington  <hp@redhat.com>
309
310         * More documentation - all public API now documented according to
311         Doxygen
312
313 2006-10-21  Havoc Pennington  <hp@redhat.com>
314
315         * Document a bunch of undocumented stuff
316         
317 2006-10-21  Havoc Pennington  <hp@redhat.com>
318
319         * Clean up Doxygen group markers for public API so Doxygen finds
320         everything (not comprehensively fixed for private API).
321         Means all remaining Doxygen warnings are just about missing docs
322         and thus pretty simple to resolve.
323         
324 2006-10-21  Havoc Pennington  <hp@redhat.com>
325         
326         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
327
328         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
329         as DBUS_GNUC_DEPRECATED
330
331 2006-10-21  Havoc Pennington  <hp@redhat.com>
332
333         * Move all private API into the private Doxygen group sections of
334         the files, so they don't show up in the public API docs
335         
336 2006-10-21  Havoc Pennington  <hp@redhat.com>
337
338         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
339         dbus_message_iter_get_array_len().
340
341         * throughout: documentation improvements.
342
343 2006-10-20  Havoc Pennington  <hp@redhat.com>
344
345         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
346         matter, and the message-loader-breaker thing since nobody is going
347         to do it.  Add an item to 1.0 about supporting recursive locks
348         in dbus_threads_init_default() though, since it should be easy.
349
350         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
351         Fix this in the !dispatch case to avoid busy-looping after
352         disconnection
353
354         * More misc docs improvements
355
356 2006-10-19  Havoc Pennington  <hp@redhat.com>
357
358         * more Doxygen-related fixes (lots of moving things from the
359         public to internal section in dbus-connection.c)
360
361 2006-10-19  Havoc Pennington  <hp@redhat.com>
362
363         * Fix a pile of Doxygen warnings and missing docs
364
365 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
366
367         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
368         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
369         instead of a void *.  kqueue uses this to get the context's loop
370         while the other modules ignore the parameter.  This allows us to
371         avoid platform conditionals
372
373         * bus/bus.c (process_config_postinit): Pass in the context to the 
374         watch
375
376 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
377
378         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
379         when starting the system bus
380
381 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
382
383         * configure.in: More fixups for cross compile (Patch from 
384         Marco Pracucci <development at pracucci dot com>)
385
386 2006-10-17  Havoc Pennington  <hp@redhat.com>
387
388         * tools/dbus-send.c (main): don't close shared connection, fix
389         from Timo Hoenig
390
391 2006-10-17  Havoc Pennington  <hp@redhat.com>
392
393         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
394
395         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
396         since realistically it doesn't look like we'll be changing it
397         anymore.
398
399 2006-10-17  Havoc Pennington  <hp@redhat.com>
400
401         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
402         be used for return_if_fail type warnings; prefixes the pid, and
403         fatal by default.
404
405 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
406
407         * configure.in: Released 1.0 RC 2(0.94)
408         Add check for -fPIC and enable it if available
409
410 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
411
412         * doc/TODO: Remove the check TODO item
413
414 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
415
416         * dbus-transport-socket.c (exchange_credentials):
417         Print out more detailed errors if reading or sending
418         credentials fail (Patch from Julio M. Merino Vidal 
419         <jmmv at NetBSD dot org>)
420
421 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
422
423         * configure.in: when checking for posix getpwnam_r assume true
424         for cross compiles
425
426 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
427
428         * configure.in: Check for gethostbyname first before we check for it
429         in libnsl.  On gnu systems it is implemeneted 
430
431 2006-10-13  Havoc Pennington  <hp@redhat.com>
432
433         * dbus/dbus-connection.c
434         (dbus_connection_send_with_reply_and_block): fix to handle closed
435         connections, from Tambet Ingo bug #8631
436
437 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
438
439         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
440
441 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
442
443         * test/name-test/Makefile.am: don't link against both libdbus and
444         libdbus-convenience
445
446 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
447
448         * configure.in: check for dirfd even if it is a macro
449         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
450
451 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
452
453         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
454         avoid using dirfd on systems that don't have dirfd 
455         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
456
457 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
458
459         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
460         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
461
462         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
463         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
464         macro because _dbus_abort calls it
465
466         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
467         works
468
469 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
470
471         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
472         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
473
474 2006-10-02  Thiago Macieira  <thiago@kde.org>
475
476         * tools/dbus-launch.c (main): make it complain and abort
477         execution in case an unknown option is given. Also, process
478         the '--' argument as the end of arguments.
479
480 2006-10-01  Havoc Pennington  <hp@redhat.com>
481
482         * tools/dbus-launch.c (print_variables): if no syntax is given,
483         don't print something that's sort-of-half-sh-syntax, just print
484         a plain key-value pairs thing.
485
486         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
487         the local machine representation (but still have the hostname in
488         the display). Remove the hostname from the display if it is
489         localhost. Change session files to be named
490         ~/.dbus/session-bus/machine-display. Change X atoms to be
491         underscore-prefixed so nobody whines about ICCCM compliance.
492         Otherwise name them the same as the env variables.
493         Change session file format to include key-value pairs and an
494         explanatory comment. Keys are the same as the env variables.
495         (set_address_in_x11): X property format can't depend on
496         sizeof(pid_t) on a particular machine, fix to always be 32 bits
497
498         * tools/dbus-launch.c: make --autolaunch take a machine id
499         argument. If --autolaunch is used with a program to run, complain
500         for now (but add a FIXME). Also, don't look for existing bus if 
501         there's a program to run (but add a FIXME).
502
503         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
504         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
505         just to get this, and avoids duplicating uuid-reading code).
506
507         * tools/dbus-launch.1: clarify various things
508         
509 2006-10-01  Havoc Pennington  <hp@redhat.com>
510
511         * test/test-service.c (path_message_func): remove broken extra
512         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
513
514         * test/test-shell-service.c (path_message_func): same fix
515         
516         * dbus/dbus-connection.c
517         (_dbus_connection_get_dispatch_status_unlocked): break up the
518         function a little for clarity and fix the notification of
519         dbus-bus.c to not require dispatch to be complete
520
521         * dbus/dbus-connection.c (dbus_connection_unref): improve the
522         warning when you try to finalize an open connection.
523         
524 2006-10-01  Havoc Pennington  <hp@redhat.com>
525
526         * dbus/dbus-bus.c
527         (internal_bus_get): only weak ref the connection; this means 
528         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
529         called safely in any context
530         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
531         unref
532
533         * dbus/dbus-connection.c
534         (_dbus_connection_get_dispatch_status_unlocked): move
535         _dbus_bus_notify_shared_connection_disconnected_unlocked here
536         when queuing Disconnected instead of when the Disconnected message
537         arrives, so dbus_bus_get() won't return closed connections.
538         
539 2006-10-01  Havoc Pennington  <hp@redhat.com>
540
541         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
542         Add a hack to make DBusNewConnectionFunction work right.
543
544         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
545         the hack here. Also, fix the todo about refcount leak.
546         
547         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
548         and use the hack here
549         
550         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
551         "shareable" flag; this was completely broken, since it meant 
552         dbus_connection_open() returned a connection of unknown
553         shared-ness. Now, we always hold a ref on anything opened 
554         as shareable.
555
556         Move the call to notify dbus-bus.c into
557         connection_forget_shared_unlocked, so libdbus consistently forgets
558         all its knowledge of a connection at once. This exposed numerous
559         places where things were totally broken if we dropped a ref inside
560         get_dispatch_status_unlocked where
561         connection_forget_shared_unlocked was previously, so move
562         connection_forget_shared_unlocked into
563         _dbus_connection_update_dispatch_status_and_unlock. Also move the
564         exit_on_disconnect here.
565
566         (shared_connections_shutdown): this assumed weak refs to the
567         shared connections; since we have strong refs now, the assertion 
568         was failing and stuff was left in the hash. Fix it to close
569         still-open shared connections.
570         
571         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
572         debug pipe connections
573         
574         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
575         dbus-bus.c if the closed connection is in fact shared
576         (_dbus_connection_close_possibly_shared): rename from 
577         _dbus_connection_close_internal
578         (dbus_connection_close, dbus_connection_open,
579         dbus_connection_open_private): Improve docs to explain the deal
580         with when you should close or unref or both
581
582         * dbus/dbus-bus.c
583         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
584         from _dbus_bus_check_connection_and_unref_unlocked and modify to
585         loop over all connections
586
587         * test/test-utils.c (test_connection_shutdown): don't try to close
588         shared connections.
589
590         * test/name-test/test-threads-init.c (main): fix warnings in here
591
592         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
593         env variable to cause blocking waiting for gdb; drop
594         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
595         unconditionally.
596
597         * configure.in: add -export-dynamic to libtool flags if assertions enabled
598         so _dbus_print_backtrace works.
599
600         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
601         instead of _dbus_verbose to print the backtrace, and diagnose lack 
602         of -rdynamic/-export-dynamic
603         
604 2006-09-30  Havoc Pennington  <hp@redhat.com>
605
606         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
607         (internal_bus_get): fix screwy code formatting. whoever committed
608         that was not paying attention!
609
610 2006-09-30  Havoc Pennington  <hp@redhat.com>
611
612         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
613         reflect addition of interfaces.
614
615         * doc/dbus-specification.xml: describe a new
616         org.freedesktop.DBus.Peer.GetMachineId method
617
618         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
619         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
620         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
621         at end of skip_white
622         (_dbus_string_chop_white): new function
623
624         * bus/connection.c (bus_connections_setup_connection): call
625         dbus_connection_set_route_peer_messages.
626
627         * dbus/dbus-connection.c
628         (_dbus_connection_peer_filter_unlocked_no_update): modify to
629         support a GetMachineId method.
630
631         Also, support a new flag to let the bus pass peer methods through
632         to apps on the bus, which can be set with
633         dbus_connection_set_route_peer_messages.
634
635         Finally, handle and return an error for anything unknown on the
636         Peer interface, which will allow us to extend the Peer interface
637         in the future without fear that we're now intercepting something
638         apps were wanting to see.
639         
640         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
641         dbus/dbus-uuidgen.c
642
643         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
644         binary here, since most of the code is already in libdbus
645
646         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
647         uuid from the system config file
648
649         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
650         (_dbus_read_uuid_file_without_creating) 
651         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
652         uuid-related functions, partly factored out from dbus-server.c
653
654         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
655         DBUS_ERROR_FILE_EXISTS instead of EEXIST
656
657         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
658
659         * tools/dbus-cleanup-sockets.1: explain what the point of this
660         thing is a bit more
661
662         * autogen.sh (run_configure): add --config-cache to default
663         configure args
664
665         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
666         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
667
668         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
669         don't try to save address, fixes crash in make check
670         
671 2006-09-30  Thiago Macieira  <thiago@kde.org>
672
673         * configure.in: add DBUS_BINDIR as a #define to C source code.
674
675         * tools/dbus-launch.c
676         * tools/dbus-launch.h
677         * tools/dbus-launch-x11.c:
678         * tools/dbus-launch.1: Add the --autolaunch option to
679         dbus-launch, which makes it scan for an existing session
680         started with --autolaunch. With that option, it also creates
681         an X11 window and saves the bus address and PID to it.
682
683         * dbus/dbus-sysdeps.h:
684         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
685         a function that runs "dbus-launch --autolaunch" to retrieve
686         the running D-Bus session address (or start one if none was running)
687
688         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
689         address protocol, which tries to get the running session from
690         dbus-launch.
691
692         * dbus/dbus-bus.c:
693         * dbus/dbus-internals.h: Make "autolaunch:" be the default
694         D-Bus session bus address.
695
696         * dbus/dbus-connection.c: Fix horrible typo in error message.
697
698 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
699
700         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
701
702 2006-09-17  Havoc Pennington  <hp@redhat.com>
703
704         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
705         fix so that if unix_user_function is set on windows, we still
706         do the default check that the auth identity matches the bus identity
707
708 2006-09-16  Havoc Pennington  <hp@redhat.com>
709
710         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
711         to _dbus_transport_open_platform_specific,
712         _dbus_transport_open_socket,
713         and _dbus_transport_open_debug_pipe
714
715         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
716
717 2006-09-16  Havoc Pennington  <hp@redhat.com>
718
719         Attempt auditing public API to remove all cases where a Unix
720         function returns weird emulated goo to Windows. This probably 
721         breaks the bus daemon on Windows, to fix it again we may 
722         need to stop processing unix-specific config options on Windows,
723         and may need to add Windows-specific public API or config options.
724         
725         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
726         to reflect added interfaces; should not break soname.
727         
728         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
729         not invoke unix user function on Windows. Kind of a hacky fix, but 
730         we don't want a "unix uid" leaking out on Windows.
731
732         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
733         to get the socket fd on Windows or UNIX
734         (dbus_connection_get_unix_fd): make this always fail on Windows
735
736 2006-09-16  Havoc Pennington  <hp@redhat.com>
737
738         * dbus/dbus-server.c (dbus_server_listen): change how this works
739         to be able to delegate to a set of handlers that can succeed,
740         fail, or choose not to handle. Allows us to have 
741         dbus_server_listen_platform_specific.
742
743         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
744         factor out the tcp socket stuff to be used on windows, leaving
745         unix domain socket only in dbus-socket-unix.c
746
747         * dbus/dbus-transport-socket.c
748         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
749         stuff to be used on windows, leaving unix domain socket only 
750         in dbus-transport-unix.c
751
752         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
753         temporary hack to be sure this fails on windows
754         (dbus_connection_get_unix_process_id): ditto
755
756 2006-09-16  Havoc Pennington  <hp@redhat.com>
757
758         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
759         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
760         _dbus_open_socket so the domain/type/protocol from system headers
761         are not required. This is kind of pointless though unless we move
762         part of _dbus_connect_tcp_socket into sysdeps.c instead of
763         sysdeps-unix.c, which would mean adding a wrapper around
764         bind/listen/etc.
765         Also, add DBusError to the socket-opening functions so they 
766         don't require use of errno.
767
768 2006-09-16  Havoc Pennington  <hp@redhat.com>
769
770         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
771         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
772
773         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
774         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
775         functions specifically for sockets only, and move generic 
776         read/write/open/close into unix-specific code.
777
778 2006-09-14  Havoc Pennington  <hp@redhat.com>
779
780         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
781         complaint about accessing revents when poll returns 0, from Julian Seward.
782
783 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
784
785         * Released 1.0 RC 1 (0.93) 
786
787 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
788
789         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
790         use _dbus_close instead of close
791
792 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
793
794         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
795         credentials.  Fixes "external" authentication under e.g. NetBSD
796         which does not support any other socket credentials mechanism.
797         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
798
799 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
800
801         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
802         dbus_threads_init and be used by the dbus mutex functions to
803         avoid deadlocks.
804
805         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
806
807 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
808
809         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
810         use threadsafe readdir_r instead of readdir
811
812 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
813
814         * dbus-threads.c (dbus_threads_init_default): New method for
815         initializing the internal thread implementation (Patch from
816         Alexander Larsson <alexl at redhat dot com>)
817
818 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
819
820         * remove a bunch of todo items from the 1.0 list
821
822 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
823
824         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
825         key not found
826
827 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
828
829         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
830         complex debugging code
831
832         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
833         between the test suite ifdefs
834         (_dbus_verbose_bytes): return if verbosity is not enabled 
835
836 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
837
838         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
839         remove DBusMark
840
841 2006-09-10  Havoc Pennington  <hp@redhat.com>
842
843        patch mostly by Peter Kümmel, bug #8211
844         
845         * dbus/dbus-sysdeps-unix.c: new file, which splits out
846         unix-specific stuff in dbus-sysdeps.c
847
848         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
849         and move unix-specific stuff to dbus-sysdeps-unix.c
850
851         * configure.in: check HAVE_ERRNO_H
852         
853 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
854
855         * bus/test-main.c (main): Initialize threading during tests
856
857         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
858         Unlock connection on error
859         (generate_local_error_message): static method for generating
860         an error message when we don't have a message to reply to
861         (_dbus_connection_block_pending_call): Send a disconnect error
862         instead of just a timeout (NULL) when the bus gets disconnected
863         while blocking for a reply.
864         
865 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
866
867         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
868         filters (Patch from Kimmo Hämäläinen 
869         <kimmo dot hamalainen at nokia dot com>)
870
871 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
872
873         * dbus/dbus-connection-internal.h: Add prototype for 
874         _dbus_connection_test_get_locks to remove warning
875
876 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
877
878         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
879         close child_err_report_pipe[WRITE_END] on exec (Patch from 
880         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
881
882 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
883
884         * Clean up close calls to use _dbus_close (Patch from 
885         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
886
887 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
888
889         * doc/TODO:
890         - Remove pending call locking todo item
891         - dbus_connection_open now holds hard ref.  Remove todo item
892         - do proper locking on _dbus_bus_check_connection_and_unref
893           and handle DBUS_BUS_STARTER. Remove todo item
894         - Warn on closing of a shared connection.  Remove todo item
895
896         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
897         dbus/dbus-connection.c: Use the dbus_connection_close_internal
898         so we don't get the warning when closing shared connections
899
900         * test/test-service.c, test/test-shell-service.c: Applications
901         don't close shared connections themselves so we unref instead of
902         close
903
904         * test/test-utils.c (test_connection_shutdown): Close the connection
905
906         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
907         _dbus_bus_check_connection_and_unref_unlocked since we only call this
908         method on a locked connection.  
909         Make sure we call _dbus_connection_unref_unlocked instead of 
910         dbus_connection_unref also.
911         Handle DBUS_BUS_STARTER correctly
912
913         * dbus/dbus-connection.c (connection_record_shared_unlocked):
914         Mark as shared and hard ref the connection
915         (connection_forget_shared_unlocked): Remove the hard ref from the 
916         connection
917         (_dbus_connection_close_internal_and_unlock):  New internal function
918         which takes a locked connection and unlocks it after closing it
919         (_dbus_connection_close_internal): New internal function which acts
920         like the origonal dbus_connection_close method by grabbing a connection
921         lock and calling _dbus_connection_close_internal_and_unlock
922         (dbus_connection_close): Public close method, warns when the app
923         trys to close a shared connection
924
925 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
926
927         * bus/driver.c:
928         (bus_driver_generate_introspect_string): New method for populating
929         a DBusString with the introspect data
930         (bus_driver_handle_introspect): Move introspect generation code to 
931         bus_driver_generate_introspect_string
932
933         * bus/main.c:
934         (introspect): New function which prints out the intropect data and
935         exits
936         (main): Add a --introspect switch
937
938 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
939
940         * doc/TODO: Removed dtd publishing item.  
941         It seems the dtd has already been added at
942         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
943
944 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
945
946         * doc/TODO, various source files: Audited todo's and FIXME's and
947         prepended the ones we should be looking at with 1.0.  Those
948         prepended with 1.0? need clerification or might not be needed
949         for 1.0
950
951 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
952
953         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
954         NULL in the public API (Patch from Kimmo Hämäläinen 
955         <kimmo dot hamalainen at nokia dot com>)
956
957 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
958
959         * configure.in: Fix for OS-X compile time endian issues (patch from
960         Benjamin Reed <ranger at befunk dot com>)
961
962 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
963
964         * configure.in: Check for no-common compiler flag (OS-X fix from
965         Benjamin Reed <ranger at befunk dot com>)
966
967 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
968
969         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
970         <fcrozat at mandriva dot com>)
971
972 2006-08-29  Havoc Pennington  <hp@redhat.com>
973
974         * test/test-service.c (path_message_func): fix lack of return value
975
976         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
977         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
978         any more sense than on anything else in this file.
979         (_dbus_get_tmpdir): add const to return value, and keep the
980         results of the various getenv around in a static variable.
981
982 2006-08-29  Havoc Pennington  <hp@redhat.com>
983
984         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
985         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
986
987 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
988
989         * test/Makefile.am: change find to use syntax that works with non
990         gnu versions of find
991
992 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
993
994         * dbus/dbus-transport.c: fix invalid deref when checking if
995         a vtable method exists (Patch from Christian Ehrlicher 
996         <ch dot ehrlicher at gmx dot de>)
997
998 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
999
1000         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1001         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1002         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1003         <bernard at brenda-arkle dot demon dot co dot uk>)
1004
1005 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1006
1007         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1008         default case
1009
1010 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1011
1012         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1013         it works on any system providing this interface, not only FreeBSD.
1014         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1015
1016 2006-08-20  Havoc Pennington  <hp@redhat.com>
1017
1018         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1019         the docs
1020
1021 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1022
1023         * Released 0.92 
1024
1025 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1026
1027         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1028         to reflect the init late change
1029
1030         * bus/bus.c (bus_context_new): Check user before we fork so we can
1031         print out an error message a user will be able to see
1032
1033 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1034
1035         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1036
1037         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1038         Add two more global locks for use on windows platforms.  These are
1039         unused on non-windows platforms but are not ifdefed out to avoid
1040         potential bugs (i.e. the few bytes lost does not warrent the extra
1041         maintanence and complexity that having seperate sets of locks would
1042         cause)
1043
1044 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * bus/services.c (bus_registry_acquire_service): Return an error
1047         when an application tries to register the org.freedesktop.DBus Bus Name
1048
1049         * bus/services.c (bus_registry_release_service): Return an error
1050         when an application tries to release the org.freedesktop.DBus Bus Name
1051
1052 2006-08-17  Alp Toker  <alp@atoker.com>
1053
1054         * doc/dbus-specification.xml: Fix some minor typos.
1055
1056 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1057
1058         * configure.in: use $with_init_scripts instead of $operating_system
1059         to determine where to store the pid since the init scripts manipulate 
1060         the pid file (patch from Marcelo Ricardo Leitner 
1061         <marcelo dot leitner at terra dot com dot br>.  
1062
1063 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1064
1065         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1066         static DBusList *uninitialized_condvar_list to support new late 
1067         initialization threading model.  In this model threads can be initialized
1068         even after the D-Bus API has been used but still needs to be initialized 
1069         before the second thread has been started.  Mutexes and condvar addresses
1070         are stored in the two static lists and are replaced with actuall locks
1071         when threads are initalized.
1072         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1073         the location into the static list
1074         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1075         from the static list and freeing the mutex
1076         (_dbus_condvar_new_at_location): New method for creating a conditional 
1077         variable and placing the location into the static list
1078         (_dbus_condvar_free_at_location): New method for removing a conditional
1079         variable location from the static list and freeing the conditional variable 
1080         (init_uninitialized_locks): Atomic method which goes through the static 
1081         lists of mutex and condvar location and updates them with actuall locks
1082         (init_global_locks): changed to init_locks
1083         
1084         * dbus/dbus-connection.c:
1085         (_dbus_connection_test_get_locks): New method for tests to check connections
1086         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1087         condvar API
1088         (dbus_connection_allocate_data_slot): Pass in the global lock address
1089         to _dbus_data_slot_allocator_alloc
1090
1091         * dbus/dbus-dataslot.c:
1092         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1093         instead of the mutex itself
1094
1095         * dbus/dbus-message.c:
1096         (dbus_message_allocate_data_slot): Pass in the global lock address
1097         to _dbus_data_slot_allocator_alloc
1098
1099         * dbus/dbus-pending-call.c:
1100         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1101         to _dbus_data_slot_allocator_alloc
1102
1103         * dbus/dbus-server.c:
1104         (_dbus_server_init_base): Use the new at_location mutex API
1105         (dbus_server_allocate_data_slot): Pass in the global lock address
1106         to _dbus_data_slot_allocator_alloc
1107
1108         * test/name-test/test-threads-init.c: New test case for late thread
1109         initialization
1110
1111 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1112
1113         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1114         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1115         causes compile problems when asserts are turned off
1116         Keeping _dbus_warn for printing out the message so even if
1117         asserts are turned off the user gets the messages that something is 
1118         wrong 
1119
1120 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1121
1122         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1123
1124         * bus/services.c (bus_service_list_queued_owners):
1125         Add a pointer cast to fix compiler warning
1126
1127         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1128         return a NULL instead of FALSE since the return type
1129         is not expecting a boolean
1130
1131         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1132         Remove unused variable
1133
1134         * dbus/dbus-marshal-recursive-util.c (node_new):
1135         return a NULL instead of FALSE since the return type
1136         is not expecting a boolean
1137
1138         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1139         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1140         because we are expecting a pointer not a boolean
1141
1142         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1143         add void as the parameter so some compilers
1144         don't complain
1145
1146         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1147           _dbus_transport_new_for_tcp_socket):
1148         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1149         because we are expecting a pointer not a boolean
1150
1151         * test/shell-test.c (test_command_line):
1152         cast the second argument to _dbus_list_append to avoid compiler
1153         warnings
1154
1155         * test/test-names.c (main): remove unused variable
1156
1157         * test/test-service.c (check_hello_from_self_reply):
1158         Initialize echo_message and echo_reply to NULL
1159         
1160         * test/test-shell-service.c (handle_echo):
1161         Remove unused variable and cast the third parameter passed to
1162         dbus_connection_get_object_path_data to avoid compiler warrnings
1163
1164         * test/name-test/test-names.c (clear_message_queue):
1165         Remove unused function
1166
1167         * test/name-test/test-pending-call-dispatch.c:
1168         Fix format string in printf
1169
1170
1171 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1172
1173         * dbus/dbus-bus.c:
1174         * test/name-test/test-names.c:
1175         Remove test method dbus_bus_connection_get_unique_name because 
1176         we already have public method dbus_bus_get_unique_name that 
1177         does the exact same thing
1178
1179 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1180
1181         * dbus/dbus-signature.c:
1182         fix typos in Julio's previous patch which cause make check to fail
1183
1184 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1185
1186         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1187         In any case it was wrong since this is a test checking to see if
1188         address parsing is correct.  There was no need to get the true
1189         tmp directory.  
1190
1191 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * dbus/dbus-macros.h: Revert the addition of stddef.h
1194         as we should not be adding it to library headers 
1195
1196 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1197
1198         * dbus/dbus-signature.c:
1199         Fix the unit tests so that they work if assertions are not enabled.
1200         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1201
1202 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1203
1204         * tools/run-with-tmp-session-bus.sh:
1205         * test/name-test/run-test.sh:
1206         Remove bashisms (patch from Julio M. Merino Vidal
1207         <jmmv at NetBSD dot org>)
1208
1209 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * configure.in: add a version (>= 2.6.0) check for libxml2
1212
1213 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1214
1215         * configure.in: make sure the compiler supports -Wfloat-equal
1216         
1217         * bus/dir-watch-dnotify.c: move functional code after 
1218         variable declerations (C99 fix)  (patches from Jens Granseuer
1219         <jensgr at gmx dot net>
1220
1221 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1222
1223         * dbus/dbus-macros.h:
1224         add #include <stddef.h> so that Sun compilers don't complain about
1225         the defining NULL
1226
1227 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * dbus/dbus-sysdeps.c:
1230         * dbus/dbus-address.c:
1231         * bus/activation.c:
1232         * test/shell-test.c:
1233         don't hardcode tmp directory (patch from Dave Meikle 
1234         <dmk at davemeikle dot co dot uk>)
1235
1236 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1237
1238         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1239         Change an assert to a detailed warning and abort.  
1240         When allocator->lock != mutex it indicates that the user has failed
1241         to initalize threads before using the D-Bus library.  This warning
1242         helps the user identify the issue and fix their app.
1243
1244 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1245
1246         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1247         with cleanups of bugs found from Coverity reports:
1248
1249         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1250         close the file on error to avoid a leak
1251
1252         * bus/expirelist.c (bus_expire_list_test):
1253         Check for NULL on dbus_new0
1254
1255         * bus/activation.c (update_directory):
1256         remove dead code
1257
1258         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1259         Fix some leaks
1260
1261         * bus/bus.c (process_config_every_time):
1262         Fixed a leak
1263
1264         * bus/desktop-file.c (parse_key_value):
1265         Fixed leak
1266
1267         * bus/selinux.c (bus_selinux_id_table_insert):
1268         Fixed leak
1269
1270 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1273         remove dead code
1274
1275 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1276
1277         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1278         #!/bin/bash
1279
1280 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1281
1282         * Doxyfile.in: fix the INPUT line so we can generate docs 
1283         when sourcedir != builddir (patch from Cygwin Ports maintainer
1284         <yselkowitz at users dot sourceforge dot net>
1285
1286 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1287
1288         * dbus/dbus-sysdeps.h:
1289         * dbus/dbus-sysdeps.c: 
1290         * dbus/dbus-string.c: 
1291         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1292         GLib's function which does the same thing
1293
1294         * configure.in:
1295         * bus/Makefile.am:
1296         * bus/dir-watch-default.c:
1297         * bus/dir-watch-dnotify.c:
1298         * bus/dir-watch-kqueue.c:
1299         Add kqueue directory watching for freebsd and split the directory
1300         watching code into seperate files per method/arch
1301         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1302
1303 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1304
1305         * configure.in:
1306         * tools/Makefile.am:
1307         * tools/dbus-launch.c:
1308         * bus/Makefile.am:
1309         allow --with-dbus-daemondir switch to be used to make the
1310         daemon install to a seperate bindir like /usr/libexec
1311         (patch from Brian Cameron <brian dot cameron at sun dot com)
1312
1313 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1314
1315         * bus/Makefile.am (install-data-hook): removed the slash after 
1316         $(DESTDIR) so we don't get the double slash which does not work
1317         in windows (patch from Andras Porjesz 
1318         <andras dot porjesz at siemens dot com>)
1319
1320 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * dbus/dbus-sysdeps.h:
1323         * dbus/dbus-sysdeps.c: 
1324           add _dbus_printf_length (patch from Peter Kümmel 
1325           <syntheticpp at gmx dot net>)
1326
1327 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * dbus/dbus-internals.c: unistd.h is not used 
1330         (_dbus_verbose_real): only enable verbose printing 
1331         if DBUS_VERBOSE environment var is set to '1'
1332         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1333
1334 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1335
1336         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1337         so we still compile on older gcc (patch from Frederic Peters 
1338         <fpeters at 0d dot be>
1339
1340 2006-08-04  Havoc Pennington  <hp@redhat.com>
1341
1342         * configure.in: add -Wdeclaration-after-statement
1343
1344         * dbus/dbus-connection.c: change all the pending call stuff to
1345         reflect the fact that pending call operations use the connection
1346         lock
1347
1348         * dbus/dbus-pending-call.c: add locking here
1349
1350         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1351         field const consistent with how message field is done
1352
1353 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1354
1355         * s/D-BUS/D-Bus/g
1356
1357 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1358
1359         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1360         <in7y118 at public.uni-hamburg dot de> - fix invalid
1361         read/write reported by valgrind
1362
1363 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * Released 0.91
1366
1367 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1368
1369         * dbus/dbus-connection.c:
1370         (_dbus_connection_attach_pending_call_unlocked):
1371         (connection_timeout_and_complete_all_pending_calls_unlocked):
1372         Make sure we set timeout_added on pending calls to FALSE when
1373         we remove the timeout from the connection
1374
1375 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * Removed some extra bindings stuff lingering around (thanks timo)
1378         * dbus-pendingcall.c (_dbus_pending_call_new): 
1379         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1380         when we tried to take a lock on an already locked connection
1381
1382 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1383
1384         * Released 0.90
1385
1386 2006-07-17  Havoc Pennington  <hp@redhat.com>
1387
1388         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1389         ints, reported by Owen Taylor
1390
1391 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * doc/TODO:
1394         * dbus/dbus-bus.c:
1395         * dbus-errors.c:
1396         * dbus/dbus-marshal-validate.c:
1397           Removed TODO items which were fixed or are no longer relevent
1398
1399 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1402         Remove stray files from the stripped bindings
1403
1404 2006-07-16  Havoc Pennington  <hp@redhat.com>
1405
1406         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1407         Improve the error message on reply timeout
1408
1409 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * Remove all bindings
1412
1413 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1414
1415         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1416         and set pending_reply out arg to NULL is connection is disconnected
1417         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1418         static method for cleaning up pending calls on disconnect
1419         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1420         calls queued timeouts on disconnect 
1421
1422          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1423         Remove 
1424
1425 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1426
1427         * bus/activation.[ch] (bus_activation_list_services): new function to 
1428         get the list of services that can be activated
1429
1430         * bus/dispatch.c: test coverage for the new bus method
1431         ListActivatableNames
1432
1433         * bus/driver.c: new bus method ListActivatableNames to get the list of
1434         services that can be activated
1435
1436         * doc/dbus-specification.xml: ListActivatableNames method documentation
1437
1438 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1439         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1440         source files
1441
1442 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1443         * dbus/dbus-message-factory.c:
1444         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1445
1446 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1447         * dbus/dbus-connection-internal.h:
1448         * dbus/dbus-connection.c:
1449         * file dbus/dbus-pending-call.c:
1450         * dbus/dbus-pending-call.h:
1451         Make DBusPendingCall an opaque type even to D-Bus internals
1452
1453 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1454
1455         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1456         connection_close
1457
1458         * dbus/dbus-connection.c: include dbus-bus.h
1459         (_dbus_connection_read_write_dispatch): make static
1460
1461 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1464         function
1465         (dbus_connection_dispatch): On disconnect unref any shared connections
1466
1467         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1468         for cleaning up shared connections on disconnect
1469         (internal_bus_get): get a hard refrence to shared connections when
1470         they are created
1471         
1472         * doc/TODO: Remove items which are no longer relevent or have been fixed
1473         Split 1.0 todo items with a 0.90 freeze todo list
1474  
1475 2006-06-14  Ross Burton  <ross@openedhand.com>
1476
1477         * glib/dbus-gobject.c:
1478         Free a leaking GArray (surely not!) in dbus_g_method_return.
1479
1480 2006-06-14  Ross Burton  <ross@openedhand.com>
1481
1482         * tools/Makefile.am:
1483         * tools/dbus-monitor.c:
1484         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1485         Habacker).
1486         
1487 2006-06-14  Ross Burton  <ross@openedhand.com>
1488
1489         * tools/dbus-print-message.c:
1490         Also print the object path when outputting signals or method calls.
1491
1492 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1493
1494         * qt/src/Makefile.am: install the qdbus.h header.
1495         This allows people to actually use the installed code.
1496
1497 2006-06-12  Ross Burton  <ross@openedhand.com>
1498
1499         * glib/dbus-gproxy.c:
1500         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1501
1502 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1503
1504         * Released 0.62
1505
1506 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1507
1508         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1509         break pedantic builds. Closes bug 6043 (patch approved by
1510         Havoc back in February).
1511
1512 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1513
1514         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1515         that took a QDBusMessage parameter.
1516         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1517         * qt/tools/dbus.cpp: Don't use automatic call because we might
1518         be calling an async method: request a reply.
1519
1520 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1521
1522         * test/qt/*: Update the testcases, including testing the new
1523         functionality of sending null QByteArray and QString over the
1524         bus. Add new headertest test and restore the old
1525         qdbusxmlparser test.
1526
1527 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1528
1529         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1530         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1531
1532         * qt/examples/Makefile.am:
1533         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1534         form.
1535
1536         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1537         QByteArray() (nulls) over the bus.
1538         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1539         the one that has the signature suffix stripped.
1540         * qt/src/qdbusreply.h: Make some methods const.
1541
1542 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1543
1544         Patch from Timo Hoenig <thoenig@suse.de>.
1545
1546         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1547         required during build to EXTRA_DIST.
1548         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1549         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1550         * configure.in: Fix "make dist", take care that the Makefile for
1551         qt/dbus is being generated.
1552
1553 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1554
1555         * bus/bus.c: Fix eavesdropping on method calls
1556
1557 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1558
1559         * configure.in:
1560         * dbus/dbus-userdb-util.c:
1561         Add Solaris console owner patch from Artem Kachitchkine
1562
1563 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1564
1565         * qt/Makfile.am:
1566         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1567         reorganisation. Thanks to Timo Hoenig for pointing this out.
1568
1569 2006-06-06  Robert McQueen  <robot101@debian.org>
1570
1571         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1572           call to dbus_g_type_get_struct.
1573
1574 2006-06-06  Robert McQueen  <robot101@debian.org>
1575
1576         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1577           pointers were put into a GPtrArray-based specialised collection, and
1578           then freed along with the array. GValues which you add into
1579           collections or maps which have the NOCOPY flag set are assumed to not
1580           belong to the caller, so rather than the existing pointer-stealing
1581           semantics, they are copied instead. Given that the main consumers of
1582           this abstraction are the bindings themselves, I don't think this is
1583           too bad, but others should watch their choice of take vs set_static.
1584
1585 2006-06-06  Robert McQueen  <robot101@debian.org>
1586
1587         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1588           of g_slist_prepend not being used. Fixed copying of slist-based
1589           specialised collections, then wrote a test case and found that it was
1590           all broken. Went on to fix iterating and appending too. Good thing
1591           nobody uses this code yet.
1592
1593 2006-06-06  Robert McQueen  <robot101@debian.org>
1594
1595         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1596           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1597           are discarded without unsetting, so it makes no difference whether
1598           we take or set_static). Remove cases for G_TYPE_POINTER because
1599           there really is nothing useful we can do with them in our
1600           specialised types - we *need* boxed copy/free functions at the very
1601           least.
1602
1603 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1604
1605         * qt/dbus: Add directory. I had forgotten to add this
1606         yesterday after the move...
1607
1608         * qt/examples/Makefile.am:
1609         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1610
1611         * qt/tools/Makefile.am:
1612         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1613         Added feature to get and set properties.
1614         Added validation of service, object path and interface names.
1615
1616         * qt/tools/dbusidl2cpp.cpp: Two new features:
1617         1) Allow specifying both the header and the source file names,
1618         by separating them with a colon.
1619         2) Don't write an interface output if the -p switch wasn't
1620         given, but the -a was.
1621
1622         * qt/src/*: Fix usage of Iterators and ConstIterators.
1623         Fix shadowing of variables by other variables (-Wshadow).
1624         Fix keyword-cleanliness in headers.
1625         Fix ASCII-cast (QLatin1String, QLatin1Char).
1626         Fix validation of member names.
1627         Add extra checking of introspection data during XML parsing.
1628         Various bug fixes.
1629
1630 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1631
1632         * dbus/Makefile.am:
1633         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1634         qt/dbus/qdbus.h now.
1635
1636 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1637
1638         * configure.in: Make --disable-qt actually do
1639           something. Patch inspired by Zack Rusin.
1640
1641 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1642
1643         * qt/: Update to Subversion r548032.
1644         This includes a big reorganisation of the files inside the
1645         subdir.
1646
1647 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1648
1649         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1650         clear:  
1651         "Failed to connect to socket <host>:<port> <error>" instead of
1652         "Failed to connect to socket <host>: <error>:<port>"
1653
1654         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1655         for a tcp transport. 
1656
1657 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1658
1659         * qt/*: Update the QtDBus bindings up to revision 546310 in
1660         Subversion.
1661         This adds the dbuscpp2xml tool, that parses a C++ header and
1662         outputs a D-BUS Introspection XML.
1663
1664 2006-05-21  Havoc Pennington  <hp@redhat.com>
1665
1666         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1667         is not NULL when it shouldn't be. Also a couple of possible fixes
1668         for #4637 though I don't understand why the bug happens, to be
1669         honest... also the object constructor has an assert name != NULL
1670         and the name is only currently NULL for peer-to-peer proxies that 
1671         I don't think anyone uses? So it should be asserting.
1672         Anyway, for now at least see if we get an earlier assertion failure.
1673
1674         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1675         apparently broken code to be sure the tests fail and someone 
1676         will fix them...
1677
1678 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1679
1680         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1681         and arrays when they had a single element: has_next returns
1682         false, even before you read the element. So, instead, check
1683         the array length.
1684
1685 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1686
1687         * qt/qdbusmessage.cpp:
1688         * qt/qdbustypehelper_p.h:
1689         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1690         the list is a const-reference
1691
1692 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1693
1694         * Adding old doc patch that never got applied
1695         
1696         * dbus/bus.c (dbus_bus_add_match): Add documentation
1697
1698         * doc/dbus-specification.xml: Add documentation for the match rules
1699           and the AddMatch and RemoveMatch methods
1700
1701 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1702
1703         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1704         call (r535506)
1705
1706         * qt/dbusidl2cpp.cpp:
1707         * qt/qdbusabstractadaptor.cpp:
1708         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1709         sibling of the QDBusAbstractAdaptor objects instead of the
1710         parent. (r535848)
1711
1712         * qt/dbusidl2cpp.cpp:
1713         * qt/qdbusabstractinterface.cpp:
1714         * qt/qdbusabstractinterface.h:
1715         * qt/qdbusabstractinterface_p.h:
1716         * qt/qdbusinterface.cpp: Make properties in interfaces
1717         actually work. The code that was generated would not compile,
1718         due to moc calls to functions that did not exist. They now
1719         shall. (r536571)
1720
1721 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1722
1723         * Makefile.am:
1724         * configure.in:
1725         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1726         Thanks to Brad Hards for providing the patch
1727
1728 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1729
1730         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1731         call. (r535506)
1732
1733 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1734
1735         * qt/examples/dbus.cpp: Enhance error messages and use
1736         QDBusInterfacePtr.
1737
1738 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1739
1740         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1741         and disable the copy operators. (r533772, r534746)
1742
1743         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1744
1745         * qt/qdbusabstractinterface.cpp:
1746         * qt/qdbusabstractinterface.h: Change the default call mode to
1747         not use the event loop. Add convenience call() methods that
1748         take a CallMode parameter. (r534042)
1749
1750         * qt/qdbusconnection.h: Change the default call mode to not
1751         use the event loop. (r534042)
1752
1753         * qt/qdbusinterface.cpp:
1754         * qt/qdbusinterface.h: Add a method to tell us if the
1755         interface is valid (since we don't return a null pointer
1756         anymore) (r534099)
1757
1758         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1759         (r534101)
1760
1761         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1762         function in two so taht we get the chance to introspect
1763         without having a QDBusMessage (r534102)
1764
1765         * qt/qdbusbus.h:
1766         * qt/qdbusconnection.cpp:
1767         * qt/qdbusconnection_p.h:
1768         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1769         avoid a round-trip to the server when attempting to introspect
1770         one of our own objects. Also make sure the filter functions
1771         match the empty interface as well. (r534108)
1772         Don't keep the connection names. Instead, trust the unique
1773         connection name (r534111)
1774         Remove event loop usage (r534112)
1775
1776 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1777
1778         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1779         Brad Hards.
1780
1781 2006-04-28  Robert McQueen  <robot101@debian.org>
1782
1783         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1784         any order, making it easier for people who inherit from this
1785         object.
1786
1787 2006-04-28  Robert McQueen  <robot101@debian.org>
1788
1789         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1790         of memory from within pointer arrays and lists. Fixes bug #6300.
1791
1792 2006-04-28  Robert McQueen  <robot101@debian.org>
1793
1794         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1795         generating struct signatures. Fixes bug #6083.
1796
1797 2006-04-28  Robert McQueen  <robot101@debian.org>
1798
1799         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1800         to qdbusconnection_p.moc.
1801
1802 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1803
1804         * README, INSTALL: Doc fixes
1805         Patch from Brad Hards <bradh at frogmouth.net>
1806
1807 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1808
1809         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1810         the dynamic meta object. No need to guess which interface to
1811         call.
1812
1813 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1814
1815         * qt/qdbusconnection_p.h:
1816         * qt/qdbusmetaobject.cpp:
1817         * qt/qdbusmetaobject_p.h:
1818         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1819         for the dynamic meta object. No need to guess which
1820         interface to call.
1821         * qt/qdbusabstractinterface_p.h:
1822         * qt/qdbusconnection.cpp:
1823         * qt/qdbusintegrator.cpp:
1824         * qt/qdbusinterface.cpp:
1825         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1826         Add a QDBusRef that looks and behaves like DCOPRef.
1827
1828 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1829
1830         * dbus/dbus-connection.c: Interfaces are optional in method
1831         calls, so don't give up if the interface parameter is NULL.
1832         Patch reviewed by Havoc Pennington.
1833
1834 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1835
1836         * qt/qdbusreply.h: Add default constructor and operator=
1837           (r532625)
1838         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1839           in public headers (r532952)
1840         * qt/qdbusabstractinterface.cpp:
1841         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1842           make it the default (r532951)
1843
1844 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1845
1846         * dbus/dbus-connection.c: Fix asserts
1847         Patch from Tim Moloney <t.moloney at verizon.net>
1848
1849 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1850
1851         * mono/Connection.cs, mono/Message.cs: Check Target type
1852         Patch from Aaron Bockover (abockover at novell.com)
1853
1854 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1855
1856         * INSTALL: fine-tune the requirements for the Qt4 binding.
1857
1858 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1859
1860         * tools/dbus-print-message.c: Added support for printing of all 
1861           remaining data types. Fixed logic for indentation of compound
1862           data types.
1863         
1864 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1865
1866         * INSTALL: fill out content of file providing DBus specific
1867           build installations, followed by generic Auto* INSTALL file
1868           content
1869         
1870 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1871
1872         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1873           Patch by Stefan Eilers. (r529537)
1874
1875 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1876
1877         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1878           contents (r528208)
1879
1880 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1881
1882         * qt/Makefile.am: fix the dependency for
1883           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1884           not in qdbusconnection.cpp.
1885           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1886           spotting this.
1887
1888 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1889
1890         * qt/examples/listnames.cpp:
1891         * qt/examples/Makefile.am: Three ways to list the names on the
1892           bus.
1893
1894 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1895
1896         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1897           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1898
1899 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1900
1901         Merge from Subversion:
1902         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1903           something that exists (r526315)
1904         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1905           slots/signals (r526316)
1906         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1907           also return an unknown-method error if the parameters don't
1908           match for org.freedesktop.DBus.Properties. (r526842)
1909         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1910         * qt/qdbusintegrator.cpp: Restore the proper order of
1911           delivery: don't make method returns be delivered on priority
1912           (r528150)
1913
1914 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1915
1916         * configure.in qt/Makefile.am: add qt/examples
1917         * qt/examples: Add QtDBus example programs:
1918           - hello: Hello, World
1919           - ping: Simple method-calling program
1920           - pong: Simple object-exporting program (not using adaptors)
1921           - complexping: Interactive method-calling program 
1922                 (also gets and sets properties).
1923           - complexpong: Sample program exporting methods, signals and
1924                 properties, using adaptors.
1925           - dbus: Simple implementation of a generic method-calling
1926                 program, similar to 'dbus-send', but with semantics
1927                 similar to 'dcop'.
1928           - chat: Simplistic chat program, implemented using signals
1929                 and the system bus. Looks like IRC.
1930
1931 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1932
1933         * configure.in: Detect QtGui (necessary for one of the
1934           example programs). Note: this increases the minimum required
1935           version of Qt to 4.1.3.
1936
1937 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1938
1939         * test/qt/*: Sync with KDE Subversion revision 523647.
1940         Update the testcases to the new API. Remove testcases for
1941         classes that are no longer public or have been removed.
1942
1943 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1944
1945         * qt/*: 
1946         * dbus/qdbus.h: Sync with KDE Subversion revision
1947         523647. Hopefully, this will be the last of the
1948         source-incompatible changes. Documentation has been improved;
1949         support for QList<basic-types> has been added; QDBusObject is
1950         gone; QDBus(Abstract)Interface is now a QObject with
1951         auto-generated meta-object; QDBusIntrospection is marked
1952         private, since QMetaObject can be used now; lots of bugfixes.
1953
1954 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1955
1956         Patch from Milosz Derezynski <internalerror at gmail.com>
1957         
1958         * configure.in:
1959         Output the service directory in the configure summary
1960
1961         * dbus-1.pc.in:
1962         Add session_bus_services_dir
1963
1964 2006-03-10  Ross Burton  <ross@openedhand.com>
1965
1966         * tools/dbus-print-message.c:
1967         Add support for object paths and signatures.
1968
1969 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1970
1971         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1972         config reload.
1973         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1974         information caches
1975         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1976         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1977         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1978         * dbus/dbus-userdb.h: Add function to flush all user/group information
1979         caches.
1980
1981 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1982
1983         * qt/dbusidl2cpp.cpp:
1984         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1985         for dcopidl2cpp, found in the KDE installations (or the more
1986         modern kalyptus): generate Qt4 C++ code for the input XML
1987         introspection. Currently no IDL parsing.
1988
1989 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1990
1991         * test/qt/*: Update the self-tests.
1992
1993 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1994
1995         * qt/*: 
1996         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1997         represents the first feature-complete version of the Qt4
1998         bindings since I took ove maintainership.
1999
2000 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2001
2002         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2003         dir. This is C++, so we can't use the DBus ones.
2004
2005 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2006
2007         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2008         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2009
2010 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2011
2012         * dbus/dbus-connection.c: 
2013         (_dbus_connection_block_pending_call):
2014         Check to see if our data has already been read off the connection
2015         by another blocking pending call before we block in poll.
2016         (check_for_reply_and_update_dispatch_unlocked):
2017         Code taken from _dbus_connection_block_pending_call - checks for
2018         an already read reply and updates the dispatch if there is one.
2019
2020         * test/name-test/test-pending-call-dispatch.c:
2021         New test for making sure we don't get stuck polling a 
2022         dbus connection which has no data on the socket when
2023         blocking out of order on two or more pending calls.
2024
2025 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2026
2027         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2028         make/automake don't detect that we're talking about the same
2029         .lo file if I specify the full path to the source files.
2030
2031 2006-02-26  Havoc Pennington  <hp@redhat.com>
2032
2033         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2034
2035         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2036         session bus variable is unset, suggest "man dbus-launch" and "man
2037         dbus-daemon" to figure out how to fix the problem
2038
2039 2006-02-25  Havoc Pennington  <hp@redhat.com>
2040
2041         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2042         should make this thing use the new glib options parser
2043
2044 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2045
2046         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2047         .lo files taking moc sources.
2048
2049 2006-02-25  Havoc Pennington  <hp@redhat.com>
2050
2051         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2052         and install it as a public header
2053
2054 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2055
2056         * Released 0.61
2057
2058 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2059         
2060         * proxies.py: Fix the callchain
2061
2062 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2063         
2064         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2065
2066         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2067         dbus/dbus-sysdeps.c
2068
2069         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2070         call _dbus_group_info_free_allocated which causes infinite loop,
2071         correctly call _dbus_group_info_free
2072
2073 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2074
2075         * qt/qdbusinterface_p.h:
2076         * qt/qdbusinterface.cpp: Use the standard
2077         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2078         calls instead of creating one for us.
2079
2080         * qt/qdbusconnection_p.h:
2081         * qt/qdbusintegrator.cpp: Remove debugging code.
2082
2083         * qt/qdbusintegrator.cpp:
2084         * qt/qdbusmessage.cpp:
2085         * qt/qdbusmessage_p.h:
2086         * qt/qdbusmessage.h: Change the behaviour of automatic
2087         reply-sending: now a reply is always sent, unless the caller
2088         didn't request one or if the user slot has already sent one.
2089
2090 2006-02-16  Robert McQueen  <robot101@debian.org>
2091
2092         * configure.in: Patch from Debian packages by Sjoerd Simons
2093         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2094         arguments so it's possible to build both bindings in the
2095         same tree.
2096
2097         * qt/Makefile.am: Fix truncated value so that make dist works.
2098
2099 2006-02-16  Robert McQueen  <robot101@debian.org>
2100
2101         * acinclude.m4, configure.in: Patch from Brad Hards
2102         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2103         improving quoting, re-ordering a few checks, and a few other
2104         aesthetic tidy-ups.
2105
2106 2006-02-16  Robert McQueen  <robot101@debian.org>
2107
2108         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2109         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2110         assertion that the next element to read from the iter is fixed in
2111         size. This is not the case when you are at the end of the iter,
2112         because the next element type is INVALID.
2113
2114         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2115         a bogus assert which means that you may not initialise a 0-length
2116         string unless you provide a non-NULL pointer. This prevented
2117         you from marshalling messages containing zero-length arrays in
2118         some cases.
2119
2120         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2121         from Rob to correct bogus asserts when trying to demarshal an
2122         array and get_fixed_array got you 0 elements. Append nothing to
2123         the GArray in this case.
2124
2125         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2126         an empty array via the glib bindings. Without all of the above
2127         patches, this new test fails.
2128
2129 2006-02-16  Robert McQueen  <robot101@debian.org>
2130
2131         * glib/dbus-gmain.c: Make the previous commit compile.
2132
2133         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2134         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2135         specify sender_keyword="foo", path_keyword="bar" when adding
2136         a signal listener, so that you can bind to signals generically
2137         but still do something useful in your callback.
2138
2139         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2140         chars so that they're not cast to chars and made negative. Thanks
2141         to Jakub Stachowski for reporting this and testing the fix.
2142
2143 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2144
2145         * dbus/dbus-glib.h:
2146         * glib/dbus-gmain.h:
2147         (dbus_g_connection_open): new method for openning
2148         a connection to an arbitrary address in the glib bindings
2149
2150         * ChangeLog: checkin last entry which doesn't seem to be commited
2151
2152 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2153
2154         * tools/dbus-launch.c: Fixed sh syntax output
2155
2156 2006-02-13  Robert McQueen  <robot101@debian.org>
2157
2158         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2159         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2160         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2161         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2162         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2163         missing piece of the glib bindings jigsaw puzzle. This modifies
2164         the existing specialised types to have N type parameters (rather
2165         than the current 1 or 2 for arrays and dictionaries respectively).
2166         You can then use this to get a glib type to represent any arbitrary
2167         D-Bus struct type using dbus_g_type_get_struct. The only
2168         implementation of these types is with GValueArrays as before,
2169         but it's now possible to store these in arrays, emit them in
2170         signals, etc.
2171
2172 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2173
2174         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2175         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2176         <thiago.macieira at trolltech.com>
2177
2178 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2179
2180         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2181         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2182
2183 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2184
2185         * bus/connection.c (bus_connections_expect_reply): Make
2186         pending reply limit not common to all connections (Bug #5416)
2187         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2188
2189 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2190
2191         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2192
2193 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2194
2195         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2196         patch from Doug Goldstein <cardoe at gentoo.org>
2197
2198 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2199
2200         * mono/Arguments.cs: Fix a magic number in the mono bindings
2201         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2202
2203 2006-01-27  Robert McQueen  <robot101@debian.org>
2204
2205         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2206         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2207         when generating the client-side methods, instead of overloading
2208         CSymbol which broke everything horribly. My apologies.
2209
2210 2006-01-27  Robert McQueen  <robot101@debian.org>
2211
2212         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2213         by me and Rob Taylor to add a simple_free function to D-Bus map
2214         and collection types, which allows those types which can be freed
2215         with a GDestroyNotify (such as GHashTables and GArrays, but not
2216         GPtrArrays) to be stored as the values in hashtables.
2217
2218         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2219         Patch by Rob Taylor to add nested dicts to the glib tests to check
2220         the above code works, and appears not to leak when called repeatedly.
2221
2222 2006-01-27  Robert McQueen  <robot101@debian.org>
2223
2224         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2225         to free a D-Bus allocated string with dbus_free () instead of
2226         g_free ().
2227
2228 2006-01-27  Iain Holmes  <iain@openedhand.com>
2229
2230         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2231         method from being called multiple times.
2232
2233 2006-01-19  Robert McQueen  <robot101@debian.org>
2234
2235         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2236         <rob.taylor@collabora.co.uk> to add support for generating bindings
2237         to arrays that are represented as GPtrArrays rather than GArrays (ie
2238         size-variable things, such as strings, objects, structs, etc).
2239
2240 2006-01-05  Robert McQueen  <robot101@debian.org>
2241
2242         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2243         <ricardo.kekki@movial.fi> to make it possible to inherit from
2244         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2245         a private part, and moving the setting of the DBusGProxyManager into a
2246         connection property, allowing proper GObject construction.
2247
2248 2006-01-05  Robert McQueen  <robot101@debian.org>
2249
2250         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2251         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2252         annotations when generating glib client bindings.
2253
2254 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2255
2256         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2257
2258         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2259
2260 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2261
2262         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2263
2264 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2265
2266         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2267
2268 2005-12-19  Ross Burton  <ross@openedhand.com>
2269
2270         * doc/dbus-tutorial.xml:
2271         Document the Glib client-side bindings, and list all possible annotations.
2272
2273 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2274
2275         * dbus/bus.c (dbus_bus_release_name): Add documentation
2276
2277 2005-12-06  Robert McQueen  <robot101@debian.org>
2278
2279         * python/service.py: s/sucessful/successful/ so we're allocating to
2280         and reading from the same variable. Oops.
2281
2282 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2283
2284         * Released 0.60
2285
2286 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2287
2288         * test/qt/Makefile.am: build from srcdir
2289
2290         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2291         Note - this code is wrong and needs to be fixed by the Qt binding
2292         developers.  The flags should be treated as bitfields and not enums.
2293
2294         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2295
2296 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2297
2298         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2299           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2300           in production code
2301
2302 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2303
2304         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2305         method for getting messages off the bus in the absence of a
2306         mainloop.  This method is much like 
2307         dbus_connection_read_write_dispatch except it does not dispatch
2308         the messages to a registered filter function.  Instead it
2309         allows a developer to process messages by directly popping
2310         them off the bus.
2311
2312 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2313
2314         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2315         the parser to continue instead of returning error
2316         (bus_desktop_file_load): Do not free parser data when
2317         parse_section_start or parse_key_value fails because it was 
2318         already freed by parser_free (patch from Carlos Garcia Campos  
2319         <carlosgc at gnome.org>)
2320
2321 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2322
2323         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2324         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2325         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2326         test/test-segfault.c, test/test-utils.c,
2327         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2328         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2329         Various cleanup of dead code and compiler warnings (patch from
2330         Kjartan Maraas <kmaraas at gnome.org>) 
2331
2332 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2333
2334         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2335         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2336
2337 2005-11-27  Robert McQueen  <robot101@debian.org>
2338
2339         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2340         part of the preceding one. Oops. Merge patch by Johan Hedberg
2341         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2342         on big-endian platforms.
2343
2344         * test/python/test-client.py: Add some 16-bit integers to the test
2345         values.
2346
2347 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2348
2349         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2350         method return message for property getters
2351
2352 2005-11-27  Robert McQueen  <robot101@debian.org>
2353
2354         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2355         with type v of an instance of dbus.Variant(foo, type='x') caused
2356         it to be boxed twice before sending over the bus.
2357
2358         * python/dbus_bindings.pyx, python/service.py,
2359         test/python/test-client.py: Update the constants for the new
2360         request_name flags, and update comments/test cases now that queueing
2361         is the default action.
2362
2363 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2364
2365         * configure.in:
2366         - Change version to 0.60 for impending release
2367         - upped the sonames because of ABI and API breakage
2368
2369 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2370
2371         * configure.in: Add test/name-test/Makefile to the generated
2372         Makefile list
2373
2374         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2375         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2376         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2377         not to queue an ower if it can't be the primary owner
2378
2379         * bus/bus.h: Add new internal BusOwner struct
2380
2381         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2382         to bus_registry_ensure and don't set the prohibit_replacement flag
2383         since they are now set per BusOwner and not per name.
2384         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2385         that returns the list of connections in a name's connection queue
2386         
2387         * bus/services.c (struct BusService): remove prohibit_replacement field
2388         (struct BusOwner): new struct for keeping track of queued connections
2389         and their associated flags for the queue
2390         (struct BusRegistry): add a BusOwner memory pool
2391         (bus_registry_new): initialize the BusOwner memory pool
2392         (bus_registry_unref): free the BusOwner memory pool
2393         (_bus_service_find_owner_link): new internal method for
2394         searching the queue for a specific connection
2395         (bus_owner_set_flags): new method for adding setting the flags on a
2396         bus owner
2397         (bus_owner_new): new method that creates a BusOwner object from the
2398         pool and sets its flags
2399         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2400         (bus_registry_ensure): Add the flags parameter
2401         (bus_registry_acquire_service): Switch from using raw connections to
2402         using the BusOwner struct
2403         Add new state machine for dealing with the new set of flags
2404         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2405         cancel_ownership, free_ownership_cancel_data, 
2406         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2407         restore_ownership, free_ownership_restore_data, 
2408         add_restore_ownership_to_transaction): Switch to using BusOwner 
2409         instead of raw connections
2410         (bus_service_add_owner): Add flags parameter
2411         Switch to using BusOwner instead of raw connections
2412         Add state machine for dealing with the new set of flags
2413         (bus_service_swap_owner): Swaps the first and second owners in the
2414         queue.  Used to make sure proper signals are sent when a service looses 
2415         or gains primary ownership.  We never insert an owner at the top of the
2416         queue.  Instead we insert it in the second position and then swap.
2417         (bus_service_remove_owner): Remove the owner from the queue sending
2418         out the NameLost and NameOwnerChanged signals if the we were the 
2419         primary owner
2420         (bus_service_get_primary_owners_connection): New method that extracts
2421         the connection from the primary owner
2422         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2423         connection
2424         (bus_service_get_allow_replacement): Changed from the old 
2425         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2426         primary owner and returns if it can be replaced or not
2427         (bus_service_set_prohibit_replacement): removed
2428         (bus_service_has_owner): returns TRUE if and owner with
2429         the specified connection exists in the queue
2430         
2431         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2432         method that only compiles if tests are enabled.  Allows us to get the 
2433         unique name of a connection so we can check it against the queue when
2434         doing regression tests
2435
2436         * bus/activation.c (bus_activation_send_pending_auto_activate),
2437         bus/dispatch.c (bus_dispatch),  
2438         bus/driver.c (bus_driver_handle_get_service_owner, 
2439         bus_driver_handle_get_connection_unix_user, 
2440         bus_driver_handle_get_connection_unix_process_id,
2441         bus_driver_handle_get_connection_selinux_security_context),
2442         bus/signals.c (connection_is_primary_owner): 
2443         use bus_service_get_primary_owners_connection instead of
2444         bus_service_get_primary_owner
2445
2446         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2447         _dbus_listen_unix_socket): Calculate the length of the socket
2448         path and use that instead of using a fixed length which was
2449         causing socket names to contain many trailing Nul bytes.
2450
2451         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2452         (dbus_g_method_get_sender): New method for extracting the sender 
2453         from a DBusGMethodInvocation
2454         (dbus_g_method_return_get_reply): changed name to 
2455         dbus_g_method_get_reply
2456         (dbus_g_method_return_send_reply): changed name to
2457         dbus_g_method_send reply
2458
2459         * doc/dbus-specification.xml: New docs that describe how the new
2460         queueing system works and talks about the changes to the how
2461         we specify socket names
2462
2463         * glib/examples/example-service.c, 
2464         glib/examples/example-signal-emitter.c,
2465         glib/examples/statemachine/statemachine-server.c:
2466         Changed the RequestName flags to the new system
2467
2468         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2469         regression test suite for testing various states of the new
2470         queueing system
2471         
2472 2005-11-15  Robert McQueen  <robot101@debian.org>
2473
2474         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2475         Taylor to add two methods, dbus_g_method_return_get_reply and
2476         dbus_g_method_return_send_reply, to allow you to get the reply
2477         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2478         and send it. The GLib bindings can't marshal a return value of
2479         something like a(s) if the array is empty - ultimately they should be
2480         made to heed the signature of the out arguments as the Python bindings
2481         now can, but this is a workable interim solution which might have
2482         other applications.
2483
2484 2005-11-15  Robert McQueen  <robot101@debian.org>
2485
2486         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2487         method to org.freedesktop.DBus to release a bus name or give up
2488         waiting in the queue for it.
2489
2490         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2491         dbus_bus_release_name method to send the ReleaseName method calls.
2492         Add constants for the return values to dbus/dbus-shared.h.
2493
2494         * doc/dbus-specification.xml: Document the new ReleaseName method
2495         in the specification.
2496
2497         * python/dbus_bindings.pyx: Add a low-level python binding for the
2498         release name method.
2499
2500         * python/exceptions.py, python/service.py: Make freeing BusName
2501         objects release the name. Add a NameExistsException, and fix a
2502         bug with creating UnknownMethodException.
2503
2504         * test/python/test-client.py: Add tests for freeing BusName
2505         objects causing names to be released.
2506
2507 2005-11-14  Robert McQueen  <robot101@debian.org>
2508
2509         * python/service.py: Include the traceback in the error reply when we
2510         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2511
2512 2005-11-14  David Zeuthen  <davidz@redhat.com>
2513
2514         Patch from Timo Hoenig <thoenig@suse.de>.
2515
2516         * bus/bus.c: I've recently investigated why the automatic reload
2517         of configuration files does not work as expected.
2518
2519         Currently, reloading configuration files does only work when
2520         running dbus-daemon with --nodaemon.  If we are running as daemon
2521         we're hitting a dnotify bug once we fork the process.
2522
2523         We're initializing the dnotify fds before calling fork().  Once
2524         the child process forked it does still have the fds (and they
2525         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2526         getting SIGIO as changes are made to the configuration files.
2527
2528         The attached patch moves the initialization of the dnotify fds to
2529         process_config_postinit().  This is safe for all current code
2530         paths and solves the dnotify disfunction.  If we're running
2531         dbus-daemon as daemon the fds for dnotify are now being
2532         initialized after fork() for the child process.
2533
2534         * configure.in: The current configure.in check for dnotify probes
2535         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2536         match for 'xlinux', too. Additionally I have adapted the configure
2537         option's style to match with the others.
2538
2539 2005-11-14  Robert McQueen  <robot101@debian.org>
2540
2541         * python/decorators.py, python/service.py: Add a new argument to the
2542         dbus.service.method decorator called sender_keyword, which if set,
2543         specifies the name of an argument which will be provided the bus
2544         name of the method caller.
2545
2546         * test/python/test-client.py, test/python/test-service.py: Add a
2547         method and test to check the sender_keyword functionality.
2548
2549 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2550
2551         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2552         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2553         Simons <sjoerd at luon.net>)
2554
2555         * AUTHORS: Add Robert McQueen for his work on the Python
2556         Bindings and other parts of D-Bus
2557
2558 2005-11-07  Robert McQueen  <robot101@debian.org>
2559
2560         * python/decorators.py: Change emit_signal function to use the
2561         signature annotation of the signal when marhsalling the arguments from
2562         the service. Fix a bug where the code checking signature length
2563         against argument length referenced the wrong variable.
2564
2565         * python/introspect_parser.py: Avoid adding the type signature of
2566         signal arguments to any methods which occur after them in the
2567         introspection data (!) by making the parser a little more careful
2568         about its current state.
2569
2570         * python/service.py: Remove debug prints from last commit (again :D).
2571
2572         * test/python/test-client.py, test/python/test-service.py: Add test
2573         signals with signature decorators to test the strict marshalling code
2574         gives errors at the right time. Could do with checking the signals
2575         actually get emitted too, given that the test does nothing with
2576         signals at the moment...
2577
2578 2005-11-07  Robert McQueen  <robot101@debian.org>
2579
2580         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2581         instances to stop madness of creating new instances representing
2582         the same bus connection all the time, rendering any tracking of
2583         match rules and bus names quite meaningless. Caught a bug where
2584         the private argument to SessionBus() and friends was being passed
2585         in as use_default_mainloop by mistake. Still some problems with
2586         multiple dbus_binding.Connection instances representing the same
2587         low-level connection (eg when you use both SessionBus() and
2588         StarterBus() in same process), but it's a lot better now than it
2589         was.
2590
2591         * python/dbus_bindings.pyx: Add constants with the return values
2592         for bus_request_name().
2593
2594         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2595         and retrieve the same instances for the same name, so deletion can be
2596         done with refcounting. Also now throws some kind of error if you
2597         don't actually get the name you requested, unlike previously...
2598
2599         * test/python/test-client.py: Add tests for instance caching of buses
2600         and bus name objects.
2601
2602 2005-11-04  Robert McQueen  <robot101@debian.org>
2603
2604         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2605         marshalling of boolean values. Add some booleans to the values in
2606         the test client.
2607
2608         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2609         argument to the dbus.service.method decorator, which allows you to
2610         name arguments to take two callback functions for replying with
2611         return values or an exception.
2612
2613         * test/python/test-client.py, test/python/test-service.py: Add test
2614         case using asynchronous method reply functions, both return values and
2615         errors, and from within both the function itself and from a mainloop
2616         callback.
2617
2618         * python/decorators.py, python/service.py: Perform checking that the
2619         number of method/signal arguments matches the number of types in the
2620         signature at class loading time, not when you first introspect the
2621         class.
2622
2623         * python/service.py: Remove debug print left by the last commit.
2624
2625 2005-11-03  Robert McQueen  <robot101@debian.org>
2626
2627         * python/service.py: Heavy refactoring of method invocation, with
2628         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2629         in favour of a new _message_cb that uses seperate functions for
2630         looking up the method to call, marshalling the return values, and
2631         sending exceptions as errors, and is easier to follow as a
2632         consequence.  Fixes some corner cases about returning things that
2633         don't match your declared out_signature, allows exceptions to define
2634         _dbus_error_name and have it be sent over the bus as the error name,
2635         and paves the way for cool stuff like heeding the message no reply
2636         flag, asynchronous method implementations, informing the method of the
2637         sender, and including backtraces in the error messages.
2638
2639         * test/python/test-client.py: Catch and print exceptions thrown in the
2640         async callback tests, rather than passing them to the low-level
2641         bindings to be ignored in a noisy and frustrating manner.
2642
2643 2005-11-03  Robert McQueen  <robot101@debian.org>
2644
2645         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2646         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2647         tweak others to be consistent.
2648
2649         * test/python/test-client.py: Tweak output of testInheritance.
2650
2651 2005-10-29  Robert McQueen  <robot101@debian.org>
2652
2653         * python/service.py: Major changes to allow multiple inheritance
2654         from classes that define D-Bus interfaces:
2655         
2656          1. Create a new Interface class which is the parent class of
2657             Object, and make the ObjectType metaclass into InterfaceType.
2658         
2659          2. Patch written with Rob Taylor to replace use of method_vtable
2660             with code that walks the class's __MRO__ (method resolution order)
2661             to behave like Python does when invoking methods and allow
2662             overriding as you'd expect. Code is quite tricky because
2663             we have to find two methods, the one to invoke which has the
2664             right name and isn't decorated with the /wrong/ interface,
2665             and the one to pick up the signatures from which is decorated
2666             with the right interface.
2667         
2668             The same caveats apply as to normal multiple inheritance -
2669             this has undefined behaviour if you try and inherit from two
2670             classes that define a method with the same name but are
2671             decorated with different interfaces. You should decorate
2672             your overriding method with the interface you want.
2673         
2674          3. Replace grungy introspection XML generation code in the metaclass
2675             with dictionaries that cope correctly with multiple inheritance
2676             and the overriding of methods. This also uses the signature
2677             decorations to provide correct introspection data, including
2678             the debut appearance of the types of your return values. :D
2679
2680         * test/python/test-client.py, test/python/test-service.py: Add a test
2681         case to try invoking an method that overrides one inherited from a
2682         D-Bus interface class.
2683
2684 2005-10-29  Robert McQueen  <robot101@debian.org>
2685
2686         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2687         Add checking for the end of struct character when marshalling a
2688         struct in MessageIter.append_strict.
2689
2690         * python/examples/example-service.py,
2691         python/examples/gconf-proxy-service.py,
2692         python/examples/gconf-proxy-service2.py: Update to use gobject
2693         mainloop directly rather than appearing to depend on gtk.
2694
2695         * python/test/test-client.py, python/test/test-server.py: Remove
2696         obsolete and broken test scripts for old bindings. We have up to date
2697         and working tests in test/python/.
2698
2699 2005-10-29  Robert McQueen  <robot101@debian.org>
2700
2701         * python/decorators.py: Add optional arguments to the method and
2702         signal decorators to allow you to specify the signature of arguments
2703         and return values. Preserve the doc strings of signal functions in the
2704         decorated version, for pydoc and friends.
2705
2706         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2707         parse_signature_block function with an iterable dbus.Signature()
2708         type. Fix a bug in MessageIter.append_strict where you could append
2709         anything by claiming it was a string.
2710
2711         * python/service.py: Use the out_signature decoration on methods to
2712         marshal return values, meaning you no longer require dbus.Array()
2713         or dbus.Dictionary() to indicate the type when returning empty
2714         arrays or dictionaries. Fix a bug where exceptions which are defined
2715         in __main__ are not turned into error replies.
2716
2717         * test/python/test-client.py, test/python/test-service.py: Add test
2718         for correct marshalling of return values according to out_signature.
2719         Fix a bug in the async call test where the error_handler is missing a
2720         self argument.
2721
2722 2005-10-29  Robert McQueen  <robot101@debian.org>
2723
2724         * glib/Makefile.am, glib/examples/Makefile.am,
2725         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2726         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2727
2728         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2729
2730         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2731         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2732         the command line.
2733
2734 2005-10-27  Ross Burton  <ross@openedhand.com>
2735
2736         * dbus/dbus-marshal-header.c:
2737         Remove dead code.
2738
2739         * glib/dbus-gobject.c:
2740         Stop compiler warning.
2741
2742 2005-10-25  Ross Burton  <ross@openedhand.com>
2743
2744         * dbus/dbus-auth.c:
2745         * dbus/dbus-server-unix.c:
2746         * dbus/dbus-transport-unix.c:
2747         * glib/dbus-gmain.c:
2748         * glib/dbus-gobject.c:
2749         Add some const keywords.
2750
2751 2005-10-25  Ross Burton  <ross@openedhand.com>
2752
2753         * doc/dbus-specification.xml:
2754         Document the NoReply annotation.
2755
2756         * glib/dbus-binding-tool-glib.h:
2757         * glib/dbus-binding-tool-glib.c:
2758         Respect the NoReply annotation.
2759
2760 2005-10-24  Robert McQueen <robot101@debian.org>
2761
2762         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2763         derive from unicode instead of str, and encode/decode UTF-8 when
2764         marshalling/unmarshalling bus messages
2765
2766         * python/introspect_parser.py: encode introspection data as UTF-8
2767         before passing the buffer into libxml2
2768
2769         * test/python/test-client.py: add unicode test strings
2770
2771         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2772         ignore generated python test files
2773
2774 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2775
2776         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2777         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2778         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2779
2780         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2781         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2782         when constructing struct signatures
2783
2784         * python/_dbus.py (Bus): handle private connections using the
2785         private keyword in the constructor. defaults to private=False
2786         (Bus::close): new method to close a connection to the bus
2787
2788         * python/dbus_bindings.pyx (Connection::close): renamed method
2789         was previously called disconnect
2790         (bus_get): now supports getting a private connection
2791
2792         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2793         keyword is set to True.  if it is, execute the method without waiting
2794         for a reply
2795         (ProxyObject::_introspect_execute_queue): new method for executing
2796         all the pending methods that were waiting for the introspect to
2797         finish.  this is called when introspect either succeeds or fails
2798         (ProxyObject::_introspect_error_handler): call queued methods
2799
2800 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2801
2802         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2803         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2804
2805         * python/service.py (Object::_message_cb): handle exceptions correctly
2806         by sending them over the wire to the calling app.  This makes sure
2807         the client returns immediately instead of waiting the 15 seconds to
2808         timeout.
2809
2810         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2811         Add a test to benchmark how long it takes to introspect a service and 
2812         call a method which returns a large element (pretty fast)
2813
2814         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2815         method which pushes a lot of data
2816
2817 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2818
2819         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2820         reclaim memory outside of the loop and use del istead of just setting
2821         the key to None
2822
2823 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2824
2825         * python/service.py (ObjectType::_reflect_on_signal): Always close
2826         signal tag even when there are no arguments
2827
2828 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2829
2830         * configure.in: Set mono, mono-docs and Qt3 to default
2831         to no instead of auto when building.  These bindings do not
2832         have full time maintainers and will not be supported for the
2833         1.0 release.
2834
2835 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2836
2837         patches from Michael Krivoruchko <misha at sun.com>: 
2838         
2839         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2840         _dbus_connection_message_sent, 
2841         _dbus_connection_send_preallocated_unlocked_no_update, 
2842         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2843         is NULL when calling _dbus_verbose
2844
2845         * configure.in: check for functions getpeerucred and getpeereid
2846
2847         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2848         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2849         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2850         Patch was only tested on Solaris 10 x86 so it might be issues
2851         with other platforms (i.e. BSDs and MacOSX)
2852         
2853
2854 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2855
2856         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2857         instead of marshal basic so we can handle recursive types in a variant
2858
2859         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2860         in variants
2861
2862         * test/glib/test-service-glib.c, test-service-glib.xml
2863         (my_object_echo_variant [EchoVariant], 
2864         my_object_process_variant_of_array_of_ints123
2865         [ProcessVariantOfArrayOfInts123]): 
2866         Add two test methods
2867
2868         * python/introspect_parser.py: New module for parsing introspect
2869         data.
2870
2871         * python/dbus_bindings.pyx:
2872         (various places): when throwing errors fix to use errormsg instead 
2873         of message local variable because Pyrex can get confused with other 
2874         message variables (initial patch by Robert McQueen 
2875         <robert.mcqueen at collabora.co.uk>)
2876         (MessageIter::parse_signature_block): new method for getting the next
2877         block in a signiture.
2878         (MessageIter::append_strict): new method for appending values strictly
2879         using the passed in signature instead of guessing at the type
2880         (MessageItter:: append_dict, append_struct, append_array): use 
2881         signatures to marshal children if the signature is available
2882         
2883         * python/exceptions.py (IntrospectionParserException): new exception
2884
2885         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2886         introspected signatures if available, else we fall back to the
2887         old way of doing things.
2888         (ProxyObject::_introspect_reply_handler ): parse introspection data
2889         
2890         * python/service.py (ObjectType::_reflect_on_method): Properly
2891         terminate <method> if there are no args in the reflection data
2892
2893         * test/python/test-client.py: add tests for talking with the GLib
2894         test server.  This gives us better coverage for introspection since
2895         python to python will always generate arguments as variants.  It also
2896         allows us to test the robustness of the GLib bindings and interlanguage
2897         communications.
2898
2899         
2900 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2901
2902         * bus/driver.c (bus_driver_handle_introspect): Add signals
2903         to the introspect data. (patch from Daniel P. Berrange 
2904         <dan at berrange.com>)
2905
2906         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2907         
2908         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2909         _dbus_connection_run_builtin_filters): Changed these to
2910         be unlock_no_update functions and call 
2911         _dbus_connection_send_unlocked_no_update instead of
2912         dbus_connection_send to avoid locking errors.
2913         
2914         * doc/TODO: Removed the make Ping test TODO
2915         
2916 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2917
2918         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2919         We now copy the message from a DBusError and then free 
2920         the error object befor throwing the error
2921
2922         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2923         DBusBindingOutputMode enum which was causing a warning.
2924         #include <time.h> so using time_t is explicitly defined
2925
2926 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2927
2928         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2929         - dbus/dbus-bus.c
2930         (internal_bus_get): new method that take over the heavy lifting
2931         of dbus_bus_get and adds the ability to get a private connection
2932         to the bus
2933         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2934         interface as in previous versions
2935         (dbus_bus_get_private): new method that is a wrapper to 
2936         internal_bus_get to get a private connection to the bus
2937
2938         - dbus/dbus-bus.h
2939         (dbus_bus_get_private): add as a public libdbus interface
2940
2941         - dbus-1.pc.in: output system_bus_default_address and 
2942         sysconfdir variables so apps can use them when compiling
2943
2944 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2945         * dbus/qt: New Qt bindings
2946
2947 2005-09-12  Waldo Bastian  <bastian@kde.org>
2948
2949         * dbus/dbus-marshal-validate.c,
2950         doc/dbus-specification.xml, test/Makefile.am,
2951         test/test-names.c: allow hyphens in bus names.
2952
2953 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2954
2955         * test/data/auth/fallback.auth-script: we don't
2956         retry the EXTERNAL method when we know its going
2957         to fail anymore.
2958
2959 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2960
2961         * dbus/dbus-connection-internal.h: rename
2962         (add|remove|toggle)_(watch|timeout) to unlocked()
2963         
2964         * dbus/dbus-connection.c: ditto.
2965         
2966         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2967         Update some callers for the renaming.
2968
2969 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2970
2971         * dbus/dbus-auth.c: (record_mechanisms): don't
2972         retry the first auth mechanism because we know
2973         we're just going to get rejected again.
2974         
2975         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2976         Fix thinko ... and what a nasty little bugger to
2977         track down you were ...
2978
2979         * dbus/dbus-connection.c:
2980         (_dbus_connection_add_watch),
2981         (_dbus_connection_remove_watch): add note about
2982         these needing the connection to be locked.
2983         (_dbus_connection_get_dispatch_status_unlocked):
2984         set status to DATA_REMAINS when we queue the
2985         disconnected message.
2986         
2987         * bus/dispatch.c:
2988         (bus_dispatch): fix warning.
2989         (check_existent_service_no_auto_start):
2990         Expect ChildSignaled error too.
2991         (check_existent_hello_from_self): fix another
2992         couple of warnings.
2993         
2994 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2995
2996         Patches from James Willcox <snorp@snorp.net>
2997
2998         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2999
3000         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3001         support array "out" parameters.
3002
3003         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3004         for 16-bit int support.
3005
3006 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3007
3008         * Released 0.50
3009
3010         * Patch from Steve Grubb:
3011         - bus/activation.c (bus_activation_service_reload_test): clean up
3012         some indentation
3013         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3014         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3015         buffer overflows in the test suite.  This is non critical because
3016         it can not be exploited and this code is only run when doing a 
3017         make check.
3018
3019         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3020         - configure.in: Don't check and link against kdecore, only qt headers
3021         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3022         - gcj/org/freedesktop/dbus/Makefile.am:
3023         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3024         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3025         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3026         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3027         - tools/Makefile.am: Add platform extentions to binaries 
3028         (i.e. .exe on windows)
3029
3030         * configure.in: 
3031         - Make it so if no suitable version of python is found we only 
3032         disable building python instead of exiting the configure script
3033         - Require version 2.4 of glib for glib bindings
3034         - Up version to 0.50
3035
3036         * python/__init__.py: Sync version with libdbus to (0,50,0)
3037         
3038 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3039
3040         * dbus/dbus-object-tree.c (find_subtree_recurse):
3041         a couple of optimizations (bug #710):
3042         - do a binary search in the tree
3043         - insert a new child at the right place directly, no need for
3044           qsort anymore
3045         - do the "double alloc" thing when allocating children
3046
3047 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3048
3049         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3050
3051         * python/dbus_bindings.pyx: Memory management foo
3052         (global): remove hacky _user_data_references global list
3053         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3054         tuples. Unref user_data
3055         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3056         (Connection::__del__): Remove and replace with __dealloc__ method
3057         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3058         to keep tuple from being deallocated instead of the global var hack
3059         (Connection::register_object_path): Stuff user_data into a tuple.
3060         Use Py_INCREF to keep tuple from being deallocated instead of the 
3061         global var hack
3062         (Connection::register_fallback): Stuff user_data into a tuple.
3063         Use Py_INCREF to keep tuple from being deallocated instead of the 
3064         global var hack
3065         (GIL_safe_pending_call_notification): Don't unref the message
3066         because it gets unreffed when going out of scope.  Py_XDECREF
3067         the user_data
3068         (PendingCall::__del__): Remove and replace with __dealloc__ method
3069         (PendingCall::set_notify): ref the pending call because we will
3070         need it to stick around for when the notify callback gets called
3071         (Message::__del__): Remove and replace with __dealloc__ method
3072
3073         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3074         gthreads_init to match up with the dbus call
3075
3076         * python/glib.py (init_threads): Changed to threads_init to match
3077         up with gobject.threads_init().  init_threads is kept for backwards
3078         compat but will most likely be deprecated in the future
3079
3080         * test/python/test-client.py: 
3081         - revamp to use Python's unittest functionality
3082         - add async call tests
3083         - setup threads in glib and dbus so we make sure locks are working
3084         
3085 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3086
3087         * python/dbus_bindings.pyx 
3088         (_pending_call_notification, cunregister_function_handler, 
3089         cmessage_function_handler): All callback functions have been rearranged 
3090         to workaround a bug in Pyrex when working with the GIL which is Python's 
3091         global lock when dealing with threads.  They have been split into
3092         a wrapper function (which assumes the name of the old function) and
3093         a _GIL_safe_<function name> function which contains the functionality
3094         of the old function.  This ensures that Pyrex does not write code
3095         the lock is released.
3096         
3097
3098 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3099
3100         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3101         GIL global lock when calling back into Python
3102
3103 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3104
3105         * Release 0.36.2
3106
3107         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3108
3109         * bus/policy.c (bus_policy_allow_user): change default "user is
3110         allowed" to be "user has same uid as the bus itself"; any
3111         allow/deny rules will override.
3112
3113         * bus/session.conf.in: don't allow all users, since now by default
3114         the user that ran the bus can connect.
3115
3116 2005-08-26  Colin Walters  <walters@verbum.org>
3117
3118         * tools/dbus-print-message.c (print_message): Flush stdout
3119         after printing a message, so that redirecting to a file, then
3120         hitting Ctrl-C works.
3121
3122 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3123
3124         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3125         (EmptyMessage): new class that subclasses Message.  This is a workaround
3126         to a Pyrex bug that fails to call __del__ when the Message object goes out
3127         of scope.  For some reason subclassing Message fixes this bug
3128         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3129         - s/Message(_create=0)/EmptyMessage everywhere else
3130         
3131         * test/python/test-{server|client}.py: add the python/.libs directory
3132         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3133         get picked up from the system
3134
3135 2005-08-25  Colin Walters  <walters@verbum.org>
3136
3137         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3138         to Ryan Lortie for the suggestion.
3139
3140 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3141
3142         * test/python: Add python regression test
3143
3144         * configure.in: Add test/python/Makefile
3145
3146         * test/Makefile.am: Add the python directory to SUBDIRS
3147
3148 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3149
3150         * Release 0.36.1
3151
3152         * python/_dbus.py: 
3153         (Interface::connect_to_signal): propigate keywords for match on args
3154         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3155
3156         * python/proxies.py (ProxyObject::connect_to_signal):
3157         propigate keywords for match on args
3158
3159         * Makefile.am: point everything to pyexecdir since python borks
3160         on multilib
3161
3162 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3163
3164         * Release 0.36
3165
3166 2005-08-23  Colin Walters  <walters@verbum.org>
3167
3168         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3169
3170 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3171
3172         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3173         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3174         of defining DBusConnection ourselves.
3175
3176 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3177
3178         * python/dbus.pth: New path file to fix up problems when installing
3179         c libraries to lib64 and python files to lib.
3180
3181         * python/Makefile.am: install dbus.pth in the correct spot
3182
3183 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3184         * ChangeLog: clean up my last entry a bit
3185
3186         * doc/introspect.xsl: New stylesheet for converting introspection data
3187         into browser renderable xhtml. Contributed by Lennart Poettering.
3188
3189         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3190         Poettering.
3191
3192         * doc/dbus-tutorial.xml: 
3193         - Add Colin Walter to the Authors section for authoring the GLib
3194         section
3195         - Add descriptions of the new signature and type functionality
3196         in the Python complex type mapping section
3197         - Add a sidenote on the new args matching functionality in 
3198         the Python bindings
3199         - Fixed up some of the examples to use the gobject.MainLoop
3200         instead of gtk.main
3201         
3202         * python/_dbus.py:
3203         (Bus::_create_args_dict): New. Converts a hash of arg matches
3204         to a more useable format
3205         (Bus::add_signal_receiver): add a **keywords parameter for catching
3206         arg match parameters
3207         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3208         arg match parameters
3209         
3210         * python/matchrules.py:
3211         (MatchTree::exec_matches): Check for arg matches
3212         (SignalMatchRule::add_args_match): New method
3213         (SignalMatchRule::execute): Added args_list parameter as an optimization
3214         so we don't have to marshal the args more than once
3215         (SignalMatchRule::match_args_from_list): New method that checks to see
3216         if the rule's arg matches match an argument list.  Only arguments
3217         set in the rule are checked.
3218         (SignalMatchRule::match_args_from_rule): New method that checks to see
3219         if the rule's arg matches match another rule's.  All args have to match
3220         in order for this method to return true.  If either rule has more args
3221         then it is not a match.
3222         (SignalMatchRule::is_match): Add args match
3223         (SignalMatchRule::repr): Add args to the final output if they exist
3224
3225 2005-08-17  Ross Burton  <ross@burtonini.com>
3226
3227         * glib/dbus-gproxy.c:
3228         (dbus_g_proxy_call_no_reply): unref the message once sent.
3229         (dbus_g_proxy_call): protect against NULL proxy.
3230
3231 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3232
3233         * python/__init__.py: Version updated (0, 43, 0)
3234         
3235         * python/dbus_bindings.pyx: 
3236         - Fixed type objects to have self passed into __init__
3237         - Added the Variant type
3238         - Add the ability to specify types or signatures for Array, Variant 
3239         and Dictionary
3240         (Connection::send_with_reply_handlers): return a PendingCall object
3241         (_pending_call_notification): handle the case when an error is returned 
3242         without an error message in the body
3243         (MessageIter::get_boolean): return True or False instead of an integer
3244         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3245         and add checks for objects with embeded signatures or types (Array, 
3246         Variant and Dictionary)
3247         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3248         (MessageIter::append_dict): handle embeded types or signatures
3249         (MessageIter::append_array): handle embeded types or signatures
3250         (MessageIter::append_variant): new method
3251         
3252         * python/proxies.py:
3253         (DeferedMethod): New. Dummy executable object used when queuing calls 
3254         blocking on introspection data
3255         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3256         or shorter timeouts for method calls
3257         (ProxyObject): Add first pass at an introspection state machine
3258         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3259         introspection. 
3260         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3261         the usual mechanisms for sending messages.  This is to avoid a deadlock
3262         where the Intospect call would be queued waiting for the Introspect 
3263         call to finish ;-)
3264         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3265         when introspection returns with no error
3266         (ProxyObject::_introspect_error_handler): New.  This method is called 
3267         when introspection encounters an error
3268         (ProxyObject::__getattr__): Code to handle different introspection 
3269         states.  Queue async calls or block blocking calls if we are 
3270         introspecting.  Pass through as normal if we are not or are done with 
3271         introspecting.
3272         
3273         * python/service.py: Import signal and method from decorators.py
3274
3275         * python/types.py: Add Variant type
3276
3277 2005-08-16  Colin Walters  <walters@verbum.org>
3278
3279         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3280         DBusError message is NULL.
3281
3282 2005-08-09  Havoc Pennington  <hp@redhat.com>
3283
3284         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3285         malloc'd copy of the name parameter
3286
3287 2005-08-09  Havoc Pennington  <hp@redhat.com>
3288
3289         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3290         warning if the reply serial is set to 0
3291
3292 2005-08-04  Colin Walters  <walters@verbum.org>
3293
3294         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3295         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3296         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3297         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3298         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3299         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3300         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3301         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3302         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3303         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3304         
3305         Prefix name with _ to ensure they're not exported.  All callers
3306         updated.
3307
3308         * glib/dbus-gvalue.c (typecode_to_gtype)
3309         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3310         (signature_iter_to_g_type_dict)
3311         (signature_iter_to_g_type_array)
3312         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3313         (dbus_gtypes_from_arg_signature):
3314         Move to dbus-gsignature.c.
3315
3316         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3317         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3318         (dbus_binding_tool_output_glib_client): Ditto.
3319
3320         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3321         and dbus-gsignature.h
3322
3323         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3324         unused variable.
3325
3326 2005-08-03  Colin Walters  <walters@verbum.org>
3327
3328         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3329         catch any incompatible changes accidentally made.
3330
3331 2005-08-03  Havoc Pennington  <hp@redhat.com>
3332
3333         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3334         typo, from Julien Puydt
3335
3336         * bus/connection.c (bus_connection_disconnected): we were always
3337         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3338
3339 2005-08-01  Colin Walters  <walters@verbum.org>
3340
3341         Patch from Joe Markus Clarke:   
3342         
3343         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3344         use-after-free.
3345
3346 2005-08-01  Colin Walters  <walters@verbum.org>
3347         
3348         Patch from Joe Markus Clarke:   
3349         
3350         * tools/dbus-send.c (main): 
3351         
3352         Don't use C99 style initializers (bug #3933).
3353         
3354 2005-08-01  Colin Walters  <walters@verbum.org>
3355
3356         Patch from Joe Markus Clarke:   
3357
3358         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3359         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3360         * glib/dbus-gobject.c (write_interface):
3361
3362         Don't use C99 style initializers (bug #3933).
3363
3364 2005-07-31  Havoc Pennington  <hp@redhat.com>
3365
3366         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3367         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3368
3369 2005-07-30  Havoc Pennington  <hp@redhat.com>
3370
3371         * fix a bunch of Doxygen warnings and mistakes
3372
3373 2005-07-30  Havoc Pennington  <hp@redhat.com>
3374
3375         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3376         DBUS_BUILD_TESTS since it's now used in production code
3377
3378 2005-07-29  Havoc Pennington  <hp@redhat.com>
3379
3380         * test/glib/test-profile.c (write_junk): initialize the junk
3381         buffer so valgrind doesn't have a breakdown
3382
3383 2005-07-29  Havoc Pennington  <hp@redhat.com>
3384
3385         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3386         (match_rule_matches): remove unused arg
3387         (test_matching): add tests for match_rule_matches()
3388
3389         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3390         do arg0='foo' arg5='bar' in the match rules
3391         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3392
3393         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3394
3395 2005-07-29  Ross Burton  <ross@openedhand.com>
3396
3397         * dbus/dbus-connection.c:
3398         Don't create a DBusCondVar which is never used.
3399
3400 2005-07-27  Ross Burton  <ross@openedhand.com>
3401
3402         * dbus/dbus-message.c:
3403         Reduce the size of the maximum cached message to 10K.
3404
3405 2005-07-25  Ross Burton  <ross@openedhand.com>
3406
3407         * glib/dbus-gproxy.c:
3408         Remove matches when all proxies are unregistered.
3409
3410 2005-07-24  Colin Walters  <walters@verbum.org>
3411
3412         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3413         typedata; recursive arrays won't have it.
3414
3415         * test/glib/test-dbus-glib.c:
3416         * test/glib/test-service-glib.c:
3417         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3418         
3419 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3420
3421         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3422         proxies.py, service.py: Cleanup of code after running it through the
3423         pyflakes code checker mostly dealing with undefined names.  
3424         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3425
3426 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3427
3428         * NEWS: Update to 0.35.2
3429
3430 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3431
3432         * python/_dbus.py: Remove import of the dbus.services
3433         module as it no longer exists (patch from Dimitur Kirov)
3434
3435         * python/service.py (Object::__init__): Fixed typo
3436         s/name/bus_name (patch from Dimitur Kirov)
3437
3438         * python/examples/example-signal-emitter.py: import dbus.glib
3439         to get the main loop and use glib mainloop instead of gtk so
3440         X doesn't have to be running.
3441
3442         * python/examples/example-signal-recipient.py: import dbus.glib
3443         to get the main loop and use glib mainloop instead of gtk so
3444         X doesn't have to be running. Import the decorators module
3445         directly.
3446
3447         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3448         didn't pick up on but are needed to build
3449
3450         * configure.in: upped version to 0.35.2
3451
3452         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3453         added Colin Walters' SELinux API rename patch from head 
3454         s/unix sercurity context/selinux security context/
3455
3456 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3457
3458         * python/Makefile.am: dbus_binding.pxd.in should be included 
3459         in EXTRA_DIST not dbus_binding.pxd
3460         fix up $(srcdir) hopefully for the last time
3461
3462         * NEWS: Update to 0.35.1
3463
3464 2005-07-16  Colin Walters  <walters@verbum.org>
3465
3466         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3467         from bus_driver_handle_get_connection_unix_security_context.  Update for
3468         error usage.
3469         (message_handlers): Update for renames.
3470
3471         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3472         _dbus_string_init failure correctly.
3473         (bus_selinux_append_context): Convert SID to context.  Append it
3474         as a byte array.
3475         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3476         hasn't been called.
3477
3478         * bus/selinux.h: Update prototype.
3479
3480         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3481         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3482
3483 2005-07-15  Colin Walters  <walters@verbum.org>
3484
3485         * doc/TODO: Add note about convenience wrappers.
3486
3487 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3488
3489         * NEWS: Update to 0.35
3490
3491 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3492
3493         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3494         so distcheck doesn't fail
3495
3496         * glib/examples/Makefile.am: Add example-service.xml and 
3497         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3498
3499         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3500         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3501
3502         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3503         compiler looks in the right places during distcheck
3504
3505 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3506
3507         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3508         to fail
3509
3510 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3511
3512         * python/examples/example-service.py,
3513         python/examples/example-signal-emitter.py: Fixed up examples
3514         for API changes
3515
3516 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3517
3518         * python/__init__.py: Upped to version (0,42,0) because of
3519         the API change
3520
3521 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3522
3523         * ChangeLog: fix date in last entry
3524
3525         * configure.in, bus/system.conf.in: add the ability to configure 
3526         the system bus user at compiletime with the --with-dbus-user flag
3527         (patch from Kristof Vansant)
3528
3529 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3530
3531         * bus/dispatch.c, test/test-service.c: Add testcase
3532         for sending messages to oneself (TODO item).
3533
3534         * python/service.py (class Object): Swap ordering of bus_name 
3535         and object_path parameters to better support inheritance.
3536
3537         * doc/dbus-tutorial.xml: change Python docs to reflect change
3538         in parameter ordering and fix the inheritance section.
3539
3540         * doc/TODO: remove sending message to oneself TODO item
3541
3542 2005-07-15  Ross Burton  <ross@openedhand.com>
3543
3544         * glib/dbus-gproxy.c:
3545         Fix a leak when calling methods via the proxy.
3546
3547 2005-07-15  Colin Walters  <walters@verbum.org>
3548
3549         * bus/selinux.c (bus_selinux_append_context): Wrap in
3550         HAVE_SELINUX.
3551
3552 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3553
3554         * python/_dbus.py (Bus::remove_signal_receiver):
3555         don't add a callback to the match if none has been passed in
3556         
3557         * python/matchrules.py (SignalMatchTree::remove): if the rule
3558         being matched does not have a callback treat it as a wildcard
3559         fix matching logic
3560
3561         * doc/dbus-tutorial.xml: Add Python tutorial
3562
3563 2005-07-14  Colin Walters  <walters@verbum.org>
3564
3565         * bus/driver.c
3566         (bus_driver_handle_get_connection_unix_security_context): New function.
3567         (message_handlers): Add.
3568
3569         * bus/selinux.c (bus_selinux_append_context): New function; appends
3570         security context to message.
3571
3572         * bus/selinux.h: Prototype.
3573
3574         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3575
3576 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3577
3578         * bus/activation.c: clean up all tabs to be 8 spaces 
3579         (bus_activation_activate_service): make sure we clean up
3580         if activation fails
3581
3582         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3583         (check_shell_fail_service_auto_start): New function
3584         tests to make sure we get fail properly when trying to auto start a service
3585         with a faulty command line
3586         (check_shell_service_success_auto_start): New function tests to make sure
3587         auto started services get the arguments on the command line
3588
3589         * test/test-shell-service.c: Added service for testing auto-starting with 
3590         command line arguments
3591
3592         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3593         test/data/valid-service-files/debug-shell-echo-success.service.in:
3594         Added service files for testing auto-starting with command line arguments
3595
3596         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3597
3598 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3599
3600         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3601         
3602         * dbus/Makefile.am: added new files to build.
3603
3604         * bus/activation.c (bus_activation_activate_service): support
3605         activation commands with parameters.
3606
3607         * test/shell-test.c: added test program for the shell parsing
3608         code.
3609
3610 2005-07-13  David Zeuthen  <davidz@redhat.com>
3611
3612         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3613         64 bit signed and unsigned parameters
3614
3615 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3616
3617         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3618
3619         * python/service.py (class Name): renamed BusName to make it clearer
3620         what the object is for (a name on the bus)
3621
3622         * python/examples/example-service.py,
3623         python/examples/example-signal-emitter.py: change the Name object to
3624         BusName
3625
3626 2005-07-12  Colin Walters  <walters@verbum.org>
3627
3628         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3629
3630         * tools/dbus-launch.c: Include sys/select.h.
3631
3632 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3633         * python/dbus_bindings.pyx.in: removed
3634
3635         * python/dbus_bindings.pyx: Added.
3636         - Fixed some memleaks (patch from 
3637         Sean Meiners <sean.meiners@linspireinc.com>)
3638         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3639         own pxd file (Pyrex definition)
3640         - Broke out glib dependancies into its own pyx module
3641         
3642         * python/dbus_bindings.pdx: Added.
3643         - Defines C class Connection for exporting to other modules
3644
3645         * python/dbus_glib_bindings.pyx: Added.
3646         - New module to handle lowlevel dbus-glib mainloop integration
3647
3648         * python/glib.py: Added.
3649         - Registers the glib mainloop when you import this module
3650
3651         * python/services.py: Removed (renamed to service.py)
3652         
3653         * python/service.py: Added.
3654         - (class Server): renamed Name
3655
3656         * python/__init__.py: Bump ro version (0,41,0)
3657         -don't import the decorators or service module
3658         by default.  These now reside in the dbus.service namespace
3659
3660         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3661         setup function on creation 
3662
3663         * python/examples/example-service.py,
3664         python/examples/example-signal-emitter.py: update examples
3665
3666         * python/examples/gconf-proxy-service.py,
3667         python/examples/gconf-proxy-service2.py: TODO fix these up
3668
3669         * doc/TODO: Addition
3670         - Added a Python Bindings 1.0 section
3671         - added "Add match on args or match on details to match rules"
3672
3673
3674 2005-07-12  Colin Walters  <walters@verbum.org>
3675
3676         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3677         (statemachine-glue.h): 
3678         * glib/examples/Makefile.am (example-service-glue.h) 
3679         (example-signal-emitter-glue.h): 
3680         * glib/Makefile.am (dbus-glib-error-switch.h): 
3681         Add libtool --mode=execute so we use the built library instead
3682         of any installed one.
3683
3684 2005-07-11  Colin Walters  <walters@verbum.org>
3685
3686         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3687         (dbus_g_value_types_init): Remove assertion.
3688         (dbus_g_value_get_g_type, dbus_g_value_open)
3689         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3690         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3691         functions related to DBusGValue.  Now we marshal/demarshal
3692         structures as GValueArray.
3693         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3694         structures.
3695         (signature_iter_to_g_type_array): Don't call
3696         signature_iter_to_g_type_struct.
3697         (signature_iter_to_g_type_struct): Delete.
3698         (dbus_gvalue_to_signature): Delete.
3699         (dbus_gvalue_to_signature): New function with same name as other
3700         one; we can convert structures to signatures.
3701         (demarshal_valuearray): New function.
3702         (get_type_demarshaller): Use it.
3703         (demarshal_recurse): Delete.
3704         (marshal_proxy): New function.
3705         (marshal_map): Warn if we can't determine signature from type.
3706         (marshal_collection_ptrarray): Ditto.
3707         (marshal_collection_array): Ditto.
3708         (get_type_marshaller): Use marshal_valuearray.
3709         (marshal_recurse): Delete.
3710         (_dbus_gvalue_test): Add some tests.
3711
3712         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3713         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3714         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3715         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3716         (dbus_g_value_free): Remove prototypes.
3717
3718         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3719         G_TYPE_VALUE_ARRAY.
3720
3721         * glib/examples/example-service.c:
3722         * glib/examples/example-client.c: Implement GetTuple.
3723
3724         * test/glib/test-dbus-glib.c:
3725         * test/glib/test-service-glib.c:
3726         * test/glib/test-service-glib.xml: Add structure tests.
3727
3728 2005-07-10  Colin Walters  <walters@verbum.org>
3729
3730         * doc/TODO: Knock off some GLib items with this patch.
3731
3732         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3733         (_dbus_gvalue_signals_error): New functions.
3734
3735         * glib/dbus-gvalue-utils.h: Prototype them.
3736
3737         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3738         and change to not output const/retval flags for input args.  All
3739         callers updated.
3740         (invoke_object_method): Refactor to handle return values.  Add
3741         some more comments in various places.  Remove debug g_print.
3742
3743         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3744
3745         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3746         Handle G_TYPE_NONE.
3747         (compute_gsignature): New function; refactored from code from
3748         compute_marshaller and compute_marshaller_name.  Enhance to
3749         handle return values and async ops more cleanly.  Update for
3750         async ops returning NONE instead of BOOLEAN.
3751         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3752         and output appropriate string.
3753         (generate_glue): Handle return value annotation.  Also don't dump
3754         constness flag for input arguments.
3755
3756         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3757         files shared between installed library and utilities.
3758         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3759         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3760         binding tool can access gtype utility functions.
3761
3762         * test/glib/test-service-glib.c: 
3763         * test/glib/test-service-glib.xml: 
3764         * test/glib/test-dbus-glib.c: Add some tests for return values.
3765
3766 2005-07-09  Colin Walters  <walters@verbum.org>
3767
3768         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3769         argument if available, not method.
3770
3771         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3772         (invoke_object_method): First, remove some redundant
3773         GValues (object_value, error_value) in favor of working on
3774         array directly.  Second, rework constness to be less buggy.
3775         Now we iterate directly over the argument metadata instead
3776         of parallel iterating over output signature and metadata.
3777
3778         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3779
3780         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3781         annotation on input args.
3782         
3783 2005-07-09  Colin Walters  <walters@verbum.org>
3784
3785         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3786         Define.
3787
3788         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3789         annotation.
3790
3791         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3792         (method_dir_signature_from_object_info): Handle arg_iterate change.
3793         (write_interface): Ditto.
3794         (lookup_object_info): Don't barf if format_version is > 0.
3795         (invoke_object_method): Handle arg constness.
3796
3797         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3798         (arg_info_new): Create.
3799         (arg_info_unref): Destroy.
3800         (arg_info_get_annotations, arg_info_get_annotation) 
3801         (arg_info_add_annotation): New functions.
3802
3803         * glib/dbus-gidl.h: Prototype them.
3804
3805         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3806         args, disallow them in properties.
3807         (parse_annotation): Handle arg annotations.
3808
3809         * test/glib/test-service-glib.xml: 
3810         * test/glib/test-service-glib.c: Update to make some methods
3811         const.
3812
3813 2005-07-08  Colin Walters  <walters@verbum.org>
3814
3815         * test/glib/test-service-glib.xml: 
3816         * test/glib/test-service-glib.c:
3817         * test/glib/test-dbus-glib.c: Test a{sv}.
3818
3819         * glib/examples/statemachine/statemachine.c:
3820         * glib/examples/statemachine/statemachine-server.c:
3821         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3822         add progress bar, etc.
3823
3824         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3825         needed anymore due to generic array/map marshalling.
3826         (dbus_g_value_types_init): Don't register basic arrays or the
3827         string/string hash.
3828         (dbus_gtype_from_signature_iter): Don't try to recurse into
3829         variants.
3830         (dbus_gtype_to_signature): Check collection/map before type
3831         metadata.
3832         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3833         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3834         generic map creation/append functions instead of hash table
3835         specifically.
3836         (get_type_demarshaller): Handle maps.
3837         (demarshal_collection): Dispatch on collection type to either
3838         demarshal_collection_ptrarray or demarshal_collection_array.
3839         (get_type_marshaller): Handle maps.
3840         (marshal_collection): Dispatch collection type to either
3841         marshal_collection_ptrarray or marshal_collection_array.
3842         (_dbus_gvalue_test): New test.
3843
3844         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3845         (hash_free_from_gtype): Use it to free GValues.
3846         (hashtable_append): New function.
3847         (ptrarray_append): Fix prototype.
3848         (slist_append): Ditto.
3849         (_dbus_gvalue_utils_test): Extend tests.
3850
3851         * glib/dbus-gtype-specialized.c
3852         (dbus_g_type_specialized_init_append): Renamed from
3853         dbus_g_type_specialized_collection_init_append.  Remove const from
3854         value, since we steal it.
3855         (dbus_g_type_specialized_map_append): New function.
3856
3857         * glib/dbus-gtype-specialized.h: Update prototypes.
3858         Add DBusGTypeSpecializedMapAppendFunc.
3859
3860         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3861         _dbus_gvalue_test.
3862         
3863         * glib/dbus-gtest.h: Prototype it.
3864
3865 2005-07-08  Ross Burton  <ross@openedhand.com>
3866
3867         * dbus/dbus-glib.h:
3868         Add DBysGAsyncData for the async bindings.
3869
3870         * glib/dbus-binding-tool-glib.c:
3871         Re-enable the async bindings.
3872
3873         * test/glib/test-dbus-glib.c:
3874         Add a test for the generated async bindings.
3875
3876 2005-07-08  Colin Walters  <walters@verbum.org>
3877
3878         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3879         connection concept.
3880         
3881 2005-07-08  Colin Walters  <walters@verbum.org>
3882         
3883         * tools/Makefile.am: Kill of print-introspect in favor of using
3884         dbus-send --print-reply=literal.
3885
3886         * test/glib/test-service-glib.xml: 
3887         * test/glib/test-service-glib.c (my_object_get_objs): New test
3888         for "ao".
3889
3890         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3891         (main): Test GetObjs.
3892
3893         * glib/examples/statemachine/Makefile.am:
3894         * glib/examples/statemachine/sm-marshal.list:
3895         * glib/examples/statemachine/statemachine-client.c:
3896         * glib/examples/statemachine/statemachine-server.c:
3897         * glib/examples/statemachine/statemachine-server.xml:
3898         * glib/examples/statemachine/statemachine.c:
3899         * glib/examples/statemachine/statemachine.h:
3900         * glib/examples/statemachine/statemachine.xml:
3901
3902         New example.
3903
3904         * glib/examples/example-service.c (main): Move invocation
3905         of dbus_g_object_type_install_info earlier, to emphasize it
3906         should only be done once.
3907
3908         * glib/examples/example-signal-emitter.c (main): Ditto.
3909
3910         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3911
3912         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3913         (dbus_gvalue_marshal): Update prototypes.
3914
3915         * glib/dbus-gvalue.c: Update all marshalling functions to take
3916         const GValue instead of GValue.
3917         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3918         types.
3919         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3920         change.
3921         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3922         Return a newly-allocated string.
3923         (demarshal_proxy, demarshal_object_path, demarshal_object)
3924         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3925         we get the wrong types from message.
3926         (get_type_demarshaller): New function, extracted from
3927         dbus_gvalue_demarshal.
3928         (demarshal_collection): New function, demarshals generic
3929         collection.
3930         (dbus_gvalue_demarshal): Just invoke result of
3931         get_type_demarshaller.  Throw error if we don't have one.
3932         (marshal_garray_basic): Abort on OOM.
3933         (get_type_marshaller): New function, extracted from
3934         dbus_gvalue_marshal.
3935         (collection_marshal_iterator, marshal_collection): New functions;
3936         implements generic marshalling for an iteratable specialized
3937         collection.
3938         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3939
3940         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3941         G_TYPE_STRING.
3942         (ptrarray_value_from_gvalue): Ditto.
3943         (ptrarray_append, ptrarray_free): New functions.
3944         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3945         (slist_append, slist_end_append, slist_free): New functions.
3946         (dbus_g_type_specialized_builtins_init): Add append fuctions
3947         for GPtrArray and GSList.  Register GSList.
3948         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3949
3950         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3951         New.
3952         (dbus_g_type_specialized_collection_init_append)
3953         (dbus_g_type_specialized_collection_append)
3954         (dbus_g_type_specialized_collection_end_append): Prototype.
3955         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3956         end_append_func.
3957
3958         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3959         (dbus_g_type_specialized_collection_append) 
3960         (dbus_g_type_specialized_collection_end_append): New functions.
3961         (dbus_g_type_map_value_iterate): Take const GValue.
3962         (dbus_g_type_collection_value_iterate): Ditto.
3963
3964         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3965         _dbus_gvalue_utils_test.
3966         
3967         * glib/dbus-gtest.h: Prototype it.
3968
3969         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3970         using uninitialized owner_list.
3971         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3972         public API.
3973         (dbus_g_proxy_end_call_internal): Update to use error set
3974         from dbus_gvalue_demarshal instead of setting it here.
3975         (dbus_g_proxy_begin_call): Move return_if_fail here.
3976
3977         * glib/dbus-gobject.c (write_interface): Update for
3978         dbus_gtype_to_signature returning new string.
3979
3980         * configure.in: Add glib/examples/statemachine.
3981
3982 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3983
3984         * configure.in: Add a configure option, --with-console-auth-dir
3985         
3986         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3987         new setting.  Patch from Kay Sievers.
3988
3989 2005-07-06  Colin Walters  <walters@verbum.org>
3990
3991         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3992         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3993         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3994         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3995         Delete in favor of dbus_g_proxy_begin_call and
3996         dbus_g_proxy_cancel_call.
3997         (DBusGProxyCall, DBusGProxyCallNotify): New.
3998         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3999         data, and destroy function.  This replaces
4000         dbus_g_pending_call_set_notify.
4001         (dbus_g_proxy_cancel_call): Prototype.
4002         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4003
4004         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4005         pending_calls map.
4006         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4007         internal proxy for calls to the bus. Remove
4008         pending_nameowner_calls, now the internal proxy keeps track.
4009         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4010         pending_nameowner_calls.
4011         (got_name_owner_cb): Update prototype, and use
4012         dbus_g_proxy_end_call.
4013         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4014         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4015         favor of using internal proxy.
4016         (dbus_g_proxy_manager_unregister): Update to use
4017         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4018         (dbus_g_proxy_init): Initialize pending calls map.
4019         (dbus_g_proxy_constructor): New.
4020         (dbus_g_proxy_class_init): Add get/set property functions,
4021         constructor, and add NAME, PATH, and INTERFACE properties.
4022         (cancel_pending_call): New function.
4023         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4024         cancel them.
4025         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4026         (GPendingNotifyClosure): New structure.
4027         (d_pending_call_notify, d_pending_call_free): Moved here from
4028         dbus-glib.c.
4029         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4030         ordering.
4031         (manager_begin_bus_call): New internal function for talking to
4032         internal bus proxy.
4033         (dbus_g_proxy_new): Construct object using GObjet properties.
4034         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4035         Create closure of same, and insert call into map of pending calls.
4036         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4037         call.  Look up pending call in current set.  Remove it when we've
4038         completed.
4039         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4040         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4041         and destroy function directly.
4042         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4043         (dbus_g_proxy_call): Invoke with NULL callback.
4044         (dbus_g_proxy_cancel_call): New function, replaces
4045         dbus_g_pending_call_cancel.
4046
4047         * glib/dbus-gparser.c (validate_signature): Fix call to
4048         dbus_set_g_error.
4049
4050         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4051         New quark for attaching metadata to GType.
4052         (info_hash): Delete.
4053         (lookup_object_info): Look up using quark.
4054         (dbus_g_object_type_install_info): Check that a type is classed,
4055         not that it's an object.  Also just install type data using quark
4056         instead of using global hash.
4057
4058         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4059         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4060         (GPendingNotifyClosure): Delete.
4061         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4062         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4063
4064         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4065         client method generation until we can fix it...
4066         
4067         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4068         (load_from_service_thread_func): Ditto.
4069
4070         * tools/dbus-names-model.c (struct NamesModel): Hold
4071         DBusGProxyCall.
4072         (have_names_notify): Update prototype, use
4073         dbus_g_proxy_cancel_call.
4074         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4075
4076         * tools/dbus-monitor.c (filter_func): Update for print_message
4077         API change.
4078
4079         * test/glib/test-dbus-glib.c: Add more tests for async
4080         invocations.  Update many begin_call/end_call pairs to just use
4081         dbus_g_proxy_call.
4082
4083         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4084         allows us to dump print-introspect.c.
4085
4086         * tools/dbus-print-message.h (print_message): Add literal argument
4087         to print_message which is intended to allow printing arguments without
4088         metadata like "string=".
4089
4090         * tools/dbus-print-message.c (print_iter): Add literal argument.
4091         (print_message): Allow printing string messages literally.
4092
4093 2005-07-05  Colin Walters  <walters@verbum.org>
4094
4095         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4096         Remove value refcount leak, original patch from Jorn Baayen
4097         <jorn@openedhand.com>.  Also remove useless extra value in favor
4098         of prepending to value array directly.
4099
4100 2005-07-02  Colin Walters  <walters@verbum.org>
4101
4102         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4103
4104 2005-07-01  Colin Walters  <walters@verbum.org>
4105
4106         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4107         
4108         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4109         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4110         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4111         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4112
4113 2005-06-30  Colin Walters  <walters@verbum.org>
4114
4115         * test/glib/test-dbus-glib.c:
4116         * test/glib/test-service-glib.c:
4117         * test/glib/test-service-glib.xml: Update tests for new error
4118         setting bits, also add async tests (patch from Ross Burton).
4119
4120         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4121         DBUS_GLIB_THREADS_LIBS.
4122
4123         * glib/dbus-gproxy.c (get_name_owner)
4124         (dbus_g_pending_call_end_valist): Ditto.
4125
4126         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4127         domain (GQuark) to DBusGErrorInfo.  
4128         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4129         quark in error_metadata.  Take message interface as default
4130         error message interface.
4131         (gerror_to_dbus_error_message): Pass message interface.
4132         (dbus_set_g_error): Resurrected.
4133         (dbus_g_error_info_free): New function.
4134         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4135         of _peek to actually create the object class if it hasn't been
4136         created yet.
4137         (dbus_g_error_domain_register): New function.
4138
4139         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4140
4141         * glib/dbus-gparser.c (validate_signature): Ditto.
4142
4143         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4144         (dbus_g_error_domain_register): Prototype.
4145
4146         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4147         Update tests.
4148
4149 2005-06-29  Colin Walters  <walters@verbum.org>
4150
4151         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4152         DBUS_TYPE_G_OBJECT_PATH.
4153
4154         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4155         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4156         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4157         (dbus_g_object_path_get_g_type): New function.
4158         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4159         to DBUS_TYPE_G_OBJECT_PATH by default.
4160         (demarshal_proxy): Remove unused name variable.
4161         (demarshal_object_path, marshal_object_path): New functions.
4162         (demarshal_proxy_array, marshal_proxy_array): Delete.
4163         
4164         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4165         DBUS_TYPE_G_OBJECT_PATH to char *.
4166         (dbus_g_type_get_lookup_function): Map builtin
4167         DBUS_TYPE_G_OBJECT_PATH.
4168
4169         * test/glib/test-dbus-glib.c
4170         * test/glib/test-service-glib.c (my_object_objpath): 
4171         Adapt tests to new object path marshalling.
4172
4173 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4174
4175         * configure.in: force check for Python >= 2.4
4176
4177 2005-06-29  Colin Walters  <walters@verbum.org>
4178         
4179         Patch from Ross Burton <ross@openedhand.com>
4180         
4181         * glib/dbus-gobject.c (invoke_object_method): Unset object
4182         value in all cases, not only in async case.
4183
4184 2005-06-29  Colin Walters  <walters@verbum.org>
4185
4186         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4187         name_call for keeping track of any outgoing GetNameOwner call.
4188         Also add for_owner and associated.
4189         (struct _DBusGProxyManager): Add owner_names, which is hash table
4190         that maps a base name to a list of names it owns (that we're
4191         interested in).  Add pending_nameowner_calls which is a list of
4192         all outstanding GetNameOwner; avoids us having to iterate over
4193         every proxy.  Add unassociated_proxies which keeps track of name
4194         proxies with no associated name owner.
4195         (dbus_g_proxy_manager_unref): Destroy owner_names.
4196         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4197         name refcounts.
4198         (find_name_in_info, name_owner_foreach)
4199         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4200         (dbus_g_proxy_manager_monitor_name_owner)
4201         (dbus_g_proxy_manager_unmonitor_name_owner)
4202         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4203         New functions; they manipulate the owner_names mapping.
4204         (got_name_owner_cb): New function.
4205         (get_name_owner): New function, extracted from
4206         dbus_g_proxy_new_for_name_owner.
4207         (dbus_g_proxy_manager_register): For now we need to keep track of
4208         all NameOwnerChanged.  Also if the proxy is for a name, if we
4209         don't already know the name owner, queue a new GetNameOwner
4210         request and add it to our list of unassociated proxies.  Otherwise
4211         inc the refcount.
4212         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4213         cancel any pending GetNameOwner call, etc.
4214         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4215         the owner_names mapping to look up the current names for the
4216         signal source, and dispatch to any proxies for that name.
4217         (dbus_g_proxy_new): Initialize new members.
4218         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4219         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4220         (dbus_g_pending_call_end_valist): New function, extracted from
4221         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4222         but want to use the GLib infrastructure.  Also note how many
4223         arguments in reply were over.
4224         (dbus_g_pending_call_end): New function, just call
4225         dbus_g_pending_call_end_valist.
4226         (dbus_g_proxy_end_call_internal): Just call
4227         dbus_g_pending_call_end_valist.
4228
4229         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4230         of builtin marshaller for STRING_STRING_STRING.
4231
4232         * test/glib/test-dbus-glib.c: 
4233         * test/glib/test-service-glib.c:
4234         * test/glib/test-service-glib.xml:
4235         Extend tests to cover name proxies, destruction of owner proxies,
4236         etc.
4237         
4238         * glib/examples/example-signal-recipient.c
4239         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4240         
4241         * tools/dbus-send.c (main): Print D-BUS error name in addition
4242         to message.
4243
4244 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4245
4246         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4247         cmessage_function_handler): Patch from 
4248         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4249         by using the Py_GILState_Ensure/Release to synchronize with the
4250         python runtime.
4251         
4252 2005-06-28  Ray Strode  <rstrode@redhat.com>
4253
4254         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4255         babysitter helper process on last unref, bug #2813.
4256
4257 2005-06-27  Colin Walters  <walters@verbum.org>
4258
4259         * test/glib/test-dbus-glib.c: 
4260         * test/glib/test-service-glib.c:
4261         * test/glib/test-service-glib.xml:
4262         Test hash table signal emitting.
4263
4264         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4265         types to their fundamental basis types, since this is what
4266         marshallers operate on.  Also add an entry for VOID__BOXED.
4267         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4268
4269 2005-06-26  Havoc Pennington  <hp@redhat.com>
4270
4271         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4272         from Don Park
4273
4274 2005-06-26  Colin Walters  <walters@verbum.org>
4275
4276         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4277         (dbus_g_error_set): New public function from its ashes; used by
4278         both service-side method implementation and GLib bindings
4279         internals.
4280         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4281         (_dbus_glib_test): Add some tests.
4282
4283         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4284
4285         * test/glib/test-service-glib.c (my_object_throw_error): Use
4286         dbus_g_error_set.
4287
4288         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4289         errors thrown by dbus_g_error_set.
4290
4291         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4292
4293         * glib/dbus-gparser.c (validate_signature): Ditto.
4294
4295         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4296         (dbus_g_proxy_end_call_internal): Ditto.
4297
4298         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4299         converts DBUS_ERROR_x to DBUS_GERROR_x.
4300         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4301
4302         * doc/TODO: Remove error TODO.
4303
4304         * doc/dbus-tutorial.xml: Update with documentation about error
4305         handling.
4306
4307         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4308         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4309         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4310
4311 2005-06-22  Colin Walters  <walters@verbum.org>
4312         
4313         Patch from Ross Burton <ross@openedhand.com>
4314
4315         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4316
4317 2005-06-20  Colin Walters  <walters@verbum.org>
4318
4319         * configure.in: Add glib/examples.
4320
4321         * glib/Makefile.am: Add examples/
4322
4323         * glib/examples/.cvsignore
4324         * glib/examples/Makefile.am
4325         * glib/examples/example-client.c
4326         * glib/examples/example-service.c
4327         * glib/examples/example-service.xml
4328         * glib/examples/example-signal-emitter.c
4329         * glib/examples/example-signal-emitter.xml
4330         * glib/examples/example-signal-recipient.c:
4331         New files; GLib binding examples, ported from
4332         python/examples.
4333
4334 2005-06-20  Colin Walters  <walters@verbum.org>
4335
4336         * dbus/dbus-glib.h: 
4337         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4338         dbus_g_proxy_call.
4339
4340         * glib/dbus-binding-tool-glib.c: 
4341         * doc/dbus-tutorial.xml: 
4342         * test/glib/test-dbus-glib.c: Update for rename.
4343         
4344 2005-06-20  Colin Walters  <walters@verbum.org>
4345
4346         Patch suggested by Ross Burton <ross@openedhand.com>
4347
4348         * glib/dbus-gobject.c (export_signals): Free signal name.
4349         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4350         memory leak.  Add a bit of documentation.
4351         (dbus_g_method_return_error): Free context, and note we do
4352         so.
4353
4354 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4355
4356         * dbus/dbus-glib.h:
4357         * glib/dbus-gobject.c:
4358         * glib/dbus-gproxy.c:
4359         * glib/dbus-gvalue.c: Predeclare structs as 
4360         typedef struct _Something Something instead of 
4361         typedef struct Something Something, so we can 
4362         redeclare the prototypes. Other GNOME libraries 
4363         do this already.
4364
4365 2005-06-17  Colin Walters  <walters@verbum.org>
4366
4367         * tools/dbus-names-model.c (have_names_notify): Fix call
4368         to dbus_g_proxy_end_call.
4369         
4370 2005-06-17  Colin Walters  <walters@verbum.org>
4371
4372         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4373         spew warnings if we get malformed remote signals.
4374
4375         * glib/dbus-gobject.c (propsig_iterate): New function.
4376         (lookup_object_info): New function, extracted from
4377         lookup_object_and_method.
4378         (introspect_properties, introspect_signals): Delete; these
4379         are merged into write_interface.
4380         (write_interface): Write out signals and properties here;
4381         dump the org.gtk.object stuff and use the interface given
4382         in the introspection data blob.  Also fix up property XML.
4383         (lookup_values): New function.
4384         (introspect_interfaces): Gather a mapping from interface to a
4385         list of its methods, signals, and properties, then write out
4386         each interface.
4387         (lookup_object_and_method): Use lookup_object_info.
4388         (struct DBusGSignalClosure): Add interface.
4389         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4390         we can just use the constant data.
4391         (dbus_g_signal_closure_finalize): Don't free signal name.
4392         (signal_emitter_marshaller): Use interface from signal closure.
4393         (export_signals): Only export signals mentioned in introspection
4394         blob.
4395         (dbus_g_connection_register_g_object): Warn if we have no
4396         introspection data for an object.
4397         (funcsig_equal): Remove unused variable.
4398         (dbus_g_object_register_marshaller): Take varargs instead of
4399         list.
4400         (dbus_g_object_register_marshaller_array): New function,
4401         extracted from old dbus_g_object_register_marshaller.
4402
4403         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4404         signals and property data.
4405         (write_quoted_string): New function, extracted from generate_glue.
4406         (generate_glue): Write signals and properties to introspection
4407         blob.
4408
4409         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4410         exported_signals and exported_properties.
4411         (dbus_g_object_register_marshaller): Update prototype.
4412         (dbus_g_object_register_marshaller_array): Prototype.
4413         
4414         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4415
4416         * test/glib/test-service-glib.c: Add new test signals and method
4417         to emit them.
4418
4419         * test/glib/test-service-glib.xml: Add some test signals.
4420
4421         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4422         and my-object-marshal.h
4423         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4424         my-object-marshal.c.
4425         (my-object-marshal.c, my-object-marshal.h): Implement.
4426
4427         * test/glib/.cvsignore: Update.
4428
4429         * doc/TODO: Remove two GLib TODO items fixed by this
4430         patch.
4431
4432 2005-06-16  Colin Walters  <walters@verbum.org>
4433
4434         * doc/TODO: Update for GLib bindings.
4435         
4436 2005-06-16  Colin Walters  <walters@verbum.org>
4437
4438         * glib/dbus-binding-tool-glib.c:
4439         * glib/dbus-gobject.c:
4440         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4441         from Ross Burton, for his GLib bindings work.
4442
4443 2005-06-16  Colin Walters  <walters@verbum.org>
4444
4445         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4446         to iterate instead of walking to G_TYPE_INVALID.
4447
4448         Patch based on a patch from Ryan Gammon.
4449
4450 2005-06-16  Colin Walters  <walters@verbum.org>
4451
4452         * bus/bus.c (bus_context_new): Set parser to NULL
4453         after we unref it (Patch from Chris Boscolo, #2174).
4454         
4455 2005-06-16  Colin Walters  <walters@verbum.org>
4456
4457         * python/dbus_bindings.pyx.in: Import size_t,
4458         __int64_t, __uint64_t, and __signed.
4459
4460         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4461         Define cmsg struct, output it.
4462         (_dbus_read_credentials_unix_socket):
4463         Use cmsg struct.
4464         
4465         Patch from Joe Markus Clarke for FreeBSD support.
4466         
4467 2005-06-16  Colin Walters  <walters@verbum.org>
4468
4469         * tools/dbus-send.c (append_array): Use strtok.
4470         (append_dict): New function.
4471         (type_from_name): New function, extracted from main.
4472         (main): Handle sending dicts.
4473
4474         * tools/dbus-print-message.c (print_iter): Print dict
4475         entries.
4476         
4477 2005-06-16  Colin Walters  <walters@verbum.org>
4478
4479         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4480         values as the empty string (#2948).
4481         
4482 2005-06-16  Colin Walters  <walters@verbum.org>
4483
4484         * dbus/Makefile.am:
4485         * mono/doc/Makefile.am:
4486         * test/glib/Makefile.am:
4487
4488         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4489
4490 2005-06-16  Colin Walters  <walters@verbum.org>
4491
4492         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4493         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4494
4495         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4496         Increment pointer after swapping fixed array.  Add assertion
4497         for array length.
4498                 
4499 2005-06-15  Colin Walters  <walters@verbum.org>
4500
4501         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4502         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4503         
4504 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4505
4506         * NEWS: Update to 0.34
4507
4508 2005-06-15  David Zeuthen  <davidz@redhat.com>
4509
4510         * configure.in (LT_CURRENT): Revert back to 1 as the library
4511         hasn't changed and we've certainly not committed to protocol
4512         stability yet.  All this does is to break ABI. See commit note
4513         from hp@redhat.com 2005-05-05 for details.
4514         
4515 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4516
4517         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4518         (_dbus_connection_run_builtin_filters): New method
4519         (dbus_connection_dispatch): Run the builtin filters which in turn
4520         runs the peer filter which handles Ping messages.
4521
4522         * doc/TODO: 
4523          - Ping isn't handled: This patch fixes it
4524          
4525          - Add a test case for the Ping message: added TODO item
4526
4527 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4528
4529         * dbus/dbus-message.c:
4530         (dbus_message_has_path): New method
4531         (dbus_message_has_interface): New method
4532         (dbus_message_has_member): New method
4533
4534         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4535         New method
4536
4537         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4538         the keyring directory is private to the user
4539
4540         * doc/TODO:
4541          - The convenience functions in dbus-bus.h should perhaps have
4542          the signatures that they would have if they were autogenerated
4543          stubs. e.g. the acquire service function. We should also evaluate
4544          which of these functions to include, in light of the fact that
4545          GLib/Qt native stubs will probably also exist.: Punted
4546
4547          - add dbus_message_has_path(), maybe has_member/interface:
4548          fixed in this patch
4549
4550          - in dbus-keyring.c, enforce that the keyring dir is not
4551          world readable/writable: Fixed in this patch
4552
4553 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4554
4555         * dbus/dbus-marshal-validate.h: Added a new validation
4556         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4557         out of memory errors when validating signitures
4558
4559         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4560         in places where we previously used DBUS_VALID and a FALSE return 
4561         value to indicate OOM
4562         
4563         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4564         Use a stack to track the number of elements inside containers.  The 
4565         stack values are then used to validate that dict entries have only two
4566         elements within them.
4567         (validate_body_helper): check the reason for failure when validating
4568         varients
4569         
4570         * dbus/dbus-message.c (load_message): use 
4571         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4572         DBUS_VALID and a FALSE return value to indicate OOM
4573
4574         * doc/TODO: remove "- validate dict entry number of fields" as this
4575         patch fixes it
4576
4577 2005-06-14  David Zeuthen  <davidz@redhat.com>
4578
4579         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4580         watches (if applicable) and add new watches
4581
4582         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4583         (main): Setup SIGIO signal handler if using D_NOTIFY
4584
4585         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4586
4587         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4588         (merge_included): Also merge conf_dirs list
4589         (bus_config_parser_unref): Clear conf_dirs list
4590         (include_dir): Add directory to conf_dirs list
4591         (bus_config_parser_get_conf_dirs): New function
4592
4593         * bus/dir-watch.[ch]: New files
4594
4595         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4596
4597         * configure.in: Add checks for D_NOTIFY on Linux
4598
4599 2005-06-14  Colin Walters  <walters@verbum.org>
4600
4601         * glib/dbus-binding-tool-glib.c:
4602         * glib/dbus-gobject.c:
4603         * glib/dbus-gvalue.c: Fix indentation and brace style.
4604         
4605 2005-06-14  Ross Burton <ross@openedhand.com>.
4606
4607         * glib/dbus-glib.h: Make DBusGMethodInvocation
4608         a private structure.  Rearrange prototypes a bit.
4609         
4610         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4611         documentation for first_arg_type.
4612         
4613         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4614         here, add documentation.  Move dbus_g_method_return
4615         and dbus_g_method_return_error into public API
4616         section.
4617
4618 2005-06-14  Colin Walters  <walters@verbum.org>
4619
4620         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4621         Add missing return statements, noticed by Ross Burton.
4622         
4623 2005-06-13  Ross Burton <ross@openedhand.com>.
4624
4625         * glib/dbus-gobject.c: Handle errors on message
4626         demarshalling by sending error message back.
4627         * glib/dbus-gvalue.c: Initialize return variables.
4628
4629 2005-06-13  Colin Walters  <walters@verbum.org>
4630
4631         * glib/Makefile.am: Fix thinko in last patch.
4632
4633 2005-06-13  Colin Walters  <walters@verbum.org>
4634
4635         * glib/Makefile.am: Move dbus-gtype-specialized.c
4636         and dbus-gtype-specialized.h into a _HEADERS variable,
4637         install them.
4638
4639 2005-06-12  Colin Walters  <walters@verbum.org>
4640
4641         Async signals and various bugfixes and testing by
4642         Ross Burton <ross@openedhand.com>.
4643
4644         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4645         (dbus_gvalue_genmarshal_name_from_type)
4646         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4647         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4648         (dbus_g_value_types_init, dbus_gtype_from_signature)
4649         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4650         (dbus_gtypes_from_arg_signature): New function prototypes.
4651         (dbus_gvalue_demarshal): Take context and error arguments.
4652         (dbus_gvalue_demarshal_variant): New function.
4653         (dbus_gvalue_demarshal_message): New function.
4654         (dbus_gvalue_store): Delete.
4655
4656         * glib/dbus-gvalue.c:
4657
4658         File has been almost entirely rewritten; now we special-case
4659         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4660         hash tables correctly, etc.  Full support for recursive values
4661         is not yet complete.
4662
4663         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4664         argument of signal to G_TYPE_POINTER since we now pass a
4665         structure.
4666         (lookup_g_marshaller): Delete in favor of
4667         _dbus_gobject_lookup_marshaller.
4668         (marshal_dbus_message_to_g_marshaller): Use
4669         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4670         to handle remote signal callbacks.
4671         (dbus_g_proxy_new_from_proxy): New function; creates a new
4672         DBusGProxy by copying an existing one.
4673         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4674         (dbus_g_proxy_get_path): New functions.
4675         (dbus_g_proxy_marshal_args_to_message): New function;
4676         factored out of existing code.
4677         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4678         from a varargs array.
4679         (dbus_g_proxy_begin_call_internal): New function.
4680         (dbus_g_proxy_end_call_internal): New function.
4681         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4682         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4683         after collecting args into value array.
4684         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4685         invoke dbus_g_proxy_end_call_internal.
4686         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4687         end_call_internal.
4688         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4689         types.
4690         (array_free_all): New function.
4691         (dbus_g_proxy_add_signal): Take GTypes.
4692
4693         * glib/dbus-gobject.h:
4694         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4695         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4696         Prototype.
4697
4698         * glib/dbus-gobject.c: Add a global marshal_table hash which
4699         stores mappings from type signatures to marshallers.  Change lots
4700         of invocations of dbus_gtype_to_dbus_type to
4701         dbus_gtype_to_signature.
4702         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4703         (introspect_signals): Fix test for query.return_type.
4704         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4705         (invoke_object_method): Many changes.  Handle asynchronous
4706         invocations.  Convert arguments with
4707         dbus_gvalue_demarshal_message.  Handle errors.  Use
4708         DBusSignatureIter instead of strlen on args. Handle all arguments
4709         generically.  Special-case variants.
4710         (dbus_g_method_return, dbus_g_method_return_error): New function.
4711         (DBusGSignalClosure): New structure, closes over signal
4712         information.
4713         (dbus_g_signal_closure_new): New function.
4714         (dbus_g_signal_closure_finalize): New function.
4715         (signal_emitter_marshaller): New function; is special marshaller
4716         which emits signals on bus.
4717         (export_signals): New function; introspects object signals and
4718         connects to them.
4719         (dbus_g_object_type_install_info): Take GType instead of
4720         GObjectClass.
4721         (dbus_g_connection_register_g_object): Invoke export_signals.
4722         (dbus_g_connection_lookup_g_object): New function.
4723         (DBusGFuncSignature) New structure; used for mapping type
4724         signatures to marshallers.
4725         (funcsig_hash): New function; hashes DBusGFuncSignature.
4726         (funcsig_equal): New function; compares DBusGFuncSignature.
4727         (_dbus_gobject_lookup_marshaller): New function.
4728         (dbus_g_object_register_marshaller): New function; used to
4729         register a marshaller at runtime for a particular signature.
4730
4731         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4732
4733         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4734         which notes a server method implementation should be
4735         asynchronous.
4736
4737         * glib/dbus-binding-tool-glib.c
4738         (dbus_binding_tool_output_glib_server): Call
4739         dbus_g_value_types_init.
4740         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4741         variants specially.
4742         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4743         of a lookup function.
4744         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4745         (write_untyped_out_args): New method; write output arguments.
4746         (write_formal_declarations_for_direction): Function for
4747         writing prototypes.
4748         (write_formal_parameters_for_direction): Function for
4749         writing implementations.
4750         (write_typed_args_for_direction): Function for writing
4751         arguments prefixed with GTypes.
4752         (write_async_method_client): Write out async version
4753         of method.
4754
4755         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4756         (dbus_g_type_get_marshal_name): Move mapping from GType
4757         to marshal name into here.
4758         (dbus_g_type_get_c_name): Move into here.
4759         (compute_marshaller): Convert signature to type with
4760         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4761         (compute_marshaller_name): Ditto.
4762         (compute_marshaller): Handle async signal annotations.
4763         (gather_marshallers): Return if we don't have a known
4764         prefix.
4765         (generate_glue): Collect introspection blob here, and
4766         write all of the blob at the end.  This allows an object
4767         with multiple interfaces to work.
4768         Mark async methods in introspection blob.
4769
4770         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4771         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4772         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4773
4774         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4775         avoids people accidentally using DBUS_TYPE_* which should
4776         not be necessary anymore.
4777         Do include dbus-gtype-specialized.h, which are utilities
4778         for GLib container types.
4779         Add various #defines for types such as
4780         DBUS_TYPE_G_BOOLEAN_ARRAY.
4781         (DBusGValueIterator, DBusGValue): Define, not fully used
4782         yet.
4783         (dbus_g_value_get_g_type): Type for recursive value.
4784         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4785         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4786         (dbus_g_value_free): Prototypes.
4787         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4788         (dbus_g_proxy_set_interface): Prototype.
4789         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4790         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4791         types.
4792         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4793         Accessors.
4794         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4795         doing async invocations.
4796         (dbus_g_method_return, dbus_g_method_return_error):
4797         Prototypes.
4798         * doc/dbus-tutorial.xml: Update GLib section.
4799         
4800         * tools/dbus-viewer.c (load_child_nodes): Update
4801         for new invocation type of dbus_g_proxy_end_call.
4802         (load_from_service_thread_func): Ditto.
4803
4804         * tools/print-introspect.c (main): Ditto.
4805
4806         * tools/dbus-names-model.c (have_names_notify)
4807         (names_model_reload, names_model_set_connection)
4808         Use GTypes.
4809
4810         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4811         needed since Python bindings use GLib bindings.
4812
4813         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4814         Add --prefix argument.
4815
4816         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4817         unneeded --ignore-unsupported arg.
4818         
4819         * test/glib/test-service-glib.c: 
4820         * test/glib/test-service-glib.xml:
4821         * test/glib/test-dbus-glib.c: Add many more tests.
4822
4823 2005-06-06  David Zeuthen  <davidz@redhat.com>
4824
4825         * doc/TODO: Add item about need to remove deprecated functions.
4826
4827         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4828
4829         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4830         to repair the ABI which was broken with the last commit.
4831
4832 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4833
4834         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4835         (dbus_connection_disconnect): renamed to dbus_connection_close 
4836         for API symmetry with dbus_connection_open
4837         (_dbus_connection_open_internal): 
4838         s/dbus_connection_disconnect/dbus_connection_close
4839
4840         * dbus/dbus-bus.c (dbus_bus_get):
4841         s/dbus_connection_disconnect/dbus_connection_close
4842
4843         * bus/connection.c (bus_connections_unref, 
4844         bus_connections_setup_connection, bus_connections_expire_incomplete):
4845         s/dbus_connection_disconnect/dbus_connection_close
4846
4847         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4848         kill_client_connection_unchecked, check_hello_connection):
4849         s/dbus_connection_disconnect/dbus_connection_close
4850
4851         * bus/bus.c (new_connection_callback):
4852         s/dbus_connection_disconnect/dbus_connection_close
4853
4854         * tools/dbus-send.c (main):
4855         s/dbus_connection_disconnect/dbus_connection_close
4856
4857         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4858         s/dbus_connection_disconnect/dbus_connection_close
4859         
4860         * test/test-service.c (path_message_func, filter_func):
4861         s/dbus_connection_disconnect/dbus_connection_close
4862         
4863         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4864         
4865 2005-05-25  Colin Walters  <walters@verbum.org>
4866
4867         * dbus/dbus-protocol.h: Move various bus service #defines such
4868           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4869           dbus/dbus-shared.h.
4870         * dbus/dbus-shared.h: Various defines moved here.
4871         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4872
4873 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4874
4875         * python/__init__.py: Python bindings deserve a minor version
4876         update.  Upped to (0, 40, 2)
4877
4878 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4879
4880         * python/decorators.py: add explicitly_pass_message decorator
4881         for passing in the dbus message as keyword for edge case signal
4882         handling
4883
4884         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4885         to conform with what dbus expects for match rules
4886         (SignalMatchRule.execute): add the dbus message as a keyword
4887         if the signal handler has requested it
4888
4889         * python/examples/example/signal-recipient.py: added some more
4890         examples on how to hook up to signals
4891
4892 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4893
4894         * python/decorators.py: import dbus_bindings
4895
4896         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4897         SignalMatchNode): new classes that implement wildcard signal
4898         callback matching using a tree lookup. Heavily modified from a
4899         patch sent by Celso Pinto (fd.o bug #3241)
4900
4901         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4902         use new match classes to handle signals.
4903
4904 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4905         
4906         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4907
4908 2005-05-18  Havoc Pennington  <hp@redhat.com>
4909
4910         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4911         gettext. Not really worth requiring yet perhaps, but any
4912         production quality 1.0 would require it so we should go ahead and
4913         get things set up. We do have a couple token calls to
4914         bindtextdomain in the code already.
4915
4916 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4917
4918         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4919         when using recursive g_main_loops
4920
4921         * python/_dbus.py (class Bus): add the ProxyObjectClass
4922         alias for ProxyObject to make it easier for the Twisted 
4923         networking framework to integrate dbus.
4924
4925         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4926         alias for ProxyMethod to make it easier for the Twisted 
4927         networking framework to integrate dbus. 
4928
4929 2005-05-11  Ross Burton  <ross@openedhand.com>
4930
4931         * glib/dbus-glib-tool.c: Add --prefix argument.
4932         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4933         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4934         Add prefix argument.
4935         (generate_glue): Pass prefix argument down.
4936         (dbus_binding_tool_output_glib_server): Pass prefix to
4937         glib-genmarshal.
4938         
4939 2005-05-11  Colin Walters  <walters@verbum.org>
4940
4941         * tools/dbus-send.c (append_array): New function.
4942         (append_arg): Broken out from main.
4943         (main): Add cheesy hack to send arrays and variants.
4944         (usage): Update.
4945         * tools/dbus-print-message.c (print_iter): Broken out
4946         from main.
4947
4948 2005-05-11  Colin Walters  <walters@verbum.org>
4949
4950         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4951         New function, returns signature string for signature iter.
4952         * dbus/dbus-signature.h: Prototype it.
4953         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4954         New function, returns signature string for message iter.
4955         (dbus_message_iter_get_array_len): New function, returns
4956         length of array.
4957         (dbus_message_iter_get_fixed_array): Fix assertion; this
4958         function should be used when the iter is pointing to the
4959         contents of an array
4960         * dbus/dbus-message.h: Prototypes.
4961         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4962         New function; returns length of an array.
4963         * dbus/dbus-marshal-recursive.h: Prototype it.
4964         
4965 2005-05-11  Colin Walters  <walters@verbum.org>
4966
4967         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4968         compilation error.
4969         
4970 2005-05-08  Havoc Pennington  <hp@redhat.com>
4971
4972         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4973         daemon's pid, not the parent's pid, to the file descriptor.
4974         Reported by Taj Morton.
4975
4976 2005-05-05  Havoc Pennington  <hp@redhat.com>
4977
4978         * configure.in (LT_*): add notes on how the libtool versioning
4979         works to save thinking. Increment soname to indicate protocol
4980         breakage (though really the library interface hasn't changed I
4981         guess)
4982
4983         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4984         verify the GUID received from server matches what we were
4985         expecting, if we had an expectation
4986
4987         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4988         (_dbus_auth_get_guid_from_server): new function
4989         (send_begin): parse the OK args
4990
4991         * doc/dbus-specification.xml: add GUID to the auth protocol
4992
4993 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4994
4995         * Fix my name in previous changelog ;)
4996
4997         * python/proxies.py (ProxyObject.__getattr__): add further patch
4998         from Anthony Baxter to throw an AttributeError when python 
4999         __special__ functions are called instead of marshling them over 
5000         the bus (Bug#1685 comment 3).
5001
5002 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5003
5004         * python/Makefile.am: changed to use pyexecdir for the binding
5005         shared libraries (Bug#2494)
5006
5007         * python/exceptions.py: bring exceptions over from the bindings
5008         so they can be used in applications (Bug#2036)
5009         Make all exceptions derive from DBusException
5010
5011         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5012         of classes so that print obj doesn't throw an exception (Bug #1685)
5013
5014 2005-05-03  Ross Burton  <ross@openedhand.com>
5015
5016         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5017         Return if we get an error during registration.  Set up a
5018         weak reference on object to unregister if object is destroyed.
5019         (unregister_gobject): New function.
5020         
5021 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5022
5023         * python/dbus_bindings.pyx.in: 
5024         - added new type classes for hinting to the marashaler what type 
5025         to send over the wire
5026         - added int16 and uint16 marshalers
5027         - Fixed a bug in the type constants that caused int32 to go out
5028         as uint16 over the wire
5029         * python/dbus.py: split up into different files and renamed _dbus.py
5030         * python/__init__.py, python/_util.py, python/decorators.py, 
5031         python/exceptions.py, python/proxies.py, python/services.py,
5032         python/types.py: new files split off from dbus.py
5033         * python/Makefile.am: Add new files, remove dbus.py and 
5034         install all python files to <python module dir>/dbus
5035         * python/examples/*: Added #!/usr/bin/env python to the top of
5036         every example.  Patch provided by Tatavarty Kalyan
5037
5038 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5039
5040         * NEWS: Update to 0.33
5041
5042 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5043
5044         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5045         method for doing async calls
5046         (_pending_call_notification): New C function for handling pendning call
5047         callbacks
5048         (set_notify): New method for setting pending call notification
5049         
5050         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5051         Async capabilities added to remote method calls
5052         (Sender): class removed
5053         (RemoteService): class removed
5054         (ObjectTree): class removed for now
5055         (RemoteObject): Renamed to ProxyObject
5056         (RemoteMethod): Renamed to ProxyMethod
5057         (method): Decorator added for decorating python methods as dbus methods
5058         (signal): Decorator added for decorating python methods as signal emitters
5059         (ObjectType): Metaclass added for generating introspection data and the
5060         method callback vtable
5061         (Interface): Wrapper class added to wrap objects in a dbus interface
5062         (Object): Uses ObjectType as its metaclass and exports Introspect
5063         of the org.freedesktop.DBus.Introspectable interface
5064         (ValidationException, UnknownMethodException): new exceptions
5065
5066         * python/examples/*: Modified to fit with the new bindings
5067
5068 2005-04-23  Havoc Pennington  <hp@redhat.com>
5069
5070         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5071         reported by Tony Houghton
5072
5073         * test/test-service.c (main): test
5074         dbus_connection_get_object_path_data()
5075
5076         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5077         the exact_match
5078         (_dbus_object_tree_get_user_data_unlocked): new function used by
5079         dbus_connection_get_object_path_data()
5080         (do_register): add assertion test for get_user_data_unlocked
5081         (object_tree_test_iteration): more tests
5082
5083         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5084         new function from Dan Reed to let you get the user data from 
5085         dbus_connection_register_object_path()
5086
5087 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5088
5089         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5090         in numerous places that did not account for the NULL terminator
5091         (signature_from_seed): changed the manual string copy loop to 
5092         just use strcpy instead
5093         make check should now pass
5094
5095 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5096
5097         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5098         so that it allows messages that are not signals to pass in 
5099         NULL as the interface.
5100
5101 2005-04-18  David Zeuthen  <davidz@redhat.com>
5102
5103         * glib/dbus-gmain.c (io_handler_destroy_source): 
5104         (timeout_handler_destroy_source, connection_setup_free): 
5105         Also unref the source to avoid memory leaks.
5106
5107 2005-04-13  David Zeuthen  <davidz@redhat.com>
5108
5109         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5110         more reasonable, yet still totally arbitrary, value :-). 
5111
5112 2005-04-13  David Zeuthen  <davidz@redhat.com>
5113
5114         * doc/TODO: Added an "important for 1.0" item about selinux
5115         allow/deny messages
5116
5117 2005-04-13  David Zeuthen  <davidz@redhat.com>
5118
5119         * bus/selinux.c: Add c-file-style to top of file
5120         (log_audit_callback): Don't free the data here anymore
5121         (bus_selinux_check): Don't take spid and tpid since appending
5122         that to auxdata may OOM.
5123         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5124         to the caller if we are OOM by taking an error object.
5125         (bus_selinux_allows_send): -do-
5126
5127         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5128         and bus_selinux_allows_send
5129
5130         * bus/bus.c (bus_context_check_security_policy): Pass error and
5131         pass on OOM thrown by bus_selinux_allows_send()
5132
5133         * bus/services.c (bus_registry_acquire_service): Pass error and
5134         pass on OOM thrown by bus_selinux_allows_acquire_service()
5135
5136 2005-04-13  Havoc Pennington  <hp@redhat.com>
5137
5138         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5139         message at a time to avoid monopolizing the main loop, bug 
5140         #2953 from Benjamin Otte
5141
5142 2005-04-09  Havoc Pennington  <hp@redhat.com>
5143
5144         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5145         possible overlap, fix from Daniel Reed
5146         (fixup_alignment): fix signedness warnings
5147         (_dbus_string_append_unichar): ditto
5148
5149 2005-04-09  Havoc Pennington  <hp@redhat.com>
5150
5151         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5152
5153         * glib/dbus-glib-tool.c (main): fix warning
5154
5155         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5156
5157         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5158         add a new function that can be used in simple applications that
5159         don't have a main loop and are willing to block
5160
5161 2005-04-05  David Zeuthen  <davidz@redhat.com>
5162
5163         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5164
5165         * glib/dbus-gmain.c:
5166         (io_handler_destroy_source): Remove from list of IO handlers
5167         of the ConnectionSetup object
5168         (timeout_handler_destroy_source): -do- for timeout handlers
5169         (io_handler_source_finalized): Don't remove from list since
5170         we now do that in io_handler_destroy_source(). Renamed from
5171         io_handler_source_destroyed
5172         (timeout_handler_source_destroyed): -do- for timeout handlers
5173         (connection_setup_free): It is now safe to iterate over all
5174         IO and timeout handlers as the _destroy_source removes them
5175         from the list synchronously
5176
5177 2005-03-30  Havoc Pennington  <hp@redhat.com>
5178
5179         * configure.in: change check to gtk 2.4
5180
5181         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5182         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5183         to 2.4
5184
5185 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5186
5187         * News: Update 0.32
5188
5189         * HACKING: Fixed realease instructions.  configure.in should be updated to
5190           the next release by the person who made the last release.
5191
5192 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5193
5194         * python/lvalue_cast_post_process.py - removed.  Patch has been
5195           submitted to Pyrex maintainers that fixes gcc4.0 errors
5196
5197         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5198
5199 2005-03-24  Daniel Reed  <n@ml.org>
5200
5201         * tools/Makefile.am: Make print-introspect and
5202         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5203
5204 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5205
5206         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5207
5208         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5209           had in Red Hat packages for a while but for some reason never 
5210           got merged upstream
5211           (_dbus_is_a_number): New checks if a string
5212           can be converted to a number and does the conversion if it can
5213           (_dbus_user_database_lookup): Add check to see if the given username
5214           is a udi.  This allows udi's to be used instead of usernames in the
5215           config file.
5216           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5217           is a gdi.  This allows gdi's to be used instead of groupnames in the
5218           config file.
5219
5220 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5221
5222         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5223           code so that it compiles with gcc4.0
5224
5225         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5226           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5227           results back to dbus_binding.c
5228
5229 2005-03-20  Colin Walters  <walters@verbum.org>
5230
5231         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5232
5233         * configure.in: Require GTK+ 2.6.
5234         
5235 2005-03-20  Colin Walters  <walters@verbum.org>
5236
5237         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5238
5239 2005-03-17  Tom Parker  <palfrey@tevp.net>
5240
5241         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5242         print DBUS_UID_UNSET; instead print passed username.  Also
5243         be sure to actually use gid looked up in cache.
5244         
5245         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5246         for DBUS_GID_UNSET and groupname.
5247
5248 2005-03-17  Colin Walters  <walters@verbum.org>
5249
5250         * bus/print-introspect.c: Move to tools/.
5251         * bus/run-with-tmp-session-bus.sh: Ditto.
5252         
5253         * glib/Makefile.am (dbus-glib-bindings.h): Move
5254         generation to tools/Makefile.am.
5255
5256         * test/glib/run-test.sh: Update to handle move
5257         of run-with-tmp-session-bus.sh.
5258
5259         * test/glib/test-service-glib.c: Update to handle
5260         move of dbus-glib-bindings.h.
5261
5262         * tools/print-introspect.c: Moved here
5263         from bus/, and ported to GLib bindings.
5264
5265         * tools/run-with-tmp-session-bus.sh: Moved here
5266         from bus/.
5267
5268         * tools/Makefile.am: Generate dbus-glib-bindings.h
5269         and dbus-bus-introspect.xml here.
5270
5271         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5272         Update.
5273
5274 2005-03-17  Colin Walters  <walters@verbum.org>
5275
5276         * bus/driver.c (write_args_for_direction): Use
5277         _dbus_string_get_const_data to retrieve string;
5278         _dbus_string_get_const_data_len doesn't actually return
5279         a NULL-terminated substring.
5280
5281         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5282         (main): Change to use org_freedesktop_DBus_request_name
5283         instead of using g_proxy_begin_call/end_call.
5284
5285 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5286
5287         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5288         generating the finalizer.  Fixes from Ben Maurer.
5289
5290 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5291
5292         * mono/BusDriver.cs: Update method names: ListServices
5293         becomes ListNames; GetOwner becomes GetNameOwner.
5294
5295         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5296         onto the eval stack when removing the delegate.
5297
5298 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5299
5300         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5301         LT_CURRENT.  Set it to the autoconf variable.
5302                                                                                 
5303         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5304         classes that disconnects the signal handler delegate from the
5305         service object.  Fixes a big leak of proxy objects on the
5306         client side of things.  Patch from Ben Maurer
5307         <bmaurer@ximian.com>
5308
5309 2005-03-12  Colin Walters  <walters@verbum.org>
5310
5311         * bus/driver.c (write_args_for_direction): New function,
5312         parses a type signature into arguments and outputs to
5313         XML.
5314         (bus_driver_handle_introspect): Use it instead of
5315         hardcoding XML for certain signatures.
5316         
5317         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5318         dependency on dbus-daemon.
5319
5320         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5321         argument, pass it to dbus_binding_tool_output_glib_client.
5322
5323         * glib/dbus-binding-tool-glib.c
5324         (generate_client_glue): Protect against multiple inclusion.
5325         (dbus_binding_tool_output_glib_client): Add
5326         G_BEGIN_DECLS/G_END_DECLS.
5327
5328         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5329         Change to just take iface prefix directly.
5330         (write_formal_parameters): Clarify error message.
5331         (check_supported_parameters): New function; checks to see type
5332         signatures of method parameters are supported.
5333         (generate_client_glue): Handle ignore_unsupported flag.
5334         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5335         parameter.
5336
5337         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5338         --ignore-unsupported by default until glib bindings
5339         support arrays.
5340
5341 2005-03-11  Colin Walters  <walters@verbum.org>
5342
5343         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5344         install it.
5345
5346         * bus/print-introspect.c: New file; prints introspection
5347         data for a given name and object path.
5348
5349         * bus/run-with-tmp-session-bus.sh: New file, refactored
5350         from test/glib/run-test.sh.  Creates a temporary session
5351         bus and runs another program.
5352
5353         * test/glib/run-test.sh: Refactor to invoke
5354         run-with-tmp-session-bus.sh.
5355
5356         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5357         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5358         macros instead of hardcoding.
5359
5360         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5361
5362 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5363
5364         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5365         this unref; it doesn't match up evenly in some codepaths.
5366         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5367         this evenly matches with the ref near the top of this function.
5368
5369 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5370
5371         * dbus/dbus-object-tree.c
5372         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5373         and we try to unregister a path that's not registered, still go
5374         through the process of unlocking and don't just return.
5375
5376 2005-03-09  Colin Walters  <walters@verbum.org>
5377
5378         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5379         to this are generated for client-side wrappers.  Invokes a
5380         D-BUS method and returns reply values.  
5381
5382         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5383         function; writes signature string for argument direction.
5384         (write_args_for_direction): Change to pass input values directly
5385         instead of via address, and fix indentation.
5386         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5387         make generated wrappers inlineable.
5388
5389         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5390         note about using dbus_type_is_fixed.
5391
5392         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5393         dbus/dbus-signature.c as dbus_type_is_fixed.
5394
5395         All callers updated.
5396
5397         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5398         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5399
5400         * dbus/dbus-signature.h: Prototype.
5401
5402         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5403         error printf code.
5404
5405         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5406         appropriate instead of just freeing it.
5407         (main): Free returned strings using g_free.
5408
5409         * test/glib/Makefile.am (test-service-glib-glue.h)
5410         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5411
5412         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5413         simply maps a simple D-BUS type to GType.
5414         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5415         GType.
5416         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5417         initialize the value with it.
5418         (dbus_gvalue_binding_type_from_type): Unused, delete.
5419         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5420         various types instead of unmarshalling to value data directly.
5421         Remove can_convert boolean.
5422         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5423         returning directly instead of using can_convert boolean.
5424         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5425         Stores a GValue in a pointer to a value of its corresponding C
5426         type.
5427
5428         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5429         add dbus_gvalue_store.
5430
5431 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5432
5433         Fix a bunch of lifecycle and memory management problems
5434         in the mono bindings.
5435
5436         * mono/Arguments.cs (Arguments): Implement IDisposable
5437
5438         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5439         strictly a static class.
5440
5441         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5442         delegates into this file.
5443         (Connection): Implement IDisposable.
5444         (Dispose): Disconnect the connection and set the raw connection
5445         pointer to IntPtr.Zero.
5446         (~Connection): Call Dispose().
5447         (RegisterObjectPath): Added.  Manages the registration of object
5448         paths so we can cleanly disconnect them at dispose/finalize time.
5449         (UnregisterObjectPath): Ditto.
5450         (set_RawConnection): Unregister all of the object paths when
5451         changing the underlying DBusConnection.  Add them back onto the
5452         new connection, if any.
5453
5454         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5455         more unmanaged resources anymore, so it's not necessary.  Move all
5456         the DBusObjectPathVTable stuff out of here.
5457         (Handler): Save references to our delegates so that they don't get
5458         finalized.  Call Connection.RegisterObjectPath() instead of
5459         dbus_connection_register_object_path() directly.
5460         (Message_Called): Dispose the message after we're finished with
5461         it.
5462
5463         * mono/Message.cs (Message): Implement IDisposable.
5464         (Dispose): Dispose the Arguments, and set the RawMessage to
5465         IntPtr.Zero.
5466         (SendWithReplyAndBlock): We own the ref to the reply that comes
5467         back from dbus_connection_send_with_reply_and_block() so add a
5468         comment about that and unref it after we've constructed a managed
5469         MethodReturn class around it.  Fixes a big, big leak.
5470
5471         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5472         method.
5473         (BuildSignalHandler): After we've sent the Signal message, dispose
5474         of it.
5475         (BuildMethod): Dispose of the method call and reply messages after
5476         we've sent the message and extracted the data we want from the
5477         reply.
5478
5479         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5480         anymore.
5481         (Service_FilterCalled): Dispose of the message after we're
5482         finished with it.
5483
5484 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5485
5486         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5487         After we attach our pending call to the connection, unref
5488         it.  Fixes a leak.
5489  
5490         * mono/Connection.cs (set_RawConnection): Disconnect our
5491         filter and match callbacks from the old connection and
5492         reconnect them to the new connection, if any.
5493
5494         * mono/DBusType/Array.cs: "Code" is a static member, so
5495         don't use "this" to refer to it.  Fix for stricter checking
5496         in Mono 1.1.4.
5497  
5498         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5499         object path that we pass into unmanaged code.
5500  
5501         * mono/DBusType/String.cs (Append): Don't leak the string
5502         that we pass into unmanged code.
5503
5504 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5505         * NEWS: Update for 0.31
5506
5507         * configure.in: Release 0.31
5508         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5509
5510         * qt/Makefile.am: fixed build
5511
5512         * dbus/Makefile.am: soname bump for libdbus
5513
5514         * glib/Makefile.am: soname bump for libdbus-glib
5515
5516 2005-03-05  Havoc Pennington  <hp@redhat.com>
5517
5518         * dbus/dbus-sysdeps.c:
5519         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5520         value
5521         (_dbus_generate_random_bytes_buffer): fix return value
5522
5523         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5524         checks actually work, from Tom Parker <fdo@tevp.net>
5525
5526 2005-03-01  Colin Walters  <walters@verbum.org>
5527
5528         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5529         functions copied from dbus-glib-tool.c.
5530         (main): Convert lots of error code to use them.
5531         Also add some testing for introspection bits.
5532
5533 2005-03-01  Colin Walters  <walters@verbum.org>
5534         
5535         * doc/TODO: Remove introspection signature TODO.
5536
5537 2005-02-27  Colin Walters  <walters@verbum.org>
5538
5539         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5540         Change return value to const char * instead of int so we can do
5541         full signatures.
5542         (struct PropertyInfo, struct ArgInfo): Store char *.
5543         (property_info_new, arg_info_new): Update parameters, strdup.
5544         (property_info_unref, arg_info_unref): Free.
5545
5546         * glib/dbus-gidl.h: Update prototypes.
5547
5548         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5549         (validate_signature): New function, just validates signature and
5550         sets GError.
5551         (parse_property, parse_arg): Invoke validate_signature.  Store
5552         signature instead of just type code.
5553
5554         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5555         function to return a primary type for a signature, dropping
5556         information about types in container types.
5557         (dbus_gvalue_genmarshal_name_from_type)
5558         (dbus_gvalue_binding_type_from_type)
5559         (dbus_gvalue_ctype_from_type): Update to take full signature
5560          instead of type code.
5561         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5562
5563         * glib/dbus-gvalue.h: Update prototypes for above.
5564
5565         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5566         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5567         (introspect_properties, introspect_signals, write_interface):
5568         Update to handle signatures, and remove usage of
5569         _dbus_gutils_type_to_string.
5570         (handle_introspect): Print out type codes instead of e.g. "string"
5571         in hardcoded introspection XML; also use x_AS_STRING constants
5572         instead of hardcoding in string.
5573
5574         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5575         to string.  Remove usage of _dbus_gutils_type_to_string.
5576
5577         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5578
5579         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5580         deletion.
5581         
5582         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5583         (compute_marshaller_name, generate_glue): Handle signature change
5584         to string.
5585         (write_formal_parameters, write_args_for_direction): Ditto, and
5586         remove FIXME.
5587
5588         * tools/dbus-tree-view.c (type_to_string): Delete.
5589         (info_set_func_text): Update to print full signatures.
5590
5591         * test/glib/test-service-glib.xml: Change types to new
5592         introspection format.
5593
5594 2005-02-26  Havoc Pennington  <hp@redhat.com>
5595
5596         * doc/TODO: remove the "guid" item
5597
5598         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5599         (with_bus_thread_func): use open_private
5600
5601         * dbus/dbus-connection.c (dbus_connection_open_private): new
5602         function that works like the old dbus_connection_open()
5603         (dbus_connection_open): now returns an existing connection if
5604         possible
5605
5606         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5607         through the GUID to the transport
5608
5609         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5610         GUID in hex-encoded form.
5611
5612         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5613         pass GUID argument in to the transport
5614
5615         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5616         guid argument
5617
5618         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5619
5620         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5621
5622 2005-02-25  Havoc Pennington  <hp@redhat.com>
5623
5624         * doc/dbus-specification.xml: document the GUID thing
5625
5626         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5627         globally unique ID for the server, and put a "guid=hexencoded"
5628         field in the address
5629
5630         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5631
5632         * dbus/dbus-message.c: ditto
5633
5634         * dbus/dbus-dataslot.c: ditto
5635
5636         * dbus/dbus-list.c: ditto
5637
5638         * dbus/dbus-internals.h: wait, just include
5639         dbus-threads-internal.h here
5640         
5641         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5642         use in main library
5643
5644         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5645
5646 2005-02-24  Colin Walters  <walters@verbum.org>
5647
5648         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5649
5650 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5651
5652         * glib/Makefile.am: added dbus-gobject.h to sources list
5653         so distcheck doesn't fail
5654         
5655 2005-02-24  Havoc Pennington  <hp@redhat.com>
5656
5657         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5658         you must disconnect before unref, since locking and other things
5659         are screwed up otherwise. Fix assorted other locking stuff.
5660
5661         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5662         fix compilation
5663
5664         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5665         into a private header and don't export from the library
5666
5667         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5668
5669 2005-02-24  Colin Walters  <walters@verbum.org>
5670         
5671         * dbus/dbus-signature.c: New file; implements various functions
5672         related to type signatures.  Includes an interator for parsing,
5673         validation functions.
5674         (dbus_type_is_basic): Moved here from
5675         dbus-marshal-basic.c:_dbus_type_is_basic.
5676         (dbus_type_is_container): Moved here from
5677         dbus-marshal-basic.c:_dbus_type_is_container.
5678
5679         All callers of _dbus_type_is_container and _dbus_type_is_basic
5680         updated, and include dbus-signature.h.
5681
5682         * dbus/dbus-signature.h: New file; prototypes for the above.
5683
5684         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5685         dbus-signature.h.
5686
5687         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5688         function factored out of _dbus_first_type_in_signature.
5689         (_dbus_first_type_in_signature_c_str): New function; returns first
5690         type code for a type signature character.
5691
5692         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5693         handle function moves.
5694
5695         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5696
5697         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5698         function; skips to next complete type in type signature.
5699         Implemented using previous skip_one_complete_type.  Now
5700         skip_one_complete_type just delegates to
5701         _dbus_type_signature_next.
5702
5703         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5704         to dbus-signature.c
5705         (_dbus_type_is_container): Ditto.
5706
5707         * doc/dbus-specification.xml: Update introspection sample to
5708         use real type signatures.
5709
5710         * dbus/dbus-test.h: Prototype signature test.
5711
5712         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5713         signature tests.
5714
5715         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5716
5717 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5718
5719         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5720         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5721
5722 2005-02-21  Colin Walters  <walters@verbum.org>
5723
5724         * dbus/dbus-test-main.c (main): Take optional specific test
5725         argument.
5726
5727         * dbus/dbus-test.c (run_test): New function, runs a test function
5728         with no data directory.
5729         (run_data_test): Like above, but takes data directory.
5730         (dbus_internal_do_not_use_run_tests): Take
5731         specific test argument.  Replace lots of cut n' paste code
5732         with run_test and run_data_test.
5733
5734         * dbus/dbus-test.h: Update prototype for
5735         dbus_internal_do_not_use_run_tests.
5736
5737 2005-02-20  Havoc Pennington  <hp@redhat.com>
5738
5739         Fix bugs reported by Daniel P. Berrange
5740         
5741         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5742         (protected_change_watch): new function
5743         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5744         (_dbus_server_add_watch): change to work like the
5745         dbus-connection.c equivalents; like those, probably kind of
5746         busted, but should at least mostly work for now
5747         (dbus_server_disconnect): drop the lock if we were already
5748         disconnected, patch from Daniel P. Berrange
5749
5750         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5751         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5752         same stuff
5753
5754         * doc/TODO: todo about unscrewing this mess
5755
5756 2005-02-19  Colin Walters  <walters@verbum.org>
5757
5758         * glib/dbus-binding-tool-glib.c
5759         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5760
5761         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5762         as errno.h and sys/stat.h.
5763         (lose): New function, prints error with
5764         newline and exits.
5765         (lose_gerror): Similar, but takes GError for message.
5766         (main): Add --output argument to specify output file to write to,
5767         instead of always printing to stdout.  In this mode, determine
5768         timestamps on source files to see whether any are newer than the
5769         target file.  If not, exit.  Also convert a number of error
5770         messages to use lose (since it's shorter), and switch to using
5771         g_io_channel_shutdown.
5772
5773 2005-02-19  Havoc Pennington  <hp@redhat.com>
5774
5775         * glib/dbus-gobject.c
5776         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5777
5778         * glib/dbus-glib.c: fix doxygen warnings
5779
5780         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5781         is found on an <arg>
5782
5783 2005-02-17  Colin Walters  <walters@verbum.org>
5784
5785         * glib/dbus-gobject.h: Don't export
5786         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5787         
5788         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5789         (invoke_object_method): Handle it.
5790
5791         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5792         Handle rename.
5793         
5794 2005-02-17  Colin Walters  <walters@verbum.org>
5795
5796         * bus/.cvsignore, doc/.cvsignore
5797         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5798         Update.
5799
5800 2005-02-17  Colin Walters  <walters@verbum.org>
5801         
5802         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5803         Rename to DBUS_SERVICE_DBUS.
5804         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5805         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5806         Change the value from "org.freedesktop.Local"
5807         to "org.freedesktop.DBus.Local".
5808         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5809         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5810         DBUS_INTERFACE_INTROSPECTABLE.
5811         Change the value from "org.freedesktop.Introspectable"
5812         to "org.freedesktop.DBus.Introspectable".
5813         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5814         DBUS_INTERFACE_PROPERTIES.
5815         Change the value from "org.freedesktop.Properties"
5816         to "org.freedesktop.DBus.Properties".
5817         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5818         DBUS_INTERFACE_PEER.
5819         Change the value from "org.freedesktop.Peer"
5820         to "org.freedesktop.DBus.Peer".
5821         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5822         DBUS_INTERFACE_LOCAL.
5823         Change the value from "org.freedesktop.Local"
5824         to "org.freedesktop.DBus.Local".
5825
5826         All other users of those constants have been changed.
5827
5828         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5829
5830         * glib/dbus-gobject.c (handle_introspect): Use constants.
5831
5832         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5833
5834 2005-02-17  Colin Walters  <walters@verbum.org>
5835
5836         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5837         (parse_node, parse_interface, parse_method, parse_signal)
5838         (parse_property, parse_annotation): Lose if we're currently in an
5839         annotation.
5840         (parse_annotation): New function.
5841         (parser_start_element, parser_end_element): Handle annotation.
5842         (parse_method, parse_interface): Remove support for c_name attribute,
5843         switch to annotations.
5844
5845         * glib/dbus-gidl.h (interface_info_get_binding_names)
5846         (method_info_get_binding_names)
5847         (interface_info_get_binding_name, method_info_get_binding_name)
5848         (interface_info_set_binding_name, method_info_set_binding_name):
5849         Remove.
5850         (interface_info_get_annotations, method_info_get_annotations)
5851         (interface_info_get_annotation, method_info_get_annotation)
5852         (interface_info_add_annotation, method_info_add_annotation):
5853         Prototype.
5854
5855         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5856         for "bindings".
5857         (struct MethodInfo): Ditto.
5858         Straightfoward conversion of binding methods into annotation methods
5859         as prototyped.
5860
5861         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5862
5863         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5864
5865         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5866         Use new annotation API.
5867
5868         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5869         annotation element.
5870         
5871         * doc/dbus-specification.xml: Discuss introspection annotations,
5872         include list of well-known annotations.
5873
5874         * test/glib/test-service-glib.xml: Make validate against new DTD.
5875
5876 2005-02-17  Colin Walters  <walters@verbum.org>
5877
5878         This patch is based on initial work from
5879         Paul Kuliniewicz <kuliniew@purdue.edu>.
5880
5881         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5882         initialization of GValue from dbus type to here.
5883         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5884         for the "glib-genmarshal" program from a DBus type.
5885         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5886         into the C name for it we use in the glib bindings.
5887         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5888         glib C type (not GValue).
5889         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5890
5891         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5892         from dbus-gobject.c.
5893
5894         * glib/dbus-gutils.h: Prototype it.
5895
5896         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5897         (marshal_dbus_message_to_g_marshaller): Use new shared function
5898         dbus_glib_marshal_dbus_message_to_gvalue_array.
5899
5900         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5901         Will be changed once we have annotations.
5902
5903         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5904         GStaticRWLock.  Callers updated.
5905         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5906         (string_table_next): New function for iterating over zero-terminated
5907         string value array.
5908         (string_table_lookup): New function; retrieves specific entry in
5909         array.
5910         (get_method_data): New function; look up method data in object data chunk.
5911         (object_error_domain_prefix_from_object_info)
5912         (object_error_code_from_object_info): New functions, but not implemented yet.
5913         (method_interface_from_object_info): New function; retrieve interface name.
5914         (method_name_from_object_info): New function; retrieve method name.
5915         (method_arg_info_from_object_info): New function; retrieve argument data.
5916         (arg_iterate): New function; iterates over serialized argument data.
5917         (method_dir_signature_from_object_info): New function; returns a
5918         GString holding type signature for arguments for just one
5919         direction (input or output).
5920         (method_input_signature_from_object_info)
5921         (method_output_signature_from_object_info): New functions.
5922         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5923         converts dbus message arguments into a GValue array.  Used for both
5924         signal handling and method invocation.
5925         (struct DBusGlibWriteIterfaceData): New utility structure.
5926         (write_interface): New function; generate introspection XML for
5927         an interface.
5928         (introspect_interfaces): New function; gathers all interface->methods,
5929         generates introspection XML for them.
5930         (handle_introspect): Invoke introspect_interfaces.
5931         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5932         (lookup_object_and_method): New function; examines an incoming message
5933         and attempts to match it up (via interface, method name, and argument
5934         signature) with a known object and method.
5935         (gerror_domaincode_to_dbus_error_name): New function; converts a
5936         GError domain and code into a DBus error name.  Needs GError data
5937         added to object introspection to work well.
5938         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5939         GError.
5940         (invoke_object_method): New function to invoke an object method
5941         looked up via lookup_object_and_method.  Parses the incoming
5942         message, turns it into a GValue array, then invokes the marshaller
5943         specified in the DBusGMethodInfo.  Creates a new message with
5944         either return values or error message as appropriate.
5945         (gobject_message_function): Invoke lookup_object_and_method and
5946         invoke_object_method.
5947
5948         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5949         (enum DBusBindingOutputMode): New enum for binding output modes.
5950         (pretty_print): Print binding names.
5951         (dbus_binding_tool_error_quark): GError bits.
5952         (version): Fix typo.
5953         (main): Create GIOChannel for output.  Parse new --mode argument,
5954         possible values are "pretty-print", "glib-server", "glib-client".
5955         Use mode to invoke appropriate function.
5956         
5957         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5958
5959         * glib/dbus-glib-tool.h: New header, just includes GError bits
5960         for now.
5961
5962         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5963         maps binding style to name.
5964         (struct MethodInfo): Ditto.
5965         (get_hash_keys, get_hash_key): Utility function, returns keys for
5966         a GHashTable.
5967         (interface_info_new, method_info_new): Initialize bindings.
5968         (interface_info_unref, method_info_unref): Destroy bindings.
5969         (method_info_get_binding_names, method_info_get_binding_name)
5970         (interface_info_get_binding_names, interface_info_get_binding_name):
5971         Functions for retrieving binding names.
5972         (method_info_set_binding_name, interface_info_set_binding_name):
5973         Functions for setting binding names.
5974
5975         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5976         for glib binding generation.
5977
5978         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5979         and client-side glib glue generation.
5980
5981         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5982         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5983         dbus-glib-tool.h.
5984
5985         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5986         of using GClosureMarshal directly.
5987         (struct DBusGObjectInfo): Add n_infos member.
5988
5989         * test/glib/test-service-glib.xml: New file; contains introspection data
5990         for MyTestObject used in test-service-glib.c.
5991
5992         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5993         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5994         (my_object_uppercase, my_object_many_args): New test methods.
5995         (main): Use dbus_g_object_class_install_info to include generated object
5996         info.
5997
5998         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5999         as well as client-side bindings.
6000
6001         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6002         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6003         using both the dbus_gproxy stuff directly as well as the generated bindings.
6004
6005 2005-02-15  Havoc Pennington  <hp@redhat.com>
6006
6007         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6008         complete a pending call, don't run filters first.
6009
6010         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6011         dbus_pending_call_steal_reply
6012
6013         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6014         _dbus_connection_block_pending_call
6015         (dbus_pending_call_get_reply): change to steal_reply and return a
6016         ref
6017
6018         * dbus/dbus-connection.c
6019         (dbus_connection_send_with_reply_and_block): port to work in terms
6020         of DBusPendingCall
6021         (_dbus_connection_block_pending_call): replace block_for_reply
6022         with this
6023
6024 2005-02-14  Havoc Pennington  <hp@redhat.com>
6025
6026         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6027         properly handle looking up group information by name; fix 
6028         from j@bootlab.org
6029
6030 2005-02-13  Havoc Pennington  <hp@redhat.com>
6031
6032         * dbus/dbus-connection.c (dbus_connection_return_message) 
6033         (dbus_connection_borrow_message): hold dispatch lock while message
6034         is outstanding
6035         (_dbus_connection_block_for_reply): hold dispatch lock while we
6036         block for the reply, so nobody steals our reply
6037         (dbus_connection_pop_message): hold the dispatch lock while we
6038         pluck the message
6039
6040 2005-02-13  Havoc Pennington  <hp@redhat.com>
6041
6042         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6043         (_dbus_connection_release_dispatch)
6044         (_dbus_connection_acquire_io_path)
6045         (_dbus_connection_release_io_path): make the mutex and condvar
6046         control access to the "acquired" flag. Drop the connection lock
6047         while waiting on the condvar. Hopefully these are baby steps in
6048         roughly the right direction.
6049
6050 2005-02-13  Havoc Pennington  <hp@redhat.com>
6051
6052         * dbus/dbus-connection.c: use separate mutexes for the condition
6053         variables; this is some kind of baseline for sanity, but the
6054         condition variables still aren't used correctly afaict
6055
6056 2005-02-13  Havoc Pennington  <hp@redhat.com>
6057
6058         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6059         fix a double-unlock
6060
6061         * dbus/dbus-connection.c
6062         (_dbus_connection_detach_pending_call_unlocked): add this
6063
6064         Initial semi-correct pass through to fix thread locking; there are
6065         still some issues with the condition variable paths I'm pretty
6066         sure
6067         
6068         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6069         lock/unlock calls
6070
6071         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6072         rename to add _unlocked
6073         (struct DBusConnection): move "dispatch_acquired" and
6074         "io_path_acquired" to use only one bit each.
6075         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6076         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6077         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6078         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6079         (_dbus_connection_remove_timeout) 
6080         (_dbus_connection_toggle_timeout): drop lock when calling out to
6081         user functions; done in a hacky/bad way.
6082         (_dbus_connection_send_and_unlock): add a missing unlock
6083         (_dbus_connection_block_for_reply): add a missing unlock
6084
6085         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6086         drop lock in a hacky probably unsafe way to call out to user
6087         function
6088
6089 2005-02-12  Havoc Pennington  <hp@redhat.com>
6090
6091         * tools/dbus-tree-view.c (info_set_func_text): display more
6092         details on args
6093
6094         * bus/driver.c (bus_driver_handle_list_services): list the bus
6095         driver
6096
6097         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6098
6099         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6100         (method_info_get_n_args): new function
6101
6102 2005-02-12  Havoc Pennington  <hp@redhat.com>
6103
6104         * bus/driver.c (bus_driver_handle_introspect): add introspection
6105         for bus driver
6106
6107 2005-02-12  Havoc Pennington  <hp@redhat.com>
6108
6109         * bus/driver.c: put the signature of each bus driver method in the
6110         table of handlers and check it on incoming calls; this isn't
6111         really useful, but going to add introspect support in a minute.
6112
6113 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6114
6115         * mono/Connection.cs: The unpredictability of finalizers in mono
6116         prevents us from deterministically disconnecting the filters from
6117         the Service class's finalizer, so move tracking of filters and
6118         matches here.  Add API for that.
6119
6120         * mono/Service.cs: Remove the code, add code which calls the
6121         methods now on the Connection class.
6122
6123 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6124
6125         * python/dbus.py (class Sender): added to support dbus signals better
6126         (Bus::add_signal_receiver): added expand_args parameter which defaults
6127         to True.  When expand args is True the signal handler will pass the 
6128         message arguments as parameters to the signal handler.  If False
6129         revert to previous behavior where the signal handler must get the
6130         argument list from the message.  This is to help port applications
6131         like HAL that have a tendancy to send variable length argument lists.
6132         self._match_rule_to_receivers is now a dict of dicts.
6133         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6134         removing it from a list
6135         (Bus::_signal_func): change signal handlers so that interface,
6136         signal_name, service, path and message are packed into a Sender
6137         object and that is passed to the handler.  If expand_args is True
6138         extract the args list from the message and append it to the parameter
6139         list
6140         
6141         * python/dbus_bindings.pyx.in (class Signature): added to support 
6142         signiature types
6143         (MessageIter::__init__): changed iteration limit to match D-BUS
6144         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6145         STRUCT and VARIENT type support
6146         (MessageIter::python_value_to_dbus_sig): made recursive to support
6147         recursive types
6148         (MessageIter::append*): added Signature, dict, tuple 
6149         support
6150
6151         * python/examples/example-client.py: added examples of getting tuples
6152         and dicts
6153
6154         * python/examples/example-service.py: added examples of sending tuples
6155         and dicts
6156
6157         * python/examples/example-signal-recipient.py: Fixed to handle new
6158         signal callback format
6159
6160 2005-02-10  Havoc Pennington  <hp@redhat.com>
6161
6162         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6163         (call dbus_g_proxy_add_signal)
6164
6165         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6166         escape the hostname
6167         (_dbus_server_new_for_domain_socket): escape the path
6168
6169         * dbus/dbus-address.c (dbus_address_escape_value): new
6170         (dbus_address_unescape_value): new
6171         (dbus_parse_address): unescape values
6172
6173         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6174
6175         * doc/dbus-specification.xml: explain how to escape values in
6176         addresses
6177
6178 2005-02-10  Havoc Pennington  <hp@redhat.com>
6179
6180         * dbus/dbus-message-factory.c (generate_special): modify test to
6181         avoid using a non-basic dict key
6182
6183         * dbus/dbus-marshal-validate-util.c: add test for the below
6184
6185         * doc/dbus-specification.xml: require that dict keys are a basic
6186         type
6187
6188         * dbus/dbus-marshal-validate.c
6189         (_dbus_validate_signature_with_reason): require that dict key is a
6190         basic type
6191
6192 2005-02-10  Havoc Pennington  <hp@redhat.com>
6193
6194         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6195         change to be _and_unlock instead of _unlocked
6196
6197         * dbus/dbus-connection.c
6198         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6199         have no_update so we can find this bug quickly in future
6200
6201 2005-02-10  Havoc Pennington  <hp@redhat.com>
6202
6203         * dbus/dbus-message-util.c (verify_test_message): tests for string
6204         array
6205
6206         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6207         support for arrays of string/signature/path
6208
6209 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6210
6211         * dbus/dbus-connection.c
6212         (_dbus_connection_queue_received_message_link,
6213         _dbus_connection_message_sent): Add the path to
6214         the verbose output.
6215         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6216         _dbus_connection_send_preallocated_unlocked(), updated the
6217         dispatch status, and unlocks.  Fixes a bug where certain
6218         situations (like a broken pipe) could cause a Disconnect message
6219         to not be sent, tricking the bus into thinking a service was still
6220         there when the process had quit.
6221         (_dbus_connection_send_preallocated): Call
6222         _dbus_connection_send_preallocated_and_unlock().
6223         (_dbus_connection_send_and_unlock): Added.  Calls
6224         _dbus_connection_send_preallocated_and_unlock().
6225         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6226         (dbus_connection_send_with_reply): Update the dispatch status and
6227         unlock.
6228
6229         * mono/Service.cs (~Service): Added.  Removes the filter so that
6230         we don't get unmanaged code calling back into a GCed delegate.
6231         (RemoveFilter); Added.
6232
6233 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6234
6235         * dbus/dbus-message.c (dbus_message_iter_open_container):
6236         - Removed check for iterator type being an array because
6237         get_arg_type does not work with writer iterators
6238         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6239
6240 2005-02-07  Havoc Pennington  <hp@redhat.com>
6241
6242         * doc/dbus-specification.xml: some more language cleanups; add
6243         stuff about how to deal with invalid protocol and extension
6244         points; add _ to allowed chars in auth commands; add EXTENSION_
6245         auth command prefix
6246
6247 2005-02-06  Havoc Pennington  <hp@redhat.com>
6248
6249         * s/expected/required/ in a couple places for clarity
6250
6251 2005-02-07  Colin Walters  <walters@verbum.org>
6252
6253         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6254         sender or proposed_recipient.
6255
6256 2005-02-06  Havoc Pennington  <hp@redhat.com>
6257
6258         * dbus/dbus-message-factory.c (generate_special): more tests
6259
6260         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6261         array length that exceeds the maximum
6262
6263 2005-02-05  Havoc Pennington  <hp@redhat.com>
6264
6265         * dbus/dbus-message-factory.c (generate_special): more test cases,
6266         increasing coverage
6267
6268         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6269         reason why a signature was invalid
6270
6271         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6272         skip the length of the string before we look at it in validation
6273
6274         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6275         equal_substring
6276
6277         * dbus/dbus-message.c (_dbus_message_loader_new): default
6278         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6279
6280 2005-02-05  Havoc Pennington  <hp@redhat.com>
6281
6282         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6283         if the signature of a variant was empty
6284         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6285         struct with no element type)
6286
6287         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6288         mangled messages to break things
6289
6290 2005-02-04  Havoc Pennington  <hp@redhat.com>
6291
6292         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6293         g_quark_try_string() so it actually can return 0
6294         (dbus_g_proxy_connect_signal): ditto
6295
6296 2005-02-04  Havoc Pennington  <hp@redhat.com>
6297
6298         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6299         bogus warning
6300         (tristring_from_message): assert cleanly on null path/interface
6301         (should not be possible though I decided later)
6302         (dbus_g_proxy_dispose): move proxy manager unregistration here
6303         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6304         g_return_if_fail() checks
6305
6306 2005-02-04  Havoc Pennington  <hp@redhat.com>
6307
6308         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6309
6310         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6311         (with some minor changes)
6312
6313         * doc/dbus-specification.xml: add deprecated attribute to
6314         introspection format
6315
6316 2005-01-31  Havoc Pennington  <hp@redhat.com>
6317
6318         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6319         think it's sort of right
6320
6321 2005-01-30  Havoc Pennington  <hp@redhat.com>
6322
6323         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6324
6325 2005-01-30  Havoc Pennington  <hp@redhat.com>
6326
6327         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6328
6329         * autogen.sh: change to autotools 1.9
6330
6331         * glib/dbus-gproxy.c: completely change how signals work
6332         (dbus_g_proxy_add_signal): new function to specify signature of a
6333         signal
6334         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6335         and g_warning if the incoming message has the wrong signature.
6336
6337 2005-01-30  Havoc Pennington  <hp@redhat.com>
6338
6339         * tools/dbus-names-model.c (have_names_notify): fix this
6340
6341         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6342         up the string array handling a bit 
6343
6344 2005-01-30  Havoc Pennington  <hp@redhat.com>
6345
6346         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6347         (dbus_g_pending_call_cancel): new function
6348
6349         * dbus/dbus-glib.h: move GType decls for connection/message here;
6350         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6351         here, just kind of rationalizing how we handle all that
6352
6353         * tools/dbus-names-model.c: new file for a tree model listing the
6354         services on a bus
6355
6356         * tools/dbus-tree-view.c (model_new): use proper typing on the
6357         model rows
6358
6359 2005-01-30  Havoc Pennington  <hp@redhat.com>
6360
6361         * glib/dbus-gmain.c: add a custom GSource back that just checks
6362         whether the message queue has anything in it; otherwise, there are 
6363         cases where we won't see messages in the queue since there was no 
6364         IO visible to the glib main loop
6365
6366         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6367         increase default message timeout to 25 seconds
6368
6369 2005-01-30  Havoc Pennington  <hp@redhat.com>
6370
6371         * test/glib/test-profile.c (no_bus_stop_server): remove the
6372         warning about the g_warning that I just fixed
6373
6374         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6375         custom source, seems to be a lot easier to understand and work
6376         better.
6377
6378 2005-01-30  Havoc Pennington  <hp@redhat.com>
6379
6380         I think this main loop thing is conceptually broken, but here are 
6381         some band aids. I'll maybe rewrite it in a minute.
6382         
6383         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6384         custom GSource, so don't pass it in; confusing
6385         (gsource_server_finalize, gsource_connection_finalize): add
6386         finalize handlers that remove all the watches.  
6387
6388 2005-01-30  Havoc Pennington  <hp@redhat.com>
6389
6390         * glib/dbus-gobject.c (introspect_properties): fix the XML
6391         generated
6392
6393         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6394         which effectively detects the use of freed messages
6395
6396         * glib/dbus-gobject.c (handle_introspect): modify and return the
6397         reply message instead of the incoming message
6398
6399         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6400         gee, maybe it should SEND THE XML instead of just making a string
6401         and freeing it again ;-)
6402
6403         * tools/dbus-print-message.c (print_message): improve printing of
6404         messages
6405
6406         * configure.in: add debug-glib.service to the output
6407
6408 2005-01-30  Havoc Pennington  <hp@redhat.com>
6409
6410         dbus-viewer introspected and displayed the bus driver
6411         
6412         * dbus/dbus-object-tree.c 
6413         (object_tree_test_iteration): add tests for a handler registered on "/"
6414
6415         * dbus/dbus-object-tree.c
6416         (_dbus_decompose_path): fix to handle path "/" properly
6417         (run_decompose_tests): add tests for path decomposition
6418         
6419         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6420         properly
6421
6422         * glib/dbus-gobject.c (handle_introspect): fix quotes
6423
6424         * test/glib/run-test.sh: support launching the bus, then running
6425         dbus-viewer
6426
6427         * test/glib/test-service-glib.c (main): put in a trivial gobject
6428         subclass and register it on the connection
6429
6430         * bus/driver.c (bus_driver_handle_introspect): implement
6431         introspection of the bus driver service
6432
6433         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6434         identifiers, doctype decl
6435
6436         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6437         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6438         returning the service unchanged.
6439         (bus_driver_handle_message): remove old check for reply_serial in
6440         method calls, now the message type deals with that
6441         (bus_driver_handle_message): handle NULL interface
6442
6443         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6444
6445         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6446         -1 for len
6447
6448         * tools/dbus-viewer.c: add support for introspecting a service on
6449         a bus
6450
6451         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6452         (dbus_g_pending_call_unref): add
6453
6454 2005-01-29  Havoc Pennington  <hp@redhat.com>
6455
6456         * tools/dbus-tree-view.c: add support for displaying properties.
6457         (run dbus-viewer with an introspect xml file as arg, then resize
6458         the window so the tree elements show up, not sure what that is)
6459
6460         * glib/dbus-gobject.c (handle_introspect): return
6461         org.freedesktop.Properties and org.freedesktop.Introspectable
6462         interfaces when we are introspected.
6463
6464         * doc/dbus-specification.xml: allow empty interface name when 
6465         Get/Set a property
6466
6467 2005-01-29  Havoc Pennington  <hp@redhat.com>
6468
6469         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6470         though it uses glib, it could be extended for any binding in
6471         principle
6472
6473         * glib/dbus-gobject.c (gobject_message_function): change to the
6474         new way properties work
6475
6476         * dbus/dbus-protocol.h: add the new interfaces
6477
6478         * doc/dbus-specification.xml: document the introspection format,
6479         Introspectable interface, and add an org.freedesktop.Properties
6480         interface.
6481
6482         * glib/dbus-gparser.c: add support for a <property> element
6483
6484         * glib/dbus-gidl.c: add PropertyInfo
6485
6486         * glib/dbus-gobject.c (handle_introspect): put the outermost
6487         <node> outside the signal and property descriptions.
6488         (introspect_properties): export properties as <property> rather
6489         than as method calls
6490
6491 2005-01-28  Havoc Pennington  <hp@redhat.com>
6492
6493         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6494         related to authentication protocol
6495
6496 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6497
6498         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6499                 - BUS_ACTIVATION -> BUS_STARTER
6500                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6501                 - class MessageIter (__init__): Added recursion checking 
6502                 so we throw a nice error instead of just disconnecting from the
6503                 bus.
6504                 (get): Added arg_type parameter for recursion.
6505                 Removed the nil type
6506                 Added signiture type placeholder (not implemented)
6507                 Added struct type placeholder (not implemented)
6508                 Added varient type placeholder (not implemented)
6509                 Commented out dict type for now     
6510                 (get_element_type): renamed from get_array_type
6511                 (get_*): changed to use the dbus_message_iter_get_basic API
6512                 (get_*_array): removed in favor of recursive get_array method
6513                 (get_array): new recursive method which calls get to marshal
6514                 the elements of the array
6515                 (value_to_dbus_sig): New method returns the corrasponding
6516                 dbus signiture to a python value
6517                 (append): Comment out dict handling for now
6518                 Handle lists with the new recursive API
6519                 Comment out None handling for now
6520                 (append_nil): removed
6521                 (append_*): changed to use dbus_message_iter_append_basic API
6522                 (append_*_array): removed in favor of recursive append_array 
6523                 method
6524                 (__str__): Make it easier to print out recursive iterators
6525                 for debugging
6526                 - class Message (__str__): moved type inspection to the
6527                 MessageIter class' __str__ method
6528                 (get_iter): Added an append parameter wich defaults to False
6529                 If True use the new API's to create an append iterator
6530
6531         * python/dbus.py: Update to use new bindings API
6532                 - TYPE_ACTIVATION -> TYPE_STARTER
6533                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6534                 - class ActivationBus -> class StarterBus
6535                 - class RemoteObject (__call__): get an append iterator
6536                 - (_dispatch_dbus_method_call): get an append iterator
6537                 - class Object (emit_signal): get an append iterator
6538
6539         * python/examples/: Fixed up the examples to work with the new API
6540                 
6541 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6542
6543         * configure.in: Bump version up to 0.30.
6544
6545         * HACKING: Add a release item to bump the version number up after 
6546         a release.
6547
6548 2005-01-28  Havoc Pennington  <hp@redhat.com>
6549
6550         * doc/dbus-specification.xml: update to describe 16-bit types and
6551         dict entries
6552
6553         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6554         assertion
6555
6556         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6557         type
6558
6559         * dbus/dbus-marshal-recursive.c: implement
6560
6561 2005-01-27  Havoc Pennington  <hp@redhat.com>
6562
6563         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6564
6565         * configure.in: find the right type for 16 and 32 bit ints as well
6566         as 64
6567
6568         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6569         the 16-bit types so people don't have to stuff them in 32-bit or
6570         byte arrays.
6571
6572 2005-01-27  Havoc Pennington  <hp@redhat.com>
6573
6574         * dbus/dbus-message.c: byteswap the message if you init an
6575         iterator to read/write from it
6576         
6577         * dbus/dbus-marshal-byteswap.c: new file implementing 
6578         _dbus_marshal_byteswap()
6579
6580         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6581
6582 2005-01-26  Havoc Pennington  <hp@redhat.com>
6583         
6584         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6585         build, apparently - nobody noticed?)
6586         
6587 2005-01-26  Havoc Pennington  <hp@redhat.com>
6588
6589         * dbus/dbus-marshal-recursive.h: remove todo comment
6590
6591 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6592
6593         * Land the mono binding changes to conform to the new APIs.
6594
6595         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6596         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6597
6598         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6599         type code as a string.
6600         (InitAppending): Rename dbus_message_append_iter_init() to
6601         dbus_message_iter_init_append().
6602
6603         * mono/BusDriver.cs: Rename ServiceEventHandler to
6604         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6605         Rename ServiceOwnerChanged to NameOwnerChanged.
6606
6607         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6608         underlying C call.
6609
6610         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6611
6612         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6613         dbus_bus_acquire_service() to dbus_bus_request_name().
6614
6615         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6616         of Type.UnderlyingSystemType to get the correct element type for
6617         the array.
6618         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6619         dbus_message_get_{element|arg}_type() instead of
6620         dbus_message_iter_init_array_iterator().
6621         (Append): Replace dbus_message_iter_append_array() with
6622         dbus_message_iter_open_container() and
6623         dbus_message_iter_close_container().
6624
6625         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6626         types have been removed.
6627         
6628         * mono/DBusType/*.cs: Replace calls of
6629         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6630         but specify the type in the DllImport extern declaration.  Ditto
6631         for dbus_message_iter_append_[type]() ->
6632         dbus_message_iter_append_basic().
6633
6634         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6635         NameOwnerChangedHandler.
6636
6637 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6638
6639         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6640                 - get_base_service -> get_unique_name
6641                 - bus_get_base_service -> bus_get_unique_name
6642                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6643                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6644                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6645                 - bus_activate_service -> bus_start_service_by_name
6646                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6647                 - bus_acquire_service -> bus_request_name
6648                 - dbus_bus_acquire_service -> dbus_bus_request_name
6649                 - bus_service_exists -> bus_name_has_owner
6650                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6651
6652         * python/dbus.py: Rename of methods
6653                 - activate_service -> start_service_by_name
6654                 - bus_acquire_service -> bus_request_name
6655                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6656                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6657
6658         
6659 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6660
6661         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6662         signature for the method that can't be found.
6663
6664         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6665         the message has any arguments, we need to call
6666         _dbus_type_reader_get_current_type(), not
6667         _dbus_type_reader_has_next().
6668
6669 2005-01-24  Havoc Pennington  <hp@redhat.com>
6670
6671         * dbus/dbus-message-factory.c: more testing of message validation
6672
6673         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6674         header
6675
6676 2005-01-23  Havoc Pennington  <hp@redhat.com>
6677
6678         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6679         get this all working, not many tests in the framework yet though
6680
6681 2005-01-22  Havoc Pennington  <hp@redhat.com>
6682
6683         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6684         tutorial, based on work from David Wheeler.
6685
6686 2005-01-21  Havoc Pennington  <hp@redhat.com>
6687
6688         * dbus/dbus-bus.c: add more return_if_fail checks
6689
6690         * dbus/dbus-message.c (load_message): have the "no validation"
6691         mode (have to edit the code to toggle the mode for now though)
6692
6693         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6694         skips all validation; I want to use this at least for benchmark
6695         baseline, I'm not sure if it should be a publicly-available switch.
6696
6697 2005-01-21  Havoc Pennington  <hp@redhat.com>
6698
6699         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6700         toplevel doxygen group as the low-level API stuff
6701
6702         * dbus/dbus.h: note that libdbus is the low-level API
6703
6704 2005-01-20  Havoc Pennington  <hp@redhat.com>
6705
6706         * update-dbus-docs.sh: script to update docs on the web site, only
6707         works for me though. neener.
6708
6709 2005-01-20  Havoc Pennington  <hp@redhat.com>
6710
6711         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6712         code can reveal bugs in it
6713
6714 2005-01-20  Havoc Pennington  <hp@redhat.com>
6715
6716         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6717         select() version, patches from Tor Lillqvist
6718
6719 2005-01-20  Havoc Pennington  <hp@redhat.com>
6720
6721         * doc/dbus-tutorial.xml: replace > with &gt;
6722
6723         * bus/services.c (bus_registry_acquire_service): validate the name
6724         and return a better error if it's no good.
6725
6726         * doc/dbus-specification.xml: note NO_AUTO_START change
6727
6728         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6729         from AUTO_START, we're toggling the default
6730
6731         * bus/dispatch.c: adapt the tests to change of auto-start default
6732
6733 2005-01-18  Havoc Pennington  <hp@redhat.com>
6734
6735         * rename dbus-daemon-1 to dbus-daemon throughout
6736
6737 2005-01-18  Havoc Pennington  <hp@redhat.com>
6738
6739         * Throughout, grand renaming to strip out the use of "service",
6740         just say "name" instead (or "bus name" when ambiguous).  Did not
6741         change the internal code of the message bus itself, only the
6742         programmer-facing API and messages.
6743         
6744         * doc/dbus-specification.xml: further update the message bus section
6745         
6746         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6747         in error case
6748
6749 2005-01-17  Havoc Pennington  <hp@redhat.com>
6750
6751         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6752         ever
6753
6754         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6755         "invalid name character" not only non-ASCII
6756
6757         * doc/dbus-specification.xml: further update spec, message bus 
6758         parts are still out-of-date but the marshaling etc. stuff is now
6759         accurate-ish
6760
6761 2005-01-17  Havoc Pennington  <hp@redhat.com>
6762
6763         * doc/dbus-specification.xml: partially update spec
6764
6765 2005-01-17  Havoc Pennington  <hp@redhat.com>
6766
6767         * Throughout, align variant bodies according to the contained
6768         type, rather than always to 8. Should save a fair bit of space in
6769         message headers.
6770         
6771         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6772         fix handling of case where p == end
6773
6774         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6775
6776 2005-01-17  Havoc Pennington  <hp@redhat.com>
6777
6778         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6779
6780         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6781         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6782         are marshaling/unmarshaling a boolean.
6783
6784 2005-01-16  Havoc Pennington  <hp@redhat.com>
6785
6786         This is about it on what can be disabled/deleted from libdbus
6787         easily, back below 150K anyhow. Deeper cuts are more work than 
6788         just turning the code off as I've done here.
6789         
6790         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6791         signed int convenience funcs
6792
6793         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6794         verbose mode
6795
6796         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6797         things out of libdbus
6798
6799         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6800         
6801         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6802         tests-enabled-only, though it should probably be deleted)
6803
6804         * dbus/dbus-message-util.c: same stuff
6805
6806         * dbus/dbus-auth-util.c: same stuff
6807
6808 2005-01-16  Havoc Pennington  <hp@redhat.com>
6809
6810         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6811
6812         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6813         way for stripping down dbus-userdb.c stuff included in libdbus.
6814         Rename _dbus_parse_uid for consistency.
6815
6816 2005-01-16  Havoc Pennington  <hp@redhat.com>
6817
6818         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6819         name the assertion failed in
6820
6821         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6822         (_dbus_return_val_if_fail): assert that the name of the function
6823         containing the check doesn't start with '_', since we only want to 
6824         use checks on public functions
6825         
6826         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6827         checks to assertions
6828
6829         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6830         change checks to asserts for private function
6831
6832         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6833         to asserts for private function
6834
6835         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6836         broken assertion that was breaking make check
6837         (_dbus_type_reader_array_is_empty): remove this rather than fix
6838         it, was only used in assertions
6839
6840 2005-01-16  Havoc Pennington  <hp@redhat.com>
6841
6842         * test/unused-code-gc.py: hacky script to find code that's used
6843         only by the bus (not libdbus) or used only by tests or not used at
6844         all. It has some false alarms, but looks like we can clean up a
6845         lot of size from libdbus.
6846
6847         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6848         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6849         
6850 2005-01-16  Havoc Pennington  <hp@redhat.com>
6851
6852         * Add and fix docs according to Doxygen warnings throughout
6853         source.
6854         
6855         * dbus/dbus-marshal-recursive.c
6856         (_dbus_type_reader_array_is_empty): change this to just call
6857         array_reader_get_array_len() and make it static
6858
6859         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6860         from get_array_type
6861         (dbus_message_iter_init_append): rename from append_iter_init
6862
6863         * dbus/dbus-marshal-recursive.c
6864         (_dbus_type_reader_get_element_type): rename from
6865         _dbus_type_reader_get_array_type
6866
6867 2005-01-15  Havoc Pennington  <hp@redhat.com>
6868
6869         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6870
6871         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6872         when DBUS_DISABLE_ASSERT
6873         (_dbus_marshal_set_basic): be sure we align for the string length
6874
6875         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6876         this look faster
6877
6878         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6879         inline macro version
6880         (_dbus_string_set_byte): provide inline macro version
6881
6882 2005-01-15  Havoc Pennington  <hp@redhat.com>
6883
6884         * Land the new message args API and type system.
6885
6886         This patch is huge, but the public API change is not 
6887         really large. The set of D-BUS types has changed somewhat, 
6888         and the arg "getters" are more geared toward language bindings;
6889         they don't make a copy, etc.
6890
6891         There are also some known issues. See these emails for details
6892         on this huge patch:
6893         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6894         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6895         
6896         * dbus/dbus-marshal-*: all the new stuff
6897
6898         * dbus/dbus-message.c: basically rewritten
6899
6900         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6901         freed blocks to be all non-nul bytes so using freed memory is less
6902         likely to work right
6903
6904         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6905         DBUS_FAIL_MALLOC=N environment variable, so you can do
6906         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6907         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6908         thorough.
6909
6910         * qt/message.cpp: port to the new message args API
6911         (operator<<): use str.utf8() rather than str.unicode()
6912         (pretty sure this is right from the Qt docs?)
6913
6914         * glib/dbus-gvalue.c: port to the new message args API
6915
6916         * bus/dispatch.c, bus/driver.c: port to the new message args API
6917
6918         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6919         "locked" flag to TRUE and align_offset to 0; I guess we never
6920         looked at these anyhow, but seems cleaner.
6921
6922         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6923         move allocation padding macro to this header; use it to implement
6924         (_DBUS_STRING_STATIC): ability to declare a static string.
6925
6926         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6927         change to return TRUE if the interface is not set.
6928
6929         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6930         to dbus-marshal-validate.[hc]
6931
6932         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6933         dbus-internals.c
6934
6935         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6936         to dbus-marshal-*.[hc]
6937
6938         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6939         function here from dbus-marshal.c
6940
6941 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6942
6943         * NEWS: Update for 0.23.
6944
6945         * configure.in: Release 0.23.
6946
6947 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6948
6949         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6950         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6951         behind.
6952
6953         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6954         uninstall"
6955
6956         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6957         is an enum, get the enum's underlying type.  Another mono
6958         1.1.3 fix.
6959
6960 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6961
6962         Patch from Sjoerd Simons <sjoerd@luon.net>
6963
6964         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6965         DESTDIR.  It breaks stuff.
6966
6967 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6968
6969         Patch from Tambet Ingo <tambet@ximian.com>
6970
6971         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6972         calling type.GetElementType().  The code previously depended on
6973         broken Mono behavior, which was fixed in Mono 1.1.3.
6974
6975         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6976         Activator.CreateInstance() so that the class's constructor is
6977         called with the right parameters.
6978
6979 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6980
6981         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6982
6983         * dbus/dbus-connection.c
6984         (_dbus_connection_queue_received_message_link): Call
6985         _dbus_connection_remove_timeout() instead of the _locked()
6986         variant, since it's always called from
6987         _dbus_connection_handle_watch(), which handles the locking.
6988         Removed the _locked() variant since it's no longer used.
6989
6990 2005-01-03  Havoc Pennington  <hp@redhat.com>
6991
6992         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6993         return
6994         
6995 2004-12-26  Havoc Pennington  <hp@redhat.com>
6996
6997         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6998
6999 2005-01-03  Havoc Pennington  <hp@redhat.com>
7000
7001         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7002         floating point
7003
7004         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7005
7006 2005-01-02  Havoc Pennington  <hp@redhat.com>
7007
7008         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7009
7010 2005-01-01  Havoc Pennington  <hp@redhat.com>
7011
7012         * configure.in: add -Wfloat-equal
7013
7014 2005-01-01  Havoc Pennington  <hp@redhat.com>
7015
7016         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7017         for a variety of reasons '==' doesn't do this.
7018
7019 2004-12-31  Havoc Pennington  <hp@redhat.com>
7020
7021         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7022         I keep wishing I had
7023
7024 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7025
7026         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7027
7028 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7029
7030         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7031         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7032         dbus-protocol.h.  Because they are defines and not enums they are not
7033         autogenerated.
7034
7035 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7036
7037         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7038         dbus_bus_activate_service
7039
7040         * python/dbus.py (Bus.activate_service): activate a service on the
7041         bus.
7042
7043 2004-12-24  Havoc Pennington  <hp@redhat.com>
7044
7045         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7046         file format has also changed and I haven't adapted to that yet
7047         
7048         * Makefile.am: load .gcno files from latest gcc
7049
7050 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7051         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7052
7053         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7054         lowlevel binding
7055
7056         * python/dbus.py (get_unix_user): Added binding to 
7057         call dbus_bindings.bus_get_unix_user
7058
7059         * python/extract.py: Modified the proto_pat regex to
7060         handle unsigned long
7061
7062 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7063
7064         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7065         better POSIX compliance.
7066
7067 2004-12-19  Havoc Pennington  <hp@redhat.com>
7068
7069         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7070         (_dbus_string_insert_8_aligned): new functions
7071
7072         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7073
7074 2004-12-18  Havoc Pennington  <hp@redhat.com>
7075
7076         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7077         macro
7078
7079         * dbus/dbus-message.c: fix a comment, and add a still-unused
7080         not-implemented function
7081
7082         * dbus/dbus-marshal.h: fix comment
7083
7084         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7085
7086 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7087
7088         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7089         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7090         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7091         Type.UnderlyingSystemType to get the actual system type
7092         underneath.  This code previously depended on the broken Mono
7093         behavior, which was fixed in 1.1.3.
7094
7095 2004-11-27  Havoc Pennington  <hp@redhat.com>
7096
7097         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7098         are disabled
7099         (_dbus_string_get_const_data): inline when asserts are disabled
7100
7101         * dbus/dbus-message.c: record the _dbus_current_generation of
7102         creation so we can complain if dbus_shutdown() is used improperly.
7103         Do this only if checks are enabled.
7104
7105         * dbus/dbus-connection.c: ditto
7106         
7107 2004-11-26  Havoc Pennington  <hp@redhat.com>
7108
7109         * test/glib/test-profile.c: add with_bus mode to profile echoes
7110         that go through the bus.
7111
7112         * test/glib/run-test.sh: add ability to run test-profile
7113
7114         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7115         config file reload.
7116
7117 2004-11-26  Havoc Pennington  <hp@redhat.com>
7118
7119         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7120         thing was implemented
7121
7122 2004-11-26  Havoc Pennington  <hp@redhat.com>
7123
7124         * test/glib/test-profile.c: tweak a bit, add support for some
7125         made-up minimal malloc overhead with plain sockets, since in 
7126         real life some sort of buffers are unavoidable thus we could 
7127         count them in the theoretical best case
7128
7129 2004-11-26  Havoc Pennington  <hp@redhat.com>
7130
7131         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7132         where I was trying to cache one too many messages
7133
7134 2004-11-26  Havoc Pennington  <hp@redhat.com>
7135
7136         * dbus/dbus-message.c: reimplement message cache as an array which 
7137         makes the cache about twice as fast and saves maybe 1.5% overall
7138
7139 2004-11-26  Havoc Pennington  <hp@redhat.com>
7140
7141         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7142         message cache lock here
7143
7144 2004-11-26  Havoc Pennington  <hp@redhat.com>
7145
7146         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7147         the "char byte_order" next to each other to save 4 bytes
7148         (dbus_message_new_empty_header): reduce preallocation, since the
7149         message cache should achieve a similar effect
7150         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7151         message cache that keeps a few DBusMessage around in a pool,
7152         another 8% speedup or so.
7153
7154         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7155
7156 2004-11-25  Havoc Pennington  <hp@redhat.com>
7157
7158         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7159         to write, without reading or blocking, try it before the poll()
7160         and skip the poll() if nothing remains to write. This is about a
7161         3% speedup in the echo client/server
7162
7163 2004-11-25  Havoc Pennington  <hp@redhat.com>
7164
7165         The primary change here is to always write() once before adding
7166         the write watch, which gives us about a 10% performance increase.
7167         
7168         * dbus/dbus-transport-unix.c: a number of modifications to cope
7169         with removing messages_pending
7170         (check_write_watch): properly handle
7171         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7172         messages_pending stuff
7173         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7174         AUTHENTICATED cases
7175         (unix_handle_watch): after writing, see if the write watch can be
7176         removed
7177         (unix_do_iteration): assert that write_watch/read_watch are
7178         non-NULL rather than testing that they aren't, since they 
7179         aren't allowed to be NULL. check_write_watch() at the end so 
7180         we add the watch if we did not finish writing (e.g. got EAGAIN)
7181
7182         * dbus/dbus-transport-protected.h: remove messages_pending call,
7183         since it resulted in too much inefficient watch adding/removing; 
7184         instead we now require that the transport user does an iteration 
7185         after queueing outgoing messages, and after trying the first
7186         write() we add a write watch if we got EAGAIN or exceeded our 
7187         max bytes to write per iteration setting
7188
7189         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7190         function
7191
7192         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7193         freed and then accessed, valgrind flagged this bug, fix it
7194
7195         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7196         as the last valid field plus 1, where really it is equal to the
7197         last valid field. Corrects some message corruption issues.
7198
7199         * dbus/dbus-mainloop.c: verbosity changes
7200
7201         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7202         instead of aborting in one of the test codepaths
7203
7204         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7205         caused not printing the pid ever again if a verbose was missing
7206         the newline at the end
7207         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7208
7209         * dbus/dbus-connection.c: verbosity changes; 
7210         (dbus_connection_has_messages_to_send): new function
7211         (_dbus_connection_message_sent): no longer call transport->messages_pending
7212         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7213         try to write() immediately, so we can avoid the write watch. This
7214         is the core purpose of this patchset
7215         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7216         dump the outgoing message queue, so nobody will get confused
7217         trying to send them or thinking stuff is pending to be sent
7218
7219         * bus/test.c: verbosity changes
7220
7221         * bus/driver.c: verbosity/assertion changes
7222
7223         * bus/dispatch.c: a bunch of little tweaks to get it working again
7224         because this patchset changes when/where you need to block.
7225
7226 2004-11-23  Havoc Pennington  <hp@redhat.com>
7227
7228         * test/glib/test-profile.c: modify to accept a plain_sockets
7229         argument in which case it will bench plain sockets instead of
7230         libdbus, for comparison purposes.
7231
7232 2004-11-22  Havoc Pennington  <hp@redhat.com>
7233
7234         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7235         threads for more time, so sysprof can get a grip on it.
7236
7237         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7238         pointless variable
7239
7240 2004-11-13  Havoc Pennington  <hp@redhat.com>
7241
7242         * test/glib/test-profile.c: fix this thing up a bit
7243
7244         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7245         preallocation sizes by a fair bit; not sure if this will be an
7246         overall performance win or not, but it does reduce reallocs.
7247
7248         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7249         the test hack that forced constant realloc if asserts are
7250         disabled, so we can profile sanely. Sprinkle in some
7251         _DBUS_UNLIKELY() which are probably pointless, but before I
7252         noticed the real performance problem I put them in.
7253         (_dbus_string_validate_utf8): micro-optimize this thing a little
7254         bit, though callgrind says it didn't help; then special-case
7255         ascii, which did help a lot; then be sure we detect nul bytes as
7256         invalid, which is a bugfix.
7257         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7258         superstition; use memset to nul the padding instead of a manual
7259         loop.
7260         (_dbus_string_get_length): inline this as a
7261         macro; it showed up in the profile because it's used for loop
7262         tests and so forth
7263
7264 2004-11-10  Colin Walters  <walters@verbum.org>
7265
7266         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7267         for extra paranoia.
7268
7269 2004-11-09  Colin Walters  <walters@verbum.org>
7270
7271         * dbus/dbus-string.c (_dbus_string_get_length): New
7272         function, writes DBusString to C buffer.
7273
7274         * dbus/dbus-string.h: Prototype it.
7275
7276         * dbus/dbus-message.c (dbus_message_type_to_string): New
7277         function, converts message type into C string.
7278
7279         * dbus/dbus-message.h: Prototype it.
7280
7281         * bus/selinux.c (bus_selinux_check): Take source pid,
7282         target pid, and audit data.  Pass audit data to
7283         avc_has_perm.
7284         (log_audit_callback): New function, appends extra
7285         audit information.
7286         (bus_selinux_allows_acquire_service): Also take
7287         service name, add it to audit data.
7288         (bus_selinux_allows_send): Also take message
7289         type, interface, method member, error name,
7290         and destination, and add them to audit data.
7291         (log_cb): Initialize func_audit.
7292         
7293         * bus/selinux.h (bus_selinux_allows_acquire_service)
7294         (bus_selinux_allows_send): Update prototypes 
7295
7296         * bus/services.c (bus_registry_acquire_service): Pass
7297         service name to bus_selinux_allows_acquire_service.
7298
7299         * bus/bus.c (bus_context_check_security_policy): Pass
7300         additional audit data.  Move assignment of dest
7301         to its own line.
7302
7303 2004-11-07  Colin Walters  <walters@verbum.org>
7304
7305         * dbus/dbus-transport-unix.c (do_authentication): Always
7306         initialize auth_completed.
7307         
7308 2004-11-07  Colin Walters  <walters@verbum.org>
7309
7310         * bus/bus.c (load_config): Break into three
7311         separate functions: process_config_first_time_only,
7312         process_config_every_time, and process_config_postinit.
7313         (process_config_every_time): Move call of
7314         bus_registry_set_service_context_table into
7315         process_config_postinit.
7316         (process_config_postinit): New function, does
7317         any processing that needs to happen late
7318         in initialization (and also on reload).
7319         (bus_context_new): Instead of calling load_config,
7320         open config parser here and call process_config_first_time_only
7321         and process_config_every_time directly.  Later, after
7322         we have forked but before changing UID,
7323         invoke bus_selinux_full_init, and then call
7324         process_config_postinit.
7325         (bus_context_reload_config): As in bus_context_new,
7326         load parse file inside here, and call process_config_every_time
7327         and process_config_postinit.
7328
7329         * bus/services.h, bus/services.c
7330         (bus_registry_set_service_context_table): Rename
7331         from bus_registry_set_sid_table.  Take string hash from config
7332         parser, and convert them here into SIDs.
7333
7334         * bus/config-parser.c (struct BusConfigParser): Have
7335         config parser only store a mapping of service->context
7336         string.
7337         (merge_service_context_hash): New function.
7338         (merge_included): Merge context string hashes instead
7339         of using bus_selinux_id_table_union.
7340         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7341         simply create a new string hash.
7342         (bus_config_parser_unref): Unref it.
7343         (start_selinux_child): Simply insert strings into hash,
7344         don't call bus_selinux_id_table_copy_over.
7345
7346         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7347         (bus_selinux_id_table_copy_over): Delete.
7348
7349 2004-11-03  Colin Walters  <walters@verbum.org>
7350
7351         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7352         variables.
7353         
7354 2004-11-03  Colin Walters  <walters@verbum.org>
7355
7356         * bus/test-main.c (test_pre_hook): Fix test logic,
7357         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7358
7359 2004-11-02  Colin Walters  <walters@redhat.com>
7360
7361         * bus/selinux.c (bus_selinux_init): Split into two functions,
7362         bus_selinux_pre_init and bus_selinux_post_init.
7363         (bus_selinux_pre_init): Just determine whether SELinux is
7364         enabled.
7365         (bus_selinux_post_init): Do everything else.
7366
7367         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7368         config file, and bus_selinux_post_init after.  This ensures that
7369         we don't lose the policyreload notification thread that
7370         bus_selinux_init created before forking previously.
7371         
7372         * bus/test-main.c (test_pre_hook): Update for split.
7373
7374 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7375
7376         Patch from Johan Fischer <linux@fischaz.com>
7377         
7378         * mono/doc/Makefile.am (install-data-local): Added directory
7379         install for DESTDIR
7380
7381 2004-10-29  Colin Walters  <walters@redhat.com>
7382
7383         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7384         parameter for fd to write pid to.       
7385
7386         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7387         
7388         * bus/bus.c (bus_context_new): Pass print_pid_fd
7389         to _dbus_become_daemon (bug #1720)
7390
7391 2004-10-29  Colin Walters  <walters@redhat.com>
7392
7393         Patch from Ed Catmur <ed@catmur.co.uk>
7394
7395         * mono/doc/Makefile.am (install-data-local): Handle
7396         DESTDIR.
7397
7398 2004-10-29  Colin Walters  <walters@redhat.com>
7399
7400         * bus/.cvsignore, qt/.cvsignore: Update.
7401
7402 2004-10-29  Colin Walters  <walters@redhat.com>
7403
7404         Patch from Kristof Vansant <de_lupus@pandora.be>
7405
7406         * configure.in: Detect Slackware.
7407         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7408         * bus/rc.messagebus.in: New file.
7409
7410 2004-10-29  Colin Walters  <walters@redhat.com>
7411
7412         * tools/dbus-monitor.c (filter_func): Return
7413         DBUS_HANDLER_RESULT_HANDLED in filter function
7414         for now.  See:
7415         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7416
7417 2004-10-29  Colin Walters  <walters@redhat.com>
7418
7419         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7420
7421         * bus/services.c (bus_registry_acquire_service): 
7422         Correctly retrieve service name from DBusString
7423         for printing.
7424
7425 2004-10-29  Colin Walters  <walters@redhat.com>
7426
7427         * dbus/dbus-glib.h: Update documentation to not
7428         refer to internal APIs.
7429
7430 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7431
7432         * mono/Arguments.cs (GetDBusTypeConstructor):
7433         type.UnderlyingSystemType will return "System.Byte" if you do it
7434         on "byte[]", which is not what we want.  So check the type.IsArray
7435         property and use System.Array instead.
7436
7437 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7438
7439         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7440         the DBusUserInfo structure since this is passed into the function.
7441         This would cause a double free when the function that allocated
7442         the structure would try to free it when an error occured.
7443
7444         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7445         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7446         for service activation to avoid 32bit/64bit parallel install issues
7447
7448 2004-10-21  Colin Walters  <walters@verbum.org>
7449
7450         * AUTHORS: Fix my email address, the @gnu.org one
7451         has been bouncing for some time.  Also add J5.
7452         
7453 2004-10-21  Colin Walters  <walters@verbum.org>
7454
7455         * dbus/dbus-transport-unix.c (do_authentication): Return
7456         authentication status to callers.
7457         (unix_handle_watch): If we completed authentication this round,
7458         don't do another read.  Instead wait until the next iteration,
7459         after we've read any pending data in the auth buffer.
7460         (unix_do_iteration): Ditto.
7461         (unix_handle_watch): Updated for new do_authentication prototype.
7462
7463 2004-10-18  Colin Walters  <walters@verbum.org>
7464
7465         * bus/selinux.c (bus_selinux_enabled): Handle
7466         --disable-selinux case.
7467         
7468 2004-10-18  Colin Walters  <walters@verbum.org>
7469
7470         * bus/selinux.h: Add bus_selinux_enabled.
7471         
7472         * bus/selinux.c (bus_selinux_enabled): Implement it.
7473         
7474         * bus/config-parser.c (struct include): Add
7475         if_selinux_enabled member.
7476         (start_busconfig_child): Parse if_selinux_enabled
7477         attribute for include.
7478         (bus_config_parser_content): Handle it.
7479
7480         * bus/session.conf.in, bus/system.conf.in: Add
7481         inclusion of context mapping to default config files;
7482         conditional on SELinux being enabled.
7483         
7484         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7485         
7486         * test/data/invalid-config-files/badselinux-1.conf, 
7487         test/data/invalid-config-files/badselinux-2.conf:
7488         Test files for bad syntax.
7489         
7490 2004-10-17  Colin Walters  <walters@verbum.org>
7491
7492         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7493         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7494         format specifier mismatches.
7495
7496 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7497
7498         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7499         format string.
7500
7501         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7502         pointer (bug #1540, Leonardo Boiko).
7503
7504 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7505
7506         * mono/BusDriver.cs: Changed BusDriver struct to remove
7507         the ServiceCreated and ServiceDeleted events and replace them
7508         with the new ServiceOwnerChanged event.
7509
7510         * mono/example/BusListener.cs: Added a new example program,
7511         which listens for and reports any ServiceOwnerChanged events
7512         on the bus driver.
7513
7514         * mono/example/Makefile.am (DESTDIR): Build changes for the
7515         new BusListener.cs example.
7516
7517 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7518
7519         * bus/signals.c (bus_match_rule_parse): validate the components of
7520         match rules (bug #1439).
7521
7522         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7523
7524 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7525
7526         * doc/dbus-specification.xml: document ServiceOwnerChanged
7527         signal.
7528         
7529         * bus/driver.c, bus/driver.h, bus/services.c: Use
7530         ServiceOwnerChanged signal instead of ServiceCreated and
7531         ServiceDeleted.
7532         
7533         * bus/dispatch.c: update testcase for the new signal.
7534
7535 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7536
7537         Patch from Nat Friedman <nat@novell.com>
7538
7539         * mono/Makefile.am: A number of small build fixes to allow "make
7540         distcheck" to succeed.
7541
7542         * mono/example/Makefile.am: "make distcheck" fixes.
7543
7544         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7545         key in @srcdir@.
7546
7547         * test/Makefile.am: "make distcheck" fixes.
7548
7549 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7550
7551         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7552
7553         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7554
7555         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7556         messages after the first one (bug #1389).
7557         
7558         * bus/dispatch.c (check_double_hello_message): add a test case for
7559         the double hello message bug.
7560         (check_existent_service_activation): fix check of spawning error.
7561         
7562 2004-09-16  David Zeuthen  <david@fubar.dk>
7563
7564         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7565
7566 2004-09-12  David Zeuthen  <david@fubar.dk>
7567
7568         Patch from Kay Sievers <kay.sievers@vrfy.org>
7569
7570         * bus/bus.c (bus_context_new):
7571         * bus/bus.h:
7572         * bus/main.c (usage)
7573         (main):
7574         Add commandline option --nofork to override configuration file
7575         setting.
7576
7577 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7578
7579         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7580         compilers don't like it (bug #974).
7581
7582 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7583
7584         * qt/connection.*: Applied patch by Jérôme Lodewyck
7585         <lodewyck@clipper.ens.fr> to integrate an existing
7586         connection into the Qt eventloop
7587
7588 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7589
7590         * mono/BusDriver.cs: Added.  This is a class for interacting with
7591         the org.freedesktop.DBus service.
7592
7593         * mono/Message.cs: Added a mechanism to expose the message that is
7594         currently being dispatched via the static Message.Current
7595         property.  Added Message.Sender and Message.Destination
7596         properties.
7597
7598         * mono/Handler.cs: Expose the dispatched message via
7599         Message.Current when handling method calls.
7600
7601         * mono/Service.cs: Expose the dispatched message via
7602         Message.Current when handling signal emissions.
7603         
7604         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7605         Connection.BaseService property.
7606
7607 2004-08-28  Havoc Pennington  <hp@redhat.com>
7608
7609         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7610
7611         More fixes from Steve Grubb
7612         
7613         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7614         (_dbus_listen_tcp_socket): fix fd leak
7615
7616         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7617         EINTR to a bit lower in the code
7618
7619 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7620
7621         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7622         TRUE if we are inquiring about the existence of the built-in
7623         org.freedesktop.DBus service.
7624
7625 2004-08-25  John Palmieri  <johnp@redhat.com>
7626         * bus/config-parser.c:
7627         (struct PolicyType): Add POLICY_CONSOLE
7628         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7629         (start_busconfig_child): Sets up console element when
7630         <policy at_console=""> is encountered in a policy file
7631         (append_rule_from_element): Convert console elements to console
7632         rules.
7633
7634         * bus/policy.c: 
7635         (bus_policy_create_client_policy): Add console rules to the client
7636         policy based on if the client is at the console
7637         (bus_policy_append_console_rule): New function for adding a
7638         console rule to a policy
7639         (bus_policy_merge): Handle console rule merging
7640
7641         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7642         where we check for console user files
7643         
7644         * dbus/dbus-sysdeps.c:
7645         (_dbus_file_exists): New function which checks if the given
7646         file exists
7647         (_dbus_user_at_console): New function which does the system
7648         specific process of checking if the user is at the console
7649
7650         * dbus/dbus-userdb.c:
7651         (_dbus_is_console_user): New function converts a UID to user name
7652         and then calls the system specific _dbus_user_at_console to 
7653         see if the user is at the console and therefor a console user
7654
7655 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7656
7657         * bus/config-parser.c (set_limit):
7658         * bus/dbus-daemon-1.1.in:
7659         * test/data/valid-config-files/many-rules.conf: set the
7660         max_match_rules_per_connection limt from the config file. 
7661
7662         * doc/busconfig.dtd: update the DTD.
7663
7664         * bus/driver.c: remove some unused variables.
7665
7666 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7667
7668         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7669         it's been replaced by dbus_g_bus_get
7670
7671 2004-08-23  Colin Walters  <walters@redhat.com>
7672
7673         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7674
7675         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7676
7677         * bus/selinux.c: Create a thread for policy reload notification.
7678         (bus_selinux_get_policy_root): Implement.
7679
7680         * bus/config-parser.c (start_busconfig_child)
7681         (bus_config_parser_content): Support SELinux-root relative
7682         inclusion.
7683
7684         * configure.in <HAVE_SELINUX>: Add -lpthread.
7685         
7686         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7687         (test_post_hook): Move memory checking into here.
7688         (test_pre_hook, test_post_hook): Move SELinux checks in
7689         here, but conditional on a DBUS_TEST_SELINUX environment
7690         variable.  Unfortunately we can't run the SELinux checks
7691         as a normal user, since they won't have any permissions
7692         for /selinux.  So this will have to be tested manually
7693         for now, until we have virtualization for most of
7694         libselinux.
7695         
7696 2004-08-23  Havoc Pennington  <hp@redhat.com>
7697
7698         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7699         drop supplementary groups, suggested by Steve Grubb
7700
7701 2004-08-20  Colin Walters  <walters@redhat.com>
7702
7703         * bus/config-parser.c (start_busconfig_child): Remove some unused
7704         variables.
7705         
7706         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7707         warning.
7708
7709 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7710
7711         * configure.in: If --enable-mono is passed in, if we can't find
7712         mono error out.
7713
7714         * mono/Makefile.am: Use /gacutil to install assemblies into the
7715         GAC and not /root.
7716
7717 2004-08-12  Havoc Pennington  <hp@redhat.com>
7718
7719         * NEWS: update for 0.22
7720
7721         * configure.in: release 0.22
7722
7723 2004-08-11  Colin Walters  <walters@redhat.com>
7724
7725         * tools/dbus-send.c (main, usage): Add --reply-timeout
7726         argument.
7727
7728 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7729
7730         * bus/bus.c (process_config_first_time_only): get rid of an unused
7731         DBusError that was causing a memoy leak (bug #989).
7732
7733         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7734         fix compilation on Solaris/Forte C (bug #974)
7735
7736         * bus/main.c (main): plug two minuscule memleaks.
7737
7738 2004-08-10  Havoc Pennington  <hp@redhat.com>
7739
7740         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7741
7742 2004-08-09  Havoc Pennington  <hp@redhat.com>
7743
7744         * COPYING: switch to Academic Free License version 2.1 instead of
7745         2.0, to resolve complaints about patent termination clause.
7746
7747 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7748
7749         * README: added documentation for the --enable-python 
7750         configure switch.
7751
7752 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7753
7754         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7755         _unref in the SELinux support.
7756
7757         * doc/busconfig.dtd: update DTD for SELinux support.
7758
7759         * bus/config-loader-libxml.c: fix error handler and parser
7760         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7761
7762         * configure.in: remove the warning about libxml2.
7763
7764         * dbus/dbus-bus.c: silence doxygen warning.
7765
7766 2004-07-31  Colin Walters  <walters@redhat.com>
7767
7768         * configure.in: Move #error in SELinux check to its own line.
7769
7770 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7771
7772         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7773         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7774         dbus_error_set.
7775
7776         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7777         broken by the change in the _SET_OOM macros.
7778
7779 2004-07-31  Colin Walters  <walters@redhat.com>
7780
7781         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7782         BUS_SET_OOM.
7783
7784 2004-07-31  Colin Walters  <walters@redhat.com>
7785
7786         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7787         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7788         AC_MSG_CHECKING.
7789
7790 2004-07-24  Havoc Pennington  <hp@redhat.com>
7791
7792         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7793
7794         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7795         functionality
7796
7797         * configure.in: add --enable-selinux
7798         
7799         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7800
7801         * bus/main.c (main): initialize and shut down selinux
7802
7803         * bus/connection.c: store SELinux ID on each connection, to avoid 
7804         repeated getting of the string context and converting it into 
7805         an ID
7806
7807         * bus/bus.c (bus_context_get_policy): new accessor, though it
7808         isn't used
7809         (bus_context_check_security_policy): check whether the security
7810         context of sender connection can send to the security context of
7811         recipient connection
7812
7813         * bus/config-parser.c: add parsing for <selinux> and <associate>
7814         
7815         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7816         implement dbus_connection_get_unix_fd()
7817
7818         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7819         function, used by the selinux stuff
7820         
7821 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7822
7823         * bus/config-loader-libxml.c: complete the implementation of
7824         libxml backend for config file loader. Doesn't work with full OOM
7825         test yet. 
7826         
7827         * configure.in: change error when selecting libxml into a warning.
7828         
7829         * test/data/invalid-config-files: add two non-well-formed XML
7830         files. 
7831         
7832         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7833         
7834         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7835         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7836         be necessary to read all the buffer. (bug #894)
7837
7838         * bus/activation.c (bus_activation_activate_service): fix a
7839         potential assertion failure (bug #896). Small optimization in the
7840         case of auto-activation messages.
7841
7842         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7843         add test case for byte-through-vararg bug (#901). patch by Kimmo
7844         Hämäläinen. 
7845
7846 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7847
7848         * python/dbus.py:
7849         * python/dbus_bindings.pyx.in:
7850         Add dbus.init_gthreads (), allow emit_signal to pass
7851         arguments to the signal.
7852         
7853 2004-07-24  Havoc Pennington  <hp@redhat.com>
7854
7855         * AUTHORS: add some people, not really comprehensively, let me
7856         know if I missed you
7857
7858 2004-07-24  Havoc Pennington  <hp@redhat.com>
7859
7860         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7861         Owen
7862
7863         * test/Makefile.am (DIST_SUBDIRS): here also
7864
7865 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7866
7867         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7868         breaking build on Solaris, reported by Farhad Saberi on the ML.
7869
7870         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7871         va_arg invocation to account for integer promotion in the case of
7872         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7873
7874         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7875         _dbus_list_get_first_link, not _dbus_list_get_first.
7876
7877         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7878
7879         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7880         handler functions so that the asserts in _dbus_object_subtree_unref
7881         do not fail.
7882
7883         * dbus/dbus-transport-unix.c (do_reading):
7884         _dbus_transport_queue_messages return value is of type
7885         dbus_bool_t, not DBusDispatchStatus.
7886         
7887 2004-07-19  David Zeuthen  <david@fubar.dk>
7888
7889         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7890
7891         * bus/dispatch.c:
7892         (check_get_connection_unix_user): Debug says GetProperty; but the
7893         method is called GetConnectionUnixUser
7894         (check_get_connection_unix_process_id): New function
7895         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7896         also call check_get_connection_unix_process_id()
7897         
7898         * bus/driver.c:
7899         (bus_driver_handle_get_connection_unix_process_id): New function,
7900         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7901         interface
7902         
7903         * dbus/dbus-auth.c:
7904         (handle_server_data_external_mech): Set pid from the credentials
7905         obtained from the socket
7906         
7907         * dbus/dbus-connection.c:
7908         (dbus_connection_get_unix_process_id): New function
7909         
7910         * dbus/dbus-connection.h: 
7911         Add prototype for dbus_connection_get_unix_process_id
7912         
7913         * dbus/dbus-transport.c:
7914         (_dbus_transport_get_unix_process_id): New function
7915         
7916         * dbus/dbus-transport.h:
7917         Add prototype for _dbus_transport_get_unix_process_id
7918         
7919 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7920
7921         * dbus/dbus-message.c: Message counter fix, patch by Christian
7922         Hammond <chipx86@gnupdate.org>
7923
7924 2004-07-18  Seth Nickell  <seth@gnome.org>
7925
7926         * python/dbus.py:
7927         * python/dbus_bindings.pyx.in:
7928         * python/tests/test-client.py:
7929
7930         Add dbus.ByteArray and dbus_bindings.ByteArray
7931         types so that byte streams can be passed back.
7932
7933         Give jdahlin the heaps of credit that are so
7934         rightfully his.
7935         
7936 2004-07-12  Seth Nickell  <seth@gnome.org>
7937
7938         * python/dbus.py:
7939
7940         Add message argument to the default object_method_handler
7941         function.
7942         
7943         * python/dbus_bindings.pyx.in:
7944
7945         Automatically return NIL when passed an empty list
7946         (we can't pass back a list since lists are typed
7947         and we don't have any idea what type the the client
7948         intended the list to be... :-( )
7949         
7950 2004-07-10  Seth Nickell  <seth@gnome.org>
7951
7952         * python/examples/Makefile.am:
7953
7954         Fix distcheck breakage caused by new examples.
7955
7956 2004-07-10  Seth Nickell  <seth@gnome.org>
7957
7958         * python/dbus.py:
7959
7960         Add "message" argument to service-side dbus.Object
7961         methods. This will break existing services written
7962         using the python bindings, but will allow extraction
7963         of all the message information (e.g. who its from).
7964
7965         Add improved "object oriented" signal handling/emission.
7966         
7967         * python/examples/example-service.py:
7968
7969         Nix this example.
7970         
7971         * python/examples/example-signal-emitter.py:
7972         * python/examples/example-signal-recipient.py:
7973
7974         Two new examples that show how to emit and receive
7975         signals using the new APIs.
7976         
7977         * python/examples/example-signals.py:
7978         * python/examples/gconf-proxy-service.py:
7979         * python/examples/gconf-proxy-service2.py:
7980
7981         Add "message" argument to service methods.
7982
7983 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7984
7985         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7986         * dbus/bus.c (dbus_bus_get_unix_user)
7987         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7988         method of org.freedesktop.DBus interface.
7989
7990         * bus/dispatch.c: test case
7991
7992 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7993
7994         * python/Makefile.am: switched include directory from glib/ to dbus/
7995         since dbus-glib.h moved
7996  
7997 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7998
7999         * configure.in: prevent building the gcj stuff and libxml loader
8000         since they are broken.
8001
8002 2004-06-20  Havoc Pennington  <hp@redhat.com>
8003
8004         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8005         codes from the dbus error names
8006         
8007         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8008         as dbus/dbus-glib.h and that breakage is now visible due to 
8009         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8010         
8011         * glib/dbus-glib.h: s/gproxy/g_proxy/
8012
8013         * dbus/dbus-shared.h: new header to hold stuff shared with
8014         binding APIs
8015         
8016         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8017         than dbus-errors.h
8018
8019         * glib/dbus-glib.h (dbus_set_g_error): move to
8020         dbus-glib-lowlevel.h
8021
8022         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8023         of stuff to enable this
8024
8025         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8026
8027         * a bunch of other changes with the same basic "separate glib 
8028         bindings from dbus.h" theme
8029         
8030 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8031
8032         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8033
8034         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8035
8036 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8037
8038         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8039         the reply value of the ServiceExists message.
8040
8041 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8042
8043         * python/dbus_bindings.pyx.in: No longer need to parse path
8044         elements and pass them as arrays of strings.  The C API now
8045         accepts plain path strings.
8046         (_build_parsed_path): removed 
8047
8048 2004-06-07  Havoc Pennington  <hp@redhat.com>
8049
8050         * doc/TODO: remove auto-activation item since it's done; sort
8051         items by importance/milestone
8052
8053 2004-06-07  Havoc Pennington  <hp@redhat.com>
8054
8055         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8056         random signature when using REQUIRED_FIELDS (this hack won't work
8057         in the long term)
8058
8059         * dbus/dbus-message.c: change the signature to be a header field,
8060         instead of message->signature special-case string. Incremental
8061         step forward. Then we can fix up code to send the signature in the
8062         message, then fix up code to validate said signature, then fix up
8063         code to not put the typecodes inline, etc.
8064         (load_one_message): don't make up the signature after the fact
8065         (decode_header_data): require signature field for the known
8066         message types
8067
8068         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8069
8070         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8071
8072 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8073
8074         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8075
8076         * mono/Handler.cs: Updated to follow new path argument for
8077         (un-)registering objects.
8078
8079         * mono/example/Makefile.am:
8080         * mono/Makefile.am:
8081         * configure.in: Bumped required version for mono and use new -pkg
8082         syntax for deps
8083
8084 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8085
8086         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8087         registration functions take the path argument as char* instead of
8088         char**.
8089
8090         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8091         split off the path decompostion part of
8092         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8093         warnings. 
8094
8095         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8096         
8097 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8098  
8099         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8100         machine approach.  A state is implemented as a function that
8101         handles incoming events as specified for that state.
8102         
8103         * doc/dbus-specification.xml: Update auth protocol state machine
8104         specification to match implementation.  Remove some leftover
8105         base64 examples.
8106
8107 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8108
8109         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8110         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8111         quiet doxygen.
8112
8113         * Doxyfile.in: remove deprecated options.
8114
8115         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8116         glib/test-thread.h, glib/test-thread-client.c,
8117         glib/test-thread-server.c, glib/test-profile.c,
8118         glib/test-dbus-glib.c: remove these unused files.
8119
8120 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8121
8122         * dbus/dbus-object-tree.c
8123         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8124         non-fallback handlers (bug #684).
8125         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8126         (find_subtree_recurse): report wether the returned subtree is an
8127         exact match or a "fallback" match higher up in the tree.
8128         (object_tree_test_iteration): update test case.
8129
8130 2004-06-01  Seth Nickell  <seth@gnome.org>
8131
8132         * python/dbus_bindings.pyx.in:
8133         * python/tests/test-client.py:
8134
8135         Round off basic type support. Add dicts (yay!), and 
8136         remaining array types.
8137
8138         Make MessageIter more general so it works for dicts too.
8139
8140         Mark all loop variables as C integers.
8141         
8142 2004-05-31  Havoc Pennington  <hp@redhat.com>
8143
8144         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8145         "in" before "out"
8146
8147         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8148
8149         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8150         option that runs the tests, and start filling in some code
8151         including for starters just dumping the interfaces to stdout
8152
8153         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8154
8155         * test/data/valid-introspection-files/lots-of-types.xml: test of
8156         an example introspection file
8157
8158         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8159         "node" (I think...)
8160
8161 2004-05-31  Seth Nickell  <seth@gnome.org>
8162
8163         * python/dbus_bindings.pyx.in:
8164         * python/tests/test-client.py:
8165
8166         Test Suite: 1
8167         Python Bindings: 0
8168
8169         Fix string array memory trashing bug... oops...
8170
8171 2004-05-30  Seth Nickell  <seth@gnome.org>
8172
8173         * python/dbus.py:
8174
8175         Add a nicer-but-less-flexible alternate API for handling 
8176         calls to virtual objects in dbus.ObjectTree.
8177
8178         Screw up the argument order to the dbus.Object constructor
8179         for consistency with dbus.ObjectTree (and to make dbus_methods
8180         optional for future extension)
8181         
8182         * python/examples/Makefile.am:
8183         * python/examples/gconf-proxy-service.py:
8184         * python/examples/gconf-proxy-service2.py:
8185
8186         Alternate implementation of gconf-proxy-service using the
8187         nicer dbus.ObjectTree API.
8188         
8189         * python/examples/example-service.py:
8190         * python/tests/test-server.py
8191
8192         Reverse the argument order to deal with dbus.Object constructor
8193         changes.
8194         
8195 2004-05-30  Seth Nickell  <seth@gnome.org>
8196
8197         * python/examples/example-client.py:
8198         * python/examples/example-service.py:
8199
8200         Take it back. Lists seem to work but they're broken
8201         in the test suite. Make the base examples use
8202         lists (works fine).
8203
8204 2004-05-30  Seth Nickell  <seth@gnome.org>
8205
8206         * python/dbus_bindings.pyx.in:
8207         * python/tests/test-client.py:
8208
8209         Add some more tests and fix errors that crop up.
8210         Unfortunately, currently it seems like marshalling
8211         and unmarshalling of lists is completely broken :-(
8212
8213 2004-05-30  Seth Nickell  <seth@gnome.org>
8214
8215         * python/dbus_bindings.pyx.in:
8216
8217         Add support for ObjectPath type.
8218
8219         * python/dbus.py:
8220
8221         Refactor message handling code to a common function.
8222         
8223         * python/tests/test-client.py:
8224         * python/tests/test-server.py:
8225
8226         Add tests that check to make sure values of all types
8227         can be echoed from a service w/o mangling.
8228         
8229 2004-05-29  Seth Nickell  <seth@gnome.org>
8230
8231         * python/dbus.py:
8232
8233         Add ObjectTree class which allows implementation
8234         of trees of "virtual" objects. Basically the python
8235         wrapper for "register_fallback".
8236         
8237         * python/examples/Makefile.am
8238         * python/examples/gconf-proxy-client.py:
8239         * python/examples/gconf-proxy-service.py:
8240
8241         Implement a simple GConf proxy service that supports
8242         get/set on string and int GConf keys using the ObjectTree.
8243         
8244 2004-05-29  Seth Nickell  <seth@gnome.org>
8245
8246         * python/dbus.py:
8247         * python/examples/example-client.py:
8248         * python/examples/example-service.py:
8249         * python/examples/list-system-services.py:
8250
8251         Add SessionBus, SystemBus and ActivationBus classes
8252         so you don't need to know the special little BUS_TYPE
8253         flag.
8254         
8255 2004-05-29  Havoc Pennington  <hp@redhat.com>
8256
8257         * bus/config-parser.c (process_test_valid_subdir): temporarily
8258         stop testing config parser OOM handling, since expat has issues
8259         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8260
8261         * bus/dbus-daemon-1.1.in: change requested_reply to
8262         send_requested_reply/receive_requested_reply so we can send the
8263         replies, not just receive them.
8264
8265         * bus/config-parser.c: parse the new
8266         send_requested_reply/receive_requested_reply
8267
8268         * bus/policy.c (bus_client_policy_check_can_send): add
8269         requested_reply argument and use it
8270
8271         * bus/bus.c (bus_context_check_security_policy): pass through
8272         requested_reply status to message send check
8273
8274         * bus/system.conf.in: adapt to requested_reply change
8275         
8276 2004-05-28  Havoc Pennington  <hp@redhat.com>
8277
8278         * test/glib/test-service-glib.c (main): remove unused variable
8279
8280         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8281
8282         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8283         from the enum, no longer in use.
8284
8285         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8286         works right.
8287
8288         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8289         whether error_name passed in is a valid error name.
8290
8291 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8292
8293         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8294         OBJECT_PATH and OBJECT_PATH_ARRAY
8295
8296 2004-05-28  Seth Nickell  <seth@gnome.org>
8297
8298         * python/examples/Makefile.am:
8299
8300         Forget to add Makefile.am. Do not pass go.
8301
8302 2004-05-28  Michael Meeks  <michael@ximian.com>
8303
8304         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8305         fix no int64 case.
8306
8307         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8308
8309         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8310         (_dbus_message_iter_get_basic_type_array): impl.
8311         drastically simplify ~all relevant _get methods to use these.
8312         (_dbus_message_iter_append_basic_array),
8313         (dbus_message_iter_append_basic): impl
8314         drastically simplify ~all relevant _append methods to use these.
8315
8316         * dbus/dbus-message-builder.c (parse_basic_type) 
8317         (parse_basic_array, lookup_basic_type): impl.
8318         (_dbus_message_data_load): prune scads of duplicate /
8319         cut & paste coding.
8320
8321         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8322         (_dbus_demarshal_basic_type): implement,
8323         (demarshal_and_validate_len/arg): beef up debug.
8324         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8325
8326 2004-05-27  Seth Nickell  <seth@gnome.org>
8327
8328         * configure.in:
8329         * python/Makefile.am:
8330
8331         Include the example python apps in the tarball.
8332         
8333         * python/examples/list-system-services.py
8334
8335         Add a python new example that fetches the list of services
8336         from the system bus.
8337         
8338 2004-05-27  Seth Nickell  <seth@gnome.org>
8339
8340         * python/dbus.py:
8341         * python/dbus_bindings.pyx.in:
8342
8343         Fix failure to notify that a signal was not handled,
8344         resulted in hung functions.
8345         
8346 2004-05-25  Colin Walters  <walters@redhat.com>
8347
8348         * tools/dbus-monitor.c (main): Monitor all types of messages.
8349
8350 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8351
8352         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8353         which unregisters the object path and disposes the handler.
8354
8355 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8356  
8357         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8358          
8359         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8360         operands to && so we call dbus_message_iter_next () for the last
8361         argument also.
8362
8363 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8364
8365         * dbus/dbus-object-tree.c
8366         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8367         children even if the requested path isn't registered.
8368         (object_tree_test_iteration): test object_tree_list_registered.
8369
8370         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8371         it to 0.
8372         
8373 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8374
8375         * doc/TODO: Remove resolved items.
8376
8377         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8378         field.
8379         
8380         * bus/connection.c (bus_connections_expect_reply): Enforce the
8381         per-connection limit on pending replies.
8382         
8383         Patch from Jon Trowbridge <trow@ximian.com>:
8384  
8385         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8386         up a watch that triggers a config reload when one end of the pipe
8387         becomes readable.
8388         (signal_handler): Instead of doing the config reload in our SIGHUP
8389         handler, just write to the reload pipe and let the associated
8390         watch handle the reload when control returns to the main loop.
8391  
8392         * bus/driver.c (bus_driver_handle_reload_config): Added.
8393         Implements a ReloadConfig method for requesting a configuration
8394         file reload via the bus driver.
8395  
8396 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8397
8398         * HACKING: Updated release instructions concerning the wiki page.
8399
8400 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8401
8402         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8403         filter against auth->allowed_mechs; we only add allowed mechs in
8404         record_mechanisms().
8405  
8406         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8407         ALLOWED_MECHS to auth-script format so we can set the list of
8408         allowed mechanisms.
8409  
8410         * data/auth/client-out-of-mechanisms.auth-script: New test to
8411         check client disconnects when it is out of mechanisms to try.
8412  
8413         * dbus/dbus-auth.c (process_command): Remove check for lines
8414         longer that 1 MB; we only buffer up maximum 16 kB.
8415  
8416         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8417         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8418         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8419         assume there might be unused bytes.
8420  
8421         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8422         client-out-of-mechs, it is handled in process_reject(). Move check
8423         for max failures to send_rejected(), as it's a server-only thing.
8424
8425         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8426         send_auth(), send_data(), send_rejected(), send_error(),
8427         send_ok(), send_begin() and send_cancel().
8428
8429 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8430
8431         Remove base64 encoding, replace with hex encoding. Original patch
8432         from trow@ximian.com, added error handling.
8433
8434         * dbus/dbus-string.c (_dbus_string_base64_encode)
8435         (_dbus_string_base64_decode): Remove.
8436         (_dbus_string_hex_decode): Add end_return argument so we can
8437         distinguish between OOM and invalid hex encoding.
8438         (_dbus_string_test): Remove base64 tests and add test case for
8439         invalid hex.
8440
8441         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8442         Replace base64 with hex.
8443
8444         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8445         for invalid hex encoded data in auth protocol.
8446
8447 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8448
8449         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8450         leak.
8451
8452 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8453
8454         * mono/dbus-sharp.dll.config.in: Added for GAC
8455         * mono/dbus-sharp.snk: Added for GAC
8456         * mono/Assembly.cs.in: Added for GAC
8457         * mono/Makefile.am: Changes for GAC installation        
8458         * configure.in: Added refs for dbus-sharp.dll.config.in and
8459         Assembly.cs.in. More fixes for mono testing
8460         * mono/example/Makefile.am: Changed var to CSC
8461         * Makefile.am: Changed flag name to DBUS_USE_CSC
8462
8463 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8464
8465         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8466         * mono/doc/*: Added documentation framework
8467         * configure.in: Added monodoc check
8468         * README: Added description of mono configure flags
8469
8470 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8471
8472         * doc/dbus-specification.xml: Added a "Required" column to the 
8473         header fields table and changed the "zero or more" verbage in
8474         the above paragraph to read "The header must contain the required 
8475         named header fields and zero or more of the optional named header 
8476         fields".
8477         * test/data/invalid-messages/*.message: Added the required PATH 
8478         named header field to the tests so that they don't fail on 
8479         'Missing path field'
8480
8481 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8482
8483         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8484         the stack by implicitly defining variable and parameter types and
8485         removing the hack of defining C pointers as python objects and later
8486         casting them.
8487
8488 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8489
8490         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8491
8492 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8493
8494         * mono/DBusType/Dict.cs: Handle empty dicts
8495         * mono/DBusType/Array.cs: Handle empty arrays
8496         * mono/Arguments.cs: Handle empty arguments
8497
8498 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8499
8500         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8501         field
8502
8503 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8504
8505         * test/data/valid-messages/standard-*.message: Update message
8506         test scripts to new header field names.
8507
8508 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8509
8510         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8511         overflow to times_we_did_each_thing array which would chop off the
8512         first character of the failure_dir string. Increased the size of
8513         the array to 7 to reflect the number of random mutation functions
8514         we have.
8515
8516 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8517
8518         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8519         unix_server->watch here, it is unreffed in disconnect.
8520         (_dbus_server_new_for_tcp_socket): convert NULL host to
8521         "localhost" here so we don't append NULL to address.
8522         
8523         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8524         various addresses, including tcp with no explicit host.
8525
8526 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8527
8528         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8529         fix incorrect setting of .name_offset in the HeaderField (it was
8530         off by two bytes, positioned right after the name and typecode)
8531
8532         * bus/bus.c (bus_context_new, bus_context_unref): test before
8533         calling dbus_server_free_data_slot and _dbus_user_database_unref
8534         in case of an error.
8535
8536         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8537         by libdbus-gtool.
8538
8539 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8540
8541         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8542         _dbus_poll() instead of select().
8543
8544 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8545
8546         * bus/main.c (signal_handler): Reload the configuration files
8547         on SIGHUP.
8548         (main): Set up our SIGHUP handler.
8549
8550         * bus/bus.c (struct BusContext): Store the config file, user and
8551         fork flag in the BusContext.
8552         (process_config_first_time_only): Added.  Contains the code
8553         (previously in bus_context_new) for setting up the BusContext from
8554         the BusConfigParser that should only be run the first time the
8555         config files are read.
8556         (process_config_every_time): Added.  Contains the code (previously
8557         in bus_context_new) for setting up the BusContext from the
8558         BusConfigParser that should be run every time the config files are
8559         read.
8560         (load_config): Added.  Builds a BusConfigParser from the config
8561         files and passes the resulting structure off to
8562         process_config_first_time_only (assuming this is the first time)
8563         and process_config_every_time.
8564         (bus_context_new): All of the config-related code has been moved
8565         to process_config_first_time_only and process_config_every_time.
8566         Now this function just does the non-config-related initializations
8567         and calls load_config.
8568         (bus_context_reload_config): Added.
8569
8570 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8571
8572         * bus/driver.c (bus_driver_handle_get_service_owner):
8573         implement a GetServiceOwner method.
8574         * doc/dbus-specification.xml: document it.
8575         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8576         
8577         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8578         implement, using the bus GetServiceOwner method.
8579
8580         * test/glib/test-dbus-glib.c:
8581         use dbus_gproxy_new_for_service_owner so that we can receive the
8582         signal. 
8583
8584 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8585
8586         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8587         dbus/dbus-message.c, dbus/dbus-protocol.h
8588         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8589
8590         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8591         dbus/dbus-message.c, dbus/dbus-protocol.h
8592         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8593
8594         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8595         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8596         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8597
8598         * doc/dbus-specification.xml (Header Fields Table):
8599         s/SERVICE/DESTINATION
8600         s/SENDER_SERVICE/SENDER
8601
8602
8603 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8604
8605         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8606         a few seconds.
8607
8608 2004-04-13  Michael Meeks  <michael@ximian.com>
8609
8610         * glib/dbus-gobject.c (handle_introspect): split out
8611         (introspect_properties): this.
8612         (handle_introspect): implement this.
8613
8614         * test/glib/Makefile.am: use the absolute path so the bus
8615         daemon's chdir ("/") doesn't kill us dead.
8616
8617         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8618
8619 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8620
8621         * bus/config-parser.c (struct BusConfigParser): Added
8622         included_files field.
8623         (seen_include): Added.  Checks whether or not a file has already
8624         been included by any parent BusConfigParser.
8625         (bus_config_parser_new): Copy the parent's included_files.
8626         (include_file): Track which files have been included, and fail on
8627         circular inclusions.
8628         (process_test_valid_subdir): Changed printf to report if we are
8629         testing valid or invalid conf files.
8630         (all_are_equiv): Changed printf to be a bit clearer about
8631         what we are actually doing.
8632         (bus_config_parser_test): Test invalid configuration files.
8633
8634 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8635
8636         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8637         argument.  If non-null, the newly-constructed BusConfigParser will
8638         be initialized with the parent's BusLimits instead of the default
8639         values.
8640         (include_file): When including a config file, pass in
8641         the current parser as the parent and then copy the BusLimits
8642         from the included BusConfigParser pack to the current parser.
8643         (process_test_valid_subdir): Renamed from process_test_subdir.
8644         (process_test_equiv_subdir): Added.  Walks through a directory,
8645         descending into each subdirectory and loading the config files
8646         it finds there.  If any subdirectory contains two config files
8647         that don't produce identical BusConfigParser structs, fail.
8648         For now, the BusConfigParser's BusPolicies are not compared.
8649         (bus_config_parser_test): Call both process_test_valid_subdir and
8650         process_test_equiv_subdir.
8651
8652         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8653         argument and pass it along to the call to bus_config_parser_new.
8654         Also made a few small changes to allow this code to compile.
8655
8656         * bus/config-loader-expat.c (bus_config_load): Take a parent
8657         argument and pass it along to the call to bus_config_parser_new.
8658
8659         * bus/bus.c (bus_context_new): Load the config file
8660         with a NULL parent argument.
8661
8662 2004-03-29  Michael Meeks  <michael@ximian.com>
8663
8664         * glib/dbus-gobject.c (introspect_properties): split
8665         out, fix mangled 'while' flow control.
8666         (introspect_signals): implement.
8667         (handle_introspect): update.
8668
8669 2004-03-29  Michael Meeks  <michael@ximian.com>
8670
8671         * glib/dbus-gobject.c (set_object_property): split out / 
8672         re-work, use the property type, and not the message type(!)
8673         (get_object_property): ditto.
8674
8675         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8676         (dbus_gvalue_marshal): make this code re-usable, needed
8677         for signals too, also on both proxy and server side.
8678         Re-write for more efficiency / readability.
8679
8680 2004-03-29  Michael Meeks  <michael@ximian.com>
8681
8682         * dbus/dbus-message.c
8683         (dbus_message_new_error_printf): impl.
8684
8685         * dbus/dbus-connection.c
8686         (dbus_connection_unregister_object_path): fix warning.
8687
8688         * configure.in: fix no-mono-installed situation.
8689
8690 2004-03-27  Havoc Pennington  <hp@redhat.com>
8691
8692         Patch from Timo Teräs:
8693         
8694         * tools/dbus-send.c (main): if --print-reply, assume type is
8695         method call; support boolean type args
8696         
8697         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8698         bunch of memleak and logic bugs
8699         
8700 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8701
8702         * mono/Arguments.cs:
8703         * mono/Introspector.cs:
8704         * mono/Handler.cs:
8705         * mono/InterfaceProxy.cs:
8706         * mono/Message.cs
8707         * mono/ProxyBuilder.cs:
8708         * mono/Service.cs:
8709         Added InterfaceProxy class to avoid building proxies for every
8710         object.
8711
8712         * dbus-message.h:
8713         * dbus-message.c (dbus_message_append_args_valist)
8714         (dbus_message_iter_get_object_path)
8715         (dbus_message_iter_get_object_path_array)
8716         (dbus_message_iter_append_object_path)
8717         (dbus_message_iter_append_object_path_array):
8718         Added object_path iter functions to handle OBJECT_PATH arguments
8719         
8720 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8721
8722         First checkin of mono bindings.
8723         * configure.in:
8724         * Makefile.am:
8725         Build stuff for the bindings
8726         * dbus-sharp.pc.in: Added for pkgconfig
8727         
8728 2004-03-21  Havoc Pennington  <hp@redhat.com>
8729
8730         * test/test-service.c (main): remove debug spew
8731
8732 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8733
8734         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8735         arrays
8736
8737         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8738         (dbus_message_iter_init_array_iterator)
8739         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8740         indicate whether the iterator is empty
8741
8742         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8743         warnings
8744
8745 2004-03-19  Havoc Pennington  <hp@redhat.com>
8746
8747         * NEWS: 0.21 updates
8748
8749         * configure.in: 0.21
8750
8751         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8752         
8753         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8754         you don't need pyrex to make dist
8755
8756         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8757         sources; run moc
8758         
8759 2004-03-18  Richard Hult  <richard@imendio.com>
8760
8761         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8762         (dbus_message_set_auto_activation): Add doxygen docs.
8763
8764 2004-03-16  Richard Hult  <richard@imendio.com>
8765
8766         * bus/activation.c: (bus_activation_service_created),
8767         (bus_activation_send_pending_auto_activation_messages),
8768         (bus_activation_activate_service):
8769         * bus/activation.h:
8770         * bus/dispatch.c: (bus_dispatch),
8771         (check_nonexistent_service_auto_activation),
8772         (check_service_auto_activated),
8773         (check_segfault_service_auto_activation),
8774         (check_existent_service_auto_activation), (bus_dispatch_test):
8775         * bus/driver.c: (bus_driver_handle_activate_service):
8776         * bus/services.c: (bus_registry_acquire_service):
8777         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8778         (dbus_message_get_auto_activation):
8779         * dbus/dbus-message.h:
8780         * dbus/dbus-protocol.h: Implement auto-activation.
8781         
8782         * doc/dbus-specification.xml: Add auto-activation to the spec.
8783
8784 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8785
8786         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8787         fix a bug with CUSTOM types.
8788
8789         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8790         a unit test for this bug (used to fail).
8791
8792 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8793
8794         * bus/activation.c:
8795         (babysitter_watch_callback): notify all pending activations waiting for
8796           the same exec that the activation failed.
8797         (bus_activation_activate_service): shortcut the activation if we 
8798           already waiting for the same executable to start up.
8799
8800 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8801
8802         * bus/activation.c: 
8803         - Added service file reloading. 
8804           Each service files directory is kept in an hash table in 
8805           BusActivation and each BusActivationEntry knows what .service-file it
8806           was read from. So when you try to activate a service the bus will 
8807           check if it's been updated, removed or if new .service-files has 
8808           been installed.
8809         - Test code at the bottom for the service file reloading.
8810         * bus/test-main.c: (main):
8811         * bus/test.h:
8812         - added service reloading test.
8813         * dbus/dbus-sysdeps.c: 
8814         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8815
8816 2004-03-08  Michael Meeks  <michael@ximian.com>
8817
8818         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8819         bail immediately if disconnected, to avoid busy loop.
8820
8821         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8822         cleanup cut/paste/inefficiency.
8823
8824 2004-03-01  David Zeuthen  <david@fubar.dk>
8825
8826         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8827         bug where args were used twice. This bug resulted in a segfault
8828         on a Debian/PPC system when starting the messagebus daemon. Include
8829         dbus-sysdeps.h for DBUS_VA_COPY
8830
8831         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8832
8833         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8834         appropriate va_copy implementation. From GLib
8835         
8836 2004-02-24  Joe Shaw  <joe@ximian.com>
8837
8838         * bus/services.c (bus_registry_acquire_service): We need to pass
8839         in the service name to dbus_set_error() to prevent a crash.
8840
8841 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8842
8843         * AUTHORS: Reveal my True identity.
8844
8845 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8846
8847         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8848         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8849
8850 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8851
8852         * doc/TODO: Added not about better error check of configuration files.
8853
8854 2003-12-02  Richard Hult  <richard@imendio.com>
8855
8856         * Update AFL version to 2.0 throughout the source files to reflect
8857         the update that was done a while ago.
8858
8859 2003-12-02  Richard Hult  <richard@imendio.com>
8860
8861         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8862         wrote_dict_key to FALSE on the iter that the dict is appended to,
8863         just like when appending other types. Fixes a bug where a dict
8864         couldn't be put inside a dict.
8865         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8866         (message_iter_test, _dbus_message_test): Add test case for dict
8867         inside dict.
8868
8869 2003-12-01  David Zeuthen  <david@fubar.dk>
8870
8871         * python/dbus.py: Add the actual message when calling the reciever
8872         of a signal such that parameters can be inspected. Add the method
8873         remove_signal_receiver
8874         
8875 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8876
8877         * bus/*.[ch]:
8878         * dbus/*.[ch]:
8879         * glib/*.[ch]: Made ref functions return the pointer
8880
8881 2003-11-25  Zack Rusin  <zack@kde.org>
8882
8883         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8884
8885         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8886         wrappers,
8887
8888         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8889         the Integrator and to better fit with the server,
8890
8891 2003-11-24  Zack Rusin  <zack@kde.org>
8892
8893         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8894         the integrator handles it now
8895
8896         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8897         since QTimer wasn't really meant to be used the way DBusTimeout is
8898
8899 2003-11-24  Zack Rusin  <zack@kde.org>
8900
8901         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8902         Integrator class which integrates D-BUS with the Qt event loop,
8903
8904         * qt/connection.h, qt/connection.cpp: Move all the code which
8905         was dealing with D-BUS integration to the Integrator class,
8906         and start using Integrator,
8907
8908 2003-11-23  Zack Rusin  <zack@kde.org>
8909
8910         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8911         wrapper
8912
8913         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8914         switching namespaces to DBusQt, reworking the class,
8915
8916         * Makefile.cvs: switching dependencies so that it matches KDE 
8917         schematics,
8918         
8919         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8920         the library
8921
8922 2003-11-19  Havoc Pennington  <hp@redhat.com>
8923
8924         * NEWS: update
8925
8926         * configure.in: bump version to 0.20
8927
8928         * configure.in (have_qt): add yet another place to look for qt
8929         (someone hand trolltech a .pc file...)
8930
8931 2003-11-01  Havoc Pennington  <hp@redhat.com>
8932
8933         * doc/dbus-specification.xml: add state machine docs on the auth
8934         protocol; just a first draft, I'm sure it's wrong.      
8935
8936 2003-10-28  David Zeuthen  <david@fubar.dk>
8937
8938         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8939         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8940         
8941 2003-10-28  Havoc Pennington  <hp@redhat.com>
8942
8943         * dbus/dbus-message.c (get_next_field): delete unused function
8944
8945 2003-10-28  Havoc Pennington  <hp@redhat.com>
8946
8947         * bus/expirelist.c (do_expiration_with_current_time): detect
8948         failure of the expire_func due to OOM
8949
8950         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8951
8952         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8953         NoReply error that's now created by the bus when the service exits
8954
8955 2003-10-28  Havoc Pennington  <hp@redhat.com>
8956
8957         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8958         tests for set_path, set_interface, set_member, etc.
8959
8960         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8961
8962         * dbus/dbus-message.c (set_string_field): always just delete and
8963         re-append the field; accept NULL for deletion
8964         (re_align_fields_recurse): reimplement
8965         
8966 2003-10-26  Havoc Pennington  <hp@redhat.com>
8967
8968         * dbus/dbus-connection.c: fix docs to properly describe the
8969         disconnected message
8970         (_dbus_connection_notify_disconnected): remove this function; 
8971         we can't synchronously add the disconnected message, we have to 
8972         do it after we've queued any remaining real messages
8973         (_dbus_connection_get_dispatch_status_unlocked): queue the
8974         disconnect message only if the transport has finished queueing all
8975         its real messages and is disconnected.
8976         (dbus_connection_disconnect): update the dispatch status here
8977
8978 2003-10-22  Havoc Pennington  <hp@redhat.com>
8979
8980         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8981
8982         * bus/connection.c (bus_transaction_send_from_driver): set the
8983         destination to the connection's base service
8984
8985 2003-10-20  Havoc Pennington  <hp@redhat.com>
8986
8987         hmm, make check is currently not passing.
8988         
8989         * doc/dbus-specification.xml: add requirement that custom type
8990         names follow the same rules as interface names.
8991
8992         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8993         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8994         'map'
8995
8996         * doc/dbus-specification.xml: update type codes to match
8997         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8998         CUSTOM. Add type OBJECT_PATH to the spec.
8999
9000 2003-10-17  Havoc Pennington  <hp@redhat.com>
9001
9002         * bus/driver.c (create_unique_client_name): use "." as separator
9003         in base service names instead of '-'
9004
9005         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9006         byte at the end of the string
9007
9008         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9009         optimization macros since string validation seems to be a slow
9010         point.
9011         
9012         * doc/dbus-specification.xml: restrict valid
9013         service/interface/member/error names. Add test suite code for the
9014         name validation.
9015
9016         * dbus/dbus-string.c: limit service/interface/member/error names 
9017         to [0-9][A-Z][a-z]_
9018
9019         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9020         format arg to verbose spew
9021
9022         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9023         memory, return instead of g_error
9024
9025         * test/test-service.c (path_message_func): support emitting a
9026         signal on request
9027
9028         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9029         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9030         assuming the activation bus was the session bus so that services
9031         started manually will still register.
9032         (init_connections_unlocked): fix so that in OOM situation we get
9033         the same semantics when retrying the function
9034         
9035         * test/test-service.c (main): change to use path registration, to
9036         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9037         than DBUS_BUS_SESSION
9038
9039 2003-10-16  Havoc Pennington  <hp@redhat.com>
9040
9041         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9042
9043         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9044         coverage of the tests
9045         (coverage-report.txt): don't move the .da and .bbg files around
9046
9047 2003-10-16  Havoc Pennington  <hp@redhat.com>
9048
9049         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9050         to put there
9051
9052 2003-10-16  Havoc Pennington  <hp@redhat.com>
9053
9054         * bus/connection.c (bus_pending_reply_expired): either cancel or
9055         execute, not both
9056         (bus_connections_check_reply): use unlink, not remove_link, as we
9057         don't want to free the link; fixes double free mess
9058
9059         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9060         where no reply was received
9061
9062         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9063         fix a refcount leak
9064
9065         * bus/signals.c (match_rule_matches): add special cases for the
9066         bus driver, so you can match on sender/destination for it.
9067
9068         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9069         DBUS_PRINT_BACKTRACE is set
9070
9071         * dbus/dbus-internals.c: add pid to assertion failure messages
9072
9073         * dbus/dbus-connection.c: add message type code to the debug spew
9074
9075         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9076         sender=foo not service=foo
9077
9078         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9079         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9080         DBUS_ACTIVATION_ADDRESS instead
9081
9082         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9083         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9084
9085         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9086         context struct
9087
9088         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9089         (dbus_message_iter_get_object_path_array): new function (half
9090         finished, disabled for the moment)
9091         
9092         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9093         DBUS_MESSAGE_TYPE_ERROR
9094
9095         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9096         avoid redirecting stderr to /dev/null
9097         (babysit): close stdin if not doing the "exit_with_session" thing
9098
9099         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9100         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9101         stdout/stdin, so things don't get confused
9102         
9103         * bus/system.conf.in: fix to allow replies, I modified .conf
9104         instead of .conf.in again.
9105
9106 2003-10-14  David Zeuthen  <david@fubar.dk>
9107
9108         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9109         argtype to arg_type when raising unknown arg type exception.
9110         Changed type list to reflect the changes in dbus-protocol.h so 
9111         the bindings actually work.
9112
9113 2003-10-14  Havoc Pennington  <hp@redhat.com>
9114
9115         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9116         to have a bug keeping it from outputting the .da files sometimes
9117         (string_get_string): don't append garbage nul bytes to the string.
9118
9119 2003-10-15  Seth Nickell  <seth@gnome.org>
9120
9121         * python/Makefile.am:
9122
9123         Include dbus_h_wrapper.h in the dist tarball.
9124
9125 2003-10-14  Havoc Pennington  <hp@redhat.com>
9126
9127         * bus/bus.c (bus_context_check_security_policy): revamp this to
9128         work more sanely with new policy-based requested reply setup
9129
9130         * bus/connection.c (bus_transaction_send_from_driver): set bus
9131         driver messages as no reply
9132
9133         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9134         requested_reply attribute on allow/deny rules
9135
9136         * bus/system.conf: add <allow requested_reply="true"/>
9137
9138         * bus/driver.c (bus_driver_handle_message): fix check for replies
9139         sent to the bus driver, which was backward. How did this ever work
9140         at all though? I think I'm missing something.
9141
9142         * dbus/dbus-message.c (decode_header_data): require error and
9143         method return messages to have a reply serial field to be valid
9144         (_dbus_message_loader_queue_messages): break up this function;
9145         validate that reply serial and plain serial are nonzero; 
9146         clean up the OOM/error handling.
9147         (get_uint_field): don't return -1 from this
9148         (dbus_message_create_header): fix signed/unsigned bug
9149
9150         * bus/connection.c (bus_connections_expect_reply): save serial of
9151         the incoming message, not reply serial
9152
9153 2003-10-14  Havoc Pennington  <hp@redhat.com>
9154
9155         * bus/connection.c: implement pending reply tracking using
9156         BusExpireList
9157
9158         * bus/bus.c (bus_context_check_security_policy): verify that a
9159         reply is pending in order to allow a reply to be sent. Deny 
9160         messages of unknown type.
9161
9162         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9163
9164         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9165         (bus_context_get_reply_timeout): new
9166
9167 2003-10-13  Seth Nickell  <seth@gnome.org>
9168
9169         * python/Makefile.am:
9170
9171         Pass "make distcheck": remove a couple files from DIST_FILES
9172         that weren't included in the final version.
9173
9174 2003-10-12  Havoc Pennington  <hp@pobox.com>
9175
9176         Added test code that 1) starts an actual bus daemon and 2) uses
9177         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9178         more testing possible, but this is the basic framework.
9179         
9180         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9181         empty proxy lists from the proxy list hash
9182
9183         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9184         couple of return_if_fail checks
9185
9186         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9187         to allocate, so everything is cleared to NULL as it should be.
9188
9189         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9190         source as data to dbus_connection_set_timeout_functions() as the 
9191         timeout functions expected
9192
9193         * test/glib/run-test.sh: add a little script to start up a message
9194         bus and run tests using it
9195
9196         * tools/dbus-launch.1: updates
9197
9198         * tools/dbus-launch.c (main): add --config-file option
9199
9200         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9201         that could never be reached.
9202
9203         * dbus/dbus-message.c (dbus_message_new_method_return) 
9204         (dbus_message_new_error, dbus_message_new_signal): set the
9205         no-reply-expected flag on all these. Redundant, but may
9206         as well be consistent.
9207
9208 2003-10-11  Havoc Pennington  <hp@pobox.com>
9209
9210         * test/decode-gcov.c (function_solve_graph): make broken block
9211         graph a nonfatal error since it seems to be broken. Need to debug
9212         this.
9213
9214         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9215         can't just check type > INVALID < LAST anymore
9216
9217         * dbus/dbus-message.c (dbus_message_get_signature): new function
9218         (dbus_message_has_signature): new function
9219         (struct DBusMessage): add signature field (right now it isn't sent
9220         over the wire, just generated on the fly)
9221         (dbus_message_copy): copy the signature, and init strings to
9222         proper length to avoid some reallocs
9223         (dbus_message_iter_init_array_iterator): return void, since it
9224         can't fail
9225         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9226         (_dbus_message_loader_queue_messages): add silly temporary hack to
9227         fill in message->signature on load
9228
9229         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9230         characters, so they are relatively human-readable.
9231
9232 2003-10-11  Havoc Pennington  <hp@pobox.com>
9233
9234         * dbus/dbus-message.c (_dbus_message_test): add more test
9235         coverage, but #if 0 for now since they uncover a bug 
9236         not fixed yet; I think in re_align_field_recurse()
9237         (re_align_field_recurse): add FIXME about broken assertion
9238
9239         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9240
9241         * bus/connection.c: share a couple code bits with expirelist.c
9242
9243         * bus/expirelist.h, bus/expirelist.c: implement a generic
9244         expire-items-after-N-seconds facility, was going to share between
9245         expiring connections and replies, decided not to use for expiring
9246         connections for now.
9247
9248         * COPYING: include AFL 2.0 (still need to change all the file headers)
9249
9250 2003-10-09  Havoc Pennington  <hp@redhat.com>
9251
9252         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9253         gcc 3.3. Not that we do anything about it yet.
9254
9255         * bus/signals.c (bus_match_rule_parse): impose max length on the
9256         match rule text
9257
9258         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9259
9260 2003-10-09  Havoc Pennington  <hp@redhat.com>
9261
9262         Make matching rules theoretically work (add parser).
9263         
9264         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9265         the case where destination is explicitly specified as bus driver
9266         and someone else is eavesdropping.
9267         
9268         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9269         definition of eavesdropping and assertion
9270
9271         * tools/dbus-send.c (main): use dbus_message_type_from_string
9272
9273         * bus/signals.c (bus_match_rule_parse): implement
9274
9275         * dbus/dbus-message.c (dbus_message_type_from_string): new
9276
9277         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9278
9279 2003-10-02  Havoc Pennington  <hp@pobox.com>
9280
9281         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9282         dbus_gproxy_oneway_call
9283
9284         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9285         (dbus_server_setup_with_g_main): fix to allow calling them more
9286         than once on the same args
9287         (dbus_bus_get_with_g_main): new function
9288
9289 2003-10-02  Havoc Pennington  <hp@redhat.com>
9290
9291         * doc/dbus-tutorial.xml: write some stuff
9292
9293 2003-09-29  Havoc Pennington  <hp@pobox.com>
9294
9295         * configure.in: split checks for Doxygen from XML docs, check for
9296         xmlto
9297
9298         * doc/Makefile.am: XML-ify all the docs, and add a blank
9299         dbus-tutorial.xml
9300
9301 2003-09-29  Havoc Pennington  <hp@pobox.com>
9302
9303         * Merge dbus-object-names branch. To see the entire patch 
9304         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9305         it's huuuuge though.
9306         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9307         
9308 2003-09-28  Havoc Pennington  <hp@pobox.com>
9309
9310         * HACKING: update to reflect new server
9311
9312 2003-09-26  Seth Nickell  <seth@gnome.org>
9313
9314         * python/dbus.py:
9315         * python/examples/example-signals.py:
9316
9317         Start implementing some notions of signals. The API
9318         is really terrible, but they sort of work (with the
9319         exception of being able to filter by service, and to
9320         transmit signals *as* a particular service). Need to
9321         figure out how to make messages come from the service
9322         we registered :-(
9323         
9324         * python/dbus_bindings.pyx.in:
9325
9326         Removed duplicate message_handler callbacks.
9327         
9328 2003-09-25  Havoc Pennington  <hp@redhat.com>
9329
9330         * bus/session.conf.in: fix my mess
9331
9332 2003-09-25  Havoc Pennington  <hp@pobox.com>
9333
9334         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9335
9336 2003-09-25  Seth Nickell  <seth@gnome.org>
9337
9338         * python/examples/example-service.py:
9339
9340         Johan notices complete wrong code in example-service, but
9341         completely wrong in a way that works exactly the same (!).
9342         Johan is confused, how could this possibly work? Example
9343         code fails to serve purpose of making things clear.
9344         Seth fixes.
9345
9346 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9347
9348         * doc/dbus-specification.sgml: don't require header fields
9349         to be 4-byte aligned and specify that fields should be
9350         distinguished from padding by the fact that zero is not
9351         a valid field name.
9352         
9353         * doc/TODO: remove re-alignment item and add item to doc
9354         the OBJECT_PATH type.
9355         
9356         * dbus/dbus-message.c:
9357         (HeaderField): rename the original member to value_offset
9358         and introduce a name_offset member to keep track of where
9359         the field actually begins.
9360         (adjust_field_offsets): remove.
9361         (append_int_field), (append_uint_field),
9362         (append_string_field): don't align the start of the header
9363         field to a 4-byte boundary.
9364         (get_next_field): impl finding the next marhsalled field
9365         after a given field.
9366         (re_align_field_recurse): impl re-aligning a number of
9367         already marshalled fields.
9368         (delete_field): impl deleting a field of any type and
9369         re-aligning any following fields.
9370         (delete_int_or_uint_field), (delete_string_field): remove.
9371         (set_int_field), (set_uint_field): no need to re-check
9372         that we have the correct type for the field.
9373         (set_string_field): ditto and impl re-aligning any
9374         following fields.
9375         (decode_header_data): update to take into account that
9376         the fields aren't 4-byte aligned any more and the new
9377         way to distinguish padding from header fields. Also,
9378         don't exit when there is too much header padding.
9379         (process_test_subdir): print the directory.
9380         (_dbus_message_test): add test to make sure a following
9381         field is re-aligned correctly after field deletion.
9382         
9383         * dbus/dbus-string.[ch]:
9384         (_dbus_string_insert_bytes): rename from insert_byte and
9385         allow the insert of multiple bytes.
9386         (_dbus_string_test): test inserting multiple bytes.
9387
9388         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9389         warning note to docs about having to re-align any
9390         marshalled values following the string.
9391         
9392         * dbus/dbus-message-builder.c:
9393         (append_string_field), (_dbus_message_data_load):
9394         don't align the header field.
9395         
9396         * dbus/dbus-auth.c: (process_test_subdir): print the
9397         directory.
9398         
9399         * test/break-loader.c: (randomly_add_one_byte): upd. for
9400         insert_byte change.
9401         
9402         * test/data/invalid-messages/bad-header-field-alignment.message:
9403         new test case.
9404         
9405         * test/data/valid-messages/unknown-header-field.message: shove
9406         a dict in the unknown field.
9407
9408 2003-09-25  Seth Nickell  <seth@gnome.org>
9409
9410         * python/dbus.py:
9411         * python/dbus_bindings.pyx.in:
9412
9413         Handle return values.
9414         
9415         * python/examples/example-client.py:
9416         * python/examples/example-service.py:
9417
9418         Pass back return values from the service to the client.
9419         
9420 2003-09-24  Seth Nickell  <seth@gnome.org>
9421
9422         * python/dbus.py:
9423
9424         Connect Object methods (when you are sharing an object) up... pass
9425         in a list of methods to be shared. Sharing all the methods just
9426         worked out too weird. You can now create nice Services over the
9427         DBus in Python. :-)
9428         
9429         * python/dbus_bindings.pyx.in:
9430
9431         Keep references to user_data tuples passed into C functions so 
9432         Python doesn't garbage collect on us.
9433
9434         Implement MethodReturn and Error subclasses of Message for creating
9435         DBusMessage's of those types.
9436         
9437         * python/examples/example-client.py:
9438         * python/examples/example-service.py:
9439
9440         Simple example code showing both how create DBus services and objects,
9441         and how to use them.
9442
9443 2003-09-23  Havoc Pennington  <hp@pobox.com>
9444
9445         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9446
9447 2003-09-23  Havoc Pennington  <hp@redhat.com>
9448
9449         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9450         (dbus_gproxy_disconnect_signal): implement
9451         (dbus_gproxy_manager_remove_signal_match): implement
9452         (dbus_gproxy_manager_add_signal_match): implement
9453         (dbus_gproxy_oneway_call): implement
9454
9455 2003-09-23  Havoc Pennington  <hp@pobox.com>
9456
9457         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9458         subclass. This means dropping the transparent thread safety of the
9459         proxy; you now need a separate proxy per-thread, or your own
9460         locking on the proxy. Probably right anyway.
9461         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9462
9463 2003-09-22  Havoc Pennington  <hp@redhat.com>
9464
9465         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9466
9467 2003-09-21  Seth Nickell  <seth@gnome.org>
9468
9469         First checkin of the Python bindings.
9470         
9471         * python/.cvsignore:
9472         * python/Makefile.am:
9473         * python/dbus_bindings.pyx.in:
9474         * python/dbus_h_wrapper.h:
9475
9476         Pieces for Pyrex to operate on, building a dbus_bindings.so
9477         python module for low-level access to the DBus APIs.
9478         
9479         * python/dbus.py:
9480
9481         High-level Python module for accessing DBus objects.
9482
9483         * configure.in:
9484         * Makefile.am:
9485
9486         Build stuff for the python bindings.
9487
9488         * acinclude.m4:
9489
9490         Extra macro needed for finding the Python C header files.
9491
9492 2003-09-21  Havoc Pennington  <hp@pobox.com>
9493
9494         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9495         implementing the proxy manager, didn't get very far.
9496
9497         * dbus/dbus-bus.c (dbus_bus_add_match): new
9498         (dbus_bus_remove_match): new
9499
9500         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9501         path_name argument; adjust the other not-yet-implemented 
9502         gproxy constructors to be what I think they should be.
9503
9504 2003-09-21  Havoc Pennington  <hp@pobox.com>
9505
9506         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9507         by default for message bus connections.
9508
9509         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9510         exit_on_disconnect flag is set and we process the disconnected
9511         signal.
9512         (dbus_connection_set_exit_on_disconnect): new function
9513
9514 2003-09-21  Havoc Pennington  <hp@pobox.com>
9515
9516         Get matching rules mostly working in the bus; only actually
9517         parsing the rule text remains. However, the client side of
9518         "signal connections" hasn't been started, this patch is only the
9519         bus side.
9520         
9521         * dbus/dispatch.c: fix for the matching rules changes
9522         
9523         * bus/driver.c (bus_driver_handle_remove_match)
9524         (bus_driver_handle_add_match): send an ack reply from these
9525         method calls
9526
9527         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9528         arguments, reported by Seth Nickell
9529
9530         * bus/config-parser.c (append_rule_from_element): support
9531         eavesdrop=true|false attribute on policies so match rules 
9532         can be prevented from snooping on the system bus.
9533
9534         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9535         and "destination" in attribute names; fix some docs bugs; 
9536         add eavesdrop=true|false attribute
9537
9538         * bus/driver.c (bus_driver_handle_add_match)
9539         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9540         messages
9541
9542         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9543         rid of broadcast service concept, signals are just always broadcast
9544
9545         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9546         mostly implement matching rules stuff (currently only exposed as signal
9547         connections)
9548
9549 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9550
9551         * doc/dbus-specification.sgml: Change the header field name
9552         to be an enum and update the rest of the spec to reference
9553         the fields using the conventinal name.
9554
9555         * dbus/dbus-protocol.h: update to reflect the spec.
9556
9557         * doc/TODO: add item to remove the 4 byte alignment requirement.
9558         
9559         * dbus/dbus-message.c: Remove the code to generalise the
9560         header/body length and serial number header fields as named
9561         header fields so we can reference field names using the 
9562         protocol values.
9563         (append_int_field), (append_uint_field), (append_string_field):
9564         Append the field name as a byte rather than four chars.
9565         (delete_int_or_uint_field), (delete_string_field): reflect the
9566         fact that the field name and typecode now occupy 4 bytes instead
9567         of 8.
9568         (decode_string_field), (decode_header_data): update to reflect
9569         protocol changes and move the field specific encoding from
9570         decode_string_field() back into decode_header_data().
9571         
9572         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9573         Add utility to aid debugging.
9574         
9575         * dbus/dbus-message-builder.c:
9576         (append_string_field), (_dbus_message_data_load): Update to
9577         reflect protocol changes; Change the FIELD_NAME directive
9578         to HEADER_FIELD and allow it to take the field's conventional
9579         name rather than the actual value.
9580         
9581         * test/data/*/*.message: Update to use HEADER_FIELD instead
9582         of FIELD_NAME; Always align the header on an 8 byte boundary
9583         *before* updating the header length.
9584
9585 2003-09-15  Havoc Pennington  <hp@pobox.com>
9586
9587         * dbus/dbus-pending-call.c: add the get/set object data
9588         boilerplate as for DBusConnection, etc. Use generic object data
9589         for the notify callback.
9590
9591         * glib/dbus-gparser.c (parse_node): parse child nodes
9592
9593         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9594         
9595         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9596         contain functions shared between the convenience lib and the
9597         installed lib
9598
9599         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9600         -export-symbols-regex to the GLib library
9601
9602         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9603         fix the locking in here, and add a default handler for
9604         Introspect() that just returns sub-nodes.
9605
9606 2003-09-14  Havoc Pennington  <hp@pobox.com>
9607
9608         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9609         rather than gfoo consistent
9610
9611         * glib/dbus-gproxy.h: delete for now, move contents to
9612         dbus-glib.h, because the include files don't work right since we
9613         aren't in the dbus/ subdir.
9614         
9615         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9616         (dbus_gproxy_end_call): finish
9617         (dbus_gproxy_begin_call): finish
9618
9619         * glib/dbus-gmain.c (dbus_set_g_error): new
9620
9621         * glib/dbus-gobject.c (handle_introspect): include information
9622         about child nodes in the introspection
9623
9624         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9625         function to help in implementation of introspection
9626
9627         * dbus/dbus-object-tree.c
9628         (_dbus_object_tree_list_registered_and_unlock): new function
9629
9630 2003-09-12  Havoc Pennington  <hp@pobox.com>
9631
9632         * glib/dbus-gidl.h: add common base class for all the foo_info
9633         types
9634
9635         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9636         similar to kdcop
9637
9638         * test/Makefile.am: try test srcdir -ef . in addition to test
9639         srcdir = ., one of them should work (yeah lame)
9640         
9641         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9642         library
9643         
9644         * glib/dbus-gparser.h: make description_load routines return
9645         NodeInfo* not Parser*
9646
9647         * Makefile.am (SUBDIRS): build test dir after all library dirs
9648
9649         * configure.in: add GTK+ detection
9650
9651 2003-09-07  Havoc Pennington  <hp@pobox.com>
9652
9653         * Make Doxygen contented.
9654
9655 2003-09-07  Havoc Pennington  <hp@pobox.com>
9656
9657         * doc/dbus-specification.sgml: more updates
9658
9659 2003-09-06  Havoc Pennington  <hp@pobox.com>
9660
9661         * doc/dbus-specification.sgml: partial updates
9662
9663         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9664         zillionth time; hopefully I edited the right file this time.
9665
9666         * bus/config-parser.c (append_rule_from_element): support
9667         send_type, send_path, receive_type, receive_path
9668
9669         * bus/policy.c: add message type and path to the list of things
9670         that can be "firewalled"
9671
9672 2003-09-06  Havoc Pennington  <hp@pobox.com>
9673
9674         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9675         (dbus_connection_register_object_path): make this not handle
9676         messages to paths below the given path
9677
9678 2003-09-03  Havoc Pennington  <hp@pobox.com>
9679
9680         * test/glib/Makefile.am: add this with random glib-linked test
9681         programs
9682
9683         * glib/Makefile.am: remove the random test programs from here,
9684         leave only the unit tests
9685
9686         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9687         uscore/javacaps conversion, and fix     
9688         (get_object_property, set_object_property): change to .NET
9689         convention for mapping props to methods, set_FooBar/get_FooBar, 
9690         since one language has such a convention we may as well copy it. 
9691         Plus real methods in either getFooBar or get_foo_bar style won't 
9692         collide with this convention.
9693
9694 2003-09-01  Havoc Pennington  <hp@pobox.com>
9695
9696         * glib/dbus-gparser.c: implement
9697
9698         * glib/dbus-gobject.c: start implementing skeletons support
9699
9700         * configure.in: when disabling checks/assert, also define
9701         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9702
9703 2003-09-01  Havoc Pennington  <hp@pobox.com>
9704
9705         * glib/Makefile.am: rearrange a bunch of files and get "make
9706         check" framework set up
9707
9708 2003-08-31  Havoc Pennington  <hp@pobox.com>
9709
9710         * fix build with --disable-tests
9711
9712 2003-08-30  Havoc Pennington  <hp@pobox.com>
9713
9714         * dbus/dbus-connection.c: purge DBusMessageHandler
9715
9716         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9717         use callbacks everywhere
9718
9719 2003-08-30  Havoc Pennington  <hp@pobox.com>
9720
9721         * test/data/valid-config-files/system.d/test.conf: change to 
9722         root for the user so warnings don't get printed
9723
9724         * dbus/dbus-message.c: add dbus_message_get_path,
9725         dbus_message_set_path
9726         
9727         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9728         dispatching to a path
9729
9730         * dbus/dbus-string.c (_dbus_string_validate_path): add
9731
9732         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9733         (_dbus_marshal_object_path): implement
9734
9735         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9736         to contain the path to the target object
9737         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9738         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9739
9740 2003-08-30  Havoc Pennington  <hp@pobox.com>
9741
9742         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9743
9744 2003-08-29  Havoc Pennington  <hp@pobox.com>
9745
9746         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9747         registered
9748         (struct DBusObjectSubtree): shrink this
9749         a lot, since we may have a lot of them
9750         (_dbus_object_tree_free_all_unlocked): implement
9751         (_dbus_object_tree_dispatch_and_unlock): implement
9752
9753 2003-08-29  Havoc Pennington  <hp@pobox.com>
9754
9755         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9756
9757 2003-08-28  Havoc Pennington  <hp@pobox.com>
9758
9759         purge DBusObjectID
9760         
9761         * dbus/dbus-connection.c: port to no ObjectID, create a
9762         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9763
9764         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9765         everything except UnregisterFunction and MessageFunction
9766         
9767         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9768         add DBUS_TYPE_OBJECT_PATH
9769         
9770         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9771         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9772         path-based object IDs
9773
9774 2003-08-25  Havoc Pennington  <hp@pobox.com>
9775
9776         Just noticed that dbus_message_test is hosed, I wonder when I
9777         broke that. I thought make check was passing earlier...
9778         
9779         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9780         container tree, will replace most of dbus-object-registry
9781
9782         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9783         screwup
9784
9785 2003-08-19  Havoc Pennington  <hp@pobox.com>
9786
9787         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9788         (dbus_message_is_error): fix this function
9789
9790         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9791         match
9792
9793         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9794         reflect clarified man page
9795         (bus_client_policy_check_can_send): ditto
9796         
9797         * bus/session.conf.in: fixup
9798
9799         * bus/system.conf.in: fixup
9800
9801 2003-08-18  Havoc Pennington  <hp@redhat.com>
9802
9803         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9804
9805         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9806         dumb bug created earlier (wrong order of args to
9807         decode_header_data())
9808         
9809         * tools/dbus-send.c: port
9810
9811         * tools/dbus-print-message.c (print_message): port
9812
9813         * test/data/*messages: port all messages over
9814         
9815         * dbus/dbus-message-builder.c: support including 
9816         message type
9817         
9818         * bus/driver.c: port over
9819         
9820         * bus/dispatch.c: port over to new stuff
9821
9822         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9823         rename disconnect signal to "Disconnected"
9824
9825 2003-08-17  Havoc Pennington  <hp@pobox.com>
9826
9827         This doesn't compile yet, but syncing up so I can hack on it from
9828         work. What are branches for if not broken code? ;-)
9829         
9830         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9831         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9832         DBUS_HEADER_FIELD_ERROR_NAME
9833         
9834         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9835         for the interface+member pairs
9836         (string_hash): change to use g_str_hash algorithm
9837         (find_direct_function, find_string_function): refactor these to
9838         share most code.
9839         
9840         * dbus/dbus-message.c: port all of this over to support 
9841         interface/member fields instead of name field
9842
9843         * dbus/dbus-object-registry.c: port over
9844         
9845         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9846         from _dbus_string_validate_name
9847
9848         * bus/dbus-daemon-1.1: change file format for the 
9849         <deny>/<allow> stuff to match new message naming scheme
9850
9851         * bus/policy.c: port over
9852
9853         * bus/config-parser.c: parse new format
9854         
9855 2003-08-16  Havoc Pennington  <hp@pobox.com>
9856
9857         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9858         broken assertion
9859
9860         * glib/dbus-gproxy.c: some hacking
9861
9862 2003-08-15  Havoc Pennington  <hp@redhat.com>
9863
9864         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9865
9866         * dbus/dbus-connection.c
9867         (dbus_connection_send_with_reply_and_block): factor out internals;
9868         change to convert any error replies to DBusError instead of 
9869         returning them as a message
9870
9871 2003-08-15  Havoc Pennington  <hp@pobox.com>
9872
9873         * dbus/dbus-connection.c, 
9874         dbus/dbus-pending-call.c: Finish the pending call stuff
9875
9876 2003-08-14  Havoc Pennington  <hp@redhat.com>
9877
9878         * dbus/dbus-pending-call.c: start on new object that will replace
9879         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9880         replies
9881
9882         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9883         with remote interfaces
9884
9885         * dbus/dbus-gidl.c: do the boring boilerplate in here
9886         
9887 2003-08-12  Havoc Pennington  <hp@pobox.com>
9888
9889         * bus/dispatch.c (bus_dispatch): make this return proper 
9890         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9891
9892         * dbus/dbus-errors.c (dbus_set_error): use
9893         _dbus_string_append_printf_valist
9894
9895         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9896         (_dbus_string_append_printf): new
9897
9898         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9899         UNKNOWN_METHOD
9900
9901         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9902         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9903         message is unhandled.
9904
9905 2003-08-11  Havoc Pennington  <hp@pobox.com>
9906
9907         * bus/test.c (client_disconnect_handler): change to return
9908         HANDLED (would have been REMOVE_MESSAGE)
9909
9910         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9911         HANDLED/NOT_YET_HANDLED instead of
9912         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9913         should be used.
9914
9915 2003-08-10  Havoc Pennington  <hp@pobox.com>
9916
9917         * tools/dbus-send.c (main): add --type argument, for now
9918         supporting only method_call and signal types.
9919
9920         * tools/dbus-print-message.c: print message type
9921
9922         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9923         init connection->objects
9924
9925         * doc/dbus-specification.sgml: fix sgml
9926
9927         * bus/*.c: port over to object-instance API changes
9928
9929         * test/test-service.c: ditto
9930         
9931         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9932         name, we will have to fix up the rest of the code to also handle
9933         this
9934         (dbus_message_new): generic message-creation call
9935         (set_string_field): allow appending name field
9936
9937 2003-08-06  Havoc Pennington  <hp@pobox.com>
9938
9939         * dbus/dbus-object-registry.c: implement signal connection 
9940         and dispatch
9941
9942         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9943
9944         * dbus/dbus-internals.c (_dbus_memdup): new function
9945
9946 2003-08-02  Havoc Pennington  <hp@pobox.com>
9947
9948         * dbus/dbus-message.c (dbus_message_get_no_reply)
9949         (dbus_message_set_no_reply): add these and remove
9950         set_is_error/get_is_error
9951
9952         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9953         remove the ERROR flag, since there's now an ERROR type
9954
9955 2003-08-01  Havoc Pennington  <hp@pobox.com>
9956
9957         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9958         implement
9959
9960         * dbus/dbus-message.c (dbus_message_get_type): new function
9961
9962         * doc/dbus-specification.sgml: add "type" byte to messages
9963
9964 2003-08-01  Havoc Pennington  <hp@pobox.com>
9965
9966         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9967         a message type enum to distinguish kinds of message
9968         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9969         that need not be replied to
9970
9971 2003-08-01  Havoc Pennington  <hp@pobox.com>
9972
9973         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9974         (unpack_8_octets): fix no-64-bit-int bug
9975
9976         * dbus/dbus-object-registry.c (validate_id): validate the 
9977         connection ID bits, not just the instance ID.
9978
9979         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9980         the connection-global 33 bits of the object ID
9981
9982         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9983         object ID in the new way
9984
9985         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9986         define server/client/instance bits.
9987
9988 2003-07-30  Havoc Pennington  <hp@pobox.com>
9989
9990         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9991         build
9992
9993 2003-07-13  Havoc Pennington  <hp@pobox.com>
9994
9995         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9996         fields to DBusObjectVTable and DBusObjectInfo
9997
9998 2003-07-12  Havoc Pennington  <hp@pobox.com>
9999
10000         * dbus/dbus-object-registry.c: implement unit test,
10001         fix bugs discovered in process
10002
10003         * dbus/dbus-connection.c: remove handler_table and
10004         register_handler(), add DBusObjectRegistry usage
10005
10006         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10007         (dbus_object_id_set_null): new functions
10008
10009 2003-07-08  Havoc Pennington  <hp@pobox.com>
10010
10011         * dbus/dbus-object.c: implement some of this
10012
10013         * dbus/dbus-object-registry.c
10014         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10015         param
10016         (_dbus_object_registry_new): handle OOM
10017
10018 2003-07-08  Havoc Pennington  <hp@pobox.com>
10019
10020         * dbus/dbus-object.h: sketch out an API for registering objects
10021         with a connection, that allows us to use as little as 24 bytes
10022         per object and lets application code represent an object in 
10023         any conceivable way.
10024
10025         * dbus/dbus-object-registry.c: implement the hard bits of the
10026         DBusConnection aspect of object API. Not yet wired up.
10027         
10028 2003-07-06  Havoc Pennington  <hp@pobox.com>
10029
10030         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10031         (_dbus_marshal_object_id): new
10032         (_dbus_demarshal_object_id): new
10033         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10034         consolidate identical switch cases. Don't conditionalize handling
10035         of DBUS_TYPE_UINT64, need to handle the type always.
10036         (_dbus_marshal_validate_arg): consolidate identical cases, and
10037         handle DBUS_TYPE_OBJECT_ID
10038
10039         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10040
10041         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10042
10043 2003-09-28  Havoc Pennington  <hp@pobox.com>
10044
10045         * real 0.13 release
10046
10047 2003-09-28  Havoc Pennington  <hp@pobox.com>
10048
10049         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10050         to work with Debian db2html
10051
10052 2003-09-28  Havoc Pennington  <hp@pobox.com>
10053
10054         * configure.in: 0.13
10055
10056         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10057         stylesheet-images for benefit of Debian
10058         
10059         Change back to using filesystem-linked sockets for the system
10060         bus, so only root can create the default system bus address.
10061         
10062         * bus/system.conf.in: change to use
10063         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10064
10065         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10066         from here.
10067
10068         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10069         here, and AC_DEFINE DBUS_SYSTEM_PATH
10070
10071 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10072
10073         * doc/TODO:
10074         * doc/busconfig.dtd:
10075         Add busconfig DTD.
10076         
10077 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10078
10079         * doc/dbus-specification.sgml:
10080         Add activation reply values.
10081         
10082 2003-08-05  Havoc Pennington  <hp@redhat.com>
10083
10084         * configure.in: 0.12
10085
10086 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10087
10088         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10089         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10090         (add_watch), (remove_watch), (create_source):
10091         Refcount fds, fixes some reentrancy issues.
10092         
10093 2003-07-30  Havoc Pennington  <hp@redhat.com>
10094
10095         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10096         bus address to be abstract if we have abstract sockets
10097
10098         * NEWS: update
10099
10100 2003-07-28  Havoc Pennington  <hp@redhat.com>
10101
10102         * bus/messagebus.in: fix to avoid processname/servicename 
10103         confusion, from Michael Kearey
10104         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10105         
10106 2003-07-23  Havoc Pennington  <hp@pobox.com>
10107
10108         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10109         fix from Andy Hanton to remove broken "+1"
10110
10111 2003-07-16  Havoc Pennington  <hp@pobox.com>
10112
10113         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10114         babysitter process, as suggested by Thomas Leonard, so 
10115         an "eval `dbus-launch --exit-with-session`" will actually 
10116         return
10117
10118 2003-07-16  Havoc Pennington  <hp@pobox.com>
10119
10120         * configure.in: print out EXPANDED_* variables in the summary at
10121         the end; clean up the code that computes EXPANDED_ variables and
10122         get the ones using exec_prefix right. Should make things work
10123         when you build without --prefix
10124
10125 2003-06-29  Havoc Pennington  <hp@pobox.com>
10126
10127         * mono/Test.cs (class Test): fire up a main loop and run it
10128
10129         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10130         done once, the app has to do it
10131
10132 2003-06-26  Havoc Pennington  <hp@pobox.com>
10133
10134         * mono/Connection.cs: set up connection with the glib main loop
10135
10136 2003-07-01  Havoc Pennington  <hp@redhat.com>
10137
10138         * doc/dbus-specification.sgml: clarify the format of a type code,
10139         change suggested by Jim Blandy
10140
10141 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10142
10143         * doc/Makefile.am:
10144         * tools/Makefile.am: Don't assume srcdir == builddir.
10145
10146         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10147         the allocated block.
10148         (_dbus_memory_test): New function.
10149         * dbus/dbus-test.h: Add _dbus_memory_test ().
10150         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10151
10152         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10153         of %c%c%c%c.
10154         (dbus_message_new): Remove obsolete @todo.
10155
10156         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10157         (_dbus_marshal_set_uint64): Fix comment.
10158
10159         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10160         hardcode FIELD_REPLY_SERIAL.
10161
10162         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10163         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10164
10165         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10166         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10167
10168 2003-06-24  Havoc Pennington  <hp@pobox.com>
10169
10170         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10171
10172 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10173
10174         * configure.in:
10175         * gcj/.cvsignore:
10176         * gcj/Hello.java:
10177         * gcj/Makefile.am:
10178         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10179         * gcj/org/.cvsignore:
10180         * gcj/org/Makefile.am:
10181         * gcj/org/freedesktop/.cvsignore:
10182         * gcj/org/freedesktop/Makefile.am:
10183         * gcj/org/freedesktop/dbus/.cvsignore:
10184         * gcj/org/freedesktop/dbus/Makefile.am:
10185         * gcj/org/freedesktop/dbus/Message.java: (Message),
10186         (Message.Message):
10187         * gcj/org/freedesktop/dbus/natMessage.cc:
10188         Fix the build system.
10189
10190 2003-06-22  Havoc Pennington  <hp@pobox.com>
10191
10192         * mono/Connection.cs: add more bindings
10193
10194         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10195         more than once.
10196
10197 2003-06-22  Havoc Pennington  <hp@pobox.com>
10198
10199         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10200         Start wrapping more stuff.
10201
10202 2003-06-22  Havoc Pennington  <hp@pobox.com>
10203
10204         * mono/Message.cs: implement Message.Wrap() that ensures we only
10205         have a single C# wrapper per DBusMessage, assuming it works which
10206         it probably doesn't.
10207
10208         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10209         (dbus_message_free_data_slot): new
10210         (dbus_message_set_data): new
10211         (dbus_message_get_data): new
10212
10213 2003-06-22  Havoc Pennington  <hp@pobox.com>
10214
10215         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10216         (_dbus_data_slot_allocator_alloc): rework these to keep a
10217         reference count on each slot and automatically manage a global
10218         slot ID variable passed in by address
10219
10220         * bus/bus.c: convert to new dataslot API
10221
10222         * dbus/dbus-bus.c: convert to new dataslot API
10223
10224         * dbus/dbus-connection.c: convert to new dataslot API
10225
10226         * dbus/dbus-server.c: convert to new dataslot API
10227
10228         * glib/dbus-gmain.c: ditto
10229
10230         * bus/test.c: ditto
10231
10232         * bus/connection.c: ditto
10233
10234 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10235
10236         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10237         after the gcj checks so that the correct configuration tags
10238         will be added to libtool.
10239
10240         * dbus-glib-1.pc.in: No need to specify any includes since
10241         dbus-1.pc.in has those.
10242
10243 2003-06-22  Havoc Pennington  <hp@pobox.com>
10244
10245         * mono/*, gcj/*, configure.in, Makefile.am:
10246         Check in makefiles and subdirs for mono and gcj bindings.
10247         Neither binding actually exists, just trying to get through
10248         all the build and other boring bits.
10249
10250 2003-06-21  Philip Blundell  <philb@gnu.org>
10251
10252         * tools/dbus-monitor.1: Updated.
10253
10254         * tools/dbus-send.1: Likewise.
10255
10256 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10257
10258         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10259         for hangup and error after checking read so we won't discard
10260         pending data if both hangup and read are set.
10261
10262 2003-06-19  Philip Blundell  <philb@gnu.org>
10263
10264         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10265
10266         * tools/dbus-send.c: Accept both --system and --session.
10267
10268         * tools/dbus-monitor.c: Same here.
10269
10270 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10271
10272         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10273         from C++ (Patch by Miloslav Trmac).
10274
10275 2003-06-15  Joe Shaw  <joe@assbarn.com>
10276
10277         * configure.in: Check for socklen_t.
10278
10279         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10280
10281         * test/test-segfault.c: Add #include <sys/time.h>
10282
10283         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10284         dbus-launch needs it.
10285
10286 2003-06-09  Havoc Pennington  <hp@redhat.com>
10287
10288         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10289         SUN_LEN, it breaks abstract socket usage
10290
10291         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10292         starts of lines.
10293
10294 2003-06-04  Havoc Pennington  <hp@pobox.com>
10295
10296         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10297         using unix:abstract=/foo, and when listening in a tmpdir
10298         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10299
10300         * dbus/dbus-transport.c (_dbus_transport_open): support
10301         unix:abstract=/foo
10302
10303         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10304         support abstract sockets
10305
10306         * dbus/dbus-transport-unix.c
10307         (_dbus_transport_new_for_domain_socket): support abstract sockets
10308
10309         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10310         toggle as an argument, implement abstract namespace support
10311         (_dbus_listen_unix_socket): ditto
10312
10313         * configure.in: add --enable-abstract-sockets and implement
10314         a configure check for autodetection of the right value.
10315
10316 2003-06-01  Havoc Pennington  <hp@pobox.com>
10317
10318         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10319         in /tmp (though on Linux this will end up being useless,
10320         when we add abstract namespace support)
10321
10322         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10323         subst'ing it
10324
10325 2003-05-28  Colin Walters  <walters@verbum.org>
10326
10327         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10328
10329 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10330
10331         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10332
10333 2003-05-17  Colin Walters  <walters@gnu.org>
10334
10335         * tools/dbus-send.c: Don't exit with an error code if --help was
10336         passed.  Default to using the session bus instead of the system
10337         one.
10338
10339         * tools/dbus-launch.c: Ditto.
10340
10341         * tools/dbus-monitor.c: Ditto.
10342
10343         * tools/dbus-send.1: Update with new arguments.
10344
10345         * tools/dbus-launch.c: Emit code to export variables.  New
10346         arguments -s and -c to specify shell syntax, and a bit of code to
10347         autodetect syntax.  Also, allow specifying a program to run.
10348
10349         * tools/dbus-launch.1: Update with new arguments.
10350
10351         * tools/dbus-send.1: Ditto.
10352
10353         * tools/dbus-monitor.1: Ditto.
10354
10355 2003-05-17  Havoc Pennington  <hp@pobox.com>
10356
10357         * bus/config-parser.c (merge_included): merge in policies from
10358         child configuration file.
10359
10360         * bus/policy.c (bus_policy_merge): function to merge two policies
10361         together
10362
10363 2003-05-16  Havoc Pennington  <hp@redhat.com>
10364
10365         * dbus/dbus-connection.c: disable verbose lock spew
10366
10367         * tools/dbus-send.c: add --print-reply command line option
10368
10369         * tools/dbus-print-message.h (print_message): new util function
10370         shared by dbus-send and dbus-monitor
10371
10372         * tools/dbus-monitor.c (handler_func): exit on disconnect
10373
10374         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10375         disconnected, don't try to use the read_watch
10376
10377         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10378         so we can find this bug more easily
10379
10380 2003-05-16  Havoc Pennington  <hp@redhat.com>
10381
10382         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10383         NULL as DBusHashTable is annoyingly likely to do.
10384
10385 2003-05-16  Colin Walters  <walters@verbum.org>
10386
10387         * tools/dbus-monitor.c: Add --session argument and usage()
10388         function.
10389
10390         * tools/dbus-monitor.1: Update with new --session arg.
10391
10392         * bus/Makefile.am (install-data-hook): Create
10393         $(libdir)/dbus-1.0/services so that the session bus is happy.
10394
10395 2003-05-15  Havoc Pennington  <hp@redhat.com>
10396
10397         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10398         on non-x86. ifdef's are evil.
10399
10400 2003-05-15  Havoc Pennington  <hp@redhat.com>
10401
10402         * configure.in: 0.11
10403
10404         * NEWS: update
10405
10406         * bus/Makefile.am (initddir): apparently we are supposed to put
10407         init scripts in /etc/rc.d/init.d not /etc/init.d
10408
10409         * bus/Makefile.am: remove the "you must --enable-tests to make
10410         check" as it broke distcheck
10411
10412         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10413
10414 2003-05-13  James Willcox  <jwillcox@gnome.org>
10415
10416         * configure.in:
10417         * bus/activation.c: (bus_activation_service_created),
10418         (bus_activation_activate_service):
10419         * bus/driver.c: (bus_driver_send_service_deleted),
10420         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10421         (bus_driver_send_service_acquired),
10422         (bus_driver_send_welcome_message),
10423         (bus_driver_handle_list_services):
10424         * bus/session.conf.in:
10425         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10426         (dbus_bus_service_exists), (dbus_bus_activate_service):
10427         * dbus/dbus-bus.h:
10428
10429         Add some convenience API which lets you activate a service, and did a
10430         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10431         and dbus_message_get_args()
10432
10433 2003-05-11  Havoc Pennington  <hp@pobox.com>
10434
10435         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10436         calling _dbus_marshal_validate_arg() for every byte in a byte
10437         array, etc.
10438
10439         * dbus/dbus-message-handler.c: use atomic reference counting to
10440         reduce number of locks slightly; the global lock in here sucks
10441
10442         * dbus/dbus-connection.c
10443         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10444         update_dispatch_status that can be called with lock held; then use
10445         in a couple places to reduce locking/unlocking
10446         (dbus_connection_send): hold the lock over the whole function
10447         instead of acquiring it twice.
10448
10449         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10450
10451         * bus/connection.c (bus_connections_setup_connection): fix access
10452         to already-freed memory.
10453
10454         * dbus/dbus-connection.c: keep a little cache of linked list
10455         nodes, to avoid using the global linked list alloc lock in the
10456         normal send-message case. Instead we just use the connection lock
10457         that we already have to take.
10458
10459         * dbus/dbus-list.c (_dbus_list_find_last): new function
10460
10461         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10462         change to use a struct for the atomic type; fix docs,
10463         they return value before increment, not after increment.
10464
10465         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10466         (_dbus_string_append_8_aligned): new functions to try to
10467         microoptimize this operation.
10468         (reallocate_for_length): break this out of set_length(), to
10469         improve profile info, and also so we can consider inlining the
10470         set_length() part.
10471
10472         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10473         strings with some preallocation, cuts down on our calls to realloc
10474         a fair bit. Though if we can get the "move entire string to empty
10475         string" optimization below to kick in here, it would be better.
10476
10477         * dbus/dbus-string.c (_dbus_string_move): just call
10478         _dbus_string_move_len
10479         (_dbus_string_move_len): add a special case for moving
10480         an entire string into an empty string; we can just
10481         swap the string data instead of doing any reallocs.
10482         (_dbus_string_init_preallocated): new function
10483
10484 2003-05-11  Havoc Pennington  <hp@pobox.com>
10485
10486         Write a "test-profile" that does echo client-server with threads;
10487         profile reveals lock contention, memcpy/realloc of buffers, and
10488         UTF-8 validation as hot spots. 20% of lock contention eliminated
10489         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10490         contention is global mempool locks for GList and DBusList.
10491
10492         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10493         x86 implementation
10494
10495         * dbus/dbus-connection.c (struct DBusConnection): use
10496         dbus_atomic_t for the reference count
10497
10498         * dbus/dbus-message.c (struct DBusMessage): declare
10499         dbus_atomic_t values as volatile
10500
10501         * configure.in: code to detect ability to use atomic integer
10502         operations in assembly, from GLib patch
10503
10504         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10505         time, tired of it being wrong in threads and forked processes
10506
10507         * glib/test-profile.c: a little program to bounce messages back
10508         and forth between threads and eat CPU
10509
10510         * dbus/dbus-connection.c: add debug spew macros for debugging
10511         thread locks; include config.h at top; fix deadlock in
10512         dbus_connection_flush()
10513
10514 2003-05-08  Havoc Pennington  <hp@pobox.com>
10515
10516         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10517         data from getting written, and there wasn't a good reason to
10518         use _exit really.
10519
10520         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10521         dbus_verbose lines in test coverage
10522         (main): add list of functions sorted by # of untested blocks
10523         to the coverage report
10524
10525         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10526
10527         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10528
10529         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10530         extend test coverage
10531
10532         * test/data/auth/cancel.auth-script: test canceling an
10533         authentication
10534
10535         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10536         aren't used. in CVS history if we end up needing them.
10537
10538 2003-05-04  Havoc Pennington  <hp@pobox.com>
10539
10540         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10541         unit test
10542
10543         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10544         function, which assumed length was in # of strings, not bytes
10545
10546         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10547         missing coverage
10548
10549         * dbus/dbus-connection.c
10550         (_dbus_connection_queue_received_message): disable function for
10551         now, we are only using it in test mode
10552
10553         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10554         remove a mistaken FIXME
10555
10556 2003-05-04  Havoc Pennington  <hp@pobox.com>
10557
10558         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10559         unlock mutex on successful return, patch from Anders Gustafsson
10560
10561 2003-05-04  Havoc Pennington  <hp@pobox.com>
10562
10563         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10564         Anders Gustafsson
10565
10566 2003-05-04  Havoc Pennington  <hp@pobox.com>
10567
10568         * tools/dbus-launch.c: implement
10569
10570         * bus/main.c (main), bus/bus.c (bus_context_new):
10571         implement --print-pid and --fork
10572
10573 2003-05-03  Havoc Pennington  <hp@redhat.com>
10574
10575         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10576         the address had no value, and add to test suite. Fix and
10577         regression test from Miloslav Trmac
10578
10579 2003-05-03  Havoc Pennington  <hp@pobox.com>
10580
10581         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10582         watch is invalid when handled
10583
10584         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10585         dbus-launch utility to launch the bus from a shell script.  Didn't
10586         actually implement dbus-launch yet, it's just a placeholder still.
10587
10588 2003-05-03  Havoc Pennington  <hp@pobox.com>
10589
10590         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10591         daemon; also documents daemon config file, so replaces
10592         doc/config-file.txt. Corrected some stuff from config-file.txt in
10593         the process of moving it.
10594
10595 2003-05-03  Havoc Pennington  <hp@pobox.com>
10596
10597         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10598         add some man pages
10599
10600 2003-05-03  Colin Walters  <walters@verbum.org>
10601
10602         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10603         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10604
10605         * Makefile.am: Update to use new .pc versioning scheme.
10606
10607 2003-05-02  Havoc Pennington  <hp@redhat.com>
10608
10609         * bus/system.conf.in: allow send/receive to/from message bus
10610         service
10611
10612 2003-04-30  Havoc Pennington  <hp@redhat.com>
10613
10614         * configure.in: print a note when building with unit tests and
10615         without assertions
10616
10617 2003-04-30  Havoc Pennington  <hp@redhat.com>
10618
10619         * Makefile.am: add a check-local that complains if you didn't
10620         configure with --enable-tests
10621
10622 2003-04-29  Havoc Pennington  <hp@redhat.com>
10623
10624         * glib/dbus-gmain.c: docs cleanups
10625
10626         * dbus/dbus-types.h: add docs on int64 types
10627
10628         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10629         public API docs section
10630
10631 2003-04-29  Havoc Pennington  <hp@redhat.com>
10632
10633         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10634         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10635         parallel install API version, not with the D-BUS package version.
10636
10637         * HACKING: move some of README over here
10638
10639         * README: updates, and document API/ABI policy
10640
10641         * configure.in: reindentation
10642
10643 2003-04-29  Havoc Pennington  <hp@redhat.com>
10644
10645         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10646         to use this library" to be sure people have the right
10647         expectations.
10648
10649 2003-04-28  Havoc Pennington  <hp@redhat.com>
10650
10651         * configure.in: add --enable-docs which by default is auto yes if
10652         doxygen and db2html found, no otherwise; but can be forced on/off
10653
10654         * doc/Makefile.am: conditionalize whether to build docs on
10655         --enable-docs
10656
10657 2003-04-28  Havoc Pennington  <hp@redhat.com>
10658
10659         * configure.in: 0.10
10660
10661         * NEWS: update
10662
10663         * bus/system.conf.in: add <includedir>system.d</includedir>
10664
10665         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10666         username was provided but not uid
10667
10668         * bus/config-parser.c (struct BusConfigParser): keep track of
10669         whether the parser is toplevel or was included; change some
10670         of the error handling if it's included.
10671
10672 2003-04-27  Havoc Pennington  <hp@pobox.com>
10673
10674         Unbreak my code...
10675
10676         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10677         report correct status if we finish processing authentication
10678         inside this function.
10679
10680         * bus/activation.c (try_send_activation_failure): use
10681         bus_transaction_send_error_reply
10682
10683         * bus/connection.c (bus_connection_get_groups): return an error
10684         explaining the problem
10685
10686         * bus/bus.c (bus_context_check_security_policy): implement
10687         restriction here that inactive connections can only send the
10688         hello message. Also, allow bus driver to send anything to
10689         any recipient.
10690
10691         * bus/connection.c (bus_connection_complete): create the
10692         BusClientPolicy here instead of on-demand.
10693         (bus_connection_get_policy): don't return an error
10694
10695         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10696         sender field in message being replied to
10697
10698         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10699         causing it to return FALSE always
10700
10701         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10702         we checked sender rather than destination
10703
10704 2003-04-25  Havoc Pennington  <hp@redhat.com>
10705
10706         test suite is slightly hosed at the moment, will fix soon
10707
10708         * bus/connection.c (bus_connections_expire_incomplete): fix to
10709         properly disable the timeout when required
10710         (bus_connection_set_name): check whether we can remove incomplete
10711         connections timeout after we complete each connection.
10712
10713         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10714         probably still broken.
10715
10716         * bus/services.c (bus_registry_acquire_service): implement max
10717         number of services owned, and honor allow/deny rules on which
10718         services a connection can own.
10719
10720         * bus/connection.c (bus_connection_get_policy): report errors here
10721
10722         * bus/activation.c: implement limit on number of pending
10723         activations
10724
10725 2003-04-25  Havoc Pennington  <hp@redhat.com>
10726
10727         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10728         where we used >= 0 instead of != DBUS_UID_UNSET.
10729
10730 2003-04-25  Havoc Pennington  <hp@redhat.com>
10731
10732         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10733         were toggled without add/remove, fix from Anders Gustafsson
10734
10735 2003-04-24  Havoc Pennington  <hp@redhat.com>
10736
10737         * test/data/valid-config-files/basic.conf: add <limit> tags to
10738         this test
10739
10740         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10741         <limit> tag in configuration file.
10742
10743 2003-04-24  Havoc Pennington  <hp@redhat.com>
10744
10745         * bus/dispatch.c: somehow missed some name_is
10746
10747         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10748         (_dbus_timeout_set_interval): new
10749
10750         * bus/connection.c (bus_connections_setup_connection): record time
10751         when each connection is first set up, and expire them after the
10752         auth timeout passes.
10753
10754 2003-04-24  Havoc Pennington  <hp@redhat.com>
10755
10756         * dbus/dbus-message.c (dbus_message_name_is): rename
10757         (dbus_message_service_is): rename
10758         (dbus_message_sender_is): rename
10759         (dbus_message_get_service): rename
10760
10761 2003-04-24  Havoc Pennington  <hp@redhat.com>
10762
10763         * configure.in: add --enable-checks
10764
10765         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10766
10767         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10768         to use thread locks.
10769         (_dbus_connection_handler_destroyed_locked): move some private
10770         functions into proper docs group
10771
10772         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10773         _dbus_return_val_if_fail
10774
10775         Throughout: use dbus_return_if_fail
10776
10777 2003-04-23  James Willcox  <jwillcox@gnome.org>
10778
10779         * glib/dbus-glib.h:
10780         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10781         (dbus_connection_setup_with_g_main),
10782         (dbus_server_setup_with_g_main):
10783         * glib/test-dbus-glib.c: (main):
10784         * glib/test-thread-client.c: (main):
10785         * glib/test-thread-server.c: (new_connection_callback), (main):
10786         * tools/dbus-monitor.c: (main):
10787
10788         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10789         and dbus_server_setup_with_g_main().
10790
10791 2003-04-20  Havoc Pennington  <hp@pobox.com>
10792
10793         * doc/dbus-specification.sgml: document the restrictions on
10794         message and service names
10795
10796 2003-04-22  Havoc Pennington  <hp@redhat.com>
10797
10798         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10799         support, and do some code cleanups to share more code and
10800         speed up array marshal/demarshal.
10801
10802         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10803
10804         * configure.in: generate dbus-arch-deps.h
10805
10806         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10807         64-bit typecodes
10808
10809 2003-04-22  Havoc Pennington  <hp@redhat.com>
10810
10811         * test/data/valid-messages/opposite-endian.message: fix test
10812         to use proper type for rply field
10813
10814         * test/data/invalid-messages: add tests for below validation
10815
10816         * dbus/dbus-message.c (decode_header_data): validate field types,
10817         and validate that named fields are valid names
10818         (decode_name_field): consider messages in the
10819         org.freedesktop.Local. namespace to be invalid.
10820
10821         * dbus/dbus-string.c (_dbus_string_validate_name): new
10822
10823 2003-04-19  Havoc Pennington  <hp@pobox.com>
10824
10825         * bus/driver.c (bus_driver_handle_hello): check limits and
10826         return an error if they are exceeded.
10827
10828         * bus/connection.c: maintain separate lists of active and inactive
10829         connections, and a count of each. Maintain count of completed
10830         connections per user. Implement code to check connection limits.
10831
10832         * dbus/dbus-list.c (_dbus_list_unlink): export
10833
10834         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10835         number of bytes in the message queue for a connection
10836
10837 2003-04-18  Havoc Pennington  <hp@pobox.com>
10838
10839         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10840
10841         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10842         memleaks
10843
10844         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10845         on realloc be sure to update the pointer in the keyring
10846
10847         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10848         offset to avoid writing to unallocated memory
10849
10850         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10851         try the next mechanism, so we properly handle OOM
10852
10853         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10854         on OOM.
10855         (_dbus_keyring_new): fix OOM bug
10856         (_dbus_keyring_new_homedir): always set error; impose a maximum
10857         number of keys we'll load from the file, mostly to speed up the
10858         test suite and make its OOM checks more useful, but also for
10859         general sanity.
10860
10861         * dbus/dbus-auth.c (process_error_server): reject authentication
10862         if we get an error from the client
10863         (process_cancel): on cancel, send REJECTED, per the spec
10864         (process_error_client): send CANCEL if we get an error from the
10865         server.
10866
10867 2003-04-18  Havoc Pennington  <hp@pobox.com>
10868
10869         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10870         debug spew
10871
10872         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10873         handling problem
10874
10875         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10876         about DBUS_TEST_HOMEDIR once
10877
10878         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10879         the environment
10880
10881         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10882         config file so we test the right thing
10883
10884         Throughout: assorted docs improvements
10885
10886 2003-04-18  Havoc Pennington  <hp@pobox.com>
10887
10888         * glib/dbus-gmain.c: adapt to watch changes
10889
10890         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10891
10892         * dbus/dbus-server.h: remove dbus_server_handle_watch
10893
10894         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10895
10896         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10897         like DBusTimeout, so we don't need dbus_connection_handle_watch
10898         etc.
10899
10900 2003-04-17  Havoc Pennington  <hp@redhat.com>
10901
10902         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10903         database usage so it all goes via the DBusUserDatabase cache.
10904
10905 2003-04-17  Havoc Pennington  <hp@redhat.com>
10906
10907         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10908         there was an OOM watch we skipped, we always return TRUE so we
10909         iterate again to have a look at it again. Fixes test suite hang.
10910         Code rearrangement also lets us lose some memset and only iterate
10911         over callbacks once.
10912
10913         * bus/driver.c (bus_driver_handle_message): sense of test for
10914         reply was backward
10915
10916 2003-04-16  Havoc Pennington  <hp@pobox.com>
10917
10918         * doc/dbus-specification.sgml: make spec say serials are unsigned
10919
10920         * dbus/dbus-message.h: change message serials to unsigned
10921
10922         * dbus/dbus-connection.c: adapt to message serials being unsigned
10923
10924 2003-04-15  Havoc Pennington  <hp@pobox.com>
10925
10926         * bus/bus.c: create and keep around a shared DBusUserDatabase
10927         object.
10928
10929         * bus/connection.c (bus_connection_get_groups): don't cache
10930         groups for user in the connection object, since user database
10931         object now does that.
10932
10933 2003-04-16  Havoc Pennington  <hp@redhat.com>
10934
10935         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10936         list of size counters
10937         (_dbus_message_loader_putback_message_link): put back a popped link
10938
10939         * dbus/dbus-connection.c
10940         (dbus_connection_set_max_live_messages_size): rename
10941         max_received_size
10942         (dbus_connection_get_outgoing_size): get size of outgoing
10943         queue
10944         (_dbus_connection_set_connection_counter): remove this cruft
10945
10946 2003-04-14  Havoc Pennington  <hp@redhat.com>
10947
10948         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10949         caching, but at some point we might want to be able to use a
10950         different database.
10951
10952         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10953         SHA1 conf file to test the sha1 auth mechanism, since the regular
10954         test always uses EXTERNAL when available.
10955
10956         * configure.in,
10957         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10958         add conf file that requires use of sha1 auth
10959
10960 2003-04-13  Havoc Pennington  <hp@pobox.com>
10961
10962         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10963         from Philip Blundell to send messages and monitor them.
10964
10965 2003-04-13  Havoc Pennington  <hp@pobox.com>
10966
10967         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10968         callbacks
10969
10970         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10971         users
10972
10973         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10974         fix to only recover unused bytes if we're already authenticated
10975         (_dbus_transport_get_is_authenticated): fix to still mark us
10976         authenticated if there are unused bytes.
10977
10978         * bus/dispatch.c: implement security policy checking
10979
10980         * bus/connection.c (bus_transaction_send_from_driver): new
10981
10982         * bus/bus.c (bus_context_check_security_policy): new
10983
10984         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10985         now we just set the DBusError and it gets converted to an error
10986         reply.
10987
10988         * bus/connection.c (allow_user_function): enable code using actual
10989         data from the config file
10990
10991         * bus/policy.c (list_allows_user): handle wildcard rules for
10992         user/group connection perms
10993
10994 2003-04-13  Havoc Pennington  <hp@pobox.com>
10995
10996         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10997
10998         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10999
11000         * bus/policy.c (bus_policy_append_mandatory_rule)
11001         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11002         (bus_policy_append_group_rule): new functions
11003
11004 2003-04-12  Havoc Pennington  <hp@pobox.com>
11005
11006         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11007
11008         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11009         the pid/gid/uid, just for paranoia.
11010
11011         * test/break-loader.c (randomly_do_n_things): find a byte
11012         containing a type code, and randomly change it to a different
11013         type code.
11014
11015 2003-04-12  Havoc Pennington  <hp@pobox.com>
11016
11017         * bus/policy.h: change BusPolicy to be the thing from the config
11018         file, and rename old BusPolicy to BusClientPolicy
11019
11020         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11021         match change in how policy works
11022
11023         * dbus/dbus-internals.h: mark assert_not_reached as
11024         __attribute((noreturn))__
11025
11026 2003-04-11  Havoc Pennington  <hp@redhat.com>
11027
11028         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11029         the broadcast service. Use boolean return for ServiceExists.
11030
11031 2003-04-11  Havoc Pennington  <hp@redhat.com>
11032
11033         * configure.in: add another directory to look for qt in.
11034
11035 2003-04-11  Havoc Pennington  <hp@redhat.com>
11036
11037         * AUTHORS: add Colin Walters
11038
11039 2003-04-11  Havoc Pennington  <hp@redhat.com>
11040
11041         * NEWS: update
11042
11043         * configure.in: 0.9
11044
11045 2003-04-11  Havoc Pennington  <hp@redhat.com>
11046
11047         * bus/messagebus.in: remove pid file when stopping the
11048         message bus, since the bus won't have privileges to remove it
11049         itself.
11050
11051 2003-04-11  Havoc Pennington  <hp@redhat.com>
11052
11053         * bus/bus.c (bus_context_new): move credentials change after
11054         creating pidfile
11055
11056 2003-04-11  Havoc Pennington  <hp@pobox.com>
11057
11058         * test/decode-gcov.c: add "below average functions" to the
11059         coverage report, and change how some of the code works.
11060
11061         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11062         not in the coverage stats.
11063
11064         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11065         couple places so running the test suite doesn't result in megaspam.
11066
11067 2003-04-11  Havoc Pennington  <hp@pobox.com>
11068
11069         * bus/dispatch.c (check_existent_service_activation): accept a no
11070         memory error in a place we didn't before
11071
11072         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11073         in case the first one failed," since the test suite is less
11074         broken now.
11075
11076 2003-04-10  Havoc Pennington  <hp@pobox.com>
11077
11078         * bus/dispatch.c (check_segfault_service_activation): add test
11079         for launching an executable that just crashes.
11080
11081         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11082         don't leave a million cores. We'll see how portable this is.
11083
11084 2003-04-10  Havoc Pennington  <hp@pobox.com>
11085
11086         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11087         the possible parent failures before we fork, so that we don't
11088         fail to create a babysitter after creating the child.
11089
11090         * bus/activation.c (bus_activation_activate_service): kill child
11091         if we don't successfully complete the activation.
11092
11093 2003-04-10  Havoc Pennington  <hp@redhat.com>
11094
11095         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11096         the connection if it's disconnected
11097
11098         * bus/activation.c (bus_activation_service_created): use new
11099         transaction features to roll back removal of pending activation if
11100         we don't successfully create the service after all. Don't remove
11101         pending activation if the function fails.
11102
11103         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11104         (_dbus_list_insert_after_link): new code to facilitate
11105         services.c fixes
11106
11107         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11108         new functionality, so we can preallocate the ability to insert
11109         into a hash table.
11110
11111         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11112         allowing us to put custom hooks in a transaction to be used for
11113         cancelling said transaction
11114
11115         * doc/dbus-specification.sgml: add some discussion of secondary
11116         service owners, and disallow zero-length service names
11117
11118         * bus/services.c (bus_registry_acquire_service): new function,
11119         splits out part of bus_driver_handle_acquire_service() and fixes
11120         a bug where we didn't remove the service doing the acquiring
11121         from the secondary queue if we failed to remove the current owner
11122         from the front of the queue.
11123
11124 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11125
11126         * doc/dbus-specification.sgml:
11127         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11128
11129 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11130
11131         * bus/.cvsignore:
11132         * glib/.cvsignore:
11133         * test/.cvsignore:
11134         Added files to cvsignore
11135
11136         * dbus/dbus-message.h:
11137         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11138         Make get_named() take two out argument and return a boolean.
11139         (dbus_message_iter_get_args_valist):
11140         Update usage of get_named().
11141         (dbus_message_iter_append_byte):
11142         Fix typo
11143         (dbus_message_iter_append_named)
11144         Fix typo
11145         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11146         More tests.
11147
11148 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11149
11150         * dbus/dbus-marshal.[ch]:
11151         Add array_type_pos argument to _dbus_marshal_validate_arg.
11152         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11153
11154         * dbus/dbus-message.[ch]:
11155         Multi-dimensional arrays have full type specification in the
11156         outermost array. Iter code re-arranged to handle this.
11157         Added some more iter tests.
11158
11159         * doc/dbus-specification.sgml:
11160         Add me to authors.
11161         Remove old FIXME.
11162         Update new array encoding description.
11163         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11164
11165         * test/data/invalid-messages/array-with-mixed-types.message:
11166         * test/data/valid-messages/array-of-array-of-uint32.message:
11167         Change to the new array format.
11168
11169         * test/data/invalid-messages/too-short-dict.message:
11170         Fix bug in test.
11171
11172         * test/data/valid-messages/recursive-types.message:
11173         Fix up and extend test.
11174
11175 2003-04-10  Havoc Pennington  <hp@pobox.com>
11176
11177         * bus/dispatch.c: lots of fixes
11178
11179         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11180         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11181         that was crack, broke the test service.
11182
11183         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11184         handling to avoid piling up errors if we get a failure on the
11185         first address.
11186
11187         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11188         pid in assertion failures.
11189
11190         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11191         to some fixed size of file descriptor array. Don't return TRUE
11192         anytime a timeout exists, that led to lots of busy loop silliness
11193         in the tests.
11194
11195 2003-04-09  Havoc Pennington  <hp@redhat.com>
11196
11197         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11198         I'd checked this in earlier but hadn't.
11199
11200 2003-04-09  Havoc Pennington  <hp@redhat.com>
11201
11202         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11203         the activation test (man this is getting old!)
11204
11205 2003-04-09  Havoc Pennington  <hp@redhat.com>
11206
11207         * test/test-utils.c: use dispatch status function to fix this up
11208
11209         * bus/connection.c (connection_watch_callback): don't dispatch
11210         from here
11211         (connection_timeout_callback): don't dispatch from here
11212         (bus_connections_setup_connection): set the dispatch status function
11213         (bus_connection_disconnected): unset it
11214
11215         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11216         used to add a connection to be dispatched
11217         (_dbus_loop_iterate): do the dispatching at the end of each
11218         iteration
11219
11220         * dbus/dbus-connection.c
11221         (dbus_connection_set_dispatch_status_function): new function
11222         allowing us to fix up main loop usage
11223         (_dbus_connection_last_unref): free all the various function
11224         user data
11225         (dbus_connection_dispatch): call the DispatchStatusFunction
11226         whenever this function returns
11227         (dbus_connection_handle_watch): call DispatchStatusFunction
11228         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11229         (reply_handler_timeout): call DispatchStatusFunction
11230         (dbus_connection_flush): call DispatchStatusFunction
11231
11232 2003-04-09  Havoc Pennington  <hp@redhat.com>
11233
11234         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11235         a memory leak
11236
11237         * bus/dispatch.c (check_service_activated): fix bug in test
11238
11239         * dbus/dbus-mainloop.c (check_timeout): fix this up
11240
11241         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11242         verbose output so we can sort out output from different processes,
11243         e.g. in the activation case.
11244
11245 2003-04-08  Colin Walters  <walters@gnu.org>
11246
11247         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11248         the pid file.
11249         (bus_context_new): Set it.
11250         (bus_context_unref): Use it to delete the pid file.
11251
11252 2003-04-08  Havoc Pennington  <hp@redhat.com>
11253
11254         * test/data/invalid-messages/array-with-mixed-types.message:
11255         regression test that fails for the moment
11256
11257         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11258         tests for convenience
11259
11260         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11261         array of nil, it broke things.
11262
11263         * test/data/invalid-messages/array-of-nil.message: regression test
11264
11265         * test/data/valid-messages/array-of-array-of-uint32.message:
11266         happened to write this so added it to suite
11267
11268 2003-04-08  Havoc Pennington  <hp@redhat.com>
11269
11270         * bus/driver.c (bus_driver_handle_acquire_service): init
11271         retval/reply before checking name
11272
11273         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11274         recursion depth argument
11275
11276         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11277         in the public struct for future extension
11278
11279         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11280         typo
11281
11282         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11283         message
11284
11285         * doc/dbus-specification.sgml: fix typo
11286
11287 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11288
11289         Implemented recursive types, named types and new-style iters
11290
11291         * bus/driver.c:
11292         * glib/test-thread-client.c: (thread_func):
11293         * glib/test-thread-server.c: (handle_test_message):
11294         * test/test-service.c: (handle_echo):
11295         Update to new api
11296
11297         * dbus/Makefile.am:
11298         * dbus/dbus-dict.c:
11299         * dbus/dbus-dict.h:
11300         * dbus/dbus.h
11301         Remove DBusDict
11302
11303         * dbus/dbus-internals.c: (_dbus_type_to_string):
11304         Update for new types.
11305
11306         * dbus/dbus-marshal.[ch]:
11307         Implement recursive types and the new marshalling format.
11308         Remove hardcoded dict marshalling.
11309         Marshal named types.
11310
11311         * dbus/dbus-message-builder.c:
11312         Add BYTE_ARRAY.
11313         Remove references to old types
11314
11315         * dbus/dbus-message.[ch]:
11316         New non-refcounted iter API that supports recursive iters.
11317         Use iters for appending, including support for recursive
11318         iters.
11319         Add byte and named type support.
11320         Update everything to new marshalling formats.
11321         Add tests for new API.
11322
11323         * dbus/dbus-protocol.h:
11324         Remove old array types.
11325         Add types: BYTE, ARRAY, DICT, NAMED
11326
11327         * dbus/dbus-string.c:
11328         * dbus/dbus-sysdeps.c:
11329         Make parse_double locale safe.
11330
11331         * dbus/dbus-test-main.c:
11332         Call setlocale.
11333
11334         * dbus/dbus-test.c:
11335         Kill dict test
11336
11337         * doc/dbus-specification.sgml:
11338         Update spec
11339
11340         * test/data/incomplete-messages/missing-body.message:
11341         * test/data/invalid-messages/bad-boolean.message:
11342         * test/data/invalid-messages/bad-boolean-array.message:
11343         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11344         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11345         * test/data/invalid-messages/too-short-dict.message:
11346         * test/data/valid-messages/dict-simple.message:
11347         * test/data/valid-messages/dict.message:
11348         * test/data/valid-messages/emptiness.message:
11349         * test/data/valid-messages/lots-of-arguments.message:
11350         * test/data/valid-messages/no-padding.message:
11351         * test/data/valid-messages/recursive-types.message:
11352         Add missing NAME fields
11353         Fix up dicts & arrays
11354
11355         * test/data/invalid-messages/dict-with-nil-value.message:
11356         Removed, this is not invalid anymore.
11357
11358         * test/data/valid-messages/recursive-types.message:
11359         Add new test for deeply recursive types.
11360
11361 2003-04-07  Havoc Pennington  <hp@pobox.com>
11362
11363         * bus/driver.c (bus_driver_handle_acquire_service): return an
11364         error if you try to acquire a service that starts with ':'
11365
11366 2003-04-07  Havoc Pennington  <hp@redhat.com>
11367
11368         * doc/dbus-specification.sgml: require that base service names
11369         start with ':' and that the base service is created/deleted
11370         as first and last things a connection does on the bus
11371
11372         * bus/dispatch.c (check_existent_service_activation): lots more
11373         work on the activation test; it doesn't fully pass yet...
11374
11375         * test/test-service.c (main): fix so we don't memleak the
11376         connection to the message bus
11377         (filter_func): accept a message asking us to exit
11378
11379 2003-04-06  Havoc Pennington  <hp@pobox.com>
11380
11381         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11382         from Colin Walters
11383
11384         * configure.in: fixes to Qt detection from Colin Walters
11385
11386         * doc/Makefile.am: Only remove generated docbook dirs if they
11387         exist, from Colin Walters
11388
11389         * dbus/dbus-bus.c: change how we set well-known connections to
11390         NULL, so that it works if a single connection is stored in
11391         two well-known array slots.
11392
11393         * test/Makefile.am: remove a lot of stuff that isn't immediately
11394         useful, it's in CVS history if we want it.
11395
11396         * test/test-service.c: use dbus-mainloop instead of that
11397         watch.[hc] crack
11398
11399 2003-04-06  Havoc Pennington  <hp@pobox.com>
11400
11401         * dbus/Makefile.am: split lists of sources into stuff that goes in
11402         the library, util functions that go in the lib and are also used
11403         elsewhere, and util functions that are used in tests/daemon but
11404         don't go in the lib.
11405
11406         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11407         here so it can be used in test binaries also
11408
11409 2003-04-06  Havoc Pennington  <hp@pobox.com>
11410
11411         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11412         here in the parent process, so we can return an error if it
11413         fails. Also, move some of the code into the child so the parent
11414         is less hosed if we fail midway through.
11415
11416         * bus/bus.c (bus_context_new): move pidfile detection further up
11417         in the function, before we start overwriting sockets and such.
11418
11419         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11420
11421         * configure.in: add --with-system-pid-file and --with-system-socket
11422
11423 2003-04-06  Colin Walters  <walters@verbum.org>
11424
11425         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11426
11427         * bus/system.conf.in: Declare a pidfile.
11428
11429         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11430         create one (if appropriate).
11431
11432         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11433         (struct BusConfigParser) [pidfile]: New.
11434         (element_type_to_name, merge_included, start_busconfig_child)
11435         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11436         (bus_config_parser_unref): Free it.
11437         (bus_config_parser_get_pidfile): New function.
11438
11439         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11440
11441         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11442
11443         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11444
11445         * dbus/dbus-sysdeps.h: Prototype it.
11446
11447 2003-04-06  Havoc Pennington  <hp@pobox.com>
11448
11449         * bus/bus.c (bus_context_new): print the address in here, rather
11450         than in main(), because we need to do it before forking the daemon
11451
11452         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11453         on the service nonexistent error
11454
11455         * bus/driver.c (bus_driver_handle_acquire_service): set the
11456         sender on the AcquireService reply
11457
11458         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11459         server also listen on a UNIX socket so services can connect to it.
11460
11461 2003-04-06  Havoc Pennington  <hp@pobox.com>
11462
11463         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11464         so it detects deadlocks and also we actually init threads when
11465         debugging.
11466
11467 2003-04-06  Havoc Pennington  <hp@pobox.com>
11468
11469         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11470         save the domain socket name, and unlink it when we disconnect the
11471         server. Means that at least when we exit normally, we won't leave
11472         a bunch of junk in /tmp
11473
11474         * dbus/dbus-transport-unix.c
11475         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11476         memory management). (I was making a real change here but then
11477         didn't)
11478
11479 2003-04-06  Havoc Pennington  <hp@pobox.com>
11480
11481         * bus/bus.c (bus_context_new): fix wrong handling of
11482         server_data_slot_unref() in the error case.
11483
11484         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11485         "(condition) != 0" to _dbus_real_assert so that
11486         "_dbus_assert (pointer)" doesn't cause a warning
11487
11488         * bus/main.c (main): accept --print-address option to print out
11489         the message bus address
11490
11491         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11492
11493         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11494         "tmpdir" option to unix: address on client side
11495
11496         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11497         to unix: address
11498
11499         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11500         we can use to create sockets in the test suite.
11501
11502         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11503         cleanly. To be used for testing.
11504
11505         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11506
11507         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11508
11509         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11510         handle trying to call this when there's no servers active
11511
11512 2003-04-05  Havoc Pennington  <hp@pobox.com>
11513
11514         * NEWS: update
11515
11516         * configure.in: 0.8
11517
11518 2003-04-05  Havoc Pennington  <hp@pobox.com>
11519
11520         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11521         crash on startup. Need to get "try starting the daemon"
11522         in the test suite I guess. ;-)
11523
11524         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11525         tracked the number of open connections; it's better done in
11526         application-specific code as you want it to span all servers etc.
11527
11528 2003-04-05  Havoc Pennington  <hp@pobox.com>
11529
11530         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11531         patch from Colin Walters
11532
11533 2003-04-05  Havoc Pennington  <hp@pobox.com>
11534
11535         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11536         reality; in fact multiple mechanisms are allowed.
11537
11538         * dbus/dbus-internals.c (_dbus_real_assert)
11539         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11540         _dbus_assert_not_reached() into functions, so that they don't show
11541         up in basic block counts for test coverage, and don't use up as
11542         much disk space. Does mean slower execution speed though, so
11543         assumes --disable-asserts is the normal production case.
11544
11545 2003-04-05  Havoc Pennington  <hp@pobox.com>
11546
11547         * test/Makefile.am (dist-hook): also dist *.in files
11548
11549         * NEWS: update
11550
11551         * configure.in: 0.7
11552
11553 2003-04-05  Havoc Pennington  <hp@pobox.com>
11554
11555         * dbus/dbus-string.c: docs warning
11556
11557         * dbus/dbus-spawn.c: missing docs
11558
11559         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11560
11561 2003-04-05  Havoc Pennington  <hp@pobox.com>
11562
11563         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11564         magic from GLib
11565
11566         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11567         to -1 once we've reaped the babysitter
11568         (_dbus_babysitter_handle_watch): do as much work as we can, not
11569         just one go of it
11570
11571         * bus/activation.c: add code using DBusBabysitter so that we
11572         handle it when a service fails to start up properly.
11573         (bus_activation_service_created): don't remove the activation
11574         entries as we go, just let them get removed when we free the pending
11575         activation. Unref reply messages after sending them.
11576
11577 2003-04-05  Havoc Pennington  <hp@pobox.com>
11578
11579         * test/decode-gcov.c (main): print per-directory stats in the report
11580
11581         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11582
11583 2003-04-05  Havoc Pennington  <hp@pobox.com>
11584
11585         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11586
11587         * test/decode-gcov.c: hack up a little program to suck data
11588         out of gcov files. Yes this is sort of silly.
11589
11590         * configure.in: define something in config.h and do an
11591         AM_CONDITIONAL when gcov is enabled
11592
11593 2003-04-04  Havoc Pennington  <hp@redhat.com>
11594
11595         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11596         return a "babysitter" object that is used to monitor the status of
11597         the spawned process and reap it when required.
11598
11599         * test/test-segfault.c, test/test-exit.c,
11600         test/test-sleep-forever.c: binaries that do various lame things,
11601         used in the test suite.
11602
11603         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11604
11605 2003-04-03  Havoc Pennington  <hp@pobox.com>
11606
11607         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11608         in preparation for modifying it, dbus-sysdeps is getting
11609         a bit unmanageable.
11610
11611 2003-04-03  Havoc Pennington  <hp@redhat.com>
11612
11613         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11614         have multiple ones
11615
11616         * bus/*.[hc]: adapt to mainloop change
11617
11618 2003-04-03  Havoc Pennington  <hp@redhat.com>
11619
11620         * bus/activation.c (load_directory): fix up memleaks
11621         (bus_activation_entry_free): free the entry
11622
11623         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11624         we get one from the message bus; fix memleaks.
11625
11626         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11627
11628 2003-04-03  Havoc Pennington  <hp@pobox.com>
11629
11630         * bus/config-parser.c (bus_config_parser_unref): free
11631         list of mechanisms, bug discovered by test suite enhancements
11632         (putting system.conf and session.conf into suite)
11633
11634         * test/Makefile.am, test/test-service.c: add placeholder for a
11635         test service that we'll activate as part of test suite. Doesn't
11636         do anything yet.
11637
11638         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11639         setting NULL value, and use system malloc not dbus_malloc()
11640         when we have unavoidable memleakage.
11641
11642         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11643         didn't work, and support DBUS_BUS_ACTIVATION.
11644
11645         * bus/activation.c (child_setup): pass our well-known bus type to
11646         the child
11647
11648         * bus/config-parser.c: support <type> to specify well-known type
11649
11650         * doc/dbus-specification.sgml: document the env variables to
11651         locate well-known buses and find service activator
11652
11653 2003-04-02  Havoc Pennington  <hp@redhat.com>
11654
11655         * test/Makefile.am (all-local): add a rule to copy tests to
11656         builddir, so we can have generated tests. Use this to remove the
11657         silly hack for testing system.conf and session.conf. Will use this
11658         shortly to generate .service files pointing to test binaries.
11659
11660 2003-04-02  Havoc Pennington  <hp@redhat.com>
11661
11662         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11663         current alloc and needed new length, not max of the doubled
11664         allocation and needed new length. Also, when building tests,
11665         don't do the double-allocation stuff, just realloc every time.
11666
11667 2003-04-02  Havoc Pennington  <hp@redhat.com>
11668
11669         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11670         in error messages
11671         (_dbus_string_get_dirname): new
11672         (_dbus_sysdeps_test): new
11673         (_dbus_directory_open): include dirnames in error messages
11674
11675         * bus/config-parser.c: interpret <include> and <includedir> and
11676         <servicedir> relative to config file location if the given
11677         filename is not absolute.
11678
11679         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11680
11681 2003-04-02  Havoc Pennington  <hp@redhat.com>
11682
11683         * bus/connection.c (bus_transaction_send_error_reply): set sender
11684         service for the error, and unref the reply on success
11685
11686         * bus/activation.c: convert to use BusTransaction so OOM can be
11687         handled correctly
11688         (bus_activation_service_created): set sender of the message
11689
11690 2003-04-01  Havoc Pennington  <hp@redhat.com>
11691
11692         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11693         <includedir> (at least mostly)
11694
11695         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11696         first, then the user ID
11697
11698 2003-04-01  Havoc Pennington  <hp@pobox.com>
11699
11700         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11701         function
11702
11703         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11704
11705         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11706
11707         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11708         socket 0777, and unlink any existing socket.
11709
11710         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11711         the configuration file so specifies; set up auth mechanism
11712         restrictions
11713
11714         * bus/config-parser.c (bus_config_parser_content): add support
11715         for <fork> option and fill in code for <auth>
11716
11717         * bus/system.conf.in: add <fork/> to default configuration,
11718         and limit auth mechanisms to EXTERNAL
11719
11720         * doc/config-file.txt (Elements): add <fork>
11721
11722         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11723         (_dbus_change_identity): new function
11724
11725 2003-03-31  Havoc Pennington  <hp@redhat.com>
11726
11727         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11728         (_dbus_listen_unix_socket): fix off-by-one error in null
11729         termination spotted by Nalin
11730
11731 2003-03-31  Havoc Pennington  <hp@redhat.com>
11732
11733         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11734         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11735         having a real home directory available.
11736
11737 2003-03-31  Havoc Pennington  <hp@redhat.com>
11738
11739         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11740
11741         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11742
11743         * configure.in: add support for specifying a style of init script
11744         to install
11745
11746 2003-03-31  Havoc Pennington  <hp@redhat.com>
11747
11748         Fix some annoying DBusString API and fix all affected code.
11749
11750         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11751         max_length argument
11752         (_dbus_string_get_data): change to return string instead of using
11753         an out param
11754         (_dbus_string_get_const_data): ditto
11755         (_dbus_string_get_data_len): ditto
11756         (_dbus_string_get_const_data_len): ditto
11757
11758 2003-03-31  Havoc Pennington  <hp@redhat.com>
11759
11760         * bus/main.c (main): fix up the command line arguments to be nicer
11761
11762 2003-03-31  Havoc Pennington  <hp@redhat.com>
11763
11764         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11765         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11766         final location that lands in the config file
11767
11768         * bus/config-loader-expat.c (bus_config_load): fix type of
11769         XML_Parser variable
11770
11771         * doc/TODO: remove TODO item for dbus_bus_get()
11772
11773         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11774
11775 2003-03-31  Havoc Pennington  <hp@pobox.com>
11776
11777         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11778         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11779         argument since they are always client side
11780
11781         * dbus/dbus-server.c (dbus_server_get_address): new function
11782
11783         * bus/main.c (main): take the configuration file as an argument.
11784
11785         * test/data/valid-config-files/debug-allow-all.conf: new file to
11786         use with dispatch.c tests for example
11787
11788         * bus/test-main.c (main): require test data dir
11789
11790         * bus/bus.c (bus_context_new): change this to take a
11791         configuration file name as argument
11792
11793         * doc/config-file.txt (Elements): add <servicedir>
11794
11795         * bus/system.conf, bus/session.conf: new files
11796
11797         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11798         well-known socket if none set
11799
11800         * configure.in: create system.conf and session.conf
11801
11802 2003-03-30  Havoc Pennington  <hp@pobox.com>
11803
11804         * bus/config-parser.c: hacking
11805
11806         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11807         to shut down, since it could cause weirdness with the DBusList
11808         lock
11809
11810         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11811         link-oriented stack routines
11812         (alloc_link): free the mempool if the first alloc from it fails
11813
11814         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11815
11816         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11817         from GLib
11818         (_dbus_string_skip_white): new
11819
11820         * doc/config-file.txt (Elements): add <includedir>
11821
11822 2003-03-28  Havoc Pennington  <hp@pobox.com>
11823
11824         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11825         (_dbus_string_copy_data): new functions
11826
11827 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11828
11829         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11830         * dbus/dbus-bus.h:
11831         Add dbus_bus_get.
11832
11833         * dbus/dbus-memory.c:
11834         Fix a doc comment.
11835
11836 2003-03-28  Havoc Pennington  <hp@pobox.com>
11837
11838         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11839         I think it may have just been superstition. Not sure.
11840
11841         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11842         failures that were not being handled.
11843
11844         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11845
11846         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11847         row that will fail on out-of-memory.
11848
11849         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11850         function for testing out-of-memory handling.
11851
11852         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11853         allocation functions, they do map exactly to the expat ones.
11854
11855 2003-03-27  Havoc Pennington  <hp@redhat.com>
11856
11857         * bus/config-loader-libxml.c (bus_config_load): add another error
11858         check
11859
11860 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11861
11862         * doc/TODO:
11863         Add note about automatic service activation.
11864
11865         * doc/dbus-specification.sgml:
11866         Rename the specification and clarify a few things.
11867
11868 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11869
11870         * Doxyfile.in:
11871         * dbus/dbus-address.c:
11872         * dbus/dbus-dict.c:
11873         * dbus/dbus-marshal.c:
11874         * dbus/dbus-server-debug-pipe.c:
11875         * dbus/dbus-transport-unix.c:
11876         Fix documentation warnings.
11877
11878 2003-03-26  Havoc Pennington  <hp@pobox.com>
11879
11880         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11881         after every test so it's quick and easy to see which leaked, and
11882         so we test multiple dbus_shutdown() calls
11883
11884         * configure.in: change configure.in XML stuff to also support
11885         expat
11886
11887         * config-loader-libxml.c: some hacking
11888
11889         * config-loader-expat.c: some hacking
11890
11891         * config-parser.c: some hacking, plus tests
11892
11893 2003-03-25  Havoc Pennington  <hp@redhat.com>
11894
11895         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11896
11897         * configure.in: add --with-xml option to specify XML library,
11898         right now only libxml is supported.
11899
11900         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11901         nonworking code between home and work, still just stubs
11902
11903 2003-03-24  Havoc Pennington  <hp@redhat.com>
11904
11905         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11906         file
11907
11908         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11909         NULL argument for "message" if the error is a well-known one,
11910         fill in a generic message in this case.
11911
11912         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11913         favor of DBusError
11914
11915         * bus/test.c (bus_test_flush_bus): add
11916
11917         * bus/policy.c (bus_policy_test): test code stub
11918
11919 2003-03-24  Havoc Pennington  <hp@pobox.com>
11920
11921         * bus/connection.c (bus_connections_setup_connection): set up
11922         the "can this user connect" function, but it always returns
11923         TRUE until we have a config file parser so we can have a config
11924         file that allows connections.
11925
11926 2003-03-23  Havoc Pennington  <hp@pobox.com>
11927
11928         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11929         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11930         the mutex, so we can check for proper memory management
11931         and OOM handling.
11932
11933         * dbus/dbus-dataslot.c: remove the mutex from
11934         DBusDataSlotAllocator and lock it manually when using it,
11935         to simplify fitting it into the global slots framework.
11936
11937         * dbus/dbus-threads.c (init_static_locks): rework how we're
11938         handling global locks so they are easily shut down.
11939
11940         * bus/policy.c (bus_policy_append_rule): fix
11941
11942         * bus/test-main.c (main): check for memleaks
11943
11944         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11945         test suite check for memleaks
11946
11947         * dbus/dbus-memory.c: add support in test mode for tracking
11948         number of outstanding blocks
11949
11950 2003-03-23  Havoc Pennington  <hp@pobox.com>
11951
11952         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11953         policies code
11954
11955         * dbus/dbus-hash.h: add ULONG hash keys
11956
11957         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11958         (_dbus_get_group_id): new function
11959
11960 2003-03-20  Havoc Pennington  <hp@redhat.com>
11961
11962         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11963         new function
11964         (dbus_connection_get_unix_user): new function
11965
11966 2003-03-20  Havoc Pennington  <hp@pobox.com>
11967
11968         * bus/connection.c (bus_connection_send_oom_error): assert that
11969         message has a sender
11970         (connection_execute_transaction): ditto
11971         (bus_connection_preallocate_oom_error): fix to set the sender, and
11972         set recipient to the destination service, not the bus driver
11973
11974         * bus/policy.c: hacking
11975
11976         * dbus/dbus-message.c (dbus_message_service_is): new function
11977         (dbus_message_sender_is): new
11978
11979 2003-03-19  Havoc Pennington  <hp@redhat.com>
11980
11981         * bus/policy.c: start sketching code for policy restrictions on
11982         what connections can do.
11983
11984 2003-03-18  Havoc Pennington  <hp@redhat.com>
11985
11986         * doc/TODO: some notes on high-level todo items. Little nitpick
11987         stuff is all in @todo, so no need to add it here.
11988
11989         * doc/config-file.txt: some notes on how config file might look
11990
11991 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11992
11993         * configure.in: 0.6
11994
11995         * NEWS: Update.
11996
11997 2003-03-17  Havoc Pennington  <hp@redhat.com>
11998
11999         * dbus/dbus-internals.h: add gcc attributes so that
12000         our printf-style functions warn on bad arguments to
12001         format
12002
12003         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12004         format bug
12005
12006         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12007         printf format bug
12008
12009 2003-03-17  Havoc Pennington  <hp@redhat.com>
12010
12011         * bus/test-main.c (main): make it print something as it runs
12012         so make check doesn't look stuck
12013
12014         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12015         from CVS, now obsolete
12016
12017 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12018
12019         * bus/dispatch.c: (bus_dispatch):
12020         Refetch the service name since it may have been reallocated
12021         when dbus_message_set_sender was called.
12022
12023         * dbus/dbus-sysdeps.c: (_dbus_accept):
12024         Add address and address length variables and use them to stop
12025         valgrind from complaining.
12026
12027 2003-03-17  Havoc Pennington  <hp@pobox.com>
12028
12029         All tests pass, no memleaks, no valgrind complaints.
12030
12031         * bus/test.c: refcount handler_slot
12032
12033         * bus/connection.c (bus_connections_new): refcount
12034         connection_data_slot
12035
12036         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12037         bytes so that auth scripts pass.
12038
12039         * bus/dispatch.c: init message_handler_slot so it gets allocated
12040         properly
12041
12042         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12043
12044         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12045         dealloc server_pipe_hash when no longer used for benefit of
12046         leak checking
12047
12048         * dbus/dbus-auth.c (process_command): memleak fix
12049
12050         * bus/dispatch.c (check_hello_message): memleak fix
12051
12052 2003-03-16  Havoc Pennington  <hp@pobox.com>
12053
12054         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12055
12056 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12057
12058         * bus/activation.c (bus_activation_activate_service): Append
12059         the pending activation entry to the list of pending activations.
12060
12061 2003-03-16  Havoc Pennington  <hp@pobox.com>
12062
12063         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12064         connections
12065
12066         * dbus/dbus-address.c (create_entry): fix OOM handling when
12067         failing to alloc entry->method
12068
12069 2003-03-16  Havoc Pennington  <hp@pobox.com>
12070
12071         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12072         the watch
12073
12074         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12075         add some missing dbus_set_result
12076
12077         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12078         alloc the DBusMessageHandler
12079
12080         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12081         the transport here, since we call this from the finalizer; it
12082         resulted in a double-finalize.
12083
12084         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12085         where we tried to use transport->connection that was NULL,
12086         happened when transport was disconnected early on due to OOM
12087
12088         * bus/*.c: adapt to handle OOM for watches/timeouts
12089
12090         * dbus/dbus-transport-unix.c: port to handle OOM during
12091         watch handling
12092
12093         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12094         reference to unused bytes instead of a copy
12095
12096         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12097         out of memory
12098
12099         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12100         FALSE on OOM
12101
12102         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12103         of memory
12104
12105 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12106
12107         * doc/dbus-specification.sgml:
12108         Document reply message for ActivateService.
12109
12110 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12111
12112         * bus/activation.c: (bus_pending_activation_entry_free),
12113         (bus_pending_activation_free), (bus_activation_new),
12114         (bus_activation_unref), (bus_activation_service_created),
12115         (bus_activation_activate_service):
12116         * bus/activation.h:
12117         * bus/bus.c: (bus_context_new):
12118         * bus/desktop-file.c: (new_section):
12119         * bus/driver.c: (bus_driver_send_service_deleted),
12120         (bus_driver_handle_activate_service):
12121         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12122         * bus/services.h:
12123         * dbus/dbus-connection.c:
12124         (dbus_connection_send_with_reply_and_block):
12125         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12126         * dbus/dbus-protocol.h:
12127         Make activation work better. Now pending activations will be queued
12128         and the daemon won't try to activate services that are already registered.
12129
12130 2003-03-16  Havoc Pennington  <hp@pobox.com>
12131
12132         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12133         connection data
12134
12135         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12136         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12137
12138 2003-03-16  Havoc Pennington  <hp@pobox.com>
12139
12140         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12141         this. always run the test suite before commit...
12142
12143         * bus/*: adapt to DBusConnection API changes
12144
12145         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12146         requires renaming stuff to avoid dbus_connection_dispatch name
12147         conflict.
12148
12149         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12150         function
12151
12152         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12153         separate from _dbus_message_loader_return_buffer()
12154
12155         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12156         this, because it's now always broken to use; the number of
12157         messages in queue vs. the number still buffered by the message
12158         loader is undefined/meaningless. Should use
12159         dbus_connection_get_dispatch_state().
12160         (dbus_connection_dispatch): rename from
12161         dbus_connection_dispatch_message
12162
12163 2003-03-16  Havoc Pennington  <hp@pobox.com>
12164
12165         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12166         implementation
12167
12168 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12169
12170         * dbus/dbus-connection.c:
12171         (dbus_connection_send_with_reply_and_block):
12172         Decrease connection->n_incoming when removing an entry
12173         from the list.
12174         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12175         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12176         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12177         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12178         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12179         (dbus_dict_get_byte_array):
12180         Handle NULL arrays and strings. Also add support for byte arrays.
12181
12182         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12183         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12184         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12185         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12186         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12187         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12188         * dbus/dbus-marshal.h:
12189         Add support for marshalling and demarshalling empty arrays and strings.
12190
12191         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12192         (dbus_message_append_string_array),
12193         (dbus_message_iter_get_boolean),
12194         (dbus_message_iter_get_boolean_array),
12195         (dbus_message_iter_get_int32_array),
12196         (dbus_message_iter_get_uint32_array),
12197         (dbus_message_iter_get_double_array),
12198         (dbus_message_iter_get_byte_array),
12199         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12200         (check_message_handling):
12201         Add support for getting empty arrays and dicts.
12202
12203         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12204         Don't do any validation at all for now, that's better than just checking
12205         for ASCII.
12206
12207         * test/data/valid-messages/emptiness.message:
12208         New test message with lots of empty arrays.
12209
12210 2003-03-16  Havoc Pennington  <hp@pobox.com>
12211
12212         * dbus/dbus-connection.c
12213         (_dbus_connection_queue_received_message_link): new function that
12214         can't fail due to OOM
12215
12216         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12217         new function pops a message together with a list link
12218         containing it.
12219
12220         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12221         message queuing functions to avoid needing to alloc memory
12222
12223 2003-03-16  Havoc Pennington  <hp@pobox.com>
12224
12225         Oops - test code was only testing failure of around 30 of the
12226         mallocs in the test path, but it turns out there are 500+
12227         mallocs. I believe this was due to misguided linking setup such
12228         that there was one copy of dbus_malloc etc. in the daemon and one
12229         in the shared lib, and only daemon mallocs were tested. In any
12230         case, the test case now tests all 500+ mallocs, and doesn't pass
12231         yet, though there are lots of fixes in this patch.
12232
12233         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12234         this so that it doesn't need to allocate memory, since it
12235         has no way of indicating failure due to OOM (and would be
12236         annoying if it did).
12237
12238         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12239
12240         * bus/Makefile.am: rearrange to create two self-contained
12241         libraries, to avoid having libraries with overlapping symbols.
12242         that was resulting in weirdness, e.g. I'm pretty sure there
12243         were two copies of global static variables.
12244
12245         * dbus/dbus-internals.c: move the malloc debug stuff to
12246         dbus-memory.c
12247
12248         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12249         empty.
12250
12251         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12252
12253         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12254         on failure.
12255
12256         * bus/dispatch.c (bus_dispatch_add_connection): free
12257         message_handler_slot when no longer using it, so
12258         memory leak checkers are happy for the test suite.
12259
12260         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12261
12262         * bus/bus.c (new_connection_callback): disconnect in here if
12263         bus_connections_setup_connection fails.
12264
12265         * bus/connection.c (bus_connections_unref): fix to free the
12266         connections
12267         (bus_connections_setup_connection): if this fails, don't
12268         disconnect the connection, just be sure there are no side
12269         effects.
12270
12271         * dbus/dbus-string.c (undo_alignment): unbreak this
12272
12273         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12274         leaking
12275         (_dbus_auth_new): fix the order in which we free strings
12276         on OOM failure
12277
12278         * bus/connection.c (bus_connection_disconnected): fix to
12279         not send ServiceDeleted multiple times in case of memory
12280         allocation failure
12281
12282         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12283         get the base service name
12284         (dbus_bus_register_client): don't return base service name,
12285         instead store it on the DBusConnection and have an accessor
12286         function for it.
12287         (dbus_bus_register_client): rename dbus_bus_register()
12288
12289         * bus/dispatch.c (check_hello_message): verify that other
12290         connections on the bus also got the correct results, not
12291         just the one sending hello
12292
12293 2003-03-15  Havoc Pennington  <hp@pobox.com>
12294
12295         Make it pass the Hello handling test including all OOM codepaths.
12296         Now to do other messages...
12297
12298         * bus/services.c (bus_service_remove_owner): fix crash when
12299         removing owner from an empty list of owners
12300         (bus_registry_ensure): don't leave service in the list of
12301         a connection's owned services if we fail to put the service
12302         in the hash table.
12303
12304         * bus/connection.c (bus_connection_preallocate_oom_error): set
12305         error flag on the OOM error.
12306
12307         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12308         handle _dbus_transport_set_connection failure
12309
12310         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12311         to create watches up front and simply enable/disable them as
12312         needed.
12313         (unix_connection_set): this can now fail on OOM
12314
12315         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12316         of enabling/disabling a watch or timeout.
12317
12318         * bus/loop.c (bus_loop_iterate): don't touch disabled
12319         watches/timeouts
12320
12321         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12322
12323 2003-03-15  Havoc Pennington  <hp@pobox.com>
12324
12325         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12326         write useful test code, after all that futzing around ;-)
12327
12328         Test does not yet pass because we can't handle OOM in
12329         _dbus_transport_messages_pending (basically,
12330         dbus_connection_preallocate_send() does not prealloc the write
12331         watch). To fix this, I think we need to add new stuff to
12332         set_watch_functions, namely a SetEnabled function so we can alloc
12333         the watch earlier, then enable it later.
12334
12335         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12336         dbus-memory.c to the convenience lib
12337
12338         * bus/test.c: rename some static functions to keep them clearly
12339         distinct from stuff in connection.c. Handle client disconnection.
12340
12341 2003-03-14  Havoc Pennington  <hp@pobox.com>
12342
12343         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12344         transport, tests more of the real codepath. Set up clients
12345         with bus_setup_debug_client.
12346
12347         * bus/test.c (bus_setup_debug_client): function to set up debug
12348         "clients" on the main loop
12349
12350         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12351         support
12352
12353         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12354         server type
12355
12356         * dbus/dbus-server-debug.c: support a debug server based on pipes
12357
12358         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12359         (_dbus_close): new function
12360
12361         * configure.in: check for socketpair
12362
12363 2003-03-14  Havoc Pennington  <hp@redhat.com>
12364
12365         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12366         cheesy hack
12367
12368         * dbus/dbus-transport-debug.c: rework this a good bit to be
12369         less complicated. hopefully still works.
12370
12371         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12372         manually
12373
12374         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12375         after running it
12376
12377         * dbus/dbus-message.c (dbus_message_copy): rename from
12378         dbus_message_new_from_message, fix it up to copy
12379         all the message fields, add test case
12380
12381         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12382         not quite passing yet
12383
12384 2003-03-14  Havoc Pennington  <hp@pobox.com>
12385
12386         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12387         until no work remains" in test code. (the large diff here
12388         is just code movement, no actual changes)
12389
12390         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12391         1, no point waiting around for test code.
12392         (_dbus_server_debug_accept_transport): unref the timeout
12393         after adding it (right?)
12394
12395         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12396
12397 2003-03-13  Havoc Pennington  <hp@redhat.com>
12398
12399         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12400         out of memory
12401
12402         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12403         of memory
12404
12405         * dbus/dbus-connection.h: Make AddWatchFunction and
12406         AddTimeoutFunction return a bool so they can fail on out-of-memory
12407
12408         * bus/bus.c (bus_context_new): set up timeout handlers
12409
12410         * bus/connection.c (bus_connections_setup_connection): set up
12411         timeout handlers
12412
12413         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12414         can fail
12415
12416         * bus/bus.c (bus_context_new): adapt to changes
12417
12418         * bus/connection.c: adapt to changes
12419
12420         * test/watch.c: adapt to DBusWatch changes
12421
12422         * bus/dispatch.c (bus_dispatch_test): started adding this but
12423         didn't finish
12424
12425 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12426
12427         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12428
12429 2003-03-13  Havoc Pennington  <hp@pobox.com>
12430
12431         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12432         set up a test framework as for the library
12433
12434 2003-03-12  Havoc Pennington  <hp@pobox.com>
12435
12436         Throughout: purge global variables, introduce BusActivation,
12437         BusConnections, BusRegistry, etc. objects instead.
12438
12439         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12440         message bus object
12441
12442         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12443         going to redo this a bit differently I think
12444
12445 2003-03-12  Havoc Pennington  <hp@redhat.com>
12446
12447         Mega-patch that gets the message bus daemon initially handling
12448         out-of-memory. Work still needed. Also lots of random
12449         moving stuff to DBusError instead of ResultCode.
12450
12451         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12452
12453         * dbus/dbus-connection.c
12454         (dbus_connection_send_with_reply_and_block): use DBusError
12455
12456         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12457         DBusResultCode
12458
12459         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12460         code here, as the only failure possible is OOM.
12461
12462         * bus/connection.c (bus_connection_disconnect):
12463         rename bus_connection_disconnected as it's a notification only
12464
12465         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12466         "name" on get_args failure, should be done by get_args;
12467         don't disconnect client for bad args, just return an error.
12468         (bus_driver_handle_service_exists): ditto
12469
12470         * bus/services.c (bus_services_list): NULL-terminate returned array
12471
12472         * bus/driver.c (bus_driver_send_service_lost)
12473         (bus_driver_send_service_acquired): send messages from driver to a
12474         specific client to the client's unique name, not to the broadcast
12475         service.
12476
12477         * dbus/dbus-message.c (decode_header_data): reject messages that
12478         contain no name field
12479         (_dbus_message_get_client_serial): rename to
12480         dbus_message_get_serial and make public
12481         (_dbus_message_set_serial): rename from set_client_serial
12482         (_dbus_message_set_reply_serial): make public
12483         (_dbus_message_get_reply_serial): make public
12484
12485         * bus/connection.c (bus_connection_foreach): allow stopping
12486         iteration by returning FALSE from foreach function.
12487
12488         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12489         (dbus_connection_free_preallocated_send)
12490         (dbus_connection_preallocate_send): new API for sending a message
12491         without possibility of malloc failure.
12492         (dbus_connection_send_message): rename to just
12493         dbus_connection_send (and same for whole function family)
12494
12495         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12496
12497         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12498
12499         * bus/activation.c: handle/return errors
12500
12501         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12502
12503         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12504         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12505         (_dbus_result_from_errno): move to this file
12506
12507 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12508
12509         * dbus/dbus-marshal.c:
12510         (_dbus_marshal_set_string):
12511         Take a length argument so we can marshal the correct string
12512         length.
12513
12514         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12515         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12516         (_dbus_marshal_test):
12517         * dbus/dbus-marshal.h:
12518         Add support for marshalling and demarshalling dicts.
12519
12520         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12521         Add support for TYPE DICT.
12522
12523         * dbus/dbus-message.c: (set_string_field):
12524         Adjust header padding.
12525
12526         (dbus_message_append_args_valist), (dbus_message_append_dict),
12527         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12528         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12529         (check_message_handling), (check_have_valid_message):
12530         * dbus/dbus-message.h:
12531         Add functions for setting and getting dicts.
12532
12533         * dbus/dbus-protocol.h:
12534         Add DBUS_TYPE_DICT.
12535
12536         * dbus/dbus.h:
12537         Add dbus-dict.h
12538
12539         * doc/dbus-specification.sgml:
12540         Add information about how dicts are marshalled.
12541
12542         * test/data/invalid-messages/dict-with-nil-value.message:
12543         * test/data/invalid-messages/too-short-dict.message:
12544         * test/data/valid-messages/dict-simple.message:
12545         * test/data/valid-messages/dict.message:
12546         Add sample messages containing dicts.
12547
12548 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12549
12550         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12551
12552 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12553
12554         * dbus/Makefile.am:
12555         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12556         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12557         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12558         (dbus_dict_set_double), (dbus_dict_set_string),
12559         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12560         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12561         (dbus_dict_set_string_array), (_dbus_dict_test):
12562         * dbus/dbus-dict.h:
12563         Fix according to comments from Havoc.
12564
12565 2003-03-06  Michael Meeks  <michael@server.home>
12566
12567         * configure.in: if we don't have kde-config, disable have_qt.
12568
12569 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12570
12571         * dbus/Makefile.am:
12572         Add dbus-dict.[ch]
12573
12574         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12575         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12576         (dbus_dict_remove), (dbus_dict_get_value_type),
12577         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12578         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12579         (dbus_dict_put_double), (dbus_dict_put_string),
12580         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12581         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12582         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12583         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12584         (dbus_dict_get_double), (dbus_dict_get_string),
12585         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12586         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12587         (dbus_dict_get_string_array), (_dbus_dict_test):
12588         * dbus/dbus-dict.h:
12589         Add DBusDict implementation
12590
12591         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12592         * dbus/dbus-test.h:
12593         Add _dbus_dict_test
12594
12595 2003-03-04  Havoc Pennington  <hp@pobox.com>
12596
12597         * test/data/auth/*: adapt to changes
12598
12599         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12600         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12601         userid
12602
12603         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12604         more stuff from being in a context name, to make the protocol
12605         simpler to deal with
12606
12607         * dbus/dbus-errors.c (dbus_error_has_name): new function
12608         (dbus_error_is_set): new function
12609
12610         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12611         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12612
12613         * dbus/dbus-connection.c (dbus_connection_flush): also read
12614         messages during a flush operation
12615
12616         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12617
12618 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * configure.in: Check for gethostbyname on Solaris.
12621
12622         * dbus/dbus-transport.c: (_dbus_transport_open):
12623         Remove duplicate "tcp" entry.
12624
12625         * doc/dbus-specification.sgml:
12626         Clarify some things.
12627
12628 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12629
12630         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12631         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12632         (_dbus_keyring_test):
12633         * dbus/dbus-md5.c: (_dbus_md5_compute):
12634         * dbus/dbus-sha.c: (_dbus_sha_compute):
12635         Plug memory leaks.
12636
12637 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12638
12639         * README: Add some things.
12640
12641 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12642
12643         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12644         after case DBUS_TYPE_BOOELAN.
12645
12646 2003-03-02  Havoc Pennington  <hp@pobox.com>
12647
12648         * test/break-loader.c (randomly_set_extreme_ints): add test that
12649         sets really huge and small integers
12650
12651         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12652         that length of boolean array fits in the string, and that
12653         string has room for boolean value in single-bool case.
12654
12655         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12656         optional value to "ALIGN" command which is what to fill the
12657         alignment with.
12658
12659         * test/data/valid-messages/no-padding.message: add regression
12660         test for the message padding problem
12661
12662 2003-03-02  Havoc Pennington  <hp@pobox.com>
12663
12664         * dbus/dbus-message.c (decode_header_data): fix to always init
12665         message_padding, from Benjamin Dauvergne
12666
12667 2003-03-02  Havoc Pennington  <hp@pobox.com>
12668
12669         * configure.in: 0.5
12670
12671         * NEWS: Update.
12672
12673 2003-03-01  Joe Shaw  <joe@assbarn.com>
12674
12675         * configure.in: Check for "struct cmsgcred" and try to access its
12676         members for BSD-like unices.
12677
12678         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12679         _dbus_read_credentials_unix_socket().
12680         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12681         read() for reading the credential byte off the unix socket.  Use
12682         struct cmsgcred on systems that support it.
12683
12684 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12685
12686         * glib/Makefile.am:
12687         * configure.in:
12688         Make gthreads-2.0 dependency optional. Don't build thread test if
12689         its not found.
12690
12691 2003-02-27  Havoc Pennington  <hp@pobox.com>
12692
12693         * dbus/dbus-connection.c
12694         (dbus_connection_send_message_with_reply_and_block): fix doh!
12695         doh! doh! bug that resulted in never removing a reply from the
12696         queue, no wonder we called get_reply_serial so much ;-)
12697
12698         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12699         and client serial instead of demarshaling them every time
12700
12701 2003-02-27  Havoc Pennington  <hp@pobox.com>
12702
12703         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12704         more inlined, using dbus-string-private.h, speeds things up
12705         substantially
12706
12707         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12708         when freeing the string
12709         (_dbus_string_steal_data): fix for align offset
12710         (undo_alignment): new function
12711
12712 2003-02-26  Havoc Pennington  <hp@redhat.com>
12713
12714         All kinds of audit fixes from Owen, plus initial attempt to
12715         handle unaligned memory returned from malloc.
12716
12717         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12718         leave room for align_offset and nul byte
12719         (fixup_alignment): function to track an align_offset and
12720         ensure real->str is aligned
12721         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12722         to allow a nul byte plus align offset
12723         (_dbus_string_lock): fix overflow issue
12724         (_dbus_string_init_const_len): add assertions on sanity of len,
12725         assign allocated to be ALLOCATION_PADDING larger than len
12726         (set_length): fixup the overflow handling
12727         (_dbus_string_get_data_len): fix overflow in assertion
12728         (open_gap): detect overflow in size of gap to be opened
12729         (_dbus_string_lengthen): add overflow check
12730         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12731         (_dbus_string_append): add overflow check
12732         (_dbus_string_append_unichar): overflow
12733         (_dbus_string_delete): fix overflow in assertion
12734         (_dbus_string_copy_len): overflow in assertion
12735         (_dbus_string_replace_len): overflows in assertions
12736         (_dbus_string_find): change to implement in terms of
12737         _dbus_string_find_to
12738         (_dbus_string_find_to): assorted fixage
12739         (_dbus_string_equal_c_str): assert c_str != NULL,
12740         fix logic so the function works
12741         (_dbus_string_ends_with_c_str): fix overflow thingy
12742         (_dbus_string_base64_encode): overflow fix
12743         (_dbus_string_validate_ascii): overflow
12744         (_dbus_string_validate_nul): overflow
12745
12746 2003-02-26  Havoc Pennington  <hp@redhat.com>
12747
12748         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12749
12750 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12751
12752         * configure.in:
12753         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12754
12755         * dbus/dbus-connection.c:
12756         * dbus/dbus-connection.h:
12757         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12758         Add dbus_connection_set_wakeup_main_function and use it when queueing
12759         incoming and outgoing messages.
12760
12761
12762         * dbus/dbus-dataslot.c:
12763         Threadsafe usage of DBusDataSlotAllocator
12764
12765         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12766         dbus_new can fail.
12767
12768         * dbus/dbus-server-unix.c:
12769         Add todo comment
12770
12771         * glib/dbus-gmain.c:
12772         Implement the new wakeup functions for glib.
12773
12774         * glib/Makefile.am:
12775         * glib/test-thread-client.c:
12776         * glib/test-thread-server.c:
12777         * glib/test-thread.h:
12778         Initial cut at some thread test code. Not really done yet.
12779
12780 2003-02-26  Havoc Pennington  <hp@pobox.com>
12781
12782         * dbus/dbus-connection.c
12783         (dbus_connection_send_message_with_reply_and_block): fix crash
12784         where we ref'd the outgoing message instead of the returned reply
12785
12786         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12787         at the end of this function, so if we didn't need to read for
12788         authentication, we reinstall it for receiving messages
12789
12790         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12791         a NULL sender for peer-to-peer case
12792
12793         * dbus/dbus-transport-unix.c (check_read_watch): handle
12794         !authenticated case correctly
12795
12796         * glib/dbus-gmain.c: add support for DBusServer
12797
12798         * dbus/dbus-server.c: add data slot support
12799
12800         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12801         return values and handle errors
12802
12803         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12804         DBusConnection
12805
12806         * Doxyfile.in (INPUT): add glib subdir
12807
12808         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12809         setup_with_g_main instead of hookup_with_g_main; write docs
12810
12811 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12812
12813         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12814         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12815         * dbus/dbus-message.c: (dbus_message_append_boolean),
12816         (dbus_message_append_boolean_array),
12817         (dbus_message_get_args_valist), (_dbus_message_test):
12818         * dbus/dbus-message.h:
12819         * doc/dbus-specification.sgml:
12820         Various fixes as pointed out by Havoc.
12821
12822         * test/data/invalid-messages/bad-boolean-array.message:
12823         * test/data/invalid-messages/bad-boolean.message:
12824         Add invalid boolean value test cases.
12825
12826 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12827
12828         * dbus/dbus-internals.c: (_dbus_type_to_string):
12829         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12830         (_dbus_marshal_validate_arg):
12831         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12832         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12833         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12834         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12835         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12836         (dbus_message_iter_get_double),
12837         (dbus_message_iter_get_boolean_array), (message_iter_test):
12838         * dbus/dbus-message.h:
12839         * dbus/dbus-protocol.h:
12840         * doc/dbus-specification.sgml:
12841         * test/data/valid-messages/lots-of-arguments.message:
12842         Add support for boolean and boolean array types.
12843
12844 2003-02-23  Havoc Pennington  <hp@pobox.com>
12845
12846         * dbus/dbus-keyring.c: finish most of this implementation and
12847         simple unit test
12848
12849         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12850         these barf if the error isn't cleared to NULL
12851
12852         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12853         (_dbus_create_directory): new function
12854
12855         * dbus/dbus-errors.c (dbus_set_error): fix warning
12856
12857         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12858         (_dbus_string_hex_decode): new function
12859         (test_hex_roundtrip): test code
12860
12861         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12862
12863         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12864
12865         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12866         the save-to-temp/rename trick to atomically write the new file
12867         (_dbus_string_parse_uint): new function
12868
12869 2003-02-22  Havoc Pennington  <hp@pobox.com>
12870
12871         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12872
12873 2003-02-22  Havoc Pennington  <hp@pobox.com>
12874
12875         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12876         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12877
12878         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12879
12880         * dbus/test/data/sha-1: add US government test suite for SHA-1
12881
12882 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12883
12884         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12885         Make string arrays NULL-terminated.
12886
12887         * dbus/dbus-memory.c: (dbus_free_string_array):
12888         * dbus/dbus-memory.h:
12889         New function for freeing NULL-terminated string arrays.
12890
12891         * dbus/dbus-message-builder.c: (append_quoted_string),
12892         (_dbus_message_data_load):
12893         Add support for array types.
12894
12895         * dbus/dbus-message.c: (check_message_handling):
12896         Add more types as test cases.
12897
12898         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12899         (_dbus_string_parse_double):
12900         Add the start offset to the end offset.
12901
12902         * test/data/valid-messages/lots-of-arguments.message:
12903         New test message with lots of arguments.
12904
12905 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12906
12907         * dbus/dbus-message.c: (dbus_message_append_nil),
12908         (dbus_message_append_int32), (dbus_message_append_uint32),
12909         (dbus_message_append_double), (dbus_message_append_string),
12910         (dbus_message_append_int32_array),
12911         (dbus_message_append_uint32_array),
12912         (dbus_message_append_double_array),
12913         (dbus_message_append_byte_array),
12914         (dbus_message_append_string_array):
12915         Fix all out-of-memory handling in these functions.
12916
12917 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12918
12919         * dbus/dbus-message.c: (dbus_message_append_nil):
12920         Fix a silly.
12921
12922 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12923
12924         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12925         (dbus_message_append_nil), (dbus_message_append_int32_array),
12926         (dbus_message_append_uint32_array),
12927         (dbus_message_append_double_array),
12928         (dbus_message_append_byte_array),
12929         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12930         (dbus_message_iter_get_int32_array),
12931         (dbus_message_iter_get_uint32_array),
12932         (dbus_message_iter_get_double_array),
12933         (dbus_message_iter_get_byte_array),
12934         (dbus_message_iter_get_string_array):
12935
12936         * dbus/dbus-message.h:
12937         Add functions for appending and getting arrays.
12938
12939 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12940
12941         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12942         element size at least 8 bytes, fixes mempool tests on
12943         64-bit machines.
12944
12945 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12946
12947         * dbus/dbus-transport-unix.c (unix_do_iteration):
12948         Unlock the connection mutex during a blocking select call.
12949         Add todo about how we need a way to wake up the select.
12950
12951         * dbus/dbus-connection-internal.h:
12952         * dbus/dbus-connection.c:
12953         Add _dbus_connection_lock and _dbus_connection_unlock.
12954
12955 2003-02-19  Havoc Pennington  <hp@pobox.com>
12956
12957         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12958         Doxyfile.in, not Doxyfile
12959
12960         * dbus/dbus-keyring.c: do some hacking on this
12961
12962         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12963
12964         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12965         dbus_error_init
12966         (dbus_set_error): remove dbus_error_init, check for message ==
12967         NULL *before* we sprintf into it, and add @todo about including
12968         system headers in this file
12969
12970         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12971
12972         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12973
12974         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12975         get various bits of user information based on either username
12976         or user ID
12977         (_dbus_homedir_from_username): new function
12978
12979 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12980
12981         * configure.in:
12982         Add check for nonposix getpwnam_r
12983
12984         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12985         Align the pool element size to a sizeof (void *) boundary.
12986
12987         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12988         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12989         General Solaris fixes.
12990
12991         * test/data/valid-messages/simplest-manual.message:
12992         Explicitly state that we want little-endian packing.
12993
12994 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12995
12996         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12997
12998         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12999         Added to create a transport connecting using a tcp/ip socket.
13000
13001         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13002         to a tcp socket at given host and port.
13003         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13004         hostname and port.
13005
13006         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13007
13008         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13009         Added to create a server listening on a TCP/IP socket.
13010
13011 2003-02-19  Havoc Pennington  <hp@pobox.com>
13012
13013         Throughout: mop up all the Doxygen warnings and undocumented
13014         stuff.
13015
13016         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13017         to search any paths.
13018
13019         * dbus/dbus-threads.c: move global mutex initializers to
13020         dbus-internals.h, multiple prototypes was confusing doxygen
13021         besides being kind of ugly
13022
13023         * Doxyfile (PREDEFINED): have Doxygen define
13024         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13025         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13026         (do not abuse the feature! it's for stuff like the autogenerated
13027         macros in dbus-md5.c, not just for things you don't feel like
13028         documenting...)
13029
13030 2003-02-18  Havoc Pennington  <hp@pobox.com>
13031
13032         * dbus/dbus-string.c (_dbus_string_zero): new function
13033
13034         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13035         wrap it in some dbus-friendly API
13036
13037         * dbus/dbus-types.h: add 16-bit types
13038
13039 2003-02-18  Joe Shaw  <joe@assbarn.com>
13040
13041         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13042         credentials from our currently running process.
13043         (get_word): Fix a buglet where we were copying the entire length
13044         instead of relative to our position.
13045
13046         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13047         keys on the stack... it's 640k of data.
13048
13049         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13050         read the credentials byte off the socket, even if we don't have
13051         SO_PEERCRED.
13052         (_dbus_poll): Implement poll() using select() for systems which
13053         don't have it.
13054
13055         * glib/test-dbus-glib.c (main): Print out an error if no
13056         parameters are given.
13057
13058         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13059         can fallback to a secondary auth mechanism if the first fails.
13060
13061 2003-02-18  Havoc Pennington  <hp@pobox.com>
13062
13063         * AUTHORS: add Alex
13064
13065 2003-02-17  Havoc Pennington  <hp@pobox.com>
13066
13067         * doc/dbus-specification.sgml: lots of cosmetic
13068         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13069         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13070         s/server/bus/ (except in authentication section). Add a section
13071         "Message Bus Message Routing"
13072
13073 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13074
13075         Release 0.4
13076
13077         * NEWS: Update
13078
13079 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13080
13081         * doc/dbus-specification.sgml:
13082         Specification updates.
13083
13084 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13085
13086         * bus/activation.c: (bus_activation_init), (child_setup),
13087         (bus_activation_activate_service):
13088         * bus/activation.h:
13089         * bus/main.c: (main):
13090         Set DBUS_ADDRESS environment variable.
13091
13092         * dbus/dbus-errors.c: (dbus_set_error):
13093         Don't use va_copy since that's a C99 feature.
13094
13095         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13096         (_dbus_spawn_async):
13097         * dbus/dbus-sysdeps.h:
13098         Add child_setup_func to _dbus_spawn_async.
13099
13100         * doc/dbus-specification.sgml:
13101         Update specification.
13102
13103         * test/spawn-test.c: (setup_func), (main):
13104         Fix test.
13105
13106 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13107
13108         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13109         Added todo.
13110
13111 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13112
13113         * doc/.cvsignore:
13114         * doc/Makefile.am:
13115         * doc/dbus-test-plan.sgml:
13116         Add test plan document.
13117
13118         * test/Makefile.am:
13119         Fix distcheck.
13120
13121 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13122
13123         * dbus/dbus-message.c: (decode_header_data),
13124         (_dbus_message_loader_return_buffer):
13125         Set the header padding amount when loading a message.
13126
13127 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13128
13129         * bus/dispatch.c: (send_one_message):
13130         Only send broadcast messages to registered connections.
13131
13132         * dbus/dbus-message.c: (dbus_message_name_is):
13133         * dbus/dbus-message.h:
13134         New convenience function.
13135
13136         * dbus/dbus-transport-debug.c: (do_reading):
13137         Only dispatch one message per run.
13138
13139         * test/Makefile.am:
13140         * test/bus-test.c: (new_connection_callback), (die),
13141         (test_hello_client1_handler), (test_hello_client2_handler),
13142         (test_hello_replies), (main):
13143
13144         * test/bus-test-loop.[ch]:
13145         Add these.
13146
13147 2003-02-16  Havoc Pennington  <hp@pobox.com>
13148
13149         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13150         backward conditional
13151
13152 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13153
13154         * dbus/dbus-connection.c:
13155         Implement sent_message_with_reply. (with_reply_and block is still
13156         busted).
13157         Made dispatch_message not lose message if OOM.
13158
13159         * dbus/dbus-errors.h:
13160         Add NoReply error (for reply timeouts).
13161
13162 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13163
13164         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13165         Actually free keys and values when destroying hashtable.
13166
13167 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13168
13169         * dbus/dbus-auth.c: (client_try_next_mechanism):
13170         Plug a leak.
13171
13172         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13173         Return TRUE if there's no thread implementation around.
13174
13175         * glib/dbus-gmain.c: (free_source),
13176         (dbus_connection_hookup_with_g_main):
13177         Make sure to remove the GSource when the connection is finalized.
13178
13179 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13180
13181         * bus/dispatch.c: (bus_dispatch_message_handler):
13182         * dbus/dbus-errors.h:
13183         Return an error if someone tries to send a message to a service
13184         that doesn't exist.
13185
13186 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13187
13188         * bus/activation.c: (load_directory), (bus_activation_init),
13189         (bus_activation_activate_service):
13190         * bus/activation.h:
13191         * bus/driver.c:
13192         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13193         More work on the activation handling.
13194
13195         * dbus/dbus-errors.h:
13196         Add some error messages
13197
13198         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13199         * dbus/dbus-message.h:
13200         New function that creates an error message.
13201
13202         * dbus/dbus-protocol.h:
13203         Add ACTIVATE_SERVER message.
13204
13205         * dbus/dbus-server-unix.c: (unix_handle_watch),
13206         (_dbus_server_new_for_domain_socket):
13207         Call _dbus_fd_set_close_on_exec.
13208
13209         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13210         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13211         (_dbus_fd_set_close_on_exec):
13212         * dbus/dbus-sysdeps.h:
13213         Add _dbus_fd_set_close_on exec function. Also add function that checks
13214         that all open fds are set to close-on-exec and warns otherwise.
13215
13216         * dbus/dbus-transport-unix.c:
13217         (_dbus_transport_new_for_domain_socket):
13218         Call _dbus_fd_set_close_on_exec.
13219
13220 2003-02-16  Havoc Pennington  <hp@pobox.com>
13221
13222         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13223         allow people to avoid setting SIGPIPE to SIG_IGN
13224         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13225         we've been asked not to
13226
13227 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13228
13229         * dbus/dbus-list.c: (_dbus_list_append_link),
13230         (_dbus_list_prepend_link):
13231         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13232         (dbus_realloc):
13233         Warning fixes.
13234
13235 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13236
13237         * bus/Makefile.am:
13238         * bus/activation.c: (bus_activation_entry_free),
13239         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13240         * bus/activation.h:
13241         * bus/main.c: (main):
13242         Add simple activation support, doesn't work yet though.
13243
13244 2003-02-15   Zack Rusin  <zack@kde.org>
13245
13246         * qt/dbus-qthread.cpp:  small casting fix
13247
13248 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13249
13250         * dbus/dbus-errors.c: (dbus_set_error):
13251         * dbus/dbus-errors.h:
13252         Add a few errors and make dbus_set_error void.
13253
13254         * dbus/dbus-sysdeps.c:
13255         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13256         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13257         * dbus/dbus-sysdeps.h:
13258         Add _dbus_spawn_async.
13259
13260         * test/spawn-test.c: (main):
13261         Test for _dbus_spawn_async.
13262
13263 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13264
13265         * dbus/dbus-internals.h:
13266         Fix build without tests.
13267
13268         * dbus/dbus-list.c: (alloc_link):
13269         Fix a segfault when a malloc fails.
13270
13271         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13272         (dbus_malloc0), (dbus_realloc):
13273         Add support for malloc debugging.
13274
13275 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13276
13277         * dbus/dbus-threads.c:
13278         * dbus/dbus-threads.h:
13279         Add condvars. Remove static mutext from API.
13280         Implement static mutexes by initializing them from threads_init.
13281
13282         * glib/dbus-gthread.c:
13283         * qt/dbus-qthread.cpp:
13284         Update with the thread api changes.
13285
13286
13287         * dbus/dbus-list.c:
13288         * dbus/dbus-list.h:
13289         Turn StaticMutex into normal mutex + init function.
13290         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13291         _dbus_list_append_link, _dbus_list_prepend_link
13292
13293
13294         * dbus/dbus-sysdeps.c:
13295         * dbus/dbus-sysdeps.h:
13296         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13297         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13298
13299         * dbus/dbus-protocol.h:
13300         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13301
13302         * dbus/dbus-message.c:
13303         Make ref/unref atomic.
13304         Fix some docs.
13305
13306         * dbus/dbus-connection-internal.h:
13307         * dbus/dbus-connection.c:
13308         * dbus/dbus-connection.h:
13309         Make threadsafe.
13310         Change _peek to _borrow,_return & _steal_borrowed.
13311         Change disconnect callback to event.
13312         Make dbus_connection_dispatch_messages reentrant.
13313
13314         * dbus/dbus-transport.c:
13315         Don't ref the connection on calls to the transport
13316         implementation.
13317
13318         * dbus/dbus-message-handler.c:
13319         Make threadsafe.
13320
13321         * glib/dbus-gmain.c:
13322         Don't use peek_message anymore
13323
13324         * test/Makefile.am:
13325         * test/debug-thread.c:
13326         * test/debug-thread.h:
13327         Simple thread implementation that asserts() on deadlocks in
13328         single-threaded code.
13329
13330         * test/bus-test.c:
13331         (main) Call debug_threads_init.
13332
13333         * test/watch.c:
13334         Use disconnect message instead of disconnect callback.
13335
13336         * bus/connection.c:
13337         * bus/connection.h:
13338         Don't call dbus_connection_set_disconnect_function. Instead export
13339         bus_connection_disconnect.
13340
13341         * bus/dispatch.c:
13342         Call bus_connection_disconnect when we get a disconnected message.
13343
13344 2003-02-15  Havoc Pennington  <hp@pobox.com>
13345
13346         * dbus/dbus-message.c (dbus_message_new): fool around with the
13347         docs
13348
13349 2003-02-14  Havoc Pennington  <hp@pobox.com>
13350
13351         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13352
13353         * dbus/dbus-memory.c: fail if the debug functions indicate we
13354         should
13355
13356         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13357         (_dbus_decrement_fail_alloc_counter): debug functions to
13358         simulate memory allocation failures
13359
13360 2003-02-14  Havoc Pennington  <hp@pobox.com>
13361
13362         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13363         to DBusError
13364
13365 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13366
13367         * bus/driver.c: (bus_driver_handle_hello):
13368         * bus/driver.h:
13369         * bus/services.c: (bus_service_lookup):
13370         Reorder message sending so we get a more sane order.
13371
13372         * test/bus-test.c: (message_handler):
13373         Fix tyop.
13374
13375 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13376
13377         * bus/driver.c: (bus_driver_send_service_deleted),
13378         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13379         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13380         (bus_driver_send_welcome_message),
13381         (bus_driver_handle_list_services),
13382         (bus_driver_handle_acquire_service),
13383         (bus_driver_handle_service_exists):
13384         * dbus/dbus-bus.c: (dbus_bus_register_client),
13385         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13386         * dbus/dbus-errors.c: (dbus_result_to_string):
13387         * dbus/dbus-errors.h:
13388         * dbus/dbus-message.c: (dbus_message_append_args),
13389         (dbus_message_append_args_valist), (dbus_message_get_args),
13390         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13391         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13392         (dbus_message_iter_get_byte_array),
13393         (dbus_message_iter_get_string_array), (message_iter_test),
13394         (check_message_handling), (_dbus_message_test):
13395         * dbus/dbus-message.h:
13396         * test/bus-test.c: (main):
13397         Change fields to arguments in messages, so that they won't be
13398         confused with header fields.
13399
13400         * glib/test-dbus-glib.c: (main):
13401         Remove append_fields from hello message.
13402
13403 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13404
13405         * dbus/dbus-errors.c:
13406         * dbus/dbus-message.c:
13407         * dbus/dbus-string.c:
13408         Documentation fixes.
13409
13410 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13411
13412         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13413         (remove_timeout):
13414         Implement support for timeouts in dbus-glib.
13415
13416 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13417
13418         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13419         * dbus/dbus-message.c: (process_test_subdir):
13420         * test/break-loader.c: (find_breaks_based_on):
13421         Plug some memory leaks.
13422
13423 2003-02-13  Richard Hult  <rhult@codefactory.se>
13424
13425         * bus/main.c: Fix build.
13426
13427         * dbus/dbus-errors.h:
13428         * dbus/dbus-errors.c: Fix copyright for Anders.
13429
13430 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13431
13432         * bus/Makefile.am:
13433         Add utils.[ch]
13434
13435         * bus/connection.c: (bus_connection_foreach):
13436         Fix a warning.
13437
13438         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13439         (unescape_string), (new_section), (parse_section_start),
13440         (parse_key_value), (report_error), (bus_desktop_file_load),
13441         (bus_desktop_file_get_string):
13442         * bus/desktop-file.h:
13443         Use DBusError for error reporting.
13444
13445         * bus/dispatch.c: (send_one_message),
13446         (bus_dispatch_message_handler):
13447         * bus/driver.c: (bus_driver_send_service_deleted),
13448         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13449         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13450         (bus_driver_send_welcome_message),
13451         (bus_driver_handle_list_services),
13452         (bus_driver_handle_acquire_service),
13453         (bus_driver_handle_service_exists):
13454         * bus/loop.c: (bus_loop_run):
13455         * bus/main.c:
13456         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13457
13458         * bus/utils.c: (bus_wait_for_memory):
13459         * bus/utils.h:
13460         New files with general utility functions.
13461
13462         * dbus/dbus-internals.h:
13463         Remove _DBUS_HANDLE_OOM.
13464
13465 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13466
13467         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13468         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13469         * dbus/dbus-errors.h:
13470         Add DBusError structure.
13471
13472 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13473
13474         * test/data/valid-messages/standard-acquire-service.message:
13475         * test/data/valid-messages/standard-hello.message:
13476         * test/data/valid-messages/standard-list-services.message:
13477         * test/data/valid-messages/standard-service-exists.message:
13478         Add some standard messages.
13479
13480 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13481
13482         * bus/driver.c: (bus_driver_send_welcome_message),
13483         (bus_driver_handle_list_services),
13484         (bus_driver_handle_acquire_service),
13485         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13486         Update for API changes in libdbus.
13487
13488         * dbus/dbus-message.c: (dbus_message_new_reply):
13489         * dbus/dbus-message.h:
13490         Remove the name argument. The spec states that replies shouldn't
13491         have a name.
13492
13493 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13494
13495         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13496         (report_error), (bus_desktop_file_load), (lookup_section),
13497         (lookup_line), (bus_desktop_file_get_raw),
13498         (bus_desktop_file_get_string):
13499         * bus/desktop-file.h:
13500         Some fixes, and new functions for getting a key value from a section.
13501
13502 2003-02-13  Havoc Pennington  <hp@pobox.com>
13503
13504         * test/data/auth/fail-after-n-attempts.auth-script: new test
13505
13506         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13507         reject the client.
13508
13509 2003-02-13  Havoc Pennington  <hp@pobox.com>
13510
13511         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13512         dbus_credentials_match were backward
13513
13514         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13515         NO_CREDENTIALS and ROOT_CREDENTIALS
13516
13517         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13518         into here. Never process more commands after we've reached an
13519         end state; store further data as unused bytes.
13520
13521         * test/data/auth/*: add more auth tests
13522
13523         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13524         command to match exact string and EXPECT_UNUSED to match unused
13525         bytes
13526
13527         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13528
13529 2003-02-12  Havoc Pennington  <hp@pobox.com>
13530
13531         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13532         \r off of popped lines
13533
13534         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13535         scripts
13536
13537         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13538         SEND, append \r\n
13539
13540 2003-02-12  Havoc Pennington  <hp@pobox.com>
13541
13542         * dbus/Makefile.am: remove break-loader from the build, since it
13543         moved.
13544
13545         * configure.in: add --enable-gcov to turn on coverage profiling
13546         flags and disable optimization
13547
13548 2003-02-10  Havoc Pennington  <hp@pobox.com>
13549
13550         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13551         initial cut at test framework for DBusAuth from laptop.
13552         Doesn't quite work yet but it compiles and I need to get
13553         it off the 266mhz laptop. ;-)
13554
13555         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13556         fix a memleak in error case
13557
13558 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13559
13560         * bus/Makefile.am:
13561         * bus/desktop-file.c:
13562         * bus/desktop-file.h:
13563         Add a desktop file parser.
13564
13565 2003-02-11  Zack Rusin  <zack@kde.org>
13566
13567         * qt/message.[h|cpp]: sample implementation
13568         of the KDE wrapper for DBusMessage
13569
13570 2003-02-09  Zack Rusin  <zack@kde.org>
13571
13572         * test/bus-test.c: make_it_compile
13573         * doc/dbus-specification.sgml: minimal semantic fix
13574
13575 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13576
13577         Release 0.3
13578
13579         * NEWS: Update
13580
13581 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13582
13583         * dbus/Makefile.am:
13584         * dbus/dbus-break-loader.c:
13585         * test/Makefile.am:
13586         * test/break-loader.c:
13587         Move dbus-break-loader to test/ and rename it to break-loader.
13588
13589 2003-02-02  Havoc Pennington  <hp@pobox.com>
13590
13591         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13592         for code to manage cookies in your home directory
13593
13594         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13595
13596         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13597         to authenticate, then disconnect the client.
13598
13599 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13600
13601         * dbus/dbus-message.c (dbus_message_append_fields):
13602         Correct docs.
13603
13604 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13605
13606         * doc/dbus-specification.sgml:
13607         Update address format section.
13608
13609 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13610
13611         * test/Makefile.am:
13612         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13613         (message_handler), (new_connection_callback), (loop_quit),
13614         (loop_run), (main):
13615         Add bus test.
13616
13617 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13618
13619         * bus/driver.c: (bus_driver_handle_service_exists):
13620         Simplify the code a bit.
13621
13622         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13623         Fix a silly.
13624
13625 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13626
13627         * bus/Makefile.am:
13628         Add libdbus-daemon.la and link to it.
13629
13630 2003-02-01  James Willcox  <jwillcox@gnome.org>
13631
13632         * bus/driver.c: (bus_driver_handle_own_service):
13633         Actually include the service reply code in the message.
13634
13635 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13636
13637         * bus/driver.c: (bus_driver_handle_service_exists):
13638         Don't unref the incoming message.
13639
13640 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13641
13642         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13643
13644 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13645
13646         * dbus/dbus-server.c: (dbus_server_listen):
13647         * dbus/dbus-transport.c: (_dbus_transport_open):
13648         ifdef out the calls to the debug transport and server.
13649
13650 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13651
13652         * dbus/dbus-watch.c (dbus_watch_get_flags):
13653         Add note in the docs that ERROR or HANGUP won't be returned
13654         and are assumed always on.
13655
13656         * glib/dbus-gmain.c (add_watch):
13657         Always add IO_ERR | IO_HUP
13658
13659         * dbus/dbus-message.h:
13660         Add semicolon after dbus_message_iter_get_string_array().
13661         Makes qt code build again
13662
13663 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13664
13665         * bus/driver.c: (create_unique_client_name),
13666         (bus_driver_handle_hello):
13667         Don't take a name, just use a numeric id to identify
13668         each client.
13669
13670         * dbus/Makefile.am:
13671         * dbus/dbus-bus.c: (dbus_bus_register_client),
13672         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13673         * dbus/dbus-bus.h:
13674         Add new convenience functions for communicating with the bus.
13675
13676         * dbus/dbus-message.h:
13677
13678         * dbus/dbus-protocol.h:
13679         Fix a typo.
13680
13681 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13682
13683         * dbus/dbus-message.c (dbus_message_append_fields):
13684         Add some more doc comments.
13685
13686 2003-02-01  Havoc Pennington  <hp@pobox.com>
13687
13688         * dbus/dbus-break-loader.c (randomly_modify_length): change
13689         a 4-byte value in the message as if it were a length
13690
13691         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13692         execute bit on saved files
13693
13694 2003-02-01  Havoc Pennington  <hp@pobox.com>
13695
13696         * dbus/dbus-break-loader.c (main): new program to find messages
13697         that break the loader.
13698
13699         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13700         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13701
13702         * dbus/dbus-string.c (_dbus_string_set_byte): new
13703
13704 2003-01-31  Havoc Pennington  <hp@pobox.com>
13705
13706         * dbus/dbus-message.c: refactor the test code to be more general,
13707         in preparation for writing a "randomly permute test cases to
13708         try to break the loader" program.
13709
13710 2003-01-31  Havoc Pennington  <hp@pobox.com>
13711
13712         * doc/dbus-specification.sgml: work on the specification
13713
13714         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13715         the protocol version of the message.
13716
13717         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13718         no longer specifies that.
13719         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13720         1/2/3/4)
13721
13722         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13723         "break" for DBUS_TYPE_NIL, remove @todo
13724
13725 2003-01-31  Havoc Pennington  <hp@pobox.com>
13726
13727         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13728         just set_is_error/get_is_error as this is a commonly-used
13729         function, and write docs.
13730
13731 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13732
13733         * dbus/dbus-address.c: (dbus_address_entry_free):
13734         Free key and value lists.
13735
13736         * dbus/dbus-internals.c: (_dbus_type_to_string):
13737         Add the types we didn't have.
13738
13739         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13740         (_dbus_marshal_validate_arg):
13741         Add NIL types.
13742
13743         * dbus/dbus-message.c: (dbus_message_set_sender):
13744         Remove todo about being able to set sender to NULL.
13745
13746         (dbus_message_set_is_error_reply),
13747         (dbus_message_get_is_error_reply):
13748         * dbus/dbus-message.h:
13749         New functions.
13750
13751         * dbus/dbus-protocol.h:
13752         Add error reply flag.
13753
13754         * test/data/valid-messages/opposite-endian.message:
13755         Add NIL type to test.
13756
13757 2003-01-31  Havoc Pennington  <hp@pobox.com>
13758
13759         * doc/dbus-specification.sgml: fully specify the header.  Add
13760         flags and major protocol version, and change header/body len to
13761         unsigned.
13762
13763         * dbus/dbus-message-builder.c (append_saved_length): append length
13764         as uint32
13765
13766         * dbus/dbus-message.c (dbus_message_create_header): change header
13767         length and body length to unsigned. Add the new fields from the
13768         spec
13769         (_dbus_message_loader_return_buffer): unsigned header/body len
13770
13771 2003-01-30  Havoc Pennington  <hp@pobox.com>
13772
13773         * dbus/dbus-auth.c: rework to use only REJECTED, no
13774         MECHANISMS
13775
13776         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13777         use REJECTED, suggested by Mark McLoughlin
13778
13779 2003-01-30  Havoc Pennington  <hp@pobox.com>
13780
13781         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13782         a better way to report errors here. e.g.  "unix address lacks
13783         path" or something. also "no such file" when the path doesn't
13784         exist, etc.
13785
13786         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13787         leaking list nodes
13788         (dbus_parse_address): add @todo about documenting address format,
13789         and allowing , and ; to be escaped
13790
13791 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13792
13793         * dbus/Makefile.am:
13794         Add dbus-address.[ch]
13795
13796         * dbus/dbus-address.c: (dbus_address_entry_free),
13797         (dbus_address_entries_free), (create_entry),
13798         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13799         (dbus_parse_address), (_dbus_address_test):
13800         * dbus/dbus-address.h:
13801         New files for dealing with address parsing.
13802
13803         * dbus/dbus-connection.c:
13804         Document timeout functions.
13805
13806         * dbus/dbus-message.c:
13807         Document dbus_message_new_from_message.
13808
13809         * dbus/dbus-server-debug.c:
13810         Document.
13811
13812         * dbus/dbus-server.c: (dbus_server_listen):
13813         Parse address and use correct server implementation.
13814
13815         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13816         * dbus/dbus-string.h:
13817         New function with test.
13818
13819         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13820         * dbus/dbus-test.h:
13821         Add address tests.
13822
13823         * dbus/dbus-transport-debug.c:
13824         Document.
13825
13826         * dbus/dbus-transport.c: (_dbus_transport_open):
13827         Parse address and use correct transport implementation.
13828
13829 2003-01-30  Havoc Pennington  <hp@pobox.com>
13830
13831         * dbus/dbus-message.c: use message->byte_order instead of
13832         DBUS_COMPILER_BYTE_ORDER throughout.
13833         (dbus_message_create_header): pad header to align the
13834         start of the body of the message to 8-byte boundary
13835
13836         * dbus/dbus-marshal.h: make all the demarshalers take const
13837         DBusString arguments.
13838
13839         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13840         validate message args here, so we don't have to do slow validation
13841         later, and so we catch bad messages as they are incoming. Also add
13842         better checks on header_len and body_len. Also fill in
13843         message->byte_order
13844
13845         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13846         implemented properly)
13847         (_dbus_string_validate_nul): new function to check all-nul
13848
13849         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13850         get_arg_end_pos and remove all validation
13851         (_dbus_marshal_validate_arg): actually do validation here.
13852
13853 2003-01-29  Havoc Pennington  <hp@pobox.com>
13854
13855         * dbus/dbus-message.c (check_message_handling): fix assertion
13856         failure on set_client_serial
13857
13858 2003-01-28  Havoc Pennington  <hp@pobox.com>
13859
13860         * dbus/dbus-server-debug.c: Add doc section comments
13861
13862         * dbus/dbus-transport-debug.c: add doc section comments
13863
13864 2003-01-28  Havoc Pennington  <hp@redhat.com>
13865
13866         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13867         the reverse order from how I had it
13868         (_dbus_string_base64_encode): reverse encoding order. I was
13869         basically byteswapping everything during encoding.
13870
13871 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13872
13873         * dbus/dbus-connection-internal.h:
13874         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13875         (_dbus_connection_remove_timeout):
13876         Add functions for adding and removing timeouts.
13877
13878         * dbus/dbus-message.c: (dbus_message_new_from_message):
13879         Add new function that takes a message and creates an exact
13880         copy of it, but with the refcount set to 1.
13881         (check_message_handling):
13882         Fix build error.
13883
13884         * dbus/dbus-server-protected.h:
13885         * dbus/dbus-server.c: (_dbus_server_init_base),
13886         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13887         (dbus_server_set_timeout_functions):
13888         (_dbus_server_remove_timeout):
13889         New functions so that a server can add and remove timeouts.
13890
13891         (dbus_server_listen):
13892         Add commented out call to dbus_server_debug_new.
13893
13894         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13895         Actually set the handler, doh.
13896
13897         * dbus/dbus-transport.c: (_dbus_transport_open):
13898         Add commented out call to dbus_transport_debug_client_new.
13899
13900         * dbus/Makefile.am:
13901         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13902
13903 2003-01-28  Havoc Pennington  <hp@pobox.com>
13904
13905         * dbus/dbus-message.c (check_message_handling): function to check
13906         on the loaded message, iterates over it etc.
13907
13908 2003-01-28  Havoc Pennington  <hp@pobox.com>
13909
13910         * test/Makefile.am (dist-hook): fix make distdir
13911
13912         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13913
13914 2003-01-27  Havoc Pennington  <hp@pobox.com>
13915
13916         * dbus/dbus-mempool.c (time_for_size): replace printf with
13917         _dbus_verbose
13918
13919         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13920         empty lines; fix the SAVE_LENGTH stuff to be
13921         START_LENGTH/END_LENGTH so it actually works; couple other
13922         bugfixes
13923
13924         * test/Makefile.am (dist-hook): add dist-hook for .message files
13925
13926         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13927         can be constant or locked.
13928         (_dbus_string_free): allow freeing a const string as
13929         documented/intended
13930
13931         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13932
13933         * dbus/dbus-test-main.c (main): take an argument which is the
13934         directory containing test data
13935
13936         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13937         argument to this and load all the messages in test/data/
13938         checking that they can be loaded or not loaded as appropriate.
13939
13940 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13941
13942         * bus/dispatch.c: (bus_dispatch_message_handler):
13943         Dispatch messages sent to services.
13944
13945         * bus/driver.c: (bus_driver_send_service_deleted),
13946         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13947         (bus_driver_send_service_acquired):
13948         Add helper functions for sending service related messages.
13949
13950         (bus_driver_send_welcome_message):
13951         Send HELLO_REPLY instead of WELCOME.
13952
13953         (bus_driver_handle_list_services):
13954         Send LIST_SERVICES_REPLY instead of SERVICES.
13955
13956         (bus_driver_handle_own_service),
13957         (bus_driver_handle_service_exists):
13958         New message handlers.
13959
13960         (bus_driver_handle_message):
13961         Invoke new message handlers.
13962
13963         (bus_driver_remove_connection):
13964         Don't remove any services here since that's done automatically
13965         by bus_service_remove_owner now.
13966
13967         * bus/driver.h:
13968         New function signatures.
13969
13970         * bus/services.c: (bus_service_add_owner):
13971         Send ServiceAcquired message if we're the only primary owner.
13972
13973         (bus_service_remove_owner):
13974         Send ServiceAcquired/ServiceLost messages.
13975
13976         (bus_service_set_prohibit_replacement),
13977         (bus_service_get_prohibit_replacement):
13978         Functions for setting prohibit replacement.
13979
13980         (bus_service_has_owner):
13981         New function that checks if a connection is in the owner queue of
13982         a certain service.
13983
13984         * bus/services.h:
13985         Add new function signatures.
13986
13987         * dbus/dbus-list.c: (_dbus_list_test):
13988         Add tests for _dbus_list_remove_last and traversing the list backwards.
13989
13990         * dbus/dbus-list.h:
13991         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13992         go any further, so return NULL then.
13993
13994         * dbus/dbus-protocol.h:
13995         Add new messages, service flags and service replies.
13996
13997 2003-01-26  Havoc Pennington  <hp@pobox.com>
13998
13999         * dbus/dbus-message-builder.c: implement, completely untested.
14000
14001         * test/data/*: add data to be used in testing.
14002         ".message" files are our simple loadable text format.
14003         ".message-raw" will be binary dumps of messages.
14004
14005         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14006
14007 2003-01-26  Havoc Pennington  <hp@pobox.com>
14008
14009         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14010
14011         * dbus/dbus-errors.c (dbus_result_to_string): add
14012         file errors
14013
14014         * dbus/dbus-message-builder.c: new file, will contain code to load
14015         up messages from files. Not implemented yet.
14016
14017 2003-01-26  Havoc Pennington  <hp@pobox.com>
14018
14019         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14020         the sender by setting to NULL
14021
14022 2003-01-26  Havoc Pennington  <hp@pobox.com>
14023
14024         The unit tests pass, but otherwise untested.  If it breaks, the
14025         tests should have been better. ;-)
14026
14027         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14028         the connection.
14029
14030         * dbus/dbus-message.c: redo everything so we maintain
14031         message->header as the only copy of the various fields.
14032         This avoids the possibility of out-of-memory in some cases,
14033         for example dbus_message_lock() can't run out of memory anymore,
14034         and avoids extra copying. Figured I may as well go ahead and do
14035         this since it was busted for dbus_message_lock to not return
14036         failure on OOM, and dbus_message_write_header was totally
14037         unchecked for OOM. Also fixed some random other bugs.
14038
14039         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14040         that strings are nul-terminated. Also, end_pos can be equal
14041         to string length just not greater than, I think.
14042         (_dbus_marshal_set_int32): new function
14043         (_dbus_marshal_set_uint32): new function
14044         (_dbus_marshal_set_string): new function
14045
14046         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14047         a warning, init timeout_list to NULL
14048         (dbus_connection_send_message): don't use uninitialized variable
14049         "serial"
14050
14051         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14052
14053 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14054
14055         * bus/driver.c: (bus_driver_handle_hello),
14056         (bus_driver_send_welcome_message):
14057         Plug leaks
14058
14059 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14060
14061         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14062         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14063         (dbus_connection_unref):
14064         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14065         * dbus/dbus-message.c: (dbus_message_unref),
14066         Plug memory leaks.
14067
14068         (dbus_message_get_fields):
14069         Remove debugging printout.
14070
14071         (_dbus_message_loader_return_buffer):
14072         Don't store the header string.
14073
14074         (_dbus_message_test):
14075         Plug leaks.
14076
14077 2003-01-26  Richard Hult  <rhult@codefactory.se>
14078
14079         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14080         the file descriptor list, since it can change under us.
14081
14082 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14083
14084         * glib/dbus-gmain.c: (dbus_connection_prepare),
14085         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14086         (remove_watch), (dbus_connection_hookup_with_g_main):
14087         Rewrite the glib handling to use its own GSource instead of a
14088         GIOChannel so we can catch messages put in the queue while waiting
14089         for a reply.
14090
14091 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14092
14093         * bus/Makefile.am:
14094         * bus/connection.c: (connection_disconnect_handler),
14095         (connection_watch_callback), (bus_connection_setup):
14096         * bus/dispatch.c: (send_one_message),
14097         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14098         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14099         * bus/dispatch.h:
14100         * bus/driver.c: (bus_driver_send_service_deleted),
14101         (bus_driver_send_service_created), (bus_driver_handle_hello),
14102         (bus_driver_send_welcome_message),
14103         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14104         (bus_driver_handle_message):
14105         * bus/driver.h:
14106         Refactor code, put the message dispatching in its own file. Use
14107         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14108         is disconnected.
14109
14110 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14111
14112         * dbus/dbus-internals.h:
14113         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14114
14115         * dbus/dbus-message.c: (dbus_message_get_sender):
14116         * dbus/dbus-message.h:
14117         Implement dbus_message_get_sender.
14118
14119         * dbus/dbus-protocol.h:
14120         Add message and service defines.
14121
14122 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14123
14124         * dbus/dbus-connection.c: (dbus_connection_send_message):
14125         * dbus/dbus-message-internal.h:
14126         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14127         (dbus_message_write_header):
14128         Remove _dbus_messag_unlock and don't set the client serial on a
14129         message if one already exists.
14130
14131 2003-01-24  Havoc Pennington  <hp@pobox.com>
14132
14133         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14134         list_pool
14135
14136         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14137         on OOM
14138
14139 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14140
14141         * dbus/dbus-list.c: (alloc_link), (free_link):
14142         Use a memory pool for the links.
14143
14144 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14145
14146         * bus/connection.c: (bus_connection_foreach):
14147         * bus/connection.h:
14148         Add new bus_connection_foreach function.
14149
14150         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14151         Add function that broadcasts a message to all clients.
14152
14153         (bus_driver_send_service_created), (bus_driver_handle_hello),
14154         (bus_driver_send_welcome_message),
14155         (bus_driver_handle_list_services), (bus_driver_message_handler):
14156         Implement functions that take care of listing services, and notifying
14157         clients when new services are created.
14158
14159         * bus/services.c: (bus_services_list):
14160         * bus/services.h:
14161         Add new function that returns an array of strings with the currently
14162         registered services.
14163
14164         * glib/dbus-glib.h:
14165         * glib/dbus-gmain.c:
14166         Update copyright year.
14167
14168 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14169
14170         * dbus/dbus-connection.c: (dbus_connection_send_message):
14171         Unlock the message in case it was sent earlier.
14172
14173         (dbus_connection_send_message_with_reply_and_block):
14174         Remove the reply message from the list.
14175
14176         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14177         Set array_len and new_pos correctly.
14178
14179         (_dbus_marshal_test):
14180         Remove debug output.
14181
14182         * dbus/dbus-message-internal.h:
14183         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14184         New function that returns the reply serial.
14185
14186         (_dbus_message_unlock):
14187         New function that unlocks a message and resets its header.
14188
14189         (dbus_message_append_string_array),
14190         (dbus_message_get_fields_valist),
14191         (dbus_message_iter_get_field_type),
14192         (dbus_message_iter_get_string_array),
14193         (dbus_message_get_fields),
14194         (dbus_message_append_fields_valist):
14195         Handle string arrays.
14196
14197         (dbus_message_set_sender):
14198         Make this function public since the bus daemon needs it.
14199
14200         (decode_header_data):
14201         Set the reply serial to -1 initially.
14202
14203         * dbus/dbus-message.h:
14204         Add dbus_message_set_sender.
14205
14206 2003-01-24  Havoc Pennington  <hp@pobox.com>
14207
14208         * doc/dbus-specification.sgml: add some stuff
14209
14210 2003-01-22  Havoc Pennington  <hp@pobox.com>
14211
14212         * doc/dbus-specification.sgml: Start to document the protocol.
14213
14214 2003-01-22  Havoc Pennington  <hp@pobox.com>
14215
14216         * dbus/dbus-connection.c
14217         (dbus_connection_send_message_with_reply_and_block): add some @todo
14218
14219         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14220
14221 2003-01-21  Havoc Pennington  <hp@pobox.com>
14222
14223         (patch untested because can't compile)
14224
14225         * bus/driver.c (create_unique_client_name): make this function
14226         never recycle client names. Also, caller should initialize
14227         the DBusString.
14228
14229         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14230
14231 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14232
14233         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14234         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14235         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14236         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14237         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14238         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14239         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14240         * dbus/dbus-marshal.h:
14241         * dbus/dbus-protocol.h:
14242         Add support for marshalling and demarshalling integer, double
14243         and string arrays.
14244
14245 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14246
14247         * bus/Makefile.am:
14248         Add driver.[ch]
14249
14250         * bus/connection.c: (connection_disconnect_handler):
14251         Remove the connection from the bus driver's list.
14252
14253         (connection_watch_callback): Dispatch messages.
14254
14255         (free_connection_data): Free connection name.
14256
14257         (bus_connection_setup): Add connection to the bus driver's list.
14258         (bus_connection_remove_owned_service):
14259         (bus_connection_set_name), (bus_connection_get_name):
14260         Add functions for setting and getting the connection's name.
14261
14262         * bus/connection.h:
14263         Add function headers.
14264
14265         * bus/driver.c: (create_unique_client_name),
14266         (bus_driver_handle_hello_message),
14267         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14268         (bus_driver_add_connection), (bus_driver_remove_connection):
14269         * bus/driver.h:
14270         * bus/main.c:
14271         * bus/services.c: (bus_service_free):
14272         * bus/services.h:
14273         New file that handles communication and registreation with the bus
14274         itself.
14275
14276 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14277
14278         * dbus/dbus-connection.c: (dbus_connection_send_message):
14279         Add a new client_serial parameter.
14280
14281         (dbus_connection_send_message_with_reply):
14282         Remove a @todo since we've implemented the blocking function.
14283
14284         (dbus_connection_send_message_with_reply_and_block):
14285         New function that sends a message and waits for a reply and
14286         then returns the reply.
14287
14288         * dbus/dbus-connection.h:
14289         Add new functions.
14290
14291         * dbus/dbus-errors.c: (dbus_result_to_string):
14292         * dbus/dbus-errors.h:
14293         Add new DBUS_RESULT.
14294
14295         * dbus/dbus-message-internal.h:
14296         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14297         (_dbus_message_set_sender), (dbus_message_write_header),
14298         (dbus_message_new_reply), (decode_header_data),
14299         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14300         * dbus/dbus-message.h:
14301         Add new functions that set the reply serial and sender.
14302         Also marshal and demarshal them correctly and add test.
14303
14304         * dbus/dbus-protocol.h:
14305         Add new DBUS_MESSAGE_TYPE_SENDER.
14306
14307         * glib/dbus-glib.h:
14308         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14309         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14310         (dbus_connection_hookup_with_g_main):
14311         * glib/test-dbus-glib.c: (main):
14312         Rewrite to use GIOChannel and remove the GSource crack.
14313
14314         * test/echo-client.c: (main):
14315         * test/watch.c: (check_messages):
14316         Update for changed APIs
14317
14318 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14319
14320         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14321
14322         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14323         Create a DBusTimeoutList.
14324         (dbus_connection_set_timeout_functions): Add new function to
14325         set timeout callbacks
14326
14327         * dbus/dbus-connection.h: Add public DBusTimeout API.
14328
14329         * dbus/dbus-message.c: (dbus_message_get_service):
14330         * dbus/dbus-message.h:  New function.
14331
14332         * dbus/dbus-server.c: Fix small doc typo.
14333
14334         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14335
14336 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14337
14338         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14339         of the string, just as long as specified.
14340
14341 2003-01-19  Havoc Pennington  <hp@pobox.com>
14342
14343         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14344         new function
14345
14346         * dbus/dbus-server.c (dbus_server_set_max_connections)
14347         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14348         keep track of current number of connections, and add API for
14349         setting a max (but haven't implemented enforcing the max yet)
14350
14351 2003-01-18  Havoc Pennington  <hp@pobox.com>
14352
14353         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14354         reading/writing if read_watch != NULL or write_watch != NULL.
14355
14356         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14357         the message loader code to actually load message->header and
14358         message->body into the newly-created message.
14359
14360         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14361         in OOM case
14362
14363         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14364         (dbus_connection_get_max_message_size)
14365         (dbus_connection_set_max_live_messages_size)
14366         (dbus_connection_get_max_live_messages_size): implement some
14367         resource limitation functions
14368
14369         * dbus/dbus-resources.c: new file implementing some of the
14370         resource limits stuff
14371
14372         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14373         missing docs, add @todo to handle OOM etc.
14374
14375         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14376         docs
14377
14378 2003-01-18  Havoc Pennington  <hp@pobox.com>
14379
14380         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14381         connection if it hasn't been already.
14382
14383         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14384         replace with DisconnectFunction.
14385
14386 2003-01-18  Havoc Pennington  <hp@pobox.com>
14387
14388         Building --disable-verbose-mode --disable-asserts --disable-tests
14389         cuts the library from 112K to 45K or so
14390
14391         * configure.in: check for varargs macro support,
14392         add --enable-verbose-mode, --enable-asserts.
14393
14394         * dbus/dbus-internals.h (_dbus_assert): support
14395         DBUS_DISABLE_ASSERT
14396         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14397
14398 2003-01-18  Havoc Pennington  <hp@pobox.com>
14399
14400         * dbus/dbus-test.c: include config.h so that tests actually run
14401
14402         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14403         so the failure mode when that assumption fails will be plenty
14404         obvious.
14405
14406 2003-01-18  Havoc Pennington  <hp@pobox.com>
14407
14408         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14409
14410         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14411         the distribution
14412
14413         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14414         since we don't want to use those in make check
14415
14416 2003-01-15  Havoc Pennington  <hp@redhat.com>
14417
14418         Release 0.2
14419
14420         * NEWS: update
14421
14422 2003-01-15  Havoc Pennington  <hp@redhat.com>
14423
14424         * test/Makefile.am: fix so that test source code ends up in the
14425         distribution on make distcheck
14426
14427 2003-01-15  Havoc Pennington  <hp@redhat.com>
14428
14429         Release 0.1.
14430
14431         * NEWS: update
14432
14433 2003-01-15  Havoc Pennington  <hp@redhat.com>
14434
14435         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14436         fix build when --disable-tests
14437
14438         * Makefile.am (EXTRA_DIST): put HACKING in here
14439
14440         * HACKING: document procedure for making a tarball release.
14441
14442 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14443
14444         * bus/connection.c: (connection_error_handler),
14445         (bus_connection_setup):
14446         * bus/main.c: (main):
14447         Make sure that the DBusConnectionData struct is NULLed
14448         out to prevent a segfault.
14449
14450         * dbus/dbus-errors.c: (dbus_result_to_string):
14451         * dbus/dbus-errors.h:
14452         * dbus/dbus-message.c: (dbus_message_get_fields),
14453         (dbus_message_get_fields_valist), (_dbus_message_test):
14454         * dbus/dbus-message.h:
14455         Make dbus_message_get_fields return a result code so we can
14456         track invalid fields as well as oom.
14457
14458 2003-01-11  Havoc Pennington  <hp@pobox.com>
14459
14460         * configure.in: change --enable-test/--enable-ansi action-if-given
14461         to enable_foo=$enableval instead of enable_foo=yes
14462
14463 2003-01-08  Havoc Pennington  <hp@pobox.com>
14464
14465         * dbus/dbus-string.c (_dbus_string_align_length): new function
14466
14467         * dbus/dbus-test-main.c: move main() for test app here
14468         * dbus/dbus-test.c
14469         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14470         symbol to run tests, because dbus-test isn't in the main
14471         library
14472
14473         Code review nitpicks.
14474
14475         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14476         for people with narrow emacs ;-). Assert client_serial was filled
14477         in. Assert message->name != NULL.
14478         (dbus_message_append_fields): have "first_field_type" arg separate
14479         from va list, needed for C++ binding that also uses varargs IIRC
14480         and helps with type safety
14481         (dbus_message_new): add @todo about using DBusString to store
14482         service/name internally
14483         (dbus_message_new): don't leak ->service and ->name on OOM later
14484         in the function
14485         (dbus_message_unref): free the service name
14486         (dbus_message_get_fields): same change to varargs
14487         i.e. first_field_type
14488         (_dbus_message_loader_return_buffer): assert that the message data
14489         is aligned (if not it's a bug in our code). Put in verbose griping
14490         about why we set corrupted = TRUE.
14491         (decode_header_data): add FIXME that char* is evil.  Was going to
14492         add FIXME about evil locale-specific string.h strncmp, but just
14493         switched to wacky string-as-uint32 optimization. Move check for
14494         "no room for field name" above get_const_data_len() to avoid
14495         assertion failure in get_const_data_len if we have trailing 2
14496         bytes or the like. Check for service and name fields being
14497         provided twice. Don't leak service/name on error. Require field
14498         names to be aligned to 4 bytes.
14499
14500         * dbus/dbus-marshal.c: move byte swap stuff to header
14501         (_dbus_pack_int32): uscore-prefix
14502         (_dbus_unpack_int32): uscore-prefix
14503         (_dbus_unpack_uint32): export
14504         (_dbus_demarshal_string): add @todo complaining about use of
14505         memcpy()
14506         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14507         handling allowing corrupt data to go unchecked
14508
14509 2003-01-08  Havoc Pennington  <hp@redhat.com>
14510
14511         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14512         to the select() as needed for authentication. (should be using
14513         _dbus_poll() not select, but for another day)
14514
14515         * dbus/dbus.h: include dbus/dbus-protocol.h
14516
14517 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14518
14519         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14520         dbus-connection.h
14521
14522 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14523
14524         * dbus/dbus-internals.c: (_dbus_type_to_string):
14525         New function that returns a string describing a type.
14526
14527         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14528         * dbus/dbus-marshal.h:
14529         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14530         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14531         (dbus_message_iter_get_byte_array):
14532         * dbus/dbus-message.h:
14533         Add new convenience functions for appending and getting message fields.
14534         Also add demarshalling routines for byte arrays.
14535
14536 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14537
14538         * dbus/dbus-connection-internal.h:
14539         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14540         (_dbus_connection_get_next_client_serial),
14541         (dbus_connection_send_message):
14542         * dbus/dbus-internals.h:
14543         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14544         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14545         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14546         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14547         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14548         (_dbus_verbose_bytes), (_dbus_marshal_test):
14549         * dbus/dbus-marshal.h:
14550         * dbus/dbus-message-internal.h:
14551         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14552         (dbus_message_write_header), (_dbus_message_lock),
14553         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14554         (dbus_message_get_name), (dbus_message_append_int32),
14555         (dbus_message_append_uint32), (dbus_message_append_double),
14556         (dbus_message_append_string), (dbus_message_append_byte_array),
14557         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14558         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14559         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14560         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14561         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14562         (decode_header_data), (_dbus_message_loader_return_buffer),
14563         (message_iter_test), (_dbus_message_test):
14564         * dbus/dbus-message.h:
14565         * dbus/dbus-protocol.h:
14566         * dbus/dbus-test.c: (main):
14567         * dbus/dbus-test.h:
14568         * glib/test-dbus-glib.c: (message_handler), (main):
14569         * test/echo-client.c: (main):
14570         * test/watch.c: (check_messages):
14571         Make messages sendable and receivable for real.
14572
14573 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14574
14575         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14576         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14577         * dbus/dbus-message.c: (dbus_message_append_int32),
14578         (dbus_message_append_uint32), (dbus_message_append_double),
14579         (dbus_message_append_string), (dbus_message_append_byte_array):
14580         Handle OOM restoration.
14581
14582 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14583
14584         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14585         (_dbus_demarshal_string), (_dbus_marshal_test):
14586         * dbus/dbus-marshal.h:
14587         * dbus/dbus-message.c: (dbus_message_get_name),
14588         Document these functions.
14589
14590         (dbus_message_append_int32), (dbus_message_append_uint32),
14591         (dbus_message_append_double), (dbus_message_append_string),
14592         (dbus_message_append_byte_array):
14593         * dbus/dbus-message.h:
14594         Add functions for adding message fields of different types.
14595
14596         * dbus/dbus-protocol.h:
14597         Add the different types.
14598
14599 2003-01-05  Havoc Pennington  <hp@pobox.com>
14600
14601         * bus/connection.c: implement routines for handling connections,
14602         first thing is keeping a list of owned services on each connection
14603         and setting up watches etc.
14604
14605         * bus/services.c: implement a mapping from service names to lists
14606         of connections
14607
14608         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14609
14610         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14611         to use static mutexes for global data
14612
14613         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14614         collection of functions to set/get application-specific data
14615         on the DBusConnection.
14616
14617 2003-01-04  Havoc Pennington  <hp@pobox.com>
14618
14619         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14620         (_dbus_poll): new function
14621
14622         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14623         copied from GLib
14624
14625         * bus/loop.c: initial code for the daemon main loop
14626
14627 2003-01-04  Havoc Pennington  <hp@pobox.com>
14628
14629         * test/watch.c (error_handler): make it safe if the error handler
14630         is called multiple times (if we s/error handler/disconnect
14631         handler/ we should just guarantee it's called only once)
14632
14633         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14634         error handler on disconnect (it's quite possible we should
14635         just change the error handler to a "disconnect handler," I'm
14636         not sure we have any other meaningful errors)
14637
14638         * configure.in: check for getpwnam_r
14639
14640         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14641         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14642         mechanism as in SASL spec, using socket credentials
14643
14644         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14645         (_dbus_send_credentials_unix_socket): new function
14646
14647         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14648         dbus_accept()
14649         (_dbus_write): only check errno if <0 returned
14650         (_dbus_write_two): ditto
14651
14652 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14653
14654         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14655         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14656         (_dbus_marshal_test):
14657         * dbus/dbus-marshal.h:
14658         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14659         to _dbus_marshal_utf8_string. Also fix some tests.
14660
14661 2002-12-28  Harri Porten  <porten@kde.org>
14662
14663         * configure.in: added check for C++ compiler and a very cheesy
14664         check for the Qt integration
14665
14666         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14667
14668         * qt/Makefile.am: added
14669
14670         * qt/.cvsignore: added
14671
14672         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14673         latter, added #ifdef QT_THREAD_SUPPORT guard.
14674
14675         * dbus/Makefile.am: added missing headers for make dist
14676
14677 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14678
14679         * dbus/Makefile.am: fixup export-symbols-regex.
14680
14681 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14682
14683         * acinclude.m4: Add this file and put the
14684         PKG_CHECK_MODULE macro in it.
14685
14686 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14687
14688         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14689         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14690         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14691         (_dbus_marshal_test):
14692         Make the demarshalling routines align the pos argument.
14693         Add string marshalling tests and fix the obvious bugs
14694         discovered.
14695
14696 2002-12-26  Havoc Pennington  <hp@pobox.com>
14697
14698         * dbus/dbus-auth.c: fixes fixes fixes
14699
14700         * dbus/dbus-transport-unix.c: wire up support for
14701         encoding/decoding data on the wire
14702
14703         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14704         (_dbus_auth_decode_data): append to target string
14705         instead of nuking it.
14706
14707 2002-12-26  Havoc Pennington  <hp@pobox.com>
14708
14709         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14710         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14711         doh
14712
14713         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14714         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14715         now). Main point is because I wanted unpack_uint32 to implement
14716         _dbus_verbose_bytes
14717         (_dbus_verbose_bytes): new function
14718
14719         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14720
14721         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14722         mechanism to handle a corrupt message stream
14723         (_dbus_message_loader_new): fix preallocation to only prealloc,
14724         not prelengthen
14725
14726         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14727         (_dbus_string_test): enhance tests for copy/move and fix the
14728         functions
14729
14730         * dbus/dbus-transport-unix.c: Hold references in more places to
14731         avoid reentrancy problems
14732
14733         * dbus/dbus-transport.c: ditto
14734
14735         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14736         leak reference count in no-message case
14737
14738         * test/watch.c (do_mainloop): handle adding/removing watches
14739         during iteration over the watches. Also, ref the connection/server
14740         stored on a watch, so we don't try to mangle a destroyed one.
14741
14742         * dbus/dbus-transport-unix.c (do_authentication): perform
14743         authentication
14744
14745         * dbus/dbus-auth.c (get_state): add a state
14746         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14747         (_dbus_auth_get_unused_bytes): append the unused bytes
14748         to the passed in string, rather than prepend
14749
14750         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14751         the auth conversation DBusAuth
14752
14753         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14754         (_dbus_transport_new_for_domain_socket): when creating a
14755         transport, pass in whether it's a client-side or server-side
14756         transport so we know which DBusAuth to create
14757
14758 2002-12-03  Havoc Pennington  <hp@pobox.com>
14759
14760         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14761         _after_ finalizing the derived members
14762         (unix_connection_set): unref watch if we fail to add it
14763
14764         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14765         transport first, so that the connection owned by the
14766         transport will be valid as the transport finalizes.
14767
14768         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14769         if necessary, and remove watches from the connection.
14770
14771         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14772
14773 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14774
14775         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14776         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14777         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14778         (_dbus_marshal_test):
14779         * dbus/dbus-marshal.h:
14780         Add string marshal functions and have the demarshal functions
14781         return the new position.
14782
14783 2002-12-25  Havoc Pennington  <hp@pobox.com>
14784
14785         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14786         it is a simple protocol that just maps directly to SASL.
14787
14788         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14789         initial implementation, not actually used yet.
14790
14791         * dbus/dbus-string.c (_dbus_string_find): new function
14792         (_dbus_string_equal): new function
14793         (_dbus_string_base64_encode): new function
14794         (_dbus_string_base64_decode): new function
14795
14796 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14797
14798         * dbus/Makefile.am:
14799         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14800         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14801         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14802         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14803         * dbus/dbus-marshal.h:
14804         * dbus/dbus-protocol.h:
14805         * dbus/dbus-test.c: (main):
14806         * dbus/dbus-test.h:
14807         Add un-optimized marshalling/demarshalling routines.
14808
14809 2002-12-25  Harri Porten  <porten@kde.org>
14810
14811         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14812
14813 2002-12-24  Zack Rusin  <zack@kde.org>
14814
14815         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14816         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14817         main loop stuff
14818
14819 2002-12-24  Havoc Pennington  <hp@pobox.com>
14820
14821         * glib/dbus-gthread.c: fix include
14822
14823         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14824         I think glib API needs to change, though, as you don't
14825         want to use DBusMessageFunction, you want to use the
14826         DBusMessageHandler object. Probably
14827         dbus_connection_open_with_g_main_loop()
14828         and dbus_connection_setup_g_main_loop() or something like that
14829         (but think of better names...) that just create a connection
14830         that has watch/timeout functions etc. already set up.
14831
14832         * dbus/dbus-connection.c
14833         (dbus_connection_send_message_with_reply): new function just to
14834         show how the message handler helps us deal with replies.
14835
14836         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14837
14838         * dbus/dbus-string.c (_dbus_string_test): free a string that
14839         wasn't
14840
14841         * dbus/dbus-hash.c: use memory pools for the hash entries
14842         (rebuild_table): be more paranoid about overflow, and
14843         shrink table when we can
14844         (_dbus_hash_test): reduce number of sprintfs and write
14845         valid C89. Add tests for case where we grow and then
14846         shrink the hash table.
14847
14848         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14849
14850         * dbus/dbus-connection.c (dbus_connection_register_handler)
14851         (dbus_connection_unregister_handler): new functions
14852
14853         * dbus/dbus-message.c (dbus_message_get_name): new
14854
14855         * dbus/dbus-list.c: fix docs typo
14856
14857         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14858         an object representing a handler for messages.
14859
14860 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14861
14862         * glib/dbus-glib.h:
14863         * glib/dbus-gthread.c: (dbus_gthread_init):
14864         Don't use the gdbus prefix for public functions.
14865
14866 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14867
14868         * Makefile.am:
14869         * configure.in:
14870         Add GLib checks and fixup .pc files
14871
14872         * glib/Makefile.am:
14873         * glib/dbus-glib.h:
14874         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14875         (gdbus_connection_check), (gdbus_connection_dispatch),
14876         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14877         (dbus_connection_gsource_new):
14878         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14879         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14880         * glib/test-dbus-glib.c: (message_handler), (main):
14881         Add GLib support.
14882
14883 2002-12-15  Harri Porten  <porten@kde.org>
14884
14885         * autogen.sh: check for libtoolize before attempting to use it
14886
14887         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14888         struct.
14889
14890         * .cvsignore: ignore more stamp files
14891
14892         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14893
14894         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14895         without make install.
14896
14897 2002-12-15  Havoc Pennington  <hp@pobox.com>
14898
14899         * dbus/dbus-threads.c: add thread stubs that a higher library
14900         layer can fill in. e.g. the GLib wrapper might fill them in with
14901         GThread stuff. We still need to use this thread API to
14902         thread-safe-ize the library.
14903
14904 2002-12-12  Havoc Pennington  <hp@pobox.com>
14905
14906         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14907         below new interfaces and include fewer system headers.
14908
14909         * dbus/dbus-sysdeps.c (_dbus_read): new function
14910         (_dbus_write): new function
14911         (_dbus_write_two): new function
14912         (_dbus_connect_unix_socket): new function
14913         (_dbus_listen_unix_socket): new function
14914
14915         * dbus/dbus-message-internal.h: change interfaces to use
14916         DBusString
14917
14918 2002-12-11  Havoc Pennington  <hp@pobox.com>
14919
14920         * dbus/dbus-types.h: add dbus_unichar
14921
14922         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14923
14924         * dbus/dbus-connection.c (dbus_connection_send_message): return
14925         TRUE on success
14926
14927         * dbus/dbus-transport.c: include dbus-watch.h
14928
14929         * dbus/dbus-connection.c: include dbus-message-internal.h
14930
14931         * HACKING: add file with coding guidelines stuff.
14932
14933         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14934         handling here, for security purposes (as in vsftpd). Not actually
14935         using this class yet.
14936
14937         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14938         system/libc usage here, as in vsftpd, for ease of auditing (and
14939         should also simplify portability). Haven't actually moved all the
14940         system/libc usage into here yet.
14941
14942 2002-11-25  Havoc Pennington  <hp@pobox.com>
14943
14944         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14945         always print the first verbose message.
14946
14947 2002-11-24  Havoc Pennington  <hp@pobox.com>
14948
14949         * test/echo-client.c, test/echo-server.c: cheesy test
14950         clients.
14951
14952         * configure.in (AC_CHECK_FUNCS): check for writev
14953
14954         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14955         function
14956
14957         * dbus/dbus-list.c (_dbus_list_foreach): new function
14958
14959         * dbus/dbus-internals.c (_dbus_verbose): new function
14960
14961         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14962         representing a server that listens for connections.
14963
14964         * dbus/.cvsignore: create
14965
14966         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14967         public API for reporting errors
14968
14969         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14970         public object representing a connection that
14971         sends/receives messages. (Same object used for
14972         both client and server.)
14973
14974         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14975         Basic abstraction for different kinds of stream
14976         that we might read/write messages from.
14977
14978 2002-11-23  Havoc Pennington  <hp@pobox.com>
14979
14980         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14981         _DBUS_INT_MAX
14982
14983         * dbus/dbus-test.c (main): add list test, and include
14984         dbus-test.h as intended
14985
14986         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14987         (_dbus_hash_table_remove_int): return value indicates
14988         whether the entry existed to remove
14989
14990         * dbus/dbus-list.c: add linked list utility class,
14991         with docs and tests
14992
14993         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14994         array sometimes.
14995
14996 2002-11-23  Havoc Pennington  <hp@pobox.com>
14997
14998         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14999         DBUS_END_DECLS to nothing, that should fix this once and for all
15000
15001         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15002
15003         * dbus/dbus-message.c, dbus/dbus-hash.c:
15004         add some missing @brief
15005
15006 2002-11-23  Havoc Pennington  <hp@pobox.com>
15007
15008         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15009         to avoid confusing Doxygen
15010
15011         * dbus/dbus-hash.c: @} not }@
15012
15013         * dbus/dbus-message.c (struct DBusMessage): split out
15014         internals docs
15015
15016 2002-11-23  Havoc Pennington  <hp@pobox.com>
15017
15018         * configure.in: pile on more warning flags if using gcc
15019
15020         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15021         to document static functions
15022
15023         * configure.in: add summary to end of configure so it
15024         looks nice and attractive
15025
15026         * dbus/dbus-hash.c: finish implementation and write unit
15027         tests and docs
15028
15029         * configure.in: add --enable-tests to enable unit tests
15030
15031         * dbus/dbus-test.c: test program to run unit tests
15032         for all files in dbus/*, initially runs a test for
15033         dbus-hash.c
15034
15035         * dbus/dbus-internals.h: file to hold some internal utility stuff
15036
15037 2002-11-22  Havoc Pennington  <hp@redhat.com>
15038
15039         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15040         "ported" away from Tcl
15041
15042         * dbus/dbus-types.h: header for types such as dbus_bool_t
15043
15044 2002-11-22  Havoc Pennington  <hp@redhat.com>
15045
15046         * dbus/dbus.h: fixups for doc warnings
15047
15048         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15049         macros
15050         (QUIET): make it quiet so we can see warnings
15051
15052         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15053
15054 2002-11-22  Havoc Pennington  <hp@redhat.com>
15055
15056         * Makefile.am: include "Doxyfile" target in all-local
15057
15058         * configure.in: generate the Doxyfile
15059
15060         * Doxyfile.in: move Doxyfile here, so we can use
15061         configure to generate a Doxyfile with the right
15062         version number etc.
15063
15064 2002-11-22  Havoc Pennington  <hp@redhat.com>
15065
15066         * dbus/dbus-message.c: move inline docs into .c file
15067
15068         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15069         so all docs are under doc/
15070         (MAN_EXTENSION): generate man pages. Use extension
15071         ".3dbus" which matches ".3qt" on my system,
15072         I guess this is OK, I don't know really.
15073         (FILE_PATTERNS): look for .c files not .h, makes sense
15074         for plain C I think
15075
15076 2002-11-22  Havoc Pennington  <hp@pobox.com>
15077
15078         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15079         because any app can be a server, and any app can be a client,
15080         the bus is a special kind of server.
15081
15082 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15083
15084         * Doxyfile : adding. Still needs Makefile rules to be generated
15085         automatically (just run "doxygen" in the toplevel dir for now to
15086         generate docs)
15087
15088         * dbus/dbus-message.h : Adding sample docs (javadoc since
15089         resembles gtk-doc a little more)
15090
15091         * dbus/dbus.h : Adding sample docs
15092
15093 2002-11-21  Havoc Pennington  <hp@redhat.com>
15094
15095         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15096         so we can allow ourselves to include files directly,
15097         instead of having to use dbus.h
15098
15099         * dbus/dbus.h: fill in
15100
15101         * dbus/dbus-message.h: sketch out a sample header file.
15102         Include griping if you include it directly instead of
15103         via dbus.h
15104
15105         * dbus/dbus-macros.h: new file with macros for extern "C",
15106         TRUE/FALSE, NULL, etc.
15107
15108         * doc/file-boilerplate.c: put include guards in here
15109
15110 2002-11-21  Havoc Pennington  <hp@redhat.com>
15111
15112         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15113
15114         * COPYING: include the GPL as well, and license code
15115         under both AFL and GPL.
15116
15117 2002-11-21  Havoc Pennington  <hp@redhat.com>
15118
15119         * acconfig.h: get rid of this
15120
15121         * autogen.sh (run_configure): add --no-configure option
15122
15123         * configure.in: remove AC_ARG_PROGRAM to make
15124         autoconf complain less. add AC_PREREQ.
15125         add AC_DEFINE third arg.
15126
15127 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15128
15129         * doc/Makefile.am:
15130         Fix references so we can distcheck.
15131
15132 2002-11-21  Havoc Pennington  <hp@redhat.com>
15133
15134         * Initial module creation
15135