2006-11-07 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-07  Havoc Pennington  <hp@redhat.com>
2
3         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
4         documentation updates. Bump faq/spec versions (not to 1.0; I don't
5         think the spec will be "finished"/1.0 when we ship the 1.0 library).
6
7 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
8
9         * bus/bus.c: Missed patch - pass in the context to the directory watch
10
11 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
12
13         * Released D-Bus 1.0 RC 3(0.95)
14
15 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
16
17         * bus/activation.c (bus_activation_new): don't fail if we can not read
18         the directory as it may not exist
19
20 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
21
22         * bus/config-parser.c (service_dirs_find_dir): use 
23         _dbus_list_get_next_link so we don't get stuck in an infinite loop
24         (start_busconfig_child): move processing of standard_session_servicedirs
25         tags here because they have no content
26         (bus_config_parser_content): check we don't have content in 
27         standard_session_servicedirs tag
28
29 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
30
31         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
32         Packagers need to own this directory
33
34 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
35
36         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
37         <standard_session_servicedirs> tag with a <sevicedir> tag that
38         points to the test service directory
39
40 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
41
42         * configure.in: Add a check for DIR *dirp->dd_fd
43
44         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
45         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
46         of both Solaris and Irix
47
48 2006-11-01  Havoc Pennington  <hp@redhat.com>
49
50         * bus/dbus-daemon.1.in: document standard_session_servicedirs
51
52 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
53
54         * configure.in: expose DBUS_DATADIR
55         
56         * bus/config-parser.c: add the standard_session_servicedirs element
57         to the parser
58         (bus_config_parser_content): process the standard_session_servicedirs
59         element by getting the standard directories from sysdeps and merging
60         them into the service directory list
61         (test_default_session_servicedirs): make sure we get what we expect
62
63         * bus/session.conf.in: replace the servicedir tag with the 
64         standard_session_servicedirs tag
65
66         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
67         dbus-sysdeps.h to avoid circular header dependencies
68
69         * dbus/dbus-sysdeps.h: add the typedef of DBusList
70
71         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
72         which takes a string of directories delimited by colons, parses them 
73         out, appends a suffix and puts them in a list ignoring empty elements
74         (_dbus_get_standard_session_servicedirs): returns the standard 
75         directories for a session bus to look for service activation files
76         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
77         DBUS_DATADIR directories
78
79         * test/data/valid-config-files/many-rules.conf: add the 
80         standard_session_servicedirs tag to the valid config file tests
81
82 2006-10-30  Havoc Pennington  <hp@redhat.com>
83
84         * tools/dbus-launch.1, doc/TODO: capture intent to change the
85         command line options of dbus-launch a bit post 1.0
86
87 2006-10-27  Havoc Pennington  <hp@redhat.com>
88         
89         * dbus/dbus-connection.c (dbus_connection_open_private): document
90         how to choose shared vs. private connections
91
92 2006-10-27  Havoc Pennington  <hp@redhat.com>
93
94         * dbus/dbus-test.c: enclose more of the file in the
95         DBUS_BUILD_TESTS check.
96
97         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
98         DBUS_DISABLE_ASSERT case.
99
100         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
101         that it only works on the server side
102
103         * dbus/dbus-bus.c: add a global lock covering the BusData we
104         attach to each connection
105         (internal_bus_get): lock our access to the BusData
106         (dbus_bus_register): lock the entire registration process
107         with _DBUS_LOCK(bus_datas). If we get the lock and 
108         registration is already complete, silently return (vs. previous
109         behavior of aborting).
110         (dbus_bus_set_unique_name): lock the BusData
111         (dbus_bus_get_unique_name): lock the BusData
112
113 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
114
115         * bus/config-parser.c (service_dirs_find_dir, 
116         service_dirs_append_unique_or_free, 
117         service_dirs_append_link_unique_or_free): New static methods
118         for only appending unique service directory names into
119         the service directory list
120         (merge_included, bus_config_parser_content): Only add unique
121         service directory names into the list
122
123 2006-10-27  Havoc Pennington  <hp@redhat.com>
124
125         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
126         variables volatile, suggested by Thiago. Document struct fields.
127         (PTHREAD_CHECK): remove pthread error checking if assertions are
128         disabled, should reduce the no-assertions case to the bare
129         minimum code.
130
131 2006-10-26  Havoc Pennington  <hp@redhat.com>
132         
133         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
134         to be recursive
135         (_dbus_pthread_mutex_unlock): make it recursive
136         (_dbus_pthread_condvar_wait): save/restore the recursion count
137         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
138
139 2006-10-26  Havoc Pennington  <hp@redhat.com>
140
141         * doc/dbus-specification.xml: clarify the UUID text slightly
142
143         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
144         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
145         in preparation for being able to extend them for e.g. recursive
146         mutexes.
147
148 2006-10-26  Havoc Pennington  <hp@redhat.com>
149
150         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
151         condition variables relate to recursive mutexes.
152         
153         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
154         dbus/dbus-threads.c: Split the platforms-specific thread 
155         implementations into their own files.
156         
157         * dbus/dbus-sysdeps-pthread.c
158         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
159         was backward. Not that anything uses it.
160
161 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
162
163         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
164         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
165         needs to be cleaned up more.
166
167         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
168         up the CREDS issue.
169
170 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
171
172         * configure.in, dbus-1.pc.in: Check to see if thread methods 
173         are in glibc or libpthread and add -lpthread to the link stage 
174         if it is the latter
175
176 2006-10-26  Thiago Macieira  <thiago@kde.org>
177
178         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
179         bug 8780: the connection lock is only required while recording
180         the shared connection, so protect only that code
181         section. Don't require connection_lookup_shared to return a
182         locked connection.
183
184 2006-10-26  Thiago Macieira  <thiago@kde.org>
185
186         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
187         check if get_machine_uuid() returns NULL before proceeding any
188         further: we can't init the X atoms or create a session file
189         name if there is no machine ID.
190         This solves a crash reported by some users if
191         --exit-with-session was used without --autolaunch=<machine-id>
192
193 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
194
195         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
196         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
197
198         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
199         before we run dbus-launch
200
201         * configure.in: define TEST_BUS_BINARY to be the full path to 
202         dbus-daemon in the build root 
203
204 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
205
206         * dbus/Makefile.am:
207         * tools/Makefile.am:
208         * toos/dbus-uuidgen.1:
209                 Move the machine-id file to /var/lib/dbus 
210
211 2006-10-24  David Zeuthen  <davidz@redhat.com>
212
213         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
214         _dbus_assert (thread_init_generation != _dbus_current_generation)
215         not _dbus_assert (thread_init_generation == _dbus_current_generation)
216
217 2006-10-24  Thiago Macieira  <thiago@kde.org>
218
219         * dbus/dbus-sysdeps.h:
220         * dbus/dbus-sysdeps-unix.c: Add function
221         _dbus_make_file_world_readable that chmods a file to 0644.
222
223         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
224         Avoid writing to the static "argv" array, thereby avoiding a
225         COW on the child process.
226
227         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
228         call _dbus_make_file_world_readable on the created file.
229
230 2006-10-23  David Zeuthen  <davidz@redhat.com>
231
232         * dbus/dbus-memory.c: Use atomic variable to protect
233         n_blocks_outstanding otherwise OOM will be reported using SMP on
234         some arches
235         
236         * bus/dispatch.c: Add missing end of line characters
237
238         * bus/desktop-file.c (parse_section_start, parse_key_value) 
239         (bus_desktop_file_load): Propertly handle OOM
240
241         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
242         thread_init_generation equals _dbus_current_generation, not 0
243
244 2006-10-22  Havoc Pennington  <hp@redhat.com>
245
246         * dbus/dbus-connection-internal.h: move prototype of
247         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
248         it isn't in a public header and doesn't end up in the DBusBus
249         group in Doxygen
250
251 2006-10-21  Havoc Pennington  <hp@redhat.com>
252
253         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
254         the tarball if packagers want to run it
255
256         * cleanup-man-pages.sh: Add a script which munges all the internal
257         API man pages out of the Doxygen output. This reduces the size of
258         the installed man pages from 7 to 2 megs, and avoids
259         namespace-polluting pages. Right now (like Doxygen) this script
260         isn't in the build, it's something packagers can do manually.
261
262 2006-10-21  Havoc Pennington  <hp@redhat.com>
263
264         * dbus/dbus-connection.h: don't include the watch/timeout
265         functions in connection section
266
267 2006-10-21  Havoc Pennington  <hp@redhat.com>
268
269         * Documentation! Whee! Doxygen now 100% silent. If you make it
270         angry again, you will be punished.
271         
272 2006-10-21  Havoc Pennington  <hp@redhat.com>
273
274         * More documentation - all public API now documented according to
275         Doxygen
276
277 2006-10-21  Havoc Pennington  <hp@redhat.com>
278
279         * Document a bunch of undocumented stuff
280         
281 2006-10-21  Havoc Pennington  <hp@redhat.com>
282
283         * Clean up Doxygen group markers for public API so Doxygen finds
284         everything (not comprehensively fixed for private API).
285         Means all remaining Doxygen warnings are just about missing docs
286         and thus pretty simple to resolve.
287         
288 2006-10-21  Havoc Pennington  <hp@redhat.com>
289         
290         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
291
292         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
293         as DBUS_GNUC_DEPRECATED
294
295 2006-10-21  Havoc Pennington  <hp@redhat.com>
296
297         * Move all private API into the private Doxygen group sections of
298         the files, so they don't show up in the public API docs
299         
300 2006-10-21  Havoc Pennington  <hp@redhat.com>
301
302         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
303         dbus_message_iter_get_array_len().
304
305         * throughout: documentation improvements.
306
307 2006-10-20  Havoc Pennington  <hp@redhat.com>
308
309         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
310         matter, and the message-loader-breaker thing since nobody is going
311         to do it.  Add an item to 1.0 about supporting recursive locks
312         in dbus_threads_init_default() though, since it should be easy.
313
314         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
315         Fix this in the !dispatch case to avoid busy-looping after
316         disconnection
317
318         * More misc docs improvements
319
320 2006-10-19  Havoc Pennington  <hp@redhat.com>
321
322         * more Doxygen-related fixes (lots of moving things from the
323         public to internal section in dbus-connection.c)
324
325 2006-10-19  Havoc Pennington  <hp@redhat.com>
326
327         * Fix a pile of Doxygen warnings and missing docs
328
329 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
330
331         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
332         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
333         instead of a void *.  kqueue uses this to get the context's loop
334         while the other modules ignore the parameter.  This allows us to
335         avoid platform conditionals
336
337         * bus/bus.c (process_config_postinit): Pass in the context to the 
338         watch
339
340 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
341
342         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
343         when starting the system bus
344
345 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
346
347         * configure.in: More fixups for cross compile (Patch from 
348         Marco Pracucci <development at pracucci dot com>)
349
350 2006-10-17  Havoc Pennington  <hp@redhat.com>
351
352         * tools/dbus-send.c (main): don't close shared connection, fix
353         from Timo Hoenig
354
355 2006-10-17  Havoc Pennington  <hp@redhat.com>
356
357         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
358
359         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
360         since realistically it doesn't look like we'll be changing it
361         anymore.
362
363 2006-10-17  Havoc Pennington  <hp@redhat.com>
364
365         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
366         be used for return_if_fail type warnings; prefixes the pid, and
367         fatal by default.
368
369 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
370
371         * configure.in: Released 1.0 RC 2(0.94)
372         Add check for -fPIC and enable it if available
373
374 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
375
376         * doc/TODO: Remove the check TODO item
377
378 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
379
380         * dbus-transport-socket.c (exchange_credentials):
381         Print out more detailed errors if reading or sending
382         credentials fail (Patch from Julio M. Merino Vidal 
383         <jmmv at NetBSD dot org>)
384
385 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
386
387         * configure.in: when checking for posix getpwnam_r assume true
388         for cross compiles
389
390 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
391
392         * configure.in: Check for gethostbyname first before we check for it
393         in libnsl.  On gnu systems it is implemeneted 
394
395 2006-10-13  Havoc Pennington  <hp@redhat.com>
396
397         * dbus/dbus-connection.c
398         (dbus_connection_send_with_reply_and_block): fix to handle closed
399         connections, from Tambet Ingo bug #8631
400
401 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
402
403         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
404
405 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
406
407         * test/name-test/Makefile.am: don't link against both libdbus and
408         libdbus-convenience
409
410 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
411
412         * configure.in: check for dirfd even if it is a macro
413         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
414
415 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
416
417         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
418         avoid using dirfd on systems that don't have dirfd 
419         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
420
421 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
422
423         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
424         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
425
426         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
427         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
428         macro because _dbus_abort calls it
429
430         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
431         works
432
433 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
434
435         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
436         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
437
438 2006-10-02  Thiago Macieira  <thiago@kde.org>
439
440         * tools/dbus-launch.c (main): make it complain and abort
441         execution in case an unknown option is given. Also, process
442         the '--' argument as the end of arguments.
443
444 2006-10-01  Havoc Pennington  <hp@redhat.com>
445
446         * tools/dbus-launch.c (print_variables): if no syntax is given,
447         don't print something that's sort-of-half-sh-syntax, just print
448         a plain key-value pairs thing.
449
450         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
451         the local machine representation (but still have the hostname in
452         the display). Remove the hostname from the display if it is
453         localhost. Change session files to be named
454         ~/.dbus/session-bus/machine-display. Change X atoms to be
455         underscore-prefixed so nobody whines about ICCCM compliance.
456         Otherwise name them the same as the env variables.
457         Change session file format to include key-value pairs and an
458         explanatory comment. Keys are the same as the env variables.
459         (set_address_in_x11): X property format can't depend on
460         sizeof(pid_t) on a particular machine, fix to always be 32 bits
461
462         * tools/dbus-launch.c: make --autolaunch take a machine id
463         argument. If --autolaunch is used with a program to run, complain
464         for now (but add a FIXME). Also, don't look for existing bus if 
465         there's a program to run (but add a FIXME).
466
467         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
468         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
469         just to get this, and avoids duplicating uuid-reading code).
470
471         * tools/dbus-launch.1: clarify various things
472         
473 2006-10-01  Havoc Pennington  <hp@redhat.com>
474
475         * test/test-service.c (path_message_func): remove broken extra
476         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
477
478         * test/test-shell-service.c (path_message_func): same fix
479         
480         * dbus/dbus-connection.c
481         (_dbus_connection_get_dispatch_status_unlocked): break up the
482         function a little for clarity and fix the notification of
483         dbus-bus.c to not require dispatch to be complete
484
485         * dbus/dbus-connection.c (dbus_connection_unref): improve the
486         warning when you try to finalize an open connection.
487         
488 2006-10-01  Havoc Pennington  <hp@redhat.com>
489
490         * dbus/dbus-bus.c
491         (internal_bus_get): only weak ref the connection; this means 
492         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
493         called safely in any context
494         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
495         unref
496
497         * dbus/dbus-connection.c
498         (_dbus_connection_get_dispatch_status_unlocked): move
499         _dbus_bus_notify_shared_connection_disconnected_unlocked here
500         when queuing Disconnected instead of when the Disconnected message
501         arrives, so dbus_bus_get() won't return closed connections.
502         
503 2006-10-01  Havoc Pennington  <hp@redhat.com>
504
505         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
506         Add a hack to make DBusNewConnectionFunction work right.
507
508         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
509         the hack here. Also, fix the todo about refcount leak.
510         
511         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
512         and use the hack here
513         
514         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
515         "shareable" flag; this was completely broken, since it meant 
516         dbus_connection_open() returned a connection of unknown
517         shared-ness. Now, we always hold a ref on anything opened 
518         as shareable.
519
520         Move the call to notify dbus-bus.c into
521         connection_forget_shared_unlocked, so libdbus consistently forgets
522         all its knowledge of a connection at once. This exposed numerous
523         places where things were totally broken if we dropped a ref inside
524         get_dispatch_status_unlocked where
525         connection_forget_shared_unlocked was previously, so move
526         connection_forget_shared_unlocked into
527         _dbus_connection_update_dispatch_status_and_unlock. Also move the
528         exit_on_disconnect here.
529
530         (shared_connections_shutdown): this assumed weak refs to the
531         shared connections; since we have strong refs now, the assertion 
532         was failing and stuff was left in the hash. Fix it to close
533         still-open shared connections.
534         
535         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
536         debug pipe connections
537         
538         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
539         dbus-bus.c if the closed connection is in fact shared
540         (_dbus_connection_close_possibly_shared): rename from 
541         _dbus_connection_close_internal
542         (dbus_connection_close, dbus_connection_open,
543         dbus_connection_open_private): Improve docs to explain the deal
544         with when you should close or unref or both
545
546         * dbus/dbus-bus.c
547         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
548         from _dbus_bus_check_connection_and_unref_unlocked and modify to
549         loop over all connections
550
551         * test/test-utils.c (test_connection_shutdown): don't try to close
552         shared connections.
553
554         * test/name-test/test-threads-init.c (main): fix warnings in here
555
556         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
557         env variable to cause blocking waiting for gdb; drop
558         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
559         unconditionally.
560
561         * configure.in: add -export-dynamic to libtool flags if assertions enabled
562         so _dbus_print_backtrace works.
563
564         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
565         instead of _dbus_verbose to print the backtrace, and diagnose lack 
566         of -rdynamic/-export-dynamic
567         
568 2006-09-30  Havoc Pennington  <hp@redhat.com>
569
570         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
571         (internal_bus_get): fix screwy code formatting. whoever committed
572         that was not paying attention!
573
574 2006-09-30  Havoc Pennington  <hp@redhat.com>
575
576         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
577         reflect addition of interfaces.
578
579         * doc/dbus-specification.xml: describe a new
580         org.freedesktop.DBus.Peer.GetMachineId method
581
582         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
583         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
584         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
585         at end of skip_white
586         (_dbus_string_chop_white): new function
587
588         * bus/connection.c (bus_connections_setup_connection): call
589         dbus_connection_set_route_peer_messages.
590
591         * dbus/dbus-connection.c
592         (_dbus_connection_peer_filter_unlocked_no_update): modify to
593         support a GetMachineId method.
594
595         Also, support a new flag to let the bus pass peer methods through
596         to apps on the bus, which can be set with
597         dbus_connection_set_route_peer_messages.
598
599         Finally, handle and return an error for anything unknown on the
600         Peer interface, which will allow us to extend the Peer interface
601         in the future without fear that we're now intercepting something
602         apps were wanting to see.
603         
604         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
605         dbus/dbus-uuidgen.c
606
607         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
608         binary here, since most of the code is already in libdbus
609
610         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
611         uuid from the system config file
612
613         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
614         (_dbus_read_uuid_file_without_creating) 
615         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
616         uuid-related functions, partly factored out from dbus-server.c
617
618         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
619         DBUS_ERROR_FILE_EXISTS instead of EEXIST
620
621         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
622
623         * tools/dbus-cleanup-sockets.1: explain what the point of this
624         thing is a bit more
625
626         * autogen.sh (run_configure): add --config-cache to default
627         configure args
628
629         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
630         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
631
632         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
633         don't try to save address, fixes crash in make check
634         
635 2006-09-30  Thiago Macieira  <thiago@kde.org>
636
637         * configure.in: add DBUS_BINDIR as a #define to C source code.
638
639         * tools/dbus-launch.c
640         * tools/dbus-launch.h
641         * tools/dbus-launch-x11.c:
642         * tools/dbus-launch.1: Add the --autolaunch option to
643         dbus-launch, which makes it scan for an existing session
644         started with --autolaunch. With that option, it also creates
645         an X11 window and saves the bus address and PID to it.
646
647         * dbus/dbus-sysdeps.h:
648         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
649         a function that runs "dbus-launch --autolaunch" to retrieve
650         the running D-Bus session address (or start one if none was running)
651
652         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
653         address protocol, which tries to get the running session from
654         dbus-launch.
655
656         * dbus/dbus-bus.c:
657         * dbus/dbus-internals.h: Make "autolaunch:" be the default
658         D-Bus session bus address.
659
660         * dbus/dbus-connection.c: Fix horrible typo in error message.
661
662 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
663
664         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
665
666 2006-09-17  Havoc Pennington  <hp@redhat.com>
667
668         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
669         fix so that if unix_user_function is set on windows, we still
670         do the default check that the auth identity matches the bus identity
671
672 2006-09-16  Havoc Pennington  <hp@redhat.com>
673
674         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
675         to _dbus_transport_open_platform_specific,
676         _dbus_transport_open_socket,
677         and _dbus_transport_open_debug_pipe
678
679         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
680
681 2006-09-16  Havoc Pennington  <hp@redhat.com>
682
683         Attempt auditing public API to remove all cases where a Unix
684         function returns weird emulated goo to Windows. This probably 
685         breaks the bus daemon on Windows, to fix it again we may 
686         need to stop processing unix-specific config options on Windows,
687         and may need to add Windows-specific public API or config options.
688         
689         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
690         to reflect added interfaces; should not break soname.
691         
692         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
693         not invoke unix user function on Windows. Kind of a hacky fix, but 
694         we don't want a "unix uid" leaking out on Windows.
695
696         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
697         to get the socket fd on Windows or UNIX
698         (dbus_connection_get_unix_fd): make this always fail on Windows
699
700 2006-09-16  Havoc Pennington  <hp@redhat.com>
701
702         * dbus/dbus-server.c (dbus_server_listen): change how this works
703         to be able to delegate to a set of handlers that can succeed,
704         fail, or choose not to handle. Allows us to have 
705         dbus_server_listen_platform_specific.
706
707         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
708         factor out the tcp socket stuff to be used on windows, leaving
709         unix domain socket only in dbus-socket-unix.c
710
711         * dbus/dbus-transport-socket.c
712         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
713         stuff to be used on windows, leaving unix domain socket only 
714         in dbus-transport-unix.c
715
716         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
717         temporary hack to be sure this fails on windows
718         (dbus_connection_get_unix_process_id): ditto
719
720 2006-09-16  Havoc Pennington  <hp@redhat.com>
721
722         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
723         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
724         _dbus_open_socket so the domain/type/protocol from system headers
725         are not required. This is kind of pointless though unless we move
726         part of _dbus_connect_tcp_socket into sysdeps.c instead of
727         sysdeps-unix.c, which would mean adding a wrapper around
728         bind/listen/etc.
729         Also, add DBusError to the socket-opening functions so they 
730         don't require use of errno.
731
732 2006-09-16  Havoc Pennington  <hp@redhat.com>
733
734         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
735         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
736
737         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
738         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
739         functions specifically for sockets only, and move generic 
740         read/write/open/close into unix-specific code.
741
742 2006-09-14  Havoc Pennington  <hp@redhat.com>
743
744         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
745         complaint about accessing revents when poll returns 0, from Julian Seward.
746
747 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
748
749         * Released 1.0 RC 1 (0.93) 
750
751 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
752
753         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
754         use _dbus_close instead of close
755
756 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
757
758         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
759         credentials.  Fixes "external" authentication under e.g. NetBSD
760         which does not support any other socket credentials mechanism.
761         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
762
763 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
764
765         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
766         dbus_threads_init and be used by the dbus mutex functions to
767         avoid deadlocks.
768
769         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
770
771 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
772
773         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
774         use threadsafe readdir_r instead of readdir
775
776 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
777
778         * dbus-threads.c (dbus_threads_init_default): New method for
779         initializing the internal thread implementation (Patch from
780         Alexander Larsson <alexl at redhat dot com>)
781
782 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
783
784         * remove a bunch of todo items from the 1.0 list
785
786 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
787
788         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
789         key not found
790
791 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
792
793         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
794         complex debugging code
795
796         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
797         between the test suite ifdefs
798         (_dbus_verbose_bytes): return if verbosity is not enabled 
799
800 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
801
802         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
803         remove DBusMark
804
805 2006-09-10  Havoc Pennington  <hp@redhat.com>
806
807        patch mostly by Peter Kümmel, bug #8211
808         
809         * dbus/dbus-sysdeps-unix.c: new file, which splits out
810         unix-specific stuff in dbus-sysdeps.c
811
812         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
813         and move unix-specific stuff to dbus-sysdeps-unix.c
814
815         * configure.in: check HAVE_ERRNO_H
816         
817 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
818
819         * bus/test-main.c (main): Initialize threading during tests
820
821         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
822         Unlock connection on error
823         (generate_local_error_message): static method for generating
824         an error message when we don't have a message to reply to
825         (_dbus_connection_block_pending_call): Send a disconnect error
826         instead of just a timeout (NULL) when the bus gets disconnected
827         while blocking for a reply.
828         
829 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
830
831         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
832         filters (Patch from Kimmo Hämäläinen 
833         <kimmo dot hamalainen at nokia dot com>)
834
835 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
836
837         * dbus/dbus-connection-internal.h: Add prototype for 
838         _dbus_connection_test_get_locks to remove warning
839
840 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
841
842         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
843         close child_err_report_pipe[WRITE_END] on exec (Patch from 
844         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
845
846 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
847
848         * Clean up close calls to use _dbus_close (Patch from 
849         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
850
851 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
852
853         * doc/TODO:
854         - Remove pending call locking todo item
855         - dbus_connection_open now holds hard ref.  Remove todo item
856         - do proper locking on _dbus_bus_check_connection_and_unref
857           and handle DBUS_BUS_STARTER. Remove todo item
858         - Warn on closing of a shared connection.  Remove todo item
859
860         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
861         dbus/dbus-connection.c: Use the dbus_connection_close_internal
862         so we don't get the warning when closing shared connections
863
864         * test/test-service.c, test/test-shell-service.c: Applications
865         don't close shared connections themselves so we unref instead of
866         close
867
868         * test/test-utils.c (test_connection_shutdown): Close the connection
869
870         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
871         _dbus_bus_check_connection_and_unref_unlocked since we only call this
872         method on a locked connection.  
873         Make sure we call _dbus_connection_unref_unlocked instead of 
874         dbus_connection_unref also.
875         Handle DBUS_BUS_STARTER correctly
876
877         * dbus/dbus-connection.c (connection_record_shared_unlocked):
878         Mark as shared and hard ref the connection
879         (connection_forget_shared_unlocked): Remove the hard ref from the 
880         connection
881         (_dbus_connection_close_internal_and_unlock):  New internal function
882         which takes a locked connection and unlocks it after closing it
883         (_dbus_connection_close_internal): New internal function which acts
884         like the origonal dbus_connection_close method by grabbing a connection
885         lock and calling _dbus_connection_close_internal_and_unlock
886         (dbus_connection_close): Public close method, warns when the app
887         trys to close a shared connection
888
889 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
890
891         * bus/driver.c:
892         (bus_driver_generate_introspect_string): New method for populating
893         a DBusString with the introspect data
894         (bus_driver_handle_introspect): Move introspect generation code to 
895         bus_driver_generate_introspect_string
896
897         * bus/main.c:
898         (introspect): New function which prints out the intropect data and
899         exits
900         (main): Add a --introspect switch
901
902 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
903
904         * doc/TODO: Removed dtd publishing item.  
905         It seems the dtd has already been added at
906         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
907
908 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
909
910         * doc/TODO, various source files: Audited todo's and FIXME's and
911         prepended the ones we should be looking at with 1.0.  Those
912         prepended with 1.0? need clerification or might not be needed
913         for 1.0
914
915 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
916
917         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
918         NULL in the public API (Patch from Kimmo Hämäläinen 
919         <kimmo dot hamalainen at nokia dot com>)
920
921 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
922
923         * configure.in: Fix for OS-X compile time endian issues (patch from
924         Benjamin Reed <ranger at befunk dot com>)
925
926 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
927
928         * configure.in: Check for no-common compiler flag (OS-X fix from
929         Benjamin Reed <ranger at befunk dot com>)
930
931 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
932
933         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
934         <fcrozat at mandriva dot com>)
935
936 2006-08-29  Havoc Pennington  <hp@redhat.com>
937
938         * test/test-service.c (path_message_func): fix lack of return value
939
940         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
941         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
942         any more sense than on anything else in this file.
943         (_dbus_get_tmpdir): add const to return value, and keep the
944         results of the various getenv around in a static variable.
945
946 2006-08-29  Havoc Pennington  <hp@redhat.com>
947
948         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
949         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
950
951 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
952
953         * test/Makefile.am: change find to use syntax that works with non
954         gnu versions of find
955
956 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
957
958         * dbus/dbus-transport.c: fix invalid deref when checking if
959         a vtable method exists (Patch from Christian Ehrlicher 
960         <ch dot ehrlicher at gmx dot de>)
961
962 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
963
964         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
965         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
966         to build with builddir != srcdir (Taken from a patch by Bernard Leak
967         <bernard at brenda-arkle dot demon dot co dot uk>)
968
969 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
970
971         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
972         default case
973
974 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
975
976         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
977         it works on any system providing this interface, not only FreeBSD.
978         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
979
980 2006-08-20  Havoc Pennington  <hp@redhat.com>
981
982         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
983         the docs
984
985 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
986
987         * Released 0.92 
988
989 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
990
991         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
992         to reflect the init late change
993
994         * bus/bus.c (bus_context_new): Check user before we fork so we can
995         print out an error message a user will be able to see
996
997 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
998
999         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1000
1001         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1002         Add two more global locks for use on windows platforms.  These are
1003         unused on non-windows platforms but are not ifdefed out to avoid
1004         potential bugs (i.e. the few bytes lost does not warrent the extra
1005         maintanence and complexity that having seperate sets of locks would
1006         cause)
1007
1008 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * bus/services.c (bus_registry_acquire_service): Return an error
1011         when an application tries to register the org.freedesktop.DBus Bus Name
1012
1013         * bus/services.c (bus_registry_release_service): Return an error
1014         when an application tries to release the org.freedesktop.DBus Bus Name
1015
1016 2006-08-17  Alp Toker  <alp@atoker.com>
1017
1018         * doc/dbus-specification.xml: Fix some minor typos.
1019
1020 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1021
1022         * configure.in: use $with_init_scripts instead of $operating_system
1023         to determine where to store the pid since the init scripts manipulate 
1024         the pid file (patch from Marcelo Ricardo Leitner 
1025         <marcelo dot leitner at terra dot com dot br>.  
1026
1027 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1028
1029         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1030         static DBusList *uninitialized_condvar_list to support new late 
1031         initialization threading model.  In this model threads can be initialized
1032         even after the D-Bus API has been used but still needs to be initialized 
1033         before the second thread has been started.  Mutexes and condvar addresses
1034         are stored in the two static lists and are replaced with actuall locks
1035         when threads are initalized.
1036         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1037         the location into the static list
1038         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1039         from the static list and freeing the mutex
1040         (_dbus_condvar_new_at_location): New method for creating a conditional 
1041         variable and placing the location into the static list
1042         (_dbus_condvar_free_at_location): New method for removing a conditional
1043         variable location from the static list and freeing the conditional variable 
1044         (init_uninitialized_locks): Atomic method which goes through the static 
1045         lists of mutex and condvar location and updates them with actuall locks
1046         (init_global_locks): changed to init_locks
1047         
1048         * dbus/dbus-connection.c:
1049         (_dbus_connection_test_get_locks): New method for tests to check connections
1050         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1051         condvar API
1052         (dbus_connection_allocate_data_slot): Pass in the global lock address
1053         to _dbus_data_slot_allocator_alloc
1054
1055         * dbus/dbus-dataslot.c:
1056         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1057         instead of the mutex itself
1058
1059         * dbus/dbus-message.c:
1060         (dbus_message_allocate_data_slot): Pass in the global lock address
1061         to _dbus_data_slot_allocator_alloc
1062
1063         * dbus/dbus-pending-call.c:
1064         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1065         to _dbus_data_slot_allocator_alloc
1066
1067         * dbus/dbus-server.c:
1068         (_dbus_server_init_base): Use the new at_location mutex API
1069         (dbus_server_allocate_data_slot): Pass in the global lock address
1070         to _dbus_data_slot_allocator_alloc
1071
1072         * test/name-test/test-threads-init.c: New test case for late thread
1073         initialization
1074
1075 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1076
1077         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1078         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1079         causes compile problems when asserts are turned off
1080         Keeping _dbus_warn for printing out the message so even if
1081         asserts are turned off the user gets the messages that something is 
1082         wrong 
1083
1084 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1085
1086         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1087
1088         * bus/services.c (bus_service_list_queued_owners):
1089         Add a pointer cast to fix compiler warning
1090
1091         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1092         return a NULL instead of FALSE since the return type
1093         is not expecting a boolean
1094
1095         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1096         Remove unused variable
1097
1098         * dbus/dbus-marshal-recursive-util.c (node_new):
1099         return a NULL instead of FALSE since the return type
1100         is not expecting a boolean
1101
1102         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1103         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1104         because we are expecting a pointer not a boolean
1105
1106         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1107         add void as the parameter so some compilers
1108         don't complain
1109
1110         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1111           _dbus_transport_new_for_tcp_socket):
1112         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1113         because we are expecting a pointer not a boolean
1114
1115         * test/shell-test.c (test_command_line):
1116         cast the second argument to _dbus_list_append to avoid compiler
1117         warnings
1118
1119         * test/test-names.c (main): remove unused variable
1120
1121         * test/test-service.c (check_hello_from_self_reply):
1122         Initialize echo_message and echo_reply to NULL
1123         
1124         * test/test-shell-service.c (handle_echo):
1125         Remove unused variable and cast the third parameter passed to
1126         dbus_connection_get_object_path_data to avoid compiler warrnings
1127
1128         * test/name-test/test-names.c (clear_message_queue):
1129         Remove unused function
1130
1131         * test/name-test/test-pending-call-dispatch.c:
1132         Fix format string in printf
1133
1134
1135 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1136
1137         * dbus/dbus-bus.c:
1138         * test/name-test/test-names.c:
1139         Remove test method dbus_bus_connection_get_unique_name because 
1140         we already have public method dbus_bus_get_unique_name that 
1141         does the exact same thing
1142
1143 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1144
1145         * dbus/dbus-signature.c:
1146         fix typos in Julio's previous patch which cause make check to fail
1147
1148 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1149
1150         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1151         In any case it was wrong since this is a test checking to see if
1152         address parsing is correct.  There was no need to get the true
1153         tmp directory.  
1154
1155 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1156
1157         * dbus/dbus-macros.h: Revert the addition of stddef.h
1158         as we should not be adding it to library headers 
1159
1160 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1161
1162         * dbus/dbus-signature.c:
1163         Fix the unit tests so that they work if assertions are not enabled.
1164         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1165
1166 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1167
1168         * tools/run-with-tmp-session-bus.sh:
1169         * test/name-test/run-test.sh:
1170         Remove bashisms (patch from Julio M. Merino Vidal
1171         <jmmv at NetBSD dot org>)
1172
1173 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1174
1175         * configure.in: add a version (>= 2.6.0) check for libxml2
1176
1177 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1178
1179         * configure.in: make sure the compiler supports -Wfloat-equal
1180         
1181         * bus/dir-watch-dnotify.c: move functional code after 
1182         variable declerations (C99 fix)  (patches from Jens Granseuer
1183         <jensgr at gmx dot net>
1184
1185 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1186
1187         * dbus/dbus-macros.h:
1188         add #include <stddef.h> so that Sun compilers don't complain about
1189         the defining NULL
1190
1191 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * dbus/dbus-sysdeps.c:
1194         * dbus/dbus-address.c:
1195         * bus/activation.c:
1196         * test/shell-test.c:
1197         don't hardcode tmp directory (patch from Dave Meikle 
1198         <dmk at davemeikle dot co dot uk>)
1199
1200 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1201
1202         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1203         Change an assert to a detailed warning and abort.  
1204         When allocator->lock != mutex it indicates that the user has failed
1205         to initalize threads before using the D-Bus library.  This warning
1206         helps the user identify the issue and fix their app.
1207
1208 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1209
1210         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1211         with cleanups of bugs found from Coverity reports:
1212
1213         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1214         close the file on error to avoid a leak
1215
1216         * bus/expirelist.c (bus_expire_list_test):
1217         Check for NULL on dbus_new0
1218
1219         * bus/activation.c (update_directory):
1220         remove dead code
1221
1222         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1223         Fix some leaks
1224
1225         * bus/bus.c (process_config_every_time):
1226         Fixed a leak
1227
1228         * bus/desktop-file.c (parse_key_value):
1229         Fixed leak
1230
1231         * bus/selinux.c (bus_selinux_id_table_insert):
1232         Fixed leak
1233
1234 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1235
1236         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1237         remove dead code
1238
1239 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1240
1241         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1242         #!/bin/bash
1243
1244 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1245
1246         * Doxyfile.in: fix the INPUT line so we can generate docs 
1247         when sourcedir != builddir (patch from Cygwin Ports maintainer
1248         <yselkowitz at users dot sourceforge dot net>
1249
1250 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1251
1252         * dbus/dbus-sysdeps.h:
1253         * dbus/dbus-sysdeps.c: 
1254         * dbus/dbus-string.c: 
1255         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1256         GLib's function which does the same thing
1257
1258         * configure.in:
1259         * bus/Makefile.am:
1260         * bus/dir-watch-default.c:
1261         * bus/dir-watch-dnotify.c:
1262         * bus/dir-watch-kqueue.c:
1263         Add kqueue directory watching for freebsd and split the directory
1264         watching code into seperate files per method/arch
1265         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1266
1267 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1268
1269         * configure.in:
1270         * tools/Makefile.am:
1271         * tools/dbus-launch.c:
1272         * bus/Makefile.am:
1273         allow --with-dbus-daemondir switch to be used to make the
1274         daemon install to a seperate bindir like /usr/libexec
1275         (patch from Brian Cameron <brian dot cameron at sun dot com)
1276
1277 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * bus/Makefile.am (install-data-hook): removed the slash after 
1280         $(DESTDIR) so we don't get the double slash which does not work
1281         in windows (patch from Andras Porjesz 
1282         <andras dot porjesz at siemens dot com>)
1283
1284 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1285
1286         * dbus/dbus-sysdeps.h:
1287         * dbus/dbus-sysdeps.c: 
1288           add _dbus_printf_length (patch from Peter Kümmel 
1289           <syntheticpp at gmx dot net>)
1290
1291 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1292
1293         * dbus/dbus-internals.c: unistd.h is not used 
1294         (_dbus_verbose_real): only enable verbose printing 
1295         if DBUS_VERBOSE environment var is set to '1'
1296         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1297
1298 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1301         so we still compile on older gcc (patch from Frederic Peters 
1302         <fpeters at 0d dot be>
1303
1304 2006-08-04  Havoc Pennington  <hp@redhat.com>
1305
1306         * configure.in: add -Wdeclaration-after-statement
1307
1308         * dbus/dbus-connection.c: change all the pending call stuff to
1309         reflect the fact that pending call operations use the connection
1310         lock
1311
1312         * dbus/dbus-pending-call.c: add locking here
1313
1314         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1315         field const consistent with how message field is done
1316
1317 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * s/D-BUS/D-Bus/g
1320
1321 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1324         <in7y118 at public.uni-hamburg dot de> - fix invalid
1325         read/write reported by valgrind
1326
1327 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * Released 0.91
1330
1331 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * dbus/dbus-connection.c:
1334         (_dbus_connection_attach_pending_call_unlocked):
1335         (connection_timeout_and_complete_all_pending_calls_unlocked):
1336         Make sure we set timeout_added on pending calls to FALSE when
1337         we remove the timeout from the connection
1338
1339 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         * Removed some extra bindings stuff lingering around (thanks timo)
1342         * dbus-pendingcall.c (_dbus_pending_call_new): 
1343         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1344         when we tried to take a lock on an already locked connection
1345
1346 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1347
1348         * Released 0.90
1349
1350 2006-07-17  Havoc Pennington  <hp@redhat.com>
1351
1352         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1353         ints, reported by Owen Taylor
1354
1355 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1356
1357         * doc/TODO:
1358         * dbus/dbus-bus.c:
1359         * dbus-errors.c:
1360         * dbus/dbus-marshal-validate.c:
1361           Removed TODO items which were fixed or are no longer relevent
1362
1363 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1366         Remove stray files from the stripped bindings
1367
1368 2006-07-16  Havoc Pennington  <hp@redhat.com>
1369
1370         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1371         Improve the error message on reply timeout
1372
1373 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1374
1375         * Remove all bindings
1376
1377 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1378
1379         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1380         and set pending_reply out arg to NULL is connection is disconnected
1381         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1382         static method for cleaning up pending calls on disconnect
1383         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1384         calls queued timeouts on disconnect 
1385
1386          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1387         Remove 
1388
1389 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1390
1391         * bus/activation.[ch] (bus_activation_list_services): new function to 
1392         get the list of services that can be activated
1393
1394         * bus/dispatch.c: test coverage for the new bus method
1395         ListActivatableNames
1396
1397         * bus/driver.c: new bus method ListActivatableNames to get the list of
1398         services that can be activated
1399
1400         * doc/dbus-specification.xml: ListActivatableNames method documentation
1401
1402 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1403         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1404         source files
1405
1406 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1407         * dbus/dbus-message-factory.c:
1408         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1409
1410 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1411         * dbus/dbus-connection-internal.h:
1412         * dbus/dbus-connection.c:
1413         * file dbus/dbus-pending-call.c:
1414         * dbus/dbus-pending-call.h:
1415         Make DBusPendingCall an opaque type even to D-Bus internals
1416
1417 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1418
1419         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1420         connection_close
1421
1422         * dbus/dbus-connection.c: include dbus-bus.h
1423         (_dbus_connection_read_write_dispatch): make static
1424
1425 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1428         function
1429         (dbus_connection_dispatch): On disconnect unref any shared connections
1430
1431         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1432         for cleaning up shared connections on disconnect
1433         (internal_bus_get): get a hard refrence to shared connections when
1434         they are created
1435         
1436         * doc/TODO: Remove items which are no longer relevent or have been fixed
1437         Split 1.0 todo items with a 0.90 freeze todo list
1438  
1439 2006-06-14  Ross Burton  <ross@openedhand.com>
1440
1441         * glib/dbus-gobject.c:
1442         Free a leaking GArray (surely not!) in dbus_g_method_return.
1443
1444 2006-06-14  Ross Burton  <ross@openedhand.com>
1445
1446         * tools/Makefile.am:
1447         * tools/dbus-monitor.c:
1448         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1449         Habacker).
1450         
1451 2006-06-14  Ross Burton  <ross@openedhand.com>
1452
1453         * tools/dbus-print-message.c:
1454         Also print the object path when outputting signals or method calls.
1455
1456 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1457
1458         * qt/src/Makefile.am: install the qdbus.h header.
1459         This allows people to actually use the installed code.
1460
1461 2006-06-12  Ross Burton  <ross@openedhand.com>
1462
1463         * glib/dbus-gproxy.c:
1464         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1465
1466 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1467
1468         * Released 0.62
1469
1470 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1471
1472         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1473         break pedantic builds. Closes bug 6043 (patch approved by
1474         Havoc back in February).
1475
1476 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1477
1478         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1479         that took a QDBusMessage parameter.
1480         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1481         * qt/tools/dbus.cpp: Don't use automatic call because we might
1482         be calling an async method: request a reply.
1483
1484 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1485
1486         * test/qt/*: Update the testcases, including testing the new
1487         functionality of sending null QByteArray and QString over the
1488         bus. Add new headertest test and restore the old
1489         qdbusxmlparser test.
1490
1491 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1492
1493         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1494         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1495
1496         * qt/examples/Makefile.am:
1497         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1498         form.
1499
1500         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1501         QByteArray() (nulls) over the bus.
1502         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1503         the one that has the signature suffix stripped.
1504         * qt/src/qdbusreply.h: Make some methods const.
1505
1506 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1507
1508         Patch from Timo Hoenig <thoenig@suse.de>.
1509
1510         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1511         required during build to EXTRA_DIST.
1512         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1513         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1514         * configure.in: Fix "make dist", take care that the Makefile for
1515         qt/dbus is being generated.
1516
1517 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1518
1519         * bus/bus.c: Fix eavesdropping on method calls
1520
1521 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1522
1523         * configure.in:
1524         * dbus/dbus-userdb-util.c:
1525         Add Solaris console owner patch from Artem Kachitchkine
1526
1527 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1528
1529         * qt/Makfile.am:
1530         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1531         reorganisation. Thanks to Timo Hoenig for pointing this out.
1532
1533 2006-06-06  Robert McQueen  <robot101@debian.org>
1534
1535         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1536           call to dbus_g_type_get_struct.
1537
1538 2006-06-06  Robert McQueen  <robot101@debian.org>
1539
1540         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1541           pointers were put into a GPtrArray-based specialised collection, and
1542           then freed along with the array. GValues which you add into
1543           collections or maps which have the NOCOPY flag set are assumed to not
1544           belong to the caller, so rather than the existing pointer-stealing
1545           semantics, they are copied instead. Given that the main consumers of
1546           this abstraction are the bindings themselves, I don't think this is
1547           too bad, but others should watch their choice of take vs set_static.
1548
1549 2006-06-06  Robert McQueen  <robot101@debian.org>
1550
1551         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1552           of g_slist_prepend not being used. Fixed copying of slist-based
1553           specialised collections, then wrote a test case and found that it was
1554           all broken. Went on to fix iterating and appending too. Good thing
1555           nobody uses this code yet.
1556
1557 2006-06-06  Robert McQueen  <robot101@debian.org>
1558
1559         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1560           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1561           are discarded without unsetting, so it makes no difference whether
1562           we take or set_static). Remove cases for G_TYPE_POINTER because
1563           there really is nothing useful we can do with them in our
1564           specialised types - we *need* boxed copy/free functions at the very
1565           least.
1566
1567 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1568
1569         * qt/dbus: Add directory. I had forgotten to add this
1570         yesterday after the move...
1571
1572         * qt/examples/Makefile.am:
1573         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1574
1575         * qt/tools/Makefile.am:
1576         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1577         Added feature to get and set properties.
1578         Added validation of service, object path and interface names.
1579
1580         * qt/tools/dbusidl2cpp.cpp: Two new features:
1581         1) Allow specifying both the header and the source file names,
1582         by separating them with a colon.
1583         2) Don't write an interface output if the -p switch wasn't
1584         given, but the -a was.
1585
1586         * qt/src/*: Fix usage of Iterators and ConstIterators.
1587         Fix shadowing of variables by other variables (-Wshadow).
1588         Fix keyword-cleanliness in headers.
1589         Fix ASCII-cast (QLatin1String, QLatin1Char).
1590         Fix validation of member names.
1591         Add extra checking of introspection data during XML parsing.
1592         Various bug fixes.
1593
1594 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1595
1596         * dbus/Makefile.am:
1597         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1598         qt/dbus/qdbus.h now.
1599
1600 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1601
1602         * configure.in: Make --disable-qt actually do
1603           something. Patch inspired by Zack Rusin.
1604
1605 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1606
1607         * qt/: Update to Subversion r548032.
1608         This includes a big reorganisation of the files inside the
1609         subdir.
1610
1611 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1612
1613         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1614         clear:  
1615         "Failed to connect to socket <host>:<port> <error>" instead of
1616         "Failed to connect to socket <host>: <error>:<port>"
1617
1618         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1619         for a tcp transport. 
1620
1621 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1622
1623         * qt/*: Update the QtDBus bindings up to revision 546310 in
1624         Subversion.
1625         This adds the dbuscpp2xml tool, that parses a C++ header and
1626         outputs a D-BUS Introspection XML.
1627
1628 2006-05-21  Havoc Pennington  <hp@redhat.com>
1629
1630         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1631         is not NULL when it shouldn't be. Also a couple of possible fixes
1632         for #4637 though I don't understand why the bug happens, to be
1633         honest... also the object constructor has an assert name != NULL
1634         and the name is only currently NULL for peer-to-peer proxies that 
1635         I don't think anyone uses? So it should be asserting.
1636         Anyway, for now at least see if we get an earlier assertion failure.
1637
1638         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1639         apparently broken code to be sure the tests fail and someone 
1640         will fix them...
1641
1642 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1643
1644         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1645         and arrays when they had a single element: has_next returns
1646         false, even before you read the element. So, instead, check
1647         the array length.
1648
1649 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1650
1651         * qt/qdbusmessage.cpp:
1652         * qt/qdbustypehelper_p.h:
1653         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1654         the list is a const-reference
1655
1656 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1657
1658         * Adding old doc patch that never got applied
1659         
1660         * dbus/bus.c (dbus_bus_add_match): Add documentation
1661
1662         * doc/dbus-specification.xml: Add documentation for the match rules
1663           and the AddMatch and RemoveMatch methods
1664
1665 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1666
1667         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1668         call (r535506)
1669
1670         * qt/dbusidl2cpp.cpp:
1671         * qt/qdbusabstractadaptor.cpp:
1672         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1673         sibling of the QDBusAbstractAdaptor objects instead of the
1674         parent. (r535848)
1675
1676         * qt/dbusidl2cpp.cpp:
1677         * qt/qdbusabstractinterface.cpp:
1678         * qt/qdbusabstractinterface.h:
1679         * qt/qdbusabstractinterface_p.h:
1680         * qt/qdbusinterface.cpp: Make properties in interfaces
1681         actually work. The code that was generated would not compile,
1682         due to moc calls to functions that did not exist. They now
1683         shall. (r536571)
1684
1685 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1686
1687         * Makefile.am:
1688         * configure.in:
1689         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1690         Thanks to Brad Hards for providing the patch
1691
1692 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1693
1694         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1695         call. (r535506)
1696
1697 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1698
1699         * qt/examples/dbus.cpp: Enhance error messages and use
1700         QDBusInterfacePtr.
1701
1702 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1703
1704         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1705         and disable the copy operators. (r533772, r534746)
1706
1707         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1708
1709         * qt/qdbusabstractinterface.cpp:
1710         * qt/qdbusabstractinterface.h: Change the default call mode to
1711         not use the event loop. Add convenience call() methods that
1712         take a CallMode parameter. (r534042)
1713
1714         * qt/qdbusconnection.h: Change the default call mode to not
1715         use the event loop. (r534042)
1716
1717         * qt/qdbusinterface.cpp:
1718         * qt/qdbusinterface.h: Add a method to tell us if the
1719         interface is valid (since we don't return a null pointer
1720         anymore) (r534099)
1721
1722         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1723         (r534101)
1724
1725         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1726         function in two so taht we get the chance to introspect
1727         without having a QDBusMessage (r534102)
1728
1729         * qt/qdbusbus.h:
1730         * qt/qdbusconnection.cpp:
1731         * qt/qdbusconnection_p.h:
1732         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1733         avoid a round-trip to the server when attempting to introspect
1734         one of our own objects. Also make sure the filter functions
1735         match the empty interface as well. (r534108)
1736         Don't keep the connection names. Instead, trust the unique
1737         connection name (r534111)
1738         Remove event loop usage (r534112)
1739
1740 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1741
1742         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1743         Brad Hards.
1744
1745 2006-04-28  Robert McQueen  <robot101@debian.org>
1746
1747         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1748         any order, making it easier for people who inherit from this
1749         object.
1750
1751 2006-04-28  Robert McQueen  <robot101@debian.org>
1752
1753         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1754         of memory from within pointer arrays and lists. Fixes bug #6300.
1755
1756 2006-04-28  Robert McQueen  <robot101@debian.org>
1757
1758         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1759         generating struct signatures. Fixes bug #6083.
1760
1761 2006-04-28  Robert McQueen  <robot101@debian.org>
1762
1763         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1764         to qdbusconnection_p.moc.
1765
1766 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1767
1768         * README, INSTALL: Doc fixes
1769         Patch from Brad Hards <bradh at frogmouth.net>
1770
1771 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1772
1773         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1774         the dynamic meta object. No need to guess which interface to
1775         call.
1776
1777 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1778
1779         * qt/qdbusconnection_p.h:
1780         * qt/qdbusmetaobject.cpp:
1781         * qt/qdbusmetaobject_p.h:
1782         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1783         for the dynamic meta object. No need to guess which
1784         interface to call.
1785         * qt/qdbusabstractinterface_p.h:
1786         * qt/qdbusconnection.cpp:
1787         * qt/qdbusintegrator.cpp:
1788         * qt/qdbusinterface.cpp:
1789         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1790         Add a QDBusRef that looks and behaves like DCOPRef.
1791
1792 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1793
1794         * dbus/dbus-connection.c: Interfaces are optional in method
1795         calls, so don't give up if the interface parameter is NULL.
1796         Patch reviewed by Havoc Pennington.
1797
1798 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1799
1800         * qt/qdbusreply.h: Add default constructor and operator=
1801           (r532625)
1802         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1803           in public headers (r532952)
1804         * qt/qdbusabstractinterface.cpp:
1805         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1806           make it the default (r532951)
1807
1808 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * dbus/dbus-connection.c: Fix asserts
1811         Patch from Tim Moloney <t.moloney at verizon.net>
1812
1813 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1814
1815         * mono/Connection.cs, mono/Message.cs: Check Target type
1816         Patch from Aaron Bockover (abockover at novell.com)
1817
1818 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1819
1820         * INSTALL: fine-tune the requirements for the Qt4 binding.
1821
1822 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1823
1824         * tools/dbus-print-message.c: Added support for printing of all 
1825           remaining data types. Fixed logic for indentation of compound
1826           data types.
1827         
1828 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1829
1830         * INSTALL: fill out content of file providing DBus specific
1831           build installations, followed by generic Auto* INSTALL file
1832           content
1833         
1834 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1835
1836         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1837           Patch by Stefan Eilers. (r529537)
1838
1839 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1840
1841         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1842           contents (r528208)
1843
1844 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1845
1846         * qt/Makefile.am: fix the dependency for
1847           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1848           not in qdbusconnection.cpp.
1849           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1850           spotting this.
1851
1852 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1853
1854         * qt/examples/listnames.cpp:
1855         * qt/examples/Makefile.am: Three ways to list the names on the
1856           bus.
1857
1858 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1859
1860         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1861           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1862
1863 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1864
1865         Merge from Subversion:
1866         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1867           something that exists (r526315)
1868         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1869           slots/signals (r526316)
1870         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1871           also return an unknown-method error if the parameters don't
1872           match for org.freedesktop.DBus.Properties. (r526842)
1873         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1874         * qt/qdbusintegrator.cpp: Restore the proper order of
1875           delivery: don't make method returns be delivered on priority
1876           (r528150)
1877
1878 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1879
1880         * configure.in qt/Makefile.am: add qt/examples
1881         * qt/examples: Add QtDBus example programs:
1882           - hello: Hello, World
1883           - ping: Simple method-calling program
1884           - pong: Simple object-exporting program (not using adaptors)
1885           - complexping: Interactive method-calling program 
1886                 (also gets and sets properties).
1887           - complexpong: Sample program exporting methods, signals and
1888                 properties, using adaptors.
1889           - dbus: Simple implementation of a generic method-calling
1890                 program, similar to 'dbus-send', but with semantics
1891                 similar to 'dcop'.
1892           - chat: Simplistic chat program, implemented using signals
1893                 and the system bus. Looks like IRC.
1894
1895 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1896
1897         * configure.in: Detect QtGui (necessary for one of the
1898           example programs). Note: this increases the minimum required
1899           version of Qt to 4.1.3.
1900
1901 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1902
1903         * test/qt/*: Sync with KDE Subversion revision 523647.
1904         Update the testcases to the new API. Remove testcases for
1905         classes that are no longer public or have been removed.
1906
1907 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1908
1909         * qt/*: 
1910         * dbus/qdbus.h: Sync with KDE Subversion revision
1911         523647. Hopefully, this will be the last of the
1912         source-incompatible changes. Documentation has been improved;
1913         support for QList<basic-types> has been added; QDBusObject is
1914         gone; QDBus(Abstract)Interface is now a QObject with
1915         auto-generated meta-object; QDBusIntrospection is marked
1916         private, since QMetaObject can be used now; lots of bugfixes.
1917
1918 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1919
1920         Patch from Milosz Derezynski <internalerror at gmail.com>
1921         
1922         * configure.in:
1923         Output the service directory in the configure summary
1924
1925         * dbus-1.pc.in:
1926         Add session_bus_services_dir
1927
1928 2006-03-10  Ross Burton  <ross@openedhand.com>
1929
1930         * tools/dbus-print-message.c:
1931         Add support for object paths and signatures.
1932
1933 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1934
1935         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1936         config reload.
1937         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1938         information caches
1939         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1940         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1941         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1942         * dbus/dbus-userdb.h: Add function to flush all user/group information
1943         caches.
1944
1945 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1946
1947         * qt/dbusidl2cpp.cpp:
1948         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1949         for dcopidl2cpp, found in the KDE installations (or the more
1950         modern kalyptus): generate Qt4 C++ code for the input XML
1951         introspection. Currently no IDL parsing.
1952
1953 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1954
1955         * test/qt/*: Update the self-tests.
1956
1957 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1958
1959         * qt/*: 
1960         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1961         represents the first feature-complete version of the Qt4
1962         bindings since I took ove maintainership.
1963
1964 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1965
1966         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1967         dir. This is C++, so we can't use the DBus ones.
1968
1969 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1970
1971         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1972         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1973
1974 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1975
1976         * dbus/dbus-connection.c: 
1977         (_dbus_connection_block_pending_call):
1978         Check to see if our data has already been read off the connection
1979         by another blocking pending call before we block in poll.
1980         (check_for_reply_and_update_dispatch_unlocked):
1981         Code taken from _dbus_connection_block_pending_call - checks for
1982         an already read reply and updates the dispatch if there is one.
1983
1984         * test/name-test/test-pending-call-dispatch.c:
1985         New test for making sure we don't get stuck polling a 
1986         dbus connection which has no data on the socket when
1987         blocking out of order on two or more pending calls.
1988
1989 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1990
1991         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1992         make/automake don't detect that we're talking about the same
1993         .lo file if I specify the full path to the source files.
1994
1995 2006-02-26  Havoc Pennington  <hp@redhat.com>
1996
1997         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1998
1999         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2000         session bus variable is unset, suggest "man dbus-launch" and "man
2001         dbus-daemon" to figure out how to fix the problem
2002
2003 2006-02-25  Havoc Pennington  <hp@redhat.com>
2004
2005         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2006         should make this thing use the new glib options parser
2007
2008 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2009
2010         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2011         .lo files taking moc sources.
2012
2013 2006-02-25  Havoc Pennington  <hp@redhat.com>
2014
2015         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2016         and install it as a public header
2017
2018 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2019
2020         * Released 0.61
2021
2022 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2023         
2024         * proxies.py: Fix the callchain
2025
2026 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2027         
2028         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2029
2030         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2031         dbus/dbus-sysdeps.c
2032
2033         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2034         call _dbus_group_info_free_allocated which causes infinite loop,
2035         correctly call _dbus_group_info_free
2036
2037 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2038
2039         * qt/qdbusinterface_p.h:
2040         * qt/qdbusinterface.cpp: Use the standard
2041         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2042         calls instead of creating one for us.
2043
2044         * qt/qdbusconnection_p.h:
2045         * qt/qdbusintegrator.cpp: Remove debugging code.
2046
2047         * qt/qdbusintegrator.cpp:
2048         * qt/qdbusmessage.cpp:
2049         * qt/qdbusmessage_p.h:
2050         * qt/qdbusmessage.h: Change the behaviour of automatic
2051         reply-sending: now a reply is always sent, unless the caller
2052         didn't request one or if the user slot has already sent one.
2053
2054 2006-02-16  Robert McQueen  <robot101@debian.org>
2055
2056         * configure.in: Patch from Debian packages by Sjoerd Simons
2057         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2058         arguments so it's possible to build both bindings in the
2059         same tree.
2060
2061         * qt/Makefile.am: Fix truncated value so that make dist works.
2062
2063 2006-02-16  Robert McQueen  <robot101@debian.org>
2064
2065         * acinclude.m4, configure.in: Patch from Brad Hards
2066         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2067         improving quoting, re-ordering a few checks, and a few other
2068         aesthetic tidy-ups.
2069
2070 2006-02-16  Robert McQueen  <robot101@debian.org>
2071
2072         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2073         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2074         assertion that the next element to read from the iter is fixed in
2075         size. This is not the case when you are at the end of the iter,
2076         because the next element type is INVALID.
2077
2078         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2079         a bogus assert which means that you may not initialise a 0-length
2080         string unless you provide a non-NULL pointer. This prevented
2081         you from marshalling messages containing zero-length arrays in
2082         some cases.
2083
2084         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2085         from Rob to correct bogus asserts when trying to demarshal an
2086         array and get_fixed_array got you 0 elements. Append nothing to
2087         the GArray in this case.
2088
2089         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2090         an empty array via the glib bindings. Without all of the above
2091         patches, this new test fails.
2092
2093 2006-02-16  Robert McQueen  <robot101@debian.org>
2094
2095         * glib/dbus-gmain.c: Make the previous commit compile.
2096
2097         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2098         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2099         specify sender_keyword="foo", path_keyword="bar" when adding
2100         a signal listener, so that you can bind to signals generically
2101         but still do something useful in your callback.
2102
2103         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2104         chars so that they're not cast to chars and made negative. Thanks
2105         to Jakub Stachowski for reporting this and testing the fix.
2106
2107 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * dbus/dbus-glib.h:
2110         * glib/dbus-gmain.h:
2111         (dbus_g_connection_open): new method for openning
2112         a connection to an arbitrary address in the glib bindings
2113
2114         * ChangeLog: checkin last entry which doesn't seem to be commited
2115
2116 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2117
2118         * tools/dbus-launch.c: Fixed sh syntax output
2119
2120 2006-02-13  Robert McQueen  <robot101@debian.org>
2121
2122         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2123         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2124         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2125         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2126         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2127         missing piece of the glib bindings jigsaw puzzle. This modifies
2128         the existing specialised types to have N type parameters (rather
2129         than the current 1 or 2 for arrays and dictionaries respectively).
2130         You can then use this to get a glib type to represent any arbitrary
2131         D-Bus struct type using dbus_g_type_get_struct. The only
2132         implementation of these types is with GValueArrays as before,
2133         but it's now possible to store these in arrays, emit them in
2134         signals, etc.
2135
2136 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2137
2138         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2139         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2140         <thiago.macieira at trolltech.com>
2141
2142 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2143
2144         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2145         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2146
2147 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2148
2149         * bus/connection.c (bus_connections_expect_reply): Make
2150         pending reply limit not common to all connections (Bug #5416)
2151         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2152
2153 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2154
2155         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2156
2157 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2158
2159         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2160         patch from Doug Goldstein <cardoe at gentoo.org>
2161
2162 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2163
2164         * mono/Arguments.cs: Fix a magic number in the mono bindings
2165         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2166
2167 2006-01-27  Robert McQueen  <robot101@debian.org>
2168
2169         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2170         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2171         when generating the client-side methods, instead of overloading
2172         CSymbol which broke everything horribly. My apologies.
2173
2174 2006-01-27  Robert McQueen  <robot101@debian.org>
2175
2176         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2177         by me and Rob Taylor to add a simple_free function to D-Bus map
2178         and collection types, which allows those types which can be freed
2179         with a GDestroyNotify (such as GHashTables and GArrays, but not
2180         GPtrArrays) to be stored as the values in hashtables.
2181
2182         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2183         Patch by Rob Taylor to add nested dicts to the glib tests to check
2184         the above code works, and appears not to leak when called repeatedly.
2185
2186 2006-01-27  Robert McQueen  <robot101@debian.org>
2187
2188         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2189         to free a D-Bus allocated string with dbus_free () instead of
2190         g_free ().
2191
2192 2006-01-27  Iain Holmes  <iain@openedhand.com>
2193
2194         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2195         method from being called multiple times.
2196
2197 2006-01-19  Robert McQueen  <robot101@debian.org>
2198
2199         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2200         <rob.taylor@collabora.co.uk> to add support for generating bindings
2201         to arrays that are represented as GPtrArrays rather than GArrays (ie
2202         size-variable things, such as strings, objects, structs, etc).
2203
2204 2006-01-05  Robert McQueen  <robot101@debian.org>
2205
2206         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2207         <ricardo.kekki@movial.fi> to make it possible to inherit from
2208         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2209         a private part, and moving the setting of the DBusGProxyManager into a
2210         connection property, allowing proper GObject construction.
2211
2212 2006-01-05  Robert McQueen  <robot101@debian.org>
2213
2214         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2215         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2216         annotations when generating glib client bindings.
2217
2218 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2219
2220         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2221
2222         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2223
2224 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2225
2226         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2227
2228 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2229
2230         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2231
2232 2005-12-19  Ross Burton  <ross@openedhand.com>
2233
2234         * doc/dbus-tutorial.xml:
2235         Document the Glib client-side bindings, and list all possible annotations.
2236
2237 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2238
2239         * dbus/bus.c (dbus_bus_release_name): Add documentation
2240
2241 2005-12-06  Robert McQueen  <robot101@debian.org>
2242
2243         * python/service.py: s/sucessful/successful/ so we're allocating to
2244         and reading from the same variable. Oops.
2245
2246 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2247
2248         * Released 0.60
2249
2250 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2251
2252         * test/qt/Makefile.am: build from srcdir
2253
2254         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2255         Note - this code is wrong and needs to be fixed by the Qt binding
2256         developers.  The flags should be treated as bitfields and not enums.
2257
2258         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2259
2260 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2261
2262         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2263           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2264           in production code
2265
2266 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2267
2268         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2269         method for getting messages off the bus in the absence of a
2270         mainloop.  This method is much like 
2271         dbus_connection_read_write_dispatch except it does not dispatch
2272         the messages to a registered filter function.  Instead it
2273         allows a developer to process messages by directly popping
2274         them off the bus.
2275
2276 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2277
2278         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2279         the parser to continue instead of returning error
2280         (bus_desktop_file_load): Do not free parser data when
2281         parse_section_start or parse_key_value fails because it was 
2282         already freed by parser_free (patch from Carlos Garcia Campos  
2283         <carlosgc at gnome.org>)
2284
2285 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2286
2287         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2288         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2289         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2290         test/test-segfault.c, test/test-utils.c,
2291         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2292         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2293         Various cleanup of dead code and compiler warnings (patch from
2294         Kjartan Maraas <kmaraas at gnome.org>) 
2295
2296 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2297
2298         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2299         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2300
2301 2005-11-27  Robert McQueen  <robot101@debian.org>
2302
2303         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2304         part of the preceding one. Oops. Merge patch by Johan Hedberg
2305         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2306         on big-endian platforms.
2307
2308         * test/python/test-client.py: Add some 16-bit integers to the test
2309         values.
2310
2311 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2312
2313         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2314         method return message for property getters
2315
2316 2005-11-27  Robert McQueen  <robot101@debian.org>
2317
2318         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2319         with type v of an instance of dbus.Variant(foo, type='x') caused
2320         it to be boxed twice before sending over the bus.
2321
2322         * python/dbus_bindings.pyx, python/service.py,
2323         test/python/test-client.py: Update the constants for the new
2324         request_name flags, and update comments/test cases now that queueing
2325         is the default action.
2326
2327 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2328
2329         * configure.in:
2330         - Change version to 0.60 for impending release
2331         - upped the sonames because of ABI and API breakage
2332
2333 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2334
2335         * configure.in: Add test/name-test/Makefile to the generated
2336         Makefile list
2337
2338         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2339         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2340         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2341         not to queue an ower if it can't be the primary owner
2342
2343         * bus/bus.h: Add new internal BusOwner struct
2344
2345         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2346         to bus_registry_ensure and don't set the prohibit_replacement flag
2347         since they are now set per BusOwner and not per name.
2348         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2349         that returns the list of connections in a name's connection queue
2350         
2351         * bus/services.c (struct BusService): remove prohibit_replacement field
2352         (struct BusOwner): new struct for keeping track of queued connections
2353         and their associated flags for the queue
2354         (struct BusRegistry): add a BusOwner memory pool
2355         (bus_registry_new): initialize the BusOwner memory pool
2356         (bus_registry_unref): free the BusOwner memory pool
2357         (_bus_service_find_owner_link): new internal method for
2358         searching the queue for a specific connection
2359         (bus_owner_set_flags): new method for adding setting the flags on a
2360         bus owner
2361         (bus_owner_new): new method that creates a BusOwner object from the
2362         pool and sets its flags
2363         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2364         (bus_registry_ensure): Add the flags parameter
2365         (bus_registry_acquire_service): Switch from using raw connections to
2366         using the BusOwner struct
2367         Add new state machine for dealing with the new set of flags
2368         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2369         cancel_ownership, free_ownership_cancel_data, 
2370         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2371         restore_ownership, free_ownership_restore_data, 
2372         add_restore_ownership_to_transaction): Switch to using BusOwner 
2373         instead of raw connections
2374         (bus_service_add_owner): Add flags parameter
2375         Switch to using BusOwner instead of raw connections
2376         Add state machine for dealing with the new set of flags
2377         (bus_service_swap_owner): Swaps the first and second owners in the
2378         queue.  Used to make sure proper signals are sent when a service looses 
2379         or gains primary ownership.  We never insert an owner at the top of the
2380         queue.  Instead we insert it in the second position and then swap.
2381         (bus_service_remove_owner): Remove the owner from the queue sending
2382         out the NameLost and NameOwnerChanged signals if the we were the 
2383         primary owner
2384         (bus_service_get_primary_owners_connection): New method that extracts
2385         the connection from the primary owner
2386         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2387         connection
2388         (bus_service_get_allow_replacement): Changed from the old 
2389         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2390         primary owner and returns if it can be replaced or not
2391         (bus_service_set_prohibit_replacement): removed
2392         (bus_service_has_owner): returns TRUE if and owner with
2393         the specified connection exists in the queue
2394         
2395         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2396         method that only compiles if tests are enabled.  Allows us to get the 
2397         unique name of a connection so we can check it against the queue when
2398         doing regression tests
2399
2400         * bus/activation.c (bus_activation_send_pending_auto_activate),
2401         bus/dispatch.c (bus_dispatch),  
2402         bus/driver.c (bus_driver_handle_get_service_owner, 
2403         bus_driver_handle_get_connection_unix_user, 
2404         bus_driver_handle_get_connection_unix_process_id,
2405         bus_driver_handle_get_connection_selinux_security_context),
2406         bus/signals.c (connection_is_primary_owner): 
2407         use bus_service_get_primary_owners_connection instead of
2408         bus_service_get_primary_owner
2409
2410         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2411         _dbus_listen_unix_socket): Calculate the length of the socket
2412         path and use that instead of using a fixed length which was
2413         causing socket names to contain many trailing Nul bytes.
2414
2415         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2416         (dbus_g_method_get_sender): New method for extracting the sender 
2417         from a DBusGMethodInvocation
2418         (dbus_g_method_return_get_reply): changed name to 
2419         dbus_g_method_get_reply
2420         (dbus_g_method_return_send_reply): changed name to
2421         dbus_g_method_send reply
2422
2423         * doc/dbus-specification.xml: New docs that describe how the new
2424         queueing system works and talks about the changes to the how
2425         we specify socket names
2426
2427         * glib/examples/example-service.c, 
2428         glib/examples/example-signal-emitter.c,
2429         glib/examples/statemachine/statemachine-server.c:
2430         Changed the RequestName flags to the new system
2431
2432         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2433         regression test suite for testing various states of the new
2434         queueing system
2435         
2436 2005-11-15  Robert McQueen  <robot101@debian.org>
2437
2438         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2439         Taylor to add two methods, dbus_g_method_return_get_reply and
2440         dbus_g_method_return_send_reply, to allow you to get the reply
2441         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2442         and send it. The GLib bindings can't marshal a return value of
2443         something like a(s) if the array is empty - ultimately they should be
2444         made to heed the signature of the out arguments as the Python bindings
2445         now can, but this is a workable interim solution which might have
2446         other applications.
2447
2448 2005-11-15  Robert McQueen  <robot101@debian.org>
2449
2450         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2451         method to org.freedesktop.DBus to release a bus name or give up
2452         waiting in the queue for it.
2453
2454         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2455         dbus_bus_release_name method to send the ReleaseName method calls.
2456         Add constants for the return values to dbus/dbus-shared.h.
2457
2458         * doc/dbus-specification.xml: Document the new ReleaseName method
2459         in the specification.
2460
2461         * python/dbus_bindings.pyx: Add a low-level python binding for the
2462         release name method.
2463
2464         * python/exceptions.py, python/service.py: Make freeing BusName
2465         objects release the name. Add a NameExistsException, and fix a
2466         bug with creating UnknownMethodException.
2467
2468         * test/python/test-client.py: Add tests for freeing BusName
2469         objects causing names to be released.
2470
2471 2005-11-14  Robert McQueen  <robot101@debian.org>
2472
2473         * python/service.py: Include the traceback in the error reply when we
2474         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2475
2476 2005-11-14  David Zeuthen  <davidz@redhat.com>
2477
2478         Patch from Timo Hoenig <thoenig@suse.de>.
2479
2480         * bus/bus.c: I've recently investigated why the automatic reload
2481         of configuration files does not work as expected.
2482
2483         Currently, reloading configuration files does only work when
2484         running dbus-daemon with --nodaemon.  If we are running as daemon
2485         we're hitting a dnotify bug once we fork the process.
2486
2487         We're initializing the dnotify fds before calling fork().  Once
2488         the child process forked it does still have the fds (and they
2489         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2490         getting SIGIO as changes are made to the configuration files.
2491
2492         The attached patch moves the initialization of the dnotify fds to
2493         process_config_postinit().  This is safe for all current code
2494         paths and solves the dnotify disfunction.  If we're running
2495         dbus-daemon as daemon the fds for dnotify are now being
2496         initialized after fork() for the child process.
2497
2498         * configure.in: The current configure.in check for dnotify probes
2499         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2500         match for 'xlinux', too. Additionally I have adapted the configure
2501         option's style to match with the others.
2502
2503 2005-11-14  Robert McQueen  <robot101@debian.org>
2504
2505         * python/decorators.py, python/service.py: Add a new argument to the
2506         dbus.service.method decorator called sender_keyword, which if set,
2507         specifies the name of an argument which will be provided the bus
2508         name of the method caller.
2509
2510         * test/python/test-client.py, test/python/test-service.py: Add a
2511         method and test to check the sender_keyword functionality.
2512
2513 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2514
2515         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2516         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2517         Simons <sjoerd at luon.net>)
2518
2519         * AUTHORS: Add Robert McQueen for his work on the Python
2520         Bindings and other parts of D-Bus
2521
2522 2005-11-07  Robert McQueen  <robot101@debian.org>
2523
2524         * python/decorators.py: Change emit_signal function to use the
2525         signature annotation of the signal when marhsalling the arguments from
2526         the service. Fix a bug where the code checking signature length
2527         against argument length referenced the wrong variable.
2528
2529         * python/introspect_parser.py: Avoid adding the type signature of
2530         signal arguments to any methods which occur after them in the
2531         introspection data (!) by making the parser a little more careful
2532         about its current state.
2533
2534         * python/service.py: Remove debug prints from last commit (again :D).
2535
2536         * test/python/test-client.py, test/python/test-service.py: Add test
2537         signals with signature decorators to test the strict marshalling code
2538         gives errors at the right time. Could do with checking the signals
2539         actually get emitted too, given that the test does nothing with
2540         signals at the moment...
2541
2542 2005-11-07  Robert McQueen  <robot101@debian.org>
2543
2544         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2545         instances to stop madness of creating new instances representing
2546         the same bus connection all the time, rendering any tracking of
2547         match rules and bus names quite meaningless. Caught a bug where
2548         the private argument to SessionBus() and friends was being passed
2549         in as use_default_mainloop by mistake. Still some problems with
2550         multiple dbus_binding.Connection instances representing the same
2551         low-level connection (eg when you use both SessionBus() and
2552         StarterBus() in same process), but it's a lot better now than it
2553         was.
2554
2555         * python/dbus_bindings.pyx: Add constants with the return values
2556         for bus_request_name().
2557
2558         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2559         and retrieve the same instances for the same name, so deletion can be
2560         done with refcounting. Also now throws some kind of error if you
2561         don't actually get the name you requested, unlike previously...
2562
2563         * test/python/test-client.py: Add tests for instance caching of buses
2564         and bus name objects.
2565
2566 2005-11-04  Robert McQueen  <robot101@debian.org>
2567
2568         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2569         marshalling of boolean values. Add some booleans to the values in
2570         the test client.
2571
2572         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2573         argument to the dbus.service.method decorator, which allows you to
2574         name arguments to take two callback functions for replying with
2575         return values or an exception.
2576
2577         * test/python/test-client.py, test/python/test-service.py: Add test
2578         case using asynchronous method reply functions, both return values and
2579         errors, and from within both the function itself and from a mainloop
2580         callback.
2581
2582         * python/decorators.py, python/service.py: Perform checking that the
2583         number of method/signal arguments matches the number of types in the
2584         signature at class loading time, not when you first introspect the
2585         class.
2586
2587         * python/service.py: Remove debug print left by the last commit.
2588
2589 2005-11-03  Robert McQueen  <robot101@debian.org>
2590
2591         * python/service.py: Heavy refactoring of method invocation, with
2592         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2593         in favour of a new _message_cb that uses seperate functions for
2594         looking up the method to call, marshalling the return values, and
2595         sending exceptions as errors, and is easier to follow as a
2596         consequence.  Fixes some corner cases about returning things that
2597         don't match your declared out_signature, allows exceptions to define
2598         _dbus_error_name and have it be sent over the bus as the error name,
2599         and paves the way for cool stuff like heeding the message no reply
2600         flag, asynchronous method implementations, informing the method of the
2601         sender, and including backtraces in the error messages.
2602
2603         * test/python/test-client.py: Catch and print exceptions thrown in the
2604         async callback tests, rather than passing them to the low-level
2605         bindings to be ignored in a noisy and frustrating manner.
2606
2607 2005-11-03  Robert McQueen  <robot101@debian.org>
2608
2609         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2610         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2611         tweak others to be consistent.
2612
2613         * test/python/test-client.py: Tweak output of testInheritance.
2614
2615 2005-10-29  Robert McQueen  <robot101@debian.org>
2616
2617         * python/service.py: Major changes to allow multiple inheritance
2618         from classes that define D-Bus interfaces:
2619         
2620          1. Create a new Interface class which is the parent class of
2621             Object, and make the ObjectType metaclass into InterfaceType.
2622         
2623          2. Patch written with Rob Taylor to replace use of method_vtable
2624             with code that walks the class's __MRO__ (method resolution order)
2625             to behave like Python does when invoking methods and allow
2626             overriding as you'd expect. Code is quite tricky because
2627             we have to find two methods, the one to invoke which has the
2628             right name and isn't decorated with the /wrong/ interface,
2629             and the one to pick up the signatures from which is decorated
2630             with the right interface.
2631         
2632             The same caveats apply as to normal multiple inheritance -
2633             this has undefined behaviour if you try and inherit from two
2634             classes that define a method with the same name but are
2635             decorated with different interfaces. You should decorate
2636             your overriding method with the interface you want.
2637         
2638          3. Replace grungy introspection XML generation code in the metaclass
2639             with dictionaries that cope correctly with multiple inheritance
2640             and the overriding of methods. This also uses the signature
2641             decorations to provide correct introspection data, including
2642             the debut appearance of the types of your return values. :D
2643
2644         * test/python/test-client.py, test/python/test-service.py: Add a test
2645         case to try invoking an method that overrides one inherited from a
2646         D-Bus interface class.
2647
2648 2005-10-29  Robert McQueen  <robot101@debian.org>
2649
2650         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2651         Add checking for the end of struct character when marshalling a
2652         struct in MessageIter.append_strict.
2653
2654         * python/examples/example-service.py,
2655         python/examples/gconf-proxy-service.py,
2656         python/examples/gconf-proxy-service2.py: Update to use gobject
2657         mainloop directly rather than appearing to depend on gtk.
2658
2659         * python/test/test-client.py, python/test/test-server.py: Remove
2660         obsolete and broken test scripts for old bindings. We have up to date
2661         and working tests in test/python/.
2662
2663 2005-10-29  Robert McQueen  <robot101@debian.org>
2664
2665         * python/decorators.py: Add optional arguments to the method and
2666         signal decorators to allow you to specify the signature of arguments
2667         and return values. Preserve the doc strings of signal functions in the
2668         decorated version, for pydoc and friends.
2669
2670         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2671         parse_signature_block function with an iterable dbus.Signature()
2672         type. Fix a bug in MessageIter.append_strict where you could append
2673         anything by claiming it was a string.
2674
2675         * python/service.py: Use the out_signature decoration on methods to
2676         marshal return values, meaning you no longer require dbus.Array()
2677         or dbus.Dictionary() to indicate the type when returning empty
2678         arrays or dictionaries. Fix a bug where exceptions which are defined
2679         in __main__ are not turned into error replies.
2680
2681         * test/python/test-client.py, test/python/test-service.py: Add test
2682         for correct marshalling of return values according to out_signature.
2683         Fix a bug in the async call test where the error_handler is missing a
2684         self argument.
2685
2686 2005-10-29  Robert McQueen  <robot101@debian.org>
2687
2688         * glib/Makefile.am, glib/examples/Makefile.am,
2689         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2690         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2691
2692         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2693
2694         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2695         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2696         the command line.
2697
2698 2005-10-27  Ross Burton  <ross@openedhand.com>
2699
2700         * dbus/dbus-marshal-header.c:
2701         Remove dead code.
2702
2703         * glib/dbus-gobject.c:
2704         Stop compiler warning.
2705
2706 2005-10-25  Ross Burton  <ross@openedhand.com>
2707
2708         * dbus/dbus-auth.c:
2709         * dbus/dbus-server-unix.c:
2710         * dbus/dbus-transport-unix.c:
2711         * glib/dbus-gmain.c:
2712         * glib/dbus-gobject.c:
2713         Add some const keywords.
2714
2715 2005-10-25  Ross Burton  <ross@openedhand.com>
2716
2717         * doc/dbus-specification.xml:
2718         Document the NoReply annotation.
2719
2720         * glib/dbus-binding-tool-glib.h:
2721         * glib/dbus-binding-tool-glib.c:
2722         Respect the NoReply annotation.
2723
2724 2005-10-24  Robert McQueen <robot101@debian.org>
2725
2726         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2727         derive from unicode instead of str, and encode/decode UTF-8 when
2728         marshalling/unmarshalling bus messages
2729
2730         * python/introspect_parser.py: encode introspection data as UTF-8
2731         before passing the buffer into libxml2
2732
2733         * test/python/test-client.py: add unicode test strings
2734
2735         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2736         ignore generated python test files
2737
2738 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2739
2740         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2741         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2742         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2743
2744         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2745         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2746         when constructing struct signatures
2747
2748         * python/_dbus.py (Bus): handle private connections using the
2749         private keyword in the constructor. defaults to private=False
2750         (Bus::close): new method to close a connection to the bus
2751
2752         * python/dbus_bindings.pyx (Connection::close): renamed method
2753         was previously called disconnect
2754         (bus_get): now supports getting a private connection
2755
2756         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2757         keyword is set to True.  if it is, execute the method without waiting
2758         for a reply
2759         (ProxyObject::_introspect_execute_queue): new method for executing
2760         all the pending methods that were waiting for the introspect to
2761         finish.  this is called when introspect either succeeds or fails
2762         (ProxyObject::_introspect_error_handler): call queued methods
2763
2764 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2765
2766         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2767         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2768
2769         * python/service.py (Object::_message_cb): handle exceptions correctly
2770         by sending them over the wire to the calling app.  This makes sure
2771         the client returns immediately instead of waiting the 15 seconds to
2772         timeout.
2773
2774         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2775         Add a test to benchmark how long it takes to introspect a service and 
2776         call a method which returns a large element (pretty fast)
2777
2778         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2779         method which pushes a lot of data
2780
2781 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2782
2783         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2784         reclaim memory outside of the loop and use del istead of just setting
2785         the key to None
2786
2787 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2788
2789         * python/service.py (ObjectType::_reflect_on_signal): Always close
2790         signal tag even when there are no arguments
2791
2792 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2793
2794         * configure.in: Set mono, mono-docs and Qt3 to default
2795         to no instead of auto when building.  These bindings do not
2796         have full time maintainers and will not be supported for the
2797         1.0 release.
2798
2799 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2800
2801         patches from Michael Krivoruchko <misha at sun.com>: 
2802         
2803         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2804         _dbus_connection_message_sent, 
2805         _dbus_connection_send_preallocated_unlocked_no_update, 
2806         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2807         is NULL when calling _dbus_verbose
2808
2809         * configure.in: check for functions getpeerucred and getpeereid
2810
2811         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2812         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2813         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2814         Patch was only tested on Solaris 10 x86 so it might be issues
2815         with other platforms (i.e. BSDs and MacOSX)
2816         
2817
2818 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2819
2820         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2821         instead of marshal basic so we can handle recursive types in a variant
2822
2823         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2824         in variants
2825
2826         * test/glib/test-service-glib.c, test-service-glib.xml
2827         (my_object_echo_variant [EchoVariant], 
2828         my_object_process_variant_of_array_of_ints123
2829         [ProcessVariantOfArrayOfInts123]): 
2830         Add two test methods
2831
2832         * python/introspect_parser.py: New module for parsing introspect
2833         data.
2834
2835         * python/dbus_bindings.pyx:
2836         (various places): when throwing errors fix to use errormsg instead 
2837         of message local variable because Pyrex can get confused with other 
2838         message variables (initial patch by Robert McQueen 
2839         <robert.mcqueen at collabora.co.uk>)
2840         (MessageIter::parse_signature_block): new method for getting the next
2841         block in a signiture.
2842         (MessageIter::append_strict): new method for appending values strictly
2843         using the passed in signature instead of guessing at the type
2844         (MessageItter:: append_dict, append_struct, append_array): use 
2845         signatures to marshal children if the signature is available
2846         
2847         * python/exceptions.py (IntrospectionParserException): new exception
2848
2849         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2850         introspected signatures if available, else we fall back to the
2851         old way of doing things.
2852         (ProxyObject::_introspect_reply_handler ): parse introspection data
2853         
2854         * python/service.py (ObjectType::_reflect_on_method): Properly
2855         terminate <method> if there are no args in the reflection data
2856
2857         * test/python/test-client.py: add tests for talking with the GLib
2858         test server.  This gives us better coverage for introspection since
2859         python to python will always generate arguments as variants.  It also
2860         allows us to test the robustness of the GLib bindings and interlanguage
2861         communications.
2862
2863         
2864 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2865
2866         * bus/driver.c (bus_driver_handle_introspect): Add signals
2867         to the introspect data. (patch from Daniel P. Berrange 
2868         <dan at berrange.com>)
2869
2870         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2871         
2872         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2873         _dbus_connection_run_builtin_filters): Changed these to
2874         be unlock_no_update functions and call 
2875         _dbus_connection_send_unlocked_no_update instead of
2876         dbus_connection_send to avoid locking errors.
2877         
2878         * doc/TODO: Removed the make Ping test TODO
2879         
2880 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2881
2882         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2883         We now copy the message from a DBusError and then free 
2884         the error object befor throwing the error
2885
2886         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2887         DBusBindingOutputMode enum which was causing a warning.
2888         #include <time.h> so using time_t is explicitly defined
2889
2890 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2891
2892         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2893         - dbus/dbus-bus.c
2894         (internal_bus_get): new method that take over the heavy lifting
2895         of dbus_bus_get and adds the ability to get a private connection
2896         to the bus
2897         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2898         interface as in previous versions
2899         (dbus_bus_get_private): new method that is a wrapper to 
2900         internal_bus_get to get a private connection to the bus
2901
2902         - dbus/dbus-bus.h
2903         (dbus_bus_get_private): add as a public libdbus interface
2904
2905         - dbus-1.pc.in: output system_bus_default_address and 
2906         sysconfdir variables so apps can use them when compiling
2907
2908 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2909         * dbus/qt: New Qt bindings
2910
2911 2005-09-12  Waldo Bastian  <bastian@kde.org>
2912
2913         * dbus/dbus-marshal-validate.c,
2914         doc/dbus-specification.xml, test/Makefile.am,
2915         test/test-names.c: allow hyphens in bus names.
2916
2917 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2918
2919         * test/data/auth/fallback.auth-script: we don't
2920         retry the EXTERNAL method when we know its going
2921         to fail anymore.
2922
2923 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2924
2925         * dbus/dbus-connection-internal.h: rename
2926         (add|remove|toggle)_(watch|timeout) to unlocked()
2927         
2928         * dbus/dbus-connection.c: ditto.
2929         
2930         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2931         Update some callers for the renaming.
2932
2933 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2934
2935         * dbus/dbus-auth.c: (record_mechanisms): don't
2936         retry the first auth mechanism because we know
2937         we're just going to get rejected again.
2938         
2939         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2940         Fix thinko ... and what a nasty little bugger to
2941         track down you were ...
2942
2943         * dbus/dbus-connection.c:
2944         (_dbus_connection_add_watch),
2945         (_dbus_connection_remove_watch): add note about
2946         these needing the connection to be locked.
2947         (_dbus_connection_get_dispatch_status_unlocked):
2948         set status to DATA_REMAINS when we queue the
2949         disconnected message.
2950         
2951         * bus/dispatch.c:
2952         (bus_dispatch): fix warning.
2953         (check_existent_service_no_auto_start):
2954         Expect ChildSignaled error too.
2955         (check_existent_hello_from_self): fix another
2956         couple of warnings.
2957         
2958 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2959
2960         Patches from James Willcox <snorp@snorp.net>
2961
2962         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2963
2964         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2965         support array "out" parameters.
2966
2967         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2968         for 16-bit int support.
2969
2970 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2971
2972         * Released 0.50
2973
2974         * Patch from Steve Grubb:
2975         - bus/activation.c (bus_activation_service_reload_test): clean up
2976         some indentation
2977         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2978         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2979         buffer overflows in the test suite.  This is non critical because
2980         it can not be exploited and this code is only run when doing a 
2981         make check.
2982
2983         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2984         - configure.in: Don't check and link against kdecore, only qt headers
2985         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2986         - gcj/org/freedesktop/dbus/Makefile.am:
2987         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2988         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2989         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2990         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2991         - tools/Makefile.am: Add platform extentions to binaries 
2992         (i.e. .exe on windows)
2993
2994         * configure.in: 
2995         - Make it so if no suitable version of python is found we only 
2996         disable building python instead of exiting the configure script
2997         - Require version 2.4 of glib for glib bindings
2998         - Up version to 0.50
2999
3000         * python/__init__.py: Sync version with libdbus to (0,50,0)
3001         
3002 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3003
3004         * dbus/dbus-object-tree.c (find_subtree_recurse):
3005         a couple of optimizations (bug #710):
3006         - do a binary search in the tree
3007         - insert a new child at the right place directly, no need for
3008           qsort anymore
3009         - do the "double alloc" thing when allocating children
3010
3011 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3012
3013         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3014
3015         * python/dbus_bindings.pyx: Memory management foo
3016         (global): remove hacky _user_data_references global list
3017         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3018         tuples. Unref user_data
3019         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3020         (Connection::__del__): Remove and replace with __dealloc__ method
3021         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3022         to keep tuple from being deallocated instead of the global var hack
3023         (Connection::register_object_path): Stuff user_data into a tuple.
3024         Use Py_INCREF to keep tuple from being deallocated instead of the 
3025         global var hack
3026         (Connection::register_fallback): Stuff user_data into a tuple.
3027         Use Py_INCREF to keep tuple from being deallocated instead of the 
3028         global var hack
3029         (GIL_safe_pending_call_notification): Don't unref the message
3030         because it gets unreffed when going out of scope.  Py_XDECREF
3031         the user_data
3032         (PendingCall::__del__): Remove and replace with __dealloc__ method
3033         (PendingCall::set_notify): ref the pending call because we will
3034         need it to stick around for when the notify callback gets called
3035         (Message::__del__): Remove and replace with __dealloc__ method
3036
3037         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3038         gthreads_init to match up with the dbus call
3039
3040         * python/glib.py (init_threads): Changed to threads_init to match
3041         up with gobject.threads_init().  init_threads is kept for backwards
3042         compat but will most likely be deprecated in the future
3043
3044         * test/python/test-client.py: 
3045         - revamp to use Python's unittest functionality
3046         - add async call tests
3047         - setup threads in glib and dbus so we make sure locks are working
3048         
3049 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3050
3051         * python/dbus_bindings.pyx 
3052         (_pending_call_notification, cunregister_function_handler, 
3053         cmessage_function_handler): All callback functions have been rearranged 
3054         to workaround a bug in Pyrex when working with the GIL which is Python's 
3055         global lock when dealing with threads.  They have been split into
3056         a wrapper function (which assumes the name of the old function) and
3057         a _GIL_safe_<function name> function which contains the functionality
3058         of the old function.  This ensures that Pyrex does not write code
3059         the lock is released.
3060         
3061
3062 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3063
3064         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3065         GIL global lock when calling back into Python
3066
3067 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3068
3069         * Release 0.36.2
3070
3071         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3072
3073         * bus/policy.c (bus_policy_allow_user): change default "user is
3074         allowed" to be "user has same uid as the bus itself"; any
3075         allow/deny rules will override.
3076
3077         * bus/session.conf.in: don't allow all users, since now by default
3078         the user that ran the bus can connect.
3079
3080 2005-08-26  Colin Walters  <walters@verbum.org>
3081
3082         * tools/dbus-print-message.c (print_message): Flush stdout
3083         after printing a message, so that redirecting to a file, then
3084         hitting Ctrl-C works.
3085
3086 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3087
3088         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3089         (EmptyMessage): new class that subclasses Message.  This is a workaround
3090         to a Pyrex bug that fails to call __del__ when the Message object goes out
3091         of scope.  For some reason subclassing Message fixes this bug
3092         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3093         - s/Message(_create=0)/EmptyMessage everywhere else
3094         
3095         * test/python/test-{server|client}.py: add the python/.libs directory
3096         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3097         get picked up from the system
3098
3099 2005-08-25  Colin Walters  <walters@verbum.org>
3100
3101         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3102         to Ryan Lortie for the suggestion.
3103
3104 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3105
3106         * test/python: Add python regression test
3107
3108         * configure.in: Add test/python/Makefile
3109
3110         * test/Makefile.am: Add the python directory to SUBDIRS
3111
3112 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3113
3114         * Release 0.36.1
3115
3116         * python/_dbus.py: 
3117         (Interface::connect_to_signal): propigate keywords for match on args
3118         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3119
3120         * python/proxies.py (ProxyObject::connect_to_signal):
3121         propigate keywords for match on args
3122
3123         * Makefile.am: point everything to pyexecdir since python borks
3124         on multilib
3125
3126 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3127
3128         * Release 0.36
3129
3130 2005-08-23  Colin Walters  <walters@verbum.org>
3131
3132         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3133
3134 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3135
3136         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3137         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3138         of defining DBusConnection ourselves.
3139
3140 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3141
3142         * python/dbus.pth: New path file to fix up problems when installing
3143         c libraries to lib64 and python files to lib.
3144
3145         * python/Makefile.am: install dbus.pth in the correct spot
3146
3147 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3148         * ChangeLog: clean up my last entry a bit
3149
3150         * doc/introspect.xsl: New stylesheet for converting introspection data
3151         into browser renderable xhtml. Contributed by Lennart Poettering.
3152
3153         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3154         Poettering.
3155
3156         * doc/dbus-tutorial.xml: 
3157         - Add Colin Walter to the Authors section for authoring the GLib
3158         section
3159         - Add descriptions of the new signature and type functionality
3160         in the Python complex type mapping section
3161         - Add a sidenote on the new args matching functionality in 
3162         the Python bindings
3163         - Fixed up some of the examples to use the gobject.MainLoop
3164         instead of gtk.main
3165         
3166         * python/_dbus.py:
3167         (Bus::_create_args_dict): New. Converts a hash of arg matches
3168         to a more useable format
3169         (Bus::add_signal_receiver): add a **keywords parameter for catching
3170         arg match parameters
3171         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3172         arg match parameters
3173         
3174         * python/matchrules.py:
3175         (MatchTree::exec_matches): Check for arg matches
3176         (SignalMatchRule::add_args_match): New method
3177         (SignalMatchRule::execute): Added args_list parameter as an optimization
3178         so we don't have to marshal the args more than once
3179         (SignalMatchRule::match_args_from_list): New method that checks to see
3180         if the rule's arg matches match an argument list.  Only arguments
3181         set in the rule are checked.
3182         (SignalMatchRule::match_args_from_rule): New method that checks to see
3183         if the rule's arg matches match another rule's.  All args have to match
3184         in order for this method to return true.  If either rule has more args
3185         then it is not a match.
3186         (SignalMatchRule::is_match): Add args match
3187         (SignalMatchRule::repr): Add args to the final output if they exist
3188
3189 2005-08-17  Ross Burton  <ross@burtonini.com>
3190
3191         * glib/dbus-gproxy.c:
3192         (dbus_g_proxy_call_no_reply): unref the message once sent.
3193         (dbus_g_proxy_call): protect against NULL proxy.
3194
3195 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3196
3197         * python/__init__.py: Version updated (0, 43, 0)
3198         
3199         * python/dbus_bindings.pyx: 
3200         - Fixed type objects to have self passed into __init__
3201         - Added the Variant type
3202         - Add the ability to specify types or signatures for Array, Variant 
3203         and Dictionary
3204         (Connection::send_with_reply_handlers): return a PendingCall object
3205         (_pending_call_notification): handle the case when an error is returned 
3206         without an error message in the body
3207         (MessageIter::get_boolean): return True or False instead of an integer
3208         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3209         and add checks for objects with embeded signatures or types (Array, 
3210         Variant and Dictionary)
3211         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3212         (MessageIter::append_dict): handle embeded types or signatures
3213         (MessageIter::append_array): handle embeded types or signatures
3214         (MessageIter::append_variant): new method
3215         
3216         * python/proxies.py:
3217         (DeferedMethod): New. Dummy executable object used when queuing calls 
3218         blocking on introspection data
3219         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3220         or shorter timeouts for method calls
3221         (ProxyObject): Add first pass at an introspection state machine
3222         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3223         introspection. 
3224         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3225         the usual mechanisms for sending messages.  This is to avoid a deadlock
3226         where the Intospect call would be queued waiting for the Introspect 
3227         call to finish ;-)
3228         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3229         when introspection returns with no error
3230         (ProxyObject::_introspect_error_handler): New.  This method is called 
3231         when introspection encounters an error
3232         (ProxyObject::__getattr__): Code to handle different introspection 
3233         states.  Queue async calls or block blocking calls if we are 
3234         introspecting.  Pass through as normal if we are not or are done with 
3235         introspecting.
3236         
3237         * python/service.py: Import signal and method from decorators.py
3238
3239         * python/types.py: Add Variant type
3240
3241 2005-08-16  Colin Walters  <walters@verbum.org>
3242
3243         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3244         DBusError message is NULL.
3245
3246 2005-08-09  Havoc Pennington  <hp@redhat.com>
3247
3248         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3249         malloc'd copy of the name parameter
3250
3251 2005-08-09  Havoc Pennington  <hp@redhat.com>
3252
3253         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3254         warning if the reply serial is set to 0
3255
3256 2005-08-04  Colin Walters  <walters@verbum.org>
3257
3258         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3259         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3260         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3261         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3262         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3263         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3264         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3265         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3266         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3267         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3268         
3269         Prefix name with _ to ensure they're not exported.  All callers
3270         updated.
3271
3272         * glib/dbus-gvalue.c (typecode_to_gtype)
3273         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3274         (signature_iter_to_g_type_dict)
3275         (signature_iter_to_g_type_array)
3276         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3277         (dbus_gtypes_from_arg_signature):
3278         Move to dbus-gsignature.c.
3279
3280         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3281         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3282         (dbus_binding_tool_output_glib_client): Ditto.
3283
3284         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3285         and dbus-gsignature.h
3286
3287         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3288         unused variable.
3289
3290 2005-08-03  Colin Walters  <walters@verbum.org>
3291
3292         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3293         catch any incompatible changes accidentally made.
3294
3295 2005-08-03  Havoc Pennington  <hp@redhat.com>
3296
3297         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3298         typo, from Julien Puydt
3299
3300         * bus/connection.c (bus_connection_disconnected): we were always
3301         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3302
3303 2005-08-01  Colin Walters  <walters@verbum.org>
3304
3305         Patch from Joe Markus Clarke:   
3306         
3307         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3308         use-after-free.
3309
3310 2005-08-01  Colin Walters  <walters@verbum.org>
3311         
3312         Patch from Joe Markus Clarke:   
3313         
3314         * tools/dbus-send.c (main): 
3315         
3316         Don't use C99 style initializers (bug #3933).
3317         
3318 2005-08-01  Colin Walters  <walters@verbum.org>
3319
3320         Patch from Joe Markus Clarke:   
3321
3322         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3323         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3324         * glib/dbus-gobject.c (write_interface):
3325
3326         Don't use C99 style initializers (bug #3933).
3327
3328 2005-07-31  Havoc Pennington  <hp@redhat.com>
3329
3330         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3331         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3332
3333 2005-07-30  Havoc Pennington  <hp@redhat.com>
3334
3335         * fix a bunch of Doxygen warnings and mistakes
3336
3337 2005-07-30  Havoc Pennington  <hp@redhat.com>
3338
3339         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3340         DBUS_BUILD_TESTS since it's now used in production code
3341
3342 2005-07-29  Havoc Pennington  <hp@redhat.com>
3343
3344         * test/glib/test-profile.c (write_junk): initialize the junk
3345         buffer so valgrind doesn't have a breakdown
3346
3347 2005-07-29  Havoc Pennington  <hp@redhat.com>
3348
3349         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3350         (match_rule_matches): remove unused arg
3351         (test_matching): add tests for match_rule_matches()
3352
3353         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3354         do arg0='foo' arg5='bar' in the match rules
3355         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3356
3357         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3358
3359 2005-07-29  Ross Burton  <ross@openedhand.com>
3360
3361         * dbus/dbus-connection.c:
3362         Don't create a DBusCondVar which is never used.
3363
3364 2005-07-27  Ross Burton  <ross@openedhand.com>
3365
3366         * dbus/dbus-message.c:
3367         Reduce the size of the maximum cached message to 10K.
3368
3369 2005-07-25  Ross Burton  <ross@openedhand.com>
3370
3371         * glib/dbus-gproxy.c:
3372         Remove matches when all proxies are unregistered.
3373
3374 2005-07-24  Colin Walters  <walters@verbum.org>
3375
3376         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3377         typedata; recursive arrays won't have it.
3378
3379         * test/glib/test-dbus-glib.c:
3380         * test/glib/test-service-glib.c:
3381         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3382         
3383 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3384
3385         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3386         proxies.py, service.py: Cleanup of code after running it through the
3387         pyflakes code checker mostly dealing with undefined names.  
3388         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3389
3390 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3391
3392         * NEWS: Update to 0.35.2
3393
3394 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3395
3396         * python/_dbus.py: Remove import of the dbus.services
3397         module as it no longer exists (patch from Dimitur Kirov)
3398
3399         * python/service.py (Object::__init__): Fixed typo
3400         s/name/bus_name (patch from Dimitur Kirov)
3401
3402         * python/examples/example-signal-emitter.py: import dbus.glib
3403         to get the main loop and use glib mainloop instead of gtk so
3404         X doesn't have to be running.
3405
3406         * python/examples/example-signal-recipient.py: import dbus.glib
3407         to get the main loop and use glib mainloop instead of gtk so
3408         X doesn't have to be running. Import the decorators module
3409         directly.
3410
3411         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3412         didn't pick up on but are needed to build
3413
3414         * configure.in: upped version to 0.35.2
3415
3416         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3417         added Colin Walters' SELinux API rename patch from head 
3418         s/unix sercurity context/selinux security context/
3419
3420 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3421
3422         * python/Makefile.am: dbus_binding.pxd.in should be included 
3423         in EXTRA_DIST not dbus_binding.pxd
3424         fix up $(srcdir) hopefully for the last time
3425
3426         * NEWS: Update to 0.35.1
3427
3428 2005-07-16  Colin Walters  <walters@verbum.org>
3429
3430         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3431         from bus_driver_handle_get_connection_unix_security_context.  Update for
3432         error usage.
3433         (message_handlers): Update for renames.
3434
3435         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3436         _dbus_string_init failure correctly.
3437         (bus_selinux_append_context): Convert SID to context.  Append it
3438         as a byte array.
3439         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3440         hasn't been called.
3441
3442         * bus/selinux.h: Update prototype.
3443
3444         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3445         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3446
3447 2005-07-15  Colin Walters  <walters@verbum.org>
3448
3449         * doc/TODO: Add note about convenience wrappers.
3450
3451 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3452
3453         * NEWS: Update to 0.35
3454
3455 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3456
3457         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3458         so distcheck doesn't fail
3459
3460         * glib/examples/Makefile.am: Add example-service.xml and 
3461         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3462
3463         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3464         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3465
3466         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3467         compiler looks in the right places during distcheck
3468
3469 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3470
3471         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3472         to fail
3473
3474 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3475
3476         * python/examples/example-service.py,
3477         python/examples/example-signal-emitter.py: Fixed up examples
3478         for API changes
3479
3480 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3481
3482         * python/__init__.py: Upped to version (0,42,0) because of
3483         the API change
3484
3485 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3486
3487         * ChangeLog: fix date in last entry
3488
3489         * configure.in, bus/system.conf.in: add the ability to configure 
3490         the system bus user at compiletime with the --with-dbus-user flag
3491         (patch from Kristof Vansant)
3492
3493 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3494
3495         * bus/dispatch.c, test/test-service.c: Add testcase
3496         for sending messages to oneself (TODO item).
3497
3498         * python/service.py (class Object): Swap ordering of bus_name 
3499         and object_path parameters to better support inheritance.
3500
3501         * doc/dbus-tutorial.xml: change Python docs to reflect change
3502         in parameter ordering and fix the inheritance section.
3503
3504         * doc/TODO: remove sending message to oneself TODO item
3505
3506 2005-07-15  Ross Burton  <ross@openedhand.com>
3507
3508         * glib/dbus-gproxy.c:
3509         Fix a leak when calling methods via the proxy.
3510
3511 2005-07-15  Colin Walters  <walters@verbum.org>
3512
3513         * bus/selinux.c (bus_selinux_append_context): Wrap in
3514         HAVE_SELINUX.
3515
3516 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3517
3518         * python/_dbus.py (Bus::remove_signal_receiver):
3519         don't add a callback to the match if none has been passed in
3520         
3521         * python/matchrules.py (SignalMatchTree::remove): if the rule
3522         being matched does not have a callback treat it as a wildcard
3523         fix matching logic
3524
3525         * doc/dbus-tutorial.xml: Add Python tutorial
3526
3527 2005-07-14  Colin Walters  <walters@verbum.org>
3528
3529         * bus/driver.c
3530         (bus_driver_handle_get_connection_unix_security_context): New function.
3531         (message_handlers): Add.
3532
3533         * bus/selinux.c (bus_selinux_append_context): New function; appends
3534         security context to message.
3535
3536         * bus/selinux.h: Prototype.
3537
3538         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3539
3540 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3541
3542         * bus/activation.c: clean up all tabs to be 8 spaces 
3543         (bus_activation_activate_service): make sure we clean up
3544         if activation fails
3545
3546         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3547         (check_shell_fail_service_auto_start): New function
3548         tests to make sure we get fail properly when trying to auto start a service
3549         with a faulty command line
3550         (check_shell_service_success_auto_start): New function tests to make sure
3551         auto started services get the arguments on the command line
3552
3553         * test/test-shell-service.c: Added service for testing auto-starting with 
3554         command line arguments
3555
3556         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3557         test/data/valid-service-files/debug-shell-echo-success.service.in:
3558         Added service files for testing auto-starting with command line arguments
3559
3560         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3561
3562 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3563
3564         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3565         
3566         * dbus/Makefile.am: added new files to build.
3567
3568         * bus/activation.c (bus_activation_activate_service): support
3569         activation commands with parameters.
3570
3571         * test/shell-test.c: added test program for the shell parsing
3572         code.
3573
3574 2005-07-13  David Zeuthen  <davidz@redhat.com>
3575
3576         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3577         64 bit signed and unsigned parameters
3578
3579 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3580
3581         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3582
3583         * python/service.py (class Name): renamed BusName to make it clearer
3584         what the object is for (a name on the bus)
3585
3586         * python/examples/example-service.py,
3587         python/examples/example-signal-emitter.py: change the Name object to
3588         BusName
3589
3590 2005-07-12  Colin Walters  <walters@verbum.org>
3591
3592         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3593
3594         * tools/dbus-launch.c: Include sys/select.h.
3595
3596 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3597         * python/dbus_bindings.pyx.in: removed
3598
3599         * python/dbus_bindings.pyx: Added.
3600         - Fixed some memleaks (patch from 
3601         Sean Meiners <sean.meiners@linspireinc.com>)
3602         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3603         own pxd file (Pyrex definition)
3604         - Broke out glib dependancies into its own pyx module
3605         
3606         * python/dbus_bindings.pdx: Added.
3607         - Defines C class Connection for exporting to other modules
3608
3609         * python/dbus_glib_bindings.pyx: Added.
3610         - New module to handle lowlevel dbus-glib mainloop integration
3611
3612         * python/glib.py: Added.
3613         - Registers the glib mainloop when you import this module
3614
3615         * python/services.py: Removed (renamed to service.py)
3616         
3617         * python/service.py: Added.
3618         - (class Server): renamed Name
3619
3620         * python/__init__.py: Bump ro version (0,41,0)
3621         -don't import the decorators or service module
3622         by default.  These now reside in the dbus.service namespace
3623
3624         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3625         setup function on creation 
3626
3627         * python/examples/example-service.py,
3628         python/examples/example-signal-emitter.py: update examples
3629
3630         * python/examples/gconf-proxy-service.py,
3631         python/examples/gconf-proxy-service2.py: TODO fix these up
3632
3633         * doc/TODO: Addition
3634         - Added a Python Bindings 1.0 section
3635         - added "Add match on args or match on details to match rules"
3636
3637
3638 2005-07-12  Colin Walters  <walters@verbum.org>
3639
3640         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3641         (statemachine-glue.h): 
3642         * glib/examples/Makefile.am (example-service-glue.h) 
3643         (example-signal-emitter-glue.h): 
3644         * glib/Makefile.am (dbus-glib-error-switch.h): 
3645         Add libtool --mode=execute so we use the built library instead
3646         of any installed one.
3647
3648 2005-07-11  Colin Walters  <walters@verbum.org>
3649
3650         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3651         (dbus_g_value_types_init): Remove assertion.
3652         (dbus_g_value_get_g_type, dbus_g_value_open)
3653         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3654         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3655         functions related to DBusGValue.  Now we marshal/demarshal
3656         structures as GValueArray.
3657         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3658         structures.
3659         (signature_iter_to_g_type_array): Don't call
3660         signature_iter_to_g_type_struct.
3661         (signature_iter_to_g_type_struct): Delete.
3662         (dbus_gvalue_to_signature): Delete.
3663         (dbus_gvalue_to_signature): New function with same name as other
3664         one; we can convert structures to signatures.
3665         (demarshal_valuearray): New function.
3666         (get_type_demarshaller): Use it.
3667         (demarshal_recurse): Delete.
3668         (marshal_proxy): New function.
3669         (marshal_map): Warn if we can't determine signature from type.
3670         (marshal_collection_ptrarray): Ditto.
3671         (marshal_collection_array): Ditto.
3672         (get_type_marshaller): Use marshal_valuearray.
3673         (marshal_recurse): Delete.
3674         (_dbus_gvalue_test): Add some tests.
3675
3676         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3677         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3678         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3679         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3680         (dbus_g_value_free): Remove prototypes.
3681
3682         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3683         G_TYPE_VALUE_ARRAY.
3684
3685         * glib/examples/example-service.c:
3686         * glib/examples/example-client.c: Implement GetTuple.
3687
3688         * test/glib/test-dbus-glib.c:
3689         * test/glib/test-service-glib.c:
3690         * test/glib/test-service-glib.xml: Add structure tests.
3691
3692 2005-07-10  Colin Walters  <walters@verbum.org>
3693
3694         * doc/TODO: Knock off some GLib items with this patch.
3695
3696         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3697         (_dbus_gvalue_signals_error): New functions.
3698
3699         * glib/dbus-gvalue-utils.h: Prototype them.
3700
3701         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3702         and change to not output const/retval flags for input args.  All
3703         callers updated.
3704         (invoke_object_method): Refactor to handle return values.  Add
3705         some more comments in various places.  Remove debug g_print.
3706
3707         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3708
3709         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3710         Handle G_TYPE_NONE.
3711         (compute_gsignature): New function; refactored from code from
3712         compute_marshaller and compute_marshaller_name.  Enhance to
3713         handle return values and async ops more cleanly.  Update for
3714         async ops returning NONE instead of BOOLEAN.
3715         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3716         and output appropriate string.
3717         (generate_glue): Handle return value annotation.  Also don't dump
3718         constness flag for input arguments.
3719
3720         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3721         files shared between installed library and utilities.
3722         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3723         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3724         binding tool can access gtype utility functions.
3725
3726         * test/glib/test-service-glib.c: 
3727         * test/glib/test-service-glib.xml: 
3728         * test/glib/test-dbus-glib.c: Add some tests for return values.
3729
3730 2005-07-09  Colin Walters  <walters@verbum.org>
3731
3732         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3733         argument if available, not method.
3734
3735         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3736         (invoke_object_method): First, remove some redundant
3737         GValues (object_value, error_value) in favor of working on
3738         array directly.  Second, rework constness to be less buggy.
3739         Now we iterate directly over the argument metadata instead
3740         of parallel iterating over output signature and metadata.
3741
3742         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3743
3744         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3745         annotation on input args.
3746         
3747 2005-07-09  Colin Walters  <walters@verbum.org>
3748
3749         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3750         Define.
3751
3752         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3753         annotation.
3754
3755         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3756         (method_dir_signature_from_object_info): Handle arg_iterate change.
3757         (write_interface): Ditto.
3758         (lookup_object_info): Don't barf if format_version is > 0.
3759         (invoke_object_method): Handle arg constness.
3760
3761         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3762         (arg_info_new): Create.
3763         (arg_info_unref): Destroy.
3764         (arg_info_get_annotations, arg_info_get_annotation) 
3765         (arg_info_add_annotation): New functions.
3766
3767         * glib/dbus-gidl.h: Prototype them.
3768
3769         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3770         args, disallow them in properties.
3771         (parse_annotation): Handle arg annotations.
3772
3773         * test/glib/test-service-glib.xml: 
3774         * test/glib/test-service-glib.c: Update to make some methods
3775         const.
3776
3777 2005-07-08  Colin Walters  <walters@verbum.org>
3778
3779         * test/glib/test-service-glib.xml: 
3780         * test/glib/test-service-glib.c:
3781         * test/glib/test-dbus-glib.c: Test a{sv}.
3782
3783         * glib/examples/statemachine/statemachine.c:
3784         * glib/examples/statemachine/statemachine-server.c:
3785         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3786         add progress bar, etc.
3787
3788         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3789         needed anymore due to generic array/map marshalling.
3790         (dbus_g_value_types_init): Don't register basic arrays or the
3791         string/string hash.
3792         (dbus_gtype_from_signature_iter): Don't try to recurse into
3793         variants.
3794         (dbus_gtype_to_signature): Check collection/map before type
3795         metadata.
3796         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3797         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3798         generic map creation/append functions instead of hash table
3799         specifically.
3800         (get_type_demarshaller): Handle maps.
3801         (demarshal_collection): Dispatch on collection type to either
3802         demarshal_collection_ptrarray or demarshal_collection_array.
3803         (get_type_marshaller): Handle maps.
3804         (marshal_collection): Dispatch collection type to either
3805         marshal_collection_ptrarray or marshal_collection_array.
3806         (_dbus_gvalue_test): New test.
3807
3808         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3809         (hash_free_from_gtype): Use it to free GValues.
3810         (hashtable_append): New function.
3811         (ptrarray_append): Fix prototype.
3812         (slist_append): Ditto.
3813         (_dbus_gvalue_utils_test): Extend tests.
3814
3815         * glib/dbus-gtype-specialized.c
3816         (dbus_g_type_specialized_init_append): Renamed from
3817         dbus_g_type_specialized_collection_init_append.  Remove const from
3818         value, since we steal it.
3819         (dbus_g_type_specialized_map_append): New function.
3820
3821         * glib/dbus-gtype-specialized.h: Update prototypes.
3822         Add DBusGTypeSpecializedMapAppendFunc.
3823
3824         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3825         _dbus_gvalue_test.
3826         
3827         * glib/dbus-gtest.h: Prototype it.
3828
3829 2005-07-08  Ross Burton  <ross@openedhand.com>
3830
3831         * dbus/dbus-glib.h:
3832         Add DBysGAsyncData for the async bindings.
3833
3834         * glib/dbus-binding-tool-glib.c:
3835         Re-enable the async bindings.
3836
3837         * test/glib/test-dbus-glib.c:
3838         Add a test for the generated async bindings.
3839
3840 2005-07-08  Colin Walters  <walters@verbum.org>
3841
3842         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3843         connection concept.
3844         
3845 2005-07-08  Colin Walters  <walters@verbum.org>
3846         
3847         * tools/Makefile.am: Kill of print-introspect in favor of using
3848         dbus-send --print-reply=literal.
3849
3850         * test/glib/test-service-glib.xml: 
3851         * test/glib/test-service-glib.c (my_object_get_objs): New test
3852         for "ao".
3853
3854         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3855         (main): Test GetObjs.
3856
3857         * glib/examples/statemachine/Makefile.am:
3858         * glib/examples/statemachine/sm-marshal.list:
3859         * glib/examples/statemachine/statemachine-client.c:
3860         * glib/examples/statemachine/statemachine-server.c:
3861         * glib/examples/statemachine/statemachine-server.xml:
3862         * glib/examples/statemachine/statemachine.c:
3863         * glib/examples/statemachine/statemachine.h:
3864         * glib/examples/statemachine/statemachine.xml:
3865
3866         New example.
3867
3868         * glib/examples/example-service.c (main): Move invocation
3869         of dbus_g_object_type_install_info earlier, to emphasize it
3870         should only be done once.
3871
3872         * glib/examples/example-signal-emitter.c (main): Ditto.
3873
3874         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3875
3876         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3877         (dbus_gvalue_marshal): Update prototypes.
3878
3879         * glib/dbus-gvalue.c: Update all marshalling functions to take
3880         const GValue instead of GValue.
3881         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3882         types.
3883         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3884         change.
3885         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3886         Return a newly-allocated string.
3887         (demarshal_proxy, demarshal_object_path, demarshal_object)
3888         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3889         we get the wrong types from message.
3890         (get_type_demarshaller): New function, extracted from
3891         dbus_gvalue_demarshal.
3892         (demarshal_collection): New function, demarshals generic
3893         collection.
3894         (dbus_gvalue_demarshal): Just invoke result of
3895         get_type_demarshaller.  Throw error if we don't have one.
3896         (marshal_garray_basic): Abort on OOM.
3897         (get_type_marshaller): New function, extracted from
3898         dbus_gvalue_marshal.
3899         (collection_marshal_iterator, marshal_collection): New functions;
3900         implements generic marshalling for an iteratable specialized
3901         collection.
3902         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3903
3904         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3905         G_TYPE_STRING.
3906         (ptrarray_value_from_gvalue): Ditto.
3907         (ptrarray_append, ptrarray_free): New functions.
3908         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3909         (slist_append, slist_end_append, slist_free): New functions.
3910         (dbus_g_type_specialized_builtins_init): Add append fuctions
3911         for GPtrArray and GSList.  Register GSList.
3912         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3913
3914         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3915         New.
3916         (dbus_g_type_specialized_collection_init_append)
3917         (dbus_g_type_specialized_collection_append)
3918         (dbus_g_type_specialized_collection_end_append): Prototype.
3919         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3920         end_append_func.
3921
3922         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3923         (dbus_g_type_specialized_collection_append) 
3924         (dbus_g_type_specialized_collection_end_append): New functions.
3925         (dbus_g_type_map_value_iterate): Take const GValue.
3926         (dbus_g_type_collection_value_iterate): Ditto.
3927
3928         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3929         _dbus_gvalue_utils_test.
3930         
3931         * glib/dbus-gtest.h: Prototype it.
3932
3933         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3934         using uninitialized owner_list.
3935         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3936         public API.
3937         (dbus_g_proxy_end_call_internal): Update to use error set
3938         from dbus_gvalue_demarshal instead of setting it here.
3939         (dbus_g_proxy_begin_call): Move return_if_fail here.
3940
3941         * glib/dbus-gobject.c (write_interface): Update for
3942         dbus_gtype_to_signature returning new string.
3943
3944         * configure.in: Add glib/examples/statemachine.
3945
3946 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3947
3948         * configure.in: Add a configure option, --with-console-auth-dir
3949         
3950         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3951         new setting.  Patch from Kay Sievers.
3952
3953 2005-07-06  Colin Walters  <walters@verbum.org>
3954
3955         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3956         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3957         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3958         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3959         Delete in favor of dbus_g_proxy_begin_call and
3960         dbus_g_proxy_cancel_call.
3961         (DBusGProxyCall, DBusGProxyCallNotify): New.
3962         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3963         data, and destroy function.  This replaces
3964         dbus_g_pending_call_set_notify.
3965         (dbus_g_proxy_cancel_call): Prototype.
3966         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3967
3968         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3969         pending_calls map.
3970         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3971         internal proxy for calls to the bus. Remove
3972         pending_nameowner_calls, now the internal proxy keeps track.
3973         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3974         pending_nameowner_calls.
3975         (got_name_owner_cb): Update prototype, and use
3976         dbus_g_proxy_end_call.
3977         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3978         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3979         favor of using internal proxy.
3980         (dbus_g_proxy_manager_unregister): Update to use
3981         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3982         (dbus_g_proxy_init): Initialize pending calls map.
3983         (dbus_g_proxy_constructor): New.
3984         (dbus_g_proxy_class_init): Add get/set property functions,
3985         constructor, and add NAME, PATH, and INTERFACE properties.
3986         (cancel_pending_call): New function.
3987         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3988         cancel them.
3989         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3990         (GPendingNotifyClosure): New structure.
3991         (d_pending_call_notify, d_pending_call_free): Moved here from
3992         dbus-glib.c.
3993         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3994         ordering.
3995         (manager_begin_bus_call): New internal function for talking to
3996         internal bus proxy.
3997         (dbus_g_proxy_new): Construct object using GObjet properties.
3998         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3999         Create closure of same, and insert call into map of pending calls.
4000         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4001         call.  Look up pending call in current set.  Remove it when we've
4002         completed.
4003         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4004         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4005         and destroy function directly.
4006         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4007         (dbus_g_proxy_call): Invoke with NULL callback.
4008         (dbus_g_proxy_cancel_call): New function, replaces
4009         dbus_g_pending_call_cancel.
4010
4011         * glib/dbus-gparser.c (validate_signature): Fix call to
4012         dbus_set_g_error.
4013
4014         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4015         New quark for attaching metadata to GType.
4016         (info_hash): Delete.
4017         (lookup_object_info): Look up using quark.
4018         (dbus_g_object_type_install_info): Check that a type is classed,
4019         not that it's an object.  Also just install type data using quark
4020         instead of using global hash.
4021
4022         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4023         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4024         (GPendingNotifyClosure): Delete.
4025         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4026         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4027
4028         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4029         client method generation until we can fix it...
4030         
4031         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4032         (load_from_service_thread_func): Ditto.
4033
4034         * tools/dbus-names-model.c (struct NamesModel): Hold
4035         DBusGProxyCall.
4036         (have_names_notify): Update prototype, use
4037         dbus_g_proxy_cancel_call.
4038         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4039
4040         * tools/dbus-monitor.c (filter_func): Update for print_message
4041         API change.
4042
4043         * test/glib/test-dbus-glib.c: Add more tests for async
4044         invocations.  Update many begin_call/end_call pairs to just use
4045         dbus_g_proxy_call.
4046
4047         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4048         allows us to dump print-introspect.c.
4049
4050         * tools/dbus-print-message.h (print_message): Add literal argument
4051         to print_message which is intended to allow printing arguments without
4052         metadata like "string=".
4053
4054         * tools/dbus-print-message.c (print_iter): Add literal argument.
4055         (print_message): Allow printing string messages literally.
4056
4057 2005-07-05  Colin Walters  <walters@verbum.org>
4058
4059         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4060         Remove value refcount leak, original patch from Jorn Baayen
4061         <jorn@openedhand.com>.  Also remove useless extra value in favor
4062         of prepending to value array directly.
4063
4064 2005-07-02  Colin Walters  <walters@verbum.org>
4065
4066         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4067
4068 2005-07-01  Colin Walters  <walters@verbum.org>
4069
4070         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4071         
4072         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4073         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4074         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4075         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4076
4077 2005-06-30  Colin Walters  <walters@verbum.org>
4078
4079         * test/glib/test-dbus-glib.c:
4080         * test/glib/test-service-glib.c:
4081         * test/glib/test-service-glib.xml: Update tests for new error
4082         setting bits, also add async tests (patch from Ross Burton).
4083
4084         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4085         DBUS_GLIB_THREADS_LIBS.
4086
4087         * glib/dbus-gproxy.c (get_name_owner)
4088         (dbus_g_pending_call_end_valist): Ditto.
4089
4090         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4091         domain (GQuark) to DBusGErrorInfo.  
4092         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4093         quark in error_metadata.  Take message interface as default
4094         error message interface.
4095         (gerror_to_dbus_error_message): Pass message interface.
4096         (dbus_set_g_error): Resurrected.
4097         (dbus_g_error_info_free): New function.
4098         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4099         of _peek to actually create the object class if it hasn't been
4100         created yet.
4101         (dbus_g_error_domain_register): New function.
4102
4103         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4104
4105         * glib/dbus-gparser.c (validate_signature): Ditto.
4106
4107         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4108         (dbus_g_error_domain_register): Prototype.
4109
4110         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4111         Update tests.
4112
4113 2005-06-29  Colin Walters  <walters@verbum.org>
4114
4115         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4116         DBUS_TYPE_G_OBJECT_PATH.
4117
4118         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4119         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4120         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4121         (dbus_g_object_path_get_g_type): New function.
4122         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4123         to DBUS_TYPE_G_OBJECT_PATH by default.
4124         (demarshal_proxy): Remove unused name variable.
4125         (demarshal_object_path, marshal_object_path): New functions.
4126         (demarshal_proxy_array, marshal_proxy_array): Delete.
4127         
4128         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4129         DBUS_TYPE_G_OBJECT_PATH to char *.
4130         (dbus_g_type_get_lookup_function): Map builtin
4131         DBUS_TYPE_G_OBJECT_PATH.
4132
4133         * test/glib/test-dbus-glib.c
4134         * test/glib/test-service-glib.c (my_object_objpath): 
4135         Adapt tests to new object path marshalling.
4136
4137 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4138
4139         * configure.in: force check for Python >= 2.4
4140
4141 2005-06-29  Colin Walters  <walters@verbum.org>
4142         
4143         Patch from Ross Burton <ross@openedhand.com>
4144         
4145         * glib/dbus-gobject.c (invoke_object_method): Unset object
4146         value in all cases, not only in async case.
4147
4148 2005-06-29  Colin Walters  <walters@verbum.org>
4149
4150         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4151         name_call for keeping track of any outgoing GetNameOwner call.
4152         Also add for_owner and associated.
4153         (struct _DBusGProxyManager): Add owner_names, which is hash table
4154         that maps a base name to a list of names it owns (that we're
4155         interested in).  Add pending_nameowner_calls which is a list of
4156         all outstanding GetNameOwner; avoids us having to iterate over
4157         every proxy.  Add unassociated_proxies which keeps track of name
4158         proxies with no associated name owner.
4159         (dbus_g_proxy_manager_unref): Destroy owner_names.
4160         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4161         name refcounts.
4162         (find_name_in_info, name_owner_foreach)
4163         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4164         (dbus_g_proxy_manager_monitor_name_owner)
4165         (dbus_g_proxy_manager_unmonitor_name_owner)
4166         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4167         New functions; they manipulate the owner_names mapping.
4168         (got_name_owner_cb): New function.
4169         (get_name_owner): New function, extracted from
4170         dbus_g_proxy_new_for_name_owner.
4171         (dbus_g_proxy_manager_register): For now we need to keep track of
4172         all NameOwnerChanged.  Also if the proxy is for a name, if we
4173         don't already know the name owner, queue a new GetNameOwner
4174         request and add it to our list of unassociated proxies.  Otherwise
4175         inc the refcount.
4176         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4177         cancel any pending GetNameOwner call, etc.
4178         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4179         the owner_names mapping to look up the current names for the
4180         signal source, and dispatch to any proxies for that name.
4181         (dbus_g_proxy_new): Initialize new members.
4182         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4183         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4184         (dbus_g_pending_call_end_valist): New function, extracted from
4185         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4186         but want to use the GLib infrastructure.  Also note how many
4187         arguments in reply were over.
4188         (dbus_g_pending_call_end): New function, just call
4189         dbus_g_pending_call_end_valist.
4190         (dbus_g_proxy_end_call_internal): Just call
4191         dbus_g_pending_call_end_valist.
4192
4193         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4194         of builtin marshaller for STRING_STRING_STRING.
4195
4196         * test/glib/test-dbus-glib.c: 
4197         * test/glib/test-service-glib.c:
4198         * test/glib/test-service-glib.xml:
4199         Extend tests to cover name proxies, destruction of owner proxies,
4200         etc.
4201         
4202         * glib/examples/example-signal-recipient.c
4203         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4204         
4205         * tools/dbus-send.c (main): Print D-BUS error name in addition
4206         to message.
4207
4208 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4209
4210         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4211         cmessage_function_handler): Patch from 
4212         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4213         by using the Py_GILState_Ensure/Release to synchronize with the
4214         python runtime.
4215         
4216 2005-06-28  Ray Strode  <rstrode@redhat.com>
4217
4218         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4219         babysitter helper process on last unref, bug #2813.
4220
4221 2005-06-27  Colin Walters  <walters@verbum.org>
4222
4223         * test/glib/test-dbus-glib.c: 
4224         * test/glib/test-service-glib.c:
4225         * test/glib/test-service-glib.xml:
4226         Test hash table signal emitting.
4227
4228         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4229         types to their fundamental basis types, since this is what
4230         marshallers operate on.  Also add an entry for VOID__BOXED.
4231         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4232
4233 2005-06-26  Havoc Pennington  <hp@redhat.com>
4234
4235         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4236         from Don Park
4237
4238 2005-06-26  Colin Walters  <walters@verbum.org>
4239
4240         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4241         (dbus_g_error_set): New public function from its ashes; used by
4242         both service-side method implementation and GLib bindings
4243         internals.
4244         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4245         (_dbus_glib_test): Add some tests.
4246
4247         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4248
4249         * test/glib/test-service-glib.c (my_object_throw_error): Use
4250         dbus_g_error_set.
4251
4252         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4253         errors thrown by dbus_g_error_set.
4254
4255         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4256
4257         * glib/dbus-gparser.c (validate_signature): Ditto.
4258
4259         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4260         (dbus_g_proxy_end_call_internal): Ditto.
4261
4262         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4263         converts DBUS_ERROR_x to DBUS_GERROR_x.
4264         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4265
4266         * doc/TODO: Remove error TODO.
4267
4268         * doc/dbus-tutorial.xml: Update with documentation about error
4269         handling.
4270
4271         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4272         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4273         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4274
4275 2005-06-22  Colin Walters  <walters@verbum.org>
4276         
4277         Patch from Ross Burton <ross@openedhand.com>
4278
4279         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4280
4281 2005-06-20  Colin Walters  <walters@verbum.org>
4282
4283         * configure.in: Add glib/examples.
4284
4285         * glib/Makefile.am: Add examples/
4286
4287         * glib/examples/.cvsignore
4288         * glib/examples/Makefile.am
4289         * glib/examples/example-client.c
4290         * glib/examples/example-service.c
4291         * glib/examples/example-service.xml
4292         * glib/examples/example-signal-emitter.c
4293         * glib/examples/example-signal-emitter.xml
4294         * glib/examples/example-signal-recipient.c:
4295         New files; GLib binding examples, ported from
4296         python/examples.
4297
4298 2005-06-20  Colin Walters  <walters@verbum.org>
4299
4300         * dbus/dbus-glib.h: 
4301         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4302         dbus_g_proxy_call.
4303
4304         * glib/dbus-binding-tool-glib.c: 
4305         * doc/dbus-tutorial.xml: 
4306         * test/glib/test-dbus-glib.c: Update for rename.
4307         
4308 2005-06-20  Colin Walters  <walters@verbum.org>
4309
4310         Patch suggested by Ross Burton <ross@openedhand.com>
4311
4312         * glib/dbus-gobject.c (export_signals): Free signal name.
4313         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4314         memory leak.  Add a bit of documentation.
4315         (dbus_g_method_return_error): Free context, and note we do
4316         so.
4317
4318 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4319
4320         * dbus/dbus-glib.h:
4321         * glib/dbus-gobject.c:
4322         * glib/dbus-gproxy.c:
4323         * glib/dbus-gvalue.c: Predeclare structs as 
4324         typedef struct _Something Something instead of 
4325         typedef struct Something Something, so we can 
4326         redeclare the prototypes. Other GNOME libraries 
4327         do this already.
4328
4329 2005-06-17  Colin Walters  <walters@verbum.org>
4330
4331         * tools/dbus-names-model.c (have_names_notify): Fix call
4332         to dbus_g_proxy_end_call.
4333         
4334 2005-06-17  Colin Walters  <walters@verbum.org>
4335
4336         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4337         spew warnings if we get malformed remote signals.
4338
4339         * glib/dbus-gobject.c (propsig_iterate): New function.
4340         (lookup_object_info): New function, extracted from
4341         lookup_object_and_method.
4342         (introspect_properties, introspect_signals): Delete; these
4343         are merged into write_interface.
4344         (write_interface): Write out signals and properties here;
4345         dump the org.gtk.object stuff and use the interface given
4346         in the introspection data blob.  Also fix up property XML.
4347         (lookup_values): New function.
4348         (introspect_interfaces): Gather a mapping from interface to a
4349         list of its methods, signals, and properties, then write out
4350         each interface.
4351         (lookup_object_and_method): Use lookup_object_info.
4352         (struct DBusGSignalClosure): Add interface.
4353         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4354         we can just use the constant data.
4355         (dbus_g_signal_closure_finalize): Don't free signal name.
4356         (signal_emitter_marshaller): Use interface from signal closure.
4357         (export_signals): Only export signals mentioned in introspection
4358         blob.
4359         (dbus_g_connection_register_g_object): Warn if we have no
4360         introspection data for an object.
4361         (funcsig_equal): Remove unused variable.
4362         (dbus_g_object_register_marshaller): Take varargs instead of
4363         list.
4364         (dbus_g_object_register_marshaller_array): New function,
4365         extracted from old dbus_g_object_register_marshaller.
4366
4367         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4368         signals and property data.
4369         (write_quoted_string): New function, extracted from generate_glue.
4370         (generate_glue): Write signals and properties to introspection
4371         blob.
4372
4373         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4374         exported_signals and exported_properties.
4375         (dbus_g_object_register_marshaller): Update prototype.
4376         (dbus_g_object_register_marshaller_array): Prototype.
4377         
4378         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4379
4380         * test/glib/test-service-glib.c: Add new test signals and method
4381         to emit them.
4382
4383         * test/glib/test-service-glib.xml: Add some test signals.
4384
4385         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4386         and my-object-marshal.h
4387         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4388         my-object-marshal.c.
4389         (my-object-marshal.c, my-object-marshal.h): Implement.
4390
4391         * test/glib/.cvsignore: Update.
4392
4393         * doc/TODO: Remove two GLib TODO items fixed by this
4394         patch.
4395
4396 2005-06-16  Colin Walters  <walters@verbum.org>
4397
4398         * doc/TODO: Update for GLib bindings.
4399         
4400 2005-06-16  Colin Walters  <walters@verbum.org>
4401
4402         * glib/dbus-binding-tool-glib.c:
4403         * glib/dbus-gobject.c:
4404         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4405         from Ross Burton, for his GLib bindings work.
4406
4407 2005-06-16  Colin Walters  <walters@verbum.org>
4408
4409         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4410         to iterate instead of walking to G_TYPE_INVALID.
4411
4412         Patch based on a patch from Ryan Gammon.
4413
4414 2005-06-16  Colin Walters  <walters@verbum.org>
4415
4416         * bus/bus.c (bus_context_new): Set parser to NULL
4417         after we unref it (Patch from Chris Boscolo, #2174).
4418         
4419 2005-06-16  Colin Walters  <walters@verbum.org>
4420
4421         * python/dbus_bindings.pyx.in: Import size_t,
4422         __int64_t, __uint64_t, and __signed.
4423
4424         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4425         Define cmsg struct, output it.
4426         (_dbus_read_credentials_unix_socket):
4427         Use cmsg struct.
4428         
4429         Patch from Joe Markus Clarke for FreeBSD support.
4430         
4431 2005-06-16  Colin Walters  <walters@verbum.org>
4432
4433         * tools/dbus-send.c (append_array): Use strtok.
4434         (append_dict): New function.
4435         (type_from_name): New function, extracted from main.
4436         (main): Handle sending dicts.
4437
4438         * tools/dbus-print-message.c (print_iter): Print dict
4439         entries.
4440         
4441 2005-06-16  Colin Walters  <walters@verbum.org>
4442
4443         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4444         values as the empty string (#2948).
4445         
4446 2005-06-16  Colin Walters  <walters@verbum.org>
4447
4448         * dbus/Makefile.am:
4449         * mono/doc/Makefile.am:
4450         * test/glib/Makefile.am:
4451
4452         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4453
4454 2005-06-16  Colin Walters  <walters@verbum.org>
4455
4456         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4457         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4458
4459         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4460         Increment pointer after swapping fixed array.  Add assertion
4461         for array length.
4462                 
4463 2005-06-15  Colin Walters  <walters@verbum.org>
4464
4465         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4466         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4467         
4468 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4469
4470         * NEWS: Update to 0.34
4471
4472 2005-06-15  David Zeuthen  <davidz@redhat.com>
4473
4474         * configure.in (LT_CURRENT): Revert back to 1 as the library
4475         hasn't changed and we've certainly not committed to protocol
4476         stability yet.  All this does is to break ABI. See commit note
4477         from hp@redhat.com 2005-05-05 for details.
4478         
4479 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4480
4481         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4482         (_dbus_connection_run_builtin_filters): New method
4483         (dbus_connection_dispatch): Run the builtin filters which in turn
4484         runs the peer filter which handles Ping messages.
4485
4486         * doc/TODO: 
4487          - Ping isn't handled: This patch fixes it
4488          
4489          - Add a test case for the Ping message: added TODO item
4490
4491 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4492
4493         * dbus/dbus-message.c:
4494         (dbus_message_has_path): New method
4495         (dbus_message_has_interface): New method
4496         (dbus_message_has_member): New method
4497
4498         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4499         New method
4500
4501         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4502         the keyring directory is private to the user
4503
4504         * doc/TODO:
4505          - The convenience functions in dbus-bus.h should perhaps have
4506          the signatures that they would have if they were autogenerated
4507          stubs. e.g. the acquire service function. We should also evaluate
4508          which of these functions to include, in light of the fact that
4509          GLib/Qt native stubs will probably also exist.: Punted
4510
4511          - add dbus_message_has_path(), maybe has_member/interface:
4512          fixed in this patch
4513
4514          - in dbus-keyring.c, enforce that the keyring dir is not
4515          world readable/writable: Fixed in this patch
4516
4517 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4518
4519         * dbus/dbus-marshal-validate.h: Added a new validation
4520         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4521         out of memory errors when validating signitures
4522
4523         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4524         in places where we previously used DBUS_VALID and a FALSE return 
4525         value to indicate OOM
4526         
4527         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4528         Use a stack to track the number of elements inside containers.  The 
4529         stack values are then used to validate that dict entries have only two
4530         elements within them.
4531         (validate_body_helper): check the reason for failure when validating
4532         varients
4533         
4534         * dbus/dbus-message.c (load_message): use 
4535         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4536         DBUS_VALID and a FALSE return value to indicate OOM
4537
4538         * doc/TODO: remove "- validate dict entry number of fields" as this
4539         patch fixes it
4540
4541 2005-06-14  David Zeuthen  <davidz@redhat.com>
4542
4543         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4544         watches (if applicable) and add new watches
4545
4546         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4547         (main): Setup SIGIO signal handler if using D_NOTIFY
4548
4549         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4550
4551         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4552         (merge_included): Also merge conf_dirs list
4553         (bus_config_parser_unref): Clear conf_dirs list
4554         (include_dir): Add directory to conf_dirs list
4555         (bus_config_parser_get_conf_dirs): New function
4556
4557         * bus/dir-watch.[ch]: New files
4558
4559         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4560
4561         * configure.in: Add checks for D_NOTIFY on Linux
4562
4563 2005-06-14  Colin Walters  <walters@verbum.org>
4564
4565         * glib/dbus-binding-tool-glib.c:
4566         * glib/dbus-gobject.c:
4567         * glib/dbus-gvalue.c: Fix indentation and brace style.
4568         
4569 2005-06-14  Ross Burton <ross@openedhand.com>.
4570
4571         * glib/dbus-glib.h: Make DBusGMethodInvocation
4572         a private structure.  Rearrange prototypes a bit.
4573         
4574         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4575         documentation for first_arg_type.
4576         
4577         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4578         here, add documentation.  Move dbus_g_method_return
4579         and dbus_g_method_return_error into public API
4580         section.
4581
4582 2005-06-14  Colin Walters  <walters@verbum.org>
4583
4584         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4585         Add missing return statements, noticed by Ross Burton.
4586         
4587 2005-06-13  Ross Burton <ross@openedhand.com>.
4588
4589         * glib/dbus-gobject.c: Handle errors on message
4590         demarshalling by sending error message back.
4591         * glib/dbus-gvalue.c: Initialize return variables.
4592
4593 2005-06-13  Colin Walters  <walters@verbum.org>
4594
4595         * glib/Makefile.am: Fix thinko in last patch.
4596
4597 2005-06-13  Colin Walters  <walters@verbum.org>
4598
4599         * glib/Makefile.am: Move dbus-gtype-specialized.c
4600         and dbus-gtype-specialized.h into a _HEADERS variable,
4601         install them.
4602
4603 2005-06-12  Colin Walters  <walters@verbum.org>
4604
4605         Async signals and various bugfixes and testing by
4606         Ross Burton <ross@openedhand.com>.
4607
4608         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4609         (dbus_gvalue_genmarshal_name_from_type)
4610         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4611         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4612         (dbus_g_value_types_init, dbus_gtype_from_signature)
4613         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4614         (dbus_gtypes_from_arg_signature): New function prototypes.
4615         (dbus_gvalue_demarshal): Take context and error arguments.
4616         (dbus_gvalue_demarshal_variant): New function.
4617         (dbus_gvalue_demarshal_message): New function.
4618         (dbus_gvalue_store): Delete.
4619
4620         * glib/dbus-gvalue.c:
4621
4622         File has been almost entirely rewritten; now we special-case
4623         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4624         hash tables correctly, etc.  Full support for recursive values
4625         is not yet complete.
4626
4627         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4628         argument of signal to G_TYPE_POINTER since we now pass a
4629         structure.
4630         (lookup_g_marshaller): Delete in favor of
4631         _dbus_gobject_lookup_marshaller.
4632         (marshal_dbus_message_to_g_marshaller): Use
4633         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4634         to handle remote signal callbacks.
4635         (dbus_g_proxy_new_from_proxy): New function; creates a new
4636         DBusGProxy by copying an existing one.
4637         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4638         (dbus_g_proxy_get_path): New functions.
4639         (dbus_g_proxy_marshal_args_to_message): New function;
4640         factored out of existing code.
4641         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4642         from a varargs array.
4643         (dbus_g_proxy_begin_call_internal): New function.
4644         (dbus_g_proxy_end_call_internal): New function.
4645         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4646         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4647         after collecting args into value array.
4648         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4649         invoke dbus_g_proxy_end_call_internal.
4650         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4651         end_call_internal.
4652         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4653         types.
4654         (array_free_all): New function.
4655         (dbus_g_proxy_add_signal): Take GTypes.
4656
4657         * glib/dbus-gobject.h:
4658         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4659         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4660         Prototype.
4661
4662         * glib/dbus-gobject.c: Add a global marshal_table hash which
4663         stores mappings from type signatures to marshallers.  Change lots
4664         of invocations of dbus_gtype_to_dbus_type to
4665         dbus_gtype_to_signature.
4666         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4667         (introspect_signals): Fix test for query.return_type.
4668         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4669         (invoke_object_method): Many changes.  Handle asynchronous
4670         invocations.  Convert arguments with
4671         dbus_gvalue_demarshal_message.  Handle errors.  Use
4672         DBusSignatureIter instead of strlen on args. Handle all arguments
4673         generically.  Special-case variants.
4674         (dbus_g_method_return, dbus_g_method_return_error): New function.
4675         (DBusGSignalClosure): New structure, closes over signal
4676         information.
4677         (dbus_g_signal_closure_new): New function.
4678         (dbus_g_signal_closure_finalize): New function.
4679         (signal_emitter_marshaller): New function; is special marshaller
4680         which emits signals on bus.
4681         (export_signals): New function; introspects object signals and
4682         connects to them.
4683         (dbus_g_object_type_install_info): Take GType instead of
4684         GObjectClass.
4685         (dbus_g_connection_register_g_object): Invoke export_signals.
4686         (dbus_g_connection_lookup_g_object): New function.
4687         (DBusGFuncSignature) New structure; used for mapping type
4688         signatures to marshallers.
4689         (funcsig_hash): New function; hashes DBusGFuncSignature.
4690         (funcsig_equal): New function; compares DBusGFuncSignature.
4691         (_dbus_gobject_lookup_marshaller): New function.
4692         (dbus_g_object_register_marshaller): New function; used to
4693         register a marshaller at runtime for a particular signature.
4694
4695         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4696
4697         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4698         which notes a server method implementation should be
4699         asynchronous.
4700
4701         * glib/dbus-binding-tool-glib.c
4702         (dbus_binding_tool_output_glib_server): Call
4703         dbus_g_value_types_init.
4704         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4705         variants specially.
4706         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4707         of a lookup function.
4708         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4709         (write_untyped_out_args): New method; write output arguments.
4710         (write_formal_declarations_for_direction): Function for
4711         writing prototypes.
4712         (write_formal_parameters_for_direction): Function for
4713         writing implementations.
4714         (write_typed_args_for_direction): Function for writing
4715         arguments prefixed with GTypes.
4716         (write_async_method_client): Write out async version
4717         of method.
4718
4719         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4720         (dbus_g_type_get_marshal_name): Move mapping from GType
4721         to marshal name into here.
4722         (dbus_g_type_get_c_name): Move into here.
4723         (compute_marshaller): Convert signature to type with
4724         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4725         (compute_marshaller_name): Ditto.
4726         (compute_marshaller): Handle async signal annotations.
4727         (gather_marshallers): Return if we don't have a known
4728         prefix.
4729         (generate_glue): Collect introspection blob here, and
4730         write all of the blob at the end.  This allows an object
4731         with multiple interfaces to work.
4732         Mark async methods in introspection blob.
4733
4734         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4735         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4736         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4737
4738         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4739         avoids people accidentally using DBUS_TYPE_* which should
4740         not be necessary anymore.
4741         Do include dbus-gtype-specialized.h, which are utilities
4742         for GLib container types.
4743         Add various #defines for types such as
4744         DBUS_TYPE_G_BOOLEAN_ARRAY.
4745         (DBusGValueIterator, DBusGValue): Define, not fully used
4746         yet.
4747         (dbus_g_value_get_g_type): Type for recursive value.
4748         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4749         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4750         (dbus_g_value_free): Prototypes.
4751         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4752         (dbus_g_proxy_set_interface): Prototype.
4753         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4754         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4755         types.
4756         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4757         Accessors.
4758         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4759         doing async invocations.
4760         (dbus_g_method_return, dbus_g_method_return_error):
4761         Prototypes.
4762         * doc/dbus-tutorial.xml: Update GLib section.
4763         
4764         * tools/dbus-viewer.c (load_child_nodes): Update
4765         for new invocation type of dbus_g_proxy_end_call.
4766         (load_from_service_thread_func): Ditto.
4767
4768         * tools/print-introspect.c (main): Ditto.
4769
4770         * tools/dbus-names-model.c (have_names_notify)
4771         (names_model_reload, names_model_set_connection)
4772         Use GTypes.
4773
4774         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4775         needed since Python bindings use GLib bindings.
4776
4777         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4778         Add --prefix argument.
4779
4780         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4781         unneeded --ignore-unsupported arg.
4782         
4783         * test/glib/test-service-glib.c: 
4784         * test/glib/test-service-glib.xml:
4785         * test/glib/test-dbus-glib.c: Add many more tests.
4786
4787 2005-06-06  David Zeuthen  <davidz@redhat.com>
4788
4789         * doc/TODO: Add item about need to remove deprecated functions.
4790
4791         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4792
4793         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4794         to repair the ABI which was broken with the last commit.
4795
4796 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4797
4798         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4799         (dbus_connection_disconnect): renamed to dbus_connection_close 
4800         for API symmetry with dbus_connection_open
4801         (_dbus_connection_open_internal): 
4802         s/dbus_connection_disconnect/dbus_connection_close
4803
4804         * dbus/dbus-bus.c (dbus_bus_get):
4805         s/dbus_connection_disconnect/dbus_connection_close
4806
4807         * bus/connection.c (bus_connections_unref, 
4808         bus_connections_setup_connection, bus_connections_expire_incomplete):
4809         s/dbus_connection_disconnect/dbus_connection_close
4810
4811         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4812         kill_client_connection_unchecked, check_hello_connection):
4813         s/dbus_connection_disconnect/dbus_connection_close
4814
4815         * bus/bus.c (new_connection_callback):
4816         s/dbus_connection_disconnect/dbus_connection_close
4817
4818         * tools/dbus-send.c (main):
4819         s/dbus_connection_disconnect/dbus_connection_close
4820
4821         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4822         s/dbus_connection_disconnect/dbus_connection_close
4823         
4824         * test/test-service.c (path_message_func, filter_func):
4825         s/dbus_connection_disconnect/dbus_connection_close
4826         
4827         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4828         
4829 2005-05-25  Colin Walters  <walters@verbum.org>
4830
4831         * dbus/dbus-protocol.h: Move various bus service #defines such
4832           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4833           dbus/dbus-shared.h.
4834         * dbus/dbus-shared.h: Various defines moved here.
4835         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4836
4837 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4838
4839         * python/__init__.py: Python bindings deserve a minor version
4840         update.  Upped to (0, 40, 2)
4841
4842 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4843
4844         * python/decorators.py: add explicitly_pass_message decorator
4845         for passing in the dbus message as keyword for edge case signal
4846         handling
4847
4848         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4849         to conform with what dbus expects for match rules
4850         (SignalMatchRule.execute): add the dbus message as a keyword
4851         if the signal handler has requested it
4852
4853         * python/examples/example/signal-recipient.py: added some more
4854         examples on how to hook up to signals
4855
4856 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4857
4858         * python/decorators.py: import dbus_bindings
4859
4860         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4861         SignalMatchNode): new classes that implement wildcard signal
4862         callback matching using a tree lookup. Heavily modified from a
4863         patch sent by Celso Pinto (fd.o bug #3241)
4864
4865         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4866         use new match classes to handle signals.
4867
4868 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4869         
4870         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4871
4872 2005-05-18  Havoc Pennington  <hp@redhat.com>
4873
4874         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4875         gettext. Not really worth requiring yet perhaps, but any
4876         production quality 1.0 would require it so we should go ahead and
4877         get things set up. We do have a couple token calls to
4878         bindtextdomain in the code already.
4879
4880 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4881
4882         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4883         when using recursive g_main_loops
4884
4885         * python/_dbus.py (class Bus): add the ProxyObjectClass
4886         alias for ProxyObject to make it easier for the Twisted 
4887         networking framework to integrate dbus.
4888
4889         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4890         alias for ProxyMethod to make it easier for the Twisted 
4891         networking framework to integrate dbus. 
4892
4893 2005-05-11  Ross Burton  <ross@openedhand.com>
4894
4895         * glib/dbus-glib-tool.c: Add --prefix argument.
4896         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4897         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4898         Add prefix argument.
4899         (generate_glue): Pass prefix argument down.
4900         (dbus_binding_tool_output_glib_server): Pass prefix to
4901         glib-genmarshal.
4902         
4903 2005-05-11  Colin Walters  <walters@verbum.org>
4904
4905         * tools/dbus-send.c (append_array): New function.
4906         (append_arg): Broken out from main.
4907         (main): Add cheesy hack to send arrays and variants.
4908         (usage): Update.
4909         * tools/dbus-print-message.c (print_iter): Broken out
4910         from main.
4911
4912 2005-05-11  Colin Walters  <walters@verbum.org>
4913
4914         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4915         New function, returns signature string for signature iter.
4916         * dbus/dbus-signature.h: Prototype it.
4917         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4918         New function, returns signature string for message iter.
4919         (dbus_message_iter_get_array_len): New function, returns
4920         length of array.
4921         (dbus_message_iter_get_fixed_array): Fix assertion; this
4922         function should be used when the iter is pointing to the
4923         contents of an array
4924         * dbus/dbus-message.h: Prototypes.
4925         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4926         New function; returns length of an array.
4927         * dbus/dbus-marshal-recursive.h: Prototype it.
4928         
4929 2005-05-11  Colin Walters  <walters@verbum.org>
4930
4931         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4932         compilation error.
4933         
4934 2005-05-08  Havoc Pennington  <hp@redhat.com>
4935
4936         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4937         daemon's pid, not the parent's pid, to the file descriptor.
4938         Reported by Taj Morton.
4939
4940 2005-05-05  Havoc Pennington  <hp@redhat.com>
4941
4942         * configure.in (LT_*): add notes on how the libtool versioning
4943         works to save thinking. Increment soname to indicate protocol
4944         breakage (though really the library interface hasn't changed I
4945         guess)
4946
4947         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4948         verify the GUID received from server matches what we were
4949         expecting, if we had an expectation
4950
4951         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4952         (_dbus_auth_get_guid_from_server): new function
4953         (send_begin): parse the OK args
4954
4955         * doc/dbus-specification.xml: add GUID to the auth protocol
4956
4957 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4958
4959         * Fix my name in previous changelog ;)
4960
4961         * python/proxies.py (ProxyObject.__getattr__): add further patch
4962         from Anthony Baxter to throw an AttributeError when python 
4963         __special__ functions are called instead of marshling them over 
4964         the bus (Bug#1685 comment 3).
4965
4966 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4967
4968         * python/Makefile.am: changed to use pyexecdir for the binding
4969         shared libraries (Bug#2494)
4970
4971         * python/exceptions.py: bring exceptions over from the bindings
4972         so they can be used in applications (Bug#2036)
4973         Make all exceptions derive from DBusException
4974
4975         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4976         of classes so that print obj doesn't throw an exception (Bug #1685)
4977
4978 2005-05-03  Ross Burton  <ross@openedhand.com>
4979
4980         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4981         Return if we get an error during registration.  Set up a
4982         weak reference on object to unregister if object is destroyed.
4983         (unregister_gobject): New function.
4984         
4985 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4986
4987         * python/dbus_bindings.pyx.in: 
4988         - added new type classes for hinting to the marashaler what type 
4989         to send over the wire
4990         - added int16 and uint16 marshalers
4991         - Fixed a bug in the type constants that caused int32 to go out
4992         as uint16 over the wire
4993         * python/dbus.py: split up into different files and renamed _dbus.py
4994         * python/__init__.py, python/_util.py, python/decorators.py, 
4995         python/exceptions.py, python/proxies.py, python/services.py,
4996         python/types.py: new files split off from dbus.py
4997         * python/Makefile.am: Add new files, remove dbus.py and 
4998         install all python files to <python module dir>/dbus
4999         * python/examples/*: Added #!/usr/bin/env python to the top of
5000         every example.  Patch provided by Tatavarty Kalyan
5001
5002 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5003
5004         * NEWS: Update to 0.33
5005
5006 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5007
5008         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5009         method for doing async calls
5010         (_pending_call_notification): New C function for handling pendning call
5011         callbacks
5012         (set_notify): New method for setting pending call notification
5013         
5014         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5015         Async capabilities added to remote method calls
5016         (Sender): class removed
5017         (RemoteService): class removed
5018         (ObjectTree): class removed for now
5019         (RemoteObject): Renamed to ProxyObject
5020         (RemoteMethod): Renamed to ProxyMethod
5021         (method): Decorator added for decorating python methods as dbus methods
5022         (signal): Decorator added for decorating python methods as signal emitters
5023         (ObjectType): Metaclass added for generating introspection data and the
5024         method callback vtable
5025         (Interface): Wrapper class added to wrap objects in a dbus interface
5026         (Object): Uses ObjectType as its metaclass and exports Introspect
5027         of the org.freedesktop.DBus.Introspectable interface
5028         (ValidationException, UnknownMethodException): new exceptions
5029
5030         * python/examples/*: Modified to fit with the new bindings
5031
5032 2005-04-23  Havoc Pennington  <hp@redhat.com>
5033
5034         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5035         reported by Tony Houghton
5036
5037         * test/test-service.c (main): test
5038         dbus_connection_get_object_path_data()
5039
5040         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5041         the exact_match
5042         (_dbus_object_tree_get_user_data_unlocked): new function used by
5043         dbus_connection_get_object_path_data()
5044         (do_register): add assertion test for get_user_data_unlocked
5045         (object_tree_test_iteration): more tests
5046
5047         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5048         new function from Dan Reed to let you get the user data from 
5049         dbus_connection_register_object_path()
5050
5051 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5052
5053         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5054         in numerous places that did not account for the NULL terminator
5055         (signature_from_seed): changed the manual string copy loop to 
5056         just use strcpy instead
5057         make check should now pass
5058
5059 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5060
5061         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5062         so that it allows messages that are not signals to pass in 
5063         NULL as the interface.
5064
5065 2005-04-18  David Zeuthen  <davidz@redhat.com>
5066
5067         * glib/dbus-gmain.c (io_handler_destroy_source): 
5068         (timeout_handler_destroy_source, connection_setup_free): 
5069         Also unref the source to avoid memory leaks.
5070
5071 2005-04-13  David Zeuthen  <davidz@redhat.com>
5072
5073         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5074         more reasonable, yet still totally arbitrary, value :-). 
5075
5076 2005-04-13  David Zeuthen  <davidz@redhat.com>
5077
5078         * doc/TODO: Added an "important for 1.0" item about selinux
5079         allow/deny messages
5080
5081 2005-04-13  David Zeuthen  <davidz@redhat.com>
5082
5083         * bus/selinux.c: Add c-file-style to top of file
5084         (log_audit_callback): Don't free the data here anymore
5085         (bus_selinux_check): Don't take spid and tpid since appending
5086         that to auxdata may OOM.
5087         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5088         to the caller if we are OOM by taking an error object.
5089         (bus_selinux_allows_send): -do-
5090
5091         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5092         and bus_selinux_allows_send
5093
5094         * bus/bus.c (bus_context_check_security_policy): Pass error and
5095         pass on OOM thrown by bus_selinux_allows_send()
5096
5097         * bus/services.c (bus_registry_acquire_service): Pass error and
5098         pass on OOM thrown by bus_selinux_allows_acquire_service()
5099
5100 2005-04-13  Havoc Pennington  <hp@redhat.com>
5101
5102         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5103         message at a time to avoid monopolizing the main loop, bug 
5104         #2953 from Benjamin Otte
5105
5106 2005-04-09  Havoc Pennington  <hp@redhat.com>
5107
5108         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5109         possible overlap, fix from Daniel Reed
5110         (fixup_alignment): fix signedness warnings
5111         (_dbus_string_append_unichar): ditto
5112
5113 2005-04-09  Havoc Pennington  <hp@redhat.com>
5114
5115         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5116
5117         * glib/dbus-glib-tool.c (main): fix warning
5118
5119         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5120
5121         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5122         add a new function that can be used in simple applications that
5123         don't have a main loop and are willing to block
5124
5125 2005-04-05  David Zeuthen  <davidz@redhat.com>
5126
5127         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5128
5129         * glib/dbus-gmain.c:
5130         (io_handler_destroy_source): Remove from list of IO handlers
5131         of the ConnectionSetup object
5132         (timeout_handler_destroy_source): -do- for timeout handlers
5133         (io_handler_source_finalized): Don't remove from list since
5134         we now do that in io_handler_destroy_source(). Renamed from
5135         io_handler_source_destroyed
5136         (timeout_handler_source_destroyed): -do- for timeout handlers
5137         (connection_setup_free): It is now safe to iterate over all
5138         IO and timeout handlers as the _destroy_source removes them
5139         from the list synchronously
5140
5141 2005-03-30  Havoc Pennington  <hp@redhat.com>
5142
5143         * configure.in: change check to gtk 2.4
5144
5145         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5146         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5147         to 2.4
5148
5149 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5150
5151         * News: Update 0.32
5152
5153         * HACKING: Fixed realease instructions.  configure.in should be updated to
5154           the next release by the person who made the last release.
5155
5156 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5157
5158         * python/lvalue_cast_post_process.py - removed.  Patch has been
5159           submitted to Pyrex maintainers that fixes gcc4.0 errors
5160
5161         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5162
5163 2005-03-24  Daniel Reed  <n@ml.org>
5164
5165         * tools/Makefile.am: Make print-introspect and
5166         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5167
5168 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5169
5170         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5171
5172         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5173           had in Red Hat packages for a while but for some reason never 
5174           got merged upstream
5175           (_dbus_is_a_number): New checks if a string
5176           can be converted to a number and does the conversion if it can
5177           (_dbus_user_database_lookup): Add check to see if the given username
5178           is a udi.  This allows udi's to be used instead of usernames in the
5179           config file.
5180           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5181           is a gdi.  This allows gdi's to be used instead of groupnames in the
5182           config file.
5183
5184 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5185
5186         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5187           code so that it compiles with gcc4.0
5188
5189         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5190           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5191           results back to dbus_binding.c
5192
5193 2005-03-20  Colin Walters  <walters@verbum.org>
5194
5195         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5196
5197         * configure.in: Require GTK+ 2.6.
5198         
5199 2005-03-20  Colin Walters  <walters@verbum.org>
5200
5201         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5202
5203 2005-03-17  Tom Parker  <palfrey@tevp.net>
5204
5205         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5206         print DBUS_UID_UNSET; instead print passed username.  Also
5207         be sure to actually use gid looked up in cache.
5208         
5209         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5210         for DBUS_GID_UNSET and groupname.
5211
5212 2005-03-17  Colin Walters  <walters@verbum.org>
5213
5214         * bus/print-introspect.c: Move to tools/.
5215         * bus/run-with-tmp-session-bus.sh: Ditto.
5216         
5217         * glib/Makefile.am (dbus-glib-bindings.h): Move
5218         generation to tools/Makefile.am.
5219
5220         * test/glib/run-test.sh: Update to handle move
5221         of run-with-tmp-session-bus.sh.
5222
5223         * test/glib/test-service-glib.c: Update to handle
5224         move of dbus-glib-bindings.h.
5225
5226         * tools/print-introspect.c: Moved here
5227         from bus/, and ported to GLib bindings.
5228
5229         * tools/run-with-tmp-session-bus.sh: Moved here
5230         from bus/.
5231
5232         * tools/Makefile.am: Generate dbus-glib-bindings.h
5233         and dbus-bus-introspect.xml here.
5234
5235         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5236         Update.
5237
5238 2005-03-17  Colin Walters  <walters@verbum.org>
5239
5240         * bus/driver.c (write_args_for_direction): Use
5241         _dbus_string_get_const_data to retrieve string;
5242         _dbus_string_get_const_data_len doesn't actually return
5243         a NULL-terminated substring.
5244
5245         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5246         (main): Change to use org_freedesktop_DBus_request_name
5247         instead of using g_proxy_begin_call/end_call.
5248
5249 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5250
5251         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5252         generating the finalizer.  Fixes from Ben Maurer.
5253
5254 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5255
5256         * mono/BusDriver.cs: Update method names: ListServices
5257         becomes ListNames; GetOwner becomes GetNameOwner.
5258
5259         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5260         onto the eval stack when removing the delegate.
5261
5262 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5263
5264         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5265         LT_CURRENT.  Set it to the autoconf variable.
5266                                                                                 
5267         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5268         classes that disconnects the signal handler delegate from the
5269         service object.  Fixes a big leak of proxy objects on the
5270         client side of things.  Patch from Ben Maurer
5271         <bmaurer@ximian.com>
5272
5273 2005-03-12  Colin Walters  <walters@verbum.org>
5274
5275         * bus/driver.c (write_args_for_direction): New function,
5276         parses a type signature into arguments and outputs to
5277         XML.
5278         (bus_driver_handle_introspect): Use it instead of
5279         hardcoding XML for certain signatures.
5280         
5281         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5282         dependency on dbus-daemon.
5283
5284         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5285         argument, pass it to dbus_binding_tool_output_glib_client.
5286
5287         * glib/dbus-binding-tool-glib.c
5288         (generate_client_glue): Protect against multiple inclusion.
5289         (dbus_binding_tool_output_glib_client): Add
5290         G_BEGIN_DECLS/G_END_DECLS.
5291
5292         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5293         Change to just take iface prefix directly.
5294         (write_formal_parameters): Clarify error message.
5295         (check_supported_parameters): New function; checks to see type
5296         signatures of method parameters are supported.
5297         (generate_client_glue): Handle ignore_unsupported flag.
5298         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5299         parameter.
5300
5301         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5302         --ignore-unsupported by default until glib bindings
5303         support arrays.
5304
5305 2005-03-11  Colin Walters  <walters@verbum.org>
5306
5307         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5308         install it.
5309
5310         * bus/print-introspect.c: New file; prints introspection
5311         data for a given name and object path.
5312
5313         * bus/run-with-tmp-session-bus.sh: New file, refactored
5314         from test/glib/run-test.sh.  Creates a temporary session
5315         bus and runs another program.
5316
5317         * test/glib/run-test.sh: Refactor to invoke
5318         run-with-tmp-session-bus.sh.
5319
5320         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5321         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5322         macros instead of hardcoding.
5323
5324         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5325
5326 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5327
5328         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5329         this unref; it doesn't match up evenly in some codepaths.
5330         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5331         this evenly matches with the ref near the top of this function.
5332
5333 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5334
5335         * dbus/dbus-object-tree.c
5336         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5337         and we try to unregister a path that's not registered, still go
5338         through the process of unlocking and don't just return.
5339
5340 2005-03-09  Colin Walters  <walters@verbum.org>
5341
5342         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5343         to this are generated for client-side wrappers.  Invokes a
5344         D-BUS method and returns reply values.  
5345
5346         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5347         function; writes signature string for argument direction.
5348         (write_args_for_direction): Change to pass input values directly
5349         instead of via address, and fix indentation.
5350         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5351         make generated wrappers inlineable.
5352
5353         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5354         note about using dbus_type_is_fixed.
5355
5356         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5357         dbus/dbus-signature.c as dbus_type_is_fixed.
5358
5359         All callers updated.
5360
5361         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5362         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5363
5364         * dbus/dbus-signature.h: Prototype.
5365
5366         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5367         error printf code.
5368
5369         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5370         appropriate instead of just freeing it.
5371         (main): Free returned strings using g_free.
5372
5373         * test/glib/Makefile.am (test-service-glib-glue.h)
5374         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5375
5376         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5377         simply maps a simple D-BUS type to GType.
5378         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5379         GType.
5380         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5381         initialize the value with it.
5382         (dbus_gvalue_binding_type_from_type): Unused, delete.
5383         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5384         various types instead of unmarshalling to value data directly.
5385         Remove can_convert boolean.
5386         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5387         returning directly instead of using can_convert boolean.
5388         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5389         Stores a GValue in a pointer to a value of its corresponding C
5390         type.
5391
5392         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5393         add dbus_gvalue_store.
5394
5395 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5396
5397         Fix a bunch of lifecycle and memory management problems
5398         in the mono bindings.
5399
5400         * mono/Arguments.cs (Arguments): Implement IDisposable
5401
5402         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5403         strictly a static class.
5404
5405         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5406         delegates into this file.
5407         (Connection): Implement IDisposable.
5408         (Dispose): Disconnect the connection and set the raw connection
5409         pointer to IntPtr.Zero.
5410         (~Connection): Call Dispose().
5411         (RegisterObjectPath): Added.  Manages the registration of object
5412         paths so we can cleanly disconnect them at dispose/finalize time.
5413         (UnregisterObjectPath): Ditto.
5414         (set_RawConnection): Unregister all of the object paths when
5415         changing the underlying DBusConnection.  Add them back onto the
5416         new connection, if any.
5417
5418         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5419         more unmanaged resources anymore, so it's not necessary.  Move all
5420         the DBusObjectPathVTable stuff out of here.
5421         (Handler): Save references to our delegates so that they don't get
5422         finalized.  Call Connection.RegisterObjectPath() instead of
5423         dbus_connection_register_object_path() directly.
5424         (Message_Called): Dispose the message after we're finished with
5425         it.
5426
5427         * mono/Message.cs (Message): Implement IDisposable.
5428         (Dispose): Dispose the Arguments, and set the RawMessage to
5429         IntPtr.Zero.
5430         (SendWithReplyAndBlock): We own the ref to the reply that comes
5431         back from dbus_connection_send_with_reply_and_block() so add a
5432         comment about that and unref it after we've constructed a managed
5433         MethodReturn class around it.  Fixes a big, big leak.
5434
5435         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5436         method.
5437         (BuildSignalHandler): After we've sent the Signal message, dispose
5438         of it.
5439         (BuildMethod): Dispose of the method call and reply messages after
5440         we've sent the message and extracted the data we want from the
5441         reply.
5442
5443         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5444         anymore.
5445         (Service_FilterCalled): Dispose of the message after we're
5446         finished with it.
5447
5448 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5449
5450         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5451         After we attach our pending call to the connection, unref
5452         it.  Fixes a leak.
5453  
5454         * mono/Connection.cs (set_RawConnection): Disconnect our
5455         filter and match callbacks from the old connection and
5456         reconnect them to the new connection, if any.
5457
5458         * mono/DBusType/Array.cs: "Code" is a static member, so
5459         don't use "this" to refer to it.  Fix for stricter checking
5460         in Mono 1.1.4.
5461  
5462         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5463         object path that we pass into unmanaged code.
5464  
5465         * mono/DBusType/String.cs (Append): Don't leak the string
5466         that we pass into unmanged code.
5467
5468 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5469         * NEWS: Update for 0.31
5470
5471         * configure.in: Release 0.31
5472         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5473
5474         * qt/Makefile.am: fixed build
5475
5476         * dbus/Makefile.am: soname bump for libdbus
5477
5478         * glib/Makefile.am: soname bump for libdbus-glib
5479
5480 2005-03-05  Havoc Pennington  <hp@redhat.com>
5481
5482         * dbus/dbus-sysdeps.c:
5483         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5484         value
5485         (_dbus_generate_random_bytes_buffer): fix return value
5486
5487         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5488         checks actually work, from Tom Parker <fdo@tevp.net>
5489
5490 2005-03-01  Colin Walters  <walters@verbum.org>
5491
5492         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5493         functions copied from dbus-glib-tool.c.
5494         (main): Convert lots of error code to use them.
5495         Also add some testing for introspection bits.
5496
5497 2005-03-01  Colin Walters  <walters@verbum.org>
5498         
5499         * doc/TODO: Remove introspection signature TODO.
5500
5501 2005-02-27  Colin Walters  <walters@verbum.org>
5502
5503         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5504         Change return value to const char * instead of int so we can do
5505         full signatures.
5506         (struct PropertyInfo, struct ArgInfo): Store char *.
5507         (property_info_new, arg_info_new): Update parameters, strdup.
5508         (property_info_unref, arg_info_unref): Free.
5509
5510         * glib/dbus-gidl.h: Update prototypes.
5511
5512         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5513         (validate_signature): New function, just validates signature and
5514         sets GError.
5515         (parse_property, parse_arg): Invoke validate_signature.  Store
5516         signature instead of just type code.
5517
5518         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5519         function to return a primary type for a signature, dropping
5520         information about types in container types.
5521         (dbus_gvalue_genmarshal_name_from_type)
5522         (dbus_gvalue_binding_type_from_type)
5523         (dbus_gvalue_ctype_from_type): Update to take full signature
5524          instead of type code.
5525         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5526
5527         * glib/dbus-gvalue.h: Update prototypes for above.
5528
5529         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5530         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5531         (introspect_properties, introspect_signals, write_interface):
5532         Update to handle signatures, and remove usage of
5533         _dbus_gutils_type_to_string.
5534         (handle_introspect): Print out type codes instead of e.g. "string"
5535         in hardcoded introspection XML; also use x_AS_STRING constants
5536         instead of hardcoding in string.
5537
5538         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5539         to string.  Remove usage of _dbus_gutils_type_to_string.
5540
5541         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5542
5543         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5544         deletion.
5545         
5546         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5547         (compute_marshaller_name, generate_glue): Handle signature change
5548         to string.
5549         (write_formal_parameters, write_args_for_direction): Ditto, and
5550         remove FIXME.
5551
5552         * tools/dbus-tree-view.c (type_to_string): Delete.
5553         (info_set_func_text): Update to print full signatures.
5554
5555         * test/glib/test-service-glib.xml: Change types to new
5556         introspection format.
5557
5558 2005-02-26  Havoc Pennington  <hp@redhat.com>
5559
5560         * doc/TODO: remove the "guid" item
5561
5562         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5563         (with_bus_thread_func): use open_private
5564
5565         * dbus/dbus-connection.c (dbus_connection_open_private): new
5566         function that works like the old dbus_connection_open()
5567         (dbus_connection_open): now returns an existing connection if
5568         possible
5569
5570         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5571         through the GUID to the transport
5572
5573         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5574         GUID in hex-encoded form.
5575
5576         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5577         pass GUID argument in to the transport
5578
5579         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5580         guid argument
5581
5582         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5583
5584         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5585
5586 2005-02-25  Havoc Pennington  <hp@redhat.com>
5587
5588         * doc/dbus-specification.xml: document the GUID thing
5589
5590         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5591         globally unique ID for the server, and put a "guid=hexencoded"
5592         field in the address
5593
5594         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5595
5596         * dbus/dbus-message.c: ditto
5597
5598         * dbus/dbus-dataslot.c: ditto
5599
5600         * dbus/dbus-list.c: ditto
5601
5602         * dbus/dbus-internals.h: wait, just include
5603         dbus-threads-internal.h here
5604         
5605         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5606         use in main library
5607
5608         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5609
5610 2005-02-24  Colin Walters  <walters@verbum.org>
5611
5612         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5613
5614 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5615
5616         * glib/Makefile.am: added dbus-gobject.h to sources list
5617         so distcheck doesn't fail
5618         
5619 2005-02-24  Havoc Pennington  <hp@redhat.com>
5620
5621         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5622         you must disconnect before unref, since locking and other things
5623         are screwed up otherwise. Fix assorted other locking stuff.
5624
5625         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5626         fix compilation
5627
5628         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5629         into a private header and don't export from the library
5630
5631         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5632
5633 2005-02-24  Colin Walters  <walters@verbum.org>
5634         
5635         * dbus/dbus-signature.c: New file; implements various functions
5636         related to type signatures.  Includes an interator for parsing,
5637         validation functions.
5638         (dbus_type_is_basic): Moved here from
5639         dbus-marshal-basic.c:_dbus_type_is_basic.
5640         (dbus_type_is_container): Moved here from
5641         dbus-marshal-basic.c:_dbus_type_is_container.
5642
5643         All callers of _dbus_type_is_container and _dbus_type_is_basic
5644         updated, and include dbus-signature.h.
5645
5646         * dbus/dbus-signature.h: New file; prototypes for the above.
5647
5648         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5649         dbus-signature.h.
5650
5651         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5652         function factored out of _dbus_first_type_in_signature.
5653         (_dbus_first_type_in_signature_c_str): New function; returns first
5654         type code for a type signature character.
5655
5656         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5657         handle function moves.
5658
5659         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5660
5661         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5662         function; skips to next complete type in type signature.
5663         Implemented using previous skip_one_complete_type.  Now
5664         skip_one_complete_type just delegates to
5665         _dbus_type_signature_next.
5666
5667         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5668         to dbus-signature.c
5669         (_dbus_type_is_container): Ditto.
5670
5671         * doc/dbus-specification.xml: Update introspection sample to
5672         use real type signatures.
5673
5674         * dbus/dbus-test.h: Prototype signature test.
5675
5676         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5677         signature tests.
5678
5679         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5680
5681 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5682
5683         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5684         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5685
5686 2005-02-21  Colin Walters  <walters@verbum.org>
5687
5688         * dbus/dbus-test-main.c (main): Take optional specific test
5689         argument.
5690
5691         * dbus/dbus-test.c (run_test): New function, runs a test function
5692         with no data directory.
5693         (run_data_test): Like above, but takes data directory.
5694         (dbus_internal_do_not_use_run_tests): Take
5695         specific test argument.  Replace lots of cut n' paste code
5696         with run_test and run_data_test.
5697
5698         * dbus/dbus-test.h: Update prototype for
5699         dbus_internal_do_not_use_run_tests.
5700
5701 2005-02-20  Havoc Pennington  <hp@redhat.com>
5702
5703         Fix bugs reported by Daniel P. Berrange
5704         
5705         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5706         (protected_change_watch): new function
5707         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5708         (_dbus_server_add_watch): change to work like the
5709         dbus-connection.c equivalents; like those, probably kind of
5710         busted, but should at least mostly work for now
5711         (dbus_server_disconnect): drop the lock if we were already
5712         disconnected, patch from Daniel P. Berrange
5713
5714         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5715         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5716         same stuff
5717
5718         * doc/TODO: todo about unscrewing this mess
5719
5720 2005-02-19  Colin Walters  <walters@verbum.org>
5721
5722         * glib/dbus-binding-tool-glib.c
5723         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5724
5725         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5726         as errno.h and sys/stat.h.
5727         (lose): New function, prints error with
5728         newline and exits.
5729         (lose_gerror): Similar, but takes GError for message.
5730         (main): Add --output argument to specify output file to write to,
5731         instead of always printing to stdout.  In this mode, determine
5732         timestamps on source files to see whether any are newer than the
5733         target file.  If not, exit.  Also convert a number of error
5734         messages to use lose (since it's shorter), and switch to using
5735         g_io_channel_shutdown.
5736
5737 2005-02-19  Havoc Pennington  <hp@redhat.com>
5738
5739         * glib/dbus-gobject.c
5740         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5741
5742         * glib/dbus-glib.c: fix doxygen warnings
5743
5744         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5745         is found on an <arg>
5746
5747 2005-02-17  Colin Walters  <walters@verbum.org>
5748
5749         * glib/dbus-gobject.h: Don't export
5750         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5751         
5752         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5753         (invoke_object_method): Handle it.
5754
5755         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5756         Handle rename.
5757         
5758 2005-02-17  Colin Walters  <walters@verbum.org>
5759
5760         * bus/.cvsignore, doc/.cvsignore
5761         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5762         Update.
5763
5764 2005-02-17  Colin Walters  <walters@verbum.org>
5765         
5766         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5767         Rename to DBUS_SERVICE_DBUS.
5768         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5769         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5770         Change the value from "org.freedesktop.Local"
5771         to "org.freedesktop.DBus.Local".
5772         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5773         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5774         DBUS_INTERFACE_INTROSPECTABLE.
5775         Change the value from "org.freedesktop.Introspectable"
5776         to "org.freedesktop.DBus.Introspectable".
5777         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5778         DBUS_INTERFACE_PROPERTIES.
5779         Change the value from "org.freedesktop.Properties"
5780         to "org.freedesktop.DBus.Properties".
5781         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5782         DBUS_INTERFACE_PEER.
5783         Change the value from "org.freedesktop.Peer"
5784         to "org.freedesktop.DBus.Peer".
5785         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5786         DBUS_INTERFACE_LOCAL.
5787         Change the value from "org.freedesktop.Local"
5788         to "org.freedesktop.DBus.Local".
5789
5790         All other users of those constants have been changed.
5791
5792         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5793
5794         * glib/dbus-gobject.c (handle_introspect): Use constants.
5795
5796         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5797
5798 2005-02-17  Colin Walters  <walters@verbum.org>
5799
5800         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5801         (parse_node, parse_interface, parse_method, parse_signal)
5802         (parse_property, parse_annotation): Lose if we're currently in an
5803         annotation.
5804         (parse_annotation): New function.
5805         (parser_start_element, parser_end_element): Handle annotation.
5806         (parse_method, parse_interface): Remove support for c_name attribute,
5807         switch to annotations.
5808
5809         * glib/dbus-gidl.h (interface_info_get_binding_names)
5810         (method_info_get_binding_names)
5811         (interface_info_get_binding_name, method_info_get_binding_name)
5812         (interface_info_set_binding_name, method_info_set_binding_name):
5813         Remove.
5814         (interface_info_get_annotations, method_info_get_annotations)
5815         (interface_info_get_annotation, method_info_get_annotation)
5816         (interface_info_add_annotation, method_info_add_annotation):
5817         Prototype.
5818
5819         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5820         for "bindings".
5821         (struct MethodInfo): Ditto.
5822         Straightfoward conversion of binding methods into annotation methods
5823         as prototyped.
5824
5825         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5826
5827         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5828
5829         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5830         Use new annotation API.
5831
5832         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5833         annotation element.
5834         
5835         * doc/dbus-specification.xml: Discuss introspection annotations,
5836         include list of well-known annotations.
5837
5838         * test/glib/test-service-glib.xml: Make validate against new DTD.
5839
5840 2005-02-17  Colin Walters  <walters@verbum.org>
5841
5842         This patch is based on initial work from
5843         Paul Kuliniewicz <kuliniew@purdue.edu>.
5844
5845         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5846         initialization of GValue from dbus type to here.
5847         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5848         for the "glib-genmarshal" program from a DBus type.
5849         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5850         into the C name for it we use in the glib bindings.
5851         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5852         glib C type (not GValue).
5853         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5854
5855         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5856         from dbus-gobject.c.
5857
5858         * glib/dbus-gutils.h: Prototype it.
5859
5860         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5861         (marshal_dbus_message_to_g_marshaller): Use new shared function
5862         dbus_glib_marshal_dbus_message_to_gvalue_array.
5863
5864         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5865         Will be changed once we have annotations.
5866
5867         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5868         GStaticRWLock.  Callers updated.
5869         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5870         (string_table_next): New function for iterating over zero-terminated
5871         string value array.
5872         (string_table_lookup): New function; retrieves specific entry in
5873         array.
5874         (get_method_data): New function; look up method data in object data chunk.
5875         (object_error_domain_prefix_from_object_info)
5876         (object_error_code_from_object_info): New functions, but not implemented yet.
5877         (method_interface_from_object_info): New function; retrieve interface name.
5878         (method_name_from_object_info): New function; retrieve method name.
5879         (method_arg_info_from_object_info): New function; retrieve argument data.
5880         (arg_iterate): New function; iterates over serialized argument data.
5881         (method_dir_signature_from_object_info): New function; returns a
5882         GString holding type signature for arguments for just one
5883         direction (input or output).
5884         (method_input_signature_from_object_info)
5885         (method_output_signature_from_object_info): New functions.
5886         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5887         converts dbus message arguments into a GValue array.  Used for both
5888         signal handling and method invocation.
5889         (struct DBusGlibWriteIterfaceData): New utility structure.
5890         (write_interface): New function; generate introspection XML for
5891         an interface.
5892         (introspect_interfaces): New function; gathers all interface->methods,
5893         generates introspection XML for them.
5894         (handle_introspect): Invoke introspect_interfaces.
5895         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5896         (lookup_object_and_method): New function; examines an incoming message
5897         and attempts to match it up (via interface, method name, and argument
5898         signature) with a known object and method.
5899         (gerror_domaincode_to_dbus_error_name): New function; converts a
5900         GError domain and code into a DBus error name.  Needs GError data
5901         added to object introspection to work well.
5902         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5903         GError.
5904         (invoke_object_method): New function to invoke an object method
5905         looked up via lookup_object_and_method.  Parses the incoming
5906         message, turns it into a GValue array, then invokes the marshaller
5907         specified in the DBusGMethodInfo.  Creates a new message with
5908         either return values or error message as appropriate.
5909         (gobject_message_function): Invoke lookup_object_and_method and
5910         invoke_object_method.
5911
5912         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5913         (enum DBusBindingOutputMode): New enum for binding output modes.
5914         (pretty_print): Print binding names.
5915         (dbus_binding_tool_error_quark): GError bits.
5916         (version): Fix typo.
5917         (main): Create GIOChannel for output.  Parse new --mode argument,
5918         possible values are "pretty-print", "glib-server", "glib-client".
5919         Use mode to invoke appropriate function.
5920         
5921         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5922
5923         * glib/dbus-glib-tool.h: New header, just includes GError bits
5924         for now.
5925
5926         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5927         maps binding style to name.
5928         (struct MethodInfo): Ditto.
5929         (get_hash_keys, get_hash_key): Utility function, returns keys for
5930         a GHashTable.
5931         (interface_info_new, method_info_new): Initialize bindings.
5932         (interface_info_unref, method_info_unref): Destroy bindings.
5933         (method_info_get_binding_names, method_info_get_binding_name)
5934         (interface_info_get_binding_names, interface_info_get_binding_name):
5935         Functions for retrieving binding names.
5936         (method_info_set_binding_name, interface_info_set_binding_name):
5937         Functions for setting binding names.
5938
5939         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5940         for glib binding generation.
5941
5942         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5943         and client-side glib glue generation.
5944
5945         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5946         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5947         dbus-glib-tool.h.
5948
5949         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5950         of using GClosureMarshal directly.
5951         (struct DBusGObjectInfo): Add n_infos member.
5952
5953         * test/glib/test-service-glib.xml: New file; contains introspection data
5954         for MyTestObject used in test-service-glib.c.
5955
5956         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5957         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5958         (my_object_uppercase, my_object_many_args): New test methods.
5959         (main): Use dbus_g_object_class_install_info to include generated object
5960         info.
5961
5962         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5963         as well as client-side bindings.
5964
5965         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5966         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5967         using both the dbus_gproxy stuff directly as well as the generated bindings.
5968
5969 2005-02-15  Havoc Pennington  <hp@redhat.com>
5970
5971         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5972         complete a pending call, don't run filters first.
5973
5974         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5975         dbus_pending_call_steal_reply
5976
5977         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5978         _dbus_connection_block_pending_call
5979         (dbus_pending_call_get_reply): change to steal_reply and return a
5980         ref
5981
5982         * dbus/dbus-connection.c
5983         (dbus_connection_send_with_reply_and_block): port to work in terms
5984         of DBusPendingCall
5985         (_dbus_connection_block_pending_call): replace block_for_reply
5986         with this
5987
5988 2005-02-14  Havoc Pennington  <hp@redhat.com>
5989
5990         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5991         properly handle looking up group information by name; fix 
5992         from j@bootlab.org
5993
5994 2005-02-13  Havoc Pennington  <hp@redhat.com>
5995
5996         * dbus/dbus-connection.c (dbus_connection_return_message) 
5997         (dbus_connection_borrow_message): hold dispatch lock while message
5998         is outstanding
5999         (_dbus_connection_block_for_reply): hold dispatch lock while we
6000         block for the reply, so nobody steals our reply
6001         (dbus_connection_pop_message): hold the dispatch lock while we
6002         pluck the message
6003
6004 2005-02-13  Havoc Pennington  <hp@redhat.com>
6005
6006         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6007         (_dbus_connection_release_dispatch)
6008         (_dbus_connection_acquire_io_path)
6009         (_dbus_connection_release_io_path): make the mutex and condvar
6010         control access to the "acquired" flag. Drop the connection lock
6011         while waiting on the condvar. Hopefully these are baby steps in
6012         roughly the right direction.
6013
6014 2005-02-13  Havoc Pennington  <hp@redhat.com>
6015
6016         * dbus/dbus-connection.c: use separate mutexes for the condition
6017         variables; this is some kind of baseline for sanity, but the
6018         condition variables still aren't used correctly afaict
6019
6020 2005-02-13  Havoc Pennington  <hp@redhat.com>
6021
6022         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6023         fix a double-unlock
6024
6025         * dbus/dbus-connection.c
6026         (_dbus_connection_detach_pending_call_unlocked): add this
6027
6028         Initial semi-correct pass through to fix thread locking; there are
6029         still some issues with the condition variable paths I'm pretty
6030         sure
6031         
6032         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6033         lock/unlock calls
6034
6035         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6036         rename to add _unlocked
6037         (struct DBusConnection): move "dispatch_acquired" and
6038         "io_path_acquired" to use only one bit each.
6039         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6040         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6041         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6042         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6043         (_dbus_connection_remove_timeout) 
6044         (_dbus_connection_toggle_timeout): drop lock when calling out to
6045         user functions; done in a hacky/bad way.
6046         (_dbus_connection_send_and_unlock): add a missing unlock
6047         (_dbus_connection_block_for_reply): add a missing unlock
6048
6049         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6050         drop lock in a hacky probably unsafe way to call out to user
6051         function
6052
6053 2005-02-12  Havoc Pennington  <hp@redhat.com>
6054
6055         * tools/dbus-tree-view.c (info_set_func_text): display more
6056         details on args
6057
6058         * bus/driver.c (bus_driver_handle_list_services): list the bus
6059         driver
6060
6061         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6062
6063         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6064         (method_info_get_n_args): new function
6065
6066 2005-02-12  Havoc Pennington  <hp@redhat.com>
6067
6068         * bus/driver.c (bus_driver_handle_introspect): add introspection
6069         for bus driver
6070
6071 2005-02-12  Havoc Pennington  <hp@redhat.com>
6072
6073         * bus/driver.c: put the signature of each bus driver method in the
6074         table of handlers and check it on incoming calls; this isn't
6075         really useful, but going to add introspect support in a minute.
6076
6077 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6078
6079         * mono/Connection.cs: The unpredictability of finalizers in mono
6080         prevents us from deterministically disconnecting the filters from
6081         the Service class's finalizer, so move tracking of filters and
6082         matches here.  Add API for that.
6083
6084         * mono/Service.cs: Remove the code, add code which calls the
6085         methods now on the Connection class.
6086
6087 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6088
6089         * python/dbus.py (class Sender): added to support dbus signals better
6090         (Bus::add_signal_receiver): added expand_args parameter which defaults
6091         to True.  When expand args is True the signal handler will pass the 
6092         message arguments as parameters to the signal handler.  If False
6093         revert to previous behavior where the signal handler must get the
6094         argument list from the message.  This is to help port applications
6095         like HAL that have a tendancy to send variable length argument lists.
6096         self._match_rule_to_receivers is now a dict of dicts.
6097         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6098         removing it from a list
6099         (Bus::_signal_func): change signal handlers so that interface,
6100         signal_name, service, path and message are packed into a Sender
6101         object and that is passed to the handler.  If expand_args is True
6102         extract the args list from the message and append it to the parameter
6103         list
6104         
6105         * python/dbus_bindings.pyx.in (class Signature): added to support 
6106         signiature types
6107         (MessageIter::__init__): changed iteration limit to match D-BUS
6108         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6109         STRUCT and VARIENT type support
6110         (MessageIter::python_value_to_dbus_sig): made recursive to support
6111         recursive types
6112         (MessageIter::append*): added Signature, dict, tuple 
6113         support
6114
6115         * python/examples/example-client.py: added examples of getting tuples
6116         and dicts
6117
6118         * python/examples/example-service.py: added examples of sending tuples
6119         and dicts
6120
6121         * python/examples/example-signal-recipient.py: Fixed to handle new
6122         signal callback format
6123
6124 2005-02-10  Havoc Pennington  <hp@redhat.com>
6125
6126         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6127         (call dbus_g_proxy_add_signal)
6128
6129         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6130         escape the hostname
6131         (_dbus_server_new_for_domain_socket): escape the path
6132
6133         * dbus/dbus-address.c (dbus_address_escape_value): new
6134         (dbus_address_unescape_value): new
6135         (dbus_parse_address): unescape values
6136
6137         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6138
6139         * doc/dbus-specification.xml: explain how to escape values in
6140         addresses
6141
6142 2005-02-10  Havoc Pennington  <hp@redhat.com>
6143
6144         * dbus/dbus-message-factory.c (generate_special): modify test to
6145         avoid using a non-basic dict key
6146
6147         * dbus/dbus-marshal-validate-util.c: add test for the below
6148
6149         * doc/dbus-specification.xml: require that dict keys are a basic
6150         type
6151
6152         * dbus/dbus-marshal-validate.c
6153         (_dbus_validate_signature_with_reason): require that dict key is a
6154         basic type
6155
6156 2005-02-10  Havoc Pennington  <hp@redhat.com>
6157
6158         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6159         change to be _and_unlock instead of _unlocked
6160
6161         * dbus/dbus-connection.c
6162         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6163         have no_update so we can find this bug quickly in future
6164
6165 2005-02-10  Havoc Pennington  <hp@redhat.com>
6166
6167         * dbus/dbus-message-util.c (verify_test_message): tests for string
6168         array
6169
6170         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6171         support for arrays of string/signature/path
6172
6173 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6174
6175         * dbus/dbus-connection.c
6176         (_dbus_connection_queue_received_message_link,
6177         _dbus_connection_message_sent): Add the path to
6178         the verbose output.
6179         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6180         _dbus_connection_send_preallocated_unlocked(), updated the
6181         dispatch status, and unlocks.  Fixes a bug where certain
6182         situations (like a broken pipe) could cause a Disconnect message
6183         to not be sent, tricking the bus into thinking a service was still
6184         there when the process had quit.
6185         (_dbus_connection_send_preallocated): Call
6186         _dbus_connection_send_preallocated_and_unlock().
6187         (_dbus_connection_send_and_unlock): Added.  Calls
6188         _dbus_connection_send_preallocated_and_unlock().
6189         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6190         (dbus_connection_send_with_reply): Update the dispatch status and
6191         unlock.
6192
6193         * mono/Service.cs (~Service): Added.  Removes the filter so that
6194         we don't get unmanaged code calling back into a GCed delegate.
6195         (RemoveFilter); Added.
6196
6197 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6198
6199         * dbus/dbus-message.c (dbus_message_iter_open_container):
6200         - Removed check for iterator type being an array because
6201         get_arg_type does not work with writer iterators
6202         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6203
6204 2005-02-07  Havoc Pennington  <hp@redhat.com>
6205
6206         * doc/dbus-specification.xml: some more language cleanups; add
6207         stuff about how to deal with invalid protocol and extension
6208         points; add _ to allowed chars in auth commands; add EXTENSION_
6209         auth command prefix
6210
6211 2005-02-06  Havoc Pennington  <hp@redhat.com>
6212
6213         * s/expected/required/ in a couple places for clarity
6214
6215 2005-02-07  Colin Walters  <walters@verbum.org>
6216
6217         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6218         sender or proposed_recipient.
6219
6220 2005-02-06  Havoc Pennington  <hp@redhat.com>
6221
6222         * dbus/dbus-message-factory.c (generate_special): more tests
6223
6224         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6225         array length that exceeds the maximum
6226
6227 2005-02-05  Havoc Pennington  <hp@redhat.com>
6228
6229         * dbus/dbus-message-factory.c (generate_special): more test cases,
6230         increasing coverage
6231
6232         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6233         reason why a signature was invalid
6234
6235         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6236         skip the length of the string before we look at it in validation
6237
6238         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6239         equal_substring
6240
6241         * dbus/dbus-message.c (_dbus_message_loader_new): default
6242         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6243
6244 2005-02-05  Havoc Pennington  <hp@redhat.com>
6245
6246         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6247         if the signature of a variant was empty
6248         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6249         struct with no element type)
6250
6251         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6252         mangled messages to break things
6253
6254 2005-02-04  Havoc Pennington  <hp@redhat.com>
6255
6256         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6257         g_quark_try_string() so it actually can return 0
6258         (dbus_g_proxy_connect_signal): ditto
6259
6260 2005-02-04  Havoc Pennington  <hp@redhat.com>
6261
6262         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6263         bogus warning
6264         (tristring_from_message): assert cleanly on null path/interface
6265         (should not be possible though I decided later)
6266         (dbus_g_proxy_dispose): move proxy manager unregistration here
6267         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6268         g_return_if_fail() checks
6269
6270 2005-02-04  Havoc Pennington  <hp@redhat.com>
6271
6272         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6273
6274         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6275         (with some minor changes)
6276
6277         * doc/dbus-specification.xml: add deprecated attribute to
6278         introspection format
6279
6280 2005-01-31  Havoc Pennington  <hp@redhat.com>
6281
6282         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6283         think it's sort of right
6284
6285 2005-01-30  Havoc Pennington  <hp@redhat.com>
6286
6287         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6288
6289 2005-01-30  Havoc Pennington  <hp@redhat.com>
6290
6291         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6292
6293         * autogen.sh: change to autotools 1.9
6294
6295         * glib/dbus-gproxy.c: completely change how signals work
6296         (dbus_g_proxy_add_signal): new function to specify signature of a
6297         signal
6298         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6299         and g_warning if the incoming message has the wrong signature.
6300
6301 2005-01-30  Havoc Pennington  <hp@redhat.com>
6302
6303         * tools/dbus-names-model.c (have_names_notify): fix this
6304
6305         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6306         up the string array handling a bit 
6307
6308 2005-01-30  Havoc Pennington  <hp@redhat.com>
6309
6310         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6311         (dbus_g_pending_call_cancel): new function
6312
6313         * dbus/dbus-glib.h: move GType decls for connection/message here;
6314         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6315         here, just kind of rationalizing how we handle all that
6316
6317         * tools/dbus-names-model.c: new file for a tree model listing the
6318         services on a bus
6319
6320         * tools/dbus-tree-view.c (model_new): use proper typing on the
6321         model rows
6322
6323 2005-01-30  Havoc Pennington  <hp@redhat.com>
6324
6325         * glib/dbus-gmain.c: add a custom GSource back that just checks
6326         whether the message queue has anything in it; otherwise, there are 
6327         cases where we won't see messages in the queue since there was no 
6328         IO visible to the glib main loop
6329
6330         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6331         increase default message timeout to 25 seconds
6332
6333 2005-01-30  Havoc Pennington  <hp@redhat.com>
6334
6335         * test/glib/test-profile.c (no_bus_stop_server): remove the
6336         warning about the g_warning that I just fixed
6337
6338         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6339         custom source, seems to be a lot easier to understand and work
6340         better.
6341
6342 2005-01-30  Havoc Pennington  <hp@redhat.com>
6343
6344         I think this main loop thing is conceptually broken, but here are 
6345         some band aids. I'll maybe rewrite it in a minute.
6346         
6347         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6348         custom GSource, so don't pass it in; confusing
6349         (gsource_server_finalize, gsource_connection_finalize): add
6350         finalize handlers that remove all the watches.  
6351
6352 2005-01-30  Havoc Pennington  <hp@redhat.com>
6353
6354         * glib/dbus-gobject.c (introspect_properties): fix the XML
6355         generated
6356
6357         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6358         which effectively detects the use of freed messages
6359
6360         * glib/dbus-gobject.c (handle_introspect): modify and return the
6361         reply message instead of the incoming message
6362
6363         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6364         gee, maybe it should SEND THE XML instead of just making a string
6365         and freeing it again ;-)
6366
6367         * tools/dbus-print-message.c (print_message): improve printing of
6368         messages
6369
6370         * configure.in: add debug-glib.service to the output
6371
6372 2005-01-30  Havoc Pennington  <hp@redhat.com>
6373
6374         dbus-viewer introspected and displayed the bus driver
6375         
6376         * dbus/dbus-object-tree.c 
6377         (object_tree_test_iteration): add tests for a handler registered on "/"
6378
6379         * dbus/dbus-object-tree.c
6380         (_dbus_decompose_path): fix to handle path "/" properly
6381         (run_decompose_tests): add tests for path decomposition
6382         
6383         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6384         properly
6385
6386         * glib/dbus-gobject.c (handle_introspect): fix quotes
6387
6388         * test/glib/run-test.sh: support launching the bus, then running
6389         dbus-viewer
6390
6391         * test/glib/test-service-glib.c (main): put in a trivial gobject
6392         subclass and register it on the connection
6393
6394         * bus/driver.c (bus_driver_handle_introspect): implement
6395         introspection of the bus driver service
6396
6397         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6398         identifiers, doctype decl
6399
6400         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6401         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6402         returning the service unchanged.
6403         (bus_driver_handle_message): remove old check for reply_serial in
6404         method calls, now the message type deals with that
6405         (bus_driver_handle_message): handle NULL interface
6406
6407         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6408
6409         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6410         -1 for len
6411
6412         * tools/dbus-viewer.c: add support for introspecting a service on
6413         a bus
6414
6415         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6416         (dbus_g_pending_call_unref): add
6417
6418 2005-01-29  Havoc Pennington  <hp@redhat.com>
6419
6420         * tools/dbus-tree-view.c: add support for displaying properties.
6421         (run dbus-viewer with an introspect xml file as arg, then resize
6422         the window so the tree elements show up, not sure what that is)
6423
6424         * glib/dbus-gobject.c (handle_introspect): return
6425         org.freedesktop.Properties and org.freedesktop.Introspectable
6426         interfaces when we are introspected.
6427
6428         * doc/dbus-specification.xml: allow empty interface name when 
6429         Get/Set a property
6430
6431 2005-01-29  Havoc Pennington  <hp@redhat.com>
6432
6433         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6434         though it uses glib, it could be extended for any binding in
6435         principle
6436
6437         * glib/dbus-gobject.c (gobject_message_function): change to the
6438         new way properties work
6439
6440         * dbus/dbus-protocol.h: add the new interfaces
6441
6442         * doc/dbus-specification.xml: document the introspection format,
6443         Introspectable interface, and add an org.freedesktop.Properties
6444         interface.
6445
6446         * glib/dbus-gparser.c: add support for a <property> element
6447
6448         * glib/dbus-gidl.c: add PropertyInfo
6449
6450         * glib/dbus-gobject.c (handle_introspect): put the outermost
6451         <node> outside the signal and property descriptions.
6452         (introspect_properties): export properties as <property> rather
6453         than as method calls
6454
6455 2005-01-28  Havoc Pennington  <hp@redhat.com>
6456
6457         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6458         related to authentication protocol
6459
6460 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6461
6462         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6463                 - BUS_ACTIVATION -> BUS_STARTER
6464                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6465                 - class MessageIter (__init__): Added recursion checking 
6466                 so we throw a nice error instead of just disconnecting from the
6467                 bus.
6468                 (get): Added arg_type parameter for recursion.
6469                 Removed the nil type
6470                 Added signiture type placeholder (not implemented)
6471                 Added struct type placeholder (not implemented)
6472                 Added varient type placeholder (not implemented)
6473                 Commented out dict type for now     
6474                 (get_element_type): renamed from get_array_type
6475                 (get_*): changed to use the dbus_message_iter_get_basic API
6476                 (get_*_array): removed in favor of recursive get_array method
6477                 (get_array): new recursive method which calls get to marshal
6478                 the elements of the array
6479                 (value_to_dbus_sig): New method returns the corrasponding
6480                 dbus signiture to a python value
6481                 (append): Comment out dict handling for now
6482                 Handle lists with the new recursive API
6483                 Comment out None handling for now
6484                 (append_nil): removed
6485                 (append_*): changed to use dbus_message_iter_append_basic API
6486                 (append_*_array): removed in favor of recursive append_array 
6487                 method
6488                 (__str__): Make it easier to print out recursive iterators
6489                 for debugging
6490                 - class Message (__str__): moved type inspection to the
6491                 MessageIter class' __str__ method
6492                 (get_iter): Added an append parameter wich defaults to False
6493                 If True use the new API's to create an append iterator
6494
6495         * python/dbus.py: Update to use new bindings API
6496                 - TYPE_ACTIVATION -> TYPE_STARTER
6497                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6498                 - class ActivationBus -> class StarterBus
6499                 - class RemoteObject (__call__): get an append iterator
6500                 - (_dispatch_dbus_method_call): get an append iterator
6501                 - class Object (emit_signal): get an append iterator
6502
6503         * python/examples/: Fixed up the examples to work with the new API
6504                 
6505 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6506
6507         * configure.in: Bump version up to 0.30.
6508
6509         * HACKING: Add a release item to bump the version number up after 
6510         a release.
6511
6512 2005-01-28  Havoc Pennington  <hp@redhat.com>
6513
6514         * doc/dbus-specification.xml: update to describe 16-bit types and
6515         dict entries
6516
6517         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6518         assertion
6519
6520         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6521         type
6522
6523         * dbus/dbus-marshal-recursive.c: implement
6524
6525 2005-01-27  Havoc Pennington  <hp@redhat.com>
6526
6527         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6528
6529         * configure.in: find the right type for 16 and 32 bit ints as well
6530         as 64
6531
6532         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6533         the 16-bit types so people don't have to stuff them in 32-bit or
6534         byte arrays.
6535
6536 2005-01-27  Havoc Pennington  <hp@redhat.com>
6537
6538         * dbus/dbus-message.c: byteswap the message if you init an
6539         iterator to read/write from it
6540         
6541         * dbus/dbus-marshal-byteswap.c: new file implementing 
6542         _dbus_marshal_byteswap()
6543
6544         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6545
6546 2005-01-26  Havoc Pennington  <hp@redhat.com>
6547         
6548         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6549         build, apparently - nobody noticed?)
6550         
6551 2005-01-26  Havoc Pennington  <hp@redhat.com>
6552
6553         * dbus/dbus-marshal-recursive.h: remove todo comment
6554
6555 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6556
6557         * Land the mono binding changes to conform to the new APIs.
6558
6559         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6560         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6561
6562         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6563         type code as a string.
6564         (InitAppending): Rename dbus_message_append_iter_init() to
6565         dbus_message_iter_init_append().
6566
6567         * mono/BusDriver.cs: Rename ServiceEventHandler to
6568         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6569         Rename ServiceOwnerChanged to NameOwnerChanged.
6570
6571         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6572         underlying C call.
6573
6574         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6575
6576         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6577         dbus_bus_acquire_service() to dbus_bus_request_name().
6578
6579         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6580         of Type.UnderlyingSystemType to get the correct element type for
6581         the array.
6582         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6583         dbus_message_get_{element|arg}_type() instead of
6584         dbus_message_iter_init_array_iterator().
6585         (Append): Replace dbus_message_iter_append_array() with
6586         dbus_message_iter_open_container() and
6587         dbus_message_iter_close_container().
6588
6589         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6590         types have been removed.
6591         
6592         * mono/DBusType/*.cs: Replace calls of
6593         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6594         but specify the type in the DllImport extern declaration.  Ditto
6595         for dbus_message_iter_append_[type]() ->
6596         dbus_message_iter_append_basic().
6597
6598         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6599         NameOwnerChangedHandler.
6600
6601 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6602
6603         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6604                 - get_base_service -> get_unique_name
6605                 - bus_get_base_service -> bus_get_unique_name
6606                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6607                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6608                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6609                 - bus_activate_service -> bus_start_service_by_name
6610                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6611                 - bus_acquire_service -> bus_request_name
6612                 - dbus_bus_acquire_service -> dbus_bus_request_name
6613                 - bus_service_exists -> bus_name_has_owner
6614                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6615
6616         * python/dbus.py: Rename of methods
6617                 - activate_service -> start_service_by_name
6618                 - bus_acquire_service -> bus_request_name
6619                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6620                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6621
6622         
6623 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6624
6625         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6626         signature for the method that can't be found.
6627
6628         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6629         the message has any arguments, we need to call
6630         _dbus_type_reader_get_current_type(), not
6631         _dbus_type_reader_has_next().
6632
6633 2005-01-24  Havoc Pennington  <hp@redhat.com>
6634
6635         * dbus/dbus-message-factory.c: more testing of message validation
6636
6637         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6638         header
6639
6640 2005-01-23  Havoc Pennington  <hp@redhat.com>
6641
6642         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6643         get this all working, not many tests in the framework yet though
6644
6645 2005-01-22  Havoc Pennington  <hp@redhat.com>
6646
6647         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6648         tutorial, based on work from David Wheeler.
6649
6650 2005-01-21  Havoc Pennington  <hp@redhat.com>
6651
6652         * dbus/dbus-bus.c: add more return_if_fail checks
6653
6654         * dbus/dbus-message.c (load_message): have the "no validation"
6655         mode (have to edit the code to toggle the mode for now though)
6656
6657         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6658         skips all validation; I want to use this at least for benchmark
6659         baseline, I'm not sure if it should be a publicly-available switch.
6660
6661 2005-01-21  Havoc Pennington  <hp@redhat.com>
6662
6663         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6664         toplevel doxygen group as the low-level API stuff
6665
6666         * dbus/dbus.h: note that libdbus is the low-level API
6667
6668 2005-01-20  Havoc Pennington  <hp@redhat.com>
6669
6670         * update-dbus-docs.sh: script to update docs on the web site, only
6671         works for me though. neener.
6672
6673 2005-01-20  Havoc Pennington  <hp@redhat.com>
6674
6675         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6676         code can reveal bugs in it
6677
6678 2005-01-20  Havoc Pennington  <hp@redhat.com>
6679
6680         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6681         select() version, patches from Tor Lillqvist
6682
6683 2005-01-20  Havoc Pennington  <hp@redhat.com>
6684
6685         * doc/dbus-tutorial.xml: replace > with &gt;
6686
6687         * bus/services.c (bus_registry_acquire_service): validate the name
6688         and return a better error if it's no good.
6689
6690         * doc/dbus-specification.xml: note NO_AUTO_START change
6691
6692         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6693         from AUTO_START, we're toggling the default
6694
6695         * bus/dispatch.c: adapt the tests to change of auto-start default
6696
6697 2005-01-18  Havoc Pennington  <hp@redhat.com>
6698
6699         * rename dbus-daemon-1 to dbus-daemon throughout
6700
6701 2005-01-18  Havoc Pennington  <hp@redhat.com>
6702
6703         * Throughout, grand renaming to strip out the use of "service",
6704         just say "name" instead (or "bus name" when ambiguous).  Did not
6705         change the internal code of the message bus itself, only the
6706         programmer-facing API and messages.
6707         
6708         * doc/dbus-specification.xml: further update the message bus section
6709         
6710         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6711         in error case
6712
6713 2005-01-17  Havoc Pennington  <hp@redhat.com>
6714
6715         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6716         ever
6717
6718         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6719         "invalid name character" not only non-ASCII
6720
6721         * doc/dbus-specification.xml: further update spec, message bus 
6722         parts are still out-of-date but the marshaling etc. stuff is now
6723         accurate-ish
6724
6725 2005-01-17  Havoc Pennington  <hp@redhat.com>
6726
6727         * doc/dbus-specification.xml: partially update spec
6728
6729 2005-01-17  Havoc Pennington  <hp@redhat.com>
6730
6731         * Throughout, align variant bodies according to the contained
6732         type, rather than always to 8. Should save a fair bit of space in
6733         message headers.
6734         
6735         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6736         fix handling of case where p == end
6737
6738         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6739
6740 2005-01-17  Havoc Pennington  <hp@redhat.com>
6741
6742         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6743
6744         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6745         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6746         are marshaling/unmarshaling a boolean.
6747
6748 2005-01-16  Havoc Pennington  <hp@redhat.com>
6749
6750         This is about it on what can be disabled/deleted from libdbus
6751         easily, back below 150K anyhow. Deeper cuts are more work than 
6752         just turning the code off as I've done here.
6753         
6754         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6755         signed int convenience funcs
6756
6757         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6758         verbose mode
6759
6760         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6761         things out of libdbus
6762
6763         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6764         
6765         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6766         tests-enabled-only, though it should probably be deleted)
6767
6768         * dbus/dbus-message-util.c: same stuff
6769
6770         * dbus/dbus-auth-util.c: same stuff
6771
6772 2005-01-16  Havoc Pennington  <hp@redhat.com>
6773
6774         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6775
6776         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6777         way for stripping down dbus-userdb.c stuff included in libdbus.
6778         Rename _dbus_parse_uid for consistency.
6779
6780 2005-01-16  Havoc Pennington  <hp@redhat.com>
6781
6782         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6783         name the assertion failed in
6784
6785         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6786         (_dbus_return_val_if_fail): assert that the name of the function
6787         containing the check doesn't start with '_', since we only want to 
6788         use checks on public functions
6789         
6790         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6791         checks to assertions
6792
6793         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6794         change checks to asserts for private function
6795
6796         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6797         to asserts for private function
6798
6799         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6800         broken assertion that was breaking make check
6801         (_dbus_type_reader_array_is_empty): remove this rather than fix
6802         it, was only used in assertions
6803
6804 2005-01-16  Havoc Pennington  <hp@redhat.com>
6805
6806         * test/unused-code-gc.py: hacky script to find code that's used
6807         only by the bus (not libdbus) or used only by tests or not used at
6808         all. It has some false alarms, but looks like we can clean up a
6809         lot of size from libdbus.
6810
6811         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6812         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6813         
6814 2005-01-16  Havoc Pennington  <hp@redhat.com>
6815
6816         * Add and fix docs according to Doxygen warnings throughout
6817         source.
6818         
6819         * dbus/dbus-marshal-recursive.c
6820         (_dbus_type_reader_array_is_empty): change this to just call
6821         array_reader_get_array_len() and make it static
6822
6823         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6824         from get_array_type
6825         (dbus_message_iter_init_append): rename from append_iter_init
6826
6827         * dbus/dbus-marshal-recursive.c
6828         (_dbus_type_reader_get_element_type): rename from
6829         _dbus_type_reader_get_array_type
6830
6831 2005-01-15  Havoc Pennington  <hp@redhat.com>
6832
6833         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6834
6835         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6836         when DBUS_DISABLE_ASSERT
6837         (_dbus_marshal_set_basic): be sure we align for the string length
6838
6839         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6840         this look faster
6841
6842         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6843         inline macro version
6844         (_dbus_string_set_byte): provide inline macro version
6845
6846 2005-01-15  Havoc Pennington  <hp@redhat.com>
6847
6848         * Land the new message args API and type system.
6849
6850         This patch is huge, but the public API change is not 
6851         really large. The set of D-BUS types has changed somewhat, 
6852         and the arg "getters" are more geared toward language bindings;
6853         they don't make a copy, etc.
6854
6855         There are also some known issues. See these emails for details
6856         on this huge patch:
6857         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6858         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6859         
6860         * dbus/dbus-marshal-*: all the new stuff
6861
6862         * dbus/dbus-message.c: basically rewritten
6863
6864         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6865         freed blocks to be all non-nul bytes so using freed memory is less
6866         likely to work right
6867
6868         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6869         DBUS_FAIL_MALLOC=N environment variable, so you can do
6870         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6871         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6872         thorough.
6873
6874         * qt/message.cpp: port to the new message args API
6875         (operator<<): use str.utf8() rather than str.unicode()
6876         (pretty sure this is right from the Qt docs?)
6877
6878         * glib/dbus-gvalue.c: port to the new message args API
6879
6880         * bus/dispatch.c, bus/driver.c: port to the new message args API
6881
6882         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6883         "locked" flag to TRUE and align_offset to 0; I guess we never
6884         looked at these anyhow, but seems cleaner.
6885
6886         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6887         move allocation padding macro to this header; use it to implement
6888         (_DBUS_STRING_STATIC): ability to declare a static string.
6889
6890         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6891         change to return TRUE if the interface is not set.
6892
6893         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6894         to dbus-marshal-validate.[hc]
6895
6896         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6897         dbus-internals.c
6898
6899         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6900         to dbus-marshal-*.[hc]
6901
6902         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6903         function here from dbus-marshal.c
6904
6905 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6906
6907         * NEWS: Update for 0.23.
6908
6909         * configure.in: Release 0.23.
6910
6911 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6912
6913         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6914         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6915         behind.
6916
6917         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6918         uninstall"
6919
6920         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6921         is an enum, get the enum's underlying type.  Another mono
6922         1.1.3 fix.
6923
6924 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6925
6926         Patch from Sjoerd Simons <sjoerd@luon.net>
6927
6928         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6929         DESTDIR.  It breaks stuff.
6930
6931 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6932
6933         Patch from Tambet Ingo <tambet@ximian.com>
6934
6935         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6936         calling type.GetElementType().  The code previously depended on
6937         broken Mono behavior, which was fixed in Mono 1.1.3.
6938
6939         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6940         Activator.CreateInstance() so that the class's constructor is
6941         called with the right parameters.
6942
6943 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6944
6945         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6946
6947         * dbus/dbus-connection.c
6948         (_dbus_connection_queue_received_message_link): Call
6949         _dbus_connection_remove_timeout() instead of the _locked()
6950         variant, since it's always called from
6951         _dbus_connection_handle_watch(), which handles the locking.
6952         Removed the _locked() variant since it's no longer used.
6953
6954 2005-01-03  Havoc Pennington  <hp@redhat.com>
6955
6956         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6957         return
6958         
6959 2004-12-26  Havoc Pennington  <hp@redhat.com>
6960
6961         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6962
6963 2005-01-03  Havoc Pennington  <hp@redhat.com>
6964
6965         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6966         floating point
6967
6968         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6969
6970 2005-01-02  Havoc Pennington  <hp@redhat.com>
6971
6972         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6973
6974 2005-01-01  Havoc Pennington  <hp@redhat.com>
6975
6976         * configure.in: add -Wfloat-equal
6977
6978 2005-01-01  Havoc Pennington  <hp@redhat.com>
6979
6980         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6981         for a variety of reasons '==' doesn't do this.
6982
6983 2004-12-31  Havoc Pennington  <hp@redhat.com>
6984
6985         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6986         I keep wishing I had
6987
6988 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6989
6990         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6991
6992 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6993
6994         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6995         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6996         dbus-protocol.h.  Because they are defines and not enums they are not
6997         autogenerated.
6998
6999 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7000
7001         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7002         dbus_bus_activate_service
7003
7004         * python/dbus.py (Bus.activate_service): activate a service on the
7005         bus.
7006
7007 2004-12-24  Havoc Pennington  <hp@redhat.com>
7008
7009         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7010         file format has also changed and I haven't adapted to that yet
7011         
7012         * Makefile.am: load .gcno files from latest gcc
7013
7014 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7015         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7016
7017         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7018         lowlevel binding
7019
7020         * python/dbus.py (get_unix_user): Added binding to 
7021         call dbus_bindings.bus_get_unix_user
7022
7023         * python/extract.py: Modified the proto_pat regex to
7024         handle unsigned long
7025
7026 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7027
7028         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7029         better POSIX compliance.
7030
7031 2004-12-19  Havoc Pennington  <hp@redhat.com>
7032
7033         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7034         (_dbus_string_insert_8_aligned): new functions
7035
7036         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7037
7038 2004-12-18  Havoc Pennington  <hp@redhat.com>
7039
7040         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7041         macro
7042
7043         * dbus/dbus-message.c: fix a comment, and add a still-unused
7044         not-implemented function
7045
7046         * dbus/dbus-marshal.h: fix comment
7047
7048         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7049
7050 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7051
7052         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7053         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7054         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7055         Type.UnderlyingSystemType to get the actual system type
7056         underneath.  This code previously depended on the broken Mono
7057         behavior, which was fixed in 1.1.3.
7058
7059 2004-11-27  Havoc Pennington  <hp@redhat.com>
7060
7061         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7062         are disabled
7063         (_dbus_string_get_const_data): inline when asserts are disabled
7064
7065         * dbus/dbus-message.c: record the _dbus_current_generation of
7066         creation so we can complain if dbus_shutdown() is used improperly.
7067         Do this only if checks are enabled.
7068
7069         * dbus/dbus-connection.c: ditto
7070         
7071 2004-11-26  Havoc Pennington  <hp@redhat.com>
7072
7073         * test/glib/test-profile.c: add with_bus mode to profile echoes
7074         that go through the bus.
7075
7076         * test/glib/run-test.sh: add ability to run test-profile
7077
7078         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7079         config file reload.
7080
7081 2004-11-26  Havoc Pennington  <hp@redhat.com>
7082
7083         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7084         thing was implemented
7085
7086 2004-11-26  Havoc Pennington  <hp@redhat.com>
7087
7088         * test/glib/test-profile.c: tweak a bit, add support for some
7089         made-up minimal malloc overhead with plain sockets, since in 
7090         real life some sort of buffers are unavoidable thus we could 
7091         count them in the theoretical best case
7092
7093 2004-11-26  Havoc Pennington  <hp@redhat.com>
7094
7095         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7096         where I was trying to cache one too many messages
7097
7098 2004-11-26  Havoc Pennington  <hp@redhat.com>
7099
7100         * dbus/dbus-message.c: reimplement message cache as an array which 
7101         makes the cache about twice as fast and saves maybe 1.5% overall
7102
7103 2004-11-26  Havoc Pennington  <hp@redhat.com>
7104
7105         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7106         message cache lock here
7107
7108 2004-11-26  Havoc Pennington  <hp@redhat.com>
7109
7110         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7111         the "char byte_order" next to each other to save 4 bytes
7112         (dbus_message_new_empty_header): reduce preallocation, since the
7113         message cache should achieve a similar effect
7114         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7115         message cache that keeps a few DBusMessage around in a pool,
7116         another 8% speedup or so.
7117
7118         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7119
7120 2004-11-25  Havoc Pennington  <hp@redhat.com>
7121
7122         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7123         to write, without reading or blocking, try it before the poll()
7124         and skip the poll() if nothing remains to write. This is about a
7125         3% speedup in the echo client/server
7126
7127 2004-11-25  Havoc Pennington  <hp@redhat.com>
7128
7129         The primary change here is to always write() once before adding
7130         the write watch, which gives us about a 10% performance increase.
7131         
7132         * dbus/dbus-transport-unix.c: a number of modifications to cope
7133         with removing messages_pending
7134         (check_write_watch): properly handle
7135         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7136         messages_pending stuff
7137         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7138         AUTHENTICATED cases
7139         (unix_handle_watch): after writing, see if the write watch can be
7140         removed
7141         (unix_do_iteration): assert that write_watch/read_watch are
7142         non-NULL rather than testing that they aren't, since they 
7143         aren't allowed to be NULL. check_write_watch() at the end so 
7144         we add the watch if we did not finish writing (e.g. got EAGAIN)
7145
7146         * dbus/dbus-transport-protected.h: remove messages_pending call,
7147         since it resulted in too much inefficient watch adding/removing; 
7148         instead we now require that the transport user does an iteration 
7149         after queueing outgoing messages, and after trying the first
7150         write() we add a write watch if we got EAGAIN or exceeded our 
7151         max bytes to write per iteration setting
7152
7153         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7154         function
7155
7156         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7157         freed and then accessed, valgrind flagged this bug, fix it
7158
7159         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7160         as the last valid field plus 1, where really it is equal to the
7161         last valid field. Corrects some message corruption issues.
7162
7163         * dbus/dbus-mainloop.c: verbosity changes
7164
7165         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7166         instead of aborting in one of the test codepaths
7167
7168         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7169         caused not printing the pid ever again if a verbose was missing
7170         the newline at the end
7171         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7172
7173         * dbus/dbus-connection.c: verbosity changes; 
7174         (dbus_connection_has_messages_to_send): new function
7175         (_dbus_connection_message_sent): no longer call transport->messages_pending
7176         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7177         try to write() immediately, so we can avoid the write watch. This
7178         is the core purpose of this patchset
7179         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7180         dump the outgoing message queue, so nobody will get confused
7181         trying to send them or thinking stuff is pending to be sent
7182
7183         * bus/test.c: verbosity changes
7184
7185         * bus/driver.c: verbosity/assertion changes
7186
7187         * bus/dispatch.c: a bunch of little tweaks to get it working again
7188         because this patchset changes when/where you need to block.
7189
7190 2004-11-23  Havoc Pennington  <hp@redhat.com>
7191
7192         * test/glib/test-profile.c: modify to accept a plain_sockets
7193         argument in which case it will bench plain sockets instead of
7194         libdbus, for comparison purposes.
7195
7196 2004-11-22  Havoc Pennington  <hp@redhat.com>
7197
7198         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7199         threads for more time, so sysprof can get a grip on it.
7200
7201         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7202         pointless variable
7203
7204 2004-11-13  Havoc Pennington  <hp@redhat.com>
7205
7206         * test/glib/test-profile.c: fix this thing up a bit
7207
7208         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7209         preallocation sizes by a fair bit; not sure if this will be an
7210         overall performance win or not, but it does reduce reallocs.
7211
7212         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7213         the test hack that forced constant realloc if asserts are
7214         disabled, so we can profile sanely. Sprinkle in some
7215         _DBUS_UNLIKELY() which are probably pointless, but before I
7216         noticed the real performance problem I put them in.
7217         (_dbus_string_validate_utf8): micro-optimize this thing a little
7218         bit, though callgrind says it didn't help; then special-case
7219         ascii, which did help a lot; then be sure we detect nul bytes as
7220         invalid, which is a bugfix.
7221         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7222         superstition; use memset to nul the padding instead of a manual
7223         loop.
7224         (_dbus_string_get_length): inline this as a
7225         macro; it showed up in the profile because it's used for loop
7226         tests and so forth
7227
7228 2004-11-10  Colin Walters  <walters@verbum.org>
7229
7230         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7231         for extra paranoia.
7232
7233 2004-11-09  Colin Walters  <walters@verbum.org>
7234
7235         * dbus/dbus-string.c (_dbus_string_get_length): New
7236         function, writes DBusString to C buffer.
7237
7238         * dbus/dbus-string.h: Prototype it.
7239
7240         * dbus/dbus-message.c (dbus_message_type_to_string): New
7241         function, converts message type into C string.
7242
7243         * dbus/dbus-message.h: Prototype it.
7244
7245         * bus/selinux.c (bus_selinux_check): Take source pid,
7246         target pid, and audit data.  Pass audit data to
7247         avc_has_perm.
7248         (log_audit_callback): New function, appends extra
7249         audit information.
7250         (bus_selinux_allows_acquire_service): Also take
7251         service name, add it to audit data.
7252         (bus_selinux_allows_send): Also take message
7253         type, interface, method member, error name,
7254         and destination, and add them to audit data.
7255         (log_cb): Initialize func_audit.
7256         
7257         * bus/selinux.h (bus_selinux_allows_acquire_service)
7258         (bus_selinux_allows_send): Update prototypes 
7259
7260         * bus/services.c (bus_registry_acquire_service): Pass
7261         service name to bus_selinux_allows_acquire_service.
7262
7263         * bus/bus.c (bus_context_check_security_policy): Pass
7264         additional audit data.  Move assignment of dest
7265         to its own line.
7266
7267 2004-11-07  Colin Walters  <walters@verbum.org>
7268
7269         * dbus/dbus-transport-unix.c (do_authentication): Always
7270         initialize auth_completed.
7271         
7272 2004-11-07  Colin Walters  <walters@verbum.org>
7273
7274         * bus/bus.c (load_config): Break into three
7275         separate functions: process_config_first_time_only,
7276         process_config_every_time, and process_config_postinit.
7277         (process_config_every_time): Move call of
7278         bus_registry_set_service_context_table into
7279         process_config_postinit.
7280         (process_config_postinit): New function, does
7281         any processing that needs to happen late
7282         in initialization (and also on reload).
7283         (bus_context_new): Instead of calling load_config,
7284         open config parser here and call process_config_first_time_only
7285         and process_config_every_time directly.  Later, after
7286         we have forked but before changing UID,
7287         invoke bus_selinux_full_init, and then call
7288         process_config_postinit.
7289         (bus_context_reload_config): As in bus_context_new,
7290         load parse file inside here, and call process_config_every_time
7291         and process_config_postinit.
7292
7293         * bus/services.h, bus/services.c
7294         (bus_registry_set_service_context_table): Rename
7295         from bus_registry_set_sid_table.  Take string hash from config
7296         parser, and convert them here into SIDs.
7297
7298         * bus/config-parser.c (struct BusConfigParser): Have
7299         config parser only store a mapping of service->context
7300         string.
7301         (merge_service_context_hash): New function.
7302         (merge_included): Merge context string hashes instead
7303         of using bus_selinux_id_table_union.
7304         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7305         simply create a new string hash.
7306         (bus_config_parser_unref): Unref it.
7307         (start_selinux_child): Simply insert strings into hash,
7308         don't call bus_selinux_id_table_copy_over.
7309
7310         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7311         (bus_selinux_id_table_copy_over): Delete.
7312
7313 2004-11-03  Colin Walters  <walters@verbum.org>
7314
7315         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7316         variables.
7317         
7318 2004-11-03  Colin Walters  <walters@verbum.org>
7319
7320         * bus/test-main.c (test_pre_hook): Fix test logic,
7321         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7322
7323 2004-11-02  Colin Walters  <walters@redhat.com>
7324
7325         * bus/selinux.c (bus_selinux_init): Split into two functions,
7326         bus_selinux_pre_init and bus_selinux_post_init.
7327         (bus_selinux_pre_init): Just determine whether SELinux is
7328         enabled.
7329         (bus_selinux_post_init): Do everything else.
7330
7331         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7332         config file, and bus_selinux_post_init after.  This ensures that
7333         we don't lose the policyreload notification thread that
7334         bus_selinux_init created before forking previously.
7335         
7336         * bus/test-main.c (test_pre_hook): Update for split.
7337
7338 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7339
7340         Patch from Johan Fischer <linux@fischaz.com>
7341         
7342         * mono/doc/Makefile.am (install-data-local): Added directory
7343         install for DESTDIR
7344
7345 2004-10-29  Colin Walters  <walters@redhat.com>
7346
7347         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7348         parameter for fd to write pid to.       
7349
7350         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7351         
7352         * bus/bus.c (bus_context_new): Pass print_pid_fd
7353         to _dbus_become_daemon (bug #1720)
7354
7355 2004-10-29  Colin Walters  <walters@redhat.com>
7356
7357         Patch from Ed Catmur <ed@catmur.co.uk>
7358
7359         * mono/doc/Makefile.am (install-data-local): Handle
7360         DESTDIR.
7361
7362 2004-10-29  Colin Walters  <walters@redhat.com>
7363
7364         * bus/.cvsignore, qt/.cvsignore: Update.
7365
7366 2004-10-29  Colin Walters  <walters@redhat.com>
7367
7368         Patch from Kristof Vansant <de_lupus@pandora.be>
7369
7370         * configure.in: Detect Slackware.
7371         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7372         * bus/rc.messagebus.in: New file.
7373
7374 2004-10-29  Colin Walters  <walters@redhat.com>
7375
7376         * tools/dbus-monitor.c (filter_func): Return
7377         DBUS_HANDLER_RESULT_HANDLED in filter function
7378         for now.  See:
7379         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7380
7381 2004-10-29  Colin Walters  <walters@redhat.com>
7382
7383         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7384
7385         * bus/services.c (bus_registry_acquire_service): 
7386         Correctly retrieve service name from DBusString
7387         for printing.
7388
7389 2004-10-29  Colin Walters  <walters@redhat.com>
7390
7391         * dbus/dbus-glib.h: Update documentation to not
7392         refer to internal APIs.
7393
7394 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7395
7396         * mono/Arguments.cs (GetDBusTypeConstructor):
7397         type.UnderlyingSystemType will return "System.Byte" if you do it
7398         on "byte[]", which is not what we want.  So check the type.IsArray
7399         property and use System.Array instead.
7400
7401 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7402
7403         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7404         the DBusUserInfo structure since this is passed into the function.
7405         This would cause a double free when the function that allocated
7406         the structure would try to free it when an error occured.
7407
7408         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7409         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7410         for service activation to avoid 32bit/64bit parallel install issues
7411
7412 2004-10-21  Colin Walters  <walters@verbum.org>
7413
7414         * AUTHORS: Fix my email address, the @gnu.org one
7415         has been bouncing for some time.  Also add J5.
7416         
7417 2004-10-21  Colin Walters  <walters@verbum.org>
7418
7419         * dbus/dbus-transport-unix.c (do_authentication): Return
7420         authentication status to callers.
7421         (unix_handle_watch): If we completed authentication this round,
7422         don't do another read.  Instead wait until the next iteration,
7423         after we've read any pending data in the auth buffer.
7424         (unix_do_iteration): Ditto.
7425         (unix_handle_watch): Updated for new do_authentication prototype.
7426
7427 2004-10-18  Colin Walters  <walters@verbum.org>
7428
7429         * bus/selinux.c (bus_selinux_enabled): Handle
7430         --disable-selinux case.
7431         
7432 2004-10-18  Colin Walters  <walters@verbum.org>
7433
7434         * bus/selinux.h: Add bus_selinux_enabled.
7435         
7436         * bus/selinux.c (bus_selinux_enabled): Implement it.
7437         
7438         * bus/config-parser.c (struct include): Add
7439         if_selinux_enabled member.
7440         (start_busconfig_child): Parse if_selinux_enabled
7441         attribute for include.
7442         (bus_config_parser_content): Handle it.
7443
7444         * bus/session.conf.in, bus/system.conf.in: Add
7445         inclusion of context mapping to default config files;
7446         conditional on SELinux being enabled.
7447         
7448         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7449         
7450         * test/data/invalid-config-files/badselinux-1.conf, 
7451         test/data/invalid-config-files/badselinux-2.conf:
7452         Test files for bad syntax.
7453         
7454 2004-10-17  Colin Walters  <walters@verbum.org>
7455
7456         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7457         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7458         format specifier mismatches.
7459
7460 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7461
7462         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7463         format string.
7464
7465         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7466         pointer (bug #1540, Leonardo Boiko).
7467
7468 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7469
7470         * mono/BusDriver.cs: Changed BusDriver struct to remove
7471         the ServiceCreated and ServiceDeleted events and replace them
7472         with the new ServiceOwnerChanged event.
7473
7474         * mono/example/BusListener.cs: Added a new example program,
7475         which listens for and reports any ServiceOwnerChanged events
7476         on the bus driver.
7477
7478         * mono/example/Makefile.am (DESTDIR): Build changes for the
7479         new BusListener.cs example.
7480
7481 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7482
7483         * bus/signals.c (bus_match_rule_parse): validate the components of
7484         match rules (bug #1439).
7485
7486         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7487
7488 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7489
7490         * doc/dbus-specification.xml: document ServiceOwnerChanged
7491         signal.
7492         
7493         * bus/driver.c, bus/driver.h, bus/services.c: Use
7494         ServiceOwnerChanged signal instead of ServiceCreated and
7495         ServiceDeleted.
7496         
7497         * bus/dispatch.c: update testcase for the new signal.
7498
7499 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7500
7501         Patch from Nat Friedman <nat@novell.com>
7502
7503         * mono/Makefile.am: A number of small build fixes to allow "make
7504         distcheck" to succeed.
7505
7506         * mono/example/Makefile.am: "make distcheck" fixes.
7507
7508         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7509         key in @srcdir@.
7510
7511         * test/Makefile.am: "make distcheck" fixes.
7512
7513 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7514
7515         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7516
7517         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7518
7519         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7520         messages after the first one (bug #1389).
7521         
7522         * bus/dispatch.c (check_double_hello_message): add a test case for
7523         the double hello message bug.
7524         (check_existent_service_activation): fix check of spawning error.
7525         
7526 2004-09-16  David Zeuthen  <david@fubar.dk>
7527
7528         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7529
7530 2004-09-12  David Zeuthen  <david@fubar.dk>
7531
7532         Patch from Kay Sievers <kay.sievers@vrfy.org>
7533
7534         * bus/bus.c (bus_context_new):
7535         * bus/bus.h:
7536         * bus/main.c (usage)
7537         (main):
7538         Add commandline option --nofork to override configuration file
7539         setting.
7540
7541 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7542
7543         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7544         compilers don't like it (bug #974).
7545
7546 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7547
7548         * qt/connection.*: Applied patch by Jérôme Lodewyck
7549         <lodewyck@clipper.ens.fr> to integrate an existing
7550         connection into the Qt eventloop
7551
7552 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7553
7554         * mono/BusDriver.cs: Added.  This is a class for interacting with
7555         the org.freedesktop.DBus service.
7556
7557         * mono/Message.cs: Added a mechanism to expose the message that is
7558         currently being dispatched via the static Message.Current
7559         property.  Added Message.Sender and Message.Destination
7560         properties.
7561
7562         * mono/Handler.cs: Expose the dispatched message via
7563         Message.Current when handling method calls.
7564
7565         * mono/Service.cs: Expose the dispatched message via
7566         Message.Current when handling signal emissions.
7567         
7568         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7569         Connection.BaseService property.
7570
7571 2004-08-28  Havoc Pennington  <hp@redhat.com>
7572
7573         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7574
7575         More fixes from Steve Grubb
7576         
7577         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7578         (_dbus_listen_tcp_socket): fix fd leak
7579
7580         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7581         EINTR to a bit lower in the code
7582
7583 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7584
7585         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7586         TRUE if we are inquiring about the existence of the built-in
7587         org.freedesktop.DBus service.
7588
7589 2004-08-25  John Palmieri  <johnp@redhat.com>
7590         * bus/config-parser.c:
7591         (struct PolicyType): Add POLICY_CONSOLE
7592         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7593         (start_busconfig_child): Sets up console element when
7594         <policy at_console=""> is encountered in a policy file
7595         (append_rule_from_element): Convert console elements to console
7596         rules.
7597
7598         * bus/policy.c: 
7599         (bus_policy_create_client_policy): Add console rules to the client
7600         policy based on if the client is at the console
7601         (bus_policy_append_console_rule): New function for adding a
7602         console rule to a policy
7603         (bus_policy_merge): Handle console rule merging
7604
7605         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7606         where we check for console user files
7607         
7608         * dbus/dbus-sysdeps.c:
7609         (_dbus_file_exists): New function which checks if the given
7610         file exists
7611         (_dbus_user_at_console): New function which does the system
7612         specific process of checking if the user is at the console
7613
7614         * dbus/dbus-userdb.c:
7615         (_dbus_is_console_user): New function converts a UID to user name
7616         and then calls the system specific _dbus_user_at_console to 
7617         see if the user is at the console and therefor a console user
7618
7619 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7620
7621         * bus/config-parser.c (set_limit):
7622         * bus/dbus-daemon-1.1.in:
7623         * test/data/valid-config-files/many-rules.conf: set the
7624         max_match_rules_per_connection limt from the config file. 
7625
7626         * doc/busconfig.dtd: update the DTD.
7627
7628         * bus/driver.c: remove some unused variables.
7629
7630 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7631
7632         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7633         it's been replaced by dbus_g_bus_get
7634
7635 2004-08-23  Colin Walters  <walters@redhat.com>
7636
7637         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7638
7639         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7640
7641         * bus/selinux.c: Create a thread for policy reload notification.
7642         (bus_selinux_get_policy_root): Implement.
7643
7644         * bus/config-parser.c (start_busconfig_child)
7645         (bus_config_parser_content): Support SELinux-root relative
7646         inclusion.
7647
7648         * configure.in <HAVE_SELINUX>: Add -lpthread.
7649         
7650         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7651         (test_post_hook): Move memory checking into here.
7652         (test_pre_hook, test_post_hook): Move SELinux checks in
7653         here, but conditional on a DBUS_TEST_SELINUX environment
7654         variable.  Unfortunately we can't run the SELinux checks
7655         as a normal user, since they won't have any permissions
7656         for /selinux.  So this will have to be tested manually
7657         for now, until we have virtualization for most of
7658         libselinux.
7659         
7660 2004-08-23  Havoc Pennington  <hp@redhat.com>
7661
7662         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7663         drop supplementary groups, suggested by Steve Grubb
7664
7665 2004-08-20  Colin Walters  <walters@redhat.com>
7666
7667         * bus/config-parser.c (start_busconfig_child): Remove some unused
7668         variables.
7669         
7670         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7671         warning.
7672
7673 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7674
7675         * configure.in: If --enable-mono is passed in, if we can't find
7676         mono error out.
7677
7678         * mono/Makefile.am: Use /gacutil to install assemblies into the
7679         GAC and not /root.
7680
7681 2004-08-12  Havoc Pennington  <hp@redhat.com>
7682
7683         * NEWS: update for 0.22
7684
7685         * configure.in: release 0.22
7686
7687 2004-08-11  Colin Walters  <walters@redhat.com>
7688
7689         * tools/dbus-send.c (main, usage): Add --reply-timeout
7690         argument.
7691
7692 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7693
7694         * bus/bus.c (process_config_first_time_only): get rid of an unused
7695         DBusError that was causing a memoy leak (bug #989).
7696
7697         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7698         fix compilation on Solaris/Forte C (bug #974)
7699
7700         * bus/main.c (main): plug two minuscule memleaks.
7701
7702 2004-08-10  Havoc Pennington  <hp@redhat.com>
7703
7704         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7705
7706 2004-08-09  Havoc Pennington  <hp@redhat.com>
7707
7708         * COPYING: switch to Academic Free License version 2.1 instead of
7709         2.0, to resolve complaints about patent termination clause.
7710
7711 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7712
7713         * README: added documentation for the --enable-python 
7714         configure switch.
7715
7716 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7717
7718         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7719         _unref in the SELinux support.
7720
7721         * doc/busconfig.dtd: update DTD for SELinux support.
7722
7723         * bus/config-loader-libxml.c: fix error handler and parser
7724         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7725
7726         * configure.in: remove the warning about libxml2.
7727
7728         * dbus/dbus-bus.c: silence doxygen warning.
7729
7730 2004-07-31  Colin Walters  <walters@redhat.com>
7731
7732         * configure.in: Move #error in SELinux check to its own line.
7733
7734 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7735
7736         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7737         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7738         dbus_error_set.
7739
7740         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7741         broken by the change in the _SET_OOM macros.
7742
7743 2004-07-31  Colin Walters  <walters@redhat.com>
7744
7745         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7746         BUS_SET_OOM.
7747
7748 2004-07-31  Colin Walters  <walters@redhat.com>
7749
7750         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7751         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7752         AC_MSG_CHECKING.
7753
7754 2004-07-24  Havoc Pennington  <hp@redhat.com>
7755
7756         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7757
7758         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7759         functionality
7760
7761         * configure.in: add --enable-selinux
7762         
7763         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7764
7765         * bus/main.c (main): initialize and shut down selinux
7766
7767         * bus/connection.c: store SELinux ID on each connection, to avoid 
7768         repeated getting of the string context and converting it into 
7769         an ID
7770
7771         * bus/bus.c (bus_context_get_policy): new accessor, though it
7772         isn't used
7773         (bus_context_check_security_policy): check whether the security
7774         context of sender connection can send to the security context of
7775         recipient connection
7776
7777         * bus/config-parser.c: add parsing for <selinux> and <associate>
7778         
7779         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7780         implement dbus_connection_get_unix_fd()
7781
7782         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7783         function, used by the selinux stuff
7784         
7785 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7786
7787         * bus/config-loader-libxml.c: complete the implementation of
7788         libxml backend for config file loader. Doesn't work with full OOM
7789         test yet. 
7790         
7791         * configure.in: change error when selecting libxml into a warning.
7792         
7793         * test/data/invalid-config-files: add two non-well-formed XML
7794         files. 
7795         
7796         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7797         
7798         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7799         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7800         be necessary to read all the buffer. (bug #894)
7801
7802         * bus/activation.c (bus_activation_activate_service): fix a
7803         potential assertion failure (bug #896). Small optimization in the
7804         case of auto-activation messages.
7805
7806         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7807         add test case for byte-through-vararg bug (#901). patch by Kimmo
7808         Hämäläinen. 
7809
7810 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7811
7812         * python/dbus.py:
7813         * python/dbus_bindings.pyx.in:
7814         Add dbus.init_gthreads (), allow emit_signal to pass
7815         arguments to the signal.
7816         
7817 2004-07-24  Havoc Pennington  <hp@redhat.com>
7818
7819         * AUTHORS: add some people, not really comprehensively, let me
7820         know if I missed you
7821
7822 2004-07-24  Havoc Pennington  <hp@redhat.com>
7823
7824         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7825         Owen
7826
7827         * test/Makefile.am (DIST_SUBDIRS): here also
7828
7829 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7830
7831         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7832         breaking build on Solaris, reported by Farhad Saberi on the ML.
7833
7834         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7835         va_arg invocation to account for integer promotion in the case of
7836         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7837
7838         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7839         _dbus_list_get_first_link, not _dbus_list_get_first.
7840
7841         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7842
7843         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7844         handler functions so that the asserts in _dbus_object_subtree_unref
7845         do not fail.
7846
7847         * dbus/dbus-transport-unix.c (do_reading):
7848         _dbus_transport_queue_messages return value is of type
7849         dbus_bool_t, not DBusDispatchStatus.
7850         
7851 2004-07-19  David Zeuthen  <david@fubar.dk>
7852
7853         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7854
7855         * bus/dispatch.c:
7856         (check_get_connection_unix_user): Debug says GetProperty; but the
7857         method is called GetConnectionUnixUser
7858         (check_get_connection_unix_process_id): New function
7859         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7860         also call check_get_connection_unix_process_id()
7861         
7862         * bus/driver.c:
7863         (bus_driver_handle_get_connection_unix_process_id): New function,
7864         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7865         interface
7866         
7867         * dbus/dbus-auth.c:
7868         (handle_server_data_external_mech): Set pid from the credentials
7869         obtained from the socket
7870         
7871         * dbus/dbus-connection.c:
7872         (dbus_connection_get_unix_process_id): New function
7873         
7874         * dbus/dbus-connection.h: 
7875         Add prototype for dbus_connection_get_unix_process_id
7876         
7877         * dbus/dbus-transport.c:
7878         (_dbus_transport_get_unix_process_id): New function
7879         
7880         * dbus/dbus-transport.h:
7881         Add prototype for _dbus_transport_get_unix_process_id
7882         
7883 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7884
7885         * dbus/dbus-message.c: Message counter fix, patch by Christian
7886         Hammond <chipx86@gnupdate.org>
7887
7888 2004-07-18  Seth Nickell  <seth@gnome.org>
7889
7890         * python/dbus.py:
7891         * python/dbus_bindings.pyx.in:
7892         * python/tests/test-client.py:
7893
7894         Add dbus.ByteArray and dbus_bindings.ByteArray
7895         types so that byte streams can be passed back.
7896
7897         Give jdahlin the heaps of credit that are so
7898         rightfully his.
7899         
7900 2004-07-12  Seth Nickell  <seth@gnome.org>
7901
7902         * python/dbus.py:
7903
7904         Add message argument to the default object_method_handler
7905         function.
7906         
7907         * python/dbus_bindings.pyx.in:
7908
7909         Automatically return NIL when passed an empty list
7910         (we can't pass back a list since lists are typed
7911         and we don't have any idea what type the the client
7912         intended the list to be... :-( )
7913         
7914 2004-07-10  Seth Nickell  <seth@gnome.org>
7915
7916         * python/examples/Makefile.am:
7917
7918         Fix distcheck breakage caused by new examples.
7919
7920 2004-07-10  Seth Nickell  <seth@gnome.org>
7921
7922         * python/dbus.py:
7923
7924         Add "message" argument to service-side dbus.Object
7925         methods. This will break existing services written
7926         using the python bindings, but will allow extraction
7927         of all the message information (e.g. who its from).
7928
7929         Add improved "object oriented" signal handling/emission.
7930         
7931         * python/examples/example-service.py:
7932
7933         Nix this example.
7934         
7935         * python/examples/example-signal-emitter.py:
7936         * python/examples/example-signal-recipient.py:
7937
7938         Two new examples that show how to emit and receive
7939         signals using the new APIs.
7940         
7941         * python/examples/example-signals.py:
7942         * python/examples/gconf-proxy-service.py:
7943         * python/examples/gconf-proxy-service2.py:
7944
7945         Add "message" argument to service methods.
7946
7947 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7948
7949         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7950         * dbus/bus.c (dbus_bus_get_unix_user)
7951         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7952         method of org.freedesktop.DBus interface.
7953
7954         * bus/dispatch.c: test case
7955
7956 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7957
7958         * python/Makefile.am: switched include directory from glib/ to dbus/
7959         since dbus-glib.h moved
7960  
7961 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7962
7963         * configure.in: prevent building the gcj stuff and libxml loader
7964         since they are broken.
7965
7966 2004-06-20  Havoc Pennington  <hp@redhat.com>
7967
7968         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7969         codes from the dbus error names
7970         
7971         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7972         as dbus/dbus-glib.h and that breakage is now visible due to 
7973         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7974         
7975         * glib/dbus-glib.h: s/gproxy/g_proxy/
7976
7977         * dbus/dbus-shared.h: new header to hold stuff shared with
7978         binding APIs
7979         
7980         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7981         than dbus-errors.h
7982
7983         * glib/dbus-glib.h (dbus_set_g_error): move to
7984         dbus-glib-lowlevel.h
7985
7986         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7987         of stuff to enable this
7988
7989         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7990
7991         * a bunch of other changes with the same basic "separate glib 
7992         bindings from dbus.h" theme
7993         
7994 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7995
7996         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7997
7998         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7999
8000 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8001
8002         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8003         the reply value of the ServiceExists message.
8004
8005 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8006
8007         * python/dbus_bindings.pyx.in: No longer need to parse path
8008         elements and pass them as arrays of strings.  The C API now
8009         accepts plain path strings.
8010         (_build_parsed_path): removed 
8011
8012 2004-06-07  Havoc Pennington  <hp@redhat.com>
8013
8014         * doc/TODO: remove auto-activation item since it's done; sort
8015         items by importance/milestone
8016
8017 2004-06-07  Havoc Pennington  <hp@redhat.com>
8018
8019         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8020         random signature when using REQUIRED_FIELDS (this hack won't work
8021         in the long term)
8022
8023         * dbus/dbus-message.c: change the signature to be a header field,
8024         instead of message->signature special-case string. Incremental
8025         step forward. Then we can fix up code to send the signature in the
8026         message, then fix up code to validate said signature, then fix up
8027         code to not put the typecodes inline, etc.
8028         (load_one_message): don't make up the signature after the fact
8029         (decode_header_data): require signature field for the known
8030         message types
8031
8032         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8033
8034         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8035
8036 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8037
8038         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8039
8040         * mono/Handler.cs: Updated to follow new path argument for
8041         (un-)registering objects.
8042
8043         * mono/example/Makefile.am:
8044         * mono/Makefile.am:
8045         * configure.in: Bumped required version for mono and use new -pkg
8046         syntax for deps
8047
8048 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8049
8050         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8051         registration functions take the path argument as char* instead of
8052         char**.
8053
8054         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8055         split off the path decompostion part of
8056         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8057         warnings. 
8058
8059         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8060         
8061 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8062  
8063         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8064         machine approach.  A state is implemented as a function that
8065         handles incoming events as specified for that state.
8066         
8067         * doc/dbus-specification.xml: Update auth protocol state machine
8068         specification to match implementation.  Remove some leftover
8069         base64 examples.
8070
8071 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8072
8073         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8074         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8075         quiet doxygen.
8076
8077         * Doxyfile.in: remove deprecated options.
8078
8079         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8080         glib/test-thread.h, glib/test-thread-client.c,
8081         glib/test-thread-server.c, glib/test-profile.c,
8082         glib/test-dbus-glib.c: remove these unused files.
8083
8084 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8085
8086         * dbus/dbus-object-tree.c
8087         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8088         non-fallback handlers (bug #684).
8089         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8090         (find_subtree_recurse): report wether the returned subtree is an
8091         exact match or a "fallback" match higher up in the tree.
8092         (object_tree_test_iteration): update test case.
8093
8094 2004-06-01  Seth Nickell  <seth@gnome.org>
8095
8096         * python/dbus_bindings.pyx.in:
8097         * python/tests/test-client.py:
8098
8099         Round off basic type support. Add dicts (yay!), and 
8100         remaining array types.
8101
8102         Make MessageIter more general so it works for dicts too.
8103
8104         Mark all loop variables as C integers.
8105         
8106 2004-05-31  Havoc Pennington  <hp@redhat.com>
8107
8108         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8109         "in" before "out"
8110
8111         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8112
8113         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8114         option that runs the tests, and start filling in some code
8115         including for starters just dumping the interfaces to stdout
8116
8117         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8118
8119         * test/data/valid-introspection-files/lots-of-types.xml: test of
8120         an example introspection file
8121
8122         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8123         "node" (I think...)
8124
8125 2004-05-31  Seth Nickell  <seth@gnome.org>
8126
8127         * python/dbus_bindings.pyx.in:
8128         * python/tests/test-client.py:
8129
8130         Test Suite: 1
8131         Python Bindings: 0
8132
8133         Fix string array memory trashing bug... oops...
8134
8135 2004-05-30  Seth Nickell  <seth@gnome.org>
8136
8137         * python/dbus.py:
8138
8139         Add a nicer-but-less-flexible alternate API for handling 
8140         calls to virtual objects in dbus.ObjectTree.
8141
8142         Screw up the argument order to the dbus.Object constructor
8143         for consistency with dbus.ObjectTree (and to make dbus_methods
8144         optional for future extension)
8145         
8146         * python/examples/Makefile.am:
8147         * python/examples/gconf-proxy-service.py:
8148         * python/examples/gconf-proxy-service2.py:
8149
8150         Alternate implementation of gconf-proxy-service using the
8151         nicer dbus.ObjectTree API.
8152         
8153         * python/examples/example-service.py:
8154         * python/tests/test-server.py
8155
8156         Reverse the argument order to deal with dbus.Object constructor
8157         changes.
8158         
8159 2004-05-30  Seth Nickell  <seth@gnome.org>
8160
8161         * python/examples/example-client.py:
8162         * python/examples/example-service.py:
8163
8164         Take it back. Lists seem to work but they're broken
8165         in the test suite. Make the base examples use
8166         lists (works fine).
8167
8168 2004-05-30  Seth Nickell  <seth@gnome.org>
8169
8170         * python/dbus_bindings.pyx.in:
8171         * python/tests/test-client.py:
8172
8173         Add some more tests and fix errors that crop up.
8174         Unfortunately, currently it seems like marshalling
8175         and unmarshalling of lists is completely broken :-(
8176
8177 2004-05-30  Seth Nickell  <seth@gnome.org>
8178
8179         * python/dbus_bindings.pyx.in:
8180
8181         Add support for ObjectPath type.
8182
8183         * python/dbus.py:
8184
8185         Refactor message handling code to a common function.
8186         
8187         * python/tests/test-client.py:
8188         * python/tests/test-server.py:
8189
8190         Add tests that check to make sure values of all types
8191         can be echoed from a service w/o mangling.
8192         
8193 2004-05-29  Seth Nickell  <seth@gnome.org>
8194
8195         * python/dbus.py:
8196
8197         Add ObjectTree class which allows implementation
8198         of trees of "virtual" objects. Basically the python
8199         wrapper for "register_fallback".
8200         
8201         * python/examples/Makefile.am
8202         * python/examples/gconf-proxy-client.py:
8203         * python/examples/gconf-proxy-service.py:
8204
8205         Implement a simple GConf proxy service that supports
8206         get/set on string and int GConf keys using the ObjectTree.
8207         
8208 2004-05-29  Seth Nickell  <seth@gnome.org>
8209
8210         * python/dbus.py:
8211         * python/examples/example-client.py:
8212         * python/examples/example-service.py:
8213         * python/examples/list-system-services.py:
8214
8215         Add SessionBus, SystemBus and ActivationBus classes
8216         so you don't need to know the special little BUS_TYPE
8217         flag.
8218         
8219 2004-05-29  Havoc Pennington  <hp@redhat.com>
8220
8221         * bus/config-parser.c (process_test_valid_subdir): temporarily
8222         stop testing config parser OOM handling, since expat has issues
8223         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8224
8225         * bus/dbus-daemon-1.1.in: change requested_reply to
8226         send_requested_reply/receive_requested_reply so we can send the
8227         replies, not just receive them.
8228
8229         * bus/config-parser.c: parse the new
8230         send_requested_reply/receive_requested_reply
8231
8232         * bus/policy.c (bus_client_policy_check_can_send): add
8233         requested_reply argument and use it
8234
8235         * bus/bus.c (bus_context_check_security_policy): pass through
8236         requested_reply status to message send check
8237
8238         * bus/system.conf.in: adapt to requested_reply change
8239         
8240 2004-05-28  Havoc Pennington  <hp@redhat.com>
8241
8242         * test/glib/test-service-glib.c (main): remove unused variable
8243
8244         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8245
8246         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8247         from the enum, no longer in use.
8248
8249         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8250         works right.
8251
8252         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8253         whether error_name passed in is a valid error name.
8254
8255 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8256
8257         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8258         OBJECT_PATH and OBJECT_PATH_ARRAY
8259
8260 2004-05-28  Seth Nickell  <seth@gnome.org>
8261
8262         * python/examples/Makefile.am:
8263
8264         Forget to add Makefile.am. Do not pass go.
8265
8266 2004-05-28  Michael Meeks  <michael@ximian.com>
8267
8268         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8269         fix no int64 case.
8270
8271         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8272
8273         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8274         (_dbus_message_iter_get_basic_type_array): impl.
8275         drastically simplify ~all relevant _get methods to use these.
8276         (_dbus_message_iter_append_basic_array),
8277         (dbus_message_iter_append_basic): impl
8278         drastically simplify ~all relevant _append methods to use these.
8279
8280         * dbus/dbus-message-builder.c (parse_basic_type) 
8281         (parse_basic_array, lookup_basic_type): impl.
8282         (_dbus_message_data_load): prune scads of duplicate /
8283         cut & paste coding.
8284
8285         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8286         (_dbus_demarshal_basic_type): implement,
8287         (demarshal_and_validate_len/arg): beef up debug.
8288         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8289
8290 2004-05-27  Seth Nickell  <seth@gnome.org>
8291
8292         * configure.in:
8293         * python/Makefile.am:
8294
8295         Include the example python apps in the tarball.
8296         
8297         * python/examples/list-system-services.py
8298
8299         Add a python new example that fetches the list of services
8300         from the system bus.
8301         
8302 2004-05-27  Seth Nickell  <seth@gnome.org>
8303
8304         * python/dbus.py:
8305         * python/dbus_bindings.pyx.in:
8306
8307         Fix failure to notify that a signal was not handled,
8308         resulted in hung functions.
8309         
8310 2004-05-25  Colin Walters  <walters@redhat.com>
8311
8312         * tools/dbus-monitor.c (main): Monitor all types of messages.
8313
8314 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8315
8316         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8317         which unregisters the object path and disposes the handler.
8318
8319 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8320  
8321         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8322          
8323         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8324         operands to && so we call dbus_message_iter_next () for the last
8325         argument also.
8326
8327 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8328
8329         * dbus/dbus-object-tree.c
8330         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8331         children even if the requested path isn't registered.
8332         (object_tree_test_iteration): test object_tree_list_registered.
8333
8334         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8335         it to 0.
8336         
8337 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8338
8339         * doc/TODO: Remove resolved items.
8340
8341         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8342         field.
8343         
8344         * bus/connection.c (bus_connections_expect_reply): Enforce the
8345         per-connection limit on pending replies.
8346         
8347         Patch from Jon Trowbridge <trow@ximian.com>:
8348  
8349         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8350         up a watch that triggers a config reload when one end of the pipe
8351         becomes readable.
8352         (signal_handler): Instead of doing the config reload in our SIGHUP
8353         handler, just write to the reload pipe and let the associated
8354         watch handle the reload when control returns to the main loop.
8355  
8356         * bus/driver.c (bus_driver_handle_reload_config): Added.
8357         Implements a ReloadConfig method for requesting a configuration
8358         file reload via the bus driver.
8359  
8360 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8361
8362         * HACKING: Updated release instructions concerning the wiki page.
8363
8364 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8365
8366         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8367         filter against auth->allowed_mechs; we only add allowed mechs in
8368         record_mechanisms().
8369  
8370         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8371         ALLOWED_MECHS to auth-script format so we can set the list of
8372         allowed mechanisms.
8373  
8374         * data/auth/client-out-of-mechanisms.auth-script: New test to
8375         check client disconnects when it is out of mechanisms to try.
8376  
8377         * dbus/dbus-auth.c (process_command): Remove check for lines
8378         longer that 1 MB; we only buffer up maximum 16 kB.
8379  
8380         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8381         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8382         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8383         assume there might be unused bytes.
8384  
8385         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8386         client-out-of-mechs, it is handled in process_reject(). Move check
8387         for max failures to send_rejected(), as it's a server-only thing.
8388
8389         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8390         send_auth(), send_data(), send_rejected(), send_error(),
8391         send_ok(), send_begin() and send_cancel().
8392
8393 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8394
8395         Remove base64 encoding, replace with hex encoding. Original patch
8396         from trow@ximian.com, added error handling.
8397
8398         * dbus/dbus-string.c (_dbus_string_base64_encode)
8399         (_dbus_string_base64_decode): Remove.
8400         (_dbus_string_hex_decode): Add end_return argument so we can
8401         distinguish between OOM and invalid hex encoding.
8402         (_dbus_string_test): Remove base64 tests and add test case for
8403         invalid hex.
8404
8405         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8406         Replace base64 with hex.
8407
8408         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8409         for invalid hex encoded data in auth protocol.
8410
8411 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8412
8413         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8414         leak.
8415
8416 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8417
8418         * mono/dbus-sharp.dll.config.in: Added for GAC
8419         * mono/dbus-sharp.snk: Added for GAC
8420         * mono/Assembly.cs.in: Added for GAC
8421         * mono/Makefile.am: Changes for GAC installation        
8422         * configure.in: Added refs for dbus-sharp.dll.config.in and
8423         Assembly.cs.in. More fixes for mono testing
8424         * mono/example/Makefile.am: Changed var to CSC
8425         * Makefile.am: Changed flag name to DBUS_USE_CSC
8426
8427 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8428
8429         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8430         * mono/doc/*: Added documentation framework
8431         * configure.in: Added monodoc check
8432         * README: Added description of mono configure flags
8433
8434 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8435
8436         * doc/dbus-specification.xml: Added a "Required" column to the 
8437         header fields table and changed the "zero or more" verbage in
8438         the above paragraph to read "The header must contain the required 
8439         named header fields and zero or more of the optional named header 
8440         fields".
8441         * test/data/invalid-messages/*.message: Added the required PATH 
8442         named header field to the tests so that they don't fail on 
8443         'Missing path field'
8444
8445 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8446
8447         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8448         the stack by implicitly defining variable and parameter types and
8449         removing the hack of defining C pointers as python objects and later
8450         casting them.
8451
8452 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8453
8454         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8455
8456 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8457
8458         * mono/DBusType/Dict.cs: Handle empty dicts
8459         * mono/DBusType/Array.cs: Handle empty arrays
8460         * mono/Arguments.cs: Handle empty arguments
8461
8462 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8463
8464         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8465         field
8466
8467 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8468
8469         * test/data/valid-messages/standard-*.message: Update message
8470         test scripts to new header field names.
8471
8472 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8473
8474         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8475         overflow to times_we_did_each_thing array which would chop off the
8476         first character of the failure_dir string. Increased the size of
8477         the array to 7 to reflect the number of random mutation functions
8478         we have.
8479
8480 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8481
8482         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8483         unix_server->watch here, it is unreffed in disconnect.
8484         (_dbus_server_new_for_tcp_socket): convert NULL host to
8485         "localhost" here so we don't append NULL to address.
8486         
8487         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8488         various addresses, including tcp with no explicit host.
8489
8490 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8491
8492         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8493         fix incorrect setting of .name_offset in the HeaderField (it was
8494         off by two bytes, positioned right after the name and typecode)
8495
8496         * bus/bus.c (bus_context_new, bus_context_unref): test before
8497         calling dbus_server_free_data_slot and _dbus_user_database_unref
8498         in case of an error.
8499
8500         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8501         by libdbus-gtool.
8502
8503 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8504
8505         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8506         _dbus_poll() instead of select().
8507
8508 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8509
8510         * bus/main.c (signal_handler): Reload the configuration files
8511         on SIGHUP.
8512         (main): Set up our SIGHUP handler.
8513
8514         * bus/bus.c (struct BusContext): Store the config file, user and
8515         fork flag in the BusContext.
8516         (process_config_first_time_only): Added.  Contains the code
8517         (previously in bus_context_new) for setting up the BusContext from
8518         the BusConfigParser that should only be run the first time the
8519         config files are read.
8520         (process_config_every_time): Added.  Contains the code (previously
8521         in bus_context_new) for setting up the BusContext from the
8522         BusConfigParser that should be run every time the config files are
8523         read.
8524         (load_config): Added.  Builds a BusConfigParser from the config
8525         files and passes the resulting structure off to
8526         process_config_first_time_only (assuming this is the first time)
8527         and process_config_every_time.
8528         (bus_context_new): All of the config-related code has been moved
8529         to process_config_first_time_only and process_config_every_time.
8530         Now this function just does the non-config-related initializations
8531         and calls load_config.
8532         (bus_context_reload_config): Added.
8533
8534 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8535
8536         * bus/driver.c (bus_driver_handle_get_service_owner):
8537         implement a GetServiceOwner method.
8538         * doc/dbus-specification.xml: document it.
8539         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8540         
8541         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8542         implement, using the bus GetServiceOwner method.
8543
8544         * test/glib/test-dbus-glib.c:
8545         use dbus_gproxy_new_for_service_owner so that we can receive the
8546         signal. 
8547
8548 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8549
8550         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8551         dbus/dbus-message.c, dbus/dbus-protocol.h
8552         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8553
8554         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8555         dbus/dbus-message.c, dbus/dbus-protocol.h
8556         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8557
8558         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8559         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8560         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8561
8562         * doc/dbus-specification.xml (Header Fields Table):
8563         s/SERVICE/DESTINATION
8564         s/SENDER_SERVICE/SENDER
8565
8566
8567 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8568
8569         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8570         a few seconds.
8571
8572 2004-04-13  Michael Meeks  <michael@ximian.com>
8573
8574         * glib/dbus-gobject.c (handle_introspect): split out
8575         (introspect_properties): this.
8576         (handle_introspect): implement this.
8577
8578         * test/glib/Makefile.am: use the absolute path so the bus
8579         daemon's chdir ("/") doesn't kill us dead.
8580
8581         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8582
8583 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8584
8585         * bus/config-parser.c (struct BusConfigParser): Added
8586         included_files field.
8587         (seen_include): Added.  Checks whether or not a file has already
8588         been included by any parent BusConfigParser.
8589         (bus_config_parser_new): Copy the parent's included_files.
8590         (include_file): Track which files have been included, and fail on
8591         circular inclusions.
8592         (process_test_valid_subdir): Changed printf to report if we are
8593         testing valid or invalid conf files.
8594         (all_are_equiv): Changed printf to be a bit clearer about
8595         what we are actually doing.
8596         (bus_config_parser_test): Test invalid configuration files.
8597
8598 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8599
8600         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8601         argument.  If non-null, the newly-constructed BusConfigParser will
8602         be initialized with the parent's BusLimits instead of the default
8603         values.
8604         (include_file): When including a config file, pass in
8605         the current parser as the parent and then copy the BusLimits
8606         from the included BusConfigParser pack to the current parser.
8607         (process_test_valid_subdir): Renamed from process_test_subdir.
8608         (process_test_equiv_subdir): Added.  Walks through a directory,
8609         descending into each subdirectory and loading the config files
8610         it finds there.  If any subdirectory contains two config files
8611         that don't produce identical BusConfigParser structs, fail.
8612         For now, the BusConfigParser's BusPolicies are not compared.
8613         (bus_config_parser_test): Call both process_test_valid_subdir and
8614         process_test_equiv_subdir.
8615
8616         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8617         argument and pass it along to the call to bus_config_parser_new.
8618         Also made a few small changes to allow this code to compile.
8619
8620         * bus/config-loader-expat.c (bus_config_load): Take a parent
8621         argument and pass it along to the call to bus_config_parser_new.
8622
8623         * bus/bus.c (bus_context_new): Load the config file
8624         with a NULL parent argument.
8625
8626 2004-03-29  Michael Meeks  <michael@ximian.com>
8627
8628         * glib/dbus-gobject.c (introspect_properties): split
8629         out, fix mangled 'while' flow control.
8630         (introspect_signals): implement.
8631         (handle_introspect): update.
8632
8633 2004-03-29  Michael Meeks  <michael@ximian.com>
8634
8635         * glib/dbus-gobject.c (set_object_property): split out / 
8636         re-work, use the property type, and not the message type(!)
8637         (get_object_property): ditto.
8638
8639         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8640         (dbus_gvalue_marshal): make this code re-usable, needed
8641         for signals too, also on both proxy and server side.
8642         Re-write for more efficiency / readability.
8643
8644 2004-03-29  Michael Meeks  <michael@ximian.com>
8645
8646         * dbus/dbus-message.c
8647         (dbus_message_new_error_printf): impl.
8648
8649         * dbus/dbus-connection.c
8650         (dbus_connection_unregister_object_path): fix warning.
8651
8652         * configure.in: fix no-mono-installed situation.
8653
8654 2004-03-27  Havoc Pennington  <hp@redhat.com>
8655
8656         Patch from Timo Teräs:
8657         
8658         * tools/dbus-send.c (main): if --print-reply, assume type is
8659         method call; support boolean type args
8660         
8661         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8662         bunch of memleak and logic bugs
8663         
8664 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8665
8666         * mono/Arguments.cs:
8667         * mono/Introspector.cs:
8668         * mono/Handler.cs:
8669         * mono/InterfaceProxy.cs:
8670         * mono/Message.cs
8671         * mono/ProxyBuilder.cs:
8672         * mono/Service.cs:
8673         Added InterfaceProxy class to avoid building proxies for every
8674         object.
8675
8676         * dbus-message.h:
8677         * dbus-message.c (dbus_message_append_args_valist)
8678         (dbus_message_iter_get_object_path)
8679         (dbus_message_iter_get_object_path_array)
8680         (dbus_message_iter_append_object_path)
8681         (dbus_message_iter_append_object_path_array):
8682         Added object_path iter functions to handle OBJECT_PATH arguments
8683         
8684 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8685
8686         First checkin of mono bindings.
8687         * configure.in:
8688         * Makefile.am:
8689         Build stuff for the bindings
8690         * dbus-sharp.pc.in: Added for pkgconfig
8691         
8692 2004-03-21  Havoc Pennington  <hp@redhat.com>
8693
8694         * test/test-service.c (main): remove debug spew
8695
8696 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8697
8698         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8699         arrays
8700
8701         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8702         (dbus_message_iter_init_array_iterator)
8703         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8704         indicate whether the iterator is empty
8705
8706         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8707         warnings
8708
8709 2004-03-19  Havoc Pennington  <hp@redhat.com>
8710
8711         * NEWS: 0.21 updates
8712
8713         * configure.in: 0.21
8714
8715         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8716         
8717         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8718         you don't need pyrex to make dist
8719
8720         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8721         sources; run moc
8722         
8723 2004-03-18  Richard Hult  <richard@imendio.com>
8724
8725         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8726         (dbus_message_set_auto_activation): Add doxygen docs.
8727
8728 2004-03-16  Richard Hult  <richard@imendio.com>
8729
8730         * bus/activation.c: (bus_activation_service_created),
8731         (bus_activation_send_pending_auto_activation_messages),
8732         (bus_activation_activate_service):
8733         * bus/activation.h:
8734         * bus/dispatch.c: (bus_dispatch),
8735         (check_nonexistent_service_auto_activation),
8736         (check_service_auto_activated),
8737         (check_segfault_service_auto_activation),
8738         (check_existent_service_auto_activation), (bus_dispatch_test):
8739         * bus/driver.c: (bus_driver_handle_activate_service):
8740         * bus/services.c: (bus_registry_acquire_service):
8741         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8742         (dbus_message_get_auto_activation):
8743         * dbus/dbus-message.h:
8744         * dbus/dbus-protocol.h: Implement auto-activation.
8745         
8746         * doc/dbus-specification.xml: Add auto-activation to the spec.
8747
8748 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8749
8750         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8751         fix a bug with CUSTOM types.
8752
8753         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8754         a unit test for this bug (used to fail).
8755
8756 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8757
8758         * bus/activation.c:
8759         (babysitter_watch_callback): notify all pending activations waiting for
8760           the same exec that the activation failed.
8761         (bus_activation_activate_service): shortcut the activation if we 
8762           already waiting for the same executable to start up.
8763
8764 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8765
8766         * bus/activation.c: 
8767         - Added service file reloading. 
8768           Each service files directory is kept in an hash table in 
8769           BusActivation and each BusActivationEntry knows what .service-file it
8770           was read from. So when you try to activate a service the bus will 
8771           check if it's been updated, removed or if new .service-files has 
8772           been installed.
8773         - Test code at the bottom for the service file reloading.
8774         * bus/test-main.c: (main):
8775         * bus/test.h:
8776         - added service reloading test.
8777         * dbus/dbus-sysdeps.c: 
8778         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8779
8780 2004-03-08  Michael Meeks  <michael@ximian.com>
8781
8782         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8783         bail immediately if disconnected, to avoid busy loop.
8784
8785         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8786         cleanup cut/paste/inefficiency.
8787
8788 2004-03-01  David Zeuthen  <david@fubar.dk>
8789
8790         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8791         bug where args were used twice. This bug resulted in a segfault
8792         on a Debian/PPC system when starting the messagebus daemon. Include
8793         dbus-sysdeps.h for DBUS_VA_COPY
8794
8795         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8796
8797         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8798         appropriate va_copy implementation. From GLib
8799         
8800 2004-02-24  Joe Shaw  <joe@ximian.com>
8801
8802         * bus/services.c (bus_registry_acquire_service): We need to pass
8803         in the service name to dbus_set_error() to prevent a crash.
8804
8805 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8806
8807         * AUTHORS: Reveal my True identity.
8808
8809 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8810
8811         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8812         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8813
8814 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8815
8816         * doc/TODO: Added not about better error check of configuration files.
8817
8818 2003-12-02  Richard Hult  <richard@imendio.com>
8819
8820         * Update AFL version to 2.0 throughout the source files to reflect
8821         the update that was done a while ago.
8822
8823 2003-12-02  Richard Hult  <richard@imendio.com>
8824
8825         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8826         wrote_dict_key to FALSE on the iter that the dict is appended to,
8827         just like when appending other types. Fixes a bug where a dict
8828         couldn't be put inside a dict.
8829         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8830         (message_iter_test, _dbus_message_test): Add test case for dict
8831         inside dict.
8832
8833 2003-12-01  David Zeuthen  <david@fubar.dk>
8834
8835         * python/dbus.py: Add the actual message when calling the reciever
8836         of a signal such that parameters can be inspected. Add the method
8837         remove_signal_receiver
8838         
8839 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8840
8841         * bus/*.[ch]:
8842         * dbus/*.[ch]:
8843         * glib/*.[ch]: Made ref functions return the pointer
8844
8845 2003-11-25  Zack Rusin  <zack@kde.org>
8846
8847         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8848
8849         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8850         wrappers,
8851
8852         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8853         the Integrator and to better fit with the server,
8854
8855 2003-11-24  Zack Rusin  <zack@kde.org>
8856
8857         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8858         the integrator handles it now
8859
8860         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8861         since QTimer wasn't really meant to be used the way DBusTimeout is
8862
8863 2003-11-24  Zack Rusin  <zack@kde.org>
8864
8865         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8866         Integrator class which integrates D-BUS with the Qt event loop,
8867
8868         * qt/connection.h, qt/connection.cpp: Move all the code which
8869         was dealing with D-BUS integration to the Integrator class,
8870         and start using Integrator,
8871
8872 2003-11-23  Zack Rusin  <zack@kde.org>
8873
8874         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8875         wrapper
8876
8877         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8878         switching namespaces to DBusQt, reworking the class,
8879
8880         * Makefile.cvs: switching dependencies so that it matches KDE 
8881         schematics,
8882         
8883         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8884         the library
8885
8886 2003-11-19  Havoc Pennington  <hp@redhat.com>
8887
8888         * NEWS: update
8889
8890         * configure.in: bump version to 0.20
8891
8892         * configure.in (have_qt): add yet another place to look for qt
8893         (someone hand trolltech a .pc file...)
8894
8895 2003-11-01  Havoc Pennington  <hp@redhat.com>
8896
8897         * doc/dbus-specification.xml: add state machine docs on the auth
8898         protocol; just a first draft, I'm sure it's wrong.      
8899
8900 2003-10-28  David Zeuthen  <david@fubar.dk>
8901
8902         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8903         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8904         
8905 2003-10-28  Havoc Pennington  <hp@redhat.com>
8906
8907         * dbus/dbus-message.c (get_next_field): delete unused function
8908
8909 2003-10-28  Havoc Pennington  <hp@redhat.com>
8910
8911         * bus/expirelist.c (do_expiration_with_current_time): detect
8912         failure of the expire_func due to OOM
8913
8914         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8915
8916         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8917         NoReply error that's now created by the bus when the service exits
8918
8919 2003-10-28  Havoc Pennington  <hp@redhat.com>
8920
8921         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8922         tests for set_path, set_interface, set_member, etc.
8923
8924         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8925
8926         * dbus/dbus-message.c (set_string_field): always just delete and
8927         re-append the field; accept NULL for deletion
8928         (re_align_fields_recurse): reimplement
8929         
8930 2003-10-26  Havoc Pennington  <hp@redhat.com>
8931
8932         * dbus/dbus-connection.c: fix docs to properly describe the
8933         disconnected message
8934         (_dbus_connection_notify_disconnected): remove this function; 
8935         we can't synchronously add the disconnected message, we have to 
8936         do it after we've queued any remaining real messages
8937         (_dbus_connection_get_dispatch_status_unlocked): queue the
8938         disconnect message only if the transport has finished queueing all
8939         its real messages and is disconnected.
8940         (dbus_connection_disconnect): update the dispatch status here
8941
8942 2003-10-22  Havoc Pennington  <hp@redhat.com>
8943
8944         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8945
8946         * bus/connection.c (bus_transaction_send_from_driver): set the
8947         destination to the connection's base service
8948
8949 2003-10-20  Havoc Pennington  <hp@redhat.com>
8950
8951         hmm, make check is currently not passing.
8952         
8953         * doc/dbus-specification.xml: add requirement that custom type
8954         names follow the same rules as interface names.
8955
8956         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8957         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8958         'map'
8959
8960         * doc/dbus-specification.xml: update type codes to match
8961         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8962         CUSTOM. Add type OBJECT_PATH to the spec.
8963
8964 2003-10-17  Havoc Pennington  <hp@redhat.com>
8965
8966         * bus/driver.c (create_unique_client_name): use "." as separator
8967         in base service names instead of '-'
8968
8969         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8970         byte at the end of the string
8971
8972         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8973         optimization macros since string validation seems to be a slow
8974         point.
8975         
8976         * doc/dbus-specification.xml: restrict valid
8977         service/interface/member/error names. Add test suite code for the
8978         name validation.
8979
8980         * dbus/dbus-string.c: limit service/interface/member/error names 
8981         to [0-9][A-Z][a-z]_
8982
8983         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8984         format arg to verbose spew
8985
8986         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8987         memory, return instead of g_error
8988
8989         * test/test-service.c (path_message_func): support emitting a
8990         signal on request
8991
8992         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8993         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8994         assuming the activation bus was the session bus so that services
8995         started manually will still register.
8996         (init_connections_unlocked): fix so that in OOM situation we get
8997         the same semantics when retrying the function
8998         
8999         * test/test-service.c (main): change to use path registration, to
9000         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9001         than DBUS_BUS_SESSION
9002
9003 2003-10-16  Havoc Pennington  <hp@redhat.com>
9004
9005         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9006
9007         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9008         coverage of the tests
9009         (coverage-report.txt): don't move the .da and .bbg files around
9010
9011 2003-10-16  Havoc Pennington  <hp@redhat.com>
9012
9013         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9014         to put there
9015
9016 2003-10-16  Havoc Pennington  <hp@redhat.com>
9017
9018         * bus/connection.c (bus_pending_reply_expired): either cancel or
9019         execute, not both
9020         (bus_connections_check_reply): use unlink, not remove_link, as we
9021         don't want to free the link; fixes double free mess
9022
9023         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9024         where no reply was received
9025
9026         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9027         fix a refcount leak
9028
9029         * bus/signals.c (match_rule_matches): add special cases for the
9030         bus driver, so you can match on sender/destination for it.
9031
9032         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9033         DBUS_PRINT_BACKTRACE is set
9034
9035         * dbus/dbus-internals.c: add pid to assertion failure messages
9036
9037         * dbus/dbus-connection.c: add message type code to the debug spew
9038
9039         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9040         sender=foo not service=foo
9041
9042         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9043         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9044         DBUS_ACTIVATION_ADDRESS instead
9045
9046         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9047         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9048
9049         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9050         context struct
9051
9052         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9053         (dbus_message_iter_get_object_path_array): new function (half
9054         finished, disabled for the moment)
9055         
9056         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9057         DBUS_MESSAGE_TYPE_ERROR
9058
9059         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9060         avoid redirecting stderr to /dev/null
9061         (babysit): close stdin if not doing the "exit_with_session" thing
9062
9063         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9064         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9065         stdout/stdin, so things don't get confused
9066         
9067         * bus/system.conf.in: fix to allow replies, I modified .conf
9068         instead of .conf.in again.
9069
9070 2003-10-14  David Zeuthen  <david@fubar.dk>
9071
9072         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9073         argtype to arg_type when raising unknown arg type exception.
9074         Changed type list to reflect the changes in dbus-protocol.h so 
9075         the bindings actually work.
9076
9077 2003-10-14  Havoc Pennington  <hp@redhat.com>
9078
9079         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9080         to have a bug keeping it from outputting the .da files sometimes
9081         (string_get_string): don't append garbage nul bytes to the string.
9082
9083 2003-10-15  Seth Nickell  <seth@gnome.org>
9084
9085         * python/Makefile.am:
9086
9087         Include dbus_h_wrapper.h in the dist tarball.
9088
9089 2003-10-14  Havoc Pennington  <hp@redhat.com>
9090
9091         * bus/bus.c (bus_context_check_security_policy): revamp this to
9092         work more sanely with new policy-based requested reply setup
9093
9094         * bus/connection.c (bus_transaction_send_from_driver): set bus
9095         driver messages as no reply
9096
9097         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9098         requested_reply attribute on allow/deny rules
9099
9100         * bus/system.conf: add <allow requested_reply="true"/>
9101
9102         * bus/driver.c (bus_driver_handle_message): fix check for replies
9103         sent to the bus driver, which was backward. How did this ever work
9104         at all though? I think I'm missing something.
9105
9106         * dbus/dbus-message.c (decode_header_data): require error and
9107         method return messages to have a reply serial field to be valid
9108         (_dbus_message_loader_queue_messages): break up this function;
9109         validate that reply serial and plain serial are nonzero; 
9110         clean up the OOM/error handling.
9111         (get_uint_field): don't return -1 from this
9112         (dbus_message_create_header): fix signed/unsigned bug
9113
9114         * bus/connection.c (bus_connections_expect_reply): save serial of
9115         the incoming message, not reply serial
9116
9117 2003-10-14  Havoc Pennington  <hp@redhat.com>
9118
9119         * bus/connection.c: implement pending reply tracking using
9120         BusExpireList
9121
9122         * bus/bus.c (bus_context_check_security_policy): verify that a
9123         reply is pending in order to allow a reply to be sent. Deny 
9124         messages of unknown type.
9125
9126         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9127
9128         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9129         (bus_context_get_reply_timeout): new
9130
9131 2003-10-13  Seth Nickell  <seth@gnome.org>
9132
9133         * python/Makefile.am:
9134
9135         Pass "make distcheck": remove a couple files from DIST_FILES
9136         that weren't included in the final version.
9137
9138 2003-10-12  Havoc Pennington  <hp@pobox.com>
9139
9140         Added test code that 1) starts an actual bus daemon and 2) uses
9141         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9142         more testing possible, but this is the basic framework.
9143         
9144         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9145         empty proxy lists from the proxy list hash
9146
9147         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9148         couple of return_if_fail checks
9149
9150         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9151         to allocate, so everything is cleared to NULL as it should be.
9152
9153         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9154         source as data to dbus_connection_set_timeout_functions() as the 
9155         timeout functions expected
9156
9157         * test/glib/run-test.sh: add a little script to start up a message
9158         bus and run tests using it
9159
9160         * tools/dbus-launch.1: updates
9161
9162         * tools/dbus-launch.c (main): add --config-file option
9163
9164         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9165         that could never be reached.
9166
9167         * dbus/dbus-message.c (dbus_message_new_method_return) 
9168         (dbus_message_new_error, dbus_message_new_signal): set the
9169         no-reply-expected flag on all these. Redundant, but may
9170         as well be consistent.
9171
9172 2003-10-11  Havoc Pennington  <hp@pobox.com>
9173
9174         * test/decode-gcov.c (function_solve_graph): make broken block
9175         graph a nonfatal error since it seems to be broken. Need to debug
9176         this.
9177
9178         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9179         can't just check type > INVALID < LAST anymore
9180
9181         * dbus/dbus-message.c (dbus_message_get_signature): new function
9182         (dbus_message_has_signature): new function
9183         (struct DBusMessage): add signature field (right now it isn't sent
9184         over the wire, just generated on the fly)
9185         (dbus_message_copy): copy the signature, and init strings to
9186         proper length to avoid some reallocs
9187         (dbus_message_iter_init_array_iterator): return void, since it
9188         can't fail
9189         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9190         (_dbus_message_loader_queue_messages): add silly temporary hack to
9191         fill in message->signature on load
9192
9193         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9194         characters, so they are relatively human-readable.
9195
9196 2003-10-11  Havoc Pennington  <hp@pobox.com>
9197
9198         * dbus/dbus-message.c (_dbus_message_test): add more test
9199         coverage, but #if 0 for now since they uncover a bug 
9200         not fixed yet; I think in re_align_field_recurse()
9201         (re_align_field_recurse): add FIXME about broken assertion
9202
9203         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9204
9205         * bus/connection.c: share a couple code bits with expirelist.c
9206
9207         * bus/expirelist.h, bus/expirelist.c: implement a generic
9208         expire-items-after-N-seconds facility, was going to share between
9209         expiring connections and replies, decided not to use for expiring
9210         connections for now.
9211
9212         * COPYING: include AFL 2.0 (still need to change all the file headers)
9213
9214 2003-10-09  Havoc Pennington  <hp@redhat.com>
9215
9216         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9217         gcc 3.3. Not that we do anything about it yet.
9218
9219         * bus/signals.c (bus_match_rule_parse): impose max length on the
9220         match rule text
9221
9222         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9223
9224 2003-10-09  Havoc Pennington  <hp@redhat.com>
9225
9226         Make matching rules theoretically work (add parser).
9227         
9228         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9229         the case where destination is explicitly specified as bus driver
9230         and someone else is eavesdropping.
9231         
9232         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9233         definition of eavesdropping and assertion
9234
9235         * tools/dbus-send.c (main): use dbus_message_type_from_string
9236
9237         * bus/signals.c (bus_match_rule_parse): implement
9238
9239         * dbus/dbus-message.c (dbus_message_type_from_string): new
9240
9241         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9242
9243 2003-10-02  Havoc Pennington  <hp@pobox.com>
9244
9245         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9246         dbus_gproxy_oneway_call
9247
9248         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9249         (dbus_server_setup_with_g_main): fix to allow calling them more
9250         than once on the same args
9251         (dbus_bus_get_with_g_main): new function
9252
9253 2003-10-02  Havoc Pennington  <hp@redhat.com>
9254
9255         * doc/dbus-tutorial.xml: write some stuff
9256
9257 2003-09-29  Havoc Pennington  <hp@pobox.com>
9258
9259         * configure.in: split checks for Doxygen from XML docs, check for
9260         xmlto
9261
9262         * doc/Makefile.am: XML-ify all the docs, and add a blank
9263         dbus-tutorial.xml
9264
9265 2003-09-29  Havoc Pennington  <hp@pobox.com>
9266
9267         * Merge dbus-object-names branch. To see the entire patch 
9268         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9269         it's huuuuge though.
9270         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9271         
9272 2003-09-28  Havoc Pennington  <hp@pobox.com>
9273
9274         * HACKING: update to reflect new server
9275
9276 2003-09-26  Seth Nickell  <seth@gnome.org>
9277
9278         * python/dbus.py:
9279         * python/examples/example-signals.py:
9280
9281         Start implementing some notions of signals. The API
9282         is really terrible, but they sort of work (with the
9283         exception of being able to filter by service, and to
9284         transmit signals *as* a particular service). Need to
9285         figure out how to make messages come from the service
9286         we registered :-(
9287         
9288         * python/dbus_bindings.pyx.in:
9289
9290         Removed duplicate message_handler callbacks.
9291         
9292 2003-09-25  Havoc Pennington  <hp@redhat.com>
9293
9294         * bus/session.conf.in: fix my mess
9295
9296 2003-09-25  Havoc Pennington  <hp@pobox.com>
9297
9298         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9299
9300 2003-09-25  Seth Nickell  <seth@gnome.org>
9301
9302         * python/examples/example-service.py:
9303
9304         Johan notices complete wrong code in example-service, but
9305         completely wrong in a way that works exactly the same (!).
9306         Johan is confused, how could this possibly work? Example
9307         code fails to serve purpose of making things clear.
9308         Seth fixes.
9309
9310 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9311
9312         * doc/dbus-specification.sgml: don't require header fields
9313         to be 4-byte aligned and specify that fields should be
9314         distinguished from padding by the fact that zero is not
9315         a valid field name.
9316         
9317         * doc/TODO: remove re-alignment item and add item to doc
9318         the OBJECT_PATH type.
9319         
9320         * dbus/dbus-message.c:
9321         (HeaderField): rename the original member to value_offset
9322         and introduce a name_offset member to keep track of where
9323         the field actually begins.
9324         (adjust_field_offsets): remove.
9325         (append_int_field), (append_uint_field),
9326         (append_string_field): don't align the start of the header
9327         field to a 4-byte boundary.
9328         (get_next_field): impl finding the next marhsalled field
9329         after a given field.
9330         (re_align_field_recurse): impl re-aligning a number of
9331         already marshalled fields.
9332         (delete_field): impl deleting a field of any type and
9333         re-aligning any following fields.
9334         (delete_int_or_uint_field), (delete_string_field): remove.
9335         (set_int_field), (set_uint_field): no need to re-check
9336         that we have the correct type for the field.
9337         (set_string_field): ditto and impl re-aligning any
9338         following fields.
9339         (decode_header_data): update to take into account that
9340         the fields aren't 4-byte aligned any more and the new
9341         way to distinguish padding from header fields. Also,
9342         don't exit when there is too much header padding.
9343         (process_test_subdir): print the directory.
9344         (_dbus_message_test): add test to make sure a following
9345         field is re-aligned correctly after field deletion.
9346         
9347         * dbus/dbus-string.[ch]:
9348         (_dbus_string_insert_bytes): rename from insert_byte and
9349         allow the insert of multiple bytes.
9350         (_dbus_string_test): test inserting multiple bytes.
9351
9352         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9353         warning note to docs about having to re-align any
9354         marshalled values following the string.
9355         
9356         * dbus/dbus-message-builder.c:
9357         (append_string_field), (_dbus_message_data_load):
9358         don't align the header field.
9359         
9360         * dbus/dbus-auth.c: (process_test_subdir): print the
9361         directory.
9362         
9363         * test/break-loader.c: (randomly_add_one_byte): upd. for
9364         insert_byte change.
9365         
9366         * test/data/invalid-messages/bad-header-field-alignment.message:
9367         new test case.
9368         
9369         * test/data/valid-messages/unknown-header-field.message: shove
9370         a dict in the unknown field.
9371
9372 2003-09-25  Seth Nickell  <seth@gnome.org>
9373
9374         * python/dbus.py:
9375         * python/dbus_bindings.pyx.in:
9376
9377         Handle return values.
9378         
9379         * python/examples/example-client.py:
9380         * python/examples/example-service.py:
9381
9382         Pass back return values from the service to the client.
9383         
9384 2003-09-24  Seth Nickell  <seth@gnome.org>
9385
9386         * python/dbus.py:
9387
9388         Connect Object methods (when you are sharing an object) up... pass
9389         in a list of methods to be shared. Sharing all the methods just
9390         worked out too weird. You can now create nice Services over the
9391         DBus in Python. :-)
9392         
9393         * python/dbus_bindings.pyx.in:
9394
9395         Keep references to user_data tuples passed into C functions so 
9396         Python doesn't garbage collect on us.
9397
9398         Implement MethodReturn and Error subclasses of Message for creating
9399         DBusMessage's of those types.
9400         
9401         * python/examples/example-client.py:
9402         * python/examples/example-service.py:
9403
9404         Simple example code showing both how create DBus services and objects,
9405         and how to use them.
9406
9407 2003-09-23  Havoc Pennington  <hp@pobox.com>
9408
9409         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9410
9411 2003-09-23  Havoc Pennington  <hp@redhat.com>
9412
9413         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9414         (dbus_gproxy_disconnect_signal): implement
9415         (dbus_gproxy_manager_remove_signal_match): implement
9416         (dbus_gproxy_manager_add_signal_match): implement
9417         (dbus_gproxy_oneway_call): implement
9418
9419 2003-09-23  Havoc Pennington  <hp@pobox.com>
9420
9421         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9422         subclass. This means dropping the transparent thread safety of the
9423         proxy; you now need a separate proxy per-thread, or your own
9424         locking on the proxy. Probably right anyway.
9425         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9426
9427 2003-09-22  Havoc Pennington  <hp@redhat.com>
9428
9429         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9430
9431 2003-09-21  Seth Nickell  <seth@gnome.org>
9432
9433         First checkin of the Python bindings.
9434         
9435         * python/.cvsignore:
9436         * python/Makefile.am:
9437         * python/dbus_bindings.pyx.in:
9438         * python/dbus_h_wrapper.h:
9439
9440         Pieces for Pyrex to operate on, building a dbus_bindings.so
9441         python module for low-level access to the DBus APIs.
9442         
9443         * python/dbus.py:
9444
9445         High-level Python module for accessing DBus objects.
9446
9447         * configure.in:
9448         * Makefile.am:
9449
9450         Build stuff for the python bindings.
9451
9452         * acinclude.m4:
9453
9454         Extra macro needed for finding the Python C header files.
9455
9456 2003-09-21  Havoc Pennington  <hp@pobox.com>
9457
9458         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9459         implementing the proxy manager, didn't get very far.
9460
9461         * dbus/dbus-bus.c (dbus_bus_add_match): new
9462         (dbus_bus_remove_match): new
9463
9464         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9465         path_name argument; adjust the other not-yet-implemented 
9466         gproxy constructors to be what I think they should be.
9467
9468 2003-09-21  Havoc Pennington  <hp@pobox.com>
9469
9470         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9471         by default for message bus connections.
9472
9473         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9474         exit_on_disconnect flag is set and we process the disconnected
9475         signal.
9476         (dbus_connection_set_exit_on_disconnect): new function
9477
9478 2003-09-21  Havoc Pennington  <hp@pobox.com>
9479
9480         Get matching rules mostly working in the bus; only actually
9481         parsing the rule text remains. However, the client side of
9482         "signal connections" hasn't been started, this patch is only the
9483         bus side.
9484         
9485         * dbus/dispatch.c: fix for the matching rules changes
9486         
9487         * bus/driver.c (bus_driver_handle_remove_match)
9488         (bus_driver_handle_add_match): send an ack reply from these
9489         method calls
9490
9491         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9492         arguments, reported by Seth Nickell
9493
9494         * bus/config-parser.c (append_rule_from_element): support
9495         eavesdrop=true|false attribute on policies so match rules 
9496         can be prevented from snooping on the system bus.
9497
9498         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9499         and "destination" in attribute names; fix some docs bugs; 
9500         add eavesdrop=true|false attribute
9501
9502         * bus/driver.c (bus_driver_handle_add_match)
9503         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9504         messages
9505
9506         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9507         rid of broadcast service concept, signals are just always broadcast
9508
9509         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9510         mostly implement matching rules stuff (currently only exposed as signal
9511         connections)
9512
9513 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9514
9515         * doc/dbus-specification.sgml: Change the header field name
9516         to be an enum and update the rest of the spec to reference
9517         the fields using the conventinal name.
9518
9519         * dbus/dbus-protocol.h: update to reflect the spec.
9520
9521         * doc/TODO: add item to remove the 4 byte alignment requirement.
9522         
9523         * dbus/dbus-message.c: Remove the code to generalise the
9524         header/body length and serial number header fields as named
9525         header fields so we can reference field names using the 
9526         protocol values.
9527         (append_int_field), (append_uint_field), (append_string_field):
9528         Append the field name as a byte rather than four chars.
9529         (delete_int_or_uint_field), (delete_string_field): reflect the
9530         fact that the field name and typecode now occupy 4 bytes instead
9531         of 8.
9532         (decode_string_field), (decode_header_data): update to reflect
9533         protocol changes and move the field specific encoding from
9534         decode_string_field() back into decode_header_data().
9535         
9536         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9537         Add utility to aid debugging.
9538         
9539         * dbus/dbus-message-builder.c:
9540         (append_string_field), (_dbus_message_data_load): Update to
9541         reflect protocol changes; Change the FIELD_NAME directive
9542         to HEADER_FIELD and allow it to take the field's conventional
9543         name rather than the actual value.
9544         
9545         * test/data/*/*.message: Update to use HEADER_FIELD instead
9546         of FIELD_NAME; Always align the header on an 8 byte boundary
9547         *before* updating the header length.
9548
9549 2003-09-15  Havoc Pennington  <hp@pobox.com>
9550
9551         * dbus/dbus-pending-call.c: add the get/set object data
9552         boilerplate as for DBusConnection, etc. Use generic object data
9553         for the notify callback.
9554
9555         * glib/dbus-gparser.c (parse_node): parse child nodes
9556
9557         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9558         
9559         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9560         contain functions shared between the convenience lib and the
9561         installed lib
9562
9563         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9564         -export-symbols-regex to the GLib library
9565
9566         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9567         fix the locking in here, and add a default handler for
9568         Introspect() that just returns sub-nodes.
9569
9570 2003-09-14  Havoc Pennington  <hp@pobox.com>
9571
9572         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9573         rather than gfoo consistent
9574
9575         * glib/dbus-gproxy.h: delete for now, move contents to
9576         dbus-glib.h, because the include files don't work right since we
9577         aren't in the dbus/ subdir.
9578         
9579         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9580         (dbus_gproxy_end_call): finish
9581         (dbus_gproxy_begin_call): finish
9582
9583         * glib/dbus-gmain.c (dbus_set_g_error): new
9584
9585         * glib/dbus-gobject.c (handle_introspect): include information
9586         about child nodes in the introspection
9587
9588         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9589         function to help in implementation of introspection
9590
9591         * dbus/dbus-object-tree.c
9592         (_dbus_object_tree_list_registered_and_unlock): new function
9593
9594 2003-09-12  Havoc Pennington  <hp@pobox.com>
9595
9596         * glib/dbus-gidl.h: add common base class for all the foo_info
9597         types
9598
9599         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9600         similar to kdcop
9601
9602         * test/Makefile.am: try test srcdir -ef . in addition to test
9603         srcdir = ., one of them should work (yeah lame)
9604         
9605         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9606         library
9607         
9608         * glib/dbus-gparser.h: make description_load routines return
9609         NodeInfo* not Parser*
9610
9611         * Makefile.am (SUBDIRS): build test dir after all library dirs
9612
9613         * configure.in: add GTK+ detection
9614
9615 2003-09-07  Havoc Pennington  <hp@pobox.com>
9616
9617         * Make Doxygen contented.
9618
9619 2003-09-07  Havoc Pennington  <hp@pobox.com>
9620
9621         * doc/dbus-specification.sgml: more updates
9622
9623 2003-09-06  Havoc Pennington  <hp@pobox.com>
9624
9625         * doc/dbus-specification.sgml: partial updates
9626
9627         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9628         zillionth time; hopefully I edited the right file this time.
9629
9630         * bus/config-parser.c (append_rule_from_element): support
9631         send_type, send_path, receive_type, receive_path
9632
9633         * bus/policy.c: add message type and path to the list of things
9634         that can be "firewalled"
9635
9636 2003-09-06  Havoc Pennington  <hp@pobox.com>
9637
9638         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9639         (dbus_connection_register_object_path): make this not handle
9640         messages to paths below the given path
9641
9642 2003-09-03  Havoc Pennington  <hp@pobox.com>
9643
9644         * test/glib/Makefile.am: add this with random glib-linked test
9645         programs
9646
9647         * glib/Makefile.am: remove the random test programs from here,
9648         leave only the unit tests
9649
9650         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9651         uscore/javacaps conversion, and fix     
9652         (get_object_property, set_object_property): change to .NET
9653         convention for mapping props to methods, set_FooBar/get_FooBar, 
9654         since one language has such a convention we may as well copy it. 
9655         Plus real methods in either getFooBar or get_foo_bar style won't 
9656         collide with this convention.
9657
9658 2003-09-01  Havoc Pennington  <hp@pobox.com>
9659
9660         * glib/dbus-gparser.c: implement
9661
9662         * glib/dbus-gobject.c: start implementing skeletons support
9663
9664         * configure.in: when disabling checks/assert, also define
9665         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9666
9667 2003-09-01  Havoc Pennington  <hp@pobox.com>
9668
9669         * glib/Makefile.am: rearrange a bunch of files and get "make
9670         check" framework set up
9671
9672 2003-08-31  Havoc Pennington  <hp@pobox.com>
9673
9674         * fix build with --disable-tests
9675
9676 2003-08-30  Havoc Pennington  <hp@pobox.com>
9677
9678         * dbus/dbus-connection.c: purge DBusMessageHandler
9679
9680         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9681         use callbacks everywhere
9682
9683 2003-08-30  Havoc Pennington  <hp@pobox.com>
9684
9685         * test/data/valid-config-files/system.d/test.conf: change to 
9686         root for the user so warnings don't get printed
9687
9688         * dbus/dbus-message.c: add dbus_message_get_path,
9689         dbus_message_set_path
9690         
9691         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9692         dispatching to a path
9693
9694         * dbus/dbus-string.c (_dbus_string_validate_path): add
9695
9696         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9697         (_dbus_marshal_object_path): implement
9698
9699         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9700         to contain the path to the target object
9701         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9702         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9703
9704 2003-08-30  Havoc Pennington  <hp@pobox.com>
9705
9706         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9707
9708 2003-08-29  Havoc Pennington  <hp@pobox.com>
9709
9710         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9711         registered
9712         (struct DBusObjectSubtree): shrink this
9713         a lot, since we may have a lot of them
9714         (_dbus_object_tree_free_all_unlocked): implement
9715         (_dbus_object_tree_dispatch_and_unlock): implement
9716
9717 2003-08-29  Havoc Pennington  <hp@pobox.com>
9718
9719         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9720
9721 2003-08-28  Havoc Pennington  <hp@pobox.com>
9722
9723         purge DBusObjectID
9724         
9725         * dbus/dbus-connection.c: port to no ObjectID, create a
9726         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9727
9728         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9729         everything except UnregisterFunction and MessageFunction
9730         
9731         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9732         add DBUS_TYPE_OBJECT_PATH
9733         
9734         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9735         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9736         path-based object IDs
9737
9738 2003-08-25  Havoc Pennington  <hp@pobox.com>
9739
9740         Just noticed that dbus_message_test is hosed, I wonder when I
9741         broke that. I thought make check was passing earlier...
9742         
9743         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9744         container tree, will replace most of dbus-object-registry
9745
9746         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9747         screwup
9748
9749 2003-08-19  Havoc Pennington  <hp@pobox.com>
9750
9751         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9752         (dbus_message_is_error): fix this function
9753
9754         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9755         match
9756
9757         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9758         reflect clarified man page
9759         (bus_client_policy_check_can_send): ditto
9760         
9761         * bus/session.conf.in: fixup
9762
9763         * bus/system.conf.in: fixup
9764
9765 2003-08-18  Havoc Pennington  <hp@redhat.com>
9766
9767         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9768
9769         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9770         dumb bug created earlier (wrong order of args to
9771         decode_header_data())
9772         
9773         * tools/dbus-send.c: port
9774
9775         * tools/dbus-print-message.c (print_message): port
9776
9777         * test/data/*messages: port all messages over
9778         
9779         * dbus/dbus-message-builder.c: support including 
9780         message type
9781         
9782         * bus/driver.c: port over
9783         
9784         * bus/dispatch.c: port over to new stuff
9785
9786         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9787         rename disconnect signal to "Disconnected"
9788
9789 2003-08-17  Havoc Pennington  <hp@pobox.com>
9790
9791         This doesn't compile yet, but syncing up so I can hack on it from
9792         work. What are branches for if not broken code? ;-)
9793         
9794         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9795         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9796         DBUS_HEADER_FIELD_ERROR_NAME
9797         
9798         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9799         for the interface+member pairs
9800         (string_hash): change to use g_str_hash algorithm
9801         (find_direct_function, find_string_function): refactor these to
9802         share most code.
9803         
9804         * dbus/dbus-message.c: port all of this over to support 
9805         interface/member fields instead of name field
9806
9807         * dbus/dbus-object-registry.c: port over
9808         
9809         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9810         from _dbus_string_validate_name
9811
9812         * bus/dbus-daemon-1.1: change file format for the 
9813         <deny>/<allow> stuff to match new message naming scheme
9814
9815         * bus/policy.c: port over
9816
9817         * bus/config-parser.c: parse new format
9818         
9819 2003-08-16  Havoc Pennington  <hp@pobox.com>
9820
9821         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9822         broken assertion
9823
9824         * glib/dbus-gproxy.c: some hacking
9825
9826 2003-08-15  Havoc Pennington  <hp@redhat.com>
9827
9828         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9829
9830         * dbus/dbus-connection.c
9831         (dbus_connection_send_with_reply_and_block): factor out internals;
9832         change to convert any error replies to DBusError instead of 
9833         returning them as a message
9834
9835 2003-08-15  Havoc Pennington  <hp@pobox.com>
9836
9837         * dbus/dbus-connection.c, 
9838         dbus/dbus-pending-call.c: Finish the pending call stuff
9839
9840 2003-08-14  Havoc Pennington  <hp@redhat.com>
9841
9842         * dbus/dbus-pending-call.c: start on new object that will replace
9843         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9844         replies
9845
9846         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9847         with remote interfaces
9848
9849         * dbus/dbus-gidl.c: do the boring boilerplate in here
9850         
9851 2003-08-12  Havoc Pennington  <hp@pobox.com>
9852
9853         * bus/dispatch.c (bus_dispatch): make this return proper 
9854         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9855
9856         * dbus/dbus-errors.c (dbus_set_error): use
9857         _dbus_string_append_printf_valist
9858
9859         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9860         (_dbus_string_append_printf): new
9861
9862         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9863         UNKNOWN_METHOD
9864
9865         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9866         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9867         message is unhandled.
9868
9869 2003-08-11  Havoc Pennington  <hp@pobox.com>
9870
9871         * bus/test.c (client_disconnect_handler): change to return
9872         HANDLED (would have been REMOVE_MESSAGE)
9873
9874         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9875         HANDLED/NOT_YET_HANDLED instead of
9876         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9877         should be used.
9878
9879 2003-08-10  Havoc Pennington  <hp@pobox.com>
9880
9881         * tools/dbus-send.c (main): add --type argument, for now
9882         supporting only method_call and signal types.
9883
9884         * tools/dbus-print-message.c: print message type
9885
9886         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9887         init connection->objects
9888
9889         * doc/dbus-specification.sgml: fix sgml
9890
9891         * bus/*.c: port over to object-instance API changes
9892
9893         * test/test-service.c: ditto
9894         
9895         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9896         name, we will have to fix up the rest of the code to also handle
9897         this
9898         (dbus_message_new): generic message-creation call
9899         (set_string_field): allow appending name field
9900
9901 2003-08-06  Havoc Pennington  <hp@pobox.com>
9902
9903         * dbus/dbus-object-registry.c: implement signal connection 
9904         and dispatch
9905
9906         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9907
9908         * dbus/dbus-internals.c (_dbus_memdup): new function
9909
9910 2003-08-02  Havoc Pennington  <hp@pobox.com>
9911
9912         * dbus/dbus-message.c (dbus_message_get_no_reply)
9913         (dbus_message_set_no_reply): add these and remove
9914         set_is_error/get_is_error
9915
9916         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9917         remove the ERROR flag, since there's now an ERROR type
9918
9919 2003-08-01  Havoc Pennington  <hp@pobox.com>
9920
9921         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9922         implement
9923
9924         * dbus/dbus-message.c (dbus_message_get_type): new function
9925
9926         * doc/dbus-specification.sgml: add "type" byte to messages
9927
9928 2003-08-01  Havoc Pennington  <hp@pobox.com>
9929
9930         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9931         a message type enum to distinguish kinds of message
9932         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9933         that need not be replied to
9934
9935 2003-08-01  Havoc Pennington  <hp@pobox.com>
9936
9937         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9938         (unpack_8_octets): fix no-64-bit-int bug
9939
9940         * dbus/dbus-object-registry.c (validate_id): validate the 
9941         connection ID bits, not just the instance ID.
9942
9943         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9944         the connection-global 33 bits of the object ID
9945
9946         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9947         object ID in the new way
9948
9949         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9950         define server/client/instance bits.
9951
9952 2003-07-30  Havoc Pennington  <hp@pobox.com>
9953
9954         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9955         build
9956
9957 2003-07-13  Havoc Pennington  <hp@pobox.com>
9958
9959         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9960         fields to DBusObjectVTable and DBusObjectInfo
9961
9962 2003-07-12  Havoc Pennington  <hp@pobox.com>
9963
9964         * dbus/dbus-object-registry.c: implement unit test,
9965         fix bugs discovered in process
9966
9967         * dbus/dbus-connection.c: remove handler_table and
9968         register_handler(), add DBusObjectRegistry usage
9969
9970         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9971         (dbus_object_id_set_null): new functions
9972
9973 2003-07-08  Havoc Pennington  <hp@pobox.com>
9974
9975         * dbus/dbus-object.c: implement some of this
9976
9977         * dbus/dbus-object-registry.c
9978         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9979         param
9980         (_dbus_object_registry_new): handle OOM
9981
9982 2003-07-08  Havoc Pennington  <hp@pobox.com>
9983
9984         * dbus/dbus-object.h: sketch out an API for registering objects
9985         with a connection, that allows us to use as little as 24 bytes
9986         per object and lets application code represent an object in 
9987         any conceivable way.
9988
9989         * dbus/dbus-object-registry.c: implement the hard bits of the
9990         DBusConnection aspect of object API. Not yet wired up.
9991         
9992 2003-07-06  Havoc Pennington  <hp@pobox.com>
9993
9994         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9995         (_dbus_marshal_object_id): new
9996         (_dbus_demarshal_object_id): new
9997         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9998         consolidate identical switch cases. Don't conditionalize handling
9999         of DBUS_TYPE_UINT64, need to handle the type always.
10000         (_dbus_marshal_validate_arg): consolidate identical cases, and
10001         handle DBUS_TYPE_OBJECT_ID
10002
10003         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10004
10005         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10006
10007 2003-09-28  Havoc Pennington  <hp@pobox.com>
10008
10009         * real 0.13 release
10010
10011 2003-09-28  Havoc Pennington  <hp@pobox.com>
10012
10013         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10014         to work with Debian db2html
10015
10016 2003-09-28  Havoc Pennington  <hp@pobox.com>
10017
10018         * configure.in: 0.13
10019
10020         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10021         stylesheet-images for benefit of Debian
10022         
10023         Change back to using filesystem-linked sockets for the system
10024         bus, so only root can create the default system bus address.
10025         
10026         * bus/system.conf.in: change to use
10027         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10028
10029         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10030         from here.
10031
10032         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10033         here, and AC_DEFINE DBUS_SYSTEM_PATH
10034
10035 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10036
10037         * doc/TODO:
10038         * doc/busconfig.dtd:
10039         Add busconfig DTD.
10040         
10041 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10042
10043         * doc/dbus-specification.sgml:
10044         Add activation reply values.
10045         
10046 2003-08-05  Havoc Pennington  <hp@redhat.com>
10047
10048         * configure.in: 0.12
10049
10050 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10051
10052         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10053         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10054         (add_watch), (remove_watch), (create_source):
10055         Refcount fds, fixes some reentrancy issues.
10056         
10057 2003-07-30  Havoc Pennington  <hp@redhat.com>
10058
10059         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10060         bus address to be abstract if we have abstract sockets
10061
10062         * NEWS: update
10063
10064 2003-07-28  Havoc Pennington  <hp@redhat.com>
10065
10066         * bus/messagebus.in: fix to avoid processname/servicename 
10067         confusion, from Michael Kearey
10068         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10069         
10070 2003-07-23  Havoc Pennington  <hp@pobox.com>
10071
10072         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10073         fix from Andy Hanton to remove broken "+1"
10074
10075 2003-07-16  Havoc Pennington  <hp@pobox.com>
10076
10077         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10078         babysitter process, as suggested by Thomas Leonard, so 
10079         an "eval `dbus-launch --exit-with-session`" will actually 
10080         return
10081
10082 2003-07-16  Havoc Pennington  <hp@pobox.com>
10083
10084         * configure.in: print out EXPANDED_* variables in the summary at
10085         the end; clean up the code that computes EXPANDED_ variables and
10086         get the ones using exec_prefix right. Should make things work
10087         when you build without --prefix
10088
10089 2003-06-29  Havoc Pennington  <hp@pobox.com>
10090
10091         * mono/Test.cs (class Test): fire up a main loop and run it
10092
10093         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10094         done once, the app has to do it
10095
10096 2003-06-26  Havoc Pennington  <hp@pobox.com>
10097
10098         * mono/Connection.cs: set up connection with the glib main loop
10099
10100 2003-07-01  Havoc Pennington  <hp@redhat.com>
10101
10102         * doc/dbus-specification.sgml: clarify the format of a type code,
10103         change suggested by Jim Blandy
10104
10105 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10106
10107         * doc/Makefile.am:
10108         * tools/Makefile.am: Don't assume srcdir == builddir.
10109
10110         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10111         the allocated block.
10112         (_dbus_memory_test): New function.
10113         * dbus/dbus-test.h: Add _dbus_memory_test ().
10114         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10115
10116         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10117         of %c%c%c%c.
10118         (dbus_message_new): Remove obsolete @todo.
10119
10120         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10121         (_dbus_marshal_set_uint64): Fix comment.
10122
10123         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10124         hardcode FIELD_REPLY_SERIAL.
10125
10126         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10127         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10128
10129         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10130         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10131
10132 2003-06-24  Havoc Pennington  <hp@pobox.com>
10133
10134         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10135
10136 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10137
10138         * configure.in:
10139         * gcj/.cvsignore:
10140         * gcj/Hello.java:
10141         * gcj/Makefile.am:
10142         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10143         * gcj/org/.cvsignore:
10144         * gcj/org/Makefile.am:
10145         * gcj/org/freedesktop/.cvsignore:
10146         * gcj/org/freedesktop/Makefile.am:
10147         * gcj/org/freedesktop/dbus/.cvsignore:
10148         * gcj/org/freedesktop/dbus/Makefile.am:
10149         * gcj/org/freedesktop/dbus/Message.java: (Message),
10150         (Message.Message):
10151         * gcj/org/freedesktop/dbus/natMessage.cc:
10152         Fix the build system.
10153
10154 2003-06-22  Havoc Pennington  <hp@pobox.com>
10155
10156         * mono/Connection.cs: add more bindings
10157
10158         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10159         more than once.
10160
10161 2003-06-22  Havoc Pennington  <hp@pobox.com>
10162
10163         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10164         Start wrapping more stuff.
10165
10166 2003-06-22  Havoc Pennington  <hp@pobox.com>
10167
10168         * mono/Message.cs: implement Message.Wrap() that ensures we only
10169         have a single C# wrapper per DBusMessage, assuming it works which
10170         it probably doesn't.
10171
10172         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10173         (dbus_message_free_data_slot): new
10174         (dbus_message_set_data): new
10175         (dbus_message_get_data): new
10176
10177 2003-06-22  Havoc Pennington  <hp@pobox.com>
10178
10179         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10180         (_dbus_data_slot_allocator_alloc): rework these to keep a
10181         reference count on each slot and automatically manage a global
10182         slot ID variable passed in by address
10183
10184         * bus/bus.c: convert to new dataslot API
10185
10186         * dbus/dbus-bus.c: convert to new dataslot API
10187
10188         * dbus/dbus-connection.c: convert to new dataslot API
10189
10190         * dbus/dbus-server.c: convert to new dataslot API
10191
10192         * glib/dbus-gmain.c: ditto
10193
10194         * bus/test.c: ditto
10195
10196         * bus/connection.c: ditto
10197
10198 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10199
10200         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10201         after the gcj checks so that the correct configuration tags
10202         will be added to libtool.
10203
10204         * dbus-glib-1.pc.in: No need to specify any includes since
10205         dbus-1.pc.in has those.
10206
10207 2003-06-22  Havoc Pennington  <hp@pobox.com>
10208
10209         * mono/*, gcj/*, configure.in, Makefile.am:
10210         Check in makefiles and subdirs for mono and gcj bindings.
10211         Neither binding actually exists, just trying to get through
10212         all the build and other boring bits.
10213
10214 2003-06-21  Philip Blundell  <philb@gnu.org>
10215
10216         * tools/dbus-monitor.1: Updated.
10217
10218         * tools/dbus-send.1: Likewise.
10219
10220 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10221
10222         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10223         for hangup and error after checking read so we won't discard
10224         pending data if both hangup and read are set.
10225
10226 2003-06-19  Philip Blundell  <philb@gnu.org>
10227
10228         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10229
10230         * tools/dbus-send.c: Accept both --system and --session.
10231
10232         * tools/dbus-monitor.c: Same here.
10233
10234 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10235
10236         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10237         from C++ (Patch by Miloslav Trmac).
10238
10239 2003-06-15  Joe Shaw  <joe@assbarn.com>
10240
10241         * configure.in: Check for socklen_t.
10242
10243         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10244
10245         * test/test-segfault.c: Add #include <sys/time.h>
10246
10247         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10248         dbus-launch needs it.
10249
10250 2003-06-09  Havoc Pennington  <hp@redhat.com>
10251
10252         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10253         SUN_LEN, it breaks abstract socket usage
10254
10255         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10256         starts of lines.
10257
10258 2003-06-04  Havoc Pennington  <hp@pobox.com>
10259
10260         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10261         using unix:abstract=/foo, and when listening in a tmpdir
10262         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10263
10264         * dbus/dbus-transport.c (_dbus_transport_open): support
10265         unix:abstract=/foo
10266
10267         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10268         support abstract sockets
10269
10270         * dbus/dbus-transport-unix.c
10271         (_dbus_transport_new_for_domain_socket): support abstract sockets
10272
10273         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10274         toggle as an argument, implement abstract namespace support
10275         (_dbus_listen_unix_socket): ditto
10276
10277         * configure.in: add --enable-abstract-sockets and implement
10278         a configure check for autodetection of the right value.
10279
10280 2003-06-01  Havoc Pennington  <hp@pobox.com>
10281
10282         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10283         in /tmp (though on Linux this will end up being useless,
10284         when we add abstract namespace support)
10285
10286         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10287         subst'ing it
10288
10289 2003-05-28  Colin Walters  <walters@verbum.org>
10290
10291         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10292
10293 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10294
10295         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10296
10297 2003-05-17  Colin Walters  <walters@gnu.org>
10298
10299         * tools/dbus-send.c: Don't exit with an error code if --help was
10300         passed.  Default to using the session bus instead of the system
10301         one.
10302
10303         * tools/dbus-launch.c: Ditto.
10304
10305         * tools/dbus-monitor.c: Ditto.
10306
10307         * tools/dbus-send.1: Update with new arguments.
10308
10309         * tools/dbus-launch.c: Emit code to export variables.  New
10310         arguments -s and -c to specify shell syntax, and a bit of code to
10311         autodetect syntax.  Also, allow specifying a program to run.
10312
10313         * tools/dbus-launch.1: Update with new arguments.
10314
10315         * tools/dbus-send.1: Ditto.
10316
10317         * tools/dbus-monitor.1: Ditto.
10318
10319 2003-05-17  Havoc Pennington  <hp@pobox.com>
10320
10321         * bus/config-parser.c (merge_included): merge in policies from
10322         child configuration file.
10323
10324         * bus/policy.c (bus_policy_merge): function to merge two policies
10325         together
10326
10327 2003-05-16  Havoc Pennington  <hp@redhat.com>
10328
10329         * dbus/dbus-connection.c: disable verbose lock spew
10330
10331         * tools/dbus-send.c: add --print-reply command line option
10332
10333         * tools/dbus-print-message.h (print_message): new util function
10334         shared by dbus-send and dbus-monitor
10335
10336         * tools/dbus-monitor.c (handler_func): exit on disconnect
10337
10338         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10339         disconnected, don't try to use the read_watch
10340
10341         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10342         so we can find this bug more easily
10343
10344 2003-05-16  Havoc Pennington  <hp@redhat.com>
10345
10346         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10347         NULL as DBusHashTable is annoyingly likely to do.
10348
10349 2003-05-16  Colin Walters  <walters@verbum.org>
10350
10351         * tools/dbus-monitor.c: Add --session argument and usage()
10352         function.
10353
10354         * tools/dbus-monitor.1: Update with new --session arg.
10355
10356         * bus/Makefile.am (install-data-hook): Create
10357         $(libdir)/dbus-1.0/services so that the session bus is happy.
10358
10359 2003-05-15  Havoc Pennington  <hp@redhat.com>
10360
10361         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10362         on non-x86. ifdef's are evil.
10363
10364 2003-05-15  Havoc Pennington  <hp@redhat.com>
10365
10366         * configure.in: 0.11
10367
10368         * NEWS: update
10369
10370         * bus/Makefile.am (initddir): apparently we are supposed to put
10371         init scripts in /etc/rc.d/init.d not /etc/init.d
10372
10373         * bus/Makefile.am: remove the "you must --enable-tests to make
10374         check" as it broke distcheck
10375
10376         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10377
10378 2003-05-13  James Willcox  <jwillcox@gnome.org>
10379
10380         * configure.in:
10381         * bus/activation.c: (bus_activation_service_created),
10382         (bus_activation_activate_service):
10383         * bus/driver.c: (bus_driver_send_service_deleted),
10384         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10385         (bus_driver_send_service_acquired),
10386         (bus_driver_send_welcome_message),
10387         (bus_driver_handle_list_services):
10388         * bus/session.conf.in:
10389         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10390         (dbus_bus_service_exists), (dbus_bus_activate_service):
10391         * dbus/dbus-bus.h:
10392
10393         Add some convenience API which lets you activate a service, and did a
10394         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10395         and dbus_message_get_args()
10396
10397 2003-05-11  Havoc Pennington  <hp@pobox.com>
10398
10399         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10400         calling _dbus_marshal_validate_arg() for every byte in a byte
10401         array, etc.
10402
10403         * dbus/dbus-message-handler.c: use atomic reference counting to
10404         reduce number of locks slightly; the global lock in here sucks
10405
10406         * dbus/dbus-connection.c
10407         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10408         update_dispatch_status that can be called with lock held; then use
10409         in a couple places to reduce locking/unlocking
10410         (dbus_connection_send): hold the lock over the whole function
10411         instead of acquiring it twice.
10412
10413         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10414
10415         * bus/connection.c (bus_connections_setup_connection): fix access
10416         to already-freed memory.
10417
10418         * dbus/dbus-connection.c: keep a little cache of linked list
10419         nodes, to avoid using the global linked list alloc lock in the
10420         normal send-message case. Instead we just use the connection lock
10421         that we already have to take.
10422
10423         * dbus/dbus-list.c (_dbus_list_find_last): new function
10424
10425         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10426         change to use a struct for the atomic type; fix docs,
10427         they return value before increment, not after increment.
10428
10429         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10430         (_dbus_string_append_8_aligned): new functions to try to
10431         microoptimize this operation.
10432         (reallocate_for_length): break this out of set_length(), to
10433         improve profile info, and also so we can consider inlining the
10434         set_length() part.
10435
10436         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10437         strings with some preallocation, cuts down on our calls to realloc
10438         a fair bit. Though if we can get the "move entire string to empty
10439         string" optimization below to kick in here, it would be better.
10440
10441         * dbus/dbus-string.c (_dbus_string_move): just call
10442         _dbus_string_move_len
10443         (_dbus_string_move_len): add a special case for moving
10444         an entire string into an empty string; we can just
10445         swap the string data instead of doing any reallocs.
10446         (_dbus_string_init_preallocated): new function
10447
10448 2003-05-11  Havoc Pennington  <hp@pobox.com>
10449
10450         Write a "test-profile" that does echo client-server with threads;
10451         profile reveals lock contention, memcpy/realloc of buffers, and
10452         UTF-8 validation as hot spots. 20% of lock contention eliminated
10453         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10454         contention is global mempool locks for GList and DBusList.
10455
10456         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10457         x86 implementation
10458
10459         * dbus/dbus-connection.c (struct DBusConnection): use
10460         dbus_atomic_t for the reference count
10461
10462         * dbus/dbus-message.c (struct DBusMessage): declare
10463         dbus_atomic_t values as volatile
10464
10465         * configure.in: code to detect ability to use atomic integer
10466         operations in assembly, from GLib patch
10467
10468         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10469         time, tired of it being wrong in threads and forked processes
10470
10471         * glib/test-profile.c: a little program to bounce messages back
10472         and forth between threads and eat CPU
10473
10474         * dbus/dbus-connection.c: add debug spew macros for debugging
10475         thread locks; include config.h at top; fix deadlock in
10476         dbus_connection_flush()
10477
10478 2003-05-08  Havoc Pennington  <hp@pobox.com>
10479
10480         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10481         data from getting written, and there wasn't a good reason to
10482         use _exit really.
10483
10484         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10485         dbus_verbose lines in test coverage
10486         (main): add list of functions sorted by # of untested blocks
10487         to the coverage report
10488
10489         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10490
10491         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10492
10493         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10494         extend test coverage
10495
10496         * test/data/auth/cancel.auth-script: test canceling an
10497         authentication
10498
10499         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10500         aren't used. in CVS history if we end up needing them.
10501
10502 2003-05-04  Havoc Pennington  <hp@pobox.com>
10503
10504         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10505         unit test
10506
10507         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10508         function, which assumed length was in # of strings, not bytes
10509
10510         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10511         missing coverage
10512
10513         * dbus/dbus-connection.c
10514         (_dbus_connection_queue_received_message): disable function for
10515         now, we are only using it in test mode
10516
10517         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10518         remove a mistaken FIXME
10519
10520 2003-05-04  Havoc Pennington  <hp@pobox.com>
10521
10522         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10523         unlock mutex on successful return, patch from Anders Gustafsson
10524
10525 2003-05-04  Havoc Pennington  <hp@pobox.com>
10526
10527         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10528         Anders Gustafsson
10529
10530 2003-05-04  Havoc Pennington  <hp@pobox.com>
10531
10532         * tools/dbus-launch.c: implement
10533
10534         * bus/main.c (main), bus/bus.c (bus_context_new):
10535         implement --print-pid and --fork
10536
10537 2003-05-03  Havoc Pennington  <hp@redhat.com>
10538
10539         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10540         the address had no value, and add to test suite. Fix and
10541         regression test from Miloslav Trmac
10542
10543 2003-05-03  Havoc Pennington  <hp@pobox.com>
10544
10545         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10546         watch is invalid when handled
10547
10548         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10549         dbus-launch utility to launch the bus from a shell script.  Didn't
10550         actually implement dbus-launch yet, it's just a placeholder still.
10551
10552 2003-05-03  Havoc Pennington  <hp@pobox.com>
10553
10554         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10555         daemon; also documents daemon config file, so replaces
10556         doc/config-file.txt. Corrected some stuff from config-file.txt in
10557         the process of moving it.
10558
10559 2003-05-03  Havoc Pennington  <hp@pobox.com>
10560
10561         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10562         add some man pages
10563
10564 2003-05-03  Colin Walters  <walters@verbum.org>
10565
10566         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10567         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10568
10569         * Makefile.am: Update to use new .pc versioning scheme.
10570
10571 2003-05-02  Havoc Pennington  <hp@redhat.com>
10572
10573         * bus/system.conf.in: allow send/receive to/from message bus
10574         service
10575
10576 2003-04-30  Havoc Pennington  <hp@redhat.com>
10577
10578         * configure.in: print a note when building with unit tests and
10579         without assertions
10580
10581 2003-04-30  Havoc Pennington  <hp@redhat.com>
10582
10583         * Makefile.am: add a check-local that complains if you didn't
10584         configure with --enable-tests
10585
10586 2003-04-29  Havoc Pennington  <hp@redhat.com>
10587
10588         * glib/dbus-gmain.c: docs cleanups
10589
10590         * dbus/dbus-types.h: add docs on int64 types
10591
10592         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10593         public API docs section
10594
10595 2003-04-29  Havoc Pennington  <hp@redhat.com>
10596
10597         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10598         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10599         parallel install API version, not with the D-BUS package version.
10600
10601         * HACKING: move some of README over here
10602
10603         * README: updates, and document API/ABI policy
10604
10605         * configure.in: reindentation
10606
10607 2003-04-29  Havoc Pennington  <hp@redhat.com>
10608
10609         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10610         to use this library" to be sure people have the right
10611         expectations.
10612
10613 2003-04-28  Havoc Pennington  <hp@redhat.com>
10614
10615         * configure.in: add --enable-docs which by default is auto yes if
10616         doxygen and db2html found, no otherwise; but can be forced on/off
10617
10618         * doc/Makefile.am: conditionalize whether to build docs on
10619         --enable-docs
10620
10621 2003-04-28  Havoc Pennington  <hp@redhat.com>
10622
10623         * configure.in: 0.10
10624
10625         * NEWS: update
10626
10627         * bus/system.conf.in: add <includedir>system.d</includedir>
10628
10629         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10630         username was provided but not uid
10631
10632         * bus/config-parser.c (struct BusConfigParser): keep track of
10633         whether the parser is toplevel or was included; change some
10634         of the error handling if it's included.
10635
10636 2003-04-27  Havoc Pennington  <hp@pobox.com>
10637
10638         Unbreak my code...
10639
10640         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10641         report correct status if we finish processing authentication
10642         inside this function.
10643
10644         * bus/activation.c (try_send_activation_failure): use
10645         bus_transaction_send_error_reply
10646
10647         * bus/connection.c (bus_connection_get_groups): return an error
10648         explaining the problem
10649
10650         * bus/bus.c (bus_context_check_security_policy): implement
10651         restriction here that inactive connections can only send the
10652         hello message. Also, allow bus driver to send anything to
10653         any recipient.
10654
10655         * bus/connection.c (bus_connection_complete): create the
10656         BusClientPolicy here instead of on-demand.
10657         (bus_connection_get_policy): don't return an error
10658
10659         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10660         sender field in message being replied to
10661
10662         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10663         causing it to return FALSE always
10664
10665         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10666         we checked sender rather than destination
10667
10668 2003-04-25  Havoc Pennington  <hp@redhat.com>
10669
10670         test suite is slightly hosed at the moment, will fix soon
10671
10672         * bus/connection.c (bus_connections_expire_incomplete): fix to
10673         properly disable the timeout when required
10674         (bus_connection_set_name): check whether we can remove incomplete
10675         connections timeout after we complete each connection.
10676
10677         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10678         probably still broken.
10679
10680         * bus/services.c (bus_registry_acquire_service): implement max
10681         number of services owned, and honor allow/deny rules on which
10682         services a connection can own.
10683
10684         * bus/connection.c (bus_connection_get_policy): report errors here
10685
10686         * bus/activation.c: implement limit on number of pending
10687         activations
10688
10689 2003-04-25  Havoc Pennington  <hp@redhat.com>
10690
10691         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10692         where we used >= 0 instead of != DBUS_UID_UNSET.
10693
10694 2003-04-25  Havoc Pennington  <hp@redhat.com>
10695
10696         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10697         were toggled without add/remove, fix from Anders Gustafsson
10698
10699 2003-04-24  Havoc Pennington  <hp@redhat.com>
10700
10701         * test/data/valid-config-files/basic.conf: add <limit> tags to
10702         this test
10703
10704         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10705         <limit> tag in configuration file.
10706
10707 2003-04-24  Havoc Pennington  <hp@redhat.com>
10708
10709         * bus/dispatch.c: somehow missed some name_is
10710
10711         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10712         (_dbus_timeout_set_interval): new
10713
10714         * bus/connection.c (bus_connections_setup_connection): record time
10715         when each connection is first set up, and expire them after the
10716         auth timeout passes.
10717
10718 2003-04-24  Havoc Pennington  <hp@redhat.com>
10719
10720         * dbus/dbus-message.c (dbus_message_name_is): rename
10721         (dbus_message_service_is): rename
10722         (dbus_message_sender_is): rename
10723         (dbus_message_get_service): rename
10724
10725 2003-04-24  Havoc Pennington  <hp@redhat.com>
10726
10727         * configure.in: add --enable-checks
10728
10729         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10730
10731         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10732         to use thread locks.
10733         (_dbus_connection_handler_destroyed_locked): move some private
10734         functions into proper docs group
10735
10736         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10737         _dbus_return_val_if_fail
10738
10739         Throughout: use dbus_return_if_fail
10740
10741 2003-04-23  James Willcox  <jwillcox@gnome.org>
10742
10743         * glib/dbus-glib.h:
10744         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10745         (dbus_connection_setup_with_g_main),
10746         (dbus_server_setup_with_g_main):
10747         * glib/test-dbus-glib.c: (main):
10748         * glib/test-thread-client.c: (main):
10749         * glib/test-thread-server.c: (new_connection_callback), (main):
10750         * tools/dbus-monitor.c: (main):
10751
10752         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10753         and dbus_server_setup_with_g_main().
10754
10755 2003-04-20  Havoc Pennington  <hp@pobox.com>
10756
10757         * doc/dbus-specification.sgml: document the restrictions on
10758         message and service names
10759
10760 2003-04-22  Havoc Pennington  <hp@redhat.com>
10761
10762         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10763         support, and do some code cleanups to share more code and
10764         speed up array marshal/demarshal.
10765
10766         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10767
10768         * configure.in: generate dbus-arch-deps.h
10769
10770         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10771         64-bit typecodes
10772
10773 2003-04-22  Havoc Pennington  <hp@redhat.com>
10774
10775         * test/data/valid-messages/opposite-endian.message: fix test
10776         to use proper type for rply field
10777
10778         * test/data/invalid-messages: add tests for below validation
10779
10780         * dbus/dbus-message.c (decode_header_data): validate field types,
10781         and validate that named fields are valid names
10782         (decode_name_field): consider messages in the
10783         org.freedesktop.Local. namespace to be invalid.
10784
10785         * dbus/dbus-string.c (_dbus_string_validate_name): new
10786
10787 2003-04-19  Havoc Pennington  <hp@pobox.com>
10788
10789         * bus/driver.c (bus_driver_handle_hello): check limits and
10790         return an error if they are exceeded.
10791
10792         * bus/connection.c: maintain separate lists of active and inactive
10793         connections, and a count of each. Maintain count of completed
10794         connections per user. Implement code to check connection limits.
10795
10796         * dbus/dbus-list.c (_dbus_list_unlink): export
10797
10798         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10799         number of bytes in the message queue for a connection
10800
10801 2003-04-18  Havoc Pennington  <hp@pobox.com>
10802
10803         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10804
10805         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10806         memleaks
10807
10808         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10809         on realloc be sure to update the pointer in the keyring
10810
10811         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10812         offset to avoid writing to unallocated memory
10813
10814         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10815         try the next mechanism, so we properly handle OOM
10816
10817         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10818         on OOM.
10819         (_dbus_keyring_new): fix OOM bug
10820         (_dbus_keyring_new_homedir): always set error; impose a maximum
10821         number of keys we'll load from the file, mostly to speed up the
10822         test suite and make its OOM checks more useful, but also for
10823         general sanity.
10824
10825         * dbus/dbus-auth.c (process_error_server): reject authentication
10826         if we get an error from the client
10827         (process_cancel): on cancel, send REJECTED, per the spec
10828         (process_error_client): send CANCEL if we get an error from the
10829         server.
10830
10831 2003-04-18  Havoc Pennington  <hp@pobox.com>
10832
10833         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10834         debug spew
10835
10836         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10837         handling problem
10838
10839         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10840         about DBUS_TEST_HOMEDIR once
10841
10842         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10843         the environment
10844
10845         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10846         config file so we test the right thing
10847
10848         Throughout: assorted docs improvements
10849
10850 2003-04-18  Havoc Pennington  <hp@pobox.com>
10851
10852         * glib/dbus-gmain.c: adapt to watch changes
10853
10854         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10855
10856         * dbus/dbus-server.h: remove dbus_server_handle_watch
10857
10858         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10859
10860         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10861         like DBusTimeout, so we don't need dbus_connection_handle_watch
10862         etc.
10863
10864 2003-04-17  Havoc Pennington  <hp@redhat.com>
10865
10866         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10867         database usage so it all goes via the DBusUserDatabase cache.
10868
10869 2003-04-17  Havoc Pennington  <hp@redhat.com>
10870
10871         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10872         there was an OOM watch we skipped, we always return TRUE so we
10873         iterate again to have a look at it again. Fixes test suite hang.
10874         Code rearrangement also lets us lose some memset and only iterate
10875         over callbacks once.
10876
10877         * bus/driver.c (bus_driver_handle_message): sense of test for
10878         reply was backward
10879
10880 2003-04-16  Havoc Pennington  <hp@pobox.com>
10881
10882         * doc/dbus-specification.sgml: make spec say serials are unsigned
10883
10884         * dbus/dbus-message.h: change message serials to unsigned
10885
10886         * dbus/dbus-connection.c: adapt to message serials being unsigned
10887
10888 2003-04-15  Havoc Pennington  <hp@pobox.com>
10889
10890         * bus/bus.c: create and keep around a shared DBusUserDatabase
10891         object.
10892
10893         * bus/connection.c (bus_connection_get_groups): don't cache
10894         groups for user in the connection object, since user database
10895         object now does that.
10896
10897 2003-04-16  Havoc Pennington  <hp@redhat.com>
10898
10899         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10900         list of size counters
10901         (_dbus_message_loader_putback_message_link): put back a popped link
10902
10903         * dbus/dbus-connection.c
10904         (dbus_connection_set_max_live_messages_size): rename
10905         max_received_size
10906         (dbus_connection_get_outgoing_size): get size of outgoing
10907         queue
10908         (_dbus_connection_set_connection_counter): remove this cruft
10909
10910 2003-04-14  Havoc Pennington  <hp@redhat.com>
10911
10912         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10913         caching, but at some point we might want to be able to use a
10914         different database.
10915
10916         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10917         SHA1 conf file to test the sha1 auth mechanism, since the regular
10918         test always uses EXTERNAL when available.
10919
10920         * configure.in,
10921         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10922         add conf file that requires use of sha1 auth
10923
10924 2003-04-13  Havoc Pennington  <hp@pobox.com>
10925
10926         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10927         from Philip Blundell to send messages and monitor them.
10928
10929 2003-04-13  Havoc Pennington  <hp@pobox.com>
10930
10931         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10932         callbacks
10933
10934         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10935         users
10936
10937         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10938         fix to only recover unused bytes if we're already authenticated
10939         (_dbus_transport_get_is_authenticated): fix to still mark us
10940         authenticated if there are unused bytes.
10941
10942         * bus/dispatch.c: implement security policy checking
10943
10944         * bus/connection.c (bus_transaction_send_from_driver): new
10945
10946         * bus/bus.c (bus_context_check_security_policy): new
10947
10948         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10949         now we just set the DBusError and it gets converted to an error
10950         reply.
10951
10952         * bus/connection.c (allow_user_function): enable code using actual
10953         data from the config file
10954
10955         * bus/policy.c (list_allows_user): handle wildcard rules for
10956         user/group connection perms
10957
10958 2003-04-13  Havoc Pennington  <hp@pobox.com>
10959
10960         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10961
10962         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10963
10964         * bus/policy.c (bus_policy_append_mandatory_rule)
10965         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10966         (bus_policy_append_group_rule): new functions
10967
10968 2003-04-12  Havoc Pennington  <hp@pobox.com>
10969
10970         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10971
10972         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10973         the pid/gid/uid, just for paranoia.
10974
10975         * test/break-loader.c (randomly_do_n_things): find a byte
10976         containing a type code, and randomly change it to a different
10977         type code.
10978
10979 2003-04-12  Havoc Pennington  <hp@pobox.com>
10980
10981         * bus/policy.h: change BusPolicy to be the thing from the config
10982         file, and rename old BusPolicy to BusClientPolicy
10983
10984         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10985         match change in how policy works
10986
10987         * dbus/dbus-internals.h: mark assert_not_reached as
10988         __attribute((noreturn))__
10989
10990 2003-04-11  Havoc Pennington  <hp@redhat.com>
10991
10992         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10993         the broadcast service. Use boolean return for ServiceExists.
10994
10995 2003-04-11  Havoc Pennington  <hp@redhat.com>
10996
10997         * configure.in: add another directory to look for qt in.
10998
10999 2003-04-11  Havoc Pennington  <hp@redhat.com>
11000
11001         * AUTHORS: add Colin Walters
11002
11003 2003-04-11  Havoc Pennington  <hp@redhat.com>
11004
11005         * NEWS: update
11006
11007         * configure.in: 0.9
11008
11009 2003-04-11  Havoc Pennington  <hp@redhat.com>
11010
11011         * bus/messagebus.in: remove pid file when stopping the
11012         message bus, since the bus won't have privileges to remove it
11013         itself.
11014
11015 2003-04-11  Havoc Pennington  <hp@redhat.com>
11016
11017         * bus/bus.c (bus_context_new): move credentials change after
11018         creating pidfile
11019
11020 2003-04-11  Havoc Pennington  <hp@pobox.com>
11021
11022         * test/decode-gcov.c: add "below average functions" to the
11023         coverage report, and change how some of the code works.
11024
11025         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11026         not in the coverage stats.
11027
11028         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11029         couple places so running the test suite doesn't result in megaspam.
11030
11031 2003-04-11  Havoc Pennington  <hp@pobox.com>
11032
11033         * bus/dispatch.c (check_existent_service_activation): accept a no
11034         memory error in a place we didn't before
11035
11036         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11037         in case the first one failed," since the test suite is less
11038         broken now.
11039
11040 2003-04-10  Havoc Pennington  <hp@pobox.com>
11041
11042         * bus/dispatch.c (check_segfault_service_activation): add test
11043         for launching an executable that just crashes.
11044
11045         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11046         don't leave a million cores. We'll see how portable this is.
11047
11048 2003-04-10  Havoc Pennington  <hp@pobox.com>
11049
11050         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11051         the possible parent failures before we fork, so that we don't
11052         fail to create a babysitter after creating the child.
11053
11054         * bus/activation.c (bus_activation_activate_service): kill child
11055         if we don't successfully complete the activation.
11056
11057 2003-04-10  Havoc Pennington  <hp@redhat.com>
11058
11059         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11060         the connection if it's disconnected
11061
11062         * bus/activation.c (bus_activation_service_created): use new
11063         transaction features to roll back removal of pending activation if
11064         we don't successfully create the service after all. Don't remove
11065         pending activation if the function fails.
11066
11067         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11068         (_dbus_list_insert_after_link): new code to facilitate
11069         services.c fixes
11070
11071         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11072         new functionality, so we can preallocate the ability to insert
11073         into a hash table.
11074
11075         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11076         allowing us to put custom hooks in a transaction to be used for
11077         cancelling said transaction
11078
11079         * doc/dbus-specification.sgml: add some discussion of secondary
11080         service owners, and disallow zero-length service names
11081
11082         * bus/services.c (bus_registry_acquire_service): new function,
11083         splits out part of bus_driver_handle_acquire_service() and fixes
11084         a bug where we didn't remove the service doing the acquiring
11085         from the secondary queue if we failed to remove the current owner
11086         from the front of the queue.
11087
11088 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11089
11090         * doc/dbus-specification.sgml:
11091         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11092
11093 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11094
11095         * bus/.cvsignore:
11096         * glib/.cvsignore:
11097         * test/.cvsignore:
11098         Added files to cvsignore
11099
11100         * dbus/dbus-message.h:
11101         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11102         Make get_named() take two out argument and return a boolean.
11103         (dbus_message_iter_get_args_valist):
11104         Update usage of get_named().
11105         (dbus_message_iter_append_byte):
11106         Fix typo
11107         (dbus_message_iter_append_named)
11108         Fix typo
11109         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11110         More tests.
11111
11112 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11113
11114         * dbus/dbus-marshal.[ch]:
11115         Add array_type_pos argument to _dbus_marshal_validate_arg.
11116         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11117
11118         * dbus/dbus-message.[ch]:
11119         Multi-dimensional arrays have full type specification in the
11120         outermost array. Iter code re-arranged to handle this.
11121         Added some more iter tests.
11122
11123         * doc/dbus-specification.sgml:
11124         Add me to authors.
11125         Remove old FIXME.
11126         Update new array encoding description.
11127         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11128
11129         * test/data/invalid-messages/array-with-mixed-types.message:
11130         * test/data/valid-messages/array-of-array-of-uint32.message:
11131         Change to the new array format.
11132
11133         * test/data/invalid-messages/too-short-dict.message:
11134         Fix bug in test.
11135
11136         * test/data/valid-messages/recursive-types.message:
11137         Fix up and extend test.
11138
11139 2003-04-10  Havoc Pennington  <hp@pobox.com>
11140
11141         * bus/dispatch.c: lots of fixes
11142
11143         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11144         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11145         that was crack, broke the test service.
11146
11147         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11148         handling to avoid piling up errors if we get a failure on the
11149         first address.
11150
11151         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11152         pid in assertion failures.
11153
11154         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11155         to some fixed size of file descriptor array. Don't return TRUE
11156         anytime a timeout exists, that led to lots of busy loop silliness
11157         in the tests.
11158
11159 2003-04-09  Havoc Pennington  <hp@redhat.com>
11160
11161         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11162         I'd checked this in earlier but hadn't.
11163
11164 2003-04-09  Havoc Pennington  <hp@redhat.com>
11165
11166         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11167         the activation test (man this is getting old!)
11168
11169 2003-04-09  Havoc Pennington  <hp@redhat.com>
11170
11171         * test/test-utils.c: use dispatch status function to fix this up
11172
11173         * bus/connection.c (connection_watch_callback): don't dispatch
11174         from here
11175         (connection_timeout_callback): don't dispatch from here
11176         (bus_connections_setup_connection): set the dispatch status function
11177         (bus_connection_disconnected): unset it
11178
11179         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11180         used to add a connection to be dispatched
11181         (_dbus_loop_iterate): do the dispatching at the end of each
11182         iteration
11183
11184         * dbus/dbus-connection.c
11185         (dbus_connection_set_dispatch_status_function): new function
11186         allowing us to fix up main loop usage
11187         (_dbus_connection_last_unref): free all the various function
11188         user data
11189         (dbus_connection_dispatch): call the DispatchStatusFunction
11190         whenever this function returns
11191         (dbus_connection_handle_watch): call DispatchStatusFunction
11192         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11193         (reply_handler_timeout): call DispatchStatusFunction
11194         (dbus_connection_flush): call DispatchStatusFunction
11195
11196 2003-04-09  Havoc Pennington  <hp@redhat.com>
11197
11198         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11199         a memory leak
11200
11201         * bus/dispatch.c (check_service_activated): fix bug in test
11202
11203         * dbus/dbus-mainloop.c (check_timeout): fix this up
11204
11205         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11206         verbose output so we can sort out output from different processes,
11207         e.g. in the activation case.
11208
11209 2003-04-08  Colin Walters  <walters@gnu.org>
11210
11211         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11212         the pid file.
11213         (bus_context_new): Set it.
11214         (bus_context_unref): Use it to delete the pid file.
11215
11216 2003-04-08  Havoc Pennington  <hp@redhat.com>
11217
11218         * test/data/invalid-messages/array-with-mixed-types.message:
11219         regression test that fails for the moment
11220
11221         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11222         tests for convenience
11223
11224         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11225         array of nil, it broke things.
11226
11227         * test/data/invalid-messages/array-of-nil.message: regression test
11228
11229         * test/data/valid-messages/array-of-array-of-uint32.message:
11230         happened to write this so added it to suite
11231
11232 2003-04-08  Havoc Pennington  <hp@redhat.com>
11233
11234         * bus/driver.c (bus_driver_handle_acquire_service): init
11235         retval/reply before checking name
11236
11237         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11238         recursion depth argument
11239
11240         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11241         in the public struct for future extension
11242
11243         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11244         typo
11245
11246         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11247         message
11248
11249         * doc/dbus-specification.sgml: fix typo
11250
11251 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11252
11253         Implemented recursive types, named types and new-style iters
11254
11255         * bus/driver.c:
11256         * glib/test-thread-client.c: (thread_func):
11257         * glib/test-thread-server.c: (handle_test_message):
11258         * test/test-service.c: (handle_echo):
11259         Update to new api
11260
11261         * dbus/Makefile.am:
11262         * dbus/dbus-dict.c:
11263         * dbus/dbus-dict.h:
11264         * dbus/dbus.h
11265         Remove DBusDict
11266
11267         * dbus/dbus-internals.c: (_dbus_type_to_string):
11268         Update for new types.
11269
11270         * dbus/dbus-marshal.[ch]:
11271         Implement recursive types and the new marshalling format.
11272         Remove hardcoded dict marshalling.
11273         Marshal named types.
11274
11275         * dbus/dbus-message-builder.c:
11276         Add BYTE_ARRAY.
11277         Remove references to old types
11278
11279         * dbus/dbus-message.[ch]:
11280         New non-refcounted iter API that supports recursive iters.
11281         Use iters for appending, including support for recursive
11282         iters.
11283         Add byte and named type support.
11284         Update everything to new marshalling formats.
11285         Add tests for new API.
11286
11287         * dbus/dbus-protocol.h:
11288         Remove old array types.
11289         Add types: BYTE, ARRAY, DICT, NAMED
11290
11291         * dbus/dbus-string.c:
11292         * dbus/dbus-sysdeps.c:
11293         Make parse_double locale safe.
11294
11295         * dbus/dbus-test-main.c:
11296         Call setlocale.
11297
11298         * dbus/dbus-test.c:
11299         Kill dict test
11300
11301         * doc/dbus-specification.sgml:
11302         Update spec
11303
11304         * test/data/incomplete-messages/missing-body.message:
11305         * test/data/invalid-messages/bad-boolean.message:
11306         * test/data/invalid-messages/bad-boolean-array.message:
11307         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11308         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11309         * test/data/invalid-messages/too-short-dict.message:
11310         * test/data/valid-messages/dict-simple.message:
11311         * test/data/valid-messages/dict.message:
11312         * test/data/valid-messages/emptiness.message:
11313         * test/data/valid-messages/lots-of-arguments.message:
11314         * test/data/valid-messages/no-padding.message:
11315         * test/data/valid-messages/recursive-types.message:
11316         Add missing NAME fields
11317         Fix up dicts & arrays
11318
11319         * test/data/invalid-messages/dict-with-nil-value.message:
11320         Removed, this is not invalid anymore.
11321
11322         * test/data/valid-messages/recursive-types.message:
11323         Add new test for deeply recursive types.
11324
11325 2003-04-07  Havoc Pennington  <hp@pobox.com>
11326
11327         * bus/driver.c (bus_driver_handle_acquire_service): return an
11328         error if you try to acquire a service that starts with ':'
11329
11330 2003-04-07  Havoc Pennington  <hp@redhat.com>
11331
11332         * doc/dbus-specification.sgml: require that base service names
11333         start with ':' and that the base service is created/deleted
11334         as first and last things a connection does on the bus
11335
11336         * bus/dispatch.c (check_existent_service_activation): lots more
11337         work on the activation test; it doesn't fully pass yet...
11338
11339         * test/test-service.c (main): fix so we don't memleak the
11340         connection to the message bus
11341         (filter_func): accept a message asking us to exit
11342
11343 2003-04-06  Havoc Pennington  <hp@pobox.com>
11344
11345         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11346         from Colin Walters
11347
11348         * configure.in: fixes to Qt detection from Colin Walters
11349
11350         * doc/Makefile.am: Only remove generated docbook dirs if they
11351         exist, from Colin Walters
11352
11353         * dbus/dbus-bus.c: change how we set well-known connections to
11354         NULL, so that it works if a single connection is stored in
11355         two well-known array slots.
11356
11357         * test/Makefile.am: remove a lot of stuff that isn't immediately
11358         useful, it's in CVS history if we want it.
11359
11360         * test/test-service.c: use dbus-mainloop instead of that
11361         watch.[hc] crack
11362
11363 2003-04-06  Havoc Pennington  <hp@pobox.com>
11364
11365         * dbus/Makefile.am: split lists of sources into stuff that goes in
11366         the library, util functions that go in the lib and are also used
11367         elsewhere, and util functions that are used in tests/daemon but
11368         don't go in the lib.
11369
11370         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11371         here so it can be used in test binaries also
11372
11373 2003-04-06  Havoc Pennington  <hp@pobox.com>
11374
11375         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11376         here in the parent process, so we can return an error if it
11377         fails. Also, move some of the code into the child so the parent
11378         is less hosed if we fail midway through.
11379
11380         * bus/bus.c (bus_context_new): move pidfile detection further up
11381         in the function, before we start overwriting sockets and such.
11382
11383         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11384
11385         * configure.in: add --with-system-pid-file and --with-system-socket
11386
11387 2003-04-06  Colin Walters  <walters@verbum.org>
11388
11389         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11390
11391         * bus/system.conf.in: Declare a pidfile.
11392
11393         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11394         create one (if appropriate).
11395
11396         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11397         (struct BusConfigParser) [pidfile]: New.
11398         (element_type_to_name, merge_included, start_busconfig_child)
11399         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11400         (bus_config_parser_unref): Free it.
11401         (bus_config_parser_get_pidfile): New function.
11402
11403         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11404
11405         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11406
11407         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11408
11409         * dbus/dbus-sysdeps.h: Prototype it.
11410
11411 2003-04-06  Havoc Pennington  <hp@pobox.com>
11412
11413         * bus/bus.c (bus_context_new): print the address in here, rather
11414         than in main(), because we need to do it before forking the daemon
11415
11416         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11417         on the service nonexistent error
11418
11419         * bus/driver.c (bus_driver_handle_acquire_service): set the
11420         sender on the AcquireService reply
11421
11422         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11423         server also listen on a UNIX socket so services can connect to it.
11424
11425 2003-04-06  Havoc Pennington  <hp@pobox.com>
11426
11427         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11428         so it detects deadlocks and also we actually init threads when
11429         debugging.
11430
11431 2003-04-06  Havoc Pennington  <hp@pobox.com>
11432
11433         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11434         save the domain socket name, and unlink it when we disconnect the
11435         server. Means that at least when we exit normally, we won't leave
11436         a bunch of junk in /tmp
11437
11438         * dbus/dbus-transport-unix.c
11439         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11440         memory management). (I was making a real change here but then
11441         didn't)
11442
11443 2003-04-06  Havoc Pennington  <hp@pobox.com>
11444
11445         * bus/bus.c (bus_context_new): fix wrong handling of
11446         server_data_slot_unref() in the error case.
11447
11448         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11449         "(condition) != 0" to _dbus_real_assert so that
11450         "_dbus_assert (pointer)" doesn't cause a warning
11451
11452         * bus/main.c (main): accept --print-address option to print out
11453         the message bus address
11454
11455         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11456
11457         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11458         "tmpdir" option to unix: address on client side
11459
11460         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11461         to unix: address
11462
11463         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11464         we can use to create sockets in the test suite.
11465
11466         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11467         cleanly. To be used for testing.
11468
11469         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11470
11471         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11472
11473         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11474         handle trying to call this when there's no servers active
11475
11476 2003-04-05  Havoc Pennington  <hp@pobox.com>
11477
11478         * NEWS: update
11479
11480         * configure.in: 0.8
11481
11482 2003-04-05  Havoc Pennington  <hp@pobox.com>
11483
11484         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11485         crash on startup. Need to get "try starting the daemon"
11486         in the test suite I guess. ;-)
11487
11488         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11489         tracked the number of open connections; it's better done in
11490         application-specific code as you want it to span all servers etc.
11491
11492 2003-04-05  Havoc Pennington  <hp@pobox.com>
11493
11494         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11495         patch from Colin Walters
11496
11497 2003-04-05  Havoc Pennington  <hp@pobox.com>
11498
11499         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11500         reality; in fact multiple mechanisms are allowed.
11501
11502         * dbus/dbus-internals.c (_dbus_real_assert)
11503         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11504         _dbus_assert_not_reached() into functions, so that they don't show
11505         up in basic block counts for test coverage, and don't use up as
11506         much disk space. Does mean slower execution speed though, so
11507         assumes --disable-asserts is the normal production case.
11508
11509 2003-04-05  Havoc Pennington  <hp@pobox.com>
11510
11511         * test/Makefile.am (dist-hook): also dist *.in files
11512
11513         * NEWS: update
11514
11515         * configure.in: 0.7
11516
11517 2003-04-05  Havoc Pennington  <hp@pobox.com>
11518
11519         * dbus/dbus-string.c: docs warning
11520
11521         * dbus/dbus-spawn.c: missing docs
11522
11523         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11524
11525 2003-04-05  Havoc Pennington  <hp@pobox.com>
11526
11527         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11528         magic from GLib
11529
11530         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11531         to -1 once we've reaped the babysitter
11532         (_dbus_babysitter_handle_watch): do as much work as we can, not
11533         just one go of it
11534
11535         * bus/activation.c: add code using DBusBabysitter so that we
11536         handle it when a service fails to start up properly.
11537         (bus_activation_service_created): don't remove the activation
11538         entries as we go, just let them get removed when we free the pending
11539         activation. Unref reply messages after sending them.
11540
11541 2003-04-05  Havoc Pennington  <hp@pobox.com>
11542
11543         * test/decode-gcov.c (main): print per-directory stats in the report
11544
11545         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11546
11547 2003-04-05  Havoc Pennington  <hp@pobox.com>
11548
11549         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11550
11551         * test/decode-gcov.c: hack up a little program to suck data
11552         out of gcov files. Yes this is sort of silly.
11553
11554         * configure.in: define something in config.h and do an
11555         AM_CONDITIONAL when gcov is enabled
11556
11557 2003-04-04  Havoc Pennington  <hp@redhat.com>
11558
11559         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11560         return a "babysitter" object that is used to monitor the status of
11561         the spawned process and reap it when required.
11562
11563         * test/test-segfault.c, test/test-exit.c,
11564         test/test-sleep-forever.c: binaries that do various lame things,
11565         used in the test suite.
11566
11567         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11568
11569 2003-04-03  Havoc Pennington  <hp@pobox.com>
11570
11571         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11572         in preparation for modifying it, dbus-sysdeps is getting
11573         a bit unmanageable.
11574
11575 2003-04-03  Havoc Pennington  <hp@redhat.com>
11576
11577         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11578         have multiple ones
11579
11580         * bus/*.[hc]: adapt to mainloop change
11581
11582 2003-04-03  Havoc Pennington  <hp@redhat.com>
11583
11584         * bus/activation.c (load_directory): fix up memleaks
11585         (bus_activation_entry_free): free the entry
11586
11587         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11588         we get one from the message bus; fix memleaks.
11589
11590         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11591
11592 2003-04-03  Havoc Pennington  <hp@pobox.com>
11593
11594         * bus/config-parser.c (bus_config_parser_unref): free
11595         list of mechanisms, bug discovered by test suite enhancements
11596         (putting system.conf and session.conf into suite)
11597
11598         * test/Makefile.am, test/test-service.c: add placeholder for a
11599         test service that we'll activate as part of test suite. Doesn't
11600         do anything yet.
11601
11602         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11603         setting NULL value, and use system malloc not dbus_malloc()
11604         when we have unavoidable memleakage.
11605
11606         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11607         didn't work, and support DBUS_BUS_ACTIVATION.
11608
11609         * bus/activation.c (child_setup): pass our well-known bus type to
11610         the child
11611
11612         * bus/config-parser.c: support <type> to specify well-known type
11613
11614         * doc/dbus-specification.sgml: document the env variables to
11615         locate well-known buses and find service activator
11616
11617 2003-04-02  Havoc Pennington  <hp@redhat.com>
11618
11619         * test/Makefile.am (all-local): add a rule to copy tests to
11620         builddir, so we can have generated tests. Use this to remove the
11621         silly hack for testing system.conf and session.conf. Will use this
11622         shortly to generate .service files pointing to test binaries.
11623
11624 2003-04-02  Havoc Pennington  <hp@redhat.com>
11625
11626         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11627         current alloc and needed new length, not max of the doubled
11628         allocation and needed new length. Also, when building tests,
11629         don't do the double-allocation stuff, just realloc every time.
11630
11631 2003-04-02  Havoc Pennington  <hp@redhat.com>
11632
11633         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11634         in error messages
11635         (_dbus_string_get_dirname): new
11636         (_dbus_sysdeps_test): new
11637         (_dbus_directory_open): include dirnames in error messages
11638
11639         * bus/config-parser.c: interpret <include> and <includedir> and
11640         <servicedir> relative to config file location if the given
11641         filename is not absolute.
11642
11643         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11644
11645 2003-04-02  Havoc Pennington  <hp@redhat.com>
11646
11647         * bus/connection.c (bus_transaction_send_error_reply): set sender
11648         service for the error, and unref the reply on success
11649
11650         * bus/activation.c: convert to use BusTransaction so OOM can be
11651         handled correctly
11652         (bus_activation_service_created): set sender of the message
11653
11654 2003-04-01  Havoc Pennington  <hp@redhat.com>
11655
11656         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11657         <includedir> (at least mostly)
11658
11659         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11660         first, then the user ID
11661
11662 2003-04-01  Havoc Pennington  <hp@pobox.com>
11663
11664         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11665         function
11666
11667         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11668
11669         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11670
11671         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11672         socket 0777, and unlink any existing socket.
11673
11674         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11675         the configuration file so specifies; set up auth mechanism
11676         restrictions
11677
11678         * bus/config-parser.c (bus_config_parser_content): add support
11679         for <fork> option and fill in code for <auth>
11680
11681         * bus/system.conf.in: add <fork/> to default configuration,
11682         and limit auth mechanisms to EXTERNAL
11683
11684         * doc/config-file.txt (Elements): add <fork>
11685
11686         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11687         (_dbus_change_identity): new function
11688
11689 2003-03-31  Havoc Pennington  <hp@redhat.com>
11690
11691         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11692         (_dbus_listen_unix_socket): fix off-by-one error in null
11693         termination spotted by Nalin
11694
11695 2003-03-31  Havoc Pennington  <hp@redhat.com>
11696
11697         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11698         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11699         having a real home directory available.
11700
11701 2003-03-31  Havoc Pennington  <hp@redhat.com>
11702
11703         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11704
11705         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11706
11707         * configure.in: add support for specifying a style of init script
11708         to install
11709
11710 2003-03-31  Havoc Pennington  <hp@redhat.com>
11711
11712         Fix some annoying DBusString API and fix all affected code.
11713
11714         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11715         max_length argument
11716         (_dbus_string_get_data): change to return string instead of using
11717         an out param
11718         (_dbus_string_get_const_data): ditto
11719         (_dbus_string_get_data_len): ditto
11720         (_dbus_string_get_const_data_len): ditto
11721
11722 2003-03-31  Havoc Pennington  <hp@redhat.com>
11723
11724         * bus/main.c (main): fix up the command line arguments to be nicer
11725
11726 2003-03-31  Havoc Pennington  <hp@redhat.com>
11727
11728         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11729         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11730         final location that lands in the config file
11731
11732         * bus/config-loader-expat.c (bus_config_load): fix type of
11733         XML_Parser variable
11734
11735         * doc/TODO: remove TODO item for dbus_bus_get()
11736
11737         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11738
11739 2003-03-31  Havoc Pennington  <hp@pobox.com>
11740
11741         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11742         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11743         argument since they are always client side
11744
11745         * dbus/dbus-server.c (dbus_server_get_address): new function
11746
11747         * bus/main.c (main): take the configuration file as an argument.
11748
11749         * test/data/valid-config-files/debug-allow-all.conf: new file to
11750         use with dispatch.c tests for example
11751
11752         * bus/test-main.c (main): require test data dir
11753
11754         * bus/bus.c (bus_context_new): change this to take a
11755         configuration file name as argument
11756
11757         * doc/config-file.txt (Elements): add <servicedir>
11758
11759         * bus/system.conf, bus/session.conf: new files
11760
11761         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11762         well-known socket if none set
11763
11764         * configure.in: create system.conf and session.conf
11765
11766 2003-03-30  Havoc Pennington  <hp@pobox.com>
11767
11768         * bus/config-parser.c: hacking
11769
11770         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11771         to shut down, since it could cause weirdness with the DBusList
11772         lock
11773
11774         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11775         link-oriented stack routines
11776         (alloc_link): free the mempool if the first alloc from it fails
11777
11778         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11779
11780         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11781         from GLib
11782         (_dbus_string_skip_white): new
11783
11784         * doc/config-file.txt (Elements): add <includedir>
11785
11786 2003-03-28  Havoc Pennington  <hp@pobox.com>
11787
11788         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11789         (_dbus_string_copy_data): new functions
11790
11791 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11792
11793         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11794         * dbus/dbus-bus.h:
11795         Add dbus_bus_get.
11796
11797         * dbus/dbus-memory.c:
11798         Fix a doc comment.
11799
11800 2003-03-28  Havoc Pennington  <hp@pobox.com>
11801
11802         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11803         I think it may have just been superstition. Not sure.
11804
11805         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11806         failures that were not being handled.
11807
11808         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11809
11810         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11811         row that will fail on out-of-memory.
11812
11813         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11814         function for testing out-of-memory handling.
11815
11816         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11817         allocation functions, they do map exactly to the expat ones.
11818
11819 2003-03-27  Havoc Pennington  <hp@redhat.com>
11820
11821         * bus/config-loader-libxml.c (bus_config_load): add another error
11822         check
11823
11824 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11825
11826         * doc/TODO:
11827         Add note about automatic service activation.
11828
11829         * doc/dbus-specification.sgml:
11830         Rename the specification and clarify a few things.
11831
11832 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11833
11834         * Doxyfile.in:
11835         * dbus/dbus-address.c:
11836         * dbus/dbus-dict.c:
11837         * dbus/dbus-marshal.c:
11838         * dbus/dbus-server-debug-pipe.c:
11839         * dbus/dbus-transport-unix.c:
11840         Fix documentation warnings.
11841
11842 2003-03-26  Havoc Pennington  <hp@pobox.com>
11843
11844         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11845         after every test so it's quick and easy to see which leaked, and
11846         so we test multiple dbus_shutdown() calls
11847
11848         * configure.in: change configure.in XML stuff to also support
11849         expat
11850
11851         * config-loader-libxml.c: some hacking
11852
11853         * config-loader-expat.c: some hacking
11854
11855         * config-parser.c: some hacking, plus tests
11856
11857 2003-03-25  Havoc Pennington  <hp@redhat.com>
11858
11859         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11860
11861         * configure.in: add --with-xml option to specify XML library,
11862         right now only libxml is supported.
11863
11864         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11865         nonworking code between home and work, still just stubs
11866
11867 2003-03-24  Havoc Pennington  <hp@redhat.com>
11868
11869         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11870         file
11871
11872         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11873         NULL argument for "message" if the error is a well-known one,
11874         fill in a generic message in this case.
11875
11876         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11877         favor of DBusError
11878
11879         * bus/test.c (bus_test_flush_bus): add
11880
11881         * bus/policy.c (bus_policy_test): test code stub
11882
11883 2003-03-24  Havoc Pennington  <hp@pobox.com>
11884
11885         * bus/connection.c (bus_connections_setup_connection): set up
11886         the "can this user connect" function, but it always returns
11887         TRUE until we have a config file parser so we can have a config
11888         file that allows connections.
11889
11890 2003-03-23  Havoc Pennington  <hp@pobox.com>
11891
11892         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11893         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11894         the mutex, so we can check for proper memory management
11895         and OOM handling.
11896
11897         * dbus/dbus-dataslot.c: remove the mutex from
11898         DBusDataSlotAllocator and lock it manually when using it,
11899         to simplify fitting it into the global slots framework.
11900
11901         * dbus/dbus-threads.c (init_static_locks): rework how we're
11902         handling global locks so they are easily shut down.
11903
11904         * bus/policy.c (bus_policy_append_rule): fix
11905
11906         * bus/test-main.c (main): check for memleaks
11907
11908         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11909         test suite check for memleaks
11910
11911         * dbus/dbus-memory.c: add support in test mode for tracking
11912         number of outstanding blocks
11913
11914 2003-03-23  Havoc Pennington  <hp@pobox.com>
11915
11916         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11917         policies code
11918
11919         * dbus/dbus-hash.h: add ULONG hash keys
11920
11921         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11922         (_dbus_get_group_id): new function
11923
11924 2003-03-20  Havoc Pennington  <hp@redhat.com>
11925
11926         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11927         new function
11928         (dbus_connection_get_unix_user): new function
11929
11930 2003-03-20  Havoc Pennington  <hp@pobox.com>
11931
11932         * bus/connection.c (bus_connection_send_oom_error): assert that
11933         message has a sender
11934         (connection_execute_transaction): ditto
11935         (bus_connection_preallocate_oom_error): fix to set the sender, and
11936         set recipient to the destination service, not the bus driver
11937
11938         * bus/policy.c: hacking
11939
11940         * dbus/dbus-message.c (dbus_message_service_is): new function
11941         (dbus_message_sender_is): new
11942
11943 2003-03-19  Havoc Pennington  <hp@redhat.com>
11944
11945         * bus/policy.c: start sketching code for policy restrictions on
11946         what connections can do.
11947
11948 2003-03-18  Havoc Pennington  <hp@redhat.com>
11949
11950         * doc/TODO: some notes on high-level todo items. Little nitpick
11951         stuff is all in @todo, so no need to add it here.
11952
11953         * doc/config-file.txt: some notes on how config file might look
11954
11955 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11956
11957         * configure.in: 0.6
11958
11959         * NEWS: Update.
11960
11961 2003-03-17  Havoc Pennington  <hp@redhat.com>
11962
11963         * dbus/dbus-internals.h: add gcc attributes so that
11964         our printf-style functions warn on bad arguments to
11965         format
11966
11967         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11968         format bug
11969
11970         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11971         printf format bug
11972
11973 2003-03-17  Havoc Pennington  <hp@redhat.com>
11974
11975         * bus/test-main.c (main): make it print something as it runs
11976         so make check doesn't look stuck
11977
11978         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11979         from CVS, now obsolete
11980
11981 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11982
11983         * bus/dispatch.c: (bus_dispatch):
11984         Refetch the service name since it may have been reallocated
11985         when dbus_message_set_sender was called.
11986
11987         * dbus/dbus-sysdeps.c: (_dbus_accept):
11988         Add address and address length variables and use them to stop
11989         valgrind from complaining.
11990
11991 2003-03-17  Havoc Pennington  <hp@pobox.com>
11992
11993         All tests pass, no memleaks, no valgrind complaints.
11994
11995         * bus/test.c: refcount handler_slot
11996
11997         * bus/connection.c (bus_connections_new): refcount
11998         connection_data_slot
11999
12000         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12001         bytes so that auth scripts pass.
12002
12003         * bus/dispatch.c: init message_handler_slot so it gets allocated
12004         properly
12005
12006         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12007
12008         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12009         dealloc server_pipe_hash when no longer used for benefit of
12010         leak checking
12011
12012         * dbus/dbus-auth.c (process_command): memleak fix
12013
12014         * bus/dispatch.c (check_hello_message): memleak fix
12015
12016 2003-03-16  Havoc Pennington  <hp@pobox.com>
12017
12018         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12019
12020 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12021
12022         * bus/activation.c (bus_activation_activate_service): Append
12023         the pending activation entry to the list of pending activations.
12024
12025 2003-03-16  Havoc Pennington  <hp@pobox.com>
12026
12027         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12028         connections
12029
12030         * dbus/dbus-address.c (create_entry): fix OOM handling when
12031         failing to alloc entry->method
12032
12033 2003-03-16  Havoc Pennington  <hp@pobox.com>
12034
12035         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12036         the watch
12037
12038         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12039         add some missing dbus_set_result
12040
12041         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12042         alloc the DBusMessageHandler
12043
12044         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12045         the transport here, since we call this from the finalizer; it
12046         resulted in a double-finalize.
12047
12048         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12049         where we tried to use transport->connection that was NULL,
12050         happened when transport was disconnected early on due to OOM
12051
12052         * bus/*.c: adapt to handle OOM for watches/timeouts
12053
12054         * dbus/dbus-transport-unix.c: port to handle OOM during
12055         watch handling
12056
12057         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12058         reference to unused bytes instead of a copy
12059
12060         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12061         out of memory
12062
12063         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12064         FALSE on OOM
12065
12066         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12067         of memory
12068
12069 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12070
12071         * doc/dbus-specification.sgml:
12072         Document reply message for ActivateService.
12073
12074 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12075
12076         * bus/activation.c: (bus_pending_activation_entry_free),
12077         (bus_pending_activation_free), (bus_activation_new),
12078         (bus_activation_unref), (bus_activation_service_created),
12079         (bus_activation_activate_service):
12080         * bus/activation.h:
12081         * bus/bus.c: (bus_context_new):
12082         * bus/desktop-file.c: (new_section):
12083         * bus/driver.c: (bus_driver_send_service_deleted),
12084         (bus_driver_handle_activate_service):
12085         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12086         * bus/services.h:
12087         * dbus/dbus-connection.c:
12088         (dbus_connection_send_with_reply_and_block):
12089         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12090         * dbus/dbus-protocol.h:
12091         Make activation work better. Now pending activations will be queued
12092         and the daemon won't try to activate services that are already registered.
12093
12094 2003-03-16  Havoc Pennington  <hp@pobox.com>
12095
12096         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12097         connection data
12098
12099         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12100         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12101
12102 2003-03-16  Havoc Pennington  <hp@pobox.com>
12103
12104         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12105         this. always run the test suite before commit...
12106
12107         * bus/*: adapt to DBusConnection API changes
12108
12109         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12110         requires renaming stuff to avoid dbus_connection_dispatch name
12111         conflict.
12112
12113         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12114         function
12115
12116         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12117         separate from _dbus_message_loader_return_buffer()
12118
12119         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12120         this, because it's now always broken to use; the number of
12121         messages in queue vs. the number still buffered by the message
12122         loader is undefined/meaningless. Should use
12123         dbus_connection_get_dispatch_state().
12124         (dbus_connection_dispatch): rename from
12125         dbus_connection_dispatch_message
12126
12127 2003-03-16  Havoc Pennington  <hp@pobox.com>
12128
12129         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12130         implementation
12131
12132 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12133
12134         * dbus/dbus-connection.c:
12135         (dbus_connection_send_with_reply_and_block):
12136         Decrease connection->n_incoming when removing an entry
12137         from the list.
12138         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12139         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12140         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12141         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12142         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12143         (dbus_dict_get_byte_array):
12144         Handle NULL arrays and strings. Also add support for byte arrays.
12145
12146         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12147         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12148         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12149         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12150         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12151         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12152         * dbus/dbus-marshal.h:
12153         Add support for marshalling and demarshalling empty arrays and strings.
12154
12155         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12156         (dbus_message_append_string_array),
12157         (dbus_message_iter_get_boolean),
12158         (dbus_message_iter_get_boolean_array),
12159         (dbus_message_iter_get_int32_array),
12160         (dbus_message_iter_get_uint32_array),
12161         (dbus_message_iter_get_double_array),
12162         (dbus_message_iter_get_byte_array),
12163         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12164         (check_message_handling):
12165         Add support for getting empty arrays and dicts.
12166
12167         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12168         Don't do any validation at all for now, that's better than just checking
12169         for ASCII.
12170
12171         * test/data/valid-messages/emptiness.message:
12172         New test message with lots of empty arrays.
12173
12174 2003-03-16  Havoc Pennington  <hp@pobox.com>
12175
12176         * dbus/dbus-connection.c
12177         (_dbus_connection_queue_received_message_link): new function that
12178         can't fail due to OOM
12179
12180         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12181         new function pops a message together with a list link
12182         containing it.
12183
12184         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12185         message queuing functions to avoid needing to alloc memory
12186
12187 2003-03-16  Havoc Pennington  <hp@pobox.com>
12188
12189         Oops - test code was only testing failure of around 30 of the
12190         mallocs in the test path, but it turns out there are 500+
12191         mallocs. I believe this was due to misguided linking setup such
12192         that there was one copy of dbus_malloc etc. in the daemon and one
12193         in the shared lib, and only daemon mallocs were tested. In any
12194         case, the test case now tests all 500+ mallocs, and doesn't pass
12195         yet, though there are lots of fixes in this patch.
12196
12197         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12198         this so that it doesn't need to allocate memory, since it
12199         has no way of indicating failure due to OOM (and would be
12200         annoying if it did).
12201
12202         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12203
12204         * bus/Makefile.am: rearrange to create two self-contained
12205         libraries, to avoid having libraries with overlapping symbols.
12206         that was resulting in weirdness, e.g. I'm pretty sure there
12207         were two copies of global static variables.
12208
12209         * dbus/dbus-internals.c: move the malloc debug stuff to
12210         dbus-memory.c
12211
12212         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12213         empty.
12214
12215         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12216
12217         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12218         on failure.
12219
12220         * bus/dispatch.c (bus_dispatch_add_connection): free
12221         message_handler_slot when no longer using it, so
12222         memory leak checkers are happy for the test suite.
12223
12224         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12225
12226         * bus/bus.c (new_connection_callback): disconnect in here if
12227         bus_connections_setup_connection fails.
12228
12229         * bus/connection.c (bus_connections_unref): fix to free the
12230         connections
12231         (bus_connections_setup_connection): if this fails, don't
12232         disconnect the connection, just be sure there are no side
12233         effects.
12234
12235         * dbus/dbus-string.c (undo_alignment): unbreak this
12236
12237         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12238         leaking
12239         (_dbus_auth_new): fix the order in which we free strings
12240         on OOM failure
12241
12242         * bus/connection.c (bus_connection_disconnected): fix to
12243         not send ServiceDeleted multiple times in case of memory
12244         allocation failure
12245
12246         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12247         get the base service name
12248         (dbus_bus_register_client): don't return base service name,
12249         instead store it on the DBusConnection and have an accessor
12250         function for it.
12251         (dbus_bus_register_client): rename dbus_bus_register()
12252
12253         * bus/dispatch.c (check_hello_message): verify that other
12254         connections on the bus also got the correct results, not
12255         just the one sending hello
12256
12257 2003-03-15  Havoc Pennington  <hp@pobox.com>
12258
12259         Make it pass the Hello handling test including all OOM codepaths.
12260         Now to do other messages...
12261
12262         * bus/services.c (bus_service_remove_owner): fix crash when
12263         removing owner from an empty list of owners
12264         (bus_registry_ensure): don't leave service in the list of
12265         a connection's owned services if we fail to put the service
12266         in the hash table.
12267
12268         * bus/connection.c (bus_connection_preallocate_oom_error): set
12269         error flag on the OOM error.
12270
12271         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12272         handle _dbus_transport_set_connection failure
12273
12274         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12275         to create watches up front and simply enable/disable them as
12276         needed.
12277         (unix_connection_set): this can now fail on OOM
12278
12279         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12280         of enabling/disabling a watch or timeout.
12281
12282         * bus/loop.c (bus_loop_iterate): don't touch disabled
12283         watches/timeouts
12284
12285         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12286
12287 2003-03-15  Havoc Pennington  <hp@pobox.com>
12288
12289         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12290         write useful test code, after all that futzing around ;-)
12291
12292         Test does not yet pass because we can't handle OOM in
12293         _dbus_transport_messages_pending (basically,
12294         dbus_connection_preallocate_send() does not prealloc the write
12295         watch). To fix this, I think we need to add new stuff to
12296         set_watch_functions, namely a SetEnabled function so we can alloc
12297         the watch earlier, then enable it later.
12298
12299         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12300         dbus-memory.c to the convenience lib
12301
12302         * bus/test.c: rename some static functions to keep them clearly
12303         distinct from stuff in connection.c. Handle client disconnection.
12304
12305 2003-03-14  Havoc Pennington  <hp@pobox.com>
12306
12307         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12308         transport, tests more of the real codepath. Set up clients
12309         with bus_setup_debug_client.
12310
12311         * bus/test.c (bus_setup_debug_client): function to set up debug
12312         "clients" on the main loop
12313
12314         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12315         support
12316
12317         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12318         server type
12319
12320         * dbus/dbus-server-debug.c: support a debug server based on pipes
12321
12322         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12323         (_dbus_close): new function
12324
12325         * configure.in: check for socketpair
12326
12327 2003-03-14  Havoc Pennington  <hp@redhat.com>
12328
12329         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12330         cheesy hack
12331
12332         * dbus/dbus-transport-debug.c: rework this a good bit to be
12333         less complicated. hopefully still works.
12334
12335         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12336         manually
12337
12338         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12339         after running it
12340
12341         * dbus/dbus-message.c (dbus_message_copy): rename from
12342         dbus_message_new_from_message, fix it up to copy
12343         all the message fields, add test case
12344
12345         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12346         not quite passing yet
12347
12348 2003-03-14  Havoc Pennington  <hp@pobox.com>
12349
12350         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12351         until no work remains" in test code. (the large diff here
12352         is just code movement, no actual changes)
12353
12354         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12355         1, no point waiting around for test code.
12356         (_dbus_server_debug_accept_transport): unref the timeout
12357         after adding it (right?)
12358
12359         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12360
12361 2003-03-13  Havoc Pennington  <hp@redhat.com>
12362
12363         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12364         out of memory
12365
12366         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12367         of memory
12368
12369         * dbus/dbus-connection.h: Make AddWatchFunction and
12370         AddTimeoutFunction return a bool so they can fail on out-of-memory
12371
12372         * bus/bus.c (bus_context_new): set up timeout handlers
12373
12374         * bus/connection.c (bus_connections_setup_connection): set up
12375         timeout handlers
12376
12377         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12378         can fail
12379
12380         * bus/bus.c (bus_context_new): adapt to changes
12381
12382         * bus/connection.c: adapt to changes
12383
12384         * test/watch.c: adapt to DBusWatch changes
12385
12386         * bus/dispatch.c (bus_dispatch_test): started adding this but
12387         didn't finish
12388
12389 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12390
12391         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12392
12393 2003-03-13  Havoc Pennington  <hp@pobox.com>
12394
12395         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12396         set up a test framework as for the library
12397
12398 2003-03-12  Havoc Pennington  <hp@pobox.com>
12399
12400         Throughout: purge global variables, introduce BusActivation,
12401         BusConnections, BusRegistry, etc. objects instead.
12402
12403         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12404         message bus object
12405
12406         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12407         going to redo this a bit differently I think
12408
12409 2003-03-12  Havoc Pennington  <hp@redhat.com>
12410
12411         Mega-patch that gets the message bus daemon initially handling
12412         out-of-memory. Work still needed. Also lots of random
12413         moving stuff to DBusError instead of ResultCode.
12414
12415         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12416
12417         * dbus/dbus-connection.c
12418         (dbus_connection_send_with_reply_and_block): use DBusError
12419
12420         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12421         DBusResultCode
12422
12423         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12424         code here, as the only failure possible is OOM.
12425
12426         * bus/connection.c (bus_connection_disconnect):
12427         rename bus_connection_disconnected as it's a notification only
12428
12429         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12430         "name" on get_args failure, should be done by get_args;
12431         don't disconnect client for bad args, just return an error.
12432         (bus_driver_handle_service_exists): ditto
12433
12434         * bus/services.c (bus_services_list): NULL-terminate returned array
12435
12436         * bus/driver.c (bus_driver_send_service_lost)
12437         (bus_driver_send_service_acquired): send messages from driver to a
12438         specific client to the client's unique name, not to the broadcast
12439         service.
12440
12441         * dbus/dbus-message.c (decode_header_data): reject messages that
12442         contain no name field
12443         (_dbus_message_get_client_serial): rename to
12444         dbus_message_get_serial and make public
12445         (_dbus_message_set_serial): rename from set_client_serial
12446         (_dbus_message_set_reply_serial): make public
12447         (_dbus_message_get_reply_serial): make public
12448
12449         * bus/connection.c (bus_connection_foreach): allow stopping
12450         iteration by returning FALSE from foreach function.
12451
12452         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12453         (dbus_connection_free_preallocated_send)
12454         (dbus_connection_preallocate_send): new API for sending a message
12455         without possibility of malloc failure.
12456         (dbus_connection_send_message): rename to just
12457         dbus_connection_send (and same for whole function family)
12458
12459         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12460
12461         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12462
12463         * bus/activation.c: handle/return errors
12464
12465         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12466
12467         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12468         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12469         (_dbus_result_from_errno): move to this file
12470
12471 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12472
12473         * dbus/dbus-marshal.c:
12474         (_dbus_marshal_set_string):
12475         Take a length argument so we can marshal the correct string
12476         length.
12477
12478         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12479         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12480         (_dbus_marshal_test):
12481         * dbus/dbus-marshal.h:
12482         Add support for marshalling and demarshalling dicts.
12483
12484         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12485         Add support for TYPE DICT.
12486
12487         * dbus/dbus-message.c: (set_string_field):
12488         Adjust header padding.
12489
12490         (dbus_message_append_args_valist), (dbus_message_append_dict),
12491         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12492         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12493         (check_message_handling), (check_have_valid_message):
12494         * dbus/dbus-message.h:
12495         Add functions for setting and getting dicts.
12496
12497         * dbus/dbus-protocol.h:
12498         Add DBUS_TYPE_DICT.
12499
12500         * dbus/dbus.h:
12501         Add dbus-dict.h
12502
12503         * doc/dbus-specification.sgml:
12504         Add information about how dicts are marshalled.
12505
12506         * test/data/invalid-messages/dict-with-nil-value.message:
12507         * test/data/invalid-messages/too-short-dict.message:
12508         * test/data/valid-messages/dict-simple.message:
12509         * test/data/valid-messages/dict.message:
12510         Add sample messages containing dicts.
12511
12512 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12513
12514         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12515
12516 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12517
12518         * dbus/Makefile.am:
12519         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12520         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12521         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12522         (dbus_dict_set_double), (dbus_dict_set_string),
12523         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12524         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12525         (dbus_dict_set_string_array), (_dbus_dict_test):
12526         * dbus/dbus-dict.h:
12527         Fix according to comments from Havoc.
12528
12529 2003-03-06  Michael Meeks  <michael@server.home>
12530
12531         * configure.in: if we don't have kde-config, disable have_qt.
12532
12533 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12534
12535         * dbus/Makefile.am:
12536         Add dbus-dict.[ch]
12537
12538         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12539         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12540         (dbus_dict_remove), (dbus_dict_get_value_type),
12541         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12542         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12543         (dbus_dict_put_double), (dbus_dict_put_string),
12544         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12545         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12546         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12547         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12548         (dbus_dict_get_double), (dbus_dict_get_string),
12549         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12550         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12551         (dbus_dict_get_string_array), (_dbus_dict_test):
12552         * dbus/dbus-dict.h:
12553         Add DBusDict implementation
12554
12555         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12556         * dbus/dbus-test.h:
12557         Add _dbus_dict_test
12558
12559 2003-03-04  Havoc Pennington  <hp@pobox.com>
12560
12561         * test/data/auth/*: adapt to changes
12562
12563         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12564         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12565         userid
12566
12567         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12568         more stuff from being in a context name, to make the protocol
12569         simpler to deal with
12570
12571         * dbus/dbus-errors.c (dbus_error_has_name): new function
12572         (dbus_error_is_set): new function
12573
12574         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12575         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12576
12577         * dbus/dbus-connection.c (dbus_connection_flush): also read
12578         messages during a flush operation
12579
12580         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12581
12582 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12583
12584         * configure.in: Check for gethostbyname on Solaris.
12585
12586         * dbus/dbus-transport.c: (_dbus_transport_open):
12587         Remove duplicate "tcp" entry.
12588
12589         * doc/dbus-specification.sgml:
12590         Clarify some things.
12591
12592 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12593
12594         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12595         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12596         (_dbus_keyring_test):
12597         * dbus/dbus-md5.c: (_dbus_md5_compute):
12598         * dbus/dbus-sha.c: (_dbus_sha_compute):
12599         Plug memory leaks.
12600
12601 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12602
12603         * README: Add some things.
12604
12605 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12606
12607         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12608         after case DBUS_TYPE_BOOELAN.
12609
12610 2003-03-02  Havoc Pennington  <hp@pobox.com>
12611
12612         * test/break-loader.c (randomly_set_extreme_ints): add test that
12613         sets really huge and small integers
12614
12615         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12616         that length of boolean array fits in the string, and that
12617         string has room for boolean value in single-bool case.
12618
12619         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12620         optional value to "ALIGN" command which is what to fill the
12621         alignment with.
12622
12623         * test/data/valid-messages/no-padding.message: add regression
12624         test for the message padding problem
12625
12626 2003-03-02  Havoc Pennington  <hp@pobox.com>
12627
12628         * dbus/dbus-message.c (decode_header_data): fix to always init
12629         message_padding, from Benjamin Dauvergne
12630
12631 2003-03-02  Havoc Pennington  <hp@pobox.com>
12632
12633         * configure.in: 0.5
12634
12635         * NEWS: Update.
12636
12637 2003-03-01  Joe Shaw  <joe@assbarn.com>
12638
12639         * configure.in: Check for "struct cmsgcred" and try to access its
12640         members for BSD-like unices.
12641
12642         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12643         _dbus_read_credentials_unix_socket().
12644         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12645         read() for reading the credential byte off the unix socket.  Use
12646         struct cmsgcred on systems that support it.
12647
12648 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12649
12650         * glib/Makefile.am:
12651         * configure.in:
12652         Make gthreads-2.0 dependency optional. Don't build thread test if
12653         its not found.
12654
12655 2003-02-27  Havoc Pennington  <hp@pobox.com>
12656
12657         * dbus/dbus-connection.c
12658         (dbus_connection_send_message_with_reply_and_block): fix doh!
12659         doh! doh! bug that resulted in never removing a reply from the
12660         queue, no wonder we called get_reply_serial so much ;-)
12661
12662         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12663         and client serial instead of demarshaling them every time
12664
12665 2003-02-27  Havoc Pennington  <hp@pobox.com>
12666
12667         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12668         more inlined, using dbus-string-private.h, speeds things up
12669         substantially
12670
12671         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12672         when freeing the string
12673         (_dbus_string_steal_data): fix for align offset
12674         (undo_alignment): new function
12675
12676 2003-02-26  Havoc Pennington  <hp@redhat.com>
12677
12678         All kinds of audit fixes from Owen, plus initial attempt to
12679         handle unaligned memory returned from malloc.
12680
12681         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12682         leave room for align_offset and nul byte
12683         (fixup_alignment): function to track an align_offset and
12684         ensure real->str is aligned
12685         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12686         to allow a nul byte plus align offset
12687         (_dbus_string_lock): fix overflow issue
12688         (_dbus_string_init_const_len): add assertions on sanity of len,
12689         assign allocated to be ALLOCATION_PADDING larger than len
12690         (set_length): fixup the overflow handling
12691         (_dbus_string_get_data_len): fix overflow in assertion
12692         (open_gap): detect overflow in size of gap to be opened
12693         (_dbus_string_lengthen): add overflow check
12694         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12695         (_dbus_string_append): add overflow check
12696         (_dbus_string_append_unichar): overflow
12697         (_dbus_string_delete): fix overflow in assertion
12698         (_dbus_string_copy_len): overflow in assertion
12699         (_dbus_string_replace_len): overflows in assertions
12700         (_dbus_string_find): change to implement in terms of
12701         _dbus_string_find_to
12702         (_dbus_string_find_to): assorted fixage
12703         (_dbus_string_equal_c_str): assert c_str != NULL,
12704         fix logic so the function works
12705         (_dbus_string_ends_with_c_str): fix overflow thingy
12706         (_dbus_string_base64_encode): overflow fix
12707         (_dbus_string_validate_ascii): overflow
12708         (_dbus_string_validate_nul): overflow
12709
12710 2003-02-26  Havoc Pennington  <hp@redhat.com>
12711
12712         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12713
12714 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12715
12716         * configure.in:
12717         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12718
12719         * dbus/dbus-connection.c:
12720         * dbus/dbus-connection.h:
12721         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12722         Add dbus_connection_set_wakeup_main_function and use it when queueing
12723         incoming and outgoing messages.
12724
12725
12726         * dbus/dbus-dataslot.c:
12727         Threadsafe usage of DBusDataSlotAllocator
12728
12729         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12730         dbus_new can fail.
12731
12732         * dbus/dbus-server-unix.c:
12733         Add todo comment
12734
12735         * glib/dbus-gmain.c:
12736         Implement the new wakeup functions for glib.
12737
12738         * glib/Makefile.am:
12739         * glib/test-thread-client.c:
12740         * glib/test-thread-server.c:
12741         * glib/test-thread.h:
12742         Initial cut at some thread test code. Not really done yet.
12743
12744 2003-02-26  Havoc Pennington  <hp@pobox.com>
12745
12746         * dbus/dbus-connection.c
12747         (dbus_connection_send_message_with_reply_and_block): fix crash
12748         where we ref'd the outgoing message instead of the returned reply
12749
12750         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12751         at the end of this function, so if we didn't need to read for
12752         authentication, we reinstall it for receiving messages
12753
12754         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12755         a NULL sender for peer-to-peer case
12756
12757         * dbus/dbus-transport-unix.c (check_read_watch): handle
12758         !authenticated case correctly
12759
12760         * glib/dbus-gmain.c: add support for DBusServer
12761
12762         * dbus/dbus-server.c: add data slot support
12763
12764         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12765         return values and handle errors
12766
12767         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12768         DBusConnection
12769
12770         * Doxyfile.in (INPUT): add glib subdir
12771
12772         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12773         setup_with_g_main instead of hookup_with_g_main; write docs
12774
12775 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12776
12777         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12778         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12779         * dbus/dbus-message.c: (dbus_message_append_boolean),
12780         (dbus_message_append_boolean_array),
12781         (dbus_message_get_args_valist), (_dbus_message_test):
12782         * dbus/dbus-message.h:
12783         * doc/dbus-specification.sgml:
12784         Various fixes as pointed out by Havoc.
12785
12786         * test/data/invalid-messages/bad-boolean-array.message:
12787         * test/data/invalid-messages/bad-boolean.message:
12788         Add invalid boolean value test cases.
12789
12790 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12791
12792         * dbus/dbus-internals.c: (_dbus_type_to_string):
12793         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12794         (_dbus_marshal_validate_arg):
12795         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12796         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12797         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12798         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12799         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12800         (dbus_message_iter_get_double),
12801         (dbus_message_iter_get_boolean_array), (message_iter_test):
12802         * dbus/dbus-message.h:
12803         * dbus/dbus-protocol.h:
12804         * doc/dbus-specification.sgml:
12805         * test/data/valid-messages/lots-of-arguments.message:
12806         Add support for boolean and boolean array types.
12807
12808 2003-02-23  Havoc Pennington  <hp@pobox.com>
12809
12810         * dbus/dbus-keyring.c: finish most of this implementation and
12811         simple unit test
12812
12813         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12814         these barf if the error isn't cleared to NULL
12815
12816         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12817         (_dbus_create_directory): new function
12818
12819         * dbus/dbus-errors.c (dbus_set_error): fix warning
12820
12821         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12822         (_dbus_string_hex_decode): new function
12823         (test_hex_roundtrip): test code
12824
12825         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12826
12827         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12828
12829         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12830         the save-to-temp/rename trick to atomically write the new file
12831         (_dbus_string_parse_uint): new function
12832
12833 2003-02-22  Havoc Pennington  <hp@pobox.com>
12834
12835         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12836
12837 2003-02-22  Havoc Pennington  <hp@pobox.com>
12838
12839         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12840         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12841
12842         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12843
12844         * dbus/test/data/sha-1: add US government test suite for SHA-1
12845
12846 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12847
12848         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12849         Make string arrays NULL-terminated.
12850
12851         * dbus/dbus-memory.c: (dbus_free_string_array):
12852         * dbus/dbus-memory.h:
12853         New function for freeing NULL-terminated string arrays.
12854
12855         * dbus/dbus-message-builder.c: (append_quoted_string),
12856         (_dbus_message_data_load):
12857         Add support for array types.
12858
12859         * dbus/dbus-message.c: (check_message_handling):
12860         Add more types as test cases.
12861
12862         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12863         (_dbus_string_parse_double):
12864         Add the start offset to the end offset.
12865
12866         * test/data/valid-messages/lots-of-arguments.message:
12867         New test message with lots of arguments.
12868
12869 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12870
12871         * dbus/dbus-message.c: (dbus_message_append_nil),
12872         (dbus_message_append_int32), (dbus_message_append_uint32),
12873         (dbus_message_append_double), (dbus_message_append_string),
12874         (dbus_message_append_int32_array),
12875         (dbus_message_append_uint32_array),
12876         (dbus_message_append_double_array),
12877         (dbus_message_append_byte_array),
12878         (dbus_message_append_string_array):
12879         Fix all out-of-memory handling in these functions.
12880
12881 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12882
12883         * dbus/dbus-message.c: (dbus_message_append_nil):
12884         Fix a silly.
12885
12886 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12887
12888         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12889         (dbus_message_append_nil), (dbus_message_append_int32_array),
12890         (dbus_message_append_uint32_array),
12891         (dbus_message_append_double_array),
12892         (dbus_message_append_byte_array),
12893         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12894         (dbus_message_iter_get_int32_array),
12895         (dbus_message_iter_get_uint32_array),
12896         (dbus_message_iter_get_double_array),
12897         (dbus_message_iter_get_byte_array),
12898         (dbus_message_iter_get_string_array):
12899
12900         * dbus/dbus-message.h:
12901         Add functions for appending and getting arrays.
12902
12903 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12904
12905         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12906         element size at least 8 bytes, fixes mempool tests on
12907         64-bit machines.
12908
12909 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12910
12911         * dbus/dbus-transport-unix.c (unix_do_iteration):
12912         Unlock the connection mutex during a blocking select call.
12913         Add todo about how we need a way to wake up the select.
12914
12915         * dbus/dbus-connection-internal.h:
12916         * dbus/dbus-connection.c:
12917         Add _dbus_connection_lock and _dbus_connection_unlock.
12918
12919 2003-02-19  Havoc Pennington  <hp@pobox.com>
12920
12921         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12922         Doxyfile.in, not Doxyfile
12923
12924         * dbus/dbus-keyring.c: do some hacking on this
12925
12926         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12927
12928         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12929         dbus_error_init
12930         (dbus_set_error): remove dbus_error_init, check for message ==
12931         NULL *before* we sprintf into it, and add @todo about including
12932         system headers in this file
12933
12934         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12935
12936         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12937
12938         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12939         get various bits of user information based on either username
12940         or user ID
12941         (_dbus_homedir_from_username): new function
12942
12943 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12944
12945         * configure.in:
12946         Add check for nonposix getpwnam_r
12947
12948         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12949         Align the pool element size to a sizeof (void *) boundary.
12950
12951         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12952         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12953         General Solaris fixes.
12954
12955         * test/data/valid-messages/simplest-manual.message:
12956         Explicitly state that we want little-endian packing.
12957
12958 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12959
12960         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12961
12962         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12963         Added to create a transport connecting using a tcp/ip socket.
12964
12965         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12966         to a tcp socket at given host and port.
12967         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12968         hostname and port.
12969
12970         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12971
12972         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12973         Added to create a server listening on a TCP/IP socket.
12974
12975 2003-02-19  Havoc Pennington  <hp@pobox.com>
12976
12977         Throughout: mop up all the Doxygen warnings and undocumented
12978         stuff.
12979
12980         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12981         to search any paths.
12982
12983         * dbus/dbus-threads.c: move global mutex initializers to
12984         dbus-internals.h, multiple prototypes was confusing doxygen
12985         besides being kind of ugly
12986
12987         * Doxyfile (PREDEFINED): have Doxygen define
12988         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12989         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12990         (do not abuse the feature! it's for stuff like the autogenerated
12991         macros in dbus-md5.c, not just for things you don't feel like
12992         documenting...)
12993
12994 2003-02-18  Havoc Pennington  <hp@pobox.com>
12995
12996         * dbus/dbus-string.c (_dbus_string_zero): new function
12997
12998         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12999         wrap it in some dbus-friendly API
13000
13001         * dbus/dbus-types.h: add 16-bit types
13002
13003 2003-02-18  Joe Shaw  <joe@assbarn.com>
13004
13005         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13006         credentials from our currently running process.
13007         (get_word): Fix a buglet where we were copying the entire length
13008         instead of relative to our position.
13009
13010         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13011         keys on the stack... it's 640k of data.
13012
13013         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13014         read the credentials byte off the socket, even if we don't have
13015         SO_PEERCRED.
13016         (_dbus_poll): Implement poll() using select() for systems which
13017         don't have it.
13018
13019         * glib/test-dbus-glib.c (main): Print out an error if no
13020         parameters are given.
13021
13022         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13023         can fallback to a secondary auth mechanism if the first fails.
13024
13025 2003-02-18  Havoc Pennington  <hp@pobox.com>
13026
13027         * AUTHORS: add Alex
13028
13029 2003-02-17  Havoc Pennington  <hp@pobox.com>
13030
13031         * doc/dbus-specification.sgml: lots of cosmetic
13032         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13033         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13034         s/server/bus/ (except in authentication section). Add a section
13035         "Message Bus Message Routing"
13036
13037 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13038
13039         Release 0.4
13040
13041         * NEWS: Update
13042
13043 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13044
13045         * doc/dbus-specification.sgml:
13046         Specification updates.
13047
13048 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13049
13050         * bus/activation.c: (bus_activation_init), (child_setup),
13051         (bus_activation_activate_service):
13052         * bus/activation.h:
13053         * bus/main.c: (main):
13054         Set DBUS_ADDRESS environment variable.
13055
13056         * dbus/dbus-errors.c: (dbus_set_error):
13057         Don't use va_copy since that's a C99 feature.
13058
13059         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13060         (_dbus_spawn_async):
13061         * dbus/dbus-sysdeps.h:
13062         Add child_setup_func to _dbus_spawn_async.
13063
13064         * doc/dbus-specification.sgml:
13065         Update specification.
13066
13067         * test/spawn-test.c: (setup_func), (main):
13068         Fix test.
13069
13070 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13071
13072         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13073         Added todo.
13074
13075 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13076
13077         * doc/.cvsignore:
13078         * doc/Makefile.am:
13079         * doc/dbus-test-plan.sgml:
13080         Add test plan document.
13081
13082         * test/Makefile.am:
13083         Fix distcheck.
13084
13085 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13086
13087         * dbus/dbus-message.c: (decode_header_data),
13088         (_dbus_message_loader_return_buffer):
13089         Set the header padding amount when loading a message.
13090
13091 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13092
13093         * bus/dispatch.c: (send_one_message):
13094         Only send broadcast messages to registered connections.
13095
13096         * dbus/dbus-message.c: (dbus_message_name_is):
13097         * dbus/dbus-message.h:
13098         New convenience function.
13099
13100         * dbus/dbus-transport-debug.c: (do_reading):
13101         Only dispatch one message per run.
13102
13103         * test/Makefile.am:
13104         * test/bus-test.c: (new_connection_callback), (die),
13105         (test_hello_client1_handler), (test_hello_client2_handler),
13106         (test_hello_replies), (main):
13107
13108         * test/bus-test-loop.[ch]:
13109         Add these.
13110
13111 2003-02-16  Havoc Pennington  <hp@pobox.com>
13112
13113         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13114         backward conditional
13115
13116 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13117
13118         * dbus/dbus-connection.c:
13119         Implement sent_message_with_reply. (with_reply_and block is still
13120         busted).
13121         Made dispatch_message not lose message if OOM.
13122
13123         * dbus/dbus-errors.h:
13124         Add NoReply error (for reply timeouts).
13125
13126 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13127
13128         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13129         Actually free keys and values when destroying hashtable.
13130
13131 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13132
13133         * dbus/dbus-auth.c: (client_try_next_mechanism):
13134         Plug a leak.
13135
13136         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13137         Return TRUE if there's no thread implementation around.
13138
13139         * glib/dbus-gmain.c: (free_source),
13140         (dbus_connection_hookup_with_g_main):
13141         Make sure to remove the GSource when the connection is finalized.
13142
13143 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13144
13145         * bus/dispatch.c: (bus_dispatch_message_handler):
13146         * dbus/dbus-errors.h:
13147         Return an error if someone tries to send a message to a service
13148         that doesn't exist.
13149
13150 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13151
13152         * bus/activation.c: (load_directory), (bus_activation_init),
13153         (bus_activation_activate_service):
13154         * bus/activation.h:
13155         * bus/driver.c:
13156         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13157         More work on the activation handling.
13158
13159         * dbus/dbus-errors.h:
13160         Add some error messages
13161
13162         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13163         * dbus/dbus-message.h:
13164         New function that creates an error message.
13165
13166         * dbus/dbus-protocol.h:
13167         Add ACTIVATE_SERVER message.
13168
13169         * dbus/dbus-server-unix.c: (unix_handle_watch),
13170         (_dbus_server_new_for_domain_socket):
13171         Call _dbus_fd_set_close_on_exec.
13172
13173         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13174         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13175         (_dbus_fd_set_close_on_exec):
13176         * dbus/dbus-sysdeps.h:
13177         Add _dbus_fd_set_close_on exec function. Also add function that checks
13178         that all open fds are set to close-on-exec and warns otherwise.
13179
13180         * dbus/dbus-transport-unix.c:
13181         (_dbus_transport_new_for_domain_socket):
13182         Call _dbus_fd_set_close_on_exec.
13183
13184 2003-02-16  Havoc Pennington  <hp@pobox.com>
13185
13186         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13187         allow people to avoid setting SIGPIPE to SIG_IGN
13188         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13189         we've been asked not to
13190
13191 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13192
13193         * dbus/dbus-list.c: (_dbus_list_append_link),
13194         (_dbus_list_prepend_link):
13195         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13196         (dbus_realloc):
13197         Warning fixes.
13198
13199 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13200
13201         * bus/Makefile.am:
13202         * bus/activation.c: (bus_activation_entry_free),
13203         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13204         * bus/activation.h:
13205         * bus/main.c: (main):
13206         Add simple activation support, doesn't work yet though.
13207
13208 2003-02-15   Zack Rusin  <zack@kde.org>
13209
13210         * qt/dbus-qthread.cpp:  small casting fix
13211
13212 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13213
13214         * dbus/dbus-errors.c: (dbus_set_error):
13215         * dbus/dbus-errors.h:
13216         Add a few errors and make dbus_set_error void.
13217
13218         * dbus/dbus-sysdeps.c:
13219         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13220         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13221         * dbus/dbus-sysdeps.h:
13222         Add _dbus_spawn_async.
13223
13224         * test/spawn-test.c: (main):
13225         Test for _dbus_spawn_async.
13226
13227 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13228
13229         * dbus/dbus-internals.h:
13230         Fix build without tests.
13231
13232         * dbus/dbus-list.c: (alloc_link):
13233         Fix a segfault when a malloc fails.
13234
13235         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13236         (dbus_malloc0), (dbus_realloc):
13237         Add support for malloc debugging.
13238
13239 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13240
13241         * dbus/dbus-threads.c:
13242         * dbus/dbus-threads.h:
13243         Add condvars. Remove static mutext from API.
13244         Implement static mutexes by initializing them from threads_init.
13245
13246         * glib/dbus-gthread.c:
13247         * qt/dbus-qthread.cpp:
13248         Update with the thread api changes.
13249
13250
13251         * dbus/dbus-list.c:
13252         * dbus/dbus-list.h:
13253         Turn StaticMutex into normal mutex + init function.
13254         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13255         _dbus_list_append_link, _dbus_list_prepend_link
13256
13257
13258         * dbus/dbus-sysdeps.c:
13259         * dbus/dbus-sysdeps.h:
13260         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13261         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13262
13263         * dbus/dbus-protocol.h:
13264         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13265
13266         * dbus/dbus-message.c:
13267         Make ref/unref atomic.
13268         Fix some docs.
13269
13270         * dbus/dbus-connection-internal.h:
13271         * dbus/dbus-connection.c:
13272         * dbus/dbus-connection.h:
13273         Make threadsafe.
13274         Change _peek to _borrow,_return & _steal_borrowed.
13275         Change disconnect callback to event.
13276         Make dbus_connection_dispatch_messages reentrant.
13277
13278         * dbus/dbus-transport.c:
13279         Don't ref the connection on calls to the transport
13280         implementation.
13281
13282         * dbus/dbus-message-handler.c:
13283         Make threadsafe.
13284
13285         * glib/dbus-gmain.c:
13286         Don't use peek_message anymore
13287
13288         * test/Makefile.am:
13289         * test/debug-thread.c:
13290         * test/debug-thread.h:
13291         Simple thread implementation that asserts() on deadlocks in
13292         single-threaded code.
13293
13294         * test/bus-test.c:
13295         (main) Call debug_threads_init.
13296
13297         * test/watch.c:
13298         Use disconnect message instead of disconnect callback.
13299
13300         * bus/connection.c:
13301         * bus/connection.h:
13302         Don't call dbus_connection_set_disconnect_function. Instead export
13303         bus_connection_disconnect.
13304
13305         * bus/dispatch.c:
13306         Call bus_connection_disconnect when we get a disconnected message.
13307
13308 2003-02-15  Havoc Pennington  <hp@pobox.com>
13309
13310         * dbus/dbus-message.c (dbus_message_new): fool around with the
13311         docs
13312
13313 2003-02-14  Havoc Pennington  <hp@pobox.com>
13314
13315         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13316
13317         * dbus/dbus-memory.c: fail if the debug functions indicate we
13318         should
13319
13320         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13321         (_dbus_decrement_fail_alloc_counter): debug functions to
13322         simulate memory allocation failures
13323
13324 2003-02-14  Havoc Pennington  <hp@pobox.com>
13325
13326         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13327         to DBusError
13328
13329 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13330
13331         * bus/driver.c: (bus_driver_handle_hello):
13332         * bus/driver.h:
13333         * bus/services.c: (bus_service_lookup):
13334         Reorder message sending so we get a more sane order.
13335
13336         * test/bus-test.c: (message_handler):
13337         Fix tyop.
13338
13339 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13340
13341         * bus/driver.c: (bus_driver_send_service_deleted),
13342         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13343         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13344         (bus_driver_send_welcome_message),
13345         (bus_driver_handle_list_services),
13346         (bus_driver_handle_acquire_service),
13347         (bus_driver_handle_service_exists):
13348         * dbus/dbus-bus.c: (dbus_bus_register_client),
13349         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13350         * dbus/dbus-errors.c: (dbus_result_to_string):
13351         * dbus/dbus-errors.h:
13352         * dbus/dbus-message.c: (dbus_message_append_args),
13353         (dbus_message_append_args_valist), (dbus_message_get_args),
13354         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13355         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13356         (dbus_message_iter_get_byte_array),
13357         (dbus_message_iter_get_string_array), (message_iter_test),
13358         (check_message_handling), (_dbus_message_test):
13359         * dbus/dbus-message.h:
13360         * test/bus-test.c: (main):
13361         Change fields to arguments in messages, so that they won't be
13362         confused with header fields.
13363
13364         * glib/test-dbus-glib.c: (main):
13365         Remove append_fields from hello message.
13366
13367 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13368
13369         * dbus/dbus-errors.c:
13370         * dbus/dbus-message.c:
13371         * dbus/dbus-string.c:
13372         Documentation fixes.
13373
13374 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13375
13376         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13377         (remove_timeout):
13378         Implement support for timeouts in dbus-glib.
13379
13380 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13381
13382         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13383         * dbus/dbus-message.c: (process_test_subdir):
13384         * test/break-loader.c: (find_breaks_based_on):
13385         Plug some memory leaks.
13386
13387 2003-02-13  Richard Hult  <rhult@codefactory.se>
13388
13389         * bus/main.c: Fix build.
13390
13391         * dbus/dbus-errors.h:
13392         * dbus/dbus-errors.c: Fix copyright for Anders.
13393
13394 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13395
13396         * bus/Makefile.am:
13397         Add utils.[ch]
13398
13399         * bus/connection.c: (bus_connection_foreach):
13400         Fix a warning.
13401
13402         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13403         (unescape_string), (new_section), (parse_section_start),
13404         (parse_key_value), (report_error), (bus_desktop_file_load),
13405         (bus_desktop_file_get_string):
13406         * bus/desktop-file.h:
13407         Use DBusError for error reporting.
13408
13409         * bus/dispatch.c: (send_one_message),
13410         (bus_dispatch_message_handler):
13411         * bus/driver.c: (bus_driver_send_service_deleted),
13412         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13413         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13414         (bus_driver_send_welcome_message),
13415         (bus_driver_handle_list_services),
13416         (bus_driver_handle_acquire_service),
13417         (bus_driver_handle_service_exists):
13418         * bus/loop.c: (bus_loop_run):
13419         * bus/main.c:
13420         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13421
13422         * bus/utils.c: (bus_wait_for_memory):
13423         * bus/utils.h:
13424         New files with general utility functions.
13425
13426         * dbus/dbus-internals.h:
13427         Remove _DBUS_HANDLE_OOM.
13428
13429 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13430
13431         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13432         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13433         * dbus/dbus-errors.h:
13434         Add DBusError structure.
13435
13436 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13437
13438         * test/data/valid-messages/standard-acquire-service.message:
13439         * test/data/valid-messages/standard-hello.message:
13440         * test/data/valid-messages/standard-list-services.message:
13441         * test/data/valid-messages/standard-service-exists.message:
13442         Add some standard messages.
13443
13444 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13445
13446         * bus/driver.c: (bus_driver_send_welcome_message),
13447         (bus_driver_handle_list_services),
13448         (bus_driver_handle_acquire_service),
13449         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13450         Update for API changes in libdbus.
13451
13452         * dbus/dbus-message.c: (dbus_message_new_reply):
13453         * dbus/dbus-message.h:
13454         Remove the name argument. The spec states that replies shouldn't
13455         have a name.
13456
13457 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13458
13459         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13460         (report_error), (bus_desktop_file_load), (lookup_section),
13461         (lookup_line), (bus_desktop_file_get_raw),
13462         (bus_desktop_file_get_string):
13463         * bus/desktop-file.h:
13464         Some fixes, and new functions for getting a key value from a section.
13465
13466 2003-02-13  Havoc Pennington  <hp@pobox.com>
13467
13468         * test/data/auth/fail-after-n-attempts.auth-script: new test
13469
13470         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13471         reject the client.
13472
13473 2003-02-13  Havoc Pennington  <hp@pobox.com>
13474
13475         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13476         dbus_credentials_match were backward
13477
13478         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13479         NO_CREDENTIALS and ROOT_CREDENTIALS
13480
13481         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13482         into here. Never process more commands after we've reached an
13483         end state; store further data as unused bytes.
13484
13485         * test/data/auth/*: add more auth tests
13486
13487         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13488         command to match exact string and EXPECT_UNUSED to match unused
13489         bytes
13490
13491         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13492
13493 2003-02-12  Havoc Pennington  <hp@pobox.com>
13494
13495         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13496         \r off of popped lines
13497
13498         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13499         scripts
13500
13501         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13502         SEND, append \r\n
13503
13504 2003-02-12  Havoc Pennington  <hp@pobox.com>
13505
13506         * dbus/Makefile.am: remove break-loader from the build, since it
13507         moved.
13508
13509         * configure.in: add --enable-gcov to turn on coverage profiling
13510         flags and disable optimization
13511
13512 2003-02-10  Havoc Pennington  <hp@pobox.com>
13513
13514         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13515         initial cut at test framework for DBusAuth from laptop.
13516         Doesn't quite work yet but it compiles and I need to get
13517         it off the 266mhz laptop. ;-)
13518
13519         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13520         fix a memleak in error case
13521
13522 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13523
13524         * bus/Makefile.am:
13525         * bus/desktop-file.c:
13526         * bus/desktop-file.h:
13527         Add a desktop file parser.
13528
13529 2003-02-11  Zack Rusin  <zack@kde.org>
13530
13531         * qt/message.[h|cpp]: sample implementation
13532         of the KDE wrapper for DBusMessage
13533
13534 2003-02-09  Zack Rusin  <zack@kde.org>
13535
13536         * test/bus-test.c: make_it_compile
13537         * doc/dbus-specification.sgml: minimal semantic fix
13538
13539 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13540
13541         Release 0.3
13542
13543         * NEWS: Update
13544
13545 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13546
13547         * dbus/Makefile.am:
13548         * dbus/dbus-break-loader.c:
13549         * test/Makefile.am:
13550         * test/break-loader.c:
13551         Move dbus-break-loader to test/ and rename it to break-loader.
13552
13553 2003-02-02  Havoc Pennington  <hp@pobox.com>
13554
13555         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13556         for code to manage cookies in your home directory
13557
13558         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13559
13560         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13561         to authenticate, then disconnect the client.
13562
13563 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13564
13565         * dbus/dbus-message.c (dbus_message_append_fields):
13566         Correct docs.
13567
13568 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13569
13570         * doc/dbus-specification.sgml:
13571         Update address format section.
13572
13573 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13574
13575         * test/Makefile.am:
13576         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13577         (message_handler), (new_connection_callback), (loop_quit),
13578         (loop_run), (main):
13579         Add bus test.
13580
13581 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13582
13583         * bus/driver.c: (bus_driver_handle_service_exists):
13584         Simplify the code a bit.
13585
13586         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13587         Fix a silly.
13588
13589 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13590
13591         * bus/Makefile.am:
13592         Add libdbus-daemon.la and link to it.
13593
13594 2003-02-01  James Willcox  <jwillcox@gnome.org>
13595
13596         * bus/driver.c: (bus_driver_handle_own_service):
13597         Actually include the service reply code in the message.
13598
13599 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13600
13601         * bus/driver.c: (bus_driver_handle_service_exists):
13602         Don't unref the incoming message.
13603
13604 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13605
13606         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13607
13608 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13609
13610         * dbus/dbus-server.c: (dbus_server_listen):
13611         * dbus/dbus-transport.c: (_dbus_transport_open):
13612         ifdef out the calls to the debug transport and server.
13613
13614 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13615
13616         * dbus/dbus-watch.c (dbus_watch_get_flags):
13617         Add note in the docs that ERROR or HANGUP won't be returned
13618         and are assumed always on.
13619
13620         * glib/dbus-gmain.c (add_watch):
13621         Always add IO_ERR | IO_HUP
13622
13623         * dbus/dbus-message.h:
13624         Add semicolon after dbus_message_iter_get_string_array().
13625         Makes qt code build again
13626
13627 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13628
13629         * bus/driver.c: (create_unique_client_name),
13630         (bus_driver_handle_hello):
13631         Don't take a name, just use a numeric id to identify
13632         each client.
13633
13634         * dbus/Makefile.am:
13635         * dbus/dbus-bus.c: (dbus_bus_register_client),
13636         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13637         * dbus/dbus-bus.h:
13638         Add new convenience functions for communicating with the bus.
13639
13640         * dbus/dbus-message.h:
13641
13642         * dbus/dbus-protocol.h:
13643         Fix a typo.
13644
13645 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13646
13647         * dbus/dbus-message.c (dbus_message_append_fields):
13648         Add some more doc comments.
13649
13650 2003-02-01  Havoc Pennington  <hp@pobox.com>
13651
13652         * dbus/dbus-break-loader.c (randomly_modify_length): change
13653         a 4-byte value in the message as if it were a length
13654
13655         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13656         execute bit on saved files
13657
13658 2003-02-01  Havoc Pennington  <hp@pobox.com>
13659
13660         * dbus/dbus-break-loader.c (main): new program to find messages
13661         that break the loader.
13662
13663         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13664         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13665
13666         * dbus/dbus-string.c (_dbus_string_set_byte): new
13667
13668 2003-01-31  Havoc Pennington  <hp@pobox.com>
13669
13670         * dbus/dbus-message.c: refactor the test code to be more general,
13671         in preparation for writing a "randomly permute test cases to
13672         try to break the loader" program.
13673
13674 2003-01-31  Havoc Pennington  <hp@pobox.com>
13675
13676         * doc/dbus-specification.sgml: work on the specification
13677
13678         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13679         the protocol version of the message.
13680
13681         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13682         no longer specifies that.
13683         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13684         1/2/3/4)
13685
13686         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13687         "break" for DBUS_TYPE_NIL, remove @todo
13688
13689 2003-01-31  Havoc Pennington  <hp@pobox.com>
13690
13691         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13692         just set_is_error/get_is_error as this is a commonly-used
13693         function, and write docs.
13694
13695 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13696
13697         * dbus/dbus-address.c: (dbus_address_entry_free):
13698         Free key and value lists.
13699
13700         * dbus/dbus-internals.c: (_dbus_type_to_string):
13701         Add the types we didn't have.
13702
13703         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13704         (_dbus_marshal_validate_arg):
13705         Add NIL types.
13706
13707         * dbus/dbus-message.c: (dbus_message_set_sender):
13708         Remove todo about being able to set sender to NULL.
13709
13710         (dbus_message_set_is_error_reply),
13711         (dbus_message_get_is_error_reply):
13712         * dbus/dbus-message.h:
13713         New functions.
13714
13715         * dbus/dbus-protocol.h:
13716         Add error reply flag.
13717
13718         * test/data/valid-messages/opposite-endian.message:
13719         Add NIL type to test.
13720
13721 2003-01-31  Havoc Pennington  <hp@pobox.com>
13722
13723         * doc/dbus-specification.sgml: fully specify the header.  Add
13724         flags and major protocol version, and change header/body len to
13725         unsigned.
13726
13727         * dbus/dbus-message-builder.c (append_saved_length): append length
13728         as uint32
13729
13730         * dbus/dbus-message.c (dbus_message_create_header): change header
13731         length and body length to unsigned. Add the new fields from the
13732         spec
13733         (_dbus_message_loader_return_buffer): unsigned header/body len
13734
13735 2003-01-30  Havoc Pennington  <hp@pobox.com>
13736
13737         * dbus/dbus-auth.c: rework to use only REJECTED, no
13738         MECHANISMS
13739
13740         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13741         use REJECTED, suggested by Mark McLoughlin
13742
13743 2003-01-30  Havoc Pennington  <hp@pobox.com>
13744
13745         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13746         a better way to report errors here. e.g.  "unix address lacks
13747         path" or something. also "no such file" when the path doesn't
13748         exist, etc.
13749
13750         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13751         leaking list nodes
13752         (dbus_parse_address): add @todo about documenting address format,
13753         and allowing , and ; to be escaped
13754
13755 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13756
13757         * dbus/Makefile.am:
13758         Add dbus-address.[ch]
13759
13760         * dbus/dbus-address.c: (dbus_address_entry_free),
13761         (dbus_address_entries_free), (create_entry),
13762         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13763         (dbus_parse_address), (_dbus_address_test):
13764         * dbus/dbus-address.h:
13765         New files for dealing with address parsing.
13766
13767         * dbus/dbus-connection.c:
13768         Document timeout functions.
13769
13770         * dbus/dbus-message.c:
13771         Document dbus_message_new_from_message.
13772
13773         * dbus/dbus-server-debug.c:
13774         Document.
13775
13776         * dbus/dbus-server.c: (dbus_server_listen):
13777         Parse address and use correct server implementation.
13778
13779         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13780         * dbus/dbus-string.h:
13781         New function with test.
13782
13783         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13784         * dbus/dbus-test.h:
13785         Add address tests.
13786
13787         * dbus/dbus-transport-debug.c:
13788         Document.
13789
13790         * dbus/dbus-transport.c: (_dbus_transport_open):
13791         Parse address and use correct transport implementation.
13792
13793 2003-01-30  Havoc Pennington  <hp@pobox.com>
13794
13795         * dbus/dbus-message.c: use message->byte_order instead of
13796         DBUS_COMPILER_BYTE_ORDER throughout.
13797         (dbus_message_create_header): pad header to align the
13798         start of the body of the message to 8-byte boundary
13799
13800         * dbus/dbus-marshal.h: make all the demarshalers take const
13801         DBusString arguments.
13802
13803         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13804         validate message args here, so we don't have to do slow validation
13805         later, and so we catch bad messages as they are incoming. Also add
13806         better checks on header_len and body_len. Also fill in
13807         message->byte_order
13808
13809         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13810         implemented properly)
13811         (_dbus_string_validate_nul): new function to check all-nul
13812
13813         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13814         get_arg_end_pos and remove all validation
13815         (_dbus_marshal_validate_arg): actually do validation here.
13816
13817 2003-01-29  Havoc Pennington  <hp@pobox.com>
13818
13819         * dbus/dbus-message.c (check_message_handling): fix assertion
13820         failure on set_client_serial
13821
13822 2003-01-28  Havoc Pennington  <hp@pobox.com>
13823
13824         * dbus/dbus-server-debug.c: Add doc section comments
13825
13826         * dbus/dbus-transport-debug.c: add doc section comments
13827
13828 2003-01-28  Havoc Pennington  <hp@redhat.com>
13829
13830         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13831         the reverse order from how I had it
13832         (_dbus_string_base64_encode): reverse encoding order. I was
13833         basically byteswapping everything during encoding.
13834
13835 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13836
13837         * dbus/dbus-connection-internal.h:
13838         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13839         (_dbus_connection_remove_timeout):
13840         Add functions for adding and removing timeouts.
13841
13842         * dbus/dbus-message.c: (dbus_message_new_from_message):
13843         Add new function that takes a message and creates an exact
13844         copy of it, but with the refcount set to 1.
13845         (check_message_handling):
13846         Fix build error.
13847
13848         * dbus/dbus-server-protected.h:
13849         * dbus/dbus-server.c: (_dbus_server_init_base),
13850         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13851         (dbus_server_set_timeout_functions):
13852         (_dbus_server_remove_timeout):
13853         New functions so that a server can add and remove timeouts.
13854
13855         (dbus_server_listen):
13856         Add commented out call to dbus_server_debug_new.
13857
13858         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13859         Actually set the handler, doh.
13860
13861         * dbus/dbus-transport.c: (_dbus_transport_open):
13862         Add commented out call to dbus_transport_debug_client_new.
13863
13864         * dbus/Makefile.am:
13865         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13866
13867 2003-01-28  Havoc Pennington  <hp@pobox.com>
13868
13869         * dbus/dbus-message.c (check_message_handling): function to check
13870         on the loaded message, iterates over it etc.
13871
13872 2003-01-28  Havoc Pennington  <hp@pobox.com>
13873
13874         * test/Makefile.am (dist-hook): fix make distdir
13875
13876         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13877
13878 2003-01-27  Havoc Pennington  <hp@pobox.com>
13879
13880         * dbus/dbus-mempool.c (time_for_size): replace printf with
13881         _dbus_verbose
13882
13883         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13884         empty lines; fix the SAVE_LENGTH stuff to be
13885         START_LENGTH/END_LENGTH so it actually works; couple other
13886         bugfixes
13887
13888         * test/Makefile.am (dist-hook): add dist-hook for .message files
13889
13890         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13891         can be constant or locked.
13892         (_dbus_string_free): allow freeing a const string as
13893         documented/intended
13894
13895         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13896
13897         * dbus/dbus-test-main.c (main): take an argument which is the
13898         directory containing test data
13899
13900         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13901         argument to this and load all the messages in test/data/
13902         checking that they can be loaded or not loaded as appropriate.
13903
13904 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13905
13906         * bus/dispatch.c: (bus_dispatch_message_handler):
13907         Dispatch messages sent to services.
13908
13909         * bus/driver.c: (bus_driver_send_service_deleted),
13910         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13911         (bus_driver_send_service_acquired):
13912         Add helper functions for sending service related messages.
13913
13914         (bus_driver_send_welcome_message):
13915         Send HELLO_REPLY instead of WELCOME.
13916
13917         (bus_driver_handle_list_services):
13918         Send LIST_SERVICES_REPLY instead of SERVICES.
13919
13920         (bus_driver_handle_own_service),
13921         (bus_driver_handle_service_exists):
13922         New message handlers.
13923
13924         (bus_driver_handle_message):
13925         Invoke new message handlers.
13926
13927         (bus_driver_remove_connection):
13928         Don't remove any services here since that's done automatically
13929         by bus_service_remove_owner now.
13930
13931         * bus/driver.h:
13932         New function signatures.
13933
13934         * bus/services.c: (bus_service_add_owner):
13935         Send ServiceAcquired message if we're the only primary owner.
13936
13937         (bus_service_remove_owner):
13938         Send ServiceAcquired/ServiceLost messages.
13939
13940         (bus_service_set_prohibit_replacement),
13941         (bus_service_get_prohibit_replacement):
13942         Functions for setting prohibit replacement.
13943
13944         (bus_service_has_owner):
13945         New function that checks if a connection is in the owner queue of
13946         a certain service.
13947
13948         * bus/services.h:
13949         Add new function signatures.
13950
13951         * dbus/dbus-list.c: (_dbus_list_test):
13952         Add tests for _dbus_list_remove_last and traversing the list backwards.
13953
13954         * dbus/dbus-list.h:
13955         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13956         go any further, so return NULL then.
13957
13958         * dbus/dbus-protocol.h:
13959         Add new messages, service flags and service replies.
13960
13961 2003-01-26  Havoc Pennington  <hp@pobox.com>
13962
13963         * dbus/dbus-message-builder.c: implement, completely untested.
13964
13965         * test/data/*: add data to be used in testing.
13966         ".message" files are our simple loadable text format.
13967         ".message-raw" will be binary dumps of messages.
13968
13969         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13970
13971 2003-01-26  Havoc Pennington  <hp@pobox.com>
13972
13973         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13974
13975         * dbus/dbus-errors.c (dbus_result_to_string): add
13976         file errors
13977
13978         * dbus/dbus-message-builder.c: new file, will contain code to load
13979         up messages from files. Not implemented yet.
13980
13981 2003-01-26  Havoc Pennington  <hp@pobox.com>
13982
13983         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13984         the sender by setting to NULL
13985
13986 2003-01-26  Havoc Pennington  <hp@pobox.com>
13987
13988         The unit tests pass, but otherwise untested.  If it breaks, the
13989         tests should have been better. ;-)
13990
13991         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13992         the connection.
13993
13994         * dbus/dbus-message.c: redo everything so we maintain
13995         message->header as the only copy of the various fields.
13996         This avoids the possibility of out-of-memory in some cases,
13997         for example dbus_message_lock() can't run out of memory anymore,
13998         and avoids extra copying. Figured I may as well go ahead and do
13999         this since it was busted for dbus_message_lock to not return
14000         failure on OOM, and dbus_message_write_header was totally
14001         unchecked for OOM. Also fixed some random other bugs.
14002
14003         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14004         that strings are nul-terminated. Also, end_pos can be equal
14005         to string length just not greater than, I think.
14006         (_dbus_marshal_set_int32): new function
14007         (_dbus_marshal_set_uint32): new function
14008         (_dbus_marshal_set_string): new function
14009
14010         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14011         a warning, init timeout_list to NULL
14012         (dbus_connection_send_message): don't use uninitialized variable
14013         "serial"
14014
14015         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14016
14017 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14018
14019         * bus/driver.c: (bus_driver_handle_hello),
14020         (bus_driver_send_welcome_message):
14021         Plug leaks
14022
14023 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14024
14025         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14026         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14027         (dbus_connection_unref):
14028         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14029         * dbus/dbus-message.c: (dbus_message_unref),
14030         Plug memory leaks.
14031
14032         (dbus_message_get_fields):
14033         Remove debugging printout.
14034
14035         (_dbus_message_loader_return_buffer):
14036         Don't store the header string.
14037
14038         (_dbus_message_test):
14039         Plug leaks.
14040
14041 2003-01-26  Richard Hult  <rhult@codefactory.se>
14042
14043         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14044         the file descriptor list, since it can change under us.
14045
14046 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14047
14048         * glib/dbus-gmain.c: (dbus_connection_prepare),
14049         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14050         (remove_watch), (dbus_connection_hookup_with_g_main):
14051         Rewrite the glib handling to use its own GSource instead of a
14052         GIOChannel so we can catch messages put in the queue while waiting
14053         for a reply.
14054
14055 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14056
14057         * bus/Makefile.am:
14058         * bus/connection.c: (connection_disconnect_handler),
14059         (connection_watch_callback), (bus_connection_setup):
14060         * bus/dispatch.c: (send_one_message),
14061         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14062         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14063         * bus/dispatch.h:
14064         * bus/driver.c: (bus_driver_send_service_deleted),
14065         (bus_driver_send_service_created), (bus_driver_handle_hello),
14066         (bus_driver_send_welcome_message),
14067         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14068         (bus_driver_handle_message):
14069         * bus/driver.h:
14070         Refactor code, put the message dispatching in its own file. Use
14071         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14072         is disconnected.
14073
14074 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14075
14076         * dbus/dbus-internals.h:
14077         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14078
14079         * dbus/dbus-message.c: (dbus_message_get_sender):
14080         * dbus/dbus-message.h:
14081         Implement dbus_message_get_sender.
14082
14083         * dbus/dbus-protocol.h:
14084         Add message and service defines.
14085
14086 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14087
14088         * dbus/dbus-connection.c: (dbus_connection_send_message):
14089         * dbus/dbus-message-internal.h:
14090         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14091         (dbus_message_write_header):
14092         Remove _dbus_messag_unlock and don't set the client serial on a
14093         message if one already exists.
14094
14095 2003-01-24  Havoc Pennington  <hp@pobox.com>
14096
14097         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14098         list_pool
14099
14100         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14101         on OOM
14102
14103 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14104
14105         * dbus/dbus-list.c: (alloc_link), (free_link):
14106         Use a memory pool for the links.
14107
14108 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14109
14110         * bus/connection.c: (bus_connection_foreach):
14111         * bus/connection.h:
14112         Add new bus_connection_foreach function.
14113
14114         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14115         Add function that broadcasts a message to all clients.
14116
14117         (bus_driver_send_service_created), (bus_driver_handle_hello),
14118         (bus_driver_send_welcome_message),
14119         (bus_driver_handle_list_services), (bus_driver_message_handler):
14120         Implement functions that take care of listing services, and notifying
14121         clients when new services are created.
14122
14123         * bus/services.c: (bus_services_list):
14124         * bus/services.h:
14125         Add new function that returns an array of strings with the currently
14126         registered services.
14127
14128         * glib/dbus-glib.h:
14129         * glib/dbus-gmain.c:
14130         Update copyright year.
14131
14132 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14133
14134         * dbus/dbus-connection.c: (dbus_connection_send_message):
14135         Unlock the message in case it was sent earlier.
14136
14137         (dbus_connection_send_message_with_reply_and_block):
14138         Remove the reply message from the list.
14139
14140         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14141         Set array_len and new_pos correctly.
14142
14143         (_dbus_marshal_test):
14144         Remove debug output.
14145
14146         * dbus/dbus-message-internal.h:
14147         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14148         New function that returns the reply serial.
14149
14150         (_dbus_message_unlock):
14151         New function that unlocks a message and resets its header.
14152
14153         (dbus_message_append_string_array),
14154         (dbus_message_get_fields_valist),
14155         (dbus_message_iter_get_field_type),
14156         (dbus_message_iter_get_string_array),
14157         (dbus_message_get_fields),
14158         (dbus_message_append_fields_valist):
14159         Handle string arrays.
14160
14161         (dbus_message_set_sender):
14162         Make this function public since the bus daemon needs it.
14163
14164         (decode_header_data):
14165         Set the reply serial to -1 initially.
14166
14167         * dbus/dbus-message.h:
14168         Add dbus_message_set_sender.
14169
14170 2003-01-24  Havoc Pennington  <hp@pobox.com>
14171
14172         * doc/dbus-specification.sgml: add some stuff
14173
14174 2003-01-22  Havoc Pennington  <hp@pobox.com>
14175
14176         * doc/dbus-specification.sgml: Start to document the protocol.
14177
14178 2003-01-22  Havoc Pennington  <hp@pobox.com>
14179
14180         * dbus/dbus-connection.c
14181         (dbus_connection_send_message_with_reply_and_block): add some @todo
14182
14183         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14184
14185 2003-01-21  Havoc Pennington  <hp@pobox.com>
14186
14187         (patch untested because can't compile)
14188
14189         * bus/driver.c (create_unique_client_name): make this function
14190         never recycle client names. Also, caller should initialize
14191         the DBusString.
14192
14193         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14194
14195 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14196
14197         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14198         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14199         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14200         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14201         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14202         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14203         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14204         * dbus/dbus-marshal.h:
14205         * dbus/dbus-protocol.h:
14206         Add support for marshalling and demarshalling integer, double
14207         and string arrays.
14208
14209 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14210
14211         * bus/Makefile.am:
14212         Add driver.[ch]
14213
14214         * bus/connection.c: (connection_disconnect_handler):
14215         Remove the connection from the bus driver's list.
14216
14217         (connection_watch_callback): Dispatch messages.
14218
14219         (free_connection_data): Free connection name.
14220
14221         (bus_connection_setup): Add connection to the bus driver's list.
14222         (bus_connection_remove_owned_service):
14223         (bus_connection_set_name), (bus_connection_get_name):
14224         Add functions for setting and getting the connection's name.
14225
14226         * bus/connection.h:
14227         Add function headers.
14228
14229         * bus/driver.c: (create_unique_client_name),
14230         (bus_driver_handle_hello_message),
14231         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14232         (bus_driver_add_connection), (bus_driver_remove_connection):
14233         * bus/driver.h:
14234         * bus/main.c:
14235         * bus/services.c: (bus_service_free):
14236         * bus/services.h:
14237         New file that handles communication and registreation with the bus
14238         itself.
14239
14240 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14241
14242         * dbus/dbus-connection.c: (dbus_connection_send_message):
14243         Add a new client_serial parameter.
14244
14245         (dbus_connection_send_message_with_reply):
14246         Remove a @todo since we've implemented the blocking function.
14247
14248         (dbus_connection_send_message_with_reply_and_block):
14249         New function that sends a message and waits for a reply and
14250         then returns the reply.
14251
14252         * dbus/dbus-connection.h:
14253         Add new functions.
14254
14255         * dbus/dbus-errors.c: (dbus_result_to_string):
14256         * dbus/dbus-errors.h:
14257         Add new DBUS_RESULT.
14258
14259         * dbus/dbus-message-internal.h:
14260         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14261         (_dbus_message_set_sender), (dbus_message_write_header),
14262         (dbus_message_new_reply), (decode_header_data),
14263         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14264         * dbus/dbus-message.h:
14265         Add new functions that set the reply serial and sender.
14266         Also marshal and demarshal them correctly and add test.
14267
14268         * dbus/dbus-protocol.h:
14269         Add new DBUS_MESSAGE_TYPE_SENDER.
14270
14271         * glib/dbus-glib.h:
14272         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14273         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14274         (dbus_connection_hookup_with_g_main):
14275         * glib/test-dbus-glib.c: (main):
14276         Rewrite to use GIOChannel and remove the GSource crack.
14277
14278         * test/echo-client.c: (main):
14279         * test/watch.c: (check_messages):
14280         Update for changed APIs
14281
14282 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14283
14284         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14285
14286         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14287         Create a DBusTimeoutList.
14288         (dbus_connection_set_timeout_functions): Add new function to
14289         set timeout callbacks
14290
14291         * dbus/dbus-connection.h: Add public DBusTimeout API.
14292
14293         * dbus/dbus-message.c: (dbus_message_get_service):
14294         * dbus/dbus-message.h:  New function.
14295
14296         * dbus/dbus-server.c: Fix small doc typo.
14297
14298         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14299
14300 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14301
14302         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14303         of the string, just as long as specified.
14304
14305 2003-01-19  Havoc Pennington  <hp@pobox.com>
14306
14307         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14308         new function
14309
14310         * dbus/dbus-server.c (dbus_server_set_max_connections)
14311         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14312         keep track of current number of connections, and add API for
14313         setting a max (but haven't implemented enforcing the max yet)
14314
14315 2003-01-18  Havoc Pennington  <hp@pobox.com>
14316
14317         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14318         reading/writing if read_watch != NULL or write_watch != NULL.
14319
14320         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14321         the message loader code to actually load message->header and
14322         message->body into the newly-created message.
14323
14324         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14325         in OOM case
14326
14327         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14328         (dbus_connection_get_max_message_size)
14329         (dbus_connection_set_max_live_messages_size)
14330         (dbus_connection_get_max_live_messages_size): implement some
14331         resource limitation functions
14332
14333         * dbus/dbus-resources.c: new file implementing some of the
14334         resource limits stuff
14335
14336         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14337         missing docs, add @todo to handle OOM etc.
14338
14339         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14340         docs
14341
14342 2003-01-18  Havoc Pennington  <hp@pobox.com>
14343
14344         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14345         connection if it hasn't been already.
14346
14347         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14348         replace with DisconnectFunction.
14349
14350 2003-01-18  Havoc Pennington  <hp@pobox.com>
14351
14352         Building --disable-verbose-mode --disable-asserts --disable-tests
14353         cuts the library from 112K to 45K or so
14354
14355         * configure.in: check for varargs macro support,
14356         add --enable-verbose-mode, --enable-asserts.
14357
14358         * dbus/dbus-internals.h (_dbus_assert): support
14359         DBUS_DISABLE_ASSERT
14360         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14361
14362 2003-01-18  Havoc Pennington  <hp@pobox.com>
14363
14364         * dbus/dbus-test.c: include config.h so that tests actually run
14365
14366         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14367         so the failure mode when that assumption fails will be plenty
14368         obvious.
14369
14370 2003-01-18  Havoc Pennington  <hp@pobox.com>
14371
14372         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14373
14374         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14375         the distribution
14376
14377         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14378         since we don't want to use those in make check
14379
14380 2003-01-15  Havoc Pennington  <hp@redhat.com>
14381
14382         Release 0.2
14383
14384         * NEWS: update
14385
14386 2003-01-15  Havoc Pennington  <hp@redhat.com>
14387
14388         * test/Makefile.am: fix so that test source code ends up in the
14389         distribution on make distcheck
14390
14391 2003-01-15  Havoc Pennington  <hp@redhat.com>
14392
14393         Release 0.1.
14394
14395         * NEWS: update
14396
14397 2003-01-15  Havoc Pennington  <hp@redhat.com>
14398
14399         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14400         fix build when --disable-tests
14401
14402         * Makefile.am (EXTRA_DIST): put HACKING in here
14403
14404         * HACKING: document procedure for making a tarball release.
14405
14406 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14407
14408         * bus/connection.c: (connection_error_handler),
14409         (bus_connection_setup):
14410         * bus/main.c: (main):
14411         Make sure that the DBusConnectionData struct is NULLed
14412         out to prevent a segfault.
14413
14414         * dbus/dbus-errors.c: (dbus_result_to_string):
14415         * dbus/dbus-errors.h:
14416         * dbus/dbus-message.c: (dbus_message_get_fields),
14417         (dbus_message_get_fields_valist), (_dbus_message_test):
14418         * dbus/dbus-message.h:
14419         Make dbus_message_get_fields return a result code so we can
14420         track invalid fields as well as oom.
14421
14422 2003-01-11  Havoc Pennington  <hp@pobox.com>
14423
14424         * configure.in: change --enable-test/--enable-ansi action-if-given
14425         to enable_foo=$enableval instead of enable_foo=yes
14426
14427 2003-01-08  Havoc Pennington  <hp@pobox.com>
14428
14429         * dbus/dbus-string.c (_dbus_string_align_length): new function
14430
14431         * dbus/dbus-test-main.c: move main() for test app here
14432         * dbus/dbus-test.c
14433         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14434         symbol to run tests, because dbus-test isn't in the main
14435         library
14436
14437         Code review nitpicks.
14438
14439         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14440         for people with narrow emacs ;-). Assert client_serial was filled
14441         in. Assert message->name != NULL.
14442         (dbus_message_append_fields): have "first_field_type" arg separate
14443         from va list, needed for C++ binding that also uses varargs IIRC
14444         and helps with type safety
14445         (dbus_message_new): add @todo about using DBusString to store
14446         service/name internally
14447         (dbus_message_new): don't leak ->service and ->name on OOM later
14448         in the function
14449         (dbus_message_unref): free the service name
14450         (dbus_message_get_fields): same change to varargs
14451         i.e. first_field_type
14452         (_dbus_message_loader_return_buffer): assert that the message data
14453         is aligned (if not it's a bug in our code). Put in verbose griping
14454         about why we set corrupted = TRUE.
14455         (decode_header_data): add FIXME that char* is evil.  Was going to
14456         add FIXME about evil locale-specific string.h strncmp, but just
14457         switched to wacky string-as-uint32 optimization. Move check for
14458         "no room for field name" above get_const_data_len() to avoid
14459         assertion failure in get_const_data_len if we have trailing 2
14460         bytes or the like. Check for service and name fields being
14461         provided twice. Don't leak service/name on error. Require field
14462         names to be aligned to 4 bytes.
14463
14464         * dbus/dbus-marshal.c: move byte swap stuff to header
14465         (_dbus_pack_int32): uscore-prefix
14466         (_dbus_unpack_int32): uscore-prefix
14467         (_dbus_unpack_uint32): export
14468         (_dbus_demarshal_string): add @todo complaining about use of
14469         memcpy()
14470         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14471         handling allowing corrupt data to go unchecked
14472
14473 2003-01-08  Havoc Pennington  <hp@redhat.com>
14474
14475         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14476         to the select() as needed for authentication. (should be using
14477         _dbus_poll() not select, but for another day)
14478
14479         * dbus/dbus.h: include dbus/dbus-protocol.h
14480
14481 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14482
14483         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14484         dbus-connection.h
14485
14486 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14487
14488         * dbus/dbus-internals.c: (_dbus_type_to_string):
14489         New function that returns a string describing a type.
14490
14491         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14492         * dbus/dbus-marshal.h:
14493         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14494         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14495         (dbus_message_iter_get_byte_array):
14496         * dbus/dbus-message.h:
14497         Add new convenience functions for appending and getting message fields.
14498         Also add demarshalling routines for byte arrays.
14499
14500 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14501
14502         * dbus/dbus-connection-internal.h:
14503         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14504         (_dbus_connection_get_next_client_serial),
14505         (dbus_connection_send_message):
14506         * dbus/dbus-internals.h:
14507         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14508         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14509         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14510         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14511         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14512         (_dbus_verbose_bytes), (_dbus_marshal_test):
14513         * dbus/dbus-marshal.h:
14514         * dbus/dbus-message-internal.h:
14515         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14516         (dbus_message_write_header), (_dbus_message_lock),
14517         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14518         (dbus_message_get_name), (dbus_message_append_int32),
14519         (dbus_message_append_uint32), (dbus_message_append_double),
14520         (dbus_message_append_string), (dbus_message_append_byte_array),
14521         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14522         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14523         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14524         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14525         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14526         (decode_header_data), (_dbus_message_loader_return_buffer),
14527         (message_iter_test), (_dbus_message_test):
14528         * dbus/dbus-message.h:
14529         * dbus/dbus-protocol.h:
14530         * dbus/dbus-test.c: (main):
14531         * dbus/dbus-test.h:
14532         * glib/test-dbus-glib.c: (message_handler), (main):
14533         * test/echo-client.c: (main):
14534         * test/watch.c: (check_messages):
14535         Make messages sendable and receivable for real.
14536
14537 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14538
14539         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14540         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14541         * dbus/dbus-message.c: (dbus_message_append_int32),
14542         (dbus_message_append_uint32), (dbus_message_append_double),
14543         (dbus_message_append_string), (dbus_message_append_byte_array):
14544         Handle OOM restoration.
14545
14546 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14547
14548         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14549         (_dbus_demarshal_string), (_dbus_marshal_test):
14550         * dbus/dbus-marshal.h:
14551         * dbus/dbus-message.c: (dbus_message_get_name),
14552         Document these functions.
14553
14554         (dbus_message_append_int32), (dbus_message_append_uint32),
14555         (dbus_message_append_double), (dbus_message_append_string),
14556         (dbus_message_append_byte_array):
14557         * dbus/dbus-message.h:
14558         Add functions for adding message fields of different types.
14559
14560         * dbus/dbus-protocol.h:
14561         Add the different types.
14562
14563 2003-01-05  Havoc Pennington  <hp@pobox.com>
14564
14565         * bus/connection.c: implement routines for handling connections,
14566         first thing is keeping a list of owned services on each connection
14567         and setting up watches etc.
14568
14569         * bus/services.c: implement a mapping from service names to lists
14570         of connections
14571
14572         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14573
14574         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14575         to use static mutexes for global data
14576
14577         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14578         collection of functions to set/get application-specific data
14579         on the DBusConnection.
14580
14581 2003-01-04  Havoc Pennington  <hp@pobox.com>
14582
14583         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14584         (_dbus_poll): new function
14585
14586         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14587         copied from GLib
14588
14589         * bus/loop.c: initial code for the daemon main loop
14590
14591 2003-01-04  Havoc Pennington  <hp@pobox.com>
14592
14593         * test/watch.c (error_handler): make it safe if the error handler
14594         is called multiple times (if we s/error handler/disconnect
14595         handler/ we should just guarantee it's called only once)
14596
14597         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14598         error handler on disconnect (it's quite possible we should
14599         just change the error handler to a "disconnect handler," I'm
14600         not sure we have any other meaningful errors)
14601
14602         * configure.in: check for getpwnam_r
14603
14604         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14605         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14606         mechanism as in SASL spec, using socket credentials
14607
14608         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14609         (_dbus_send_credentials_unix_socket): new function
14610
14611         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14612         dbus_accept()
14613         (_dbus_write): only check errno if <0 returned
14614         (_dbus_write_two): ditto
14615
14616 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14617
14618         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14619         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14620         (_dbus_marshal_test):
14621         * dbus/dbus-marshal.h:
14622         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14623         to _dbus_marshal_utf8_string. Also fix some tests.
14624
14625 2002-12-28  Harri Porten  <porten@kde.org>
14626
14627         * configure.in: added check for C++ compiler and a very cheesy
14628         check for the Qt integration
14629
14630         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14631
14632         * qt/Makefile.am: added
14633
14634         * qt/.cvsignore: added
14635
14636         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14637         latter, added #ifdef QT_THREAD_SUPPORT guard.
14638
14639         * dbus/Makefile.am: added missing headers for make dist
14640
14641 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14642
14643         * dbus/Makefile.am: fixup export-symbols-regex.
14644
14645 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14646
14647         * acinclude.m4: Add this file and put the
14648         PKG_CHECK_MODULE macro in it.
14649
14650 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14651
14652         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14653         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14654         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14655         (_dbus_marshal_test):
14656         Make the demarshalling routines align the pos argument.
14657         Add string marshalling tests and fix the obvious bugs
14658         discovered.
14659
14660 2002-12-26  Havoc Pennington  <hp@pobox.com>
14661
14662         * dbus/dbus-auth.c: fixes fixes fixes
14663
14664         * dbus/dbus-transport-unix.c: wire up support for
14665         encoding/decoding data on the wire
14666
14667         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14668         (_dbus_auth_decode_data): append to target string
14669         instead of nuking it.
14670
14671 2002-12-26  Havoc Pennington  <hp@pobox.com>
14672
14673         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14674         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14675         doh
14676
14677         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14678         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14679         now). Main point is because I wanted unpack_uint32 to implement
14680         _dbus_verbose_bytes
14681         (_dbus_verbose_bytes): new function
14682
14683         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14684
14685         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14686         mechanism to handle a corrupt message stream
14687         (_dbus_message_loader_new): fix preallocation to only prealloc,
14688         not prelengthen
14689
14690         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14691         (_dbus_string_test): enhance tests for copy/move and fix the
14692         functions
14693
14694         * dbus/dbus-transport-unix.c: Hold references in more places to
14695         avoid reentrancy problems
14696
14697         * dbus/dbus-transport.c: ditto
14698
14699         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14700         leak reference count in no-message case
14701
14702         * test/watch.c (do_mainloop): handle adding/removing watches
14703         during iteration over the watches. Also, ref the connection/server
14704         stored on a watch, so we don't try to mangle a destroyed one.
14705
14706         * dbus/dbus-transport-unix.c (do_authentication): perform
14707         authentication
14708
14709         * dbus/dbus-auth.c (get_state): add a state
14710         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14711         (_dbus_auth_get_unused_bytes): append the unused bytes
14712         to the passed in string, rather than prepend
14713
14714         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14715         the auth conversation DBusAuth
14716
14717         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14718         (_dbus_transport_new_for_domain_socket): when creating a
14719         transport, pass in whether it's a client-side or server-side
14720         transport so we know which DBusAuth to create
14721
14722 2002-12-03  Havoc Pennington  <hp@pobox.com>
14723
14724         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14725         _after_ finalizing the derived members
14726         (unix_connection_set): unref watch if we fail to add it
14727
14728         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14729         transport first, so that the connection owned by the
14730         transport will be valid as the transport finalizes.
14731
14732         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14733         if necessary, and remove watches from the connection.
14734
14735         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14736
14737 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14738
14739         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14740         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14741         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14742         (_dbus_marshal_test):
14743         * dbus/dbus-marshal.h:
14744         Add string marshal functions and have the demarshal functions
14745         return the new position.
14746
14747 2002-12-25  Havoc Pennington  <hp@pobox.com>
14748
14749         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14750         it is a simple protocol that just maps directly to SASL.
14751
14752         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14753         initial implementation, not actually used yet.
14754
14755         * dbus/dbus-string.c (_dbus_string_find): new function
14756         (_dbus_string_equal): new function
14757         (_dbus_string_base64_encode): new function
14758         (_dbus_string_base64_decode): new function
14759
14760 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14761
14762         * dbus/Makefile.am:
14763         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14764         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14765         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14766         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14767         * dbus/dbus-marshal.h:
14768         * dbus/dbus-protocol.h:
14769         * dbus/dbus-test.c: (main):
14770         * dbus/dbus-test.h:
14771         Add un-optimized marshalling/demarshalling routines.
14772
14773 2002-12-25  Harri Porten  <porten@kde.org>
14774
14775         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14776
14777 2002-12-24  Zack Rusin  <zack@kde.org>
14778
14779         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14780         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14781         main loop stuff
14782
14783 2002-12-24  Havoc Pennington  <hp@pobox.com>
14784
14785         * glib/dbus-gthread.c: fix include
14786
14787         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14788         I think glib API needs to change, though, as you don't
14789         want to use DBusMessageFunction, you want to use the
14790         DBusMessageHandler object. Probably
14791         dbus_connection_open_with_g_main_loop()
14792         and dbus_connection_setup_g_main_loop() or something like that
14793         (but think of better names...) that just create a connection
14794         that has watch/timeout functions etc. already set up.
14795
14796         * dbus/dbus-connection.c
14797         (dbus_connection_send_message_with_reply): new function just to
14798         show how the message handler helps us deal with replies.
14799
14800         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14801
14802         * dbus/dbus-string.c (_dbus_string_test): free a string that
14803         wasn't
14804
14805         * dbus/dbus-hash.c: use memory pools for the hash entries
14806         (rebuild_table): be more paranoid about overflow, and
14807         shrink table when we can
14808         (_dbus_hash_test): reduce number of sprintfs and write
14809         valid C89. Add tests for case where we grow and then
14810         shrink the hash table.
14811
14812         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14813
14814         * dbus/dbus-connection.c (dbus_connection_register_handler)
14815         (dbus_connection_unregister_handler): new functions
14816
14817         * dbus/dbus-message.c (dbus_message_get_name): new
14818
14819         * dbus/dbus-list.c: fix docs typo
14820
14821         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14822         an object representing a handler for messages.
14823
14824 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14825
14826         * glib/dbus-glib.h:
14827         * glib/dbus-gthread.c: (dbus_gthread_init):
14828         Don't use the gdbus prefix for public functions.
14829
14830 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14831
14832         * Makefile.am:
14833         * configure.in:
14834         Add GLib checks and fixup .pc files
14835
14836         * glib/Makefile.am:
14837         * glib/dbus-glib.h:
14838         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14839         (gdbus_connection_check), (gdbus_connection_dispatch),
14840         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14841         (dbus_connection_gsource_new):
14842         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14843         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14844         * glib/test-dbus-glib.c: (message_handler), (main):
14845         Add GLib support.
14846
14847 2002-12-15  Harri Porten  <porten@kde.org>
14848
14849         * autogen.sh: check for libtoolize before attempting to use it
14850
14851         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14852         struct.
14853
14854         * .cvsignore: ignore more stamp files
14855
14856         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14857
14858         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14859         without make install.
14860
14861 2002-12-15  Havoc Pennington  <hp@pobox.com>
14862
14863         * dbus/dbus-threads.c: add thread stubs that a higher library
14864         layer can fill in. e.g. the GLib wrapper might fill them in with
14865         GThread stuff. We still need to use this thread API to
14866         thread-safe-ize the library.
14867
14868 2002-12-12  Havoc Pennington  <hp@pobox.com>
14869
14870         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14871         below new interfaces and include fewer system headers.
14872
14873         * dbus/dbus-sysdeps.c (_dbus_read): new function
14874         (_dbus_write): new function
14875         (_dbus_write_two): new function
14876         (_dbus_connect_unix_socket): new function
14877         (_dbus_listen_unix_socket): new function
14878
14879         * dbus/dbus-message-internal.h: change interfaces to use
14880         DBusString
14881
14882 2002-12-11  Havoc Pennington  <hp@pobox.com>
14883
14884         * dbus/dbus-types.h: add dbus_unichar
14885
14886         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14887
14888         * dbus/dbus-connection.c (dbus_connection_send_message): return
14889         TRUE on success
14890
14891         * dbus/dbus-transport.c: include dbus-watch.h
14892
14893         * dbus/dbus-connection.c: include dbus-message-internal.h
14894
14895         * HACKING: add file with coding guidelines stuff.
14896
14897         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14898         handling here, for security purposes (as in vsftpd). Not actually
14899         using this class yet.
14900
14901         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14902         system/libc usage here, as in vsftpd, for ease of auditing (and
14903         should also simplify portability). Haven't actually moved all the
14904         system/libc usage into here yet.
14905
14906 2002-11-25  Havoc Pennington  <hp@pobox.com>
14907
14908         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14909         always print the first verbose message.
14910
14911 2002-11-24  Havoc Pennington  <hp@pobox.com>
14912
14913         * test/echo-client.c, test/echo-server.c: cheesy test
14914         clients.
14915
14916         * configure.in (AC_CHECK_FUNCS): check for writev
14917
14918         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14919         function
14920
14921         * dbus/dbus-list.c (_dbus_list_foreach): new function
14922
14923         * dbus/dbus-internals.c (_dbus_verbose): new function
14924
14925         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14926         representing a server that listens for connections.
14927
14928         * dbus/.cvsignore: create
14929
14930         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14931         public API for reporting errors
14932
14933         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14934         public object representing a connection that
14935         sends/receives messages. (Same object used for
14936         both client and server.)
14937
14938         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14939         Basic abstraction for different kinds of stream
14940         that we might read/write messages from.
14941
14942 2002-11-23  Havoc Pennington  <hp@pobox.com>
14943
14944         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14945         _DBUS_INT_MAX
14946
14947         * dbus/dbus-test.c (main): add list test, and include
14948         dbus-test.h as intended
14949
14950         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14951         (_dbus_hash_table_remove_int): return value indicates
14952         whether the entry existed to remove
14953
14954         * dbus/dbus-list.c: add linked list utility class,
14955         with docs and tests
14956
14957         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14958         array sometimes.
14959
14960 2002-11-23  Havoc Pennington  <hp@pobox.com>
14961
14962         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14963         DBUS_END_DECLS to nothing, that should fix this once and for all
14964
14965         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14966
14967         * dbus/dbus-message.c, dbus/dbus-hash.c:
14968         add some missing @brief
14969
14970 2002-11-23  Havoc Pennington  <hp@pobox.com>
14971
14972         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14973         to avoid confusing Doxygen
14974
14975         * dbus/dbus-hash.c: @} not }@
14976
14977         * dbus/dbus-message.c (struct DBusMessage): split out
14978         internals docs
14979
14980 2002-11-23  Havoc Pennington  <hp@pobox.com>
14981
14982         * configure.in: pile on more warning flags if using gcc
14983
14984         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14985         to document static functions
14986
14987         * configure.in: add summary to end of configure so it
14988         looks nice and attractive
14989
14990         * dbus/dbus-hash.c: finish implementation and write unit
14991         tests and docs
14992
14993         * configure.in: add --enable-tests to enable unit tests
14994
14995         * dbus/dbus-test.c: test program to run unit tests
14996         for all files in dbus/*, initially runs a test for
14997         dbus-hash.c
14998
14999         * dbus/dbus-internals.h: file to hold some internal utility stuff
15000
15001 2002-11-22  Havoc Pennington  <hp@redhat.com>
15002
15003         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15004         "ported" away from Tcl
15005
15006         * dbus/dbus-types.h: header for types such as dbus_bool_t
15007
15008 2002-11-22  Havoc Pennington  <hp@redhat.com>
15009
15010         * dbus/dbus.h: fixups for doc warnings
15011
15012         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15013         macros
15014         (QUIET): make it quiet so we can see warnings
15015
15016         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15017
15018 2002-11-22  Havoc Pennington  <hp@redhat.com>
15019
15020         * Makefile.am: include "Doxyfile" target in all-local
15021
15022         * configure.in: generate the Doxyfile
15023
15024         * Doxyfile.in: move Doxyfile here, so we can use
15025         configure to generate a Doxyfile with the right
15026         version number etc.
15027
15028 2002-11-22  Havoc Pennington  <hp@redhat.com>
15029
15030         * dbus/dbus-message.c: move inline docs into .c file
15031
15032         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15033         so all docs are under doc/
15034         (MAN_EXTENSION): generate man pages. Use extension
15035         ".3dbus" which matches ".3qt" on my system,
15036         I guess this is OK, I don't know really.
15037         (FILE_PATTERNS): look for .c files not .h, makes sense
15038         for plain C I think
15039
15040 2002-11-22  Havoc Pennington  <hp@pobox.com>
15041
15042         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15043         because any app can be a server, and any app can be a client,
15044         the bus is a special kind of server.
15045
15046 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15047
15048         * Doxyfile : adding. Still needs Makefile rules to be generated
15049         automatically (just run "doxygen" in the toplevel dir for now to
15050         generate docs)
15051
15052         * dbus/dbus-message.h : Adding sample docs (javadoc since
15053         resembles gtk-doc a little more)
15054
15055         * dbus/dbus.h : Adding sample docs
15056
15057 2002-11-21  Havoc Pennington  <hp@redhat.com>
15058
15059         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15060         so we can allow ourselves to include files directly,
15061         instead of having to use dbus.h
15062
15063         * dbus/dbus.h: fill in
15064
15065         * dbus/dbus-message.h: sketch out a sample header file.
15066         Include griping if you include it directly instead of
15067         via dbus.h
15068
15069         * dbus/dbus-macros.h: new file with macros for extern "C",
15070         TRUE/FALSE, NULL, etc.
15071
15072         * doc/file-boilerplate.c: put include guards in here
15073
15074 2002-11-21  Havoc Pennington  <hp@redhat.com>
15075
15076         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15077
15078         * COPYING: include the GPL as well, and license code
15079         under both AFL and GPL.
15080
15081 2002-11-21  Havoc Pennington  <hp@redhat.com>
15082
15083         * acconfig.h: get rid of this
15084
15085         * autogen.sh (run_configure): add --no-configure option
15086
15087         * configure.in: remove AC_ARG_PROGRAM to make
15088         autoconf complain less. add AC_PREREQ.
15089         add AC_DEFINE third arg.
15090
15091 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15092
15093         * doc/Makefile.am:
15094         Fix references so we can distcheck.
15095
15096 2002-11-21  Havoc Pennington  <hp@redhat.com>
15097
15098         * Initial module creation
15099