* configure.in: Add a check for DIR *dirp->dd_fd
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
2
3         * configure.in: Add a check for DIR *dirp->dd_fd
4
5         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
6         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
7         of both Solaris and Irix
8
9 2006-11-01  Havoc Pennington  <hp@redhat.com>
10
11         * bus/dbus-daemon.1.in: document standard_session_servicedirs
12
13 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
14
15         * configure.in: expose DBUS_DATADIR
16         
17         * bus/config-parser.c: add the standard_session_servicedirs element
18         to the parser
19         (bus_config_parser_content): process the standard_session_servicedirs
20         element by getting the standard directories from sysdeps and merging
21         them into the service directory list
22         (test_default_session_servicedirs): make sure we get what we expect
23
24         * bus/session.conf.in: replace the servicedir tag with the 
25         standard_session_servicedirs tag
26
27         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
28         dbus-sysdeps.h to avoid circular header dependencies
29
30         * dbus/dbus-sysdeps.h: add the typedef of DBusList
31
32         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
33         which takes a string of directories delimited by colons, parses them 
34         out, appends a suffix and puts them in a list ignoring empty elements
35         (_dbus_get_standard_session_servicedirs): returns the standard 
36         directories for a session bus to look for service activation files
37         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
38         DBUS_DATADIR directories
39
40         * test/data/valid-config-files/many-rules.conf: add the 
41         standard_session_servicedirs tag to the valid config file tests
42
43 2006-10-30  Havoc Pennington  <hp@redhat.com>
44
45         * tools/dbus-launch.1, doc/TODO: capture intent to change the
46         command line options of dbus-launch a bit post 1.0
47
48 2006-10-27  Havoc Pennington  <hp@redhat.com>
49         
50         * dbus/dbus-connection.c (dbus_connection_open_private): document
51         how to choose shared vs. private connections
52
53 2006-10-27  Havoc Pennington  <hp@redhat.com>
54
55         * dbus/dbus-test.c: enclose more of the file in the
56         DBUS_BUILD_TESTS check.
57
58         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
59         DBUS_DISABLE_ASSERT case.
60
61         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
62         that it only works on the server side
63
64         * dbus/dbus-bus.c: add a global lock covering the BusData we
65         attach to each connection
66         (internal_bus_get): lock our access to the BusData
67         (dbus_bus_register): lock the entire registration process
68         with _DBUS_LOCK(bus_datas). If we get the lock and 
69         registration is already complete, silently return (vs. previous
70         behavior of aborting).
71         (dbus_bus_set_unique_name): lock the BusData
72         (dbus_bus_get_unique_name): lock the BusData
73
74 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
75
76         * bus/config-parser.c (service_dirs_find_dir, 
77         service_dirs_append_unique_or_free, 
78         service_dirs_append_link_unique_or_free): New static methods
79         for only appending unique service directory names into
80         the service directory list
81         (merge_included, bus_config_parser_content): Only add unique
82         service directory names into the list
83
84 2006-10-27  Havoc Pennington  <hp@redhat.com>
85
86         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
87         variables volatile, suggested by Thiago. Document struct fields.
88         (PTHREAD_CHECK): remove pthread error checking if assertions are
89         disabled, should reduce the no-assertions case to the bare
90         minimum code.
91
92 2006-10-26  Havoc Pennington  <hp@redhat.com>
93         
94         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
95         to be recursive
96         (_dbus_pthread_mutex_unlock): make it recursive
97         (_dbus_pthread_condvar_wait): save/restore the recursion count
98         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
99
100 2006-10-26  Havoc Pennington  <hp@redhat.com>
101
102         * doc/dbus-specification.xml: clarify the UUID text slightly
103
104         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
105         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
106         in preparation for being able to extend them for e.g. recursive
107         mutexes.
108
109 2006-10-26  Havoc Pennington  <hp@redhat.com>
110
111         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
112         condition variables relate to recursive mutexes.
113         
114         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
115         dbus/dbus-threads.c: Split the platforms-specific thread 
116         implementations into their own files.
117         
118         * dbus/dbus-sysdeps-pthread.c
119         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
120         was backward. Not that anything uses it.
121
122 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
123
124         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
125         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
126         needs to be cleaned up more.
127
128         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
129         up the CREDS issue.
130
131 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
132
133         * configure.in, dbus-1.pc.in: Check to see if thread methods 
134         are in glibc or libpthread and add -lpthread to the link stage 
135         if it is the latter
136
137 2006-10-26  Thiago Macieira  <thiago@kde.org>
138
139         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
140         bug 8780: the connection lock is only required while recording
141         the shared connection, so protect only that code
142         section. Don't require connection_lookup_shared to return a
143         locked connection.
144
145 2006-10-26  Thiago Macieira  <thiago@kde.org>
146
147         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
148         check if get_machine_uuid() returns NULL before proceeding any
149         further: we can't init the X atoms or create a session file
150         name if there is no machine ID.
151         This solves a crash reported by some users if
152         --exit-with-session was used without --autolaunch=<machine-id>
153
154 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
155
156         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
157         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
158
159         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
160         before we run dbus-launch
161
162         * configure.in: define TEST_BUS_BINARY to be the full path to 
163         dbus-daemon in the build root 
164
165 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
166
167         * dbus/Makefile.am:
168         * tools/Makefile.am:
169         * toos/dbus-uuidgen.1:
170                 Move the machine-id file to /var/lib/dbus 
171
172 2006-10-24  David Zeuthen  <davidz@redhat.com>
173
174         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
175         _dbus_assert (thread_init_generation != _dbus_current_generation)
176         not _dbus_assert (thread_init_generation == _dbus_current_generation)
177
178 2006-10-24  Thiago Macieira  <thiago@kde.org>
179
180         * dbus/dbus-sysdeps.h:
181         * dbus/dbus-sysdeps-unix.c: Add function
182         _dbus_make_file_world_readable that chmods a file to 0644.
183
184         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
185         Avoid writing to the static "argv" array, thereby avoiding a
186         COW on the child process.
187
188         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
189         call _dbus_make_file_world_readable on the created file.
190
191 2006-10-23  David Zeuthen  <davidz@redhat.com>
192
193         * dbus/dbus-memory.c: Use atomic variable to protect
194         n_blocks_outstanding otherwise OOM will be reported using SMP on
195         some arches
196         
197         * bus/dispatch.c: Add missing end of line characters
198
199         * bus/desktop-file.c (parse_section_start, parse_key_value) 
200         (bus_desktop_file_load): Propertly handle OOM
201
202         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
203         thread_init_generation equals _dbus_current_generation, not 0
204
205 2006-10-22  Havoc Pennington  <hp@redhat.com>
206
207         * dbus/dbus-connection-internal.h: move prototype of
208         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
209         it isn't in a public header and doesn't end up in the DBusBus
210         group in Doxygen
211
212 2006-10-21  Havoc Pennington  <hp@redhat.com>
213
214         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
215         the tarball if packagers want to run it
216
217         * cleanup-man-pages.sh: Add a script which munges all the internal
218         API man pages out of the Doxygen output. This reduces the size of
219         the installed man pages from 7 to 2 megs, and avoids
220         namespace-polluting pages. Right now (like Doxygen) this script
221         isn't in the build, it's something packagers can do manually.
222
223 2006-10-21  Havoc Pennington  <hp@redhat.com>
224
225         * dbus/dbus-connection.h: don't include the watch/timeout
226         functions in connection section
227
228 2006-10-21  Havoc Pennington  <hp@redhat.com>
229
230         * Documentation! Whee! Doxygen now 100% silent. If you make it
231         angry again, you will be punished.
232         
233 2006-10-21  Havoc Pennington  <hp@redhat.com>
234
235         * More documentation - all public API now documented according to
236         Doxygen
237
238 2006-10-21  Havoc Pennington  <hp@redhat.com>
239
240         * Document a bunch of undocumented stuff
241         
242 2006-10-21  Havoc Pennington  <hp@redhat.com>
243
244         * Clean up Doxygen group markers for public API so Doxygen finds
245         everything (not comprehensively fixed for private API).
246         Means all remaining Doxygen warnings are just about missing docs
247         and thus pretty simple to resolve.
248         
249 2006-10-21  Havoc Pennington  <hp@redhat.com>
250         
251         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
252
253         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
254         as DBUS_GNUC_DEPRECATED
255
256 2006-10-21  Havoc Pennington  <hp@redhat.com>
257
258         * Move all private API into the private Doxygen group sections of
259         the files, so they don't show up in the public API docs
260         
261 2006-10-21  Havoc Pennington  <hp@redhat.com>
262
263         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
264         dbus_message_iter_get_array_len().
265
266         * throughout: documentation improvements.
267
268 2006-10-20  Havoc Pennington  <hp@redhat.com>
269
270         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
271         matter, and the message-loader-breaker thing since nobody is going
272         to do it.  Add an item to 1.0 about supporting recursive locks
273         in dbus_threads_init_default() though, since it should be easy.
274
275         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
276         Fix this in the !dispatch case to avoid busy-looping after
277         disconnection
278
279         * More misc docs improvements
280
281 2006-10-19  Havoc Pennington  <hp@redhat.com>
282
283         * more Doxygen-related fixes (lots of moving things from the
284         public to internal section in dbus-connection.c)
285
286 2006-10-19  Havoc Pennington  <hp@redhat.com>
287
288         * Fix a pile of Doxygen warnings and missing docs
289
290 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
291
292         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
293         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
294         instead of a void *.  kqueue uses this to get the context's loop
295         while the other modules ignore the parameter.  This allows us to
296         avoid platform conditionals
297
298         * bus/bus.c (process_config_postinit): Pass in the context to the 
299         watch
300
301 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
302
303         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
304         when starting the system bus
305
306 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
307
308         * configure.in: More fixups for cross compile (Patch from 
309         Marco Pracucci <development at pracucci dot com>)
310
311 2006-10-17  Havoc Pennington  <hp@redhat.com>
312
313         * tools/dbus-send.c (main): don't close shared connection, fix
314         from Timo Hoenig
315
316 2006-10-17  Havoc Pennington  <hp@redhat.com>
317
318         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
319
320         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
321         since realistically it doesn't look like we'll be changing it
322         anymore.
323
324 2006-10-17  Havoc Pennington  <hp@redhat.com>
325
326         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
327         be used for return_if_fail type warnings; prefixes the pid, and
328         fatal by default.
329
330 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
331
332         * configure.in: Released 1.0 RC 2(0.94)
333         Add check for -fPIC and enable it if available
334
335 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
336
337         * doc/TODO: Remove the check TODO item
338
339 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
340
341         * dbus-transport-socket.c (exchange_credentials):
342         Print out more detailed errors if reading or sending
343         credentials fail (Patch from Julio M. Merino Vidal 
344         <jmmv at NetBSD dot org>)
345
346 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
347
348         * configure.in: when checking for posix getpwnam_r assume true
349         for cross compiles
350
351 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
352
353         * configure.in: Check for gethostbyname first before we check for it
354         in libnsl.  On gnu systems it is implemeneted 
355
356 2006-10-13  Havoc Pennington  <hp@redhat.com>
357
358         * dbus/dbus-connection.c
359         (dbus_connection_send_with_reply_and_block): fix to handle closed
360         connections, from Tambet Ingo bug #8631
361
362 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
363
364         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
365
366 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
367
368         * test/name-test/Makefile.am: don't link against both libdbus and
369         libdbus-convenience
370
371 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
372
373         * configure.in: check for dirfd even if it is a macro
374         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
375
376 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
377
378         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
379         avoid using dirfd on systems that don't have dirfd 
380         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
381
382 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
383
384         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
385         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
386
387         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
388         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
389         macro because _dbus_abort calls it
390
391         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
392         works
393
394 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
395
396         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
397         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
398
399 2006-10-02  Thiago Macieira  <thiago@kde.org>
400
401         * tools/dbus-launch.c (main): make it complain and abort
402         execution in case an unknown option is given. Also, process
403         the '--' argument as the end of arguments.
404
405 2006-10-01  Havoc Pennington  <hp@redhat.com>
406
407         * tools/dbus-launch.c (print_variables): if no syntax is given,
408         don't print something that's sort-of-half-sh-syntax, just print
409         a plain key-value pairs thing.
410
411         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
412         the local machine representation (but still have the hostname in
413         the display). Remove the hostname from the display if it is
414         localhost. Change session files to be named
415         ~/.dbus/session-bus/machine-display. Change X atoms to be
416         underscore-prefixed so nobody whines about ICCCM compliance.
417         Otherwise name them the same as the env variables.
418         Change session file format to include key-value pairs and an
419         explanatory comment. Keys are the same as the env variables.
420         (set_address_in_x11): X property format can't depend on
421         sizeof(pid_t) on a particular machine, fix to always be 32 bits
422
423         * tools/dbus-launch.c: make --autolaunch take a machine id
424         argument. If --autolaunch is used with a program to run, complain
425         for now (but add a FIXME). Also, don't look for existing bus if 
426         there's a program to run (but add a FIXME).
427
428         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
429         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
430         just to get this, and avoids duplicating uuid-reading code).
431
432         * tools/dbus-launch.1: clarify various things
433         
434 2006-10-01  Havoc Pennington  <hp@redhat.com>
435
436         * test/test-service.c (path_message_func): remove broken extra
437         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
438
439         * test/test-shell-service.c (path_message_func): same fix
440         
441         * dbus/dbus-connection.c
442         (_dbus_connection_get_dispatch_status_unlocked): break up the
443         function a little for clarity and fix the notification of
444         dbus-bus.c to not require dispatch to be complete
445
446         * dbus/dbus-connection.c (dbus_connection_unref): improve the
447         warning when you try to finalize an open connection.
448         
449 2006-10-01  Havoc Pennington  <hp@redhat.com>
450
451         * dbus/dbus-bus.c
452         (internal_bus_get): only weak ref the connection; this means 
453         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
454         called safely in any context
455         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
456         unref
457
458         * dbus/dbus-connection.c
459         (_dbus_connection_get_dispatch_status_unlocked): move
460         _dbus_bus_notify_shared_connection_disconnected_unlocked here
461         when queuing Disconnected instead of when the Disconnected message
462         arrives, so dbus_bus_get() won't return closed connections.
463         
464 2006-10-01  Havoc Pennington  <hp@redhat.com>
465
466         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
467         Add a hack to make DBusNewConnectionFunction work right.
468
469         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
470         the hack here. Also, fix the todo about refcount leak.
471         
472         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
473         and use the hack here
474         
475         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
476         "shareable" flag; this was completely broken, since it meant 
477         dbus_connection_open() returned a connection of unknown
478         shared-ness. Now, we always hold a ref on anything opened 
479         as shareable.
480
481         Move the call to notify dbus-bus.c into
482         connection_forget_shared_unlocked, so libdbus consistently forgets
483         all its knowledge of a connection at once. This exposed numerous
484         places where things were totally broken if we dropped a ref inside
485         get_dispatch_status_unlocked where
486         connection_forget_shared_unlocked was previously, so move
487         connection_forget_shared_unlocked into
488         _dbus_connection_update_dispatch_status_and_unlock. Also move the
489         exit_on_disconnect here.
490
491         (shared_connections_shutdown): this assumed weak refs to the
492         shared connections; since we have strong refs now, the assertion 
493         was failing and stuff was left in the hash. Fix it to close
494         still-open shared connections.
495         
496         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
497         debug pipe connections
498         
499         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
500         dbus-bus.c if the closed connection is in fact shared
501         (_dbus_connection_close_possibly_shared): rename from 
502         _dbus_connection_close_internal
503         (dbus_connection_close, dbus_connection_open,
504         dbus_connection_open_private): Improve docs to explain the deal
505         with when you should close or unref or both
506
507         * dbus/dbus-bus.c
508         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
509         from _dbus_bus_check_connection_and_unref_unlocked and modify to
510         loop over all connections
511
512         * test/test-utils.c (test_connection_shutdown): don't try to close
513         shared connections.
514
515         * test/name-test/test-threads-init.c (main): fix warnings in here
516
517         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
518         env variable to cause blocking waiting for gdb; drop
519         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
520         unconditionally.
521
522         * configure.in: add -export-dynamic to libtool flags if assertions enabled
523         so _dbus_print_backtrace works.
524
525         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
526         instead of _dbus_verbose to print the backtrace, and diagnose lack 
527         of -rdynamic/-export-dynamic
528         
529 2006-09-30  Havoc Pennington  <hp@redhat.com>
530
531         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
532         (internal_bus_get): fix screwy code formatting. whoever committed
533         that was not paying attention!
534
535 2006-09-30  Havoc Pennington  <hp@redhat.com>
536
537         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
538         reflect addition of interfaces.
539
540         * doc/dbus-specification.xml: describe a new
541         org.freedesktop.DBus.Peer.GetMachineId method
542
543         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
544         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
545         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
546         at end of skip_white
547         (_dbus_string_chop_white): new function
548
549         * bus/connection.c (bus_connections_setup_connection): call
550         dbus_connection_set_route_peer_messages.
551
552         * dbus/dbus-connection.c
553         (_dbus_connection_peer_filter_unlocked_no_update): modify to
554         support a GetMachineId method.
555
556         Also, support a new flag to let the bus pass peer methods through
557         to apps on the bus, which can be set with
558         dbus_connection_set_route_peer_messages.
559
560         Finally, handle and return an error for anything unknown on the
561         Peer interface, which will allow us to extend the Peer interface
562         in the future without fear that we're now intercepting something
563         apps were wanting to see.
564         
565         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
566         dbus/dbus-uuidgen.c
567
568         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
569         binary here, since most of the code is already in libdbus
570
571         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
572         uuid from the system config file
573
574         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
575         (_dbus_read_uuid_file_without_creating) 
576         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
577         uuid-related functions, partly factored out from dbus-server.c
578
579         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
580         DBUS_ERROR_FILE_EXISTS instead of EEXIST
581
582         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
583
584         * tools/dbus-cleanup-sockets.1: explain what the point of this
585         thing is a bit more
586
587         * autogen.sh (run_configure): add --config-cache to default
588         configure args
589
590         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
591         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
592
593         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
594         don't try to save address, fixes crash in make check
595         
596 2006-09-30  Thiago Macieira  <thiago@kde.org>
597
598         * configure.in: add DBUS_BINDIR as a #define to C source code.
599
600         * tools/dbus-launch.c
601         * tools/dbus-launch.h
602         * tools/dbus-launch-x11.c:
603         * tools/dbus-launch.1: Add the --autolaunch option to
604         dbus-launch, which makes it scan for an existing session
605         started with --autolaunch. With that option, it also creates
606         an X11 window and saves the bus address and PID to it.
607
608         * dbus/dbus-sysdeps.h:
609         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
610         a function that runs "dbus-launch --autolaunch" to retrieve
611         the running D-Bus session address (or start one if none was running)
612
613         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
614         address protocol, which tries to get the running session from
615         dbus-launch.
616
617         * dbus/dbus-bus.c:
618         * dbus/dbus-internals.h: Make "autolaunch:" be the default
619         D-Bus session bus address.
620
621         * dbus/dbus-connection.c: Fix horrible typo in error message.
622
623 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
624
625         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
626
627 2006-09-17  Havoc Pennington  <hp@redhat.com>
628
629         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
630         fix so that if unix_user_function is set on windows, we still
631         do the default check that the auth identity matches the bus identity
632
633 2006-09-16  Havoc Pennington  <hp@redhat.com>
634
635         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
636         to _dbus_transport_open_platform_specific,
637         _dbus_transport_open_socket,
638         and _dbus_transport_open_debug_pipe
639
640         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
641
642 2006-09-16  Havoc Pennington  <hp@redhat.com>
643
644         Attempt auditing public API to remove all cases where a Unix
645         function returns weird emulated goo to Windows. This probably 
646         breaks the bus daemon on Windows, to fix it again we may 
647         need to stop processing unix-specific config options on Windows,
648         and may need to add Windows-specific public API or config options.
649         
650         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
651         to reflect added interfaces; should not break soname.
652         
653         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
654         not invoke unix user function on Windows. Kind of a hacky fix, but 
655         we don't want a "unix uid" leaking out on Windows.
656
657         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
658         to get the socket fd on Windows or UNIX
659         (dbus_connection_get_unix_fd): make this always fail on Windows
660
661 2006-09-16  Havoc Pennington  <hp@redhat.com>
662
663         * dbus/dbus-server.c (dbus_server_listen): change how this works
664         to be able to delegate to a set of handlers that can succeed,
665         fail, or choose not to handle. Allows us to have 
666         dbus_server_listen_platform_specific.
667
668         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
669         factor out the tcp socket stuff to be used on windows, leaving
670         unix domain socket only in dbus-socket-unix.c
671
672         * dbus/dbus-transport-socket.c
673         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
674         stuff to be used on windows, leaving unix domain socket only 
675         in dbus-transport-unix.c
676
677         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
678         temporary hack to be sure this fails on windows
679         (dbus_connection_get_unix_process_id): ditto
680
681 2006-09-16  Havoc Pennington  <hp@redhat.com>
682
683         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
684         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
685         _dbus_open_socket so the domain/type/protocol from system headers
686         are not required. This is kind of pointless though unless we move
687         part of _dbus_connect_tcp_socket into sysdeps.c instead of
688         sysdeps-unix.c, which would mean adding a wrapper around
689         bind/listen/etc.
690         Also, add DBusError to the socket-opening functions so they 
691         don't require use of errno.
692
693 2006-09-16  Havoc Pennington  <hp@redhat.com>
694
695         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
696         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
697
698         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
699         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
700         functions specifically for sockets only, and move generic 
701         read/write/open/close into unix-specific code.
702
703 2006-09-14  Havoc Pennington  <hp@redhat.com>
704
705         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
706         complaint about accessing revents when poll returns 0, from Julian Seward.
707
708 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
709
710         * Released 1.0 RC 1 (0.93) 
711
712 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
713
714         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
715         use _dbus_close instead of close
716
717 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
718
719         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
720         credentials.  Fixes "external" authentication under e.g. NetBSD
721         which does not support any other socket credentials mechanism.
722         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
723
724 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
725
726         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
727         dbus_threads_init and be used by the dbus mutex functions to
728         avoid deadlocks.
729
730         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
731
732 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
733
734         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
735         use threadsafe readdir_r instead of readdir
736
737 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
738
739         * dbus-threads.c (dbus_threads_init_default): New method for
740         initializing the internal thread implementation (Patch from
741         Alexander Larsson <alexl at redhat dot com>)
742
743 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
744
745         * remove a bunch of todo items from the 1.0 list
746
747 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
748
749         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
750         key not found
751
752 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
753
754         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
755         complex debugging code
756
757         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
758         between the test suite ifdefs
759         (_dbus_verbose_bytes): return if verbosity is not enabled 
760
761 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
762
763         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
764         remove DBusMark
765
766 2006-09-10  Havoc Pennington  <hp@redhat.com>
767
768        patch mostly by Peter Kümmel, bug #8211
769         
770         * dbus/dbus-sysdeps-unix.c: new file, which splits out
771         unix-specific stuff in dbus-sysdeps.c
772
773         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
774         and move unix-specific stuff to dbus-sysdeps-unix.c
775
776         * configure.in: check HAVE_ERRNO_H
777         
778 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
779
780         * bus/test-main.c (main): Initialize threading during tests
781
782         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
783         Unlock connection on error
784         (generate_local_error_message): static method for generating
785         an error message when we don't have a message to reply to
786         (_dbus_connection_block_pending_call): Send a disconnect error
787         instead of just a timeout (NULL) when the bus gets disconnected
788         while blocking for a reply.
789         
790 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
791
792         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
793         filters (Patch from Kimmo Hämäläinen 
794         <kimmo dot hamalainen at nokia dot com>)
795
796 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
797
798         * dbus/dbus-connection-internal.h: Add prototype for 
799         _dbus_connection_test_get_locks to remove warning
800
801 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
802
803         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
804         close child_err_report_pipe[WRITE_END] on exec (Patch from 
805         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
806
807 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
808
809         * Clean up close calls to use _dbus_close (Patch from 
810         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
811
812 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
813
814         * doc/TODO:
815         - Remove pending call locking todo item
816         - dbus_connection_open now holds hard ref.  Remove todo item
817         - do proper locking on _dbus_bus_check_connection_and_unref
818           and handle DBUS_BUS_STARTER. Remove todo item
819         - Warn on closing of a shared connection.  Remove todo item
820
821         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
822         dbus/dbus-connection.c: Use the dbus_connection_close_internal
823         so we don't get the warning when closing shared connections
824
825         * test/test-service.c, test/test-shell-service.c: Applications
826         don't close shared connections themselves so we unref instead of
827         close
828
829         * test/test-utils.c (test_connection_shutdown): Close the connection
830
831         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
832         _dbus_bus_check_connection_and_unref_unlocked since we only call this
833         method on a locked connection.  
834         Make sure we call _dbus_connection_unref_unlocked instead of 
835         dbus_connection_unref also.
836         Handle DBUS_BUS_STARTER correctly
837
838         * dbus/dbus-connection.c (connection_record_shared_unlocked):
839         Mark as shared and hard ref the connection
840         (connection_forget_shared_unlocked): Remove the hard ref from the 
841         connection
842         (_dbus_connection_close_internal_and_unlock):  New internal function
843         which takes a locked connection and unlocks it after closing it
844         (_dbus_connection_close_internal): New internal function which acts
845         like the origonal dbus_connection_close method by grabbing a connection
846         lock and calling _dbus_connection_close_internal_and_unlock
847         (dbus_connection_close): Public close method, warns when the app
848         trys to close a shared connection
849
850 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
851
852         * bus/driver.c:
853         (bus_driver_generate_introspect_string): New method for populating
854         a DBusString with the introspect data
855         (bus_driver_handle_introspect): Move introspect generation code to 
856         bus_driver_generate_introspect_string
857
858         * bus/main.c:
859         (introspect): New function which prints out the intropect data and
860         exits
861         (main): Add a --introspect switch
862
863 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
864
865         * doc/TODO: Removed dtd publishing item.  
866         It seems the dtd has already been added at
867         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
868
869 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
870
871         * doc/TODO, various source files: Audited todo's and FIXME's and
872         prepended the ones we should be looking at with 1.0.  Those
873         prepended with 1.0? need clerification or might not be needed
874         for 1.0
875
876 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
877
878         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
879         NULL in the public API (Patch from Kimmo Hämäläinen 
880         <kimmo dot hamalainen at nokia dot com>)
881
882 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
883
884         * configure.in: Fix for OS-X compile time endian issues (patch from
885         Benjamin Reed <ranger at befunk dot com>)
886
887 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
888
889         * configure.in: Check for no-common compiler flag (OS-X fix from
890         Benjamin Reed <ranger at befunk dot com>)
891
892 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
893
894         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
895         <fcrozat at mandriva dot com>)
896
897 2006-08-29  Havoc Pennington  <hp@redhat.com>
898
899         * test/test-service.c (path_message_func): fix lack of return value
900
901         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
902         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
903         any more sense than on anything else in this file.
904         (_dbus_get_tmpdir): add const to return value, and keep the
905         results of the various getenv around in a static variable.
906
907 2006-08-29  Havoc Pennington  <hp@redhat.com>
908
909         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
910         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
911
912 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
913
914         * test/Makefile.am: change find to use syntax that works with non
915         gnu versions of find
916
917 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
918
919         * dbus/dbus-transport.c: fix invalid deref when checking if
920         a vtable method exists (Patch from Christian Ehrlicher 
921         <ch dot ehrlicher at gmx dot de>)
922
923 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
924
925         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
926         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
927         to build with builddir != srcdir (Taken from a patch by Bernard Leak
928         <bernard at brenda-arkle dot demon dot co dot uk>)
929
930 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
931
932         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
933         default case
934
935 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
936
937         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
938         it works on any system providing this interface, not only FreeBSD.
939         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
940
941 2006-08-20  Havoc Pennington  <hp@redhat.com>
942
943         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
944         the docs
945
946 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
947
948         * Released 0.92 
949
950 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
951
952         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
953         to reflect the init late change
954
955         * bus/bus.c (bus_context_new): Check user before we fork so we can
956         print out an error message a user will be able to see
957
958 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
959
960         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
961
962         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
963         Add two more global locks for use on windows platforms.  These are
964         unused on non-windows platforms but are not ifdefed out to avoid
965         potential bugs (i.e. the few bytes lost does not warrent the extra
966         maintanence and complexity that having seperate sets of locks would
967         cause)
968
969 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
970
971         * bus/services.c (bus_registry_acquire_service): Return an error
972         when an application tries to register the org.freedesktop.DBus Bus Name
973
974         * bus/services.c (bus_registry_release_service): Return an error
975         when an application tries to release the org.freedesktop.DBus Bus Name
976
977 2006-08-17  Alp Toker  <alp@atoker.com>
978
979         * doc/dbus-specification.xml: Fix some minor typos.
980
981 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
982
983         * configure.in: use $with_init_scripts instead of $operating_system
984         to determine where to store the pid since the init scripts manipulate 
985         the pid file (patch from Marcelo Ricardo Leitner 
986         <marcelo dot leitner at terra dot com dot br>.  
987
988 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
989
990         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
991         static DBusList *uninitialized_condvar_list to support new late 
992         initialization threading model.  In this model threads can be initialized
993         even after the D-Bus API has been used but still needs to be initialized 
994         before the second thread has been started.  Mutexes and condvar addresses
995         are stored in the two static lists and are replaced with actuall locks
996         when threads are initalized.
997         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
998         the location into the static list
999         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1000         from the static list and freeing the mutex
1001         (_dbus_condvar_new_at_location): New method for creating a conditional 
1002         variable and placing the location into the static list
1003         (_dbus_condvar_free_at_location): New method for removing a conditional
1004         variable location from the static list and freeing the conditional variable 
1005         (init_uninitialized_locks): Atomic method which goes through the static 
1006         lists of mutex and condvar location and updates them with actuall locks
1007         (init_global_locks): changed to init_locks
1008         
1009         * dbus/dbus-connection.c:
1010         (_dbus_connection_test_get_locks): New method for tests to check connections
1011         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1012         condvar API
1013         (dbus_connection_allocate_data_slot): Pass in the global lock address
1014         to _dbus_data_slot_allocator_alloc
1015
1016         * dbus/dbus-dataslot.c:
1017         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1018         instead of the mutex itself
1019
1020         * dbus/dbus-message.c:
1021         (dbus_message_allocate_data_slot): Pass in the global lock address
1022         to _dbus_data_slot_allocator_alloc
1023
1024         * dbus/dbus-pending-call.c:
1025         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1026         to _dbus_data_slot_allocator_alloc
1027
1028         * dbus/dbus-server.c:
1029         (_dbus_server_init_base): Use the new at_location mutex API
1030         (dbus_server_allocate_data_slot): Pass in the global lock address
1031         to _dbus_data_slot_allocator_alloc
1032
1033         * test/name-test/test-threads-init.c: New test case for late thread
1034         initialization
1035
1036 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1037
1038         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1039         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1040         causes compile problems when asserts are turned off
1041         Keeping _dbus_warn for printing out the message so even if
1042         asserts are turned off the user gets the messages that something is 
1043         wrong 
1044
1045 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1046
1047         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1048
1049         * bus/services.c (bus_service_list_queued_owners):
1050         Add a pointer cast to fix compiler warning
1051
1052         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1053         return a NULL instead of FALSE since the return type
1054         is not expecting a boolean
1055
1056         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1057         Remove unused variable
1058
1059         * dbus/dbus-marshal-recursive-util.c (node_new):
1060         return a NULL instead of FALSE since the return type
1061         is not expecting a boolean
1062
1063         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1064         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1065         because we are expecting a pointer not a boolean
1066
1067         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1068         add void as the parameter so some compilers
1069         don't complain
1070
1071         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1072           _dbus_transport_new_for_tcp_socket):
1073         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1074         because we are expecting a pointer not a boolean
1075
1076         * test/shell-test.c (test_command_line):
1077         cast the second argument to _dbus_list_append to avoid compiler
1078         warnings
1079
1080         * test/test-names.c (main): remove unused variable
1081
1082         * test/test-service.c (check_hello_from_self_reply):
1083         Initialize echo_message and echo_reply to NULL
1084         
1085         * test/test-shell-service.c (handle_echo):
1086         Remove unused variable and cast the third parameter passed to
1087         dbus_connection_get_object_path_data to avoid compiler warrnings
1088
1089         * test/name-test/test-names.c (clear_message_queue):
1090         Remove unused function
1091
1092         * test/name-test/test-pending-call-dispatch.c:
1093         Fix format string in printf
1094
1095
1096 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1097
1098         * dbus/dbus-bus.c:
1099         * test/name-test/test-names.c:
1100         Remove test method dbus_bus_connection_get_unique_name because 
1101         we already have public method dbus_bus_get_unique_name that 
1102         does the exact same thing
1103
1104 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1105
1106         * dbus/dbus-signature.c:
1107         fix typos in Julio's previous patch which cause make check to fail
1108
1109 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1110
1111         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1112         In any case it was wrong since this is a test checking to see if
1113         address parsing is correct.  There was no need to get the true
1114         tmp directory.  
1115
1116 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1117
1118         * dbus/dbus-macros.h: Revert the addition of stddef.h
1119         as we should not be adding it to library headers 
1120
1121 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1122
1123         * dbus/dbus-signature.c:
1124         Fix the unit tests so that they work if assertions are not enabled.
1125         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1126
1127 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1128
1129         * tools/run-with-tmp-session-bus.sh:
1130         * test/name-test/run-test.sh:
1131         Remove bashisms (patch from Julio M. Merino Vidal
1132         <jmmv at NetBSD dot org>)
1133
1134 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1135
1136         * configure.in: add a version (>= 2.6.0) check for libxml2
1137
1138 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1139
1140         * configure.in: make sure the compiler supports -Wfloat-equal
1141         
1142         * bus/dir-watch-dnotify.c: move functional code after 
1143         variable declerations (C99 fix)  (patches from Jens Granseuer
1144         <jensgr at gmx dot net>
1145
1146 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1147
1148         * dbus/dbus-macros.h:
1149         add #include <stddef.h> so that Sun compilers don't complain about
1150         the defining NULL
1151
1152 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * dbus/dbus-sysdeps.c:
1155         * dbus/dbus-address.c:
1156         * bus/activation.c:
1157         * test/shell-test.c:
1158         don't hardcode tmp directory (patch from Dave Meikle 
1159         <dmk at davemeikle dot co dot uk>)
1160
1161 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1162
1163         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1164         Change an assert to a detailed warning and abort.  
1165         When allocator->lock != mutex it indicates that the user has failed
1166         to initalize threads before using the D-Bus library.  This warning
1167         helps the user identify the issue and fix their app.
1168
1169 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1170
1171         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1172         with cleanups of bugs found from Coverity reports:
1173
1174         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1175         close the file on error to avoid a leak
1176
1177         * bus/expirelist.c (bus_expire_list_test):
1178         Check for NULL on dbus_new0
1179
1180         * bus/activation.c (update_directory):
1181         remove dead code
1182
1183         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1184         Fix some leaks
1185
1186         * bus/bus.c (process_config_every_time):
1187         Fixed a leak
1188
1189         * bus/desktop-file.c (parse_key_value):
1190         Fixed leak
1191
1192         * bus/selinux.c (bus_selinux_id_table_insert):
1193         Fixed leak
1194
1195 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1196
1197         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1198         remove dead code
1199
1200 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1201
1202         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1203         #!/bin/bash
1204
1205 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1206
1207         * Doxyfile.in: fix the INPUT line so we can generate docs 
1208         when sourcedir != builddir (patch from Cygwin Ports maintainer
1209         <yselkowitz at users dot sourceforge dot net>
1210
1211 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1212
1213         * dbus/dbus-sysdeps.h:
1214         * dbus/dbus-sysdeps.c: 
1215         * dbus/dbus-string.c: 
1216         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1217         GLib's function which does the same thing
1218
1219         * configure.in:
1220         * bus/Makefile.am:
1221         * bus/dir-watch-default.c:
1222         * bus/dir-watch-dnotify.c:
1223         * bus/dir-watch-kqueue.c:
1224         Add kqueue directory watching for freebsd and split the directory
1225         watching code into seperate files per method/arch
1226         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1227
1228 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1229
1230         * configure.in:
1231         * tools/Makefile.am:
1232         * tools/dbus-launch.c:
1233         * bus/Makefile.am:
1234         allow --with-dbus-daemondir switch to be used to make the
1235         daemon install to a seperate bindir like /usr/libexec
1236         (patch from Brian Cameron <brian dot cameron at sun dot com)
1237
1238 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1239
1240         * bus/Makefile.am (install-data-hook): removed the slash after 
1241         $(DESTDIR) so we don't get the double slash which does not work
1242         in windows (patch from Andras Porjesz 
1243         <andras dot porjesz at siemens dot com>)
1244
1245 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1246
1247         * dbus/dbus-sysdeps.h:
1248         * dbus/dbus-sysdeps.c: 
1249           add _dbus_printf_length (patch from Peter Kümmel 
1250           <syntheticpp at gmx dot net>)
1251
1252 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * dbus/dbus-internals.c: unistd.h is not used 
1255         (_dbus_verbose_real): only enable verbose printing 
1256         if DBUS_VERBOSE environment var is set to '1'
1257         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1258
1259 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1260
1261         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1262         so we still compile on older gcc (patch from Frederic Peters 
1263         <fpeters at 0d dot be>
1264
1265 2006-08-04  Havoc Pennington  <hp@redhat.com>
1266
1267         * configure.in: add -Wdeclaration-after-statement
1268
1269         * dbus/dbus-connection.c: change all the pending call stuff to
1270         reflect the fact that pending call operations use the connection
1271         lock
1272
1273         * dbus/dbus-pending-call.c: add locking here
1274
1275         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1276         field const consistent with how message field is done
1277
1278 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * s/D-BUS/D-Bus/g
1281
1282 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1285         <in7y118 at public.uni-hamburg dot de> - fix invalid
1286         read/write reported by valgrind
1287
1288 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1289
1290         * Released 0.91
1291
1292 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1293
1294         * dbus/dbus-connection.c:
1295         (_dbus_connection_attach_pending_call_unlocked):
1296         (connection_timeout_and_complete_all_pending_calls_unlocked):
1297         Make sure we set timeout_added on pending calls to FALSE when
1298         we remove the timeout from the connection
1299
1300 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1301
1302         * Removed some extra bindings stuff lingering around (thanks timo)
1303         * dbus-pendingcall.c (_dbus_pending_call_new): 
1304         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1305         when we tried to take a lock on an already locked connection
1306
1307 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1308
1309         * Released 0.90
1310
1311 2006-07-17  Havoc Pennington  <hp@redhat.com>
1312
1313         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1314         ints, reported by Owen Taylor
1315
1316 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * doc/TODO:
1319         * dbus/dbus-bus.c:
1320         * dbus-errors.c:
1321         * dbus/dbus-marshal-validate.c:
1322           Removed TODO items which were fixed or are no longer relevent
1323
1324 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1325
1326         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1327         Remove stray files from the stripped bindings
1328
1329 2006-07-16  Havoc Pennington  <hp@redhat.com>
1330
1331         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1332         Improve the error message on reply timeout
1333
1334 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1335
1336         * Remove all bindings
1337
1338 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1339
1340         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1341         and set pending_reply out arg to NULL is connection is disconnected
1342         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1343         static method for cleaning up pending calls on disconnect
1344         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1345         calls queued timeouts on disconnect 
1346
1347          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1348         Remove 
1349
1350 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1351
1352         * bus/activation.[ch] (bus_activation_list_services): new function to 
1353         get the list of services that can be activated
1354
1355         * bus/dispatch.c: test coverage for the new bus method
1356         ListActivatableNames
1357
1358         * bus/driver.c: new bus method ListActivatableNames to get the list of
1359         services that can be activated
1360
1361         * doc/dbus-specification.xml: ListActivatableNames method documentation
1362
1363 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1364         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1365         source files
1366
1367 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1368         * dbus/dbus-message-factory.c:
1369         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1370
1371 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1372         * dbus/dbus-connection-internal.h:
1373         * dbus/dbus-connection.c:
1374         * file dbus/dbus-pending-call.c:
1375         * dbus/dbus-pending-call.h:
1376         Make DBusPendingCall an opaque type even to D-Bus internals
1377
1378 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1379
1380         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1381         connection_close
1382
1383         * dbus/dbus-connection.c: include dbus-bus.h
1384         (_dbus_connection_read_write_dispatch): make static
1385
1386 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1387
1388         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1389         function
1390         (dbus_connection_dispatch): On disconnect unref any shared connections
1391
1392         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1393         for cleaning up shared connections on disconnect
1394         (internal_bus_get): get a hard refrence to shared connections when
1395         they are created
1396         
1397         * doc/TODO: Remove items which are no longer relevent or have been fixed
1398         Split 1.0 todo items with a 0.90 freeze todo list
1399  
1400 2006-06-14  Ross Burton  <ross@openedhand.com>
1401
1402         * glib/dbus-gobject.c:
1403         Free a leaking GArray (surely not!) in dbus_g_method_return.
1404
1405 2006-06-14  Ross Burton  <ross@openedhand.com>
1406
1407         * tools/Makefile.am:
1408         * tools/dbus-monitor.c:
1409         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1410         Habacker).
1411         
1412 2006-06-14  Ross Burton  <ross@openedhand.com>
1413
1414         * tools/dbus-print-message.c:
1415         Also print the object path when outputting signals or method calls.
1416
1417 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1418
1419         * qt/src/Makefile.am: install the qdbus.h header.
1420         This allows people to actually use the installed code.
1421
1422 2006-06-12  Ross Burton  <ross@openedhand.com>
1423
1424         * glib/dbus-gproxy.c:
1425         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1426
1427 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1428
1429         * Released 0.62
1430
1431 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1432
1433         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1434         break pedantic builds. Closes bug 6043 (patch approved by
1435         Havoc back in February).
1436
1437 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1438
1439         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1440         that took a QDBusMessage parameter.
1441         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1442         * qt/tools/dbus.cpp: Don't use automatic call because we might
1443         be calling an async method: request a reply.
1444
1445 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1446
1447         * test/qt/*: Update the testcases, including testing the new
1448         functionality of sending null QByteArray and QString over the
1449         bus. Add new headertest test and restore the old
1450         qdbusxmlparser test.
1451
1452 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1453
1454         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1455         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1456
1457         * qt/examples/Makefile.am:
1458         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1459         form.
1460
1461         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1462         QByteArray() (nulls) over the bus.
1463         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1464         the one that has the signature suffix stripped.
1465         * qt/src/qdbusreply.h: Make some methods const.
1466
1467 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1468
1469         Patch from Timo Hoenig <thoenig@suse.de>.
1470
1471         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1472         required during build to EXTRA_DIST.
1473         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1474         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1475         * configure.in: Fix "make dist", take care that the Makefile for
1476         qt/dbus is being generated.
1477
1478 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1479
1480         * bus/bus.c: Fix eavesdropping on method calls
1481
1482 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * configure.in:
1485         * dbus/dbus-userdb-util.c:
1486         Add Solaris console owner patch from Artem Kachitchkine
1487
1488 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1489
1490         * qt/Makfile.am:
1491         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1492         reorganisation. Thanks to Timo Hoenig for pointing this out.
1493
1494 2006-06-06  Robert McQueen  <robot101@debian.org>
1495
1496         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1497           call to dbus_g_type_get_struct.
1498
1499 2006-06-06  Robert McQueen  <robot101@debian.org>
1500
1501         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1502           pointers were put into a GPtrArray-based specialised collection, and
1503           then freed along with the array. GValues which you add into
1504           collections or maps which have the NOCOPY flag set are assumed to not
1505           belong to the caller, so rather than the existing pointer-stealing
1506           semantics, they are copied instead. Given that the main consumers of
1507           this abstraction are the bindings themselves, I don't think this is
1508           too bad, but others should watch their choice of take vs set_static.
1509
1510 2006-06-06  Robert McQueen  <robot101@debian.org>
1511
1512         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1513           of g_slist_prepend not being used. Fixed copying of slist-based
1514           specialised collections, then wrote a test case and found that it was
1515           all broken. Went on to fix iterating and appending too. Good thing
1516           nobody uses this code yet.
1517
1518 2006-06-06  Robert McQueen  <robot101@debian.org>
1519
1520         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1521           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1522           are discarded without unsetting, so it makes no difference whether
1523           we take or set_static). Remove cases for G_TYPE_POINTER because
1524           there really is nothing useful we can do with them in our
1525           specialised types - we *need* boxed copy/free functions at the very
1526           least.
1527
1528 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1529
1530         * qt/dbus: Add directory. I had forgotten to add this
1531         yesterday after the move...
1532
1533         * qt/examples/Makefile.am:
1534         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1535
1536         * qt/tools/Makefile.am:
1537         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1538         Added feature to get and set properties.
1539         Added validation of service, object path and interface names.
1540
1541         * qt/tools/dbusidl2cpp.cpp: Two new features:
1542         1) Allow specifying both the header and the source file names,
1543         by separating them with a colon.
1544         2) Don't write an interface output if the -p switch wasn't
1545         given, but the -a was.
1546
1547         * qt/src/*: Fix usage of Iterators and ConstIterators.
1548         Fix shadowing of variables by other variables (-Wshadow).
1549         Fix keyword-cleanliness in headers.
1550         Fix ASCII-cast (QLatin1String, QLatin1Char).
1551         Fix validation of member names.
1552         Add extra checking of introspection data during XML parsing.
1553         Various bug fixes.
1554
1555 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1556
1557         * dbus/Makefile.am:
1558         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1559         qt/dbus/qdbus.h now.
1560
1561 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1562
1563         * configure.in: Make --disable-qt actually do
1564           something. Patch inspired by Zack Rusin.
1565
1566 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1567
1568         * qt/: Update to Subversion r548032.
1569         This includes a big reorganisation of the files inside the
1570         subdir.
1571
1572 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1573
1574         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1575         clear:  
1576         "Failed to connect to socket <host>:<port> <error>" instead of
1577         "Failed to connect to socket <host>: <error>:<port>"
1578
1579         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1580         for a tcp transport. 
1581
1582 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1583
1584         * qt/*: Update the QtDBus bindings up to revision 546310 in
1585         Subversion.
1586         This adds the dbuscpp2xml tool, that parses a C++ header and
1587         outputs a D-BUS Introspection XML.
1588
1589 2006-05-21  Havoc Pennington  <hp@redhat.com>
1590
1591         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1592         is not NULL when it shouldn't be. Also a couple of possible fixes
1593         for #4637 though I don't understand why the bug happens, to be
1594         honest... also the object constructor has an assert name != NULL
1595         and the name is only currently NULL for peer-to-peer proxies that 
1596         I don't think anyone uses? So it should be asserting.
1597         Anyway, for now at least see if we get an earlier assertion failure.
1598
1599         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1600         apparently broken code to be sure the tests fail and someone 
1601         will fix them...
1602
1603 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1604
1605         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1606         and arrays when they had a single element: has_next returns
1607         false, even before you read the element. So, instead, check
1608         the array length.
1609
1610 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1611
1612         * qt/qdbusmessage.cpp:
1613         * qt/qdbustypehelper_p.h:
1614         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1615         the list is a const-reference
1616
1617 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1618
1619         * Adding old doc patch that never got applied
1620         
1621         * dbus/bus.c (dbus_bus_add_match): Add documentation
1622
1623         * doc/dbus-specification.xml: Add documentation for the match rules
1624           and the AddMatch and RemoveMatch methods
1625
1626 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1627
1628         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1629         call (r535506)
1630
1631         * qt/dbusidl2cpp.cpp:
1632         * qt/qdbusabstractadaptor.cpp:
1633         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1634         sibling of the QDBusAbstractAdaptor objects instead of the
1635         parent. (r535848)
1636
1637         * qt/dbusidl2cpp.cpp:
1638         * qt/qdbusabstractinterface.cpp:
1639         * qt/qdbusabstractinterface.h:
1640         * qt/qdbusabstractinterface_p.h:
1641         * qt/qdbusinterface.cpp: Make properties in interfaces
1642         actually work. The code that was generated would not compile,
1643         due to moc calls to functions that did not exist. They now
1644         shall. (r536571)
1645
1646 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1647
1648         * Makefile.am:
1649         * configure.in:
1650         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1651         Thanks to Brad Hards for providing the patch
1652
1653 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1654
1655         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1656         call. (r535506)
1657
1658 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1659
1660         * qt/examples/dbus.cpp: Enhance error messages and use
1661         QDBusInterfacePtr.
1662
1663 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1664
1665         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1666         and disable the copy operators. (r533772, r534746)
1667
1668         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1669
1670         * qt/qdbusabstractinterface.cpp:
1671         * qt/qdbusabstractinterface.h: Change the default call mode to
1672         not use the event loop. Add convenience call() methods that
1673         take a CallMode parameter. (r534042)
1674
1675         * qt/qdbusconnection.h: Change the default call mode to not
1676         use the event loop. (r534042)
1677
1678         * qt/qdbusinterface.cpp:
1679         * qt/qdbusinterface.h: Add a method to tell us if the
1680         interface is valid (since we don't return a null pointer
1681         anymore) (r534099)
1682
1683         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1684         (r534101)
1685
1686         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1687         function in two so taht we get the chance to introspect
1688         without having a QDBusMessage (r534102)
1689
1690         * qt/qdbusbus.h:
1691         * qt/qdbusconnection.cpp:
1692         * qt/qdbusconnection_p.h:
1693         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1694         avoid a round-trip to the server when attempting to introspect
1695         one of our own objects. Also make sure the filter functions
1696         match the empty interface as well. (r534108)
1697         Don't keep the connection names. Instead, trust the unique
1698         connection name (r534111)
1699         Remove event loop usage (r534112)
1700
1701 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1702
1703         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1704         Brad Hards.
1705
1706 2006-04-28  Robert McQueen  <robot101@debian.org>
1707
1708         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1709         any order, making it easier for people who inherit from this
1710         object.
1711
1712 2006-04-28  Robert McQueen  <robot101@debian.org>
1713
1714         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1715         of memory from within pointer arrays and lists. Fixes bug #6300.
1716
1717 2006-04-28  Robert McQueen  <robot101@debian.org>
1718
1719         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1720         generating struct signatures. Fixes bug #6083.
1721
1722 2006-04-28  Robert McQueen  <robot101@debian.org>
1723
1724         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1725         to qdbusconnection_p.moc.
1726
1727 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1728
1729         * README, INSTALL: Doc fixes
1730         Patch from Brad Hards <bradh at frogmouth.net>
1731
1732 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1733
1734         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1735         the dynamic meta object. No need to guess which interface to
1736         call.
1737
1738 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1739
1740         * qt/qdbusconnection_p.h:
1741         * qt/qdbusmetaobject.cpp:
1742         * qt/qdbusmetaobject_p.h:
1743         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1744         for the dynamic meta object. No need to guess which
1745         interface to call.
1746         * qt/qdbusabstractinterface_p.h:
1747         * qt/qdbusconnection.cpp:
1748         * qt/qdbusintegrator.cpp:
1749         * qt/qdbusinterface.cpp:
1750         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1751         Add a QDBusRef that looks and behaves like DCOPRef.
1752
1753 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1754
1755         * dbus/dbus-connection.c: Interfaces are optional in method
1756         calls, so don't give up if the interface parameter is NULL.
1757         Patch reviewed by Havoc Pennington.
1758
1759 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1760
1761         * qt/qdbusreply.h: Add default constructor and operator=
1762           (r532625)
1763         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1764           in public headers (r532952)
1765         * qt/qdbusabstractinterface.cpp:
1766         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1767           make it the default (r532951)
1768
1769 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1770
1771         * dbus/dbus-connection.c: Fix asserts
1772         Patch from Tim Moloney <t.moloney at verizon.net>
1773
1774 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1775
1776         * mono/Connection.cs, mono/Message.cs: Check Target type
1777         Patch from Aaron Bockover (abockover at novell.com)
1778
1779 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1780
1781         * INSTALL: fine-tune the requirements for the Qt4 binding.
1782
1783 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1784
1785         * tools/dbus-print-message.c: Added support for printing of all 
1786           remaining data types. Fixed logic for indentation of compound
1787           data types.
1788         
1789 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1790
1791         * INSTALL: fill out content of file providing DBus specific
1792           build installations, followed by generic Auto* INSTALL file
1793           content
1794         
1795 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1796
1797         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1798           Patch by Stefan Eilers. (r529537)
1799
1800 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1801
1802         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1803           contents (r528208)
1804
1805 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1806
1807         * qt/Makefile.am: fix the dependency for
1808           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1809           not in qdbusconnection.cpp.
1810           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1811           spotting this.
1812
1813 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1814
1815         * qt/examples/listnames.cpp:
1816         * qt/examples/Makefile.am: Three ways to list the names on the
1817           bus.
1818
1819 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1820
1821         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1822           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1823
1824 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1825
1826         Merge from Subversion:
1827         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1828           something that exists (r526315)
1829         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1830           slots/signals (r526316)
1831         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1832           also return an unknown-method error if the parameters don't
1833           match for org.freedesktop.DBus.Properties. (r526842)
1834         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1835         * qt/qdbusintegrator.cpp: Restore the proper order of
1836           delivery: don't make method returns be delivered on priority
1837           (r528150)
1838
1839 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1840
1841         * configure.in qt/Makefile.am: add qt/examples
1842         * qt/examples: Add QtDBus example programs:
1843           - hello: Hello, World
1844           - ping: Simple method-calling program
1845           - pong: Simple object-exporting program (not using adaptors)
1846           - complexping: Interactive method-calling program 
1847                 (also gets and sets properties).
1848           - complexpong: Sample program exporting methods, signals and
1849                 properties, using adaptors.
1850           - dbus: Simple implementation of a generic method-calling
1851                 program, similar to 'dbus-send', but with semantics
1852                 similar to 'dcop'.
1853           - chat: Simplistic chat program, implemented using signals
1854                 and the system bus. Looks like IRC.
1855
1856 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1857
1858         * configure.in: Detect QtGui (necessary for one of the
1859           example programs). Note: this increases the minimum required
1860           version of Qt to 4.1.3.
1861
1862 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1863
1864         * test/qt/*: Sync with KDE Subversion revision 523647.
1865         Update the testcases to the new API. Remove testcases for
1866         classes that are no longer public or have been removed.
1867
1868 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1869
1870         * qt/*: 
1871         * dbus/qdbus.h: Sync with KDE Subversion revision
1872         523647. Hopefully, this will be the last of the
1873         source-incompatible changes. Documentation has been improved;
1874         support for QList<basic-types> has been added; QDBusObject is
1875         gone; QDBus(Abstract)Interface is now a QObject with
1876         auto-generated meta-object; QDBusIntrospection is marked
1877         private, since QMetaObject can be used now; lots of bugfixes.
1878
1879 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1880
1881         Patch from Milosz Derezynski <internalerror at gmail.com>
1882         
1883         * configure.in:
1884         Output the service directory in the configure summary
1885
1886         * dbus-1.pc.in:
1887         Add session_bus_services_dir
1888
1889 2006-03-10  Ross Burton  <ross@openedhand.com>
1890
1891         * tools/dbus-print-message.c:
1892         Add support for object paths and signatures.
1893
1894 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1895
1896         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1897         config reload.
1898         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1899         information caches
1900         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1901         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1902         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1903         * dbus/dbus-userdb.h: Add function to flush all user/group information
1904         caches.
1905
1906 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1907
1908         * qt/dbusidl2cpp.cpp:
1909         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1910         for dcopidl2cpp, found in the KDE installations (or the more
1911         modern kalyptus): generate Qt4 C++ code for the input XML
1912         introspection. Currently no IDL parsing.
1913
1914 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1915
1916         * test/qt/*: Update the self-tests.
1917
1918 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1919
1920         * qt/*: 
1921         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1922         represents the first feature-complete version of the Qt4
1923         bindings since I took ove maintainership.
1924
1925 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1926
1927         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1928         dir. This is C++, so we can't use the DBus ones.
1929
1930 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1931
1932         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1933         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1934
1935 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1936
1937         * dbus/dbus-connection.c: 
1938         (_dbus_connection_block_pending_call):
1939         Check to see if our data has already been read off the connection
1940         by another blocking pending call before we block in poll.
1941         (check_for_reply_and_update_dispatch_unlocked):
1942         Code taken from _dbus_connection_block_pending_call - checks for
1943         an already read reply and updates the dispatch if there is one.
1944
1945         * test/name-test/test-pending-call-dispatch.c:
1946         New test for making sure we don't get stuck polling a 
1947         dbus connection which has no data on the socket when
1948         blocking out of order on two or more pending calls.
1949
1950 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1951
1952         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1953         make/automake don't detect that we're talking about the same
1954         .lo file if I specify the full path to the source files.
1955
1956 2006-02-26  Havoc Pennington  <hp@redhat.com>
1957
1958         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1959
1960         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1961         session bus variable is unset, suggest "man dbus-launch" and "man
1962         dbus-daemon" to figure out how to fix the problem
1963
1964 2006-02-25  Havoc Pennington  <hp@redhat.com>
1965
1966         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1967         should make this thing use the new glib options parser
1968
1969 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1970
1971         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1972         .lo files taking moc sources.
1973
1974 2006-02-25  Havoc Pennington  <hp@redhat.com>
1975
1976         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1977         and install it as a public header
1978
1979 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1980
1981         * Released 0.61
1982
1983 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1984         
1985         * proxies.py: Fix the callchain
1986
1987 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1988         
1989         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1990
1991         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1992         dbus/dbus-sysdeps.c
1993
1994         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1995         call _dbus_group_info_free_allocated which causes infinite loop,
1996         correctly call _dbus_group_info_free
1997
1998 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1999
2000         * qt/qdbusinterface_p.h:
2001         * qt/qdbusinterface.cpp: Use the standard
2002         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2003         calls instead of creating one for us.
2004
2005         * qt/qdbusconnection_p.h:
2006         * qt/qdbusintegrator.cpp: Remove debugging code.
2007
2008         * qt/qdbusintegrator.cpp:
2009         * qt/qdbusmessage.cpp:
2010         * qt/qdbusmessage_p.h:
2011         * qt/qdbusmessage.h: Change the behaviour of automatic
2012         reply-sending: now a reply is always sent, unless the caller
2013         didn't request one or if the user slot has already sent one.
2014
2015 2006-02-16  Robert McQueen  <robot101@debian.org>
2016
2017         * configure.in: Patch from Debian packages by Sjoerd Simons
2018         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2019         arguments so it's possible to build both bindings in the
2020         same tree.
2021
2022         * qt/Makefile.am: Fix truncated value so that make dist works.
2023
2024 2006-02-16  Robert McQueen  <robot101@debian.org>
2025
2026         * acinclude.m4, configure.in: Patch from Brad Hards
2027         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2028         improving quoting, re-ordering a few checks, and a few other
2029         aesthetic tidy-ups.
2030
2031 2006-02-16  Robert McQueen  <robot101@debian.org>
2032
2033         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2034         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2035         assertion that the next element to read from the iter is fixed in
2036         size. This is not the case when you are at the end of the iter,
2037         because the next element type is INVALID.
2038
2039         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2040         a bogus assert which means that you may not initialise a 0-length
2041         string unless you provide a non-NULL pointer. This prevented
2042         you from marshalling messages containing zero-length arrays in
2043         some cases.
2044
2045         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2046         from Rob to correct bogus asserts when trying to demarshal an
2047         array and get_fixed_array got you 0 elements. Append nothing to
2048         the GArray in this case.
2049
2050         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2051         an empty array via the glib bindings. Without all of the above
2052         patches, this new test fails.
2053
2054 2006-02-16  Robert McQueen  <robot101@debian.org>
2055
2056         * glib/dbus-gmain.c: Make the previous commit compile.
2057
2058         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2059         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2060         specify sender_keyword="foo", path_keyword="bar" when adding
2061         a signal listener, so that you can bind to signals generically
2062         but still do something useful in your callback.
2063
2064         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2065         chars so that they're not cast to chars and made negative. Thanks
2066         to Jakub Stachowski for reporting this and testing the fix.
2067
2068 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2069
2070         * dbus/dbus-glib.h:
2071         * glib/dbus-gmain.h:
2072         (dbus_g_connection_open): new method for openning
2073         a connection to an arbitrary address in the glib bindings
2074
2075         * ChangeLog: checkin last entry which doesn't seem to be commited
2076
2077 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2078
2079         * tools/dbus-launch.c: Fixed sh syntax output
2080
2081 2006-02-13  Robert McQueen  <robot101@debian.org>
2082
2083         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2084         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2085         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2086         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2087         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2088         missing piece of the glib bindings jigsaw puzzle. This modifies
2089         the existing specialised types to have N type parameters (rather
2090         than the current 1 or 2 for arrays and dictionaries respectively).
2091         You can then use this to get a glib type to represent any arbitrary
2092         D-Bus struct type using dbus_g_type_get_struct. The only
2093         implementation of these types is with GValueArrays as before,
2094         but it's now possible to store these in arrays, emit them in
2095         signals, etc.
2096
2097 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2098
2099         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2100         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2101         <thiago.macieira at trolltech.com>
2102
2103 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2104
2105         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2106         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2107
2108 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2109
2110         * bus/connection.c (bus_connections_expect_reply): Make
2111         pending reply limit not common to all connections (Bug #5416)
2112         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2113
2114 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2115
2116         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2117
2118 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2119
2120         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2121         patch from Doug Goldstein <cardoe at gentoo.org>
2122
2123 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2124
2125         * mono/Arguments.cs: Fix a magic number in the mono bindings
2126         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2127
2128 2006-01-27  Robert McQueen  <robot101@debian.org>
2129
2130         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2131         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2132         when generating the client-side methods, instead of overloading
2133         CSymbol which broke everything horribly. My apologies.
2134
2135 2006-01-27  Robert McQueen  <robot101@debian.org>
2136
2137         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2138         by me and Rob Taylor to add a simple_free function to D-Bus map
2139         and collection types, which allows those types which can be freed
2140         with a GDestroyNotify (such as GHashTables and GArrays, but not
2141         GPtrArrays) to be stored as the values in hashtables.
2142
2143         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2144         Patch by Rob Taylor to add nested dicts to the glib tests to check
2145         the above code works, and appears not to leak when called repeatedly.
2146
2147 2006-01-27  Robert McQueen  <robot101@debian.org>
2148
2149         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2150         to free a D-Bus allocated string with dbus_free () instead of
2151         g_free ().
2152
2153 2006-01-27  Iain Holmes  <iain@openedhand.com>
2154
2155         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2156         method from being called multiple times.
2157
2158 2006-01-19  Robert McQueen  <robot101@debian.org>
2159
2160         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2161         <rob.taylor@collabora.co.uk> to add support for generating bindings
2162         to arrays that are represented as GPtrArrays rather than GArrays (ie
2163         size-variable things, such as strings, objects, structs, etc).
2164
2165 2006-01-05  Robert McQueen  <robot101@debian.org>
2166
2167         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2168         <ricardo.kekki@movial.fi> to make it possible to inherit from
2169         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2170         a private part, and moving the setting of the DBusGProxyManager into a
2171         connection property, allowing proper GObject construction.
2172
2173 2006-01-05  Robert McQueen  <robot101@debian.org>
2174
2175         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2176         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2177         annotations when generating glib client bindings.
2178
2179 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2180
2181         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2182
2183         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2184
2185 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2186
2187         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2188
2189 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2190
2191         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2192
2193 2005-12-19  Ross Burton  <ross@openedhand.com>
2194
2195         * doc/dbus-tutorial.xml:
2196         Document the Glib client-side bindings, and list all possible annotations.
2197
2198 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2199
2200         * dbus/bus.c (dbus_bus_release_name): Add documentation
2201
2202 2005-12-06  Robert McQueen  <robot101@debian.org>
2203
2204         * python/service.py: s/sucessful/successful/ so we're allocating to
2205         and reading from the same variable. Oops.
2206
2207 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2208
2209         * Released 0.60
2210
2211 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2212
2213         * test/qt/Makefile.am: build from srcdir
2214
2215         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2216         Note - this code is wrong and needs to be fixed by the Qt binding
2217         developers.  The flags should be treated as bitfields and not enums.
2218
2219         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2220
2221 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2222
2223         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2224           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2225           in production code
2226
2227 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2228
2229         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2230         method for getting messages off the bus in the absence of a
2231         mainloop.  This method is much like 
2232         dbus_connection_read_write_dispatch except it does not dispatch
2233         the messages to a registered filter function.  Instead it
2234         allows a developer to process messages by directly popping
2235         them off the bus.
2236
2237 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2238
2239         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2240         the parser to continue instead of returning error
2241         (bus_desktop_file_load): Do not free parser data when
2242         parse_section_start or parse_key_value fails because it was 
2243         already freed by parser_free (patch from Carlos Garcia Campos  
2244         <carlosgc at gnome.org>)
2245
2246 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2247
2248         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2249         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2250         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2251         test/test-segfault.c, test/test-utils.c,
2252         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2253         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2254         Various cleanup of dead code and compiler warnings (patch from
2255         Kjartan Maraas <kmaraas at gnome.org>) 
2256
2257 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2258
2259         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2260         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2261
2262 2005-11-27  Robert McQueen  <robot101@debian.org>
2263
2264         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2265         part of the preceding one. Oops. Merge patch by Johan Hedberg
2266         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2267         on big-endian platforms.
2268
2269         * test/python/test-client.py: Add some 16-bit integers to the test
2270         values.
2271
2272 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2273
2274         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2275         method return message for property getters
2276
2277 2005-11-27  Robert McQueen  <robot101@debian.org>
2278
2279         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2280         with type v of an instance of dbus.Variant(foo, type='x') caused
2281         it to be boxed twice before sending over the bus.
2282
2283         * python/dbus_bindings.pyx, python/service.py,
2284         test/python/test-client.py: Update the constants for the new
2285         request_name flags, and update comments/test cases now that queueing
2286         is the default action.
2287
2288 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2289
2290         * configure.in:
2291         - Change version to 0.60 for impending release
2292         - upped the sonames because of ABI and API breakage
2293
2294 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2295
2296         * configure.in: Add test/name-test/Makefile to the generated
2297         Makefile list
2298
2299         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2300         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2301         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2302         not to queue an ower if it can't be the primary owner
2303
2304         * bus/bus.h: Add new internal BusOwner struct
2305
2306         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2307         to bus_registry_ensure and don't set the prohibit_replacement flag
2308         since they are now set per BusOwner and not per name.
2309         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2310         that returns the list of connections in a name's connection queue
2311         
2312         * bus/services.c (struct BusService): remove prohibit_replacement field
2313         (struct BusOwner): new struct for keeping track of queued connections
2314         and their associated flags for the queue
2315         (struct BusRegistry): add a BusOwner memory pool
2316         (bus_registry_new): initialize the BusOwner memory pool
2317         (bus_registry_unref): free the BusOwner memory pool
2318         (_bus_service_find_owner_link): new internal method for
2319         searching the queue for a specific connection
2320         (bus_owner_set_flags): new method for adding setting the flags on a
2321         bus owner
2322         (bus_owner_new): new method that creates a BusOwner object from the
2323         pool and sets its flags
2324         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2325         (bus_registry_ensure): Add the flags parameter
2326         (bus_registry_acquire_service): Switch from using raw connections to
2327         using the BusOwner struct
2328         Add new state machine for dealing with the new set of flags
2329         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2330         cancel_ownership, free_ownership_cancel_data, 
2331         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2332         restore_ownership, free_ownership_restore_data, 
2333         add_restore_ownership_to_transaction): Switch to using BusOwner 
2334         instead of raw connections
2335         (bus_service_add_owner): Add flags parameter
2336         Switch to using BusOwner instead of raw connections
2337         Add state machine for dealing with the new set of flags
2338         (bus_service_swap_owner): Swaps the first and second owners in the
2339         queue.  Used to make sure proper signals are sent when a service looses 
2340         or gains primary ownership.  We never insert an owner at the top of the
2341         queue.  Instead we insert it in the second position and then swap.
2342         (bus_service_remove_owner): Remove the owner from the queue sending
2343         out the NameLost and NameOwnerChanged signals if the we were the 
2344         primary owner
2345         (bus_service_get_primary_owners_connection): New method that extracts
2346         the connection from the primary owner
2347         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2348         connection
2349         (bus_service_get_allow_replacement): Changed from the old 
2350         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2351         primary owner and returns if it can be replaced or not
2352         (bus_service_set_prohibit_replacement): removed
2353         (bus_service_has_owner): returns TRUE if and owner with
2354         the specified connection exists in the queue
2355         
2356         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2357         method that only compiles if tests are enabled.  Allows us to get the 
2358         unique name of a connection so we can check it against the queue when
2359         doing regression tests
2360
2361         * bus/activation.c (bus_activation_send_pending_auto_activate),
2362         bus/dispatch.c (bus_dispatch),  
2363         bus/driver.c (bus_driver_handle_get_service_owner, 
2364         bus_driver_handle_get_connection_unix_user, 
2365         bus_driver_handle_get_connection_unix_process_id,
2366         bus_driver_handle_get_connection_selinux_security_context),
2367         bus/signals.c (connection_is_primary_owner): 
2368         use bus_service_get_primary_owners_connection instead of
2369         bus_service_get_primary_owner
2370
2371         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2372         _dbus_listen_unix_socket): Calculate the length of the socket
2373         path and use that instead of using a fixed length which was
2374         causing socket names to contain many trailing Nul bytes.
2375
2376         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2377         (dbus_g_method_get_sender): New method for extracting the sender 
2378         from a DBusGMethodInvocation
2379         (dbus_g_method_return_get_reply): changed name to 
2380         dbus_g_method_get_reply
2381         (dbus_g_method_return_send_reply): changed name to
2382         dbus_g_method_send reply
2383
2384         * doc/dbus-specification.xml: New docs that describe how the new
2385         queueing system works and talks about the changes to the how
2386         we specify socket names
2387
2388         * glib/examples/example-service.c, 
2389         glib/examples/example-signal-emitter.c,
2390         glib/examples/statemachine/statemachine-server.c:
2391         Changed the RequestName flags to the new system
2392
2393         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2394         regression test suite for testing various states of the new
2395         queueing system
2396         
2397 2005-11-15  Robert McQueen  <robot101@debian.org>
2398
2399         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2400         Taylor to add two methods, dbus_g_method_return_get_reply and
2401         dbus_g_method_return_send_reply, to allow you to get the reply
2402         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2403         and send it. The GLib bindings can't marshal a return value of
2404         something like a(s) if the array is empty - ultimately they should be
2405         made to heed the signature of the out arguments as the Python bindings
2406         now can, but this is a workable interim solution which might have
2407         other applications.
2408
2409 2005-11-15  Robert McQueen  <robot101@debian.org>
2410
2411         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2412         method to org.freedesktop.DBus to release a bus name or give up
2413         waiting in the queue for it.
2414
2415         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2416         dbus_bus_release_name method to send the ReleaseName method calls.
2417         Add constants for the return values to dbus/dbus-shared.h.
2418
2419         * doc/dbus-specification.xml: Document the new ReleaseName method
2420         in the specification.
2421
2422         * python/dbus_bindings.pyx: Add a low-level python binding for the
2423         release name method.
2424
2425         * python/exceptions.py, python/service.py: Make freeing BusName
2426         objects release the name. Add a NameExistsException, and fix a
2427         bug with creating UnknownMethodException.
2428
2429         * test/python/test-client.py: Add tests for freeing BusName
2430         objects causing names to be released.
2431
2432 2005-11-14  Robert McQueen  <robot101@debian.org>
2433
2434         * python/service.py: Include the traceback in the error reply when we
2435         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2436
2437 2005-11-14  David Zeuthen  <davidz@redhat.com>
2438
2439         Patch from Timo Hoenig <thoenig@suse.de>.
2440
2441         * bus/bus.c: I've recently investigated why the automatic reload
2442         of configuration files does not work as expected.
2443
2444         Currently, reloading configuration files does only work when
2445         running dbus-daemon with --nodaemon.  If we are running as daemon
2446         we're hitting a dnotify bug once we fork the process.
2447
2448         We're initializing the dnotify fds before calling fork().  Once
2449         the child process forked it does still have the fds (and they
2450         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2451         getting SIGIO as changes are made to the configuration files.
2452
2453         The attached patch moves the initialization of the dnotify fds to
2454         process_config_postinit().  This is safe for all current code
2455         paths and solves the dnotify disfunction.  If we're running
2456         dbus-daemon as daemon the fds for dnotify are now being
2457         initialized after fork() for the child process.
2458
2459         * configure.in: The current configure.in check for dnotify probes
2460         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2461         match for 'xlinux', too. Additionally I have adapted the configure
2462         option's style to match with the others.
2463
2464 2005-11-14  Robert McQueen  <robot101@debian.org>
2465
2466         * python/decorators.py, python/service.py: Add a new argument to the
2467         dbus.service.method decorator called sender_keyword, which if set,
2468         specifies the name of an argument which will be provided the bus
2469         name of the method caller.
2470
2471         * test/python/test-client.py, test/python/test-service.py: Add a
2472         method and test to check the sender_keyword functionality.
2473
2474 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2475
2476         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2477         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2478         Simons <sjoerd at luon.net>)
2479
2480         * AUTHORS: Add Robert McQueen for his work on the Python
2481         Bindings and other parts of D-Bus
2482
2483 2005-11-07  Robert McQueen  <robot101@debian.org>
2484
2485         * python/decorators.py: Change emit_signal function to use the
2486         signature annotation of the signal when marhsalling the arguments from
2487         the service. Fix a bug where the code checking signature length
2488         against argument length referenced the wrong variable.
2489
2490         * python/introspect_parser.py: Avoid adding the type signature of
2491         signal arguments to any methods which occur after them in the
2492         introspection data (!) by making the parser a little more careful
2493         about its current state.
2494
2495         * python/service.py: Remove debug prints from last commit (again :D).
2496
2497         * test/python/test-client.py, test/python/test-service.py: Add test
2498         signals with signature decorators to test the strict marshalling code
2499         gives errors at the right time. Could do with checking the signals
2500         actually get emitted too, given that the test does nothing with
2501         signals at the moment...
2502
2503 2005-11-07  Robert McQueen  <robot101@debian.org>
2504
2505         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2506         instances to stop madness of creating new instances representing
2507         the same bus connection all the time, rendering any tracking of
2508         match rules and bus names quite meaningless. Caught a bug where
2509         the private argument to SessionBus() and friends was being passed
2510         in as use_default_mainloop by mistake. Still some problems with
2511         multiple dbus_binding.Connection instances representing the same
2512         low-level connection (eg when you use both SessionBus() and
2513         StarterBus() in same process), but it's a lot better now than it
2514         was.
2515
2516         * python/dbus_bindings.pyx: Add constants with the return values
2517         for bus_request_name().
2518
2519         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2520         and retrieve the same instances for the same name, so deletion can be
2521         done with refcounting. Also now throws some kind of error if you
2522         don't actually get the name you requested, unlike previously...
2523
2524         * test/python/test-client.py: Add tests for instance caching of buses
2525         and bus name objects.
2526
2527 2005-11-04  Robert McQueen  <robot101@debian.org>
2528
2529         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2530         marshalling of boolean values. Add some booleans to the values in
2531         the test client.
2532
2533         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2534         argument to the dbus.service.method decorator, which allows you to
2535         name arguments to take two callback functions for replying with
2536         return values or an exception.
2537
2538         * test/python/test-client.py, test/python/test-service.py: Add test
2539         case using asynchronous method reply functions, both return values and
2540         errors, and from within both the function itself and from a mainloop
2541         callback.
2542
2543         * python/decorators.py, python/service.py: Perform checking that the
2544         number of method/signal arguments matches the number of types in the
2545         signature at class loading time, not when you first introspect the
2546         class.
2547
2548         * python/service.py: Remove debug print left by the last commit.
2549
2550 2005-11-03  Robert McQueen  <robot101@debian.org>
2551
2552         * python/service.py: Heavy refactoring of method invocation, with
2553         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2554         in favour of a new _message_cb that uses seperate functions for
2555         looking up the method to call, marshalling the return values, and
2556         sending exceptions as errors, and is easier to follow as a
2557         consequence.  Fixes some corner cases about returning things that
2558         don't match your declared out_signature, allows exceptions to define
2559         _dbus_error_name and have it be sent over the bus as the error name,
2560         and paves the way for cool stuff like heeding the message no reply
2561         flag, asynchronous method implementations, informing the method of the
2562         sender, and including backtraces in the error messages.
2563
2564         * test/python/test-client.py: Catch and print exceptions thrown in the
2565         async callback tests, rather than passing them to the low-level
2566         bindings to be ignored in a noisy and frustrating manner.
2567
2568 2005-11-03  Robert McQueen  <robot101@debian.org>
2569
2570         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2571         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2572         tweak others to be consistent.
2573
2574         * test/python/test-client.py: Tweak output of testInheritance.
2575
2576 2005-10-29  Robert McQueen  <robot101@debian.org>
2577
2578         * python/service.py: Major changes to allow multiple inheritance
2579         from classes that define D-Bus interfaces:
2580         
2581          1. Create a new Interface class which is the parent class of
2582             Object, and make the ObjectType metaclass into InterfaceType.
2583         
2584          2. Patch written with Rob Taylor to replace use of method_vtable
2585             with code that walks the class's __MRO__ (method resolution order)
2586             to behave like Python does when invoking methods and allow
2587             overriding as you'd expect. Code is quite tricky because
2588             we have to find two methods, the one to invoke which has the
2589             right name and isn't decorated with the /wrong/ interface,
2590             and the one to pick up the signatures from which is decorated
2591             with the right interface.
2592         
2593             The same caveats apply as to normal multiple inheritance -
2594             this has undefined behaviour if you try and inherit from two
2595             classes that define a method with the same name but are
2596             decorated with different interfaces. You should decorate
2597             your overriding method with the interface you want.
2598         
2599          3. Replace grungy introspection XML generation code in the metaclass
2600             with dictionaries that cope correctly with multiple inheritance
2601             and the overriding of methods. This also uses the signature
2602             decorations to provide correct introspection data, including
2603             the debut appearance of the types of your return values. :D
2604
2605         * test/python/test-client.py, test/python/test-service.py: Add a test
2606         case to try invoking an method that overrides one inherited from a
2607         D-Bus interface class.
2608
2609 2005-10-29  Robert McQueen  <robot101@debian.org>
2610
2611         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2612         Add checking for the end of struct character when marshalling a
2613         struct in MessageIter.append_strict.
2614
2615         * python/examples/example-service.py,
2616         python/examples/gconf-proxy-service.py,
2617         python/examples/gconf-proxy-service2.py: Update to use gobject
2618         mainloop directly rather than appearing to depend on gtk.
2619
2620         * python/test/test-client.py, python/test/test-server.py: Remove
2621         obsolete and broken test scripts for old bindings. We have up to date
2622         and working tests in test/python/.
2623
2624 2005-10-29  Robert McQueen  <robot101@debian.org>
2625
2626         * python/decorators.py: Add optional arguments to the method and
2627         signal decorators to allow you to specify the signature of arguments
2628         and return values. Preserve the doc strings of signal functions in the
2629         decorated version, for pydoc and friends.
2630
2631         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2632         parse_signature_block function with an iterable dbus.Signature()
2633         type. Fix a bug in MessageIter.append_strict where you could append
2634         anything by claiming it was a string.
2635
2636         * python/service.py: Use the out_signature decoration on methods to
2637         marshal return values, meaning you no longer require dbus.Array()
2638         or dbus.Dictionary() to indicate the type when returning empty
2639         arrays or dictionaries. Fix a bug where exceptions which are defined
2640         in __main__ are not turned into error replies.
2641
2642         * test/python/test-client.py, test/python/test-service.py: Add test
2643         for correct marshalling of return values according to out_signature.
2644         Fix a bug in the async call test where the error_handler is missing a
2645         self argument.
2646
2647 2005-10-29  Robert McQueen  <robot101@debian.org>
2648
2649         * glib/Makefile.am, glib/examples/Makefile.am,
2650         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2651         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2652
2653         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2654
2655         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2656         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2657         the command line.
2658
2659 2005-10-27  Ross Burton  <ross@openedhand.com>
2660
2661         * dbus/dbus-marshal-header.c:
2662         Remove dead code.
2663
2664         * glib/dbus-gobject.c:
2665         Stop compiler warning.
2666
2667 2005-10-25  Ross Burton  <ross@openedhand.com>
2668
2669         * dbus/dbus-auth.c:
2670         * dbus/dbus-server-unix.c:
2671         * dbus/dbus-transport-unix.c:
2672         * glib/dbus-gmain.c:
2673         * glib/dbus-gobject.c:
2674         Add some const keywords.
2675
2676 2005-10-25  Ross Burton  <ross@openedhand.com>
2677
2678         * doc/dbus-specification.xml:
2679         Document the NoReply annotation.
2680
2681         * glib/dbus-binding-tool-glib.h:
2682         * glib/dbus-binding-tool-glib.c:
2683         Respect the NoReply annotation.
2684
2685 2005-10-24  Robert McQueen <robot101@debian.org>
2686
2687         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2688         derive from unicode instead of str, and encode/decode UTF-8 when
2689         marshalling/unmarshalling bus messages
2690
2691         * python/introspect_parser.py: encode introspection data as UTF-8
2692         before passing the buffer into libxml2
2693
2694         * test/python/test-client.py: add unicode test strings
2695
2696         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2697         ignore generated python test files
2698
2699 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2700
2701         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2702         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2703         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2704
2705         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2706         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2707         when constructing struct signatures
2708
2709         * python/_dbus.py (Bus): handle private connections using the
2710         private keyword in the constructor. defaults to private=False
2711         (Bus::close): new method to close a connection to the bus
2712
2713         * python/dbus_bindings.pyx (Connection::close): renamed method
2714         was previously called disconnect
2715         (bus_get): now supports getting a private connection
2716
2717         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2718         keyword is set to True.  if it is, execute the method without waiting
2719         for a reply
2720         (ProxyObject::_introspect_execute_queue): new method for executing
2721         all the pending methods that were waiting for the introspect to
2722         finish.  this is called when introspect either succeeds or fails
2723         (ProxyObject::_introspect_error_handler): call queued methods
2724
2725 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2726
2727         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2728         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2729
2730         * python/service.py (Object::_message_cb): handle exceptions correctly
2731         by sending them over the wire to the calling app.  This makes sure
2732         the client returns immediately instead of waiting the 15 seconds to
2733         timeout.
2734
2735         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2736         Add a test to benchmark how long it takes to introspect a service and 
2737         call a method which returns a large element (pretty fast)
2738
2739         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2740         method which pushes a lot of data
2741
2742 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2743
2744         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2745         reclaim memory outside of the loop and use del istead of just setting
2746         the key to None
2747
2748 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2749
2750         * python/service.py (ObjectType::_reflect_on_signal): Always close
2751         signal tag even when there are no arguments
2752
2753 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2754
2755         * configure.in: Set mono, mono-docs and Qt3 to default
2756         to no instead of auto when building.  These bindings do not
2757         have full time maintainers and will not be supported for the
2758         1.0 release.
2759
2760 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2761
2762         patches from Michael Krivoruchko <misha at sun.com>: 
2763         
2764         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2765         _dbus_connection_message_sent, 
2766         _dbus_connection_send_preallocated_unlocked_no_update, 
2767         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2768         is NULL when calling _dbus_verbose
2769
2770         * configure.in: check for functions getpeerucred and getpeereid
2771
2772         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2773         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2774         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2775         Patch was only tested on Solaris 10 x86 so it might be issues
2776         with other platforms (i.e. BSDs and MacOSX)
2777         
2778
2779 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2780
2781         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2782         instead of marshal basic so we can handle recursive types in a variant
2783
2784         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2785         in variants
2786
2787         * test/glib/test-service-glib.c, test-service-glib.xml
2788         (my_object_echo_variant [EchoVariant], 
2789         my_object_process_variant_of_array_of_ints123
2790         [ProcessVariantOfArrayOfInts123]): 
2791         Add two test methods
2792
2793         * python/introspect_parser.py: New module for parsing introspect
2794         data.
2795
2796         * python/dbus_bindings.pyx:
2797         (various places): when throwing errors fix to use errormsg instead 
2798         of message local variable because Pyrex can get confused with other 
2799         message variables (initial patch by Robert McQueen 
2800         <robert.mcqueen at collabora.co.uk>)
2801         (MessageIter::parse_signature_block): new method for getting the next
2802         block in a signiture.
2803         (MessageIter::append_strict): new method for appending values strictly
2804         using the passed in signature instead of guessing at the type
2805         (MessageItter:: append_dict, append_struct, append_array): use 
2806         signatures to marshal children if the signature is available
2807         
2808         * python/exceptions.py (IntrospectionParserException): new exception
2809
2810         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2811         introspected signatures if available, else we fall back to the
2812         old way of doing things.
2813         (ProxyObject::_introspect_reply_handler ): parse introspection data
2814         
2815         * python/service.py (ObjectType::_reflect_on_method): Properly
2816         terminate <method> if there are no args in the reflection data
2817
2818         * test/python/test-client.py: add tests for talking with the GLib
2819         test server.  This gives us better coverage for introspection since
2820         python to python will always generate arguments as variants.  It also
2821         allows us to test the robustness of the GLib bindings and interlanguage
2822         communications.
2823
2824         
2825 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2826
2827         * bus/driver.c (bus_driver_handle_introspect): Add signals
2828         to the introspect data. (patch from Daniel P. Berrange 
2829         <dan at berrange.com>)
2830
2831         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2832         
2833         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2834         _dbus_connection_run_builtin_filters): Changed these to
2835         be unlock_no_update functions and call 
2836         _dbus_connection_send_unlocked_no_update instead of
2837         dbus_connection_send to avoid locking errors.
2838         
2839         * doc/TODO: Removed the make Ping test TODO
2840         
2841 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2842
2843         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2844         We now copy the message from a DBusError and then free 
2845         the error object befor throwing the error
2846
2847         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2848         DBusBindingOutputMode enum which was causing a warning.
2849         #include <time.h> so using time_t is explicitly defined
2850
2851 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2852
2853         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2854         - dbus/dbus-bus.c
2855         (internal_bus_get): new method that take over the heavy lifting
2856         of dbus_bus_get and adds the ability to get a private connection
2857         to the bus
2858         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2859         interface as in previous versions
2860         (dbus_bus_get_private): new method that is a wrapper to 
2861         internal_bus_get to get a private connection to the bus
2862
2863         - dbus/dbus-bus.h
2864         (dbus_bus_get_private): add as a public libdbus interface
2865
2866         - dbus-1.pc.in: output system_bus_default_address and 
2867         sysconfdir variables so apps can use them when compiling
2868
2869 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2870         * dbus/qt: New Qt bindings
2871
2872 2005-09-12  Waldo Bastian  <bastian@kde.org>
2873
2874         * dbus/dbus-marshal-validate.c,
2875         doc/dbus-specification.xml, test/Makefile.am,
2876         test/test-names.c: allow hyphens in bus names.
2877
2878 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2879
2880         * test/data/auth/fallback.auth-script: we don't
2881         retry the EXTERNAL method when we know its going
2882         to fail anymore.
2883
2884 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2885
2886         * dbus/dbus-connection-internal.h: rename
2887         (add|remove|toggle)_(watch|timeout) to unlocked()
2888         
2889         * dbus/dbus-connection.c: ditto.
2890         
2891         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2892         Update some callers for the renaming.
2893
2894 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2895
2896         * dbus/dbus-auth.c: (record_mechanisms): don't
2897         retry the first auth mechanism because we know
2898         we're just going to get rejected again.
2899         
2900         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2901         Fix thinko ... and what a nasty little bugger to
2902         track down you were ...
2903
2904         * dbus/dbus-connection.c:
2905         (_dbus_connection_add_watch),
2906         (_dbus_connection_remove_watch): add note about
2907         these needing the connection to be locked.
2908         (_dbus_connection_get_dispatch_status_unlocked):
2909         set status to DATA_REMAINS when we queue the
2910         disconnected message.
2911         
2912         * bus/dispatch.c:
2913         (bus_dispatch): fix warning.
2914         (check_existent_service_no_auto_start):
2915         Expect ChildSignaled error too.
2916         (check_existent_hello_from_self): fix another
2917         couple of warnings.
2918         
2919 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2920
2921         Patches from James Willcox <snorp@snorp.net>
2922
2923         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2924
2925         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2926         support array "out" parameters.
2927
2928         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2929         for 16-bit int support.
2930
2931 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2932
2933         * Released 0.50
2934
2935         * Patch from Steve Grubb:
2936         - bus/activation.c (bus_activation_service_reload_test): clean up
2937         some indentation
2938         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2939         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2940         buffer overflows in the test suite.  This is non critical because
2941         it can not be exploited and this code is only run when doing a 
2942         make check.
2943
2944         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2945         - configure.in: Don't check and link against kdecore, only qt headers
2946         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2947         - gcj/org/freedesktop/dbus/Makefile.am:
2948         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2949         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2950         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2951         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2952         - tools/Makefile.am: Add platform extentions to binaries 
2953         (i.e. .exe on windows)
2954
2955         * configure.in: 
2956         - Make it so if no suitable version of python is found we only 
2957         disable building python instead of exiting the configure script
2958         - Require version 2.4 of glib for glib bindings
2959         - Up version to 0.50
2960
2961         * python/__init__.py: Sync version with libdbus to (0,50,0)
2962         
2963 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2964
2965         * dbus/dbus-object-tree.c (find_subtree_recurse):
2966         a couple of optimizations (bug #710):
2967         - do a binary search in the tree
2968         - insert a new child at the right place directly, no need for
2969           qsort anymore
2970         - do the "double alloc" thing when allocating children
2971
2972 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2973
2974         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2975
2976         * python/dbus_bindings.pyx: Memory management foo
2977         (global): remove hacky _user_data_references global list
2978         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2979         tuples. Unref user_data
2980         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2981         (Connection::__del__): Remove and replace with __dealloc__ method
2982         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2983         to keep tuple from being deallocated instead of the global var hack
2984         (Connection::register_object_path): Stuff user_data into a tuple.
2985         Use Py_INCREF to keep tuple from being deallocated instead of the 
2986         global var hack
2987         (Connection::register_fallback): Stuff user_data into a tuple.
2988         Use Py_INCREF to keep tuple from being deallocated instead of the 
2989         global var hack
2990         (GIL_safe_pending_call_notification): Don't unref the message
2991         because it gets unreffed when going out of scope.  Py_XDECREF
2992         the user_data
2993         (PendingCall::__del__): Remove and replace with __dealloc__ method
2994         (PendingCall::set_notify): ref the pending call because we will
2995         need it to stick around for when the notify callback gets called
2996         (Message::__del__): Remove and replace with __dealloc__ method
2997
2998         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2999         gthreads_init to match up with the dbus call
3000
3001         * python/glib.py (init_threads): Changed to threads_init to match
3002         up with gobject.threads_init().  init_threads is kept for backwards
3003         compat but will most likely be deprecated in the future
3004
3005         * test/python/test-client.py: 
3006         - revamp to use Python's unittest functionality
3007         - add async call tests
3008         - setup threads in glib and dbus so we make sure locks are working
3009         
3010 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3011
3012         * python/dbus_bindings.pyx 
3013         (_pending_call_notification, cunregister_function_handler, 
3014         cmessage_function_handler): All callback functions have been rearranged 
3015         to workaround a bug in Pyrex when working with the GIL which is Python's 
3016         global lock when dealing with threads.  They have been split into
3017         a wrapper function (which assumes the name of the old function) and
3018         a _GIL_safe_<function name> function which contains the functionality
3019         of the old function.  This ensures that Pyrex does not write code
3020         the lock is released.
3021         
3022
3023 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3024
3025         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3026         GIL global lock when calling back into Python
3027
3028 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3029
3030         * Release 0.36.2
3031
3032         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3033
3034         * bus/policy.c (bus_policy_allow_user): change default "user is
3035         allowed" to be "user has same uid as the bus itself"; any
3036         allow/deny rules will override.
3037
3038         * bus/session.conf.in: don't allow all users, since now by default
3039         the user that ran the bus can connect.
3040
3041 2005-08-26  Colin Walters  <walters@verbum.org>
3042
3043         * tools/dbus-print-message.c (print_message): Flush stdout
3044         after printing a message, so that redirecting to a file, then
3045         hitting Ctrl-C works.
3046
3047 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3048
3049         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3050         (EmptyMessage): new class that subclasses Message.  This is a workaround
3051         to a Pyrex bug that fails to call __del__ when the Message object goes out
3052         of scope.  For some reason subclassing Message fixes this bug
3053         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3054         - s/Message(_create=0)/EmptyMessage everywhere else
3055         
3056         * test/python/test-{server|client}.py: add the python/.libs directory
3057         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3058         get picked up from the system
3059
3060 2005-08-25  Colin Walters  <walters@verbum.org>
3061
3062         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3063         to Ryan Lortie for the suggestion.
3064
3065 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3066
3067         * test/python: Add python regression test
3068
3069         * configure.in: Add test/python/Makefile
3070
3071         * test/Makefile.am: Add the python directory to SUBDIRS
3072
3073 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3074
3075         * Release 0.36.1
3076
3077         * python/_dbus.py: 
3078         (Interface::connect_to_signal): propigate keywords for match on args
3079         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3080
3081         * python/proxies.py (ProxyObject::connect_to_signal):
3082         propigate keywords for match on args
3083
3084         * Makefile.am: point everything to pyexecdir since python borks
3085         on multilib
3086
3087 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3088
3089         * Release 0.36
3090
3091 2005-08-23  Colin Walters  <walters@verbum.org>
3092
3093         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3094
3095 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3096
3097         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3098         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3099         of defining DBusConnection ourselves.
3100
3101 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3102
3103         * python/dbus.pth: New path file to fix up problems when installing
3104         c libraries to lib64 and python files to lib.
3105
3106         * python/Makefile.am: install dbus.pth in the correct spot
3107
3108 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3109         * ChangeLog: clean up my last entry a bit
3110
3111         * doc/introspect.xsl: New stylesheet for converting introspection data
3112         into browser renderable xhtml. Contributed by Lennart Poettering.
3113
3114         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3115         Poettering.
3116
3117         * doc/dbus-tutorial.xml: 
3118         - Add Colin Walter to the Authors section for authoring the GLib
3119         section
3120         - Add descriptions of the new signature and type functionality
3121         in the Python complex type mapping section
3122         - Add a sidenote on the new args matching functionality in 
3123         the Python bindings
3124         - Fixed up some of the examples to use the gobject.MainLoop
3125         instead of gtk.main
3126         
3127         * python/_dbus.py:
3128         (Bus::_create_args_dict): New. Converts a hash of arg matches
3129         to a more useable format
3130         (Bus::add_signal_receiver): add a **keywords parameter for catching
3131         arg match parameters
3132         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3133         arg match parameters
3134         
3135         * python/matchrules.py:
3136         (MatchTree::exec_matches): Check for arg matches
3137         (SignalMatchRule::add_args_match): New method
3138         (SignalMatchRule::execute): Added args_list parameter as an optimization
3139         so we don't have to marshal the args more than once
3140         (SignalMatchRule::match_args_from_list): New method that checks to see
3141         if the rule's arg matches match an argument list.  Only arguments
3142         set in the rule are checked.
3143         (SignalMatchRule::match_args_from_rule): New method that checks to see
3144         if the rule's arg matches match another rule's.  All args have to match
3145         in order for this method to return true.  If either rule has more args
3146         then it is not a match.
3147         (SignalMatchRule::is_match): Add args match
3148         (SignalMatchRule::repr): Add args to the final output if they exist
3149
3150 2005-08-17  Ross Burton  <ross@burtonini.com>
3151
3152         * glib/dbus-gproxy.c:
3153         (dbus_g_proxy_call_no_reply): unref the message once sent.
3154         (dbus_g_proxy_call): protect against NULL proxy.
3155
3156 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3157
3158         * python/__init__.py: Version updated (0, 43, 0)
3159         
3160         * python/dbus_bindings.pyx: 
3161         - Fixed type objects to have self passed into __init__
3162         - Added the Variant type
3163         - Add the ability to specify types or signatures for Array, Variant 
3164         and Dictionary
3165         (Connection::send_with_reply_handlers): return a PendingCall object
3166         (_pending_call_notification): handle the case when an error is returned 
3167         without an error message in the body
3168         (MessageIter::get_boolean): return True or False instead of an integer
3169         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3170         and add checks for objects with embeded signatures or types (Array, 
3171         Variant and Dictionary)
3172         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3173         (MessageIter::append_dict): handle embeded types or signatures
3174         (MessageIter::append_array): handle embeded types or signatures
3175         (MessageIter::append_variant): new method
3176         
3177         * python/proxies.py:
3178         (DeferedMethod): New. Dummy executable object used when queuing calls 
3179         blocking on introspection data
3180         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3181         or shorter timeouts for method calls
3182         (ProxyObject): Add first pass at an introspection state machine
3183         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3184         introspection. 
3185         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3186         the usual mechanisms for sending messages.  This is to avoid a deadlock
3187         where the Intospect call would be queued waiting for the Introspect 
3188         call to finish ;-)
3189         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3190         when introspection returns with no error
3191         (ProxyObject::_introspect_error_handler): New.  This method is called 
3192         when introspection encounters an error
3193         (ProxyObject::__getattr__): Code to handle different introspection 
3194         states.  Queue async calls or block blocking calls if we are 
3195         introspecting.  Pass through as normal if we are not or are done with 
3196         introspecting.
3197         
3198         * python/service.py: Import signal and method from decorators.py
3199
3200         * python/types.py: Add Variant type
3201
3202 2005-08-16  Colin Walters  <walters@verbum.org>
3203
3204         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3205         DBusError message is NULL.
3206
3207 2005-08-09  Havoc Pennington  <hp@redhat.com>
3208
3209         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3210         malloc'd copy of the name parameter
3211
3212 2005-08-09  Havoc Pennington  <hp@redhat.com>
3213
3214         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3215         warning if the reply serial is set to 0
3216
3217 2005-08-04  Colin Walters  <walters@verbum.org>
3218
3219         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3220         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3221         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3222         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3223         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3224         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3225         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3226         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3227         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3228         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3229         
3230         Prefix name with _ to ensure they're not exported.  All callers
3231         updated.
3232
3233         * glib/dbus-gvalue.c (typecode_to_gtype)
3234         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3235         (signature_iter_to_g_type_dict)
3236         (signature_iter_to_g_type_array)
3237         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3238         (dbus_gtypes_from_arg_signature):
3239         Move to dbus-gsignature.c.
3240
3241         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3242         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3243         (dbus_binding_tool_output_glib_client): Ditto.
3244
3245         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3246         and dbus-gsignature.h
3247
3248         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3249         unused variable.
3250
3251 2005-08-03  Colin Walters  <walters@verbum.org>
3252
3253         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3254         catch any incompatible changes accidentally made.
3255
3256 2005-08-03  Havoc Pennington  <hp@redhat.com>
3257
3258         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3259         typo, from Julien Puydt
3260
3261         * bus/connection.c (bus_connection_disconnected): we were always
3262         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3263
3264 2005-08-01  Colin Walters  <walters@verbum.org>
3265
3266         Patch from Joe Markus Clarke:   
3267         
3268         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3269         use-after-free.
3270
3271 2005-08-01  Colin Walters  <walters@verbum.org>
3272         
3273         Patch from Joe Markus Clarke:   
3274         
3275         * tools/dbus-send.c (main): 
3276         
3277         Don't use C99 style initializers (bug #3933).
3278         
3279 2005-08-01  Colin Walters  <walters@verbum.org>
3280
3281         Patch from Joe Markus Clarke:   
3282
3283         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3284         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3285         * glib/dbus-gobject.c (write_interface):
3286
3287         Don't use C99 style initializers (bug #3933).
3288
3289 2005-07-31  Havoc Pennington  <hp@redhat.com>
3290
3291         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3292         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3293
3294 2005-07-30  Havoc Pennington  <hp@redhat.com>
3295
3296         * fix a bunch of Doxygen warnings and mistakes
3297
3298 2005-07-30  Havoc Pennington  <hp@redhat.com>
3299
3300         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3301         DBUS_BUILD_TESTS since it's now used in production code
3302
3303 2005-07-29  Havoc Pennington  <hp@redhat.com>
3304
3305         * test/glib/test-profile.c (write_junk): initialize the junk
3306         buffer so valgrind doesn't have a breakdown
3307
3308 2005-07-29  Havoc Pennington  <hp@redhat.com>
3309
3310         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3311         (match_rule_matches): remove unused arg
3312         (test_matching): add tests for match_rule_matches()
3313
3314         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3315         do arg0='foo' arg5='bar' in the match rules
3316         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3317
3318         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3319
3320 2005-07-29  Ross Burton  <ross@openedhand.com>
3321
3322         * dbus/dbus-connection.c:
3323         Don't create a DBusCondVar which is never used.
3324
3325 2005-07-27  Ross Burton  <ross@openedhand.com>
3326
3327         * dbus/dbus-message.c:
3328         Reduce the size of the maximum cached message to 10K.
3329
3330 2005-07-25  Ross Burton  <ross@openedhand.com>
3331
3332         * glib/dbus-gproxy.c:
3333         Remove matches when all proxies are unregistered.
3334
3335 2005-07-24  Colin Walters  <walters@verbum.org>
3336
3337         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3338         typedata; recursive arrays won't have it.
3339
3340         * test/glib/test-dbus-glib.c:
3341         * test/glib/test-service-glib.c:
3342         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3343         
3344 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3345
3346         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3347         proxies.py, service.py: Cleanup of code after running it through the
3348         pyflakes code checker mostly dealing with undefined names.  
3349         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3350
3351 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3352
3353         * NEWS: Update to 0.35.2
3354
3355 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3356
3357         * python/_dbus.py: Remove import of the dbus.services
3358         module as it no longer exists (patch from Dimitur Kirov)
3359
3360         * python/service.py (Object::__init__): Fixed typo
3361         s/name/bus_name (patch from Dimitur Kirov)
3362
3363         * python/examples/example-signal-emitter.py: import dbus.glib
3364         to get the main loop and use glib mainloop instead of gtk so
3365         X doesn't have to be running.
3366
3367         * python/examples/example-signal-recipient.py: import dbus.glib
3368         to get the main loop and use glib mainloop instead of gtk so
3369         X doesn't have to be running. Import the decorators module
3370         directly.
3371
3372         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3373         didn't pick up on but are needed to build
3374
3375         * configure.in: upped version to 0.35.2
3376
3377         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3378         added Colin Walters' SELinux API rename patch from head 
3379         s/unix sercurity context/selinux security context/
3380
3381 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3382
3383         * python/Makefile.am: dbus_binding.pxd.in should be included 
3384         in EXTRA_DIST not dbus_binding.pxd
3385         fix up $(srcdir) hopefully for the last time
3386
3387         * NEWS: Update to 0.35.1
3388
3389 2005-07-16  Colin Walters  <walters@verbum.org>
3390
3391         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3392         from bus_driver_handle_get_connection_unix_security_context.  Update for
3393         error usage.
3394         (message_handlers): Update for renames.
3395
3396         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3397         _dbus_string_init failure correctly.
3398         (bus_selinux_append_context): Convert SID to context.  Append it
3399         as a byte array.
3400         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3401         hasn't been called.
3402
3403         * bus/selinux.h: Update prototype.
3404
3405         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3406         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3407
3408 2005-07-15  Colin Walters  <walters@verbum.org>
3409
3410         * doc/TODO: Add note about convenience wrappers.
3411
3412 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3413
3414         * NEWS: Update to 0.35
3415
3416 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3417
3418         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3419         so distcheck doesn't fail
3420
3421         * glib/examples/Makefile.am: Add example-service.xml and 
3422         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3423
3424         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3425         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3426
3427         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3428         compiler looks in the right places during distcheck
3429
3430 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3431
3432         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3433         to fail
3434
3435 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3436
3437         * python/examples/example-service.py,
3438         python/examples/example-signal-emitter.py: Fixed up examples
3439         for API changes
3440
3441 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3442
3443         * python/__init__.py: Upped to version (0,42,0) because of
3444         the API change
3445
3446 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3447
3448         * ChangeLog: fix date in last entry
3449
3450         * configure.in, bus/system.conf.in: add the ability to configure 
3451         the system bus user at compiletime with the --with-dbus-user flag
3452         (patch from Kristof Vansant)
3453
3454 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3455
3456         * bus/dispatch.c, test/test-service.c: Add testcase
3457         for sending messages to oneself (TODO item).
3458
3459         * python/service.py (class Object): Swap ordering of bus_name 
3460         and object_path parameters to better support inheritance.
3461
3462         * doc/dbus-tutorial.xml: change Python docs to reflect change
3463         in parameter ordering and fix the inheritance section.
3464
3465         * doc/TODO: remove sending message to oneself TODO item
3466
3467 2005-07-15  Ross Burton  <ross@openedhand.com>
3468
3469         * glib/dbus-gproxy.c:
3470         Fix a leak when calling methods via the proxy.
3471
3472 2005-07-15  Colin Walters  <walters@verbum.org>
3473
3474         * bus/selinux.c (bus_selinux_append_context): Wrap in
3475         HAVE_SELINUX.
3476
3477 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3478
3479         * python/_dbus.py (Bus::remove_signal_receiver):
3480         don't add a callback to the match if none has been passed in
3481         
3482         * python/matchrules.py (SignalMatchTree::remove): if the rule
3483         being matched does not have a callback treat it as a wildcard
3484         fix matching logic
3485
3486         * doc/dbus-tutorial.xml: Add Python tutorial
3487
3488 2005-07-14  Colin Walters  <walters@verbum.org>
3489
3490         * bus/driver.c
3491         (bus_driver_handle_get_connection_unix_security_context): New function.
3492         (message_handlers): Add.
3493
3494         * bus/selinux.c (bus_selinux_append_context): New function; appends
3495         security context to message.
3496
3497         * bus/selinux.h: Prototype.
3498
3499         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3500
3501 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * bus/activation.c: clean up all tabs to be 8 spaces 
3504         (bus_activation_activate_service): make sure we clean up
3505         if activation fails
3506
3507         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3508         (check_shell_fail_service_auto_start): New function
3509         tests to make sure we get fail properly when trying to auto start a service
3510         with a faulty command line
3511         (check_shell_service_success_auto_start): New function tests to make sure
3512         auto started services get the arguments on the command line
3513
3514         * test/test-shell-service.c: Added service for testing auto-starting with 
3515         command line arguments
3516
3517         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3518         test/data/valid-service-files/debug-shell-echo-success.service.in:
3519         Added service files for testing auto-starting with command line arguments
3520
3521         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3522
3523 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3524
3525         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3526         
3527         * dbus/Makefile.am: added new files to build.
3528
3529         * bus/activation.c (bus_activation_activate_service): support
3530         activation commands with parameters.
3531
3532         * test/shell-test.c: added test program for the shell parsing
3533         code.
3534
3535 2005-07-13  David Zeuthen  <davidz@redhat.com>
3536
3537         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3538         64 bit signed and unsigned parameters
3539
3540 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3541
3542         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3543
3544         * python/service.py (class Name): renamed BusName to make it clearer
3545         what the object is for (a name on the bus)
3546
3547         * python/examples/example-service.py,
3548         python/examples/example-signal-emitter.py: change the Name object to
3549         BusName
3550
3551 2005-07-12  Colin Walters  <walters@verbum.org>
3552
3553         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3554
3555         * tools/dbus-launch.c: Include sys/select.h.
3556
3557 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3558         * python/dbus_bindings.pyx.in: removed
3559
3560         * python/dbus_bindings.pyx: Added.
3561         - Fixed some memleaks (patch from 
3562         Sean Meiners <sean.meiners@linspireinc.com>)
3563         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3564         own pxd file (Pyrex definition)
3565         - Broke out glib dependancies into its own pyx module
3566         
3567         * python/dbus_bindings.pdx: Added.
3568         - Defines C class Connection for exporting to other modules
3569
3570         * python/dbus_glib_bindings.pyx: Added.
3571         - New module to handle lowlevel dbus-glib mainloop integration
3572
3573         * python/glib.py: Added.
3574         - Registers the glib mainloop when you import this module
3575
3576         * python/services.py: Removed (renamed to service.py)
3577         
3578         * python/service.py: Added.
3579         - (class Server): renamed Name
3580
3581         * python/__init__.py: Bump ro version (0,41,0)
3582         -don't import the decorators or service module
3583         by default.  These now reside in the dbus.service namespace
3584
3585         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3586         setup function on creation 
3587
3588         * python/examples/example-service.py,
3589         python/examples/example-signal-emitter.py: update examples
3590
3591         * python/examples/gconf-proxy-service.py,
3592         python/examples/gconf-proxy-service2.py: TODO fix these up
3593
3594         * doc/TODO: Addition
3595         - Added a Python Bindings 1.0 section
3596         - added "Add match on args or match on details to match rules"
3597
3598
3599 2005-07-12  Colin Walters  <walters@verbum.org>
3600
3601         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3602         (statemachine-glue.h): 
3603         * glib/examples/Makefile.am (example-service-glue.h) 
3604         (example-signal-emitter-glue.h): 
3605         * glib/Makefile.am (dbus-glib-error-switch.h): 
3606         Add libtool --mode=execute so we use the built library instead
3607         of any installed one.
3608
3609 2005-07-11  Colin Walters  <walters@verbum.org>
3610
3611         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3612         (dbus_g_value_types_init): Remove assertion.
3613         (dbus_g_value_get_g_type, dbus_g_value_open)
3614         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3615         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3616         functions related to DBusGValue.  Now we marshal/demarshal
3617         structures as GValueArray.
3618         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3619         structures.
3620         (signature_iter_to_g_type_array): Don't call
3621         signature_iter_to_g_type_struct.
3622         (signature_iter_to_g_type_struct): Delete.
3623         (dbus_gvalue_to_signature): Delete.
3624         (dbus_gvalue_to_signature): New function with same name as other
3625         one; we can convert structures to signatures.
3626         (demarshal_valuearray): New function.
3627         (get_type_demarshaller): Use it.
3628         (demarshal_recurse): Delete.
3629         (marshal_proxy): New function.
3630         (marshal_map): Warn if we can't determine signature from type.
3631         (marshal_collection_ptrarray): Ditto.
3632         (marshal_collection_array): Ditto.
3633         (get_type_marshaller): Use marshal_valuearray.
3634         (marshal_recurse): Delete.
3635         (_dbus_gvalue_test): Add some tests.
3636
3637         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3638         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3639         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3640         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3641         (dbus_g_value_free): Remove prototypes.
3642
3643         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3644         G_TYPE_VALUE_ARRAY.
3645
3646         * glib/examples/example-service.c:
3647         * glib/examples/example-client.c: Implement GetTuple.
3648
3649         * test/glib/test-dbus-glib.c:
3650         * test/glib/test-service-glib.c:
3651         * test/glib/test-service-glib.xml: Add structure tests.
3652
3653 2005-07-10  Colin Walters  <walters@verbum.org>
3654
3655         * doc/TODO: Knock off some GLib items with this patch.
3656
3657         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3658         (_dbus_gvalue_signals_error): New functions.
3659
3660         * glib/dbus-gvalue-utils.h: Prototype them.
3661
3662         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3663         and change to not output const/retval flags for input args.  All
3664         callers updated.
3665         (invoke_object_method): Refactor to handle return values.  Add
3666         some more comments in various places.  Remove debug g_print.
3667
3668         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3669
3670         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3671         Handle G_TYPE_NONE.
3672         (compute_gsignature): New function; refactored from code from
3673         compute_marshaller and compute_marshaller_name.  Enhance to
3674         handle return values and async ops more cleanly.  Update for
3675         async ops returning NONE instead of BOOLEAN.
3676         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3677         and output appropriate string.
3678         (generate_glue): Handle return value annotation.  Also don't dump
3679         constness flag for input arguments.
3680
3681         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3682         files shared between installed library and utilities.
3683         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3684         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3685         binding tool can access gtype utility functions.
3686
3687         * test/glib/test-service-glib.c: 
3688         * test/glib/test-service-glib.xml: 
3689         * test/glib/test-dbus-glib.c: Add some tests for return values.
3690
3691 2005-07-09  Colin Walters  <walters@verbum.org>
3692
3693         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3694         argument if available, not method.
3695
3696         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3697         (invoke_object_method): First, remove some redundant
3698         GValues (object_value, error_value) in favor of working on
3699         array directly.  Second, rework constness to be less buggy.
3700         Now we iterate directly over the argument metadata instead
3701         of parallel iterating over output signature and metadata.
3702
3703         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3704
3705         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3706         annotation on input args.
3707         
3708 2005-07-09  Colin Walters  <walters@verbum.org>
3709
3710         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3711         Define.
3712
3713         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3714         annotation.
3715
3716         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3717         (method_dir_signature_from_object_info): Handle arg_iterate change.
3718         (write_interface): Ditto.
3719         (lookup_object_info): Don't barf if format_version is > 0.
3720         (invoke_object_method): Handle arg constness.
3721
3722         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3723         (arg_info_new): Create.
3724         (arg_info_unref): Destroy.
3725         (arg_info_get_annotations, arg_info_get_annotation) 
3726         (arg_info_add_annotation): New functions.
3727
3728         * glib/dbus-gidl.h: Prototype them.
3729
3730         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3731         args, disallow them in properties.
3732         (parse_annotation): Handle arg annotations.
3733
3734         * test/glib/test-service-glib.xml: 
3735         * test/glib/test-service-glib.c: Update to make some methods
3736         const.
3737
3738 2005-07-08  Colin Walters  <walters@verbum.org>
3739
3740         * test/glib/test-service-glib.xml: 
3741         * test/glib/test-service-glib.c:
3742         * test/glib/test-dbus-glib.c: Test a{sv}.
3743
3744         * glib/examples/statemachine/statemachine.c:
3745         * glib/examples/statemachine/statemachine-server.c:
3746         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3747         add progress bar, etc.
3748
3749         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3750         needed anymore due to generic array/map marshalling.
3751         (dbus_g_value_types_init): Don't register basic arrays or the
3752         string/string hash.
3753         (dbus_gtype_from_signature_iter): Don't try to recurse into
3754         variants.
3755         (dbus_gtype_to_signature): Check collection/map before type
3756         metadata.
3757         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3758         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3759         generic map creation/append functions instead of hash table
3760         specifically.
3761         (get_type_demarshaller): Handle maps.
3762         (demarshal_collection): Dispatch on collection type to either
3763         demarshal_collection_ptrarray or demarshal_collection_array.
3764         (get_type_marshaller): Handle maps.
3765         (marshal_collection): Dispatch collection type to either
3766         marshal_collection_ptrarray or marshal_collection_array.
3767         (_dbus_gvalue_test): New test.
3768
3769         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3770         (hash_free_from_gtype): Use it to free GValues.
3771         (hashtable_append): New function.
3772         (ptrarray_append): Fix prototype.
3773         (slist_append): Ditto.
3774         (_dbus_gvalue_utils_test): Extend tests.
3775
3776         * glib/dbus-gtype-specialized.c
3777         (dbus_g_type_specialized_init_append): Renamed from
3778         dbus_g_type_specialized_collection_init_append.  Remove const from
3779         value, since we steal it.
3780         (dbus_g_type_specialized_map_append): New function.
3781
3782         * glib/dbus-gtype-specialized.h: Update prototypes.
3783         Add DBusGTypeSpecializedMapAppendFunc.
3784
3785         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3786         _dbus_gvalue_test.
3787         
3788         * glib/dbus-gtest.h: Prototype it.
3789
3790 2005-07-08  Ross Burton  <ross@openedhand.com>
3791
3792         * dbus/dbus-glib.h:
3793         Add DBysGAsyncData for the async bindings.
3794
3795         * glib/dbus-binding-tool-glib.c:
3796         Re-enable the async bindings.
3797
3798         * test/glib/test-dbus-glib.c:
3799         Add a test for the generated async bindings.
3800
3801 2005-07-08  Colin Walters  <walters@verbum.org>
3802
3803         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3804         connection concept.
3805         
3806 2005-07-08  Colin Walters  <walters@verbum.org>
3807         
3808         * tools/Makefile.am: Kill of print-introspect in favor of using
3809         dbus-send --print-reply=literal.
3810
3811         * test/glib/test-service-glib.xml: 
3812         * test/glib/test-service-glib.c (my_object_get_objs): New test
3813         for "ao".
3814
3815         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3816         (main): Test GetObjs.
3817
3818         * glib/examples/statemachine/Makefile.am:
3819         * glib/examples/statemachine/sm-marshal.list:
3820         * glib/examples/statemachine/statemachine-client.c:
3821         * glib/examples/statemachine/statemachine-server.c:
3822         * glib/examples/statemachine/statemachine-server.xml:
3823         * glib/examples/statemachine/statemachine.c:
3824         * glib/examples/statemachine/statemachine.h:
3825         * glib/examples/statemachine/statemachine.xml:
3826
3827         New example.
3828
3829         * glib/examples/example-service.c (main): Move invocation
3830         of dbus_g_object_type_install_info earlier, to emphasize it
3831         should only be done once.
3832
3833         * glib/examples/example-signal-emitter.c (main): Ditto.
3834
3835         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3836
3837         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3838         (dbus_gvalue_marshal): Update prototypes.
3839
3840         * glib/dbus-gvalue.c: Update all marshalling functions to take
3841         const GValue instead of GValue.
3842         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3843         types.
3844         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3845         change.
3846         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3847         Return a newly-allocated string.
3848         (demarshal_proxy, demarshal_object_path, demarshal_object)
3849         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3850         we get the wrong types from message.
3851         (get_type_demarshaller): New function, extracted from
3852         dbus_gvalue_demarshal.
3853         (demarshal_collection): New function, demarshals generic
3854         collection.
3855         (dbus_gvalue_demarshal): Just invoke result of
3856         get_type_demarshaller.  Throw error if we don't have one.
3857         (marshal_garray_basic): Abort on OOM.
3858         (get_type_marshaller): New function, extracted from
3859         dbus_gvalue_marshal.
3860         (collection_marshal_iterator, marshal_collection): New functions;
3861         implements generic marshalling for an iteratable specialized
3862         collection.
3863         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3864
3865         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3866         G_TYPE_STRING.
3867         (ptrarray_value_from_gvalue): Ditto.
3868         (ptrarray_append, ptrarray_free): New functions.
3869         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3870         (slist_append, slist_end_append, slist_free): New functions.
3871         (dbus_g_type_specialized_builtins_init): Add append fuctions
3872         for GPtrArray and GSList.  Register GSList.
3873         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3874
3875         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3876         New.
3877         (dbus_g_type_specialized_collection_init_append)
3878         (dbus_g_type_specialized_collection_append)
3879         (dbus_g_type_specialized_collection_end_append): Prototype.
3880         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3881         end_append_func.
3882
3883         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3884         (dbus_g_type_specialized_collection_append) 
3885         (dbus_g_type_specialized_collection_end_append): New functions.
3886         (dbus_g_type_map_value_iterate): Take const GValue.
3887         (dbus_g_type_collection_value_iterate): Ditto.
3888
3889         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3890         _dbus_gvalue_utils_test.
3891         
3892         * glib/dbus-gtest.h: Prototype it.
3893
3894         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3895         using uninitialized owner_list.
3896         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3897         public API.
3898         (dbus_g_proxy_end_call_internal): Update to use error set
3899         from dbus_gvalue_demarshal instead of setting it here.
3900         (dbus_g_proxy_begin_call): Move return_if_fail here.
3901
3902         * glib/dbus-gobject.c (write_interface): Update for
3903         dbus_gtype_to_signature returning new string.
3904
3905         * configure.in: Add glib/examples/statemachine.
3906
3907 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3908
3909         * configure.in: Add a configure option, --with-console-auth-dir
3910         
3911         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3912         new setting.  Patch from Kay Sievers.
3913
3914 2005-07-06  Colin Walters  <walters@verbum.org>
3915
3916         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3917         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3918         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3919         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3920         Delete in favor of dbus_g_proxy_begin_call and
3921         dbus_g_proxy_cancel_call.
3922         (DBusGProxyCall, DBusGProxyCallNotify): New.
3923         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3924         data, and destroy function.  This replaces
3925         dbus_g_pending_call_set_notify.
3926         (dbus_g_proxy_cancel_call): Prototype.
3927         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3928
3929         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3930         pending_calls map.
3931         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3932         internal proxy for calls to the bus. Remove
3933         pending_nameowner_calls, now the internal proxy keeps track.
3934         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3935         pending_nameowner_calls.
3936         (got_name_owner_cb): Update prototype, and use
3937         dbus_g_proxy_end_call.
3938         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3939         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3940         favor of using internal proxy.
3941         (dbus_g_proxy_manager_unregister): Update to use
3942         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3943         (dbus_g_proxy_init): Initialize pending calls map.
3944         (dbus_g_proxy_constructor): New.
3945         (dbus_g_proxy_class_init): Add get/set property functions,
3946         constructor, and add NAME, PATH, and INTERFACE properties.
3947         (cancel_pending_call): New function.
3948         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3949         cancel them.
3950         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3951         (GPendingNotifyClosure): New structure.
3952         (d_pending_call_notify, d_pending_call_free): Moved here from
3953         dbus-glib.c.
3954         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3955         ordering.
3956         (manager_begin_bus_call): New internal function for talking to
3957         internal bus proxy.
3958         (dbus_g_proxy_new): Construct object using GObjet properties.
3959         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3960         Create closure of same, and insert call into map of pending calls.
3961         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3962         call.  Look up pending call in current set.  Remove it when we've
3963         completed.
3964         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3965         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3966         and destroy function directly.
3967         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3968         (dbus_g_proxy_call): Invoke with NULL callback.
3969         (dbus_g_proxy_cancel_call): New function, replaces
3970         dbus_g_pending_call_cancel.
3971
3972         * glib/dbus-gparser.c (validate_signature): Fix call to
3973         dbus_set_g_error.
3974
3975         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3976         New quark for attaching metadata to GType.
3977         (info_hash): Delete.
3978         (lookup_object_info): Look up using quark.
3979         (dbus_g_object_type_install_info): Check that a type is classed,
3980         not that it's an object.  Also just install type data using quark
3981         instead of using global hash.
3982
3983         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3984         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3985         (GPendingNotifyClosure): Delete.
3986         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3987         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3988
3989         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3990         client method generation until we can fix it...
3991         
3992         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3993         (load_from_service_thread_func): Ditto.
3994
3995         * tools/dbus-names-model.c (struct NamesModel): Hold
3996         DBusGProxyCall.
3997         (have_names_notify): Update prototype, use
3998         dbus_g_proxy_cancel_call.
3999         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4000
4001         * tools/dbus-monitor.c (filter_func): Update for print_message
4002         API change.
4003
4004         * test/glib/test-dbus-glib.c: Add more tests for async
4005         invocations.  Update many begin_call/end_call pairs to just use
4006         dbus_g_proxy_call.
4007
4008         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4009         allows us to dump print-introspect.c.
4010
4011         * tools/dbus-print-message.h (print_message): Add literal argument
4012         to print_message which is intended to allow printing arguments without
4013         metadata like "string=".
4014
4015         * tools/dbus-print-message.c (print_iter): Add literal argument.
4016         (print_message): Allow printing string messages literally.
4017
4018 2005-07-05  Colin Walters  <walters@verbum.org>
4019
4020         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4021         Remove value refcount leak, original patch from Jorn Baayen
4022         <jorn@openedhand.com>.  Also remove useless extra value in favor
4023         of prepending to value array directly.
4024
4025 2005-07-02  Colin Walters  <walters@verbum.org>
4026
4027         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4028
4029 2005-07-01  Colin Walters  <walters@verbum.org>
4030
4031         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4032         
4033         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4034         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4035         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4036         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4037
4038 2005-06-30  Colin Walters  <walters@verbum.org>
4039
4040         * test/glib/test-dbus-glib.c:
4041         * test/glib/test-service-glib.c:
4042         * test/glib/test-service-glib.xml: Update tests for new error
4043         setting bits, also add async tests (patch from Ross Burton).
4044
4045         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4046         DBUS_GLIB_THREADS_LIBS.
4047
4048         * glib/dbus-gproxy.c (get_name_owner)
4049         (dbus_g_pending_call_end_valist): Ditto.
4050
4051         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4052         domain (GQuark) to DBusGErrorInfo.  
4053         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4054         quark in error_metadata.  Take message interface as default
4055         error message interface.
4056         (gerror_to_dbus_error_message): Pass message interface.
4057         (dbus_set_g_error): Resurrected.
4058         (dbus_g_error_info_free): New function.
4059         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4060         of _peek to actually create the object class if it hasn't been
4061         created yet.
4062         (dbus_g_error_domain_register): New function.
4063
4064         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4065
4066         * glib/dbus-gparser.c (validate_signature): Ditto.
4067
4068         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4069         (dbus_g_error_domain_register): Prototype.
4070
4071         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4072         Update tests.
4073
4074 2005-06-29  Colin Walters  <walters@verbum.org>
4075
4076         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4077         DBUS_TYPE_G_OBJECT_PATH.
4078
4079         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4080         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4081         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4082         (dbus_g_object_path_get_g_type): New function.
4083         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4084         to DBUS_TYPE_G_OBJECT_PATH by default.
4085         (demarshal_proxy): Remove unused name variable.
4086         (demarshal_object_path, marshal_object_path): New functions.
4087         (demarshal_proxy_array, marshal_proxy_array): Delete.
4088         
4089         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4090         DBUS_TYPE_G_OBJECT_PATH to char *.
4091         (dbus_g_type_get_lookup_function): Map builtin
4092         DBUS_TYPE_G_OBJECT_PATH.
4093
4094         * test/glib/test-dbus-glib.c
4095         * test/glib/test-service-glib.c (my_object_objpath): 
4096         Adapt tests to new object path marshalling.
4097
4098 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4099
4100         * configure.in: force check for Python >= 2.4
4101
4102 2005-06-29  Colin Walters  <walters@verbum.org>
4103         
4104         Patch from Ross Burton <ross@openedhand.com>
4105         
4106         * glib/dbus-gobject.c (invoke_object_method): Unset object
4107         value in all cases, not only in async case.
4108
4109 2005-06-29  Colin Walters  <walters@verbum.org>
4110
4111         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4112         name_call for keeping track of any outgoing GetNameOwner call.
4113         Also add for_owner and associated.
4114         (struct _DBusGProxyManager): Add owner_names, which is hash table
4115         that maps a base name to a list of names it owns (that we're
4116         interested in).  Add pending_nameowner_calls which is a list of
4117         all outstanding GetNameOwner; avoids us having to iterate over
4118         every proxy.  Add unassociated_proxies which keeps track of name
4119         proxies with no associated name owner.
4120         (dbus_g_proxy_manager_unref): Destroy owner_names.
4121         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4122         name refcounts.
4123         (find_name_in_info, name_owner_foreach)
4124         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4125         (dbus_g_proxy_manager_monitor_name_owner)
4126         (dbus_g_proxy_manager_unmonitor_name_owner)
4127         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4128         New functions; they manipulate the owner_names mapping.
4129         (got_name_owner_cb): New function.
4130         (get_name_owner): New function, extracted from
4131         dbus_g_proxy_new_for_name_owner.
4132         (dbus_g_proxy_manager_register): For now we need to keep track of
4133         all NameOwnerChanged.  Also if the proxy is for a name, if we
4134         don't already know the name owner, queue a new GetNameOwner
4135         request and add it to our list of unassociated proxies.  Otherwise
4136         inc the refcount.
4137         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4138         cancel any pending GetNameOwner call, etc.
4139         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4140         the owner_names mapping to look up the current names for the
4141         signal source, and dispatch to any proxies for that name.
4142         (dbus_g_proxy_new): Initialize new members.
4143         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4144         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4145         (dbus_g_pending_call_end_valist): New function, extracted from
4146         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4147         but want to use the GLib infrastructure.  Also note how many
4148         arguments in reply were over.
4149         (dbus_g_pending_call_end): New function, just call
4150         dbus_g_pending_call_end_valist.
4151         (dbus_g_proxy_end_call_internal): Just call
4152         dbus_g_pending_call_end_valist.
4153
4154         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4155         of builtin marshaller for STRING_STRING_STRING.
4156
4157         * test/glib/test-dbus-glib.c: 
4158         * test/glib/test-service-glib.c:
4159         * test/glib/test-service-glib.xml:
4160         Extend tests to cover name proxies, destruction of owner proxies,
4161         etc.
4162         
4163         * glib/examples/example-signal-recipient.c
4164         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4165         
4166         * tools/dbus-send.c (main): Print D-BUS error name in addition
4167         to message.
4168
4169 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4170
4171         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4172         cmessage_function_handler): Patch from 
4173         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4174         by using the Py_GILState_Ensure/Release to synchronize with the
4175         python runtime.
4176         
4177 2005-06-28  Ray Strode  <rstrode@redhat.com>
4178
4179         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4180         babysitter helper process on last unref, bug #2813.
4181
4182 2005-06-27  Colin Walters  <walters@verbum.org>
4183
4184         * test/glib/test-dbus-glib.c: 
4185         * test/glib/test-service-glib.c:
4186         * test/glib/test-service-glib.xml:
4187         Test hash table signal emitting.
4188
4189         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4190         types to their fundamental basis types, since this is what
4191         marshallers operate on.  Also add an entry for VOID__BOXED.
4192         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4193
4194 2005-06-26  Havoc Pennington  <hp@redhat.com>
4195
4196         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4197         from Don Park
4198
4199 2005-06-26  Colin Walters  <walters@verbum.org>
4200
4201         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4202         (dbus_g_error_set): New public function from its ashes; used by
4203         both service-side method implementation and GLib bindings
4204         internals.
4205         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4206         (_dbus_glib_test): Add some tests.
4207
4208         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4209
4210         * test/glib/test-service-glib.c (my_object_throw_error): Use
4211         dbus_g_error_set.
4212
4213         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4214         errors thrown by dbus_g_error_set.
4215
4216         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4217
4218         * glib/dbus-gparser.c (validate_signature): Ditto.
4219
4220         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4221         (dbus_g_proxy_end_call_internal): Ditto.
4222
4223         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4224         converts DBUS_ERROR_x to DBUS_GERROR_x.
4225         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4226
4227         * doc/TODO: Remove error TODO.
4228
4229         * doc/dbus-tutorial.xml: Update with documentation about error
4230         handling.
4231
4232         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4233         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4234         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4235
4236 2005-06-22  Colin Walters  <walters@verbum.org>
4237         
4238         Patch from Ross Burton <ross@openedhand.com>
4239
4240         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4241
4242 2005-06-20  Colin Walters  <walters@verbum.org>
4243
4244         * configure.in: Add glib/examples.
4245
4246         * glib/Makefile.am: Add examples/
4247
4248         * glib/examples/.cvsignore
4249         * glib/examples/Makefile.am
4250         * glib/examples/example-client.c
4251         * glib/examples/example-service.c
4252         * glib/examples/example-service.xml
4253         * glib/examples/example-signal-emitter.c
4254         * glib/examples/example-signal-emitter.xml
4255         * glib/examples/example-signal-recipient.c:
4256         New files; GLib binding examples, ported from
4257         python/examples.
4258
4259 2005-06-20  Colin Walters  <walters@verbum.org>
4260
4261         * dbus/dbus-glib.h: 
4262         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4263         dbus_g_proxy_call.
4264
4265         * glib/dbus-binding-tool-glib.c: 
4266         * doc/dbus-tutorial.xml: 
4267         * test/glib/test-dbus-glib.c: Update for rename.
4268         
4269 2005-06-20  Colin Walters  <walters@verbum.org>
4270
4271         Patch suggested by Ross Burton <ross@openedhand.com>
4272
4273         * glib/dbus-gobject.c (export_signals): Free signal name.
4274         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4275         memory leak.  Add a bit of documentation.
4276         (dbus_g_method_return_error): Free context, and note we do
4277         so.
4278
4279 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4280
4281         * dbus/dbus-glib.h:
4282         * glib/dbus-gobject.c:
4283         * glib/dbus-gproxy.c:
4284         * glib/dbus-gvalue.c: Predeclare structs as 
4285         typedef struct _Something Something instead of 
4286         typedef struct Something Something, so we can 
4287         redeclare the prototypes. Other GNOME libraries 
4288         do this already.
4289
4290 2005-06-17  Colin Walters  <walters@verbum.org>
4291
4292         * tools/dbus-names-model.c (have_names_notify): Fix call
4293         to dbus_g_proxy_end_call.
4294         
4295 2005-06-17  Colin Walters  <walters@verbum.org>
4296
4297         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4298         spew warnings if we get malformed remote signals.
4299
4300         * glib/dbus-gobject.c (propsig_iterate): New function.
4301         (lookup_object_info): New function, extracted from
4302         lookup_object_and_method.
4303         (introspect_properties, introspect_signals): Delete; these
4304         are merged into write_interface.
4305         (write_interface): Write out signals and properties here;
4306         dump the org.gtk.object stuff and use the interface given
4307         in the introspection data blob.  Also fix up property XML.
4308         (lookup_values): New function.
4309         (introspect_interfaces): Gather a mapping from interface to a
4310         list of its methods, signals, and properties, then write out
4311         each interface.
4312         (lookup_object_and_method): Use lookup_object_info.
4313         (struct DBusGSignalClosure): Add interface.
4314         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4315         we can just use the constant data.
4316         (dbus_g_signal_closure_finalize): Don't free signal name.
4317         (signal_emitter_marshaller): Use interface from signal closure.
4318         (export_signals): Only export signals mentioned in introspection
4319         blob.
4320         (dbus_g_connection_register_g_object): Warn if we have no
4321         introspection data for an object.
4322         (funcsig_equal): Remove unused variable.
4323         (dbus_g_object_register_marshaller): Take varargs instead of
4324         list.
4325         (dbus_g_object_register_marshaller_array): New function,
4326         extracted from old dbus_g_object_register_marshaller.
4327
4328         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4329         signals and property data.
4330         (write_quoted_string): New function, extracted from generate_glue.
4331         (generate_glue): Write signals and properties to introspection
4332         blob.
4333
4334         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4335         exported_signals and exported_properties.
4336         (dbus_g_object_register_marshaller): Update prototype.
4337         (dbus_g_object_register_marshaller_array): Prototype.
4338         
4339         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4340
4341         * test/glib/test-service-glib.c: Add new test signals and method
4342         to emit them.
4343
4344         * test/glib/test-service-glib.xml: Add some test signals.
4345
4346         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4347         and my-object-marshal.h
4348         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4349         my-object-marshal.c.
4350         (my-object-marshal.c, my-object-marshal.h): Implement.
4351
4352         * test/glib/.cvsignore: Update.
4353
4354         * doc/TODO: Remove two GLib TODO items fixed by this
4355         patch.
4356
4357 2005-06-16  Colin Walters  <walters@verbum.org>
4358
4359         * doc/TODO: Update for GLib bindings.
4360         
4361 2005-06-16  Colin Walters  <walters@verbum.org>
4362
4363         * glib/dbus-binding-tool-glib.c:
4364         * glib/dbus-gobject.c:
4365         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4366         from Ross Burton, for his GLib bindings work.
4367
4368 2005-06-16  Colin Walters  <walters@verbum.org>
4369
4370         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4371         to iterate instead of walking to G_TYPE_INVALID.
4372
4373         Patch based on a patch from Ryan Gammon.
4374
4375 2005-06-16  Colin Walters  <walters@verbum.org>
4376
4377         * bus/bus.c (bus_context_new): Set parser to NULL
4378         after we unref it (Patch from Chris Boscolo, #2174).
4379         
4380 2005-06-16  Colin Walters  <walters@verbum.org>
4381
4382         * python/dbus_bindings.pyx.in: Import size_t,
4383         __int64_t, __uint64_t, and __signed.
4384
4385         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4386         Define cmsg struct, output it.
4387         (_dbus_read_credentials_unix_socket):
4388         Use cmsg struct.
4389         
4390         Patch from Joe Markus Clarke for FreeBSD support.
4391         
4392 2005-06-16  Colin Walters  <walters@verbum.org>
4393
4394         * tools/dbus-send.c (append_array): Use strtok.
4395         (append_dict): New function.
4396         (type_from_name): New function, extracted from main.
4397         (main): Handle sending dicts.
4398
4399         * tools/dbus-print-message.c (print_iter): Print dict
4400         entries.
4401         
4402 2005-06-16  Colin Walters  <walters@verbum.org>
4403
4404         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4405         values as the empty string (#2948).
4406         
4407 2005-06-16  Colin Walters  <walters@verbum.org>
4408
4409         * dbus/Makefile.am:
4410         * mono/doc/Makefile.am:
4411         * test/glib/Makefile.am:
4412
4413         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4414
4415 2005-06-16  Colin Walters  <walters@verbum.org>
4416
4417         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4418         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4419
4420         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4421         Increment pointer after swapping fixed array.  Add assertion
4422         for array length.
4423                 
4424 2005-06-15  Colin Walters  <walters@verbum.org>
4425
4426         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4427         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4428         
4429 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4430
4431         * NEWS: Update to 0.34
4432
4433 2005-06-15  David Zeuthen  <davidz@redhat.com>
4434
4435         * configure.in (LT_CURRENT): Revert back to 1 as the library
4436         hasn't changed and we've certainly not committed to protocol
4437         stability yet.  All this does is to break ABI. See commit note
4438         from hp@redhat.com 2005-05-05 for details.
4439         
4440 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4441
4442         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4443         (_dbus_connection_run_builtin_filters): New method
4444         (dbus_connection_dispatch): Run the builtin filters which in turn
4445         runs the peer filter which handles Ping messages.
4446
4447         * doc/TODO: 
4448          - Ping isn't handled: This patch fixes it
4449          
4450          - Add a test case for the Ping message: added TODO item
4451
4452 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4453
4454         * dbus/dbus-message.c:
4455         (dbus_message_has_path): New method
4456         (dbus_message_has_interface): New method
4457         (dbus_message_has_member): New method
4458
4459         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4460         New method
4461
4462         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4463         the keyring directory is private to the user
4464
4465         * doc/TODO:
4466          - The convenience functions in dbus-bus.h should perhaps have
4467          the signatures that they would have if they were autogenerated
4468          stubs. e.g. the acquire service function. We should also evaluate
4469          which of these functions to include, in light of the fact that
4470          GLib/Qt native stubs will probably also exist.: Punted
4471
4472          - add dbus_message_has_path(), maybe has_member/interface:
4473          fixed in this patch
4474
4475          - in dbus-keyring.c, enforce that the keyring dir is not
4476          world readable/writable: Fixed in this patch
4477
4478 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4479
4480         * dbus/dbus-marshal-validate.h: Added a new validation
4481         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4482         out of memory errors when validating signitures
4483
4484         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4485         in places where we previously used DBUS_VALID and a FALSE return 
4486         value to indicate OOM
4487         
4488         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4489         Use a stack to track the number of elements inside containers.  The 
4490         stack values are then used to validate that dict entries have only two
4491         elements within them.
4492         (validate_body_helper): check the reason for failure when validating
4493         varients
4494         
4495         * dbus/dbus-message.c (load_message): use 
4496         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4497         DBUS_VALID and a FALSE return value to indicate OOM
4498
4499         * doc/TODO: remove "- validate dict entry number of fields" as this
4500         patch fixes it
4501
4502 2005-06-14  David Zeuthen  <davidz@redhat.com>
4503
4504         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4505         watches (if applicable) and add new watches
4506
4507         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4508         (main): Setup SIGIO signal handler if using D_NOTIFY
4509
4510         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4511
4512         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4513         (merge_included): Also merge conf_dirs list
4514         (bus_config_parser_unref): Clear conf_dirs list
4515         (include_dir): Add directory to conf_dirs list
4516         (bus_config_parser_get_conf_dirs): New function
4517
4518         * bus/dir-watch.[ch]: New files
4519
4520         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4521
4522         * configure.in: Add checks for D_NOTIFY on Linux
4523
4524 2005-06-14  Colin Walters  <walters@verbum.org>
4525
4526         * glib/dbus-binding-tool-glib.c:
4527         * glib/dbus-gobject.c:
4528         * glib/dbus-gvalue.c: Fix indentation and brace style.
4529         
4530 2005-06-14  Ross Burton <ross@openedhand.com>.
4531
4532         * glib/dbus-glib.h: Make DBusGMethodInvocation
4533         a private structure.  Rearrange prototypes a bit.
4534         
4535         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4536         documentation for first_arg_type.
4537         
4538         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4539         here, add documentation.  Move dbus_g_method_return
4540         and dbus_g_method_return_error into public API
4541         section.
4542
4543 2005-06-14  Colin Walters  <walters@verbum.org>
4544
4545         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4546         Add missing return statements, noticed by Ross Burton.
4547         
4548 2005-06-13  Ross Burton <ross@openedhand.com>.
4549
4550         * glib/dbus-gobject.c: Handle errors on message
4551         demarshalling by sending error message back.
4552         * glib/dbus-gvalue.c: Initialize return variables.
4553
4554 2005-06-13  Colin Walters  <walters@verbum.org>
4555
4556         * glib/Makefile.am: Fix thinko in last patch.
4557
4558 2005-06-13  Colin Walters  <walters@verbum.org>
4559
4560         * glib/Makefile.am: Move dbus-gtype-specialized.c
4561         and dbus-gtype-specialized.h into a _HEADERS variable,
4562         install them.
4563
4564 2005-06-12  Colin Walters  <walters@verbum.org>
4565
4566         Async signals and various bugfixes and testing by
4567         Ross Burton <ross@openedhand.com>.
4568
4569         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4570         (dbus_gvalue_genmarshal_name_from_type)
4571         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4572         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4573         (dbus_g_value_types_init, dbus_gtype_from_signature)
4574         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4575         (dbus_gtypes_from_arg_signature): New function prototypes.
4576         (dbus_gvalue_demarshal): Take context and error arguments.
4577         (dbus_gvalue_demarshal_variant): New function.
4578         (dbus_gvalue_demarshal_message): New function.
4579         (dbus_gvalue_store): Delete.
4580
4581         * glib/dbus-gvalue.c:
4582
4583         File has been almost entirely rewritten; now we special-case
4584         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4585         hash tables correctly, etc.  Full support for recursive values
4586         is not yet complete.
4587
4588         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4589         argument of signal to G_TYPE_POINTER since we now pass a
4590         structure.
4591         (lookup_g_marshaller): Delete in favor of
4592         _dbus_gobject_lookup_marshaller.
4593         (marshal_dbus_message_to_g_marshaller): Use
4594         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4595         to handle remote signal callbacks.
4596         (dbus_g_proxy_new_from_proxy): New function; creates a new
4597         DBusGProxy by copying an existing one.
4598         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4599         (dbus_g_proxy_get_path): New functions.
4600         (dbus_g_proxy_marshal_args_to_message): New function;
4601         factored out of existing code.
4602         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4603         from a varargs array.
4604         (dbus_g_proxy_begin_call_internal): New function.
4605         (dbus_g_proxy_end_call_internal): New function.
4606         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4607         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4608         after collecting args into value array.
4609         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4610         invoke dbus_g_proxy_end_call_internal.
4611         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4612         end_call_internal.
4613         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4614         types.
4615         (array_free_all): New function.
4616         (dbus_g_proxy_add_signal): Take GTypes.
4617
4618         * glib/dbus-gobject.h:
4619         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4620         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4621         Prototype.
4622
4623         * glib/dbus-gobject.c: Add a global marshal_table hash which
4624         stores mappings from type signatures to marshallers.  Change lots
4625         of invocations of dbus_gtype_to_dbus_type to
4626         dbus_gtype_to_signature.
4627         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4628         (introspect_signals): Fix test for query.return_type.
4629         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4630         (invoke_object_method): Many changes.  Handle asynchronous
4631         invocations.  Convert arguments with
4632         dbus_gvalue_demarshal_message.  Handle errors.  Use
4633         DBusSignatureIter instead of strlen on args. Handle all arguments
4634         generically.  Special-case variants.
4635         (dbus_g_method_return, dbus_g_method_return_error): New function.
4636         (DBusGSignalClosure): New structure, closes over signal
4637         information.
4638         (dbus_g_signal_closure_new): New function.
4639         (dbus_g_signal_closure_finalize): New function.
4640         (signal_emitter_marshaller): New function; is special marshaller
4641         which emits signals on bus.
4642         (export_signals): New function; introspects object signals and
4643         connects to them.
4644         (dbus_g_object_type_install_info): Take GType instead of
4645         GObjectClass.
4646         (dbus_g_connection_register_g_object): Invoke export_signals.
4647         (dbus_g_connection_lookup_g_object): New function.
4648         (DBusGFuncSignature) New structure; used for mapping type
4649         signatures to marshallers.
4650         (funcsig_hash): New function; hashes DBusGFuncSignature.
4651         (funcsig_equal): New function; compares DBusGFuncSignature.
4652         (_dbus_gobject_lookup_marshaller): New function.
4653         (dbus_g_object_register_marshaller): New function; used to
4654         register a marshaller at runtime for a particular signature.
4655
4656         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4657
4658         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4659         which notes a server method implementation should be
4660         asynchronous.
4661
4662         * glib/dbus-binding-tool-glib.c
4663         (dbus_binding_tool_output_glib_server): Call
4664         dbus_g_value_types_init.
4665         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4666         variants specially.
4667         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4668         of a lookup function.
4669         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4670         (write_untyped_out_args): New method; write output arguments.
4671         (write_formal_declarations_for_direction): Function for
4672         writing prototypes.
4673         (write_formal_parameters_for_direction): Function for
4674         writing implementations.
4675         (write_typed_args_for_direction): Function for writing
4676         arguments prefixed with GTypes.
4677         (write_async_method_client): Write out async version
4678         of method.
4679
4680         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4681         (dbus_g_type_get_marshal_name): Move mapping from GType
4682         to marshal name into here.
4683         (dbus_g_type_get_c_name): Move into here.
4684         (compute_marshaller): Convert signature to type with
4685         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4686         (compute_marshaller_name): Ditto.
4687         (compute_marshaller): Handle async signal annotations.
4688         (gather_marshallers): Return if we don't have a known
4689         prefix.
4690         (generate_glue): Collect introspection blob here, and
4691         write all of the blob at the end.  This allows an object
4692         with multiple interfaces to work.
4693         Mark async methods in introspection blob.
4694
4695         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4696         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4697         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4698
4699         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4700         avoids people accidentally using DBUS_TYPE_* which should
4701         not be necessary anymore.
4702         Do include dbus-gtype-specialized.h, which are utilities
4703         for GLib container types.
4704         Add various #defines for types such as
4705         DBUS_TYPE_G_BOOLEAN_ARRAY.
4706         (DBusGValueIterator, DBusGValue): Define, not fully used
4707         yet.
4708         (dbus_g_value_get_g_type): Type for recursive value.
4709         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4710         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4711         (dbus_g_value_free): Prototypes.
4712         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4713         (dbus_g_proxy_set_interface): Prototype.
4714         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4715         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4716         types.
4717         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4718         Accessors.
4719         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4720         doing async invocations.
4721         (dbus_g_method_return, dbus_g_method_return_error):
4722         Prototypes.
4723         * doc/dbus-tutorial.xml: Update GLib section.
4724         
4725         * tools/dbus-viewer.c (load_child_nodes): Update
4726         for new invocation type of dbus_g_proxy_end_call.
4727         (load_from_service_thread_func): Ditto.
4728
4729         * tools/print-introspect.c (main): Ditto.
4730
4731         * tools/dbus-names-model.c (have_names_notify)
4732         (names_model_reload, names_model_set_connection)
4733         Use GTypes.
4734
4735         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4736         needed since Python bindings use GLib bindings.
4737
4738         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4739         Add --prefix argument.
4740
4741         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4742         unneeded --ignore-unsupported arg.
4743         
4744         * test/glib/test-service-glib.c: 
4745         * test/glib/test-service-glib.xml:
4746         * test/glib/test-dbus-glib.c: Add many more tests.
4747
4748 2005-06-06  David Zeuthen  <davidz@redhat.com>
4749
4750         * doc/TODO: Add item about need to remove deprecated functions.
4751
4752         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4753
4754         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4755         to repair the ABI which was broken with the last commit.
4756
4757 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4758
4759         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4760         (dbus_connection_disconnect): renamed to dbus_connection_close 
4761         for API symmetry with dbus_connection_open
4762         (_dbus_connection_open_internal): 
4763         s/dbus_connection_disconnect/dbus_connection_close
4764
4765         * dbus/dbus-bus.c (dbus_bus_get):
4766         s/dbus_connection_disconnect/dbus_connection_close
4767
4768         * bus/connection.c (bus_connections_unref, 
4769         bus_connections_setup_connection, bus_connections_expire_incomplete):
4770         s/dbus_connection_disconnect/dbus_connection_close
4771
4772         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4773         kill_client_connection_unchecked, check_hello_connection):
4774         s/dbus_connection_disconnect/dbus_connection_close
4775
4776         * bus/bus.c (new_connection_callback):
4777         s/dbus_connection_disconnect/dbus_connection_close
4778
4779         * tools/dbus-send.c (main):
4780         s/dbus_connection_disconnect/dbus_connection_close
4781
4782         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4783         s/dbus_connection_disconnect/dbus_connection_close
4784         
4785         * test/test-service.c (path_message_func, filter_func):
4786         s/dbus_connection_disconnect/dbus_connection_close
4787         
4788         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4789         
4790 2005-05-25  Colin Walters  <walters@verbum.org>
4791
4792         * dbus/dbus-protocol.h: Move various bus service #defines such
4793           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4794           dbus/dbus-shared.h.
4795         * dbus/dbus-shared.h: Various defines moved here.
4796         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4797
4798 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4799
4800         * python/__init__.py: Python bindings deserve a minor version
4801         update.  Upped to (0, 40, 2)
4802
4803 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4804
4805         * python/decorators.py: add explicitly_pass_message decorator
4806         for passing in the dbus message as keyword for edge case signal
4807         handling
4808
4809         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4810         to conform with what dbus expects for match rules
4811         (SignalMatchRule.execute): add the dbus message as a keyword
4812         if the signal handler has requested it
4813
4814         * python/examples/example/signal-recipient.py: added some more
4815         examples on how to hook up to signals
4816
4817 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4818
4819         * python/decorators.py: import dbus_bindings
4820
4821         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4822         SignalMatchNode): new classes that implement wildcard signal
4823         callback matching using a tree lookup. Heavily modified from a
4824         patch sent by Celso Pinto (fd.o bug #3241)
4825
4826         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4827         use new match classes to handle signals.
4828
4829 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4830         
4831         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4832
4833 2005-05-18  Havoc Pennington  <hp@redhat.com>
4834
4835         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4836         gettext. Not really worth requiring yet perhaps, but any
4837         production quality 1.0 would require it so we should go ahead and
4838         get things set up. We do have a couple token calls to
4839         bindtextdomain in the code already.
4840
4841 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4842
4843         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4844         when using recursive g_main_loops
4845
4846         * python/_dbus.py (class Bus): add the ProxyObjectClass
4847         alias for ProxyObject to make it easier for the Twisted 
4848         networking framework to integrate dbus.
4849
4850         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4851         alias for ProxyMethod to make it easier for the Twisted 
4852         networking framework to integrate dbus. 
4853
4854 2005-05-11  Ross Burton  <ross@openedhand.com>
4855
4856         * glib/dbus-glib-tool.c: Add --prefix argument.
4857         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4858         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4859         Add prefix argument.
4860         (generate_glue): Pass prefix argument down.
4861         (dbus_binding_tool_output_glib_server): Pass prefix to
4862         glib-genmarshal.
4863         
4864 2005-05-11  Colin Walters  <walters@verbum.org>
4865
4866         * tools/dbus-send.c (append_array): New function.
4867         (append_arg): Broken out from main.
4868         (main): Add cheesy hack to send arrays and variants.
4869         (usage): Update.
4870         * tools/dbus-print-message.c (print_iter): Broken out
4871         from main.
4872
4873 2005-05-11  Colin Walters  <walters@verbum.org>
4874
4875         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4876         New function, returns signature string for signature iter.
4877         * dbus/dbus-signature.h: Prototype it.
4878         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4879         New function, returns signature string for message iter.
4880         (dbus_message_iter_get_array_len): New function, returns
4881         length of array.
4882         (dbus_message_iter_get_fixed_array): Fix assertion; this
4883         function should be used when the iter is pointing to the
4884         contents of an array
4885         * dbus/dbus-message.h: Prototypes.
4886         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4887         New function; returns length of an array.
4888         * dbus/dbus-marshal-recursive.h: Prototype it.
4889         
4890 2005-05-11  Colin Walters  <walters@verbum.org>
4891
4892         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4893         compilation error.
4894         
4895 2005-05-08  Havoc Pennington  <hp@redhat.com>
4896
4897         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4898         daemon's pid, not the parent's pid, to the file descriptor.
4899         Reported by Taj Morton.
4900
4901 2005-05-05  Havoc Pennington  <hp@redhat.com>
4902
4903         * configure.in (LT_*): add notes on how the libtool versioning
4904         works to save thinking. Increment soname to indicate protocol
4905         breakage (though really the library interface hasn't changed I
4906         guess)
4907
4908         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4909         verify the GUID received from server matches what we were
4910         expecting, if we had an expectation
4911
4912         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4913         (_dbus_auth_get_guid_from_server): new function
4914         (send_begin): parse the OK args
4915
4916         * doc/dbus-specification.xml: add GUID to the auth protocol
4917
4918 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4919
4920         * Fix my name in previous changelog ;)
4921
4922         * python/proxies.py (ProxyObject.__getattr__): add further patch
4923         from Anthony Baxter to throw an AttributeError when python 
4924         __special__ functions are called instead of marshling them over 
4925         the bus (Bug#1685 comment 3).
4926
4927 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4928
4929         * python/Makefile.am: changed to use pyexecdir for the binding
4930         shared libraries (Bug#2494)
4931
4932         * python/exceptions.py: bring exceptions over from the bindings
4933         so they can be used in applications (Bug#2036)
4934         Make all exceptions derive from DBusException
4935
4936         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4937         of classes so that print obj doesn't throw an exception (Bug #1685)
4938
4939 2005-05-03  Ross Burton  <ross@openedhand.com>
4940
4941         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4942         Return if we get an error during registration.  Set up a
4943         weak reference on object to unregister if object is destroyed.
4944         (unregister_gobject): New function.
4945         
4946 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4947
4948         * python/dbus_bindings.pyx.in: 
4949         - added new type classes for hinting to the marashaler what type 
4950         to send over the wire
4951         - added int16 and uint16 marshalers
4952         - Fixed a bug in the type constants that caused int32 to go out
4953         as uint16 over the wire
4954         * python/dbus.py: split up into different files and renamed _dbus.py
4955         * python/__init__.py, python/_util.py, python/decorators.py, 
4956         python/exceptions.py, python/proxies.py, python/services.py,
4957         python/types.py: new files split off from dbus.py
4958         * python/Makefile.am: Add new files, remove dbus.py and 
4959         install all python files to <python module dir>/dbus
4960         * python/examples/*: Added #!/usr/bin/env python to the top of
4961         every example.  Patch provided by Tatavarty Kalyan
4962
4963 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4964
4965         * NEWS: Update to 0.33
4966
4967 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4968
4969         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4970         method for doing async calls
4971         (_pending_call_notification): New C function for handling pendning call
4972         callbacks
4973         (set_notify): New method for setting pending call notification
4974         
4975         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4976         Async capabilities added to remote method calls
4977         (Sender): class removed
4978         (RemoteService): class removed
4979         (ObjectTree): class removed for now
4980         (RemoteObject): Renamed to ProxyObject
4981         (RemoteMethod): Renamed to ProxyMethod
4982         (method): Decorator added for decorating python methods as dbus methods
4983         (signal): Decorator added for decorating python methods as signal emitters
4984         (ObjectType): Metaclass added for generating introspection data and the
4985         method callback vtable
4986         (Interface): Wrapper class added to wrap objects in a dbus interface
4987         (Object): Uses ObjectType as its metaclass and exports Introspect
4988         of the org.freedesktop.DBus.Introspectable interface
4989         (ValidationException, UnknownMethodException): new exceptions
4990
4991         * python/examples/*: Modified to fit with the new bindings
4992
4993 2005-04-23  Havoc Pennington  <hp@redhat.com>
4994
4995         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4996         reported by Tony Houghton
4997
4998         * test/test-service.c (main): test
4999         dbus_connection_get_object_path_data()
5000
5001         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5002         the exact_match
5003         (_dbus_object_tree_get_user_data_unlocked): new function used by
5004         dbus_connection_get_object_path_data()
5005         (do_register): add assertion test for get_user_data_unlocked
5006         (object_tree_test_iteration): more tests
5007
5008         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5009         new function from Dan Reed to let you get the user data from 
5010         dbus_connection_register_object_path()
5011
5012 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5013
5014         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5015         in numerous places that did not account for the NULL terminator
5016         (signature_from_seed): changed the manual string copy loop to 
5017         just use strcpy instead
5018         make check should now pass
5019
5020 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5021
5022         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5023         so that it allows messages that are not signals to pass in 
5024         NULL as the interface.
5025
5026 2005-04-18  David Zeuthen  <davidz@redhat.com>
5027
5028         * glib/dbus-gmain.c (io_handler_destroy_source): 
5029         (timeout_handler_destroy_source, connection_setup_free): 
5030         Also unref the source to avoid memory leaks.
5031
5032 2005-04-13  David Zeuthen  <davidz@redhat.com>
5033
5034         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5035         more reasonable, yet still totally arbitrary, value :-). 
5036
5037 2005-04-13  David Zeuthen  <davidz@redhat.com>
5038
5039         * doc/TODO: Added an "important for 1.0" item about selinux
5040         allow/deny messages
5041
5042 2005-04-13  David Zeuthen  <davidz@redhat.com>
5043
5044         * bus/selinux.c: Add c-file-style to top of file
5045         (log_audit_callback): Don't free the data here anymore
5046         (bus_selinux_check): Don't take spid and tpid since appending
5047         that to auxdata may OOM.
5048         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5049         to the caller if we are OOM by taking an error object.
5050         (bus_selinux_allows_send): -do-
5051
5052         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5053         and bus_selinux_allows_send
5054
5055         * bus/bus.c (bus_context_check_security_policy): Pass error and
5056         pass on OOM thrown by bus_selinux_allows_send()
5057
5058         * bus/services.c (bus_registry_acquire_service): Pass error and
5059         pass on OOM thrown by bus_selinux_allows_acquire_service()
5060
5061 2005-04-13  Havoc Pennington  <hp@redhat.com>
5062
5063         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5064         message at a time to avoid monopolizing the main loop, bug 
5065         #2953 from Benjamin Otte
5066
5067 2005-04-09  Havoc Pennington  <hp@redhat.com>
5068
5069         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5070         possible overlap, fix from Daniel Reed
5071         (fixup_alignment): fix signedness warnings
5072         (_dbus_string_append_unichar): ditto
5073
5074 2005-04-09  Havoc Pennington  <hp@redhat.com>
5075
5076         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5077
5078         * glib/dbus-glib-tool.c (main): fix warning
5079
5080         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5081
5082         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5083         add a new function that can be used in simple applications that
5084         don't have a main loop and are willing to block
5085
5086 2005-04-05  David Zeuthen  <davidz@redhat.com>
5087
5088         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5089
5090         * glib/dbus-gmain.c:
5091         (io_handler_destroy_source): Remove from list of IO handlers
5092         of the ConnectionSetup object
5093         (timeout_handler_destroy_source): -do- for timeout handlers
5094         (io_handler_source_finalized): Don't remove from list since
5095         we now do that in io_handler_destroy_source(). Renamed from
5096         io_handler_source_destroyed
5097         (timeout_handler_source_destroyed): -do- for timeout handlers
5098         (connection_setup_free): It is now safe to iterate over all
5099         IO and timeout handlers as the _destroy_source removes them
5100         from the list synchronously
5101
5102 2005-03-30  Havoc Pennington  <hp@redhat.com>
5103
5104         * configure.in: change check to gtk 2.4
5105
5106         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5107         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5108         to 2.4
5109
5110 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5111
5112         * News: Update 0.32
5113
5114         * HACKING: Fixed realease instructions.  configure.in should be updated to
5115           the next release by the person who made the last release.
5116
5117 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5118
5119         * python/lvalue_cast_post_process.py - removed.  Patch has been
5120           submitted to Pyrex maintainers that fixes gcc4.0 errors
5121
5122         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5123
5124 2005-03-24  Daniel Reed  <n@ml.org>
5125
5126         * tools/Makefile.am: Make print-introspect and
5127         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5128
5129 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5130
5131         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5132
5133         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5134           had in Red Hat packages for a while but for some reason never 
5135           got merged upstream
5136           (_dbus_is_a_number): New checks if a string
5137           can be converted to a number and does the conversion if it can
5138           (_dbus_user_database_lookup): Add check to see if the given username
5139           is a udi.  This allows udi's to be used instead of usernames in the
5140           config file.
5141           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5142           is a gdi.  This allows gdi's to be used instead of groupnames in the
5143           config file.
5144
5145 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5146
5147         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5148           code so that it compiles with gcc4.0
5149
5150         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5151           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5152           results back to dbus_binding.c
5153
5154 2005-03-20  Colin Walters  <walters@verbum.org>
5155
5156         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5157
5158         * configure.in: Require GTK+ 2.6.
5159         
5160 2005-03-20  Colin Walters  <walters@verbum.org>
5161
5162         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5163
5164 2005-03-17  Tom Parker  <palfrey@tevp.net>
5165
5166         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5167         print DBUS_UID_UNSET; instead print passed username.  Also
5168         be sure to actually use gid looked up in cache.
5169         
5170         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5171         for DBUS_GID_UNSET and groupname.
5172
5173 2005-03-17  Colin Walters  <walters@verbum.org>
5174
5175         * bus/print-introspect.c: Move to tools/.
5176         * bus/run-with-tmp-session-bus.sh: Ditto.
5177         
5178         * glib/Makefile.am (dbus-glib-bindings.h): Move
5179         generation to tools/Makefile.am.
5180
5181         * test/glib/run-test.sh: Update to handle move
5182         of run-with-tmp-session-bus.sh.
5183
5184         * test/glib/test-service-glib.c: Update to handle
5185         move of dbus-glib-bindings.h.
5186
5187         * tools/print-introspect.c: Moved here
5188         from bus/, and ported to GLib bindings.
5189
5190         * tools/run-with-tmp-session-bus.sh: Moved here
5191         from bus/.
5192
5193         * tools/Makefile.am: Generate dbus-glib-bindings.h
5194         and dbus-bus-introspect.xml here.
5195
5196         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5197         Update.
5198
5199 2005-03-17  Colin Walters  <walters@verbum.org>
5200
5201         * bus/driver.c (write_args_for_direction): Use
5202         _dbus_string_get_const_data to retrieve string;
5203         _dbus_string_get_const_data_len doesn't actually return
5204         a NULL-terminated substring.
5205
5206         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5207         (main): Change to use org_freedesktop_DBus_request_name
5208         instead of using g_proxy_begin_call/end_call.
5209
5210 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5211
5212         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5213         generating the finalizer.  Fixes from Ben Maurer.
5214
5215 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5216
5217         * mono/BusDriver.cs: Update method names: ListServices
5218         becomes ListNames; GetOwner becomes GetNameOwner.
5219
5220         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5221         onto the eval stack when removing the delegate.
5222
5223 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5224
5225         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5226         LT_CURRENT.  Set it to the autoconf variable.
5227                                                                                 
5228         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5229         classes that disconnects the signal handler delegate from the
5230         service object.  Fixes a big leak of proxy objects on the
5231         client side of things.  Patch from Ben Maurer
5232         <bmaurer@ximian.com>
5233
5234 2005-03-12  Colin Walters  <walters@verbum.org>
5235
5236         * bus/driver.c (write_args_for_direction): New function,
5237         parses a type signature into arguments and outputs to
5238         XML.
5239         (bus_driver_handle_introspect): Use it instead of
5240         hardcoding XML for certain signatures.
5241         
5242         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5243         dependency on dbus-daemon.
5244
5245         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5246         argument, pass it to dbus_binding_tool_output_glib_client.
5247
5248         * glib/dbus-binding-tool-glib.c
5249         (generate_client_glue): Protect against multiple inclusion.
5250         (dbus_binding_tool_output_glib_client): Add
5251         G_BEGIN_DECLS/G_END_DECLS.
5252
5253         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5254         Change to just take iface prefix directly.
5255         (write_formal_parameters): Clarify error message.
5256         (check_supported_parameters): New function; checks to see type
5257         signatures of method parameters are supported.
5258         (generate_client_glue): Handle ignore_unsupported flag.
5259         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5260         parameter.
5261
5262         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5263         --ignore-unsupported by default until glib bindings
5264         support arrays.
5265
5266 2005-03-11  Colin Walters  <walters@verbum.org>
5267
5268         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5269         install it.
5270
5271         * bus/print-introspect.c: New file; prints introspection
5272         data for a given name and object path.
5273
5274         * bus/run-with-tmp-session-bus.sh: New file, refactored
5275         from test/glib/run-test.sh.  Creates a temporary session
5276         bus and runs another program.
5277
5278         * test/glib/run-test.sh: Refactor to invoke
5279         run-with-tmp-session-bus.sh.
5280
5281         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5282         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5283         macros instead of hardcoding.
5284
5285         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5286
5287 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5288
5289         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5290         this unref; it doesn't match up evenly in some codepaths.
5291         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5292         this evenly matches with the ref near the top of this function.
5293
5294 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5295
5296         * dbus/dbus-object-tree.c
5297         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5298         and we try to unregister a path that's not registered, still go
5299         through the process of unlocking and don't just return.
5300
5301 2005-03-09  Colin Walters  <walters@verbum.org>
5302
5303         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5304         to this are generated for client-side wrappers.  Invokes a
5305         D-BUS method and returns reply values.  
5306
5307         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5308         function; writes signature string for argument direction.
5309         (write_args_for_direction): Change to pass input values directly
5310         instead of via address, and fix indentation.
5311         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5312         make generated wrappers inlineable.
5313
5314         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5315         note about using dbus_type_is_fixed.
5316
5317         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5318         dbus/dbus-signature.c as dbus_type_is_fixed.
5319
5320         All callers updated.
5321
5322         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5323         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5324
5325         * dbus/dbus-signature.h: Prototype.
5326
5327         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5328         error printf code.
5329
5330         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5331         appropriate instead of just freeing it.
5332         (main): Free returned strings using g_free.
5333
5334         * test/glib/Makefile.am (test-service-glib-glue.h)
5335         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5336
5337         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5338         simply maps a simple D-BUS type to GType.
5339         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5340         GType.
5341         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5342         initialize the value with it.
5343         (dbus_gvalue_binding_type_from_type): Unused, delete.
5344         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5345         various types instead of unmarshalling to value data directly.
5346         Remove can_convert boolean.
5347         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5348         returning directly instead of using can_convert boolean.
5349         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5350         Stores a GValue in a pointer to a value of its corresponding C
5351         type.
5352
5353         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5354         add dbus_gvalue_store.
5355
5356 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5357
5358         Fix a bunch of lifecycle and memory management problems
5359         in the mono bindings.
5360
5361         * mono/Arguments.cs (Arguments): Implement IDisposable
5362
5363         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5364         strictly a static class.
5365
5366         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5367         delegates into this file.
5368         (Connection): Implement IDisposable.
5369         (Dispose): Disconnect the connection and set the raw connection
5370         pointer to IntPtr.Zero.
5371         (~Connection): Call Dispose().
5372         (RegisterObjectPath): Added.  Manages the registration of object
5373         paths so we can cleanly disconnect them at dispose/finalize time.
5374         (UnregisterObjectPath): Ditto.
5375         (set_RawConnection): Unregister all of the object paths when
5376         changing the underlying DBusConnection.  Add them back onto the
5377         new connection, if any.
5378
5379         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5380         more unmanaged resources anymore, so it's not necessary.  Move all
5381         the DBusObjectPathVTable stuff out of here.
5382         (Handler): Save references to our delegates so that they don't get
5383         finalized.  Call Connection.RegisterObjectPath() instead of
5384         dbus_connection_register_object_path() directly.
5385         (Message_Called): Dispose the message after we're finished with
5386         it.
5387
5388         * mono/Message.cs (Message): Implement IDisposable.
5389         (Dispose): Dispose the Arguments, and set the RawMessage to
5390         IntPtr.Zero.
5391         (SendWithReplyAndBlock): We own the ref to the reply that comes
5392         back from dbus_connection_send_with_reply_and_block() so add a
5393         comment about that and unref it after we've constructed a managed
5394         MethodReturn class around it.  Fixes a big, big leak.
5395
5396         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5397         method.
5398         (BuildSignalHandler): After we've sent the Signal message, dispose
5399         of it.
5400         (BuildMethod): Dispose of the method call and reply messages after
5401         we've sent the message and extracted the data we want from the
5402         reply.
5403
5404         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5405         anymore.
5406         (Service_FilterCalled): Dispose of the message after we're
5407         finished with it.
5408
5409 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5410
5411         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5412         After we attach our pending call to the connection, unref
5413         it.  Fixes a leak.
5414  
5415         * mono/Connection.cs (set_RawConnection): Disconnect our
5416         filter and match callbacks from the old connection and
5417         reconnect them to the new connection, if any.
5418
5419         * mono/DBusType/Array.cs: "Code" is a static member, so
5420         don't use "this" to refer to it.  Fix for stricter checking
5421         in Mono 1.1.4.
5422  
5423         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5424         object path that we pass into unmanaged code.
5425  
5426         * mono/DBusType/String.cs (Append): Don't leak the string
5427         that we pass into unmanged code.
5428
5429 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5430         * NEWS: Update for 0.31
5431
5432         * configure.in: Release 0.31
5433         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5434
5435         * qt/Makefile.am: fixed build
5436
5437         * dbus/Makefile.am: soname bump for libdbus
5438
5439         * glib/Makefile.am: soname bump for libdbus-glib
5440
5441 2005-03-05  Havoc Pennington  <hp@redhat.com>
5442
5443         * dbus/dbus-sysdeps.c:
5444         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5445         value
5446         (_dbus_generate_random_bytes_buffer): fix return value
5447
5448         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5449         checks actually work, from Tom Parker <fdo@tevp.net>
5450
5451 2005-03-01  Colin Walters  <walters@verbum.org>
5452
5453         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5454         functions copied from dbus-glib-tool.c.
5455         (main): Convert lots of error code to use them.
5456         Also add some testing for introspection bits.
5457
5458 2005-03-01  Colin Walters  <walters@verbum.org>
5459         
5460         * doc/TODO: Remove introspection signature TODO.
5461
5462 2005-02-27  Colin Walters  <walters@verbum.org>
5463
5464         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5465         Change return value to const char * instead of int so we can do
5466         full signatures.
5467         (struct PropertyInfo, struct ArgInfo): Store char *.
5468         (property_info_new, arg_info_new): Update parameters, strdup.
5469         (property_info_unref, arg_info_unref): Free.
5470
5471         * glib/dbus-gidl.h: Update prototypes.
5472
5473         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5474         (validate_signature): New function, just validates signature and
5475         sets GError.
5476         (parse_property, parse_arg): Invoke validate_signature.  Store
5477         signature instead of just type code.
5478
5479         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5480         function to return a primary type for a signature, dropping
5481         information about types in container types.
5482         (dbus_gvalue_genmarshal_name_from_type)
5483         (dbus_gvalue_binding_type_from_type)
5484         (dbus_gvalue_ctype_from_type): Update to take full signature
5485          instead of type code.
5486         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5487
5488         * glib/dbus-gvalue.h: Update prototypes for above.
5489
5490         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5491         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5492         (introspect_properties, introspect_signals, write_interface):
5493         Update to handle signatures, and remove usage of
5494         _dbus_gutils_type_to_string.
5495         (handle_introspect): Print out type codes instead of e.g. "string"
5496         in hardcoded introspection XML; also use x_AS_STRING constants
5497         instead of hardcoding in string.
5498
5499         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5500         to string.  Remove usage of _dbus_gutils_type_to_string.
5501
5502         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5503
5504         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5505         deletion.
5506         
5507         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5508         (compute_marshaller_name, generate_glue): Handle signature change
5509         to string.
5510         (write_formal_parameters, write_args_for_direction): Ditto, and
5511         remove FIXME.
5512
5513         * tools/dbus-tree-view.c (type_to_string): Delete.
5514         (info_set_func_text): Update to print full signatures.
5515
5516         * test/glib/test-service-glib.xml: Change types to new
5517         introspection format.
5518
5519 2005-02-26  Havoc Pennington  <hp@redhat.com>
5520
5521         * doc/TODO: remove the "guid" item
5522
5523         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5524         (with_bus_thread_func): use open_private
5525
5526         * dbus/dbus-connection.c (dbus_connection_open_private): new
5527         function that works like the old dbus_connection_open()
5528         (dbus_connection_open): now returns an existing connection if
5529         possible
5530
5531         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5532         through the GUID to the transport
5533
5534         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5535         GUID in hex-encoded form.
5536
5537         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5538         pass GUID argument in to the transport
5539
5540         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5541         guid argument
5542
5543         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5544
5545         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5546
5547 2005-02-25  Havoc Pennington  <hp@redhat.com>
5548
5549         * doc/dbus-specification.xml: document the GUID thing
5550
5551         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5552         globally unique ID for the server, and put a "guid=hexencoded"
5553         field in the address
5554
5555         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5556
5557         * dbus/dbus-message.c: ditto
5558
5559         * dbus/dbus-dataslot.c: ditto
5560
5561         * dbus/dbus-list.c: ditto
5562
5563         * dbus/dbus-internals.h: wait, just include
5564         dbus-threads-internal.h here
5565         
5566         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5567         use in main library
5568
5569         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5570
5571 2005-02-24  Colin Walters  <walters@verbum.org>
5572
5573         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5574
5575 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5576
5577         * glib/Makefile.am: added dbus-gobject.h to sources list
5578         so distcheck doesn't fail
5579         
5580 2005-02-24  Havoc Pennington  <hp@redhat.com>
5581
5582         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5583         you must disconnect before unref, since locking and other things
5584         are screwed up otherwise. Fix assorted other locking stuff.
5585
5586         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5587         fix compilation
5588
5589         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5590         into a private header and don't export from the library
5591
5592         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5593
5594 2005-02-24  Colin Walters  <walters@verbum.org>
5595         
5596         * dbus/dbus-signature.c: New file; implements various functions
5597         related to type signatures.  Includes an interator for parsing,
5598         validation functions.
5599         (dbus_type_is_basic): Moved here from
5600         dbus-marshal-basic.c:_dbus_type_is_basic.
5601         (dbus_type_is_container): Moved here from
5602         dbus-marshal-basic.c:_dbus_type_is_container.
5603
5604         All callers of _dbus_type_is_container and _dbus_type_is_basic
5605         updated, and include dbus-signature.h.
5606
5607         * dbus/dbus-signature.h: New file; prototypes for the above.
5608
5609         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5610         dbus-signature.h.
5611
5612         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5613         function factored out of _dbus_first_type_in_signature.
5614         (_dbus_first_type_in_signature_c_str): New function; returns first
5615         type code for a type signature character.
5616
5617         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5618         handle function moves.
5619
5620         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5621
5622         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5623         function; skips to next complete type in type signature.
5624         Implemented using previous skip_one_complete_type.  Now
5625         skip_one_complete_type just delegates to
5626         _dbus_type_signature_next.
5627
5628         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5629         to dbus-signature.c
5630         (_dbus_type_is_container): Ditto.
5631
5632         * doc/dbus-specification.xml: Update introspection sample to
5633         use real type signatures.
5634
5635         * dbus/dbus-test.h: Prototype signature test.
5636
5637         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5638         signature tests.
5639
5640         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5641
5642 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5643
5644         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5645         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5646
5647 2005-02-21  Colin Walters  <walters@verbum.org>
5648
5649         * dbus/dbus-test-main.c (main): Take optional specific test
5650         argument.
5651
5652         * dbus/dbus-test.c (run_test): New function, runs a test function
5653         with no data directory.
5654         (run_data_test): Like above, but takes data directory.
5655         (dbus_internal_do_not_use_run_tests): Take
5656         specific test argument.  Replace lots of cut n' paste code
5657         with run_test and run_data_test.
5658
5659         * dbus/dbus-test.h: Update prototype for
5660         dbus_internal_do_not_use_run_tests.
5661
5662 2005-02-20  Havoc Pennington  <hp@redhat.com>
5663
5664         Fix bugs reported by Daniel P. Berrange
5665         
5666         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5667         (protected_change_watch): new function
5668         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5669         (_dbus_server_add_watch): change to work like the
5670         dbus-connection.c equivalents; like those, probably kind of
5671         busted, but should at least mostly work for now
5672         (dbus_server_disconnect): drop the lock if we were already
5673         disconnected, patch from Daniel P. Berrange
5674
5675         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5676         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5677         same stuff
5678
5679         * doc/TODO: todo about unscrewing this mess
5680
5681 2005-02-19  Colin Walters  <walters@verbum.org>
5682
5683         * glib/dbus-binding-tool-glib.c
5684         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5685
5686         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5687         as errno.h and sys/stat.h.
5688         (lose): New function, prints error with
5689         newline and exits.
5690         (lose_gerror): Similar, but takes GError for message.
5691         (main): Add --output argument to specify output file to write to,
5692         instead of always printing to stdout.  In this mode, determine
5693         timestamps on source files to see whether any are newer than the
5694         target file.  If not, exit.  Also convert a number of error
5695         messages to use lose (since it's shorter), and switch to using
5696         g_io_channel_shutdown.
5697
5698 2005-02-19  Havoc Pennington  <hp@redhat.com>
5699
5700         * glib/dbus-gobject.c
5701         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5702
5703         * glib/dbus-glib.c: fix doxygen warnings
5704
5705         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5706         is found on an <arg>
5707
5708 2005-02-17  Colin Walters  <walters@verbum.org>
5709
5710         * glib/dbus-gobject.h: Don't export
5711         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5712         
5713         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5714         (invoke_object_method): Handle it.
5715
5716         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5717         Handle rename.
5718         
5719 2005-02-17  Colin Walters  <walters@verbum.org>
5720
5721         * bus/.cvsignore, doc/.cvsignore
5722         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5723         Update.
5724
5725 2005-02-17  Colin Walters  <walters@verbum.org>
5726         
5727         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5728         Rename to DBUS_SERVICE_DBUS.
5729         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5730         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5731         Change the value from "org.freedesktop.Local"
5732         to "org.freedesktop.DBus.Local".
5733         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5734         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5735         DBUS_INTERFACE_INTROSPECTABLE.
5736         Change the value from "org.freedesktop.Introspectable"
5737         to "org.freedesktop.DBus.Introspectable".
5738         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5739         DBUS_INTERFACE_PROPERTIES.
5740         Change the value from "org.freedesktop.Properties"
5741         to "org.freedesktop.DBus.Properties".
5742         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5743         DBUS_INTERFACE_PEER.
5744         Change the value from "org.freedesktop.Peer"
5745         to "org.freedesktop.DBus.Peer".
5746         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5747         DBUS_INTERFACE_LOCAL.
5748         Change the value from "org.freedesktop.Local"
5749         to "org.freedesktop.DBus.Local".
5750
5751         All other users of those constants have been changed.
5752
5753         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5754
5755         * glib/dbus-gobject.c (handle_introspect): Use constants.
5756
5757         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5758
5759 2005-02-17  Colin Walters  <walters@verbum.org>
5760
5761         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5762         (parse_node, parse_interface, parse_method, parse_signal)
5763         (parse_property, parse_annotation): Lose if we're currently in an
5764         annotation.
5765         (parse_annotation): New function.
5766         (parser_start_element, parser_end_element): Handle annotation.
5767         (parse_method, parse_interface): Remove support for c_name attribute,
5768         switch to annotations.
5769
5770         * glib/dbus-gidl.h (interface_info_get_binding_names)
5771         (method_info_get_binding_names)
5772         (interface_info_get_binding_name, method_info_get_binding_name)
5773         (interface_info_set_binding_name, method_info_set_binding_name):
5774         Remove.
5775         (interface_info_get_annotations, method_info_get_annotations)
5776         (interface_info_get_annotation, method_info_get_annotation)
5777         (interface_info_add_annotation, method_info_add_annotation):
5778         Prototype.
5779
5780         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5781         for "bindings".
5782         (struct MethodInfo): Ditto.
5783         Straightfoward conversion of binding methods into annotation methods
5784         as prototyped.
5785
5786         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5787
5788         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5789
5790         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5791         Use new annotation API.
5792
5793         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5794         annotation element.
5795         
5796         * doc/dbus-specification.xml: Discuss introspection annotations,
5797         include list of well-known annotations.
5798
5799         * test/glib/test-service-glib.xml: Make validate against new DTD.
5800
5801 2005-02-17  Colin Walters  <walters@verbum.org>
5802
5803         This patch is based on initial work from
5804         Paul Kuliniewicz <kuliniew@purdue.edu>.
5805
5806         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5807         initialization of GValue from dbus type to here.
5808         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5809         for the "glib-genmarshal" program from a DBus type.
5810         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5811         into the C name for it we use in the glib bindings.
5812         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5813         glib C type (not GValue).
5814         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5815
5816         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5817         from dbus-gobject.c.
5818
5819         * glib/dbus-gutils.h: Prototype it.
5820
5821         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5822         (marshal_dbus_message_to_g_marshaller): Use new shared function
5823         dbus_glib_marshal_dbus_message_to_gvalue_array.
5824
5825         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5826         Will be changed once we have annotations.
5827
5828         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5829         GStaticRWLock.  Callers updated.
5830         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5831         (string_table_next): New function for iterating over zero-terminated
5832         string value array.
5833         (string_table_lookup): New function; retrieves specific entry in
5834         array.
5835         (get_method_data): New function; look up method data in object data chunk.
5836         (object_error_domain_prefix_from_object_info)
5837         (object_error_code_from_object_info): New functions, but not implemented yet.
5838         (method_interface_from_object_info): New function; retrieve interface name.
5839         (method_name_from_object_info): New function; retrieve method name.
5840         (method_arg_info_from_object_info): New function; retrieve argument data.
5841         (arg_iterate): New function; iterates over serialized argument data.
5842         (method_dir_signature_from_object_info): New function; returns a
5843         GString holding type signature for arguments for just one
5844         direction (input or output).
5845         (method_input_signature_from_object_info)
5846         (method_output_signature_from_object_info): New functions.
5847         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5848         converts dbus message arguments into a GValue array.  Used for both
5849         signal handling and method invocation.
5850         (struct DBusGlibWriteIterfaceData): New utility structure.
5851         (write_interface): New function; generate introspection XML for
5852         an interface.
5853         (introspect_interfaces): New function; gathers all interface->methods,
5854         generates introspection XML for them.
5855         (handle_introspect): Invoke introspect_interfaces.
5856         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5857         (lookup_object_and_method): New function; examines an incoming message
5858         and attempts to match it up (via interface, method name, and argument
5859         signature) with a known object and method.
5860         (gerror_domaincode_to_dbus_error_name): New function; converts a
5861         GError domain and code into a DBus error name.  Needs GError data
5862         added to object introspection to work well.
5863         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5864         GError.
5865         (invoke_object_method): New function to invoke an object method
5866         looked up via lookup_object_and_method.  Parses the incoming
5867         message, turns it into a GValue array, then invokes the marshaller
5868         specified in the DBusGMethodInfo.  Creates a new message with
5869         either return values or error message as appropriate.
5870         (gobject_message_function): Invoke lookup_object_and_method and
5871         invoke_object_method.
5872
5873         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5874         (enum DBusBindingOutputMode): New enum for binding output modes.
5875         (pretty_print): Print binding names.
5876         (dbus_binding_tool_error_quark): GError bits.
5877         (version): Fix typo.
5878         (main): Create GIOChannel for output.  Parse new --mode argument,
5879         possible values are "pretty-print", "glib-server", "glib-client".
5880         Use mode to invoke appropriate function.
5881         
5882         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5883
5884         * glib/dbus-glib-tool.h: New header, just includes GError bits
5885         for now.
5886
5887         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5888         maps binding style to name.
5889         (struct MethodInfo): Ditto.
5890         (get_hash_keys, get_hash_key): Utility function, returns keys for
5891         a GHashTable.
5892         (interface_info_new, method_info_new): Initialize bindings.
5893         (interface_info_unref, method_info_unref): Destroy bindings.
5894         (method_info_get_binding_names, method_info_get_binding_name)
5895         (interface_info_get_binding_names, interface_info_get_binding_name):
5896         Functions for retrieving binding names.
5897         (method_info_set_binding_name, interface_info_set_binding_name):
5898         Functions for setting binding names.
5899
5900         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5901         for glib binding generation.
5902
5903         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5904         and client-side glib glue generation.
5905
5906         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5907         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5908         dbus-glib-tool.h.
5909
5910         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5911         of using GClosureMarshal directly.
5912         (struct DBusGObjectInfo): Add n_infos member.
5913
5914         * test/glib/test-service-glib.xml: New file; contains introspection data
5915         for MyTestObject used in test-service-glib.c.
5916
5917         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5918         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5919         (my_object_uppercase, my_object_many_args): New test methods.
5920         (main): Use dbus_g_object_class_install_info to include generated object
5921         info.
5922
5923         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5924         as well as client-side bindings.
5925
5926         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5927         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5928         using both the dbus_gproxy stuff directly as well as the generated bindings.
5929
5930 2005-02-15  Havoc Pennington  <hp@redhat.com>
5931
5932         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5933         complete a pending call, don't run filters first.
5934
5935         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5936         dbus_pending_call_steal_reply
5937
5938         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5939         _dbus_connection_block_pending_call
5940         (dbus_pending_call_get_reply): change to steal_reply and return a
5941         ref
5942
5943         * dbus/dbus-connection.c
5944         (dbus_connection_send_with_reply_and_block): port to work in terms
5945         of DBusPendingCall
5946         (_dbus_connection_block_pending_call): replace block_for_reply
5947         with this
5948
5949 2005-02-14  Havoc Pennington  <hp@redhat.com>
5950
5951         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5952         properly handle looking up group information by name; fix 
5953         from j@bootlab.org
5954
5955 2005-02-13  Havoc Pennington  <hp@redhat.com>
5956
5957         * dbus/dbus-connection.c (dbus_connection_return_message) 
5958         (dbus_connection_borrow_message): hold dispatch lock while message
5959         is outstanding
5960         (_dbus_connection_block_for_reply): hold dispatch lock while we
5961         block for the reply, so nobody steals our reply
5962         (dbus_connection_pop_message): hold the dispatch lock while we
5963         pluck the message
5964
5965 2005-02-13  Havoc Pennington  <hp@redhat.com>
5966
5967         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5968         (_dbus_connection_release_dispatch)
5969         (_dbus_connection_acquire_io_path)
5970         (_dbus_connection_release_io_path): make the mutex and condvar
5971         control access to the "acquired" flag. Drop the connection lock
5972         while waiting on the condvar. Hopefully these are baby steps in
5973         roughly the right direction.
5974
5975 2005-02-13  Havoc Pennington  <hp@redhat.com>
5976
5977         * dbus/dbus-connection.c: use separate mutexes for the condition
5978         variables; this is some kind of baseline for sanity, but the
5979         condition variables still aren't used correctly afaict
5980
5981 2005-02-13  Havoc Pennington  <hp@redhat.com>
5982
5983         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5984         fix a double-unlock
5985
5986         * dbus/dbus-connection.c
5987         (_dbus_connection_detach_pending_call_unlocked): add this
5988
5989         Initial semi-correct pass through to fix thread locking; there are
5990         still some issues with the condition variable paths I'm pretty
5991         sure
5992         
5993         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5994         lock/unlock calls
5995
5996         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5997         rename to add _unlocked
5998         (struct DBusConnection): move "dispatch_acquired" and
5999         "io_path_acquired" to use only one bit each.
6000         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6001         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6002         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6003         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6004         (_dbus_connection_remove_timeout) 
6005         (_dbus_connection_toggle_timeout): drop lock when calling out to
6006         user functions; done in a hacky/bad way.
6007         (_dbus_connection_send_and_unlock): add a missing unlock
6008         (_dbus_connection_block_for_reply): add a missing unlock
6009
6010         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6011         drop lock in a hacky probably unsafe way to call out to user
6012         function
6013
6014 2005-02-12  Havoc Pennington  <hp@redhat.com>
6015
6016         * tools/dbus-tree-view.c (info_set_func_text): display more
6017         details on args
6018
6019         * bus/driver.c (bus_driver_handle_list_services): list the bus
6020         driver
6021
6022         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6023
6024         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6025         (method_info_get_n_args): new function
6026
6027 2005-02-12  Havoc Pennington  <hp@redhat.com>
6028
6029         * bus/driver.c (bus_driver_handle_introspect): add introspection
6030         for bus driver
6031
6032 2005-02-12  Havoc Pennington  <hp@redhat.com>
6033
6034         * bus/driver.c: put the signature of each bus driver method in the
6035         table of handlers and check it on incoming calls; this isn't
6036         really useful, but going to add introspect support in a minute.
6037
6038 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6039
6040         * mono/Connection.cs: The unpredictability of finalizers in mono
6041         prevents us from deterministically disconnecting the filters from
6042         the Service class's finalizer, so move tracking of filters and
6043         matches here.  Add API for that.
6044
6045         * mono/Service.cs: Remove the code, add code which calls the
6046         methods now on the Connection class.
6047
6048 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6049
6050         * python/dbus.py (class Sender): added to support dbus signals better
6051         (Bus::add_signal_receiver): added expand_args parameter which defaults
6052         to True.  When expand args is True the signal handler will pass the 
6053         message arguments as parameters to the signal handler.  If False
6054         revert to previous behavior where the signal handler must get the
6055         argument list from the message.  This is to help port applications
6056         like HAL that have a tendancy to send variable length argument lists.
6057         self._match_rule_to_receivers is now a dict of dicts.
6058         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6059         removing it from a list
6060         (Bus::_signal_func): change signal handlers so that interface,
6061         signal_name, service, path and message are packed into a Sender
6062         object and that is passed to the handler.  If expand_args is True
6063         extract the args list from the message and append it to the parameter
6064         list
6065         
6066         * python/dbus_bindings.pyx.in (class Signature): added to support 
6067         signiature types
6068         (MessageIter::__init__): changed iteration limit to match D-BUS
6069         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6070         STRUCT and VARIENT type support
6071         (MessageIter::python_value_to_dbus_sig): made recursive to support
6072         recursive types
6073         (MessageIter::append*): added Signature, dict, tuple 
6074         support
6075
6076         * python/examples/example-client.py: added examples of getting tuples
6077         and dicts
6078
6079         * python/examples/example-service.py: added examples of sending tuples
6080         and dicts
6081
6082         * python/examples/example-signal-recipient.py: Fixed to handle new
6083         signal callback format
6084
6085 2005-02-10  Havoc Pennington  <hp@redhat.com>
6086
6087         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6088         (call dbus_g_proxy_add_signal)
6089
6090         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6091         escape the hostname
6092         (_dbus_server_new_for_domain_socket): escape the path
6093
6094         * dbus/dbus-address.c (dbus_address_escape_value): new
6095         (dbus_address_unescape_value): new
6096         (dbus_parse_address): unescape values
6097
6098         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6099
6100         * doc/dbus-specification.xml: explain how to escape values in
6101         addresses
6102
6103 2005-02-10  Havoc Pennington  <hp@redhat.com>
6104
6105         * dbus/dbus-message-factory.c (generate_special): modify test to
6106         avoid using a non-basic dict key
6107
6108         * dbus/dbus-marshal-validate-util.c: add test for the below
6109
6110         * doc/dbus-specification.xml: require that dict keys are a basic
6111         type
6112
6113         * dbus/dbus-marshal-validate.c
6114         (_dbus_validate_signature_with_reason): require that dict key is a
6115         basic type
6116
6117 2005-02-10  Havoc Pennington  <hp@redhat.com>
6118
6119         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6120         change to be _and_unlock instead of _unlocked
6121
6122         * dbus/dbus-connection.c
6123         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6124         have no_update so we can find this bug quickly in future
6125
6126 2005-02-10  Havoc Pennington  <hp@redhat.com>
6127
6128         * dbus/dbus-message-util.c (verify_test_message): tests for string
6129         array
6130
6131         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6132         support for arrays of string/signature/path
6133
6134 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6135
6136         * dbus/dbus-connection.c
6137         (_dbus_connection_queue_received_message_link,
6138         _dbus_connection_message_sent): Add the path to
6139         the verbose output.
6140         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6141         _dbus_connection_send_preallocated_unlocked(), updated the
6142         dispatch status, and unlocks.  Fixes a bug where certain
6143         situations (like a broken pipe) could cause a Disconnect message
6144         to not be sent, tricking the bus into thinking a service was still
6145         there when the process had quit.
6146         (_dbus_connection_send_preallocated): Call
6147         _dbus_connection_send_preallocated_and_unlock().
6148         (_dbus_connection_send_and_unlock): Added.  Calls
6149         _dbus_connection_send_preallocated_and_unlock().
6150         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6151         (dbus_connection_send_with_reply): Update the dispatch status and
6152         unlock.
6153
6154         * mono/Service.cs (~Service): Added.  Removes the filter so that
6155         we don't get unmanaged code calling back into a GCed delegate.
6156         (RemoveFilter); Added.
6157
6158 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6159
6160         * dbus/dbus-message.c (dbus_message_iter_open_container):
6161         - Removed check for iterator type being an array because
6162         get_arg_type does not work with writer iterators
6163         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6164
6165 2005-02-07  Havoc Pennington  <hp@redhat.com>
6166
6167         * doc/dbus-specification.xml: some more language cleanups; add
6168         stuff about how to deal with invalid protocol and extension
6169         points; add _ to allowed chars in auth commands; add EXTENSION_
6170         auth command prefix
6171
6172 2005-02-06  Havoc Pennington  <hp@redhat.com>
6173
6174         * s/expected/required/ in a couple places for clarity
6175
6176 2005-02-07  Colin Walters  <walters@verbum.org>
6177
6178         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6179         sender or proposed_recipient.
6180
6181 2005-02-06  Havoc Pennington  <hp@redhat.com>
6182
6183         * dbus/dbus-message-factory.c (generate_special): more tests
6184
6185         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6186         array length that exceeds the maximum
6187
6188 2005-02-05  Havoc Pennington  <hp@redhat.com>
6189
6190         * dbus/dbus-message-factory.c (generate_special): more test cases,
6191         increasing coverage
6192
6193         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6194         reason why a signature was invalid
6195
6196         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6197         skip the length of the string before we look at it in validation
6198
6199         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6200         equal_substring
6201
6202         * dbus/dbus-message.c (_dbus_message_loader_new): default
6203         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6204
6205 2005-02-05  Havoc Pennington  <hp@redhat.com>
6206
6207         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6208         if the signature of a variant was empty
6209         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6210         struct with no element type)
6211
6212         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6213         mangled messages to break things
6214
6215 2005-02-04  Havoc Pennington  <hp@redhat.com>
6216
6217         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6218         g_quark_try_string() so it actually can return 0
6219         (dbus_g_proxy_connect_signal): ditto
6220
6221 2005-02-04  Havoc Pennington  <hp@redhat.com>
6222
6223         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6224         bogus warning
6225         (tristring_from_message): assert cleanly on null path/interface
6226         (should not be possible though I decided later)
6227         (dbus_g_proxy_dispose): move proxy manager unregistration here
6228         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6229         g_return_if_fail() checks
6230
6231 2005-02-04  Havoc Pennington  <hp@redhat.com>
6232
6233         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6234
6235         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6236         (with some minor changes)
6237
6238         * doc/dbus-specification.xml: add deprecated attribute to
6239         introspection format
6240
6241 2005-01-31  Havoc Pennington  <hp@redhat.com>
6242
6243         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6244         think it's sort of right
6245
6246 2005-01-30  Havoc Pennington  <hp@redhat.com>
6247
6248         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6249
6250 2005-01-30  Havoc Pennington  <hp@redhat.com>
6251
6252         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6253
6254         * autogen.sh: change to autotools 1.9
6255
6256         * glib/dbus-gproxy.c: completely change how signals work
6257         (dbus_g_proxy_add_signal): new function to specify signature of a
6258         signal
6259         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6260         and g_warning if the incoming message has the wrong signature.
6261
6262 2005-01-30  Havoc Pennington  <hp@redhat.com>
6263
6264         * tools/dbus-names-model.c (have_names_notify): fix this
6265
6266         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6267         up the string array handling a bit 
6268
6269 2005-01-30  Havoc Pennington  <hp@redhat.com>
6270
6271         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6272         (dbus_g_pending_call_cancel): new function
6273
6274         * dbus/dbus-glib.h: move GType decls for connection/message here;
6275         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6276         here, just kind of rationalizing how we handle all that
6277
6278         * tools/dbus-names-model.c: new file for a tree model listing the
6279         services on a bus
6280
6281         * tools/dbus-tree-view.c (model_new): use proper typing on the
6282         model rows
6283
6284 2005-01-30  Havoc Pennington  <hp@redhat.com>
6285
6286         * glib/dbus-gmain.c: add a custom GSource back that just checks
6287         whether the message queue has anything in it; otherwise, there are 
6288         cases where we won't see messages in the queue since there was no 
6289         IO visible to the glib main loop
6290
6291         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6292         increase default message timeout to 25 seconds
6293
6294 2005-01-30  Havoc Pennington  <hp@redhat.com>
6295
6296         * test/glib/test-profile.c (no_bus_stop_server): remove the
6297         warning about the g_warning that I just fixed
6298
6299         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6300         custom source, seems to be a lot easier to understand and work
6301         better.
6302
6303 2005-01-30  Havoc Pennington  <hp@redhat.com>
6304
6305         I think this main loop thing is conceptually broken, but here are 
6306         some band aids. I'll maybe rewrite it in a minute.
6307         
6308         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6309         custom GSource, so don't pass it in; confusing
6310         (gsource_server_finalize, gsource_connection_finalize): add
6311         finalize handlers that remove all the watches.  
6312
6313 2005-01-30  Havoc Pennington  <hp@redhat.com>
6314
6315         * glib/dbus-gobject.c (introspect_properties): fix the XML
6316         generated
6317
6318         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6319         which effectively detects the use of freed messages
6320
6321         * glib/dbus-gobject.c (handle_introspect): modify and return the
6322         reply message instead of the incoming message
6323
6324         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6325         gee, maybe it should SEND THE XML instead of just making a string
6326         and freeing it again ;-)
6327
6328         * tools/dbus-print-message.c (print_message): improve printing of
6329         messages
6330
6331         * configure.in: add debug-glib.service to the output
6332
6333 2005-01-30  Havoc Pennington  <hp@redhat.com>
6334
6335         dbus-viewer introspected and displayed the bus driver
6336         
6337         * dbus/dbus-object-tree.c 
6338         (object_tree_test_iteration): add tests for a handler registered on "/"
6339
6340         * dbus/dbus-object-tree.c
6341         (_dbus_decompose_path): fix to handle path "/" properly
6342         (run_decompose_tests): add tests for path decomposition
6343         
6344         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6345         properly
6346
6347         * glib/dbus-gobject.c (handle_introspect): fix quotes
6348
6349         * test/glib/run-test.sh: support launching the bus, then running
6350         dbus-viewer
6351
6352         * test/glib/test-service-glib.c (main): put in a trivial gobject
6353         subclass and register it on the connection
6354
6355         * bus/driver.c (bus_driver_handle_introspect): implement
6356         introspection of the bus driver service
6357
6358         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6359         identifiers, doctype decl
6360
6361         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6362         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6363         returning the service unchanged.
6364         (bus_driver_handle_message): remove old check for reply_serial in
6365         method calls, now the message type deals with that
6366         (bus_driver_handle_message): handle NULL interface
6367
6368         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6369
6370         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6371         -1 for len
6372
6373         * tools/dbus-viewer.c: add support for introspecting a service on
6374         a bus
6375
6376         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6377         (dbus_g_pending_call_unref): add
6378
6379 2005-01-29  Havoc Pennington  <hp@redhat.com>
6380
6381         * tools/dbus-tree-view.c: add support for displaying properties.
6382         (run dbus-viewer with an introspect xml file as arg, then resize
6383         the window so the tree elements show up, not sure what that is)
6384
6385         * glib/dbus-gobject.c (handle_introspect): return
6386         org.freedesktop.Properties and org.freedesktop.Introspectable
6387         interfaces when we are introspected.
6388
6389         * doc/dbus-specification.xml: allow empty interface name when 
6390         Get/Set a property
6391
6392 2005-01-29  Havoc Pennington  <hp@redhat.com>
6393
6394         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6395         though it uses glib, it could be extended for any binding in
6396         principle
6397
6398         * glib/dbus-gobject.c (gobject_message_function): change to the
6399         new way properties work
6400
6401         * dbus/dbus-protocol.h: add the new interfaces
6402
6403         * doc/dbus-specification.xml: document the introspection format,
6404         Introspectable interface, and add an org.freedesktop.Properties
6405         interface.
6406
6407         * glib/dbus-gparser.c: add support for a <property> element
6408
6409         * glib/dbus-gidl.c: add PropertyInfo
6410
6411         * glib/dbus-gobject.c (handle_introspect): put the outermost
6412         <node> outside the signal and property descriptions.
6413         (introspect_properties): export properties as <property> rather
6414         than as method calls
6415
6416 2005-01-28  Havoc Pennington  <hp@redhat.com>
6417
6418         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6419         related to authentication protocol
6420
6421 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6422
6423         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6424                 - BUS_ACTIVATION -> BUS_STARTER
6425                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6426                 - class MessageIter (__init__): Added recursion checking 
6427                 so we throw a nice error instead of just disconnecting from the
6428                 bus.
6429                 (get): Added arg_type parameter for recursion.
6430                 Removed the nil type
6431                 Added signiture type placeholder (not implemented)
6432                 Added struct type placeholder (not implemented)
6433                 Added varient type placeholder (not implemented)
6434                 Commented out dict type for now     
6435                 (get_element_type): renamed from get_array_type
6436                 (get_*): changed to use the dbus_message_iter_get_basic API
6437                 (get_*_array): removed in favor of recursive get_array method
6438                 (get_array): new recursive method which calls get to marshal
6439                 the elements of the array
6440                 (value_to_dbus_sig): New method returns the corrasponding
6441                 dbus signiture to a python value
6442                 (append): Comment out dict handling for now
6443                 Handle lists with the new recursive API
6444                 Comment out None handling for now
6445                 (append_nil): removed
6446                 (append_*): changed to use dbus_message_iter_append_basic API
6447                 (append_*_array): removed in favor of recursive append_array 
6448                 method
6449                 (__str__): Make it easier to print out recursive iterators
6450                 for debugging
6451                 - class Message (__str__): moved type inspection to the
6452                 MessageIter class' __str__ method
6453                 (get_iter): Added an append parameter wich defaults to False
6454                 If True use the new API's to create an append iterator
6455
6456         * python/dbus.py: Update to use new bindings API
6457                 - TYPE_ACTIVATION -> TYPE_STARTER
6458                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6459                 - class ActivationBus -> class StarterBus
6460                 - class RemoteObject (__call__): get an append iterator
6461                 - (_dispatch_dbus_method_call): get an append iterator
6462                 - class Object (emit_signal): get an append iterator
6463
6464         * python/examples/: Fixed up the examples to work with the new API
6465                 
6466 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6467
6468         * configure.in: Bump version up to 0.30.
6469
6470         * HACKING: Add a release item to bump the version number up after 
6471         a release.
6472
6473 2005-01-28  Havoc Pennington  <hp@redhat.com>
6474
6475         * doc/dbus-specification.xml: update to describe 16-bit types and
6476         dict entries
6477
6478         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6479         assertion
6480
6481         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6482         type
6483
6484         * dbus/dbus-marshal-recursive.c: implement
6485
6486 2005-01-27  Havoc Pennington  <hp@redhat.com>
6487
6488         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6489
6490         * configure.in: find the right type for 16 and 32 bit ints as well
6491         as 64
6492
6493         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6494         the 16-bit types so people don't have to stuff them in 32-bit or
6495         byte arrays.
6496
6497 2005-01-27  Havoc Pennington  <hp@redhat.com>
6498
6499         * dbus/dbus-message.c: byteswap the message if you init an
6500         iterator to read/write from it
6501         
6502         * dbus/dbus-marshal-byteswap.c: new file implementing 
6503         _dbus_marshal_byteswap()
6504
6505         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6506
6507 2005-01-26  Havoc Pennington  <hp@redhat.com>
6508         
6509         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6510         build, apparently - nobody noticed?)
6511         
6512 2005-01-26  Havoc Pennington  <hp@redhat.com>
6513
6514         * dbus/dbus-marshal-recursive.h: remove todo comment
6515
6516 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6517
6518         * Land the mono binding changes to conform to the new APIs.
6519
6520         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6521         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6522
6523         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6524         type code as a string.
6525         (InitAppending): Rename dbus_message_append_iter_init() to
6526         dbus_message_iter_init_append().
6527
6528         * mono/BusDriver.cs: Rename ServiceEventHandler to
6529         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6530         Rename ServiceOwnerChanged to NameOwnerChanged.
6531
6532         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6533         underlying C call.
6534
6535         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6536
6537         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6538         dbus_bus_acquire_service() to dbus_bus_request_name().
6539
6540         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6541         of Type.UnderlyingSystemType to get the correct element type for
6542         the array.
6543         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6544         dbus_message_get_{element|arg}_type() instead of
6545         dbus_message_iter_init_array_iterator().
6546         (Append): Replace dbus_message_iter_append_array() with
6547         dbus_message_iter_open_container() and
6548         dbus_message_iter_close_container().
6549
6550         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6551         types have been removed.
6552         
6553         * mono/DBusType/*.cs: Replace calls of
6554         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6555         but specify the type in the DllImport extern declaration.  Ditto
6556         for dbus_message_iter_append_[type]() ->
6557         dbus_message_iter_append_basic().
6558
6559         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6560         NameOwnerChangedHandler.
6561
6562 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6563
6564         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6565                 - get_base_service -> get_unique_name
6566                 - bus_get_base_service -> bus_get_unique_name
6567                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6568                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6569                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6570                 - bus_activate_service -> bus_start_service_by_name
6571                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6572                 - bus_acquire_service -> bus_request_name
6573                 - dbus_bus_acquire_service -> dbus_bus_request_name
6574                 - bus_service_exists -> bus_name_has_owner
6575                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6576
6577         * python/dbus.py: Rename of methods
6578                 - activate_service -> start_service_by_name
6579                 - bus_acquire_service -> bus_request_name
6580                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6581                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6582
6583         
6584 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6585
6586         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6587         signature for the method that can't be found.
6588
6589         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6590         the message has any arguments, we need to call
6591         _dbus_type_reader_get_current_type(), not
6592         _dbus_type_reader_has_next().
6593
6594 2005-01-24  Havoc Pennington  <hp@redhat.com>
6595
6596         * dbus/dbus-message-factory.c: more testing of message validation
6597
6598         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6599         header
6600
6601 2005-01-23  Havoc Pennington  <hp@redhat.com>
6602
6603         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6604         get this all working, not many tests in the framework yet though
6605
6606 2005-01-22  Havoc Pennington  <hp@redhat.com>
6607
6608         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6609         tutorial, based on work from David Wheeler.
6610
6611 2005-01-21  Havoc Pennington  <hp@redhat.com>
6612
6613         * dbus/dbus-bus.c: add more return_if_fail checks
6614
6615         * dbus/dbus-message.c (load_message): have the "no validation"
6616         mode (have to edit the code to toggle the mode for now though)
6617
6618         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6619         skips all validation; I want to use this at least for benchmark
6620         baseline, I'm not sure if it should be a publicly-available switch.
6621
6622 2005-01-21  Havoc Pennington  <hp@redhat.com>
6623
6624         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6625         toplevel doxygen group as the low-level API stuff
6626
6627         * dbus/dbus.h: note that libdbus is the low-level API
6628
6629 2005-01-20  Havoc Pennington  <hp@redhat.com>
6630
6631         * update-dbus-docs.sh: script to update docs on the web site, only
6632         works for me though. neener.
6633
6634 2005-01-20  Havoc Pennington  <hp@redhat.com>
6635
6636         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6637         code can reveal bugs in it
6638
6639 2005-01-20  Havoc Pennington  <hp@redhat.com>
6640
6641         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6642         select() version, patches from Tor Lillqvist
6643
6644 2005-01-20  Havoc Pennington  <hp@redhat.com>
6645
6646         * doc/dbus-tutorial.xml: replace > with &gt;
6647
6648         * bus/services.c (bus_registry_acquire_service): validate the name
6649         and return a better error if it's no good.
6650
6651         * doc/dbus-specification.xml: note NO_AUTO_START change
6652
6653         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6654         from AUTO_START, we're toggling the default
6655
6656         * bus/dispatch.c: adapt the tests to change of auto-start default
6657
6658 2005-01-18  Havoc Pennington  <hp@redhat.com>
6659
6660         * rename dbus-daemon-1 to dbus-daemon throughout
6661
6662 2005-01-18  Havoc Pennington  <hp@redhat.com>
6663
6664         * Throughout, grand renaming to strip out the use of "service",
6665         just say "name" instead (or "bus name" when ambiguous).  Did not
6666         change the internal code of the message bus itself, only the
6667         programmer-facing API and messages.
6668         
6669         * doc/dbus-specification.xml: further update the message bus section
6670         
6671         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6672         in error case
6673
6674 2005-01-17  Havoc Pennington  <hp@redhat.com>
6675
6676         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6677         ever
6678
6679         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6680         "invalid name character" not only non-ASCII
6681
6682         * doc/dbus-specification.xml: further update spec, message bus 
6683         parts are still out-of-date but the marshaling etc. stuff is now
6684         accurate-ish
6685
6686 2005-01-17  Havoc Pennington  <hp@redhat.com>
6687
6688         * doc/dbus-specification.xml: partially update spec
6689
6690 2005-01-17  Havoc Pennington  <hp@redhat.com>
6691
6692         * Throughout, align variant bodies according to the contained
6693         type, rather than always to 8. Should save a fair bit of space in
6694         message headers.
6695         
6696         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6697         fix handling of case where p == end
6698
6699         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6700
6701 2005-01-17  Havoc Pennington  <hp@redhat.com>
6702
6703         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6704
6705         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6706         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6707         are marshaling/unmarshaling a boolean.
6708
6709 2005-01-16  Havoc Pennington  <hp@redhat.com>
6710
6711         This is about it on what can be disabled/deleted from libdbus
6712         easily, back below 150K anyhow. Deeper cuts are more work than 
6713         just turning the code off as I've done here.
6714         
6715         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6716         signed int convenience funcs
6717
6718         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6719         verbose mode
6720
6721         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6722         things out of libdbus
6723
6724         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6725         
6726         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6727         tests-enabled-only, though it should probably be deleted)
6728
6729         * dbus/dbus-message-util.c: same stuff
6730
6731         * dbus/dbus-auth-util.c: same stuff
6732
6733 2005-01-16  Havoc Pennington  <hp@redhat.com>
6734
6735         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6736
6737         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6738         way for stripping down dbus-userdb.c stuff included in libdbus.
6739         Rename _dbus_parse_uid for consistency.
6740
6741 2005-01-16  Havoc Pennington  <hp@redhat.com>
6742
6743         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6744         name the assertion failed in
6745
6746         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6747         (_dbus_return_val_if_fail): assert that the name of the function
6748         containing the check doesn't start with '_', since we only want to 
6749         use checks on public functions
6750         
6751         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6752         checks to assertions
6753
6754         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6755         change checks to asserts for private function
6756
6757         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6758         to asserts for private function
6759
6760         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6761         broken assertion that was breaking make check
6762         (_dbus_type_reader_array_is_empty): remove this rather than fix
6763         it, was only used in assertions
6764
6765 2005-01-16  Havoc Pennington  <hp@redhat.com>
6766
6767         * test/unused-code-gc.py: hacky script to find code that's used
6768         only by the bus (not libdbus) or used only by tests or not used at
6769         all. It has some false alarms, but looks like we can clean up a
6770         lot of size from libdbus.
6771
6772         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6773         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6774         
6775 2005-01-16  Havoc Pennington  <hp@redhat.com>
6776
6777         * Add and fix docs according to Doxygen warnings throughout
6778         source.
6779         
6780         * dbus/dbus-marshal-recursive.c
6781         (_dbus_type_reader_array_is_empty): change this to just call
6782         array_reader_get_array_len() and make it static
6783
6784         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6785         from get_array_type
6786         (dbus_message_iter_init_append): rename from append_iter_init
6787
6788         * dbus/dbus-marshal-recursive.c
6789         (_dbus_type_reader_get_element_type): rename from
6790         _dbus_type_reader_get_array_type
6791
6792 2005-01-15  Havoc Pennington  <hp@redhat.com>
6793
6794         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6795
6796         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6797         when DBUS_DISABLE_ASSERT
6798         (_dbus_marshal_set_basic): be sure we align for the string length
6799
6800         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6801         this look faster
6802
6803         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6804         inline macro version
6805         (_dbus_string_set_byte): provide inline macro version
6806
6807 2005-01-15  Havoc Pennington  <hp@redhat.com>
6808
6809         * Land the new message args API and type system.
6810
6811         This patch is huge, but the public API change is not 
6812         really large. The set of D-BUS types has changed somewhat, 
6813         and the arg "getters" are more geared toward language bindings;
6814         they don't make a copy, etc.
6815
6816         There are also some known issues. See these emails for details
6817         on this huge patch:
6818         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6819         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6820         
6821         * dbus/dbus-marshal-*: all the new stuff
6822
6823         * dbus/dbus-message.c: basically rewritten
6824
6825         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6826         freed blocks to be all non-nul bytes so using freed memory is less
6827         likely to work right
6828
6829         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6830         DBUS_FAIL_MALLOC=N environment variable, so you can do
6831         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6832         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6833         thorough.
6834
6835         * qt/message.cpp: port to the new message args API
6836         (operator<<): use str.utf8() rather than str.unicode()
6837         (pretty sure this is right from the Qt docs?)
6838
6839         * glib/dbus-gvalue.c: port to the new message args API
6840
6841         * bus/dispatch.c, bus/driver.c: port to the new message args API
6842
6843         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6844         "locked" flag to TRUE and align_offset to 0; I guess we never
6845         looked at these anyhow, but seems cleaner.
6846
6847         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6848         move allocation padding macro to this header; use it to implement
6849         (_DBUS_STRING_STATIC): ability to declare a static string.
6850
6851         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6852         change to return TRUE if the interface is not set.
6853
6854         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6855         to dbus-marshal-validate.[hc]
6856
6857         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6858         dbus-internals.c
6859
6860         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6861         to dbus-marshal-*.[hc]
6862
6863         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6864         function here from dbus-marshal.c
6865
6866 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6867
6868         * NEWS: Update for 0.23.
6869
6870         * configure.in: Release 0.23.
6871
6872 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6873
6874         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6875         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6876         behind.
6877
6878         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6879         uninstall"
6880
6881         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6882         is an enum, get the enum's underlying type.  Another mono
6883         1.1.3 fix.
6884
6885 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6886
6887         Patch from Sjoerd Simons <sjoerd@luon.net>
6888
6889         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6890         DESTDIR.  It breaks stuff.
6891
6892 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6893
6894         Patch from Tambet Ingo <tambet@ximian.com>
6895
6896         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6897         calling type.GetElementType().  The code previously depended on
6898         broken Mono behavior, which was fixed in Mono 1.1.3.
6899
6900         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6901         Activator.CreateInstance() so that the class's constructor is
6902         called with the right parameters.
6903
6904 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6905
6906         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6907
6908         * dbus/dbus-connection.c
6909         (_dbus_connection_queue_received_message_link): Call
6910         _dbus_connection_remove_timeout() instead of the _locked()
6911         variant, since it's always called from
6912         _dbus_connection_handle_watch(), which handles the locking.
6913         Removed the _locked() variant since it's no longer used.
6914
6915 2005-01-03  Havoc Pennington  <hp@redhat.com>
6916
6917         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6918         return
6919         
6920 2004-12-26  Havoc Pennington  <hp@redhat.com>
6921
6922         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6923
6924 2005-01-03  Havoc Pennington  <hp@redhat.com>
6925
6926         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6927         floating point
6928
6929         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6930
6931 2005-01-02  Havoc Pennington  <hp@redhat.com>
6932
6933         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6934
6935 2005-01-01  Havoc Pennington  <hp@redhat.com>
6936
6937         * configure.in: add -Wfloat-equal
6938
6939 2005-01-01  Havoc Pennington  <hp@redhat.com>
6940
6941         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6942         for a variety of reasons '==' doesn't do this.
6943
6944 2004-12-31  Havoc Pennington  <hp@redhat.com>
6945
6946         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6947         I keep wishing I had
6948
6949 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6950
6951         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6952
6953 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6954
6955         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6956         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6957         dbus-protocol.h.  Because they are defines and not enums they are not
6958         autogenerated.
6959
6960 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6961
6962         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6963         dbus_bus_activate_service
6964
6965         * python/dbus.py (Bus.activate_service): activate a service on the
6966         bus.
6967
6968 2004-12-24  Havoc Pennington  <hp@redhat.com>
6969
6970         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6971         file format has also changed and I haven't adapted to that yet
6972         
6973         * Makefile.am: load .gcno files from latest gcc
6974
6975 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6976         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6977
6978         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6979         lowlevel binding
6980
6981         * python/dbus.py (get_unix_user): Added binding to 
6982         call dbus_bindings.bus_get_unix_user
6983
6984         * python/extract.py: Modified the proto_pat regex to
6985         handle unsigned long
6986
6987 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6988
6989         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6990         better POSIX compliance.
6991
6992 2004-12-19  Havoc Pennington  <hp@redhat.com>
6993
6994         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6995         (_dbus_string_insert_8_aligned): new functions
6996
6997         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6998
6999 2004-12-18  Havoc Pennington  <hp@redhat.com>
7000
7001         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7002         macro
7003
7004         * dbus/dbus-message.c: fix a comment, and add a still-unused
7005         not-implemented function
7006
7007         * dbus/dbus-marshal.h: fix comment
7008
7009         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7010
7011 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7012
7013         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7014         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7015         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7016         Type.UnderlyingSystemType to get the actual system type
7017         underneath.  This code previously depended on the broken Mono
7018         behavior, which was fixed in 1.1.3.
7019
7020 2004-11-27  Havoc Pennington  <hp@redhat.com>
7021
7022         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7023         are disabled
7024         (_dbus_string_get_const_data): inline when asserts are disabled
7025
7026         * dbus/dbus-message.c: record the _dbus_current_generation of
7027         creation so we can complain if dbus_shutdown() is used improperly.
7028         Do this only if checks are enabled.
7029
7030         * dbus/dbus-connection.c: ditto
7031         
7032 2004-11-26  Havoc Pennington  <hp@redhat.com>
7033
7034         * test/glib/test-profile.c: add with_bus mode to profile echoes
7035         that go through the bus.
7036
7037         * test/glib/run-test.sh: add ability to run test-profile
7038
7039         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7040         config file reload.
7041
7042 2004-11-26  Havoc Pennington  <hp@redhat.com>
7043
7044         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7045         thing was implemented
7046
7047 2004-11-26  Havoc Pennington  <hp@redhat.com>
7048
7049         * test/glib/test-profile.c: tweak a bit, add support for some
7050         made-up minimal malloc overhead with plain sockets, since in 
7051         real life some sort of buffers are unavoidable thus we could 
7052         count them in the theoretical best case
7053
7054 2004-11-26  Havoc Pennington  <hp@redhat.com>
7055
7056         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7057         where I was trying to cache one too many messages
7058
7059 2004-11-26  Havoc Pennington  <hp@redhat.com>
7060
7061         * dbus/dbus-message.c: reimplement message cache as an array which 
7062         makes the cache about twice as fast and saves maybe 1.5% overall
7063
7064 2004-11-26  Havoc Pennington  <hp@redhat.com>
7065
7066         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7067         message cache lock here
7068
7069 2004-11-26  Havoc Pennington  <hp@redhat.com>
7070
7071         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7072         the "char byte_order" next to each other to save 4 bytes
7073         (dbus_message_new_empty_header): reduce preallocation, since the
7074         message cache should achieve a similar effect
7075         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7076         message cache that keeps a few DBusMessage around in a pool,
7077         another 8% speedup or so.
7078
7079         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7080
7081 2004-11-25  Havoc Pennington  <hp@redhat.com>
7082
7083         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7084         to write, without reading or blocking, try it before the poll()
7085         and skip the poll() if nothing remains to write. This is about a
7086         3% speedup in the echo client/server
7087
7088 2004-11-25  Havoc Pennington  <hp@redhat.com>
7089
7090         The primary change here is to always write() once before adding
7091         the write watch, which gives us about a 10% performance increase.
7092         
7093         * dbus/dbus-transport-unix.c: a number of modifications to cope
7094         with removing messages_pending
7095         (check_write_watch): properly handle
7096         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7097         messages_pending stuff
7098         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7099         AUTHENTICATED cases
7100         (unix_handle_watch): after writing, see if the write watch can be
7101         removed
7102         (unix_do_iteration): assert that write_watch/read_watch are
7103         non-NULL rather than testing that they aren't, since they 
7104         aren't allowed to be NULL. check_write_watch() at the end so 
7105         we add the watch if we did not finish writing (e.g. got EAGAIN)
7106
7107         * dbus/dbus-transport-protected.h: remove messages_pending call,
7108         since it resulted in too much inefficient watch adding/removing; 
7109         instead we now require that the transport user does an iteration 
7110         after queueing outgoing messages, and after trying the first
7111         write() we add a write watch if we got EAGAIN or exceeded our 
7112         max bytes to write per iteration setting
7113
7114         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7115         function
7116
7117         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7118         freed and then accessed, valgrind flagged this bug, fix it
7119
7120         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7121         as the last valid field plus 1, where really it is equal to the
7122         last valid field. Corrects some message corruption issues.
7123
7124         * dbus/dbus-mainloop.c: verbosity changes
7125
7126         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7127         instead of aborting in one of the test codepaths
7128
7129         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7130         caused not printing the pid ever again if a verbose was missing
7131         the newline at the end
7132         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7133
7134         * dbus/dbus-connection.c: verbosity changes; 
7135         (dbus_connection_has_messages_to_send): new function
7136         (_dbus_connection_message_sent): no longer call transport->messages_pending
7137         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7138         try to write() immediately, so we can avoid the write watch. This
7139         is the core purpose of this patchset
7140         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7141         dump the outgoing message queue, so nobody will get confused
7142         trying to send them or thinking stuff is pending to be sent
7143
7144         * bus/test.c: verbosity changes
7145
7146         * bus/driver.c: verbosity/assertion changes
7147
7148         * bus/dispatch.c: a bunch of little tweaks to get it working again
7149         because this patchset changes when/where you need to block.
7150
7151 2004-11-23  Havoc Pennington  <hp@redhat.com>
7152
7153         * test/glib/test-profile.c: modify to accept a plain_sockets
7154         argument in which case it will bench plain sockets instead of
7155         libdbus, for comparison purposes.
7156
7157 2004-11-22  Havoc Pennington  <hp@redhat.com>
7158
7159         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7160         threads for more time, so sysprof can get a grip on it.
7161
7162         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7163         pointless variable
7164
7165 2004-11-13  Havoc Pennington  <hp@redhat.com>
7166
7167         * test/glib/test-profile.c: fix this thing up a bit
7168
7169         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7170         preallocation sizes by a fair bit; not sure if this will be an
7171         overall performance win or not, but it does reduce reallocs.
7172
7173         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7174         the test hack that forced constant realloc if asserts are
7175         disabled, so we can profile sanely. Sprinkle in some
7176         _DBUS_UNLIKELY() which are probably pointless, but before I
7177         noticed the real performance problem I put them in.
7178         (_dbus_string_validate_utf8): micro-optimize this thing a little
7179         bit, though callgrind says it didn't help; then special-case
7180         ascii, which did help a lot; then be sure we detect nul bytes as
7181         invalid, which is a bugfix.
7182         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7183         superstition; use memset to nul the padding instead of a manual
7184         loop.
7185         (_dbus_string_get_length): inline this as a
7186         macro; it showed up in the profile because it's used for loop
7187         tests and so forth
7188
7189 2004-11-10  Colin Walters  <walters@verbum.org>
7190
7191         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7192         for extra paranoia.
7193
7194 2004-11-09  Colin Walters  <walters@verbum.org>
7195
7196         * dbus/dbus-string.c (_dbus_string_get_length): New
7197         function, writes DBusString to C buffer.
7198
7199         * dbus/dbus-string.h: Prototype it.
7200
7201         * dbus/dbus-message.c (dbus_message_type_to_string): New
7202         function, converts message type into C string.
7203
7204         * dbus/dbus-message.h: Prototype it.
7205
7206         * bus/selinux.c (bus_selinux_check): Take source pid,
7207         target pid, and audit data.  Pass audit data to
7208         avc_has_perm.
7209         (log_audit_callback): New function, appends extra
7210         audit information.
7211         (bus_selinux_allows_acquire_service): Also take
7212         service name, add it to audit data.
7213         (bus_selinux_allows_send): Also take message
7214         type, interface, method member, error name,
7215         and destination, and add them to audit data.
7216         (log_cb): Initialize func_audit.
7217         
7218         * bus/selinux.h (bus_selinux_allows_acquire_service)
7219         (bus_selinux_allows_send): Update prototypes 
7220
7221         * bus/services.c (bus_registry_acquire_service): Pass
7222         service name to bus_selinux_allows_acquire_service.
7223
7224         * bus/bus.c (bus_context_check_security_policy): Pass
7225         additional audit data.  Move assignment of dest
7226         to its own line.
7227
7228 2004-11-07  Colin Walters  <walters@verbum.org>
7229
7230         * dbus/dbus-transport-unix.c (do_authentication): Always
7231         initialize auth_completed.
7232         
7233 2004-11-07  Colin Walters  <walters@verbum.org>
7234
7235         * bus/bus.c (load_config): Break into three
7236         separate functions: process_config_first_time_only,
7237         process_config_every_time, and process_config_postinit.
7238         (process_config_every_time): Move call of
7239         bus_registry_set_service_context_table into
7240         process_config_postinit.
7241         (process_config_postinit): New function, does
7242         any processing that needs to happen late
7243         in initialization (and also on reload).
7244         (bus_context_new): Instead of calling load_config,
7245         open config parser here and call process_config_first_time_only
7246         and process_config_every_time directly.  Later, after
7247         we have forked but before changing UID,
7248         invoke bus_selinux_full_init, and then call
7249         process_config_postinit.
7250         (bus_context_reload_config): As in bus_context_new,
7251         load parse file inside here, and call process_config_every_time
7252         and process_config_postinit.
7253
7254         * bus/services.h, bus/services.c
7255         (bus_registry_set_service_context_table): Rename
7256         from bus_registry_set_sid_table.  Take string hash from config
7257         parser, and convert them here into SIDs.
7258
7259         * bus/config-parser.c (struct BusConfigParser): Have
7260         config parser only store a mapping of service->context
7261         string.
7262         (merge_service_context_hash): New function.
7263         (merge_included): Merge context string hashes instead
7264         of using bus_selinux_id_table_union.
7265         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7266         simply create a new string hash.
7267         (bus_config_parser_unref): Unref it.
7268         (start_selinux_child): Simply insert strings into hash,
7269         don't call bus_selinux_id_table_copy_over.
7270
7271         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7272         (bus_selinux_id_table_copy_over): Delete.
7273
7274 2004-11-03  Colin Walters  <walters@verbum.org>
7275
7276         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7277         variables.
7278         
7279 2004-11-03  Colin Walters  <walters@verbum.org>
7280
7281         * bus/test-main.c (test_pre_hook): Fix test logic,
7282         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7283
7284 2004-11-02  Colin Walters  <walters@redhat.com>
7285
7286         * bus/selinux.c (bus_selinux_init): Split into two functions,
7287         bus_selinux_pre_init and bus_selinux_post_init.
7288         (bus_selinux_pre_init): Just determine whether SELinux is
7289         enabled.
7290         (bus_selinux_post_init): Do everything else.
7291
7292         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7293         config file, and bus_selinux_post_init after.  This ensures that
7294         we don't lose the policyreload notification thread that
7295         bus_selinux_init created before forking previously.
7296         
7297         * bus/test-main.c (test_pre_hook): Update for split.
7298
7299 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7300
7301         Patch from Johan Fischer <linux@fischaz.com>
7302         
7303         * mono/doc/Makefile.am (install-data-local): Added directory
7304         install for DESTDIR
7305
7306 2004-10-29  Colin Walters  <walters@redhat.com>
7307
7308         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7309         parameter for fd to write pid to.       
7310
7311         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7312         
7313         * bus/bus.c (bus_context_new): Pass print_pid_fd
7314         to _dbus_become_daemon (bug #1720)
7315
7316 2004-10-29  Colin Walters  <walters@redhat.com>
7317
7318         Patch from Ed Catmur <ed@catmur.co.uk>
7319
7320         * mono/doc/Makefile.am (install-data-local): Handle
7321         DESTDIR.
7322
7323 2004-10-29  Colin Walters  <walters@redhat.com>
7324
7325         * bus/.cvsignore, qt/.cvsignore: Update.
7326
7327 2004-10-29  Colin Walters  <walters@redhat.com>
7328
7329         Patch from Kristof Vansant <de_lupus@pandora.be>
7330
7331         * configure.in: Detect Slackware.
7332         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7333         * bus/rc.messagebus.in: New file.
7334
7335 2004-10-29  Colin Walters  <walters@redhat.com>
7336
7337         * tools/dbus-monitor.c (filter_func): Return
7338         DBUS_HANDLER_RESULT_HANDLED in filter function
7339         for now.  See:
7340         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7341
7342 2004-10-29  Colin Walters  <walters@redhat.com>
7343
7344         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7345
7346         * bus/services.c (bus_registry_acquire_service): 
7347         Correctly retrieve service name from DBusString
7348         for printing.
7349
7350 2004-10-29  Colin Walters  <walters@redhat.com>
7351
7352         * dbus/dbus-glib.h: Update documentation to not
7353         refer to internal APIs.
7354
7355 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7356
7357         * mono/Arguments.cs (GetDBusTypeConstructor):
7358         type.UnderlyingSystemType will return "System.Byte" if you do it
7359         on "byte[]", which is not what we want.  So check the type.IsArray
7360         property and use System.Array instead.
7361
7362 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7363
7364         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7365         the DBusUserInfo structure since this is passed into the function.
7366         This would cause a double free when the function that allocated
7367         the structure would try to free it when an error occured.
7368
7369         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7370         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7371         for service activation to avoid 32bit/64bit parallel install issues
7372
7373 2004-10-21  Colin Walters  <walters@verbum.org>
7374
7375         * AUTHORS: Fix my email address, the @gnu.org one
7376         has been bouncing for some time.  Also add J5.
7377         
7378 2004-10-21  Colin Walters  <walters@verbum.org>
7379
7380         * dbus/dbus-transport-unix.c (do_authentication): Return
7381         authentication status to callers.
7382         (unix_handle_watch): If we completed authentication this round,
7383         don't do another read.  Instead wait until the next iteration,
7384         after we've read any pending data in the auth buffer.
7385         (unix_do_iteration): Ditto.
7386         (unix_handle_watch): Updated for new do_authentication prototype.
7387
7388 2004-10-18  Colin Walters  <walters@verbum.org>
7389
7390         * bus/selinux.c (bus_selinux_enabled): Handle
7391         --disable-selinux case.
7392         
7393 2004-10-18  Colin Walters  <walters@verbum.org>
7394
7395         * bus/selinux.h: Add bus_selinux_enabled.
7396         
7397         * bus/selinux.c (bus_selinux_enabled): Implement it.
7398         
7399         * bus/config-parser.c (struct include): Add
7400         if_selinux_enabled member.
7401         (start_busconfig_child): Parse if_selinux_enabled
7402         attribute for include.
7403         (bus_config_parser_content): Handle it.
7404
7405         * bus/session.conf.in, bus/system.conf.in: Add
7406         inclusion of context mapping to default config files;
7407         conditional on SELinux being enabled.
7408         
7409         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7410         
7411         * test/data/invalid-config-files/badselinux-1.conf, 
7412         test/data/invalid-config-files/badselinux-2.conf:
7413         Test files for bad syntax.
7414         
7415 2004-10-17  Colin Walters  <walters@verbum.org>
7416
7417         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7418         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7419         format specifier mismatches.
7420
7421 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7422
7423         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7424         format string.
7425
7426         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7427         pointer (bug #1540, Leonardo Boiko).
7428
7429 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7430
7431         * mono/BusDriver.cs: Changed BusDriver struct to remove
7432         the ServiceCreated and ServiceDeleted events and replace them
7433         with the new ServiceOwnerChanged event.
7434
7435         * mono/example/BusListener.cs: Added a new example program,
7436         which listens for and reports any ServiceOwnerChanged events
7437         on the bus driver.
7438
7439         * mono/example/Makefile.am (DESTDIR): Build changes for the
7440         new BusListener.cs example.
7441
7442 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7443
7444         * bus/signals.c (bus_match_rule_parse): validate the components of
7445         match rules (bug #1439).
7446
7447         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7448
7449 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7450
7451         * doc/dbus-specification.xml: document ServiceOwnerChanged
7452         signal.
7453         
7454         * bus/driver.c, bus/driver.h, bus/services.c: Use
7455         ServiceOwnerChanged signal instead of ServiceCreated and
7456         ServiceDeleted.
7457         
7458         * bus/dispatch.c: update testcase for the new signal.
7459
7460 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7461
7462         Patch from Nat Friedman <nat@novell.com>
7463
7464         * mono/Makefile.am: A number of small build fixes to allow "make
7465         distcheck" to succeed.
7466
7467         * mono/example/Makefile.am: "make distcheck" fixes.
7468
7469         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7470         key in @srcdir@.
7471
7472         * test/Makefile.am: "make distcheck" fixes.
7473
7474 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7475
7476         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7477
7478         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7479
7480         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7481         messages after the first one (bug #1389).
7482         
7483         * bus/dispatch.c (check_double_hello_message): add a test case for
7484         the double hello message bug.
7485         (check_existent_service_activation): fix check of spawning error.
7486         
7487 2004-09-16  David Zeuthen  <david@fubar.dk>
7488
7489         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7490
7491 2004-09-12  David Zeuthen  <david@fubar.dk>
7492
7493         Patch from Kay Sievers <kay.sievers@vrfy.org>
7494
7495         * bus/bus.c (bus_context_new):
7496         * bus/bus.h:
7497         * bus/main.c (usage)
7498         (main):
7499         Add commandline option --nofork to override configuration file
7500         setting.
7501
7502 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7503
7504         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7505         compilers don't like it (bug #974).
7506
7507 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7508
7509         * qt/connection.*: Applied patch by Jérôme Lodewyck
7510         <lodewyck@clipper.ens.fr> to integrate an existing
7511         connection into the Qt eventloop
7512
7513 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7514
7515         * mono/BusDriver.cs: Added.  This is a class for interacting with
7516         the org.freedesktop.DBus service.
7517
7518         * mono/Message.cs: Added a mechanism to expose the message that is
7519         currently being dispatched via the static Message.Current
7520         property.  Added Message.Sender and Message.Destination
7521         properties.
7522
7523         * mono/Handler.cs: Expose the dispatched message via
7524         Message.Current when handling method calls.
7525
7526         * mono/Service.cs: Expose the dispatched message via
7527         Message.Current when handling signal emissions.
7528         
7529         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7530         Connection.BaseService property.
7531
7532 2004-08-28  Havoc Pennington  <hp@redhat.com>
7533
7534         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7535
7536         More fixes from Steve Grubb
7537         
7538         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7539         (_dbus_listen_tcp_socket): fix fd leak
7540
7541         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7542         EINTR to a bit lower in the code
7543
7544 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7545
7546         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7547         TRUE if we are inquiring about the existence of the built-in
7548         org.freedesktop.DBus service.
7549
7550 2004-08-25  John Palmieri  <johnp@redhat.com>
7551         * bus/config-parser.c:
7552         (struct PolicyType): Add POLICY_CONSOLE
7553         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7554         (start_busconfig_child): Sets up console element when
7555         <policy at_console=""> is encountered in a policy file
7556         (append_rule_from_element): Convert console elements to console
7557         rules.
7558
7559         * bus/policy.c: 
7560         (bus_policy_create_client_policy): Add console rules to the client
7561         policy based on if the client is at the console
7562         (bus_policy_append_console_rule): New function for adding a
7563         console rule to a policy
7564         (bus_policy_merge): Handle console rule merging
7565
7566         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7567         where we check for console user files
7568         
7569         * dbus/dbus-sysdeps.c:
7570         (_dbus_file_exists): New function which checks if the given
7571         file exists
7572         (_dbus_user_at_console): New function which does the system
7573         specific process of checking if the user is at the console
7574
7575         * dbus/dbus-userdb.c:
7576         (_dbus_is_console_user): New function converts a UID to user name
7577         and then calls the system specific _dbus_user_at_console to 
7578         see if the user is at the console and therefor a console user
7579
7580 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7581
7582         * bus/config-parser.c (set_limit):
7583         * bus/dbus-daemon-1.1.in:
7584         * test/data/valid-config-files/many-rules.conf: set the
7585         max_match_rules_per_connection limt from the config file. 
7586
7587         * doc/busconfig.dtd: update the DTD.
7588
7589         * bus/driver.c: remove some unused variables.
7590
7591 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7592
7593         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7594         it's been replaced by dbus_g_bus_get
7595
7596 2004-08-23  Colin Walters  <walters@redhat.com>
7597
7598         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7599
7600         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7601
7602         * bus/selinux.c: Create a thread for policy reload notification.
7603         (bus_selinux_get_policy_root): Implement.
7604
7605         * bus/config-parser.c (start_busconfig_child)
7606         (bus_config_parser_content): Support SELinux-root relative
7607         inclusion.
7608
7609         * configure.in <HAVE_SELINUX>: Add -lpthread.
7610         
7611         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7612         (test_post_hook): Move memory checking into here.
7613         (test_pre_hook, test_post_hook): Move SELinux checks in
7614         here, but conditional on a DBUS_TEST_SELINUX environment
7615         variable.  Unfortunately we can't run the SELinux checks
7616         as a normal user, since they won't have any permissions
7617         for /selinux.  So this will have to be tested manually
7618         for now, until we have virtualization for most of
7619         libselinux.
7620         
7621 2004-08-23  Havoc Pennington  <hp@redhat.com>
7622
7623         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7624         drop supplementary groups, suggested by Steve Grubb
7625
7626 2004-08-20  Colin Walters  <walters@redhat.com>
7627
7628         * bus/config-parser.c (start_busconfig_child): Remove some unused
7629         variables.
7630         
7631         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7632         warning.
7633
7634 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7635
7636         * configure.in: If --enable-mono is passed in, if we can't find
7637         mono error out.
7638
7639         * mono/Makefile.am: Use /gacutil to install assemblies into the
7640         GAC and not /root.
7641
7642 2004-08-12  Havoc Pennington  <hp@redhat.com>
7643
7644         * NEWS: update for 0.22
7645
7646         * configure.in: release 0.22
7647
7648 2004-08-11  Colin Walters  <walters@redhat.com>
7649
7650         * tools/dbus-send.c (main, usage): Add --reply-timeout
7651         argument.
7652
7653 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7654
7655         * bus/bus.c (process_config_first_time_only): get rid of an unused
7656         DBusError that was causing a memoy leak (bug #989).
7657
7658         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7659         fix compilation on Solaris/Forte C (bug #974)
7660
7661         * bus/main.c (main): plug two minuscule memleaks.
7662
7663 2004-08-10  Havoc Pennington  <hp@redhat.com>
7664
7665         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7666
7667 2004-08-09  Havoc Pennington  <hp@redhat.com>
7668
7669         * COPYING: switch to Academic Free License version 2.1 instead of
7670         2.0, to resolve complaints about patent termination clause.
7671
7672 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7673
7674         * README: added documentation for the --enable-python 
7675         configure switch.
7676
7677 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7678
7679         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7680         _unref in the SELinux support.
7681
7682         * doc/busconfig.dtd: update DTD for SELinux support.
7683
7684         * bus/config-loader-libxml.c: fix error handler and parser
7685         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7686
7687         * configure.in: remove the warning about libxml2.
7688
7689         * dbus/dbus-bus.c: silence doxygen warning.
7690
7691 2004-07-31  Colin Walters  <walters@redhat.com>
7692
7693         * configure.in: Move #error in SELinux check to its own line.
7694
7695 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7696
7697         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7698         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7699         dbus_error_set.
7700
7701         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7702         broken by the change in the _SET_OOM macros.
7703
7704 2004-07-31  Colin Walters  <walters@redhat.com>
7705
7706         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7707         BUS_SET_OOM.
7708
7709 2004-07-31  Colin Walters  <walters@redhat.com>
7710
7711         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7712         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7713         AC_MSG_CHECKING.
7714
7715 2004-07-24  Havoc Pennington  <hp@redhat.com>
7716
7717         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7718
7719         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7720         functionality
7721
7722         * configure.in: add --enable-selinux
7723         
7724         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7725
7726         * bus/main.c (main): initialize and shut down selinux
7727
7728         * bus/connection.c: store SELinux ID on each connection, to avoid 
7729         repeated getting of the string context and converting it into 
7730         an ID
7731
7732         * bus/bus.c (bus_context_get_policy): new accessor, though it
7733         isn't used
7734         (bus_context_check_security_policy): check whether the security
7735         context of sender connection can send to the security context of
7736         recipient connection
7737
7738         * bus/config-parser.c: add parsing for <selinux> and <associate>
7739         
7740         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7741         implement dbus_connection_get_unix_fd()
7742
7743         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7744         function, used by the selinux stuff
7745         
7746 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7747
7748         * bus/config-loader-libxml.c: complete the implementation of
7749         libxml backend for config file loader. Doesn't work with full OOM
7750         test yet. 
7751         
7752         * configure.in: change error when selecting libxml into a warning.
7753         
7754         * test/data/invalid-config-files: add two non-well-formed XML
7755         files. 
7756         
7757         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7758         
7759         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7760         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7761         be necessary to read all the buffer. (bug #894)
7762
7763         * bus/activation.c (bus_activation_activate_service): fix a
7764         potential assertion failure (bug #896). Small optimization in the
7765         case of auto-activation messages.
7766
7767         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7768         add test case for byte-through-vararg bug (#901). patch by Kimmo
7769         Hämäläinen. 
7770
7771 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7772
7773         * python/dbus.py:
7774         * python/dbus_bindings.pyx.in:
7775         Add dbus.init_gthreads (), allow emit_signal to pass
7776         arguments to the signal.
7777         
7778 2004-07-24  Havoc Pennington  <hp@redhat.com>
7779
7780         * AUTHORS: add some people, not really comprehensively, let me
7781         know if I missed you
7782
7783 2004-07-24  Havoc Pennington  <hp@redhat.com>
7784
7785         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7786         Owen
7787
7788         * test/Makefile.am (DIST_SUBDIRS): here also
7789
7790 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7791
7792         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7793         breaking build on Solaris, reported by Farhad Saberi on the ML.
7794
7795         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7796         va_arg invocation to account for integer promotion in the case of
7797         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7798
7799         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7800         _dbus_list_get_first_link, not _dbus_list_get_first.
7801
7802         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7803
7804         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7805         handler functions so that the asserts in _dbus_object_subtree_unref
7806         do not fail.
7807
7808         * dbus/dbus-transport-unix.c (do_reading):
7809         _dbus_transport_queue_messages return value is of type
7810         dbus_bool_t, not DBusDispatchStatus.
7811         
7812 2004-07-19  David Zeuthen  <david@fubar.dk>
7813
7814         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7815
7816         * bus/dispatch.c:
7817         (check_get_connection_unix_user): Debug says GetProperty; but the
7818         method is called GetConnectionUnixUser
7819         (check_get_connection_unix_process_id): New function
7820         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7821         also call check_get_connection_unix_process_id()
7822         
7823         * bus/driver.c:
7824         (bus_driver_handle_get_connection_unix_process_id): New function,
7825         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7826         interface
7827         
7828         * dbus/dbus-auth.c:
7829         (handle_server_data_external_mech): Set pid from the credentials
7830         obtained from the socket
7831         
7832         * dbus/dbus-connection.c:
7833         (dbus_connection_get_unix_process_id): New function
7834         
7835         * dbus/dbus-connection.h: 
7836         Add prototype for dbus_connection_get_unix_process_id
7837         
7838         * dbus/dbus-transport.c:
7839         (_dbus_transport_get_unix_process_id): New function
7840         
7841         * dbus/dbus-transport.h:
7842         Add prototype for _dbus_transport_get_unix_process_id
7843         
7844 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7845
7846         * dbus/dbus-message.c: Message counter fix, patch by Christian
7847         Hammond <chipx86@gnupdate.org>
7848
7849 2004-07-18  Seth Nickell  <seth@gnome.org>
7850
7851         * python/dbus.py:
7852         * python/dbus_bindings.pyx.in:
7853         * python/tests/test-client.py:
7854
7855         Add dbus.ByteArray and dbus_bindings.ByteArray
7856         types so that byte streams can be passed back.
7857
7858         Give jdahlin the heaps of credit that are so
7859         rightfully his.
7860         
7861 2004-07-12  Seth Nickell  <seth@gnome.org>
7862
7863         * python/dbus.py:
7864
7865         Add message argument to the default object_method_handler
7866         function.
7867         
7868         * python/dbus_bindings.pyx.in:
7869
7870         Automatically return NIL when passed an empty list
7871         (we can't pass back a list since lists are typed
7872         and we don't have any idea what type the the client
7873         intended the list to be... :-( )
7874         
7875 2004-07-10  Seth Nickell  <seth@gnome.org>
7876
7877         * python/examples/Makefile.am:
7878
7879         Fix distcheck breakage caused by new examples.
7880
7881 2004-07-10  Seth Nickell  <seth@gnome.org>
7882
7883         * python/dbus.py:
7884
7885         Add "message" argument to service-side dbus.Object
7886         methods. This will break existing services written
7887         using the python bindings, but will allow extraction
7888         of all the message information (e.g. who its from).
7889
7890         Add improved "object oriented" signal handling/emission.
7891         
7892         * python/examples/example-service.py:
7893
7894         Nix this example.
7895         
7896         * python/examples/example-signal-emitter.py:
7897         * python/examples/example-signal-recipient.py:
7898
7899         Two new examples that show how to emit and receive
7900         signals using the new APIs.
7901         
7902         * python/examples/example-signals.py:
7903         * python/examples/gconf-proxy-service.py:
7904         * python/examples/gconf-proxy-service2.py:
7905
7906         Add "message" argument to service methods.
7907
7908 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7909
7910         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7911         * dbus/bus.c (dbus_bus_get_unix_user)
7912         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7913         method of org.freedesktop.DBus interface.
7914
7915         * bus/dispatch.c: test case
7916
7917 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7918
7919         * python/Makefile.am: switched include directory from glib/ to dbus/
7920         since dbus-glib.h moved
7921  
7922 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7923
7924         * configure.in: prevent building the gcj stuff and libxml loader
7925         since they are broken.
7926
7927 2004-06-20  Havoc Pennington  <hp@redhat.com>
7928
7929         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7930         codes from the dbus error names
7931         
7932         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7933         as dbus/dbus-glib.h and that breakage is now visible due to 
7934         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7935         
7936         * glib/dbus-glib.h: s/gproxy/g_proxy/
7937
7938         * dbus/dbus-shared.h: new header to hold stuff shared with
7939         binding APIs
7940         
7941         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7942         than dbus-errors.h
7943
7944         * glib/dbus-glib.h (dbus_set_g_error): move to
7945         dbus-glib-lowlevel.h
7946
7947         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7948         of stuff to enable this
7949
7950         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7951
7952         * a bunch of other changes with the same basic "separate glib 
7953         bindings from dbus.h" theme
7954         
7955 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7956
7957         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7958
7959         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7960
7961 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7962
7963         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7964         the reply value of the ServiceExists message.
7965
7966 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7967
7968         * python/dbus_bindings.pyx.in: No longer need to parse path
7969         elements and pass them as arrays of strings.  The C API now
7970         accepts plain path strings.
7971         (_build_parsed_path): removed 
7972
7973 2004-06-07  Havoc Pennington  <hp@redhat.com>
7974
7975         * doc/TODO: remove auto-activation item since it's done; sort
7976         items by importance/milestone
7977
7978 2004-06-07  Havoc Pennington  <hp@redhat.com>
7979
7980         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7981         random signature when using REQUIRED_FIELDS (this hack won't work
7982         in the long term)
7983
7984         * dbus/dbus-message.c: change the signature to be a header field,
7985         instead of message->signature special-case string. Incremental
7986         step forward. Then we can fix up code to send the signature in the
7987         message, then fix up code to validate said signature, then fix up
7988         code to not put the typecodes inline, etc.
7989         (load_one_message): don't make up the signature after the fact
7990         (decode_header_data): require signature field for the known
7991         message types
7992
7993         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7994
7995         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7996
7997 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7998
7999         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8000
8001         * mono/Handler.cs: Updated to follow new path argument for
8002         (un-)registering objects.
8003
8004         * mono/example/Makefile.am:
8005         * mono/Makefile.am:
8006         * configure.in: Bumped required version for mono and use new -pkg
8007         syntax for deps
8008
8009 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8010
8011         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8012         registration functions take the path argument as char* instead of
8013         char**.
8014
8015         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8016         split off the path decompostion part of
8017         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8018         warnings. 
8019
8020         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8021         
8022 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8023  
8024         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8025         machine approach.  A state is implemented as a function that
8026         handles incoming events as specified for that state.
8027         
8028         * doc/dbus-specification.xml: Update auth protocol state machine
8029         specification to match implementation.  Remove some leftover
8030         base64 examples.
8031
8032 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8033
8034         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8035         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8036         quiet doxygen.
8037
8038         * Doxyfile.in: remove deprecated options.
8039
8040         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8041         glib/test-thread.h, glib/test-thread-client.c,
8042         glib/test-thread-server.c, glib/test-profile.c,
8043         glib/test-dbus-glib.c: remove these unused files.
8044
8045 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8046
8047         * dbus/dbus-object-tree.c
8048         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8049         non-fallback handlers (bug #684).
8050         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8051         (find_subtree_recurse): report wether the returned subtree is an
8052         exact match or a "fallback" match higher up in the tree.
8053         (object_tree_test_iteration): update test case.
8054
8055 2004-06-01  Seth Nickell  <seth@gnome.org>
8056
8057         * python/dbus_bindings.pyx.in:
8058         * python/tests/test-client.py:
8059
8060         Round off basic type support. Add dicts (yay!), and 
8061         remaining array types.
8062
8063         Make MessageIter more general so it works for dicts too.
8064
8065         Mark all loop variables as C integers.
8066         
8067 2004-05-31  Havoc Pennington  <hp@redhat.com>
8068
8069         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8070         "in" before "out"
8071
8072         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8073
8074         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8075         option that runs the tests, and start filling in some code
8076         including for starters just dumping the interfaces to stdout
8077
8078         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8079
8080         * test/data/valid-introspection-files/lots-of-types.xml: test of
8081         an example introspection file
8082
8083         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8084         "node" (I think...)
8085
8086 2004-05-31  Seth Nickell  <seth@gnome.org>
8087
8088         * python/dbus_bindings.pyx.in:
8089         * python/tests/test-client.py:
8090
8091         Test Suite: 1
8092         Python Bindings: 0
8093
8094         Fix string array memory trashing bug... oops...
8095
8096 2004-05-30  Seth Nickell  <seth@gnome.org>
8097
8098         * python/dbus.py:
8099
8100         Add a nicer-but-less-flexible alternate API for handling 
8101         calls to virtual objects in dbus.ObjectTree.
8102
8103         Screw up the argument order to the dbus.Object constructor
8104         for consistency with dbus.ObjectTree (and to make dbus_methods
8105         optional for future extension)
8106         
8107         * python/examples/Makefile.am:
8108         * python/examples/gconf-proxy-service.py:
8109         * python/examples/gconf-proxy-service2.py:
8110
8111         Alternate implementation of gconf-proxy-service using the
8112         nicer dbus.ObjectTree API.
8113         
8114         * python/examples/example-service.py:
8115         * python/tests/test-server.py
8116
8117         Reverse the argument order to deal with dbus.Object constructor
8118         changes.
8119         
8120 2004-05-30  Seth Nickell  <seth@gnome.org>
8121
8122         * python/examples/example-client.py:
8123         * python/examples/example-service.py:
8124
8125         Take it back. Lists seem to work but they're broken
8126         in the test suite. Make the base examples use
8127         lists (works fine).
8128
8129 2004-05-30  Seth Nickell  <seth@gnome.org>
8130
8131         * python/dbus_bindings.pyx.in:
8132         * python/tests/test-client.py:
8133
8134         Add some more tests and fix errors that crop up.
8135         Unfortunately, currently it seems like marshalling
8136         and unmarshalling of lists is completely broken :-(
8137
8138 2004-05-30  Seth Nickell  <seth@gnome.org>
8139
8140         * python/dbus_bindings.pyx.in:
8141
8142         Add support for ObjectPath type.
8143
8144         * python/dbus.py:
8145
8146         Refactor message handling code to a common function.
8147         
8148         * python/tests/test-client.py:
8149         * python/tests/test-server.py:
8150
8151         Add tests that check to make sure values of all types
8152         can be echoed from a service w/o mangling.
8153         
8154 2004-05-29  Seth Nickell  <seth@gnome.org>
8155
8156         * python/dbus.py:
8157
8158         Add ObjectTree class which allows implementation
8159         of trees of "virtual" objects. Basically the python
8160         wrapper for "register_fallback".
8161         
8162         * python/examples/Makefile.am
8163         * python/examples/gconf-proxy-client.py:
8164         * python/examples/gconf-proxy-service.py:
8165
8166         Implement a simple GConf proxy service that supports
8167         get/set on string and int GConf keys using the ObjectTree.
8168         
8169 2004-05-29  Seth Nickell  <seth@gnome.org>
8170
8171         * python/dbus.py:
8172         * python/examples/example-client.py:
8173         * python/examples/example-service.py:
8174         * python/examples/list-system-services.py:
8175
8176         Add SessionBus, SystemBus and ActivationBus classes
8177         so you don't need to know the special little BUS_TYPE
8178         flag.
8179         
8180 2004-05-29  Havoc Pennington  <hp@redhat.com>
8181
8182         * bus/config-parser.c (process_test_valid_subdir): temporarily
8183         stop testing config parser OOM handling, since expat has issues
8184         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8185
8186         * bus/dbus-daemon-1.1.in: change requested_reply to
8187         send_requested_reply/receive_requested_reply so we can send the
8188         replies, not just receive them.
8189
8190         * bus/config-parser.c: parse the new
8191         send_requested_reply/receive_requested_reply
8192
8193         * bus/policy.c (bus_client_policy_check_can_send): add
8194         requested_reply argument and use it
8195
8196         * bus/bus.c (bus_context_check_security_policy): pass through
8197         requested_reply status to message send check
8198
8199         * bus/system.conf.in: adapt to requested_reply change
8200         
8201 2004-05-28  Havoc Pennington  <hp@redhat.com>
8202
8203         * test/glib/test-service-glib.c (main): remove unused variable
8204
8205         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8206
8207         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8208         from the enum, no longer in use.
8209
8210         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8211         works right.
8212
8213         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8214         whether error_name passed in is a valid error name.
8215
8216 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8217
8218         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8219         OBJECT_PATH and OBJECT_PATH_ARRAY
8220
8221 2004-05-28  Seth Nickell  <seth@gnome.org>
8222
8223         * python/examples/Makefile.am:
8224
8225         Forget to add Makefile.am. Do not pass go.
8226
8227 2004-05-28  Michael Meeks  <michael@ximian.com>
8228
8229         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8230         fix no int64 case.
8231
8232         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8233
8234         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8235         (_dbus_message_iter_get_basic_type_array): impl.
8236         drastically simplify ~all relevant _get methods to use these.
8237         (_dbus_message_iter_append_basic_array),
8238         (dbus_message_iter_append_basic): impl
8239         drastically simplify ~all relevant _append methods to use these.
8240
8241         * dbus/dbus-message-builder.c (parse_basic_type) 
8242         (parse_basic_array, lookup_basic_type): impl.
8243         (_dbus_message_data_load): prune scads of duplicate /
8244         cut & paste coding.
8245
8246         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8247         (_dbus_demarshal_basic_type): implement,
8248         (demarshal_and_validate_len/arg): beef up debug.
8249         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8250
8251 2004-05-27  Seth Nickell  <seth@gnome.org>
8252
8253         * configure.in:
8254         * python/Makefile.am:
8255
8256         Include the example python apps in the tarball.
8257         
8258         * python/examples/list-system-services.py
8259
8260         Add a python new example that fetches the list of services
8261         from the system bus.
8262         
8263 2004-05-27  Seth Nickell  <seth@gnome.org>
8264
8265         * python/dbus.py:
8266         * python/dbus_bindings.pyx.in:
8267
8268         Fix failure to notify that a signal was not handled,
8269         resulted in hung functions.
8270         
8271 2004-05-25  Colin Walters  <walters@redhat.com>
8272
8273         * tools/dbus-monitor.c (main): Monitor all types of messages.
8274
8275 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8276
8277         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8278         which unregisters the object path and disposes the handler.
8279
8280 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8281  
8282         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8283          
8284         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8285         operands to && so we call dbus_message_iter_next () for the last
8286         argument also.
8287
8288 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8289
8290         * dbus/dbus-object-tree.c
8291         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8292         children even if the requested path isn't registered.
8293         (object_tree_test_iteration): test object_tree_list_registered.
8294
8295         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8296         it to 0.
8297         
8298 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8299
8300         * doc/TODO: Remove resolved items.
8301
8302         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8303         field.
8304         
8305         * bus/connection.c (bus_connections_expect_reply): Enforce the
8306         per-connection limit on pending replies.
8307         
8308         Patch from Jon Trowbridge <trow@ximian.com>:
8309  
8310         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8311         up a watch that triggers a config reload when one end of the pipe
8312         becomes readable.
8313         (signal_handler): Instead of doing the config reload in our SIGHUP
8314         handler, just write to the reload pipe and let the associated
8315         watch handle the reload when control returns to the main loop.
8316  
8317         * bus/driver.c (bus_driver_handle_reload_config): Added.
8318         Implements a ReloadConfig method for requesting a configuration
8319         file reload via the bus driver.
8320  
8321 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8322
8323         * HACKING: Updated release instructions concerning the wiki page.
8324
8325 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8326
8327         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8328         filter against auth->allowed_mechs; we only add allowed mechs in
8329         record_mechanisms().
8330  
8331         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8332         ALLOWED_MECHS to auth-script format so we can set the list of
8333         allowed mechanisms.
8334  
8335         * data/auth/client-out-of-mechanisms.auth-script: New test to
8336         check client disconnects when it is out of mechanisms to try.
8337  
8338         * dbus/dbus-auth.c (process_command): Remove check for lines
8339         longer that 1 MB; we only buffer up maximum 16 kB.
8340  
8341         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8342         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8343         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8344         assume there might be unused bytes.
8345  
8346         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8347         client-out-of-mechs, it is handled in process_reject(). Move check
8348         for max failures to send_rejected(), as it's a server-only thing.
8349
8350         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8351         send_auth(), send_data(), send_rejected(), send_error(),
8352         send_ok(), send_begin() and send_cancel().
8353
8354 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8355
8356         Remove base64 encoding, replace with hex encoding. Original patch
8357         from trow@ximian.com, added error handling.
8358
8359         * dbus/dbus-string.c (_dbus_string_base64_encode)
8360         (_dbus_string_base64_decode): Remove.
8361         (_dbus_string_hex_decode): Add end_return argument so we can
8362         distinguish between OOM and invalid hex encoding.
8363         (_dbus_string_test): Remove base64 tests and add test case for
8364         invalid hex.
8365
8366         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8367         Replace base64 with hex.
8368
8369         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8370         for invalid hex encoded data in auth protocol.
8371
8372 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8373
8374         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8375         leak.
8376
8377 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8378
8379         * mono/dbus-sharp.dll.config.in: Added for GAC
8380         * mono/dbus-sharp.snk: Added for GAC
8381         * mono/Assembly.cs.in: Added for GAC
8382         * mono/Makefile.am: Changes for GAC installation        
8383         * configure.in: Added refs for dbus-sharp.dll.config.in and
8384         Assembly.cs.in. More fixes for mono testing
8385         * mono/example/Makefile.am: Changed var to CSC
8386         * Makefile.am: Changed flag name to DBUS_USE_CSC
8387
8388 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8389
8390         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8391         * mono/doc/*: Added documentation framework
8392         * configure.in: Added monodoc check
8393         * README: Added description of mono configure flags
8394
8395 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8396
8397         * doc/dbus-specification.xml: Added a "Required" column to the 
8398         header fields table and changed the "zero or more" verbage in
8399         the above paragraph to read "The header must contain the required 
8400         named header fields and zero or more of the optional named header 
8401         fields".
8402         * test/data/invalid-messages/*.message: Added the required PATH 
8403         named header field to the tests so that they don't fail on 
8404         'Missing path field'
8405
8406 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8407
8408         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8409         the stack by implicitly defining variable and parameter types and
8410         removing the hack of defining C pointers as python objects and later
8411         casting them.
8412
8413 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8414
8415         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8416
8417 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8418
8419         * mono/DBusType/Dict.cs: Handle empty dicts
8420         * mono/DBusType/Array.cs: Handle empty arrays
8421         * mono/Arguments.cs: Handle empty arguments
8422
8423 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8424
8425         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8426         field
8427
8428 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8429
8430         * test/data/valid-messages/standard-*.message: Update message
8431         test scripts to new header field names.
8432
8433 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8434
8435         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8436         overflow to times_we_did_each_thing array which would chop off the
8437         first character of the failure_dir string. Increased the size of
8438         the array to 7 to reflect the number of random mutation functions
8439         we have.
8440
8441 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8442
8443         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8444         unix_server->watch here, it is unreffed in disconnect.
8445         (_dbus_server_new_for_tcp_socket): convert NULL host to
8446         "localhost" here so we don't append NULL to address.
8447         
8448         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8449         various addresses, including tcp with no explicit host.
8450
8451 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8452
8453         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8454         fix incorrect setting of .name_offset in the HeaderField (it was
8455         off by two bytes, positioned right after the name and typecode)
8456
8457         * bus/bus.c (bus_context_new, bus_context_unref): test before
8458         calling dbus_server_free_data_slot and _dbus_user_database_unref
8459         in case of an error.
8460
8461         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8462         by libdbus-gtool.
8463
8464 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8465
8466         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8467         _dbus_poll() instead of select().
8468
8469 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8470
8471         * bus/main.c (signal_handler): Reload the configuration files
8472         on SIGHUP.
8473         (main): Set up our SIGHUP handler.
8474
8475         * bus/bus.c (struct BusContext): Store the config file, user and
8476         fork flag in the BusContext.
8477         (process_config_first_time_only): Added.  Contains the code
8478         (previously in bus_context_new) for setting up the BusContext from
8479         the BusConfigParser that should only be run the first time the
8480         config files are read.
8481         (process_config_every_time): Added.  Contains the code (previously
8482         in bus_context_new) for setting up the BusContext from the
8483         BusConfigParser that should be run every time the config files are
8484         read.
8485         (load_config): Added.  Builds a BusConfigParser from the config
8486         files and passes the resulting structure off to
8487         process_config_first_time_only (assuming this is the first time)
8488         and process_config_every_time.
8489         (bus_context_new): All of the config-related code has been moved
8490         to process_config_first_time_only and process_config_every_time.
8491         Now this function just does the non-config-related initializations
8492         and calls load_config.
8493         (bus_context_reload_config): Added.
8494
8495 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8496
8497         * bus/driver.c (bus_driver_handle_get_service_owner):
8498         implement a GetServiceOwner method.
8499         * doc/dbus-specification.xml: document it.
8500         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8501         
8502         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8503         implement, using the bus GetServiceOwner method.
8504
8505         * test/glib/test-dbus-glib.c:
8506         use dbus_gproxy_new_for_service_owner so that we can receive the
8507         signal. 
8508
8509 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8510
8511         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8512         dbus/dbus-message.c, dbus/dbus-protocol.h
8513         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8514
8515         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8516         dbus/dbus-message.c, dbus/dbus-protocol.h
8517         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8518
8519         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8520         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8521         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8522
8523         * doc/dbus-specification.xml (Header Fields Table):
8524         s/SERVICE/DESTINATION
8525         s/SENDER_SERVICE/SENDER
8526
8527
8528 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8529
8530         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8531         a few seconds.
8532
8533 2004-04-13  Michael Meeks  <michael@ximian.com>
8534
8535         * glib/dbus-gobject.c (handle_introspect): split out
8536         (introspect_properties): this.
8537         (handle_introspect): implement this.
8538
8539         * test/glib/Makefile.am: use the absolute path so the bus
8540         daemon's chdir ("/") doesn't kill us dead.
8541
8542         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8543
8544 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8545
8546         * bus/config-parser.c (struct BusConfigParser): Added
8547         included_files field.
8548         (seen_include): Added.  Checks whether or not a file has already
8549         been included by any parent BusConfigParser.
8550         (bus_config_parser_new): Copy the parent's included_files.
8551         (include_file): Track which files have been included, and fail on
8552         circular inclusions.
8553         (process_test_valid_subdir): Changed printf to report if we are
8554         testing valid or invalid conf files.
8555         (all_are_equiv): Changed printf to be a bit clearer about
8556         what we are actually doing.
8557         (bus_config_parser_test): Test invalid configuration files.
8558
8559 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8560
8561         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8562         argument.  If non-null, the newly-constructed BusConfigParser will
8563         be initialized with the parent's BusLimits instead of the default
8564         values.
8565         (include_file): When including a config file, pass in
8566         the current parser as the parent and then copy the BusLimits
8567         from the included BusConfigParser pack to the current parser.
8568         (process_test_valid_subdir): Renamed from process_test_subdir.
8569         (process_test_equiv_subdir): Added.  Walks through a directory,
8570         descending into each subdirectory and loading the config files
8571         it finds there.  If any subdirectory contains two config files
8572         that don't produce identical BusConfigParser structs, fail.
8573         For now, the BusConfigParser's BusPolicies are not compared.
8574         (bus_config_parser_test): Call both process_test_valid_subdir and
8575         process_test_equiv_subdir.
8576
8577         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8578         argument and pass it along to the call to bus_config_parser_new.
8579         Also made a few small changes to allow this code to compile.
8580
8581         * bus/config-loader-expat.c (bus_config_load): Take a parent
8582         argument and pass it along to the call to bus_config_parser_new.
8583
8584         * bus/bus.c (bus_context_new): Load the config file
8585         with a NULL parent argument.
8586
8587 2004-03-29  Michael Meeks  <michael@ximian.com>
8588
8589         * glib/dbus-gobject.c (introspect_properties): split
8590         out, fix mangled 'while' flow control.
8591         (introspect_signals): implement.
8592         (handle_introspect): update.
8593
8594 2004-03-29  Michael Meeks  <michael@ximian.com>
8595
8596         * glib/dbus-gobject.c (set_object_property): split out / 
8597         re-work, use the property type, and not the message type(!)
8598         (get_object_property): ditto.
8599
8600         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8601         (dbus_gvalue_marshal): make this code re-usable, needed
8602         for signals too, also on both proxy and server side.
8603         Re-write for more efficiency / readability.
8604
8605 2004-03-29  Michael Meeks  <michael@ximian.com>
8606
8607         * dbus/dbus-message.c
8608         (dbus_message_new_error_printf): impl.
8609
8610         * dbus/dbus-connection.c
8611         (dbus_connection_unregister_object_path): fix warning.
8612
8613         * configure.in: fix no-mono-installed situation.
8614
8615 2004-03-27  Havoc Pennington  <hp@redhat.com>
8616
8617         Patch from Timo Teräs:
8618         
8619         * tools/dbus-send.c (main): if --print-reply, assume type is
8620         method call; support boolean type args
8621         
8622         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8623         bunch of memleak and logic bugs
8624         
8625 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8626
8627         * mono/Arguments.cs:
8628         * mono/Introspector.cs:
8629         * mono/Handler.cs:
8630         * mono/InterfaceProxy.cs:
8631         * mono/Message.cs
8632         * mono/ProxyBuilder.cs:
8633         * mono/Service.cs:
8634         Added InterfaceProxy class to avoid building proxies for every
8635         object.
8636
8637         * dbus-message.h:
8638         * dbus-message.c (dbus_message_append_args_valist)
8639         (dbus_message_iter_get_object_path)
8640         (dbus_message_iter_get_object_path_array)
8641         (dbus_message_iter_append_object_path)
8642         (dbus_message_iter_append_object_path_array):
8643         Added object_path iter functions to handle OBJECT_PATH arguments
8644         
8645 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8646
8647         First checkin of mono bindings.
8648         * configure.in:
8649         * Makefile.am:
8650         Build stuff for the bindings
8651         * dbus-sharp.pc.in: Added for pkgconfig
8652         
8653 2004-03-21  Havoc Pennington  <hp@redhat.com>
8654
8655         * test/test-service.c (main): remove debug spew
8656
8657 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8658
8659         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8660         arrays
8661
8662         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8663         (dbus_message_iter_init_array_iterator)
8664         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8665         indicate whether the iterator is empty
8666
8667         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8668         warnings
8669
8670 2004-03-19  Havoc Pennington  <hp@redhat.com>
8671
8672         * NEWS: 0.21 updates
8673
8674         * configure.in: 0.21
8675
8676         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8677         
8678         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8679         you don't need pyrex to make dist
8680
8681         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8682         sources; run moc
8683         
8684 2004-03-18  Richard Hult  <richard@imendio.com>
8685
8686         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8687         (dbus_message_set_auto_activation): Add doxygen docs.
8688
8689 2004-03-16  Richard Hult  <richard@imendio.com>
8690
8691         * bus/activation.c: (bus_activation_service_created),
8692         (bus_activation_send_pending_auto_activation_messages),
8693         (bus_activation_activate_service):
8694         * bus/activation.h:
8695         * bus/dispatch.c: (bus_dispatch),
8696         (check_nonexistent_service_auto_activation),
8697         (check_service_auto_activated),
8698         (check_segfault_service_auto_activation),
8699         (check_existent_service_auto_activation), (bus_dispatch_test):
8700         * bus/driver.c: (bus_driver_handle_activate_service):
8701         * bus/services.c: (bus_registry_acquire_service):
8702         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8703         (dbus_message_get_auto_activation):
8704         * dbus/dbus-message.h:
8705         * dbus/dbus-protocol.h: Implement auto-activation.
8706         
8707         * doc/dbus-specification.xml: Add auto-activation to the spec.
8708
8709 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8710
8711         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8712         fix a bug with CUSTOM types.
8713
8714         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8715         a unit test for this bug (used to fail).
8716
8717 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8718
8719         * bus/activation.c:
8720         (babysitter_watch_callback): notify all pending activations waiting for
8721           the same exec that the activation failed.
8722         (bus_activation_activate_service): shortcut the activation if we 
8723           already waiting for the same executable to start up.
8724
8725 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8726
8727         * bus/activation.c: 
8728         - Added service file reloading. 
8729           Each service files directory is kept in an hash table in 
8730           BusActivation and each BusActivationEntry knows what .service-file it
8731           was read from. So when you try to activate a service the bus will 
8732           check if it's been updated, removed or if new .service-files has 
8733           been installed.
8734         - Test code at the bottom for the service file reloading.
8735         * bus/test-main.c: (main):
8736         * bus/test.h:
8737         - added service reloading test.
8738         * dbus/dbus-sysdeps.c: 
8739         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8740
8741 2004-03-08  Michael Meeks  <michael@ximian.com>
8742
8743         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8744         bail immediately if disconnected, to avoid busy loop.
8745
8746         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8747         cleanup cut/paste/inefficiency.
8748
8749 2004-03-01  David Zeuthen  <david@fubar.dk>
8750
8751         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8752         bug where args were used twice. This bug resulted in a segfault
8753         on a Debian/PPC system when starting the messagebus daemon. Include
8754         dbus-sysdeps.h for DBUS_VA_COPY
8755
8756         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8757
8758         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8759         appropriate va_copy implementation. From GLib
8760         
8761 2004-02-24  Joe Shaw  <joe@ximian.com>
8762
8763         * bus/services.c (bus_registry_acquire_service): We need to pass
8764         in the service name to dbus_set_error() to prevent a crash.
8765
8766 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8767
8768         * AUTHORS: Reveal my True identity.
8769
8770 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8771
8772         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8773         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8774
8775 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8776
8777         * doc/TODO: Added not about better error check of configuration files.
8778
8779 2003-12-02  Richard Hult  <richard@imendio.com>
8780
8781         * Update AFL version to 2.0 throughout the source files to reflect
8782         the update that was done a while ago.
8783
8784 2003-12-02  Richard Hult  <richard@imendio.com>
8785
8786         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8787         wrote_dict_key to FALSE on the iter that the dict is appended to,
8788         just like when appending other types. Fixes a bug where a dict
8789         couldn't be put inside a dict.
8790         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8791         (message_iter_test, _dbus_message_test): Add test case for dict
8792         inside dict.
8793
8794 2003-12-01  David Zeuthen  <david@fubar.dk>
8795
8796         * python/dbus.py: Add the actual message when calling the reciever
8797         of a signal such that parameters can be inspected. Add the method
8798         remove_signal_receiver
8799         
8800 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8801
8802         * bus/*.[ch]:
8803         * dbus/*.[ch]:
8804         * glib/*.[ch]: Made ref functions return the pointer
8805
8806 2003-11-25  Zack Rusin  <zack@kde.org>
8807
8808         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8809
8810         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8811         wrappers,
8812
8813         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8814         the Integrator and to better fit with the server,
8815
8816 2003-11-24  Zack Rusin  <zack@kde.org>
8817
8818         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8819         the integrator handles it now
8820
8821         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8822         since QTimer wasn't really meant to be used the way DBusTimeout is
8823
8824 2003-11-24  Zack Rusin  <zack@kde.org>
8825
8826         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8827         Integrator class which integrates D-BUS with the Qt event loop,
8828
8829         * qt/connection.h, qt/connection.cpp: Move all the code which
8830         was dealing with D-BUS integration to the Integrator class,
8831         and start using Integrator,
8832
8833 2003-11-23  Zack Rusin  <zack@kde.org>
8834
8835         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8836         wrapper
8837
8838         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8839         switching namespaces to DBusQt, reworking the class,
8840
8841         * Makefile.cvs: switching dependencies so that it matches KDE 
8842         schematics,
8843         
8844         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8845         the library
8846
8847 2003-11-19  Havoc Pennington  <hp@redhat.com>
8848
8849         * NEWS: update
8850
8851         * configure.in: bump version to 0.20
8852
8853         * configure.in (have_qt): add yet another place to look for qt
8854         (someone hand trolltech a .pc file...)
8855
8856 2003-11-01  Havoc Pennington  <hp@redhat.com>
8857
8858         * doc/dbus-specification.xml: add state machine docs on the auth
8859         protocol; just a first draft, I'm sure it's wrong.      
8860
8861 2003-10-28  David Zeuthen  <david@fubar.dk>
8862
8863         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8864         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8865         
8866 2003-10-28  Havoc Pennington  <hp@redhat.com>
8867
8868         * dbus/dbus-message.c (get_next_field): delete unused function
8869
8870 2003-10-28  Havoc Pennington  <hp@redhat.com>
8871
8872         * bus/expirelist.c (do_expiration_with_current_time): detect
8873         failure of the expire_func due to OOM
8874
8875         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8876
8877         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8878         NoReply error that's now created by the bus when the service exits
8879
8880 2003-10-28  Havoc Pennington  <hp@redhat.com>
8881
8882         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8883         tests for set_path, set_interface, set_member, etc.
8884
8885         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8886
8887         * dbus/dbus-message.c (set_string_field): always just delete and
8888         re-append the field; accept NULL for deletion
8889         (re_align_fields_recurse): reimplement
8890         
8891 2003-10-26  Havoc Pennington  <hp@redhat.com>
8892
8893         * dbus/dbus-connection.c: fix docs to properly describe the
8894         disconnected message
8895         (_dbus_connection_notify_disconnected): remove this function; 
8896         we can't synchronously add the disconnected message, we have to 
8897         do it after we've queued any remaining real messages
8898         (_dbus_connection_get_dispatch_status_unlocked): queue the
8899         disconnect message only if the transport has finished queueing all
8900         its real messages and is disconnected.
8901         (dbus_connection_disconnect): update the dispatch status here
8902
8903 2003-10-22  Havoc Pennington  <hp@redhat.com>
8904
8905         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8906
8907         * bus/connection.c (bus_transaction_send_from_driver): set the
8908         destination to the connection's base service
8909
8910 2003-10-20  Havoc Pennington  <hp@redhat.com>
8911
8912         hmm, make check is currently not passing.
8913         
8914         * doc/dbus-specification.xml: add requirement that custom type
8915         names follow the same rules as interface names.
8916
8917         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8918         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8919         'map'
8920
8921         * doc/dbus-specification.xml: update type codes to match
8922         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8923         CUSTOM. Add type OBJECT_PATH to the spec.
8924
8925 2003-10-17  Havoc Pennington  <hp@redhat.com>
8926
8927         * bus/driver.c (create_unique_client_name): use "." as separator
8928         in base service names instead of '-'
8929
8930         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8931         byte at the end of the string
8932
8933         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8934         optimization macros since string validation seems to be a slow
8935         point.
8936         
8937         * doc/dbus-specification.xml: restrict valid
8938         service/interface/member/error names. Add test suite code for the
8939         name validation.
8940
8941         * dbus/dbus-string.c: limit service/interface/member/error names 
8942         to [0-9][A-Z][a-z]_
8943
8944         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8945         format arg to verbose spew
8946
8947         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8948         memory, return instead of g_error
8949
8950         * test/test-service.c (path_message_func): support emitting a
8951         signal on request
8952
8953         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8954         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8955         assuming the activation bus was the session bus so that services
8956         started manually will still register.
8957         (init_connections_unlocked): fix so that in OOM situation we get
8958         the same semantics when retrying the function
8959         
8960         * test/test-service.c (main): change to use path registration, to
8961         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8962         than DBUS_BUS_SESSION
8963
8964 2003-10-16  Havoc Pennington  <hp@redhat.com>
8965
8966         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8967
8968         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8969         coverage of the tests
8970         (coverage-report.txt): don't move the .da and .bbg files around
8971
8972 2003-10-16  Havoc Pennington  <hp@redhat.com>
8973
8974         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8975         to put there
8976
8977 2003-10-16  Havoc Pennington  <hp@redhat.com>
8978
8979         * bus/connection.c (bus_pending_reply_expired): either cancel or
8980         execute, not both
8981         (bus_connections_check_reply): use unlink, not remove_link, as we
8982         don't want to free the link; fixes double free mess
8983
8984         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8985         where no reply was received
8986
8987         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8988         fix a refcount leak
8989
8990         * bus/signals.c (match_rule_matches): add special cases for the
8991         bus driver, so you can match on sender/destination for it.
8992
8993         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8994         DBUS_PRINT_BACKTRACE is set
8995
8996         * dbus/dbus-internals.c: add pid to assertion failure messages
8997
8998         * dbus/dbus-connection.c: add message type code to the debug spew
8999
9000         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9001         sender=foo not service=foo
9002
9003         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9004         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9005         DBUS_ACTIVATION_ADDRESS instead
9006
9007         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9008         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9009
9010         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9011         context struct
9012
9013         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9014         (dbus_message_iter_get_object_path_array): new function (half
9015         finished, disabled for the moment)
9016         
9017         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9018         DBUS_MESSAGE_TYPE_ERROR
9019
9020         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9021         avoid redirecting stderr to /dev/null
9022         (babysit): close stdin if not doing the "exit_with_session" thing
9023
9024         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9025         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9026         stdout/stdin, so things don't get confused
9027         
9028         * bus/system.conf.in: fix to allow replies, I modified .conf
9029         instead of .conf.in again.
9030
9031 2003-10-14  David Zeuthen  <david@fubar.dk>
9032
9033         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9034         argtype to arg_type when raising unknown arg type exception.
9035         Changed type list to reflect the changes in dbus-protocol.h so 
9036         the bindings actually work.
9037
9038 2003-10-14  Havoc Pennington  <hp@redhat.com>
9039
9040         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9041         to have a bug keeping it from outputting the .da files sometimes
9042         (string_get_string): don't append garbage nul bytes to the string.
9043
9044 2003-10-15  Seth Nickell  <seth@gnome.org>
9045
9046         * python/Makefile.am:
9047
9048         Include dbus_h_wrapper.h in the dist tarball.
9049
9050 2003-10-14  Havoc Pennington  <hp@redhat.com>
9051
9052         * bus/bus.c (bus_context_check_security_policy): revamp this to
9053         work more sanely with new policy-based requested reply setup
9054
9055         * bus/connection.c (bus_transaction_send_from_driver): set bus
9056         driver messages as no reply
9057
9058         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9059         requested_reply attribute on allow/deny rules
9060
9061         * bus/system.conf: add <allow requested_reply="true"/>
9062
9063         * bus/driver.c (bus_driver_handle_message): fix check for replies
9064         sent to the bus driver, which was backward. How did this ever work
9065         at all though? I think I'm missing something.
9066
9067         * dbus/dbus-message.c (decode_header_data): require error and
9068         method return messages to have a reply serial field to be valid
9069         (_dbus_message_loader_queue_messages): break up this function;
9070         validate that reply serial and plain serial are nonzero; 
9071         clean up the OOM/error handling.
9072         (get_uint_field): don't return -1 from this
9073         (dbus_message_create_header): fix signed/unsigned bug
9074
9075         * bus/connection.c (bus_connections_expect_reply): save serial of
9076         the incoming message, not reply serial
9077
9078 2003-10-14  Havoc Pennington  <hp@redhat.com>
9079
9080         * bus/connection.c: implement pending reply tracking using
9081         BusExpireList
9082
9083         * bus/bus.c (bus_context_check_security_policy): verify that a
9084         reply is pending in order to allow a reply to be sent. Deny 
9085         messages of unknown type.
9086
9087         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9088
9089         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9090         (bus_context_get_reply_timeout): new
9091
9092 2003-10-13  Seth Nickell  <seth@gnome.org>
9093
9094         * python/Makefile.am:
9095
9096         Pass "make distcheck": remove a couple files from DIST_FILES
9097         that weren't included in the final version.
9098
9099 2003-10-12  Havoc Pennington  <hp@pobox.com>
9100
9101         Added test code that 1) starts an actual bus daemon and 2) uses
9102         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9103         more testing possible, but this is the basic framework.
9104         
9105         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9106         empty proxy lists from the proxy list hash
9107
9108         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9109         couple of return_if_fail checks
9110
9111         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9112         to allocate, so everything is cleared to NULL as it should be.
9113
9114         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9115         source as data to dbus_connection_set_timeout_functions() as the 
9116         timeout functions expected
9117
9118         * test/glib/run-test.sh: add a little script to start up a message
9119         bus and run tests using it
9120
9121         * tools/dbus-launch.1: updates
9122
9123         * tools/dbus-launch.c (main): add --config-file option
9124
9125         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9126         that could never be reached.
9127
9128         * dbus/dbus-message.c (dbus_message_new_method_return) 
9129         (dbus_message_new_error, dbus_message_new_signal): set the
9130         no-reply-expected flag on all these. Redundant, but may
9131         as well be consistent.
9132
9133 2003-10-11  Havoc Pennington  <hp@pobox.com>
9134
9135         * test/decode-gcov.c (function_solve_graph): make broken block
9136         graph a nonfatal error since it seems to be broken. Need to debug
9137         this.
9138
9139         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9140         can't just check type > INVALID < LAST anymore
9141
9142         * dbus/dbus-message.c (dbus_message_get_signature): new function
9143         (dbus_message_has_signature): new function
9144         (struct DBusMessage): add signature field (right now it isn't sent
9145         over the wire, just generated on the fly)
9146         (dbus_message_copy): copy the signature, and init strings to
9147         proper length to avoid some reallocs
9148         (dbus_message_iter_init_array_iterator): return void, since it
9149         can't fail
9150         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9151         (_dbus_message_loader_queue_messages): add silly temporary hack to
9152         fill in message->signature on load
9153
9154         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9155         characters, so they are relatively human-readable.
9156
9157 2003-10-11  Havoc Pennington  <hp@pobox.com>
9158
9159         * dbus/dbus-message.c (_dbus_message_test): add more test
9160         coverage, but #if 0 for now since they uncover a bug 
9161         not fixed yet; I think in re_align_field_recurse()
9162         (re_align_field_recurse): add FIXME about broken assertion
9163
9164         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9165
9166         * bus/connection.c: share a couple code bits with expirelist.c
9167
9168         * bus/expirelist.h, bus/expirelist.c: implement a generic
9169         expire-items-after-N-seconds facility, was going to share between
9170         expiring connections and replies, decided not to use for expiring
9171         connections for now.
9172
9173         * COPYING: include AFL 2.0 (still need to change all the file headers)
9174
9175 2003-10-09  Havoc Pennington  <hp@redhat.com>
9176
9177         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9178         gcc 3.3. Not that we do anything about it yet.
9179
9180         * bus/signals.c (bus_match_rule_parse): impose max length on the
9181         match rule text
9182
9183         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9184
9185 2003-10-09  Havoc Pennington  <hp@redhat.com>
9186
9187         Make matching rules theoretically work (add parser).
9188         
9189         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9190         the case where destination is explicitly specified as bus driver
9191         and someone else is eavesdropping.
9192         
9193         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9194         definition of eavesdropping and assertion
9195
9196         * tools/dbus-send.c (main): use dbus_message_type_from_string
9197
9198         * bus/signals.c (bus_match_rule_parse): implement
9199
9200         * dbus/dbus-message.c (dbus_message_type_from_string): new
9201
9202         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9203
9204 2003-10-02  Havoc Pennington  <hp@pobox.com>
9205
9206         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9207         dbus_gproxy_oneway_call
9208
9209         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9210         (dbus_server_setup_with_g_main): fix to allow calling them more
9211         than once on the same args
9212         (dbus_bus_get_with_g_main): new function
9213
9214 2003-10-02  Havoc Pennington  <hp@redhat.com>
9215
9216         * doc/dbus-tutorial.xml: write some stuff
9217
9218 2003-09-29  Havoc Pennington  <hp@pobox.com>
9219
9220         * configure.in: split checks for Doxygen from XML docs, check for
9221         xmlto
9222
9223         * doc/Makefile.am: XML-ify all the docs, and add a blank
9224         dbus-tutorial.xml
9225
9226 2003-09-29  Havoc Pennington  <hp@pobox.com>
9227
9228         * Merge dbus-object-names branch. To see the entire patch 
9229         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9230         it's huuuuge though.
9231         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9232         
9233 2003-09-28  Havoc Pennington  <hp@pobox.com>
9234
9235         * HACKING: update to reflect new server
9236
9237 2003-09-26  Seth Nickell  <seth@gnome.org>
9238
9239         * python/dbus.py:
9240         * python/examples/example-signals.py:
9241
9242         Start implementing some notions of signals. The API
9243         is really terrible, but they sort of work (with the
9244         exception of being able to filter by service, and to
9245         transmit signals *as* a particular service). Need to
9246         figure out how to make messages come from the service
9247         we registered :-(
9248         
9249         * python/dbus_bindings.pyx.in:
9250
9251         Removed duplicate message_handler callbacks.
9252         
9253 2003-09-25  Havoc Pennington  <hp@redhat.com>
9254
9255         * bus/session.conf.in: fix my mess
9256
9257 2003-09-25  Havoc Pennington  <hp@pobox.com>
9258
9259         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9260
9261 2003-09-25  Seth Nickell  <seth@gnome.org>
9262
9263         * python/examples/example-service.py:
9264
9265         Johan notices complete wrong code in example-service, but
9266         completely wrong in a way that works exactly the same (!).
9267         Johan is confused, how could this possibly work? Example
9268         code fails to serve purpose of making things clear.
9269         Seth fixes.
9270
9271 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9272
9273         * doc/dbus-specification.sgml: don't require header fields
9274         to be 4-byte aligned and specify that fields should be
9275         distinguished from padding by the fact that zero is not
9276         a valid field name.
9277         
9278         * doc/TODO: remove re-alignment item and add item to doc
9279         the OBJECT_PATH type.
9280         
9281         * dbus/dbus-message.c:
9282         (HeaderField): rename the original member to value_offset
9283         and introduce a name_offset member to keep track of where
9284         the field actually begins.
9285         (adjust_field_offsets): remove.
9286         (append_int_field), (append_uint_field),
9287         (append_string_field): don't align the start of the header
9288         field to a 4-byte boundary.
9289         (get_next_field): impl finding the next marhsalled field
9290         after a given field.
9291         (re_align_field_recurse): impl re-aligning a number of
9292         already marshalled fields.
9293         (delete_field): impl deleting a field of any type and
9294         re-aligning any following fields.
9295         (delete_int_or_uint_field), (delete_string_field): remove.
9296         (set_int_field), (set_uint_field): no need to re-check
9297         that we have the correct type for the field.
9298         (set_string_field): ditto and impl re-aligning any
9299         following fields.
9300         (decode_header_data): update to take into account that
9301         the fields aren't 4-byte aligned any more and the new
9302         way to distinguish padding from header fields. Also,
9303         don't exit when there is too much header padding.
9304         (process_test_subdir): print the directory.
9305         (_dbus_message_test): add test to make sure a following
9306         field is re-aligned correctly after field deletion.
9307         
9308         * dbus/dbus-string.[ch]:
9309         (_dbus_string_insert_bytes): rename from insert_byte and
9310         allow the insert of multiple bytes.
9311         (_dbus_string_test): test inserting multiple bytes.
9312
9313         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9314         warning note to docs about having to re-align any
9315         marshalled values following the string.
9316         
9317         * dbus/dbus-message-builder.c:
9318         (append_string_field), (_dbus_message_data_load):
9319         don't align the header field.
9320         
9321         * dbus/dbus-auth.c: (process_test_subdir): print the
9322         directory.
9323         
9324         * test/break-loader.c: (randomly_add_one_byte): upd. for
9325         insert_byte change.
9326         
9327         * test/data/invalid-messages/bad-header-field-alignment.message:
9328         new test case.
9329         
9330         * test/data/valid-messages/unknown-header-field.message: shove
9331         a dict in the unknown field.
9332
9333 2003-09-25  Seth Nickell  <seth@gnome.org>
9334
9335         * python/dbus.py:
9336         * python/dbus_bindings.pyx.in:
9337
9338         Handle return values.
9339         
9340         * python/examples/example-client.py:
9341         * python/examples/example-service.py:
9342
9343         Pass back return values from the service to the client.
9344         
9345 2003-09-24  Seth Nickell  <seth@gnome.org>
9346
9347         * python/dbus.py:
9348
9349         Connect Object methods (when you are sharing an object) up... pass
9350         in a list of methods to be shared. Sharing all the methods just
9351         worked out too weird. You can now create nice Services over the
9352         DBus in Python. :-)
9353         
9354         * python/dbus_bindings.pyx.in:
9355
9356         Keep references to user_data tuples passed into C functions so 
9357         Python doesn't garbage collect on us.
9358
9359         Implement MethodReturn and Error subclasses of Message for creating
9360         DBusMessage's of those types.
9361         
9362         * python/examples/example-client.py:
9363         * python/examples/example-service.py:
9364
9365         Simple example code showing both how create DBus services and objects,
9366         and how to use them.
9367
9368 2003-09-23  Havoc Pennington  <hp@pobox.com>
9369
9370         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9371
9372 2003-09-23  Havoc Pennington  <hp@redhat.com>
9373
9374         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9375         (dbus_gproxy_disconnect_signal): implement
9376         (dbus_gproxy_manager_remove_signal_match): implement
9377         (dbus_gproxy_manager_add_signal_match): implement
9378         (dbus_gproxy_oneway_call): implement
9379
9380 2003-09-23  Havoc Pennington  <hp@pobox.com>
9381
9382         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9383         subclass. This means dropping the transparent thread safety of the
9384         proxy; you now need a separate proxy per-thread, or your own
9385         locking on the proxy. Probably right anyway.
9386         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9387
9388 2003-09-22  Havoc Pennington  <hp@redhat.com>
9389
9390         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9391
9392 2003-09-21  Seth Nickell  <seth@gnome.org>
9393
9394         First checkin of the Python bindings.
9395         
9396         * python/.cvsignore:
9397         * python/Makefile.am:
9398         * python/dbus_bindings.pyx.in:
9399         * python/dbus_h_wrapper.h:
9400
9401         Pieces for Pyrex to operate on, building a dbus_bindings.so
9402         python module for low-level access to the DBus APIs.
9403         
9404         * python/dbus.py:
9405
9406         High-level Python module for accessing DBus objects.
9407
9408         * configure.in:
9409         * Makefile.am:
9410
9411         Build stuff for the python bindings.
9412
9413         * acinclude.m4:
9414
9415         Extra macro needed for finding the Python C header files.
9416
9417 2003-09-21  Havoc Pennington  <hp@pobox.com>
9418
9419         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9420         implementing the proxy manager, didn't get very far.
9421
9422         * dbus/dbus-bus.c (dbus_bus_add_match): new
9423         (dbus_bus_remove_match): new
9424
9425         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9426         path_name argument; adjust the other not-yet-implemented 
9427         gproxy constructors to be what I think they should be.
9428
9429 2003-09-21  Havoc Pennington  <hp@pobox.com>
9430
9431         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9432         by default for message bus connections.
9433
9434         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9435         exit_on_disconnect flag is set and we process the disconnected
9436         signal.
9437         (dbus_connection_set_exit_on_disconnect): new function
9438
9439 2003-09-21  Havoc Pennington  <hp@pobox.com>
9440
9441         Get matching rules mostly working in the bus; only actually
9442         parsing the rule text remains. However, the client side of
9443         "signal connections" hasn't been started, this patch is only the
9444         bus side.
9445         
9446         * dbus/dispatch.c: fix for the matching rules changes
9447         
9448         * bus/driver.c (bus_driver_handle_remove_match)
9449         (bus_driver_handle_add_match): send an ack reply from these
9450         method calls
9451
9452         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9453         arguments, reported by Seth Nickell
9454
9455         * bus/config-parser.c (append_rule_from_element): support
9456         eavesdrop=true|false attribute on policies so match rules 
9457         can be prevented from snooping on the system bus.
9458
9459         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9460         and "destination" in attribute names; fix some docs bugs; 
9461         add eavesdrop=true|false attribute
9462
9463         * bus/driver.c (bus_driver_handle_add_match)
9464         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9465         messages
9466
9467         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9468         rid of broadcast service concept, signals are just always broadcast
9469
9470         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9471         mostly implement matching rules stuff (currently only exposed as signal
9472         connections)
9473
9474 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9475
9476         * doc/dbus-specification.sgml: Change the header field name
9477         to be an enum and update the rest of the spec to reference
9478         the fields using the conventinal name.
9479
9480         * dbus/dbus-protocol.h: update to reflect the spec.
9481
9482         * doc/TODO: add item to remove the 4 byte alignment requirement.
9483         
9484         * dbus/dbus-message.c: Remove the code to generalise the
9485         header/body length and serial number header fields as named
9486         header fields so we can reference field names using the 
9487         protocol values.
9488         (append_int_field), (append_uint_field), (append_string_field):
9489         Append the field name as a byte rather than four chars.
9490         (delete_int_or_uint_field), (delete_string_field): reflect the
9491         fact that the field name and typecode now occupy 4 bytes instead
9492         of 8.
9493         (decode_string_field), (decode_header_data): update to reflect
9494         protocol changes and move the field specific encoding from
9495         decode_string_field() back into decode_header_data().
9496         
9497         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9498         Add utility to aid debugging.
9499         
9500         * dbus/dbus-message-builder.c:
9501         (append_string_field), (_dbus_message_data_load): Update to
9502         reflect protocol changes; Change the FIELD_NAME directive
9503         to HEADER_FIELD and allow it to take the field's conventional
9504         name rather than the actual value.
9505         
9506         * test/data/*/*.message: Update to use HEADER_FIELD instead
9507         of FIELD_NAME; Always align the header on an 8 byte boundary
9508         *before* updating the header length.
9509
9510 2003-09-15  Havoc Pennington  <hp@pobox.com>
9511
9512         * dbus/dbus-pending-call.c: add the get/set object data
9513         boilerplate as for DBusConnection, etc. Use generic object data
9514         for the notify callback.
9515
9516         * glib/dbus-gparser.c (parse_node): parse child nodes
9517
9518         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9519         
9520         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9521         contain functions shared between the convenience lib and the
9522         installed lib
9523
9524         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9525         -export-symbols-regex to the GLib library
9526
9527         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9528         fix the locking in here, and add a default handler for
9529         Introspect() that just returns sub-nodes.
9530
9531 2003-09-14  Havoc Pennington  <hp@pobox.com>
9532
9533         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9534         rather than gfoo consistent
9535
9536         * glib/dbus-gproxy.h: delete for now, move contents to
9537         dbus-glib.h, because the include files don't work right since we
9538         aren't in the dbus/ subdir.
9539         
9540         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9541         (dbus_gproxy_end_call): finish
9542         (dbus_gproxy_begin_call): finish
9543
9544         * glib/dbus-gmain.c (dbus_set_g_error): new
9545
9546         * glib/dbus-gobject.c (handle_introspect): include information
9547         about child nodes in the introspection
9548
9549         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9550         function to help in implementation of introspection
9551
9552         * dbus/dbus-object-tree.c
9553         (_dbus_object_tree_list_registered_and_unlock): new function
9554
9555 2003-09-12  Havoc Pennington  <hp@pobox.com>
9556
9557         * glib/dbus-gidl.h: add common base class for all the foo_info
9558         types
9559
9560         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9561         similar to kdcop
9562
9563         * test/Makefile.am: try test srcdir -ef . in addition to test
9564         srcdir = ., one of them should work (yeah lame)
9565         
9566         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9567         library
9568         
9569         * glib/dbus-gparser.h: make description_load routines return
9570         NodeInfo* not Parser*
9571
9572         * Makefile.am (SUBDIRS): build test dir after all library dirs
9573
9574         * configure.in: add GTK+ detection
9575
9576 2003-09-07  Havoc Pennington  <hp@pobox.com>
9577
9578         * Make Doxygen contented.
9579
9580 2003-09-07  Havoc Pennington  <hp@pobox.com>
9581
9582         * doc/dbus-specification.sgml: more updates
9583
9584 2003-09-06  Havoc Pennington  <hp@pobox.com>
9585
9586         * doc/dbus-specification.sgml: partial updates
9587
9588         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9589         zillionth time; hopefully I edited the right file this time.
9590
9591         * bus/config-parser.c (append_rule_from_element): support
9592         send_type, send_path, receive_type, receive_path
9593
9594         * bus/policy.c: add message type and path to the list of things
9595         that can be "firewalled"
9596
9597 2003-09-06  Havoc Pennington  <hp@pobox.com>
9598
9599         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9600         (dbus_connection_register_object_path): make this not handle
9601         messages to paths below the given path
9602
9603 2003-09-03  Havoc Pennington  <hp@pobox.com>
9604
9605         * test/glib/Makefile.am: add this with random glib-linked test
9606         programs
9607
9608         * glib/Makefile.am: remove the random test programs from here,
9609         leave only the unit tests
9610
9611         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9612         uscore/javacaps conversion, and fix     
9613         (get_object_property, set_object_property): change to .NET
9614         convention for mapping props to methods, set_FooBar/get_FooBar, 
9615         since one language has such a convention we may as well copy it. 
9616         Plus real methods in either getFooBar or get_foo_bar style won't 
9617         collide with this convention.
9618
9619 2003-09-01  Havoc Pennington  <hp@pobox.com>
9620
9621         * glib/dbus-gparser.c: implement
9622
9623         * glib/dbus-gobject.c: start implementing skeletons support
9624
9625         * configure.in: when disabling checks/assert, also define
9626         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9627
9628 2003-09-01  Havoc Pennington  <hp@pobox.com>
9629
9630         * glib/Makefile.am: rearrange a bunch of files and get "make
9631         check" framework set up
9632
9633 2003-08-31  Havoc Pennington  <hp@pobox.com>
9634
9635         * fix build with --disable-tests
9636
9637 2003-08-30  Havoc Pennington  <hp@pobox.com>
9638
9639         * dbus/dbus-connection.c: purge DBusMessageHandler
9640
9641         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9642         use callbacks everywhere
9643
9644 2003-08-30  Havoc Pennington  <hp@pobox.com>
9645
9646         * test/data/valid-config-files/system.d/test.conf: change to 
9647         root for the user so warnings don't get printed
9648
9649         * dbus/dbus-message.c: add dbus_message_get_path,
9650         dbus_message_set_path
9651         
9652         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9653         dispatching to a path
9654
9655         * dbus/dbus-string.c (_dbus_string_validate_path): add
9656
9657         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9658         (_dbus_marshal_object_path): implement
9659
9660         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9661         to contain the path to the target object
9662         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9663         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9664
9665 2003-08-30  Havoc Pennington  <hp@pobox.com>
9666
9667         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9668
9669 2003-08-29  Havoc Pennington  <hp@pobox.com>
9670
9671         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9672         registered
9673         (struct DBusObjectSubtree): shrink this
9674         a lot, since we may have a lot of them
9675         (_dbus_object_tree_free_all_unlocked): implement
9676         (_dbus_object_tree_dispatch_and_unlock): implement
9677
9678 2003-08-29  Havoc Pennington  <hp@pobox.com>
9679
9680         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9681
9682 2003-08-28  Havoc Pennington  <hp@pobox.com>
9683
9684         purge DBusObjectID
9685         
9686         * dbus/dbus-connection.c: port to no ObjectID, create a
9687         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9688
9689         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9690         everything except UnregisterFunction and MessageFunction
9691         
9692         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9693         add DBUS_TYPE_OBJECT_PATH
9694         
9695         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9696         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9697         path-based object IDs
9698
9699 2003-08-25  Havoc Pennington  <hp@pobox.com>
9700
9701         Just noticed that dbus_message_test is hosed, I wonder when I
9702         broke that. I thought make check was passing earlier...
9703         
9704         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9705         container tree, will replace most of dbus-object-registry
9706
9707         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9708         screwup
9709
9710 2003-08-19  Havoc Pennington  <hp@pobox.com>
9711
9712         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9713         (dbus_message_is_error): fix this function
9714
9715         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9716         match
9717
9718         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9719         reflect clarified man page
9720         (bus_client_policy_check_can_send): ditto
9721         
9722         * bus/session.conf.in: fixup
9723
9724         * bus/system.conf.in: fixup
9725
9726 2003-08-18  Havoc Pennington  <hp@redhat.com>
9727
9728         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9729
9730         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9731         dumb bug created earlier (wrong order of args to
9732         decode_header_data())
9733         
9734         * tools/dbus-send.c: port
9735
9736         * tools/dbus-print-message.c (print_message): port
9737
9738         * test/data/*messages: port all messages over
9739         
9740         * dbus/dbus-message-builder.c: support including 
9741         message type
9742         
9743         * bus/driver.c: port over
9744         
9745         * bus/dispatch.c: port over to new stuff
9746
9747         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9748         rename disconnect signal to "Disconnected"
9749
9750 2003-08-17  Havoc Pennington  <hp@pobox.com>
9751
9752         This doesn't compile yet, but syncing up so I can hack on it from
9753         work. What are branches for if not broken code? ;-)
9754         
9755         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9756         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9757         DBUS_HEADER_FIELD_ERROR_NAME
9758         
9759         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9760         for the interface+member pairs
9761         (string_hash): change to use g_str_hash algorithm
9762         (find_direct_function, find_string_function): refactor these to
9763         share most code.
9764         
9765         * dbus/dbus-message.c: port all of this over to support 
9766         interface/member fields instead of name field
9767
9768         * dbus/dbus-object-registry.c: port over
9769         
9770         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9771         from _dbus_string_validate_name
9772
9773         * bus/dbus-daemon-1.1: change file format for the 
9774         <deny>/<allow> stuff to match new message naming scheme
9775
9776         * bus/policy.c: port over
9777
9778         * bus/config-parser.c: parse new format
9779         
9780 2003-08-16  Havoc Pennington  <hp@pobox.com>
9781
9782         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9783         broken assertion
9784
9785         * glib/dbus-gproxy.c: some hacking
9786
9787 2003-08-15  Havoc Pennington  <hp@redhat.com>
9788
9789         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9790
9791         * dbus/dbus-connection.c
9792         (dbus_connection_send_with_reply_and_block): factor out internals;
9793         change to convert any error replies to DBusError instead of 
9794         returning them as a message
9795
9796 2003-08-15  Havoc Pennington  <hp@pobox.com>
9797
9798         * dbus/dbus-connection.c, 
9799         dbus/dbus-pending-call.c: Finish the pending call stuff
9800
9801 2003-08-14  Havoc Pennington  <hp@redhat.com>
9802
9803         * dbus/dbus-pending-call.c: start on new object that will replace
9804         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9805         replies
9806
9807         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9808         with remote interfaces
9809
9810         * dbus/dbus-gidl.c: do the boring boilerplate in here
9811         
9812 2003-08-12  Havoc Pennington  <hp@pobox.com>
9813
9814         * bus/dispatch.c (bus_dispatch): make this return proper 
9815         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9816
9817         * dbus/dbus-errors.c (dbus_set_error): use
9818         _dbus_string_append_printf_valist
9819
9820         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9821         (_dbus_string_append_printf): new
9822
9823         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9824         UNKNOWN_METHOD
9825
9826         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9827         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9828         message is unhandled.
9829
9830 2003-08-11  Havoc Pennington  <hp@pobox.com>
9831
9832         * bus/test.c (client_disconnect_handler): change to return
9833         HANDLED (would have been REMOVE_MESSAGE)
9834
9835         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9836         HANDLED/NOT_YET_HANDLED instead of
9837         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9838         should be used.
9839
9840 2003-08-10  Havoc Pennington  <hp@pobox.com>
9841
9842         * tools/dbus-send.c (main): add --type argument, for now
9843         supporting only method_call and signal types.
9844
9845         * tools/dbus-print-message.c: print message type
9846
9847         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9848         init connection->objects
9849
9850         * doc/dbus-specification.sgml: fix sgml
9851
9852         * bus/*.c: port over to object-instance API changes
9853
9854         * test/test-service.c: ditto
9855         
9856         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9857         name, we will have to fix up the rest of the code to also handle
9858         this
9859         (dbus_message_new): generic message-creation call
9860         (set_string_field): allow appending name field
9861
9862 2003-08-06  Havoc Pennington  <hp@pobox.com>
9863
9864         * dbus/dbus-object-registry.c: implement signal connection 
9865         and dispatch
9866
9867         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9868
9869         * dbus/dbus-internals.c (_dbus_memdup): new function
9870
9871 2003-08-02  Havoc Pennington  <hp@pobox.com>
9872
9873         * dbus/dbus-message.c (dbus_message_get_no_reply)
9874         (dbus_message_set_no_reply): add these and remove
9875         set_is_error/get_is_error
9876
9877         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9878         remove the ERROR flag, since there's now an ERROR type
9879
9880 2003-08-01  Havoc Pennington  <hp@pobox.com>
9881
9882         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9883         implement
9884
9885         * dbus/dbus-message.c (dbus_message_get_type): new function
9886
9887         * doc/dbus-specification.sgml: add "type" byte to messages
9888
9889 2003-08-01  Havoc Pennington  <hp@pobox.com>
9890
9891         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9892         a message type enum to distinguish kinds of message
9893         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9894         that need not be replied to
9895
9896 2003-08-01  Havoc Pennington  <hp@pobox.com>
9897
9898         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9899         (unpack_8_octets): fix no-64-bit-int bug
9900
9901         * dbus/dbus-object-registry.c (validate_id): validate the 
9902         connection ID bits, not just the instance ID.
9903
9904         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9905         the connection-global 33 bits of the object ID
9906
9907         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9908         object ID in the new way
9909
9910         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9911         define server/client/instance bits.
9912
9913 2003-07-30  Havoc Pennington  <hp@pobox.com>
9914
9915         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9916         build
9917
9918 2003-07-13  Havoc Pennington  <hp@pobox.com>
9919
9920         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9921         fields to DBusObjectVTable and DBusObjectInfo
9922
9923 2003-07-12  Havoc Pennington  <hp@pobox.com>
9924
9925         * dbus/dbus-object-registry.c: implement unit test,
9926         fix bugs discovered in process
9927
9928         * dbus/dbus-connection.c: remove handler_table and
9929         register_handler(), add DBusObjectRegistry usage
9930
9931         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9932         (dbus_object_id_set_null): new functions
9933
9934 2003-07-08  Havoc Pennington  <hp@pobox.com>
9935
9936         * dbus/dbus-object.c: implement some of this
9937
9938         * dbus/dbus-object-registry.c
9939         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9940         param
9941         (_dbus_object_registry_new): handle OOM
9942
9943 2003-07-08  Havoc Pennington  <hp@pobox.com>
9944
9945         * dbus/dbus-object.h: sketch out an API for registering objects
9946         with a connection, that allows us to use as little as 24 bytes
9947         per object and lets application code represent an object in 
9948         any conceivable way.
9949
9950         * dbus/dbus-object-registry.c: implement the hard bits of the
9951         DBusConnection aspect of object API. Not yet wired up.
9952         
9953 2003-07-06  Havoc Pennington  <hp@pobox.com>
9954
9955         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9956         (_dbus_marshal_object_id): new
9957         (_dbus_demarshal_object_id): new
9958         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9959         consolidate identical switch cases. Don't conditionalize handling
9960         of DBUS_TYPE_UINT64, need to handle the type always.
9961         (_dbus_marshal_validate_arg): consolidate identical cases, and
9962         handle DBUS_TYPE_OBJECT_ID
9963
9964         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9965
9966         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9967
9968 2003-09-28  Havoc Pennington  <hp@pobox.com>
9969
9970         * real 0.13 release
9971
9972 2003-09-28  Havoc Pennington  <hp@pobox.com>
9973
9974         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9975         to work with Debian db2html
9976
9977 2003-09-28  Havoc Pennington  <hp@pobox.com>
9978
9979         * configure.in: 0.13
9980
9981         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9982         stylesheet-images for benefit of Debian
9983         
9984         Change back to using filesystem-linked sockets for the system
9985         bus, so only root can create the default system bus address.
9986         
9987         * bus/system.conf.in: change to use
9988         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9989
9990         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9991         from here.
9992
9993         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9994         here, and AC_DEFINE DBUS_SYSTEM_PATH
9995
9996 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9997
9998         * doc/TODO:
9999         * doc/busconfig.dtd:
10000         Add busconfig DTD.
10001         
10002 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10003
10004         * doc/dbus-specification.sgml:
10005         Add activation reply values.
10006         
10007 2003-08-05  Havoc Pennington  <hp@redhat.com>
10008
10009         * configure.in: 0.12
10010
10011 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10012
10013         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10014         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10015         (add_watch), (remove_watch), (create_source):
10016         Refcount fds, fixes some reentrancy issues.
10017         
10018 2003-07-30  Havoc Pennington  <hp@redhat.com>
10019
10020         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10021         bus address to be abstract if we have abstract sockets
10022
10023         * NEWS: update
10024
10025 2003-07-28  Havoc Pennington  <hp@redhat.com>
10026
10027         * bus/messagebus.in: fix to avoid processname/servicename 
10028         confusion, from Michael Kearey
10029         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10030         
10031 2003-07-23  Havoc Pennington  <hp@pobox.com>
10032
10033         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10034         fix from Andy Hanton to remove broken "+1"
10035
10036 2003-07-16  Havoc Pennington  <hp@pobox.com>
10037
10038         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10039         babysitter process, as suggested by Thomas Leonard, so 
10040         an "eval `dbus-launch --exit-with-session`" will actually 
10041         return
10042
10043 2003-07-16  Havoc Pennington  <hp@pobox.com>
10044
10045         * configure.in: print out EXPANDED_* variables in the summary at
10046         the end; clean up the code that computes EXPANDED_ variables and
10047         get the ones using exec_prefix right. Should make things work
10048         when you build without --prefix
10049
10050 2003-06-29  Havoc Pennington  <hp@pobox.com>
10051
10052         * mono/Test.cs (class Test): fire up a main loop and run it
10053
10054         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10055         done once, the app has to do it
10056
10057 2003-06-26  Havoc Pennington  <hp@pobox.com>
10058
10059         * mono/Connection.cs: set up connection with the glib main loop
10060
10061 2003-07-01  Havoc Pennington  <hp@redhat.com>
10062
10063         * doc/dbus-specification.sgml: clarify the format of a type code,
10064         change suggested by Jim Blandy
10065
10066 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10067
10068         * doc/Makefile.am:
10069         * tools/Makefile.am: Don't assume srcdir == builddir.
10070
10071         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10072         the allocated block.
10073         (_dbus_memory_test): New function.
10074         * dbus/dbus-test.h: Add _dbus_memory_test ().
10075         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10076
10077         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10078         of %c%c%c%c.
10079         (dbus_message_new): Remove obsolete @todo.
10080
10081         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10082         (_dbus_marshal_set_uint64): Fix comment.
10083
10084         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10085         hardcode FIELD_REPLY_SERIAL.
10086
10087         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10088         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10089
10090         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10091         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10092
10093 2003-06-24  Havoc Pennington  <hp@pobox.com>
10094
10095         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10096
10097 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10098
10099         * configure.in:
10100         * gcj/.cvsignore:
10101         * gcj/Hello.java:
10102         * gcj/Makefile.am:
10103         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10104         * gcj/org/.cvsignore:
10105         * gcj/org/Makefile.am:
10106         * gcj/org/freedesktop/.cvsignore:
10107         * gcj/org/freedesktop/Makefile.am:
10108         * gcj/org/freedesktop/dbus/.cvsignore:
10109         * gcj/org/freedesktop/dbus/Makefile.am:
10110         * gcj/org/freedesktop/dbus/Message.java: (Message),
10111         (Message.Message):
10112         * gcj/org/freedesktop/dbus/natMessage.cc:
10113         Fix the build system.
10114
10115 2003-06-22  Havoc Pennington  <hp@pobox.com>
10116
10117         * mono/Connection.cs: add more bindings
10118
10119         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10120         more than once.
10121
10122 2003-06-22  Havoc Pennington  <hp@pobox.com>
10123
10124         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10125         Start wrapping more stuff.
10126
10127 2003-06-22  Havoc Pennington  <hp@pobox.com>
10128
10129         * mono/Message.cs: implement Message.Wrap() that ensures we only
10130         have a single C# wrapper per DBusMessage, assuming it works which
10131         it probably doesn't.
10132
10133         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10134         (dbus_message_free_data_slot): new
10135         (dbus_message_set_data): new
10136         (dbus_message_get_data): new
10137
10138 2003-06-22  Havoc Pennington  <hp@pobox.com>
10139
10140         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10141         (_dbus_data_slot_allocator_alloc): rework these to keep a
10142         reference count on each slot and automatically manage a global
10143         slot ID variable passed in by address
10144
10145         * bus/bus.c: convert to new dataslot API
10146
10147         * dbus/dbus-bus.c: convert to new dataslot API
10148
10149         * dbus/dbus-connection.c: convert to new dataslot API
10150
10151         * dbus/dbus-server.c: convert to new dataslot API
10152
10153         * glib/dbus-gmain.c: ditto
10154
10155         * bus/test.c: ditto
10156
10157         * bus/connection.c: ditto
10158
10159 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10160
10161         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10162         after the gcj checks so that the correct configuration tags
10163         will be added to libtool.
10164
10165         * dbus-glib-1.pc.in: No need to specify any includes since
10166         dbus-1.pc.in has those.
10167
10168 2003-06-22  Havoc Pennington  <hp@pobox.com>
10169
10170         * mono/*, gcj/*, configure.in, Makefile.am:
10171         Check in makefiles and subdirs for mono and gcj bindings.
10172         Neither binding actually exists, just trying to get through
10173         all the build and other boring bits.
10174
10175 2003-06-21  Philip Blundell  <philb@gnu.org>
10176
10177         * tools/dbus-monitor.1: Updated.
10178
10179         * tools/dbus-send.1: Likewise.
10180
10181 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10182
10183         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10184         for hangup and error after checking read so we won't discard
10185         pending data if both hangup and read are set.
10186
10187 2003-06-19  Philip Blundell  <philb@gnu.org>
10188
10189         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10190
10191         * tools/dbus-send.c: Accept both --system and --session.
10192
10193         * tools/dbus-monitor.c: Same here.
10194
10195 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10196
10197         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10198         from C++ (Patch by Miloslav Trmac).
10199
10200 2003-06-15  Joe Shaw  <joe@assbarn.com>
10201
10202         * configure.in: Check for socklen_t.
10203
10204         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10205
10206         * test/test-segfault.c: Add #include <sys/time.h>
10207
10208         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10209         dbus-launch needs it.
10210
10211 2003-06-09  Havoc Pennington  <hp@redhat.com>
10212
10213         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10214         SUN_LEN, it breaks abstract socket usage
10215
10216         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10217         starts of lines.
10218
10219 2003-06-04  Havoc Pennington  <hp@pobox.com>
10220
10221         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10222         using unix:abstract=/foo, and when listening in a tmpdir
10223         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10224
10225         * dbus/dbus-transport.c (_dbus_transport_open): support
10226         unix:abstract=/foo
10227
10228         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10229         support abstract sockets
10230
10231         * dbus/dbus-transport-unix.c
10232         (_dbus_transport_new_for_domain_socket): support abstract sockets
10233
10234         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10235         toggle as an argument, implement abstract namespace support
10236         (_dbus_listen_unix_socket): ditto
10237
10238         * configure.in: add --enable-abstract-sockets and implement
10239         a configure check for autodetection of the right value.
10240
10241 2003-06-01  Havoc Pennington  <hp@pobox.com>
10242
10243         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10244         in /tmp (though on Linux this will end up being useless,
10245         when we add abstract namespace support)
10246
10247         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10248         subst'ing it
10249
10250 2003-05-28  Colin Walters  <walters@verbum.org>
10251
10252         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10253
10254 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10255
10256         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10257
10258 2003-05-17  Colin Walters  <walters@gnu.org>
10259
10260         * tools/dbus-send.c: Don't exit with an error code if --help was
10261         passed.  Default to using the session bus instead of the system
10262         one.
10263
10264         * tools/dbus-launch.c: Ditto.
10265
10266         * tools/dbus-monitor.c: Ditto.
10267
10268         * tools/dbus-send.1: Update with new arguments.
10269
10270         * tools/dbus-launch.c: Emit code to export variables.  New
10271         arguments -s and -c to specify shell syntax, and a bit of code to
10272         autodetect syntax.  Also, allow specifying a program to run.
10273
10274         * tools/dbus-launch.1: Update with new arguments.
10275
10276         * tools/dbus-send.1: Ditto.
10277
10278         * tools/dbus-monitor.1: Ditto.
10279
10280 2003-05-17  Havoc Pennington  <hp@pobox.com>
10281
10282         * bus/config-parser.c (merge_included): merge in policies from
10283         child configuration file.
10284
10285         * bus/policy.c (bus_policy_merge): function to merge two policies
10286         together
10287
10288 2003-05-16  Havoc Pennington  <hp@redhat.com>
10289
10290         * dbus/dbus-connection.c: disable verbose lock spew
10291
10292         * tools/dbus-send.c: add --print-reply command line option
10293
10294         * tools/dbus-print-message.h (print_message): new util function
10295         shared by dbus-send and dbus-monitor
10296
10297         * tools/dbus-monitor.c (handler_func): exit on disconnect
10298
10299         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10300         disconnected, don't try to use the read_watch
10301
10302         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10303         so we can find this bug more easily
10304
10305 2003-05-16  Havoc Pennington  <hp@redhat.com>
10306
10307         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10308         NULL as DBusHashTable is annoyingly likely to do.
10309
10310 2003-05-16  Colin Walters  <walters@verbum.org>
10311
10312         * tools/dbus-monitor.c: Add --session argument and usage()
10313         function.
10314
10315         * tools/dbus-monitor.1: Update with new --session arg.
10316
10317         * bus/Makefile.am (install-data-hook): Create
10318         $(libdir)/dbus-1.0/services so that the session bus is happy.
10319
10320 2003-05-15  Havoc Pennington  <hp@redhat.com>
10321
10322         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10323         on non-x86. ifdef's are evil.
10324
10325 2003-05-15  Havoc Pennington  <hp@redhat.com>
10326
10327         * configure.in: 0.11
10328
10329         * NEWS: update
10330
10331         * bus/Makefile.am (initddir): apparently we are supposed to put
10332         init scripts in /etc/rc.d/init.d not /etc/init.d
10333
10334         * bus/Makefile.am: remove the "you must --enable-tests to make
10335         check" as it broke distcheck
10336
10337         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10338
10339 2003-05-13  James Willcox  <jwillcox@gnome.org>
10340
10341         * configure.in:
10342         * bus/activation.c: (bus_activation_service_created),
10343         (bus_activation_activate_service):
10344         * bus/driver.c: (bus_driver_send_service_deleted),
10345         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10346         (bus_driver_send_service_acquired),
10347         (bus_driver_send_welcome_message),
10348         (bus_driver_handle_list_services):
10349         * bus/session.conf.in:
10350         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10351         (dbus_bus_service_exists), (dbus_bus_activate_service):
10352         * dbus/dbus-bus.h:
10353
10354         Add some convenience API which lets you activate a service, and did a
10355         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10356         and dbus_message_get_args()
10357
10358 2003-05-11  Havoc Pennington  <hp@pobox.com>
10359
10360         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10361         calling _dbus_marshal_validate_arg() for every byte in a byte
10362         array, etc.
10363
10364         * dbus/dbus-message-handler.c: use atomic reference counting to
10365         reduce number of locks slightly; the global lock in here sucks
10366
10367         * dbus/dbus-connection.c
10368         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10369         update_dispatch_status that can be called with lock held; then use
10370         in a couple places to reduce locking/unlocking
10371         (dbus_connection_send): hold the lock over the whole function
10372         instead of acquiring it twice.
10373
10374         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10375
10376         * bus/connection.c (bus_connections_setup_connection): fix access
10377         to already-freed memory.
10378
10379         * dbus/dbus-connection.c: keep a little cache of linked list
10380         nodes, to avoid using the global linked list alloc lock in the
10381         normal send-message case. Instead we just use the connection lock
10382         that we already have to take.
10383
10384         * dbus/dbus-list.c (_dbus_list_find_last): new function
10385
10386         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10387         change to use a struct for the atomic type; fix docs,
10388         they return value before increment, not after increment.
10389
10390         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10391         (_dbus_string_append_8_aligned): new functions to try to
10392         microoptimize this operation.
10393         (reallocate_for_length): break this out of set_length(), to
10394         improve profile info, and also so we can consider inlining the
10395         set_length() part.
10396
10397         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10398         strings with some preallocation, cuts down on our calls to realloc
10399         a fair bit. Though if we can get the "move entire string to empty
10400         string" optimization below to kick in here, it would be better.
10401
10402         * dbus/dbus-string.c (_dbus_string_move): just call
10403         _dbus_string_move_len
10404         (_dbus_string_move_len): add a special case for moving
10405         an entire string into an empty string; we can just
10406         swap the string data instead of doing any reallocs.
10407         (_dbus_string_init_preallocated): new function
10408
10409 2003-05-11  Havoc Pennington  <hp@pobox.com>
10410
10411         Write a "test-profile" that does echo client-server with threads;
10412         profile reveals lock contention, memcpy/realloc of buffers, and
10413         UTF-8 validation as hot spots. 20% of lock contention eliminated
10414         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10415         contention is global mempool locks for GList and DBusList.
10416
10417         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10418         x86 implementation
10419
10420         * dbus/dbus-connection.c (struct DBusConnection): use
10421         dbus_atomic_t for the reference count
10422
10423         * dbus/dbus-message.c (struct DBusMessage): declare
10424         dbus_atomic_t values as volatile
10425
10426         * configure.in: code to detect ability to use atomic integer
10427         operations in assembly, from GLib patch
10428
10429         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10430         time, tired of it being wrong in threads and forked processes
10431
10432         * glib/test-profile.c: a little program to bounce messages back
10433         and forth between threads and eat CPU
10434
10435         * dbus/dbus-connection.c: add debug spew macros for debugging
10436         thread locks; include config.h at top; fix deadlock in
10437         dbus_connection_flush()
10438
10439 2003-05-08  Havoc Pennington  <hp@pobox.com>
10440
10441         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10442         data from getting written, and there wasn't a good reason to
10443         use _exit really.
10444
10445         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10446         dbus_verbose lines in test coverage
10447         (main): add list of functions sorted by # of untested blocks
10448         to the coverage report
10449
10450         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10451
10452         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10453
10454         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10455         extend test coverage
10456
10457         * test/data/auth/cancel.auth-script: test canceling an
10458         authentication
10459
10460         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10461         aren't used. in CVS history if we end up needing them.
10462
10463 2003-05-04  Havoc Pennington  <hp@pobox.com>
10464
10465         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10466         unit test
10467
10468         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10469         function, which assumed length was in # of strings, not bytes
10470
10471         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10472         missing coverage
10473
10474         * dbus/dbus-connection.c
10475         (_dbus_connection_queue_received_message): disable function for
10476         now, we are only using it in test mode
10477
10478         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10479         remove a mistaken FIXME
10480
10481 2003-05-04  Havoc Pennington  <hp@pobox.com>
10482
10483         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10484         unlock mutex on successful return, patch from Anders Gustafsson
10485
10486 2003-05-04  Havoc Pennington  <hp@pobox.com>
10487
10488         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10489         Anders Gustafsson
10490
10491 2003-05-04  Havoc Pennington  <hp@pobox.com>
10492
10493         * tools/dbus-launch.c: implement
10494
10495         * bus/main.c (main), bus/bus.c (bus_context_new):
10496         implement --print-pid and --fork
10497
10498 2003-05-03  Havoc Pennington  <hp@redhat.com>
10499
10500         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10501         the address had no value, and add to test suite. Fix and
10502         regression test from Miloslav Trmac
10503
10504 2003-05-03  Havoc Pennington  <hp@pobox.com>
10505
10506         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10507         watch is invalid when handled
10508
10509         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10510         dbus-launch utility to launch the bus from a shell script.  Didn't
10511         actually implement dbus-launch yet, it's just a placeholder still.
10512
10513 2003-05-03  Havoc Pennington  <hp@pobox.com>
10514
10515         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10516         daemon; also documents daemon config file, so replaces
10517         doc/config-file.txt. Corrected some stuff from config-file.txt in
10518         the process of moving it.
10519
10520 2003-05-03  Havoc Pennington  <hp@pobox.com>
10521
10522         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10523         add some man pages
10524
10525 2003-05-03  Colin Walters  <walters@verbum.org>
10526
10527         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10528         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10529
10530         * Makefile.am: Update to use new .pc versioning scheme.
10531
10532 2003-05-02  Havoc Pennington  <hp@redhat.com>
10533
10534         * bus/system.conf.in: allow send/receive to/from message bus
10535         service
10536
10537 2003-04-30  Havoc Pennington  <hp@redhat.com>
10538
10539         * configure.in: print a note when building with unit tests and
10540         without assertions
10541
10542 2003-04-30  Havoc Pennington  <hp@redhat.com>
10543
10544         * Makefile.am: add a check-local that complains if you didn't
10545         configure with --enable-tests
10546
10547 2003-04-29  Havoc Pennington  <hp@redhat.com>
10548
10549         * glib/dbus-gmain.c: docs cleanups
10550
10551         * dbus/dbus-types.h: add docs on int64 types
10552
10553         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10554         public API docs section
10555
10556 2003-04-29  Havoc Pennington  <hp@redhat.com>
10557
10558         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10559         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10560         parallel install API version, not with the D-BUS package version.
10561
10562         * HACKING: move some of README over here
10563
10564         * README: updates, and document API/ABI policy
10565
10566         * configure.in: reindentation
10567
10568 2003-04-29  Havoc Pennington  <hp@redhat.com>
10569
10570         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10571         to use this library" to be sure people have the right
10572         expectations.
10573
10574 2003-04-28  Havoc Pennington  <hp@redhat.com>
10575
10576         * configure.in: add --enable-docs which by default is auto yes if
10577         doxygen and db2html found, no otherwise; but can be forced on/off
10578
10579         * doc/Makefile.am: conditionalize whether to build docs on
10580         --enable-docs
10581
10582 2003-04-28  Havoc Pennington  <hp@redhat.com>
10583
10584         * configure.in: 0.10
10585
10586         * NEWS: update
10587
10588         * bus/system.conf.in: add <includedir>system.d</includedir>
10589
10590         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10591         username was provided but not uid
10592
10593         * bus/config-parser.c (struct BusConfigParser): keep track of
10594         whether the parser is toplevel or was included; change some
10595         of the error handling if it's included.
10596
10597 2003-04-27  Havoc Pennington  <hp@pobox.com>
10598
10599         Unbreak my code...
10600
10601         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10602         report correct status if we finish processing authentication
10603         inside this function.
10604
10605         * bus/activation.c (try_send_activation_failure): use
10606         bus_transaction_send_error_reply
10607
10608         * bus/connection.c (bus_connection_get_groups): return an error
10609         explaining the problem
10610
10611         * bus/bus.c (bus_context_check_security_policy): implement
10612         restriction here that inactive connections can only send the
10613         hello message. Also, allow bus driver to send anything to
10614         any recipient.
10615
10616         * bus/connection.c (bus_connection_complete): create the
10617         BusClientPolicy here instead of on-demand.
10618         (bus_connection_get_policy): don't return an error
10619
10620         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10621         sender field in message being replied to
10622
10623         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10624         causing it to return FALSE always
10625
10626         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10627         we checked sender rather than destination
10628
10629 2003-04-25  Havoc Pennington  <hp@redhat.com>
10630
10631         test suite is slightly hosed at the moment, will fix soon
10632
10633         * bus/connection.c (bus_connections_expire_incomplete): fix to
10634         properly disable the timeout when required
10635         (bus_connection_set_name): check whether we can remove incomplete
10636         connections timeout after we complete each connection.
10637
10638         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10639         probably still broken.
10640
10641         * bus/services.c (bus_registry_acquire_service): implement max
10642         number of services owned, and honor allow/deny rules on which
10643         services a connection can own.
10644
10645         * bus/connection.c (bus_connection_get_policy): report errors here
10646
10647         * bus/activation.c: implement limit on number of pending
10648         activations
10649
10650 2003-04-25  Havoc Pennington  <hp@redhat.com>
10651
10652         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10653         where we used >= 0 instead of != DBUS_UID_UNSET.
10654
10655 2003-04-25  Havoc Pennington  <hp@redhat.com>
10656
10657         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10658         were toggled without add/remove, fix from Anders Gustafsson
10659
10660 2003-04-24  Havoc Pennington  <hp@redhat.com>
10661
10662         * test/data/valid-config-files/basic.conf: add <limit> tags to
10663         this test
10664
10665         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10666         <limit> tag in configuration file.
10667
10668 2003-04-24  Havoc Pennington  <hp@redhat.com>
10669
10670         * bus/dispatch.c: somehow missed some name_is
10671
10672         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10673         (_dbus_timeout_set_interval): new
10674
10675         * bus/connection.c (bus_connections_setup_connection): record time
10676         when each connection is first set up, and expire them after the
10677         auth timeout passes.
10678
10679 2003-04-24  Havoc Pennington  <hp@redhat.com>
10680
10681         * dbus/dbus-message.c (dbus_message_name_is): rename
10682         (dbus_message_service_is): rename
10683         (dbus_message_sender_is): rename
10684         (dbus_message_get_service): rename
10685
10686 2003-04-24  Havoc Pennington  <hp@redhat.com>
10687
10688         * configure.in: add --enable-checks
10689
10690         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10691
10692         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10693         to use thread locks.
10694         (_dbus_connection_handler_destroyed_locked): move some private
10695         functions into proper docs group
10696
10697         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10698         _dbus_return_val_if_fail
10699
10700         Throughout: use dbus_return_if_fail
10701
10702 2003-04-23  James Willcox  <jwillcox@gnome.org>
10703
10704         * glib/dbus-glib.h:
10705         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10706         (dbus_connection_setup_with_g_main),
10707         (dbus_server_setup_with_g_main):
10708         * glib/test-dbus-glib.c: (main):
10709         * glib/test-thread-client.c: (main):
10710         * glib/test-thread-server.c: (new_connection_callback), (main):
10711         * tools/dbus-monitor.c: (main):
10712
10713         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10714         and dbus_server_setup_with_g_main().
10715
10716 2003-04-20  Havoc Pennington  <hp@pobox.com>
10717
10718         * doc/dbus-specification.sgml: document the restrictions on
10719         message and service names
10720
10721 2003-04-22  Havoc Pennington  <hp@redhat.com>
10722
10723         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10724         support, and do some code cleanups to share more code and
10725         speed up array marshal/demarshal.
10726
10727         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10728
10729         * configure.in: generate dbus-arch-deps.h
10730
10731         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10732         64-bit typecodes
10733
10734 2003-04-22  Havoc Pennington  <hp@redhat.com>
10735
10736         * test/data/valid-messages/opposite-endian.message: fix test
10737         to use proper type for rply field
10738
10739         * test/data/invalid-messages: add tests for below validation
10740
10741         * dbus/dbus-message.c (decode_header_data): validate field types,
10742         and validate that named fields are valid names
10743         (decode_name_field): consider messages in the
10744         org.freedesktop.Local. namespace to be invalid.
10745
10746         * dbus/dbus-string.c (_dbus_string_validate_name): new
10747
10748 2003-04-19  Havoc Pennington  <hp@pobox.com>
10749
10750         * bus/driver.c (bus_driver_handle_hello): check limits and
10751         return an error if they are exceeded.
10752
10753         * bus/connection.c: maintain separate lists of active and inactive
10754         connections, and a count of each. Maintain count of completed
10755         connections per user. Implement code to check connection limits.
10756
10757         * dbus/dbus-list.c (_dbus_list_unlink): export
10758
10759         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10760         number of bytes in the message queue for a connection
10761
10762 2003-04-18  Havoc Pennington  <hp@pobox.com>
10763
10764         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10765
10766         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10767         memleaks
10768
10769         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10770         on realloc be sure to update the pointer in the keyring
10771
10772         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10773         offset to avoid writing to unallocated memory
10774
10775         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10776         try the next mechanism, so we properly handle OOM
10777
10778         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10779         on OOM.
10780         (_dbus_keyring_new): fix OOM bug
10781         (_dbus_keyring_new_homedir): always set error; impose a maximum
10782         number of keys we'll load from the file, mostly to speed up the
10783         test suite and make its OOM checks more useful, but also for
10784         general sanity.
10785
10786         * dbus/dbus-auth.c (process_error_server): reject authentication
10787         if we get an error from the client
10788         (process_cancel): on cancel, send REJECTED, per the spec
10789         (process_error_client): send CANCEL if we get an error from the
10790         server.
10791
10792 2003-04-18  Havoc Pennington  <hp@pobox.com>
10793
10794         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10795         debug spew
10796
10797         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10798         handling problem
10799
10800         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10801         about DBUS_TEST_HOMEDIR once
10802
10803         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10804         the environment
10805
10806         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10807         config file so we test the right thing
10808
10809         Throughout: assorted docs improvements
10810
10811 2003-04-18  Havoc Pennington  <hp@pobox.com>
10812
10813         * glib/dbus-gmain.c: adapt to watch changes
10814
10815         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10816
10817         * dbus/dbus-server.h: remove dbus_server_handle_watch
10818
10819         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10820
10821         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10822         like DBusTimeout, so we don't need dbus_connection_handle_watch
10823         etc.
10824
10825 2003-04-17  Havoc Pennington  <hp@redhat.com>
10826
10827         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10828         database usage so it all goes via the DBusUserDatabase cache.
10829
10830 2003-04-17  Havoc Pennington  <hp@redhat.com>
10831
10832         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10833         there was an OOM watch we skipped, we always return TRUE so we
10834         iterate again to have a look at it again. Fixes test suite hang.
10835         Code rearrangement also lets us lose some memset and only iterate
10836         over callbacks once.
10837
10838         * bus/driver.c (bus_driver_handle_message): sense of test for
10839         reply was backward
10840
10841 2003-04-16  Havoc Pennington  <hp@pobox.com>
10842
10843         * doc/dbus-specification.sgml: make spec say serials are unsigned
10844
10845         * dbus/dbus-message.h: change message serials to unsigned
10846
10847         * dbus/dbus-connection.c: adapt to message serials being unsigned
10848
10849 2003-04-15  Havoc Pennington  <hp@pobox.com>
10850
10851         * bus/bus.c: create and keep around a shared DBusUserDatabase
10852         object.
10853
10854         * bus/connection.c (bus_connection_get_groups): don't cache
10855         groups for user in the connection object, since user database
10856         object now does that.
10857
10858 2003-04-16  Havoc Pennington  <hp@redhat.com>
10859
10860         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10861         list of size counters
10862         (_dbus_message_loader_putback_message_link): put back a popped link
10863
10864         * dbus/dbus-connection.c
10865         (dbus_connection_set_max_live_messages_size): rename
10866         max_received_size
10867         (dbus_connection_get_outgoing_size): get size of outgoing
10868         queue
10869         (_dbus_connection_set_connection_counter): remove this cruft
10870
10871 2003-04-14  Havoc Pennington  <hp@redhat.com>
10872
10873         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10874         caching, but at some point we might want to be able to use a
10875         different database.
10876
10877         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10878         SHA1 conf file to test the sha1 auth mechanism, since the regular
10879         test always uses EXTERNAL when available.
10880
10881         * configure.in,
10882         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10883         add conf file that requires use of sha1 auth
10884
10885 2003-04-13  Havoc Pennington  <hp@pobox.com>
10886
10887         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10888         from Philip Blundell to send messages and monitor them.
10889
10890 2003-04-13  Havoc Pennington  <hp@pobox.com>
10891
10892         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10893         callbacks
10894
10895         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10896         users
10897
10898         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10899         fix to only recover unused bytes if we're already authenticated
10900         (_dbus_transport_get_is_authenticated): fix to still mark us
10901         authenticated if there are unused bytes.
10902
10903         * bus/dispatch.c: implement security policy checking
10904
10905         * bus/connection.c (bus_transaction_send_from_driver): new
10906
10907         * bus/bus.c (bus_context_check_security_policy): new
10908
10909         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10910         now we just set the DBusError and it gets converted to an error
10911         reply.
10912
10913         * bus/connection.c (allow_user_function): enable code using actual
10914         data from the config file
10915
10916         * bus/policy.c (list_allows_user): handle wildcard rules for
10917         user/group connection perms
10918
10919 2003-04-13  Havoc Pennington  <hp@pobox.com>
10920
10921         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10922
10923         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10924
10925         * bus/policy.c (bus_policy_append_mandatory_rule)
10926         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10927         (bus_policy_append_group_rule): new functions
10928
10929 2003-04-12  Havoc Pennington  <hp@pobox.com>
10930
10931         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10932
10933         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10934         the pid/gid/uid, just for paranoia.
10935
10936         * test/break-loader.c (randomly_do_n_things): find a byte
10937         containing a type code, and randomly change it to a different
10938         type code.
10939
10940 2003-04-12  Havoc Pennington  <hp@pobox.com>
10941
10942         * bus/policy.h: change BusPolicy to be the thing from the config
10943         file, and rename old BusPolicy to BusClientPolicy
10944
10945         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10946         match change in how policy works
10947
10948         * dbus/dbus-internals.h: mark assert_not_reached as
10949         __attribute((noreturn))__
10950
10951 2003-04-11  Havoc Pennington  <hp@redhat.com>
10952
10953         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10954         the broadcast service. Use boolean return for ServiceExists.
10955
10956 2003-04-11  Havoc Pennington  <hp@redhat.com>
10957
10958         * configure.in: add another directory to look for qt in.
10959
10960 2003-04-11  Havoc Pennington  <hp@redhat.com>
10961
10962         * AUTHORS: add Colin Walters
10963
10964 2003-04-11  Havoc Pennington  <hp@redhat.com>
10965
10966         * NEWS: update
10967
10968         * configure.in: 0.9
10969
10970 2003-04-11  Havoc Pennington  <hp@redhat.com>
10971
10972         * bus/messagebus.in: remove pid file when stopping the
10973         message bus, since the bus won't have privileges to remove it
10974         itself.
10975
10976 2003-04-11  Havoc Pennington  <hp@redhat.com>
10977
10978         * bus/bus.c (bus_context_new): move credentials change after
10979         creating pidfile
10980
10981 2003-04-11  Havoc Pennington  <hp@pobox.com>
10982
10983         * test/decode-gcov.c: add "below average functions" to the
10984         coverage report, and change how some of the code works.
10985
10986         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10987         not in the coverage stats.
10988
10989         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10990         couple places so running the test suite doesn't result in megaspam.
10991
10992 2003-04-11  Havoc Pennington  <hp@pobox.com>
10993
10994         * bus/dispatch.c (check_existent_service_activation): accept a no
10995         memory error in a place we didn't before
10996
10997         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10998         in case the first one failed," since the test suite is less
10999         broken now.
11000
11001 2003-04-10  Havoc Pennington  <hp@pobox.com>
11002
11003         * bus/dispatch.c (check_segfault_service_activation): add test
11004         for launching an executable that just crashes.
11005
11006         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11007         don't leave a million cores. We'll see how portable this is.
11008
11009 2003-04-10  Havoc Pennington  <hp@pobox.com>
11010
11011         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11012         the possible parent failures before we fork, so that we don't
11013         fail to create a babysitter after creating the child.
11014
11015         * bus/activation.c (bus_activation_activate_service): kill child
11016         if we don't successfully complete the activation.
11017
11018 2003-04-10  Havoc Pennington  <hp@redhat.com>
11019
11020         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11021         the connection if it's disconnected
11022
11023         * bus/activation.c (bus_activation_service_created): use new
11024         transaction features to roll back removal of pending activation if
11025         we don't successfully create the service after all. Don't remove
11026         pending activation if the function fails.
11027
11028         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11029         (_dbus_list_insert_after_link): new code to facilitate
11030         services.c fixes
11031
11032         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11033         new functionality, so we can preallocate the ability to insert
11034         into a hash table.
11035
11036         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11037         allowing us to put custom hooks in a transaction to be used for
11038         cancelling said transaction
11039
11040         * doc/dbus-specification.sgml: add some discussion of secondary
11041         service owners, and disallow zero-length service names
11042
11043         * bus/services.c (bus_registry_acquire_service): new function,
11044         splits out part of bus_driver_handle_acquire_service() and fixes
11045         a bug where we didn't remove the service doing the acquiring
11046         from the secondary queue if we failed to remove the current owner
11047         from the front of the queue.
11048
11049 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11050
11051         * doc/dbus-specification.sgml:
11052         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11053
11054 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11055
11056         * bus/.cvsignore:
11057         * glib/.cvsignore:
11058         * test/.cvsignore:
11059         Added files to cvsignore
11060
11061         * dbus/dbus-message.h:
11062         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11063         Make get_named() take two out argument and return a boolean.
11064         (dbus_message_iter_get_args_valist):
11065         Update usage of get_named().
11066         (dbus_message_iter_append_byte):
11067         Fix typo
11068         (dbus_message_iter_append_named)
11069         Fix typo
11070         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11071         More tests.
11072
11073 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11074
11075         * dbus/dbus-marshal.[ch]:
11076         Add array_type_pos argument to _dbus_marshal_validate_arg.
11077         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11078
11079         * dbus/dbus-message.[ch]:
11080         Multi-dimensional arrays have full type specification in the
11081         outermost array. Iter code re-arranged to handle this.
11082         Added some more iter tests.
11083
11084         * doc/dbus-specification.sgml:
11085         Add me to authors.
11086         Remove old FIXME.
11087         Update new array encoding description.
11088         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11089
11090         * test/data/invalid-messages/array-with-mixed-types.message:
11091         * test/data/valid-messages/array-of-array-of-uint32.message:
11092         Change to the new array format.
11093
11094         * test/data/invalid-messages/too-short-dict.message:
11095         Fix bug in test.
11096
11097         * test/data/valid-messages/recursive-types.message:
11098         Fix up and extend test.
11099
11100 2003-04-10  Havoc Pennington  <hp@pobox.com>
11101
11102         * bus/dispatch.c: lots of fixes
11103
11104         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11105         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11106         that was crack, broke the test service.
11107
11108         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11109         handling to avoid piling up errors if we get a failure on the
11110         first address.
11111
11112         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11113         pid in assertion failures.
11114
11115         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11116         to some fixed size of file descriptor array. Don't return TRUE
11117         anytime a timeout exists, that led to lots of busy loop silliness
11118         in the tests.
11119
11120 2003-04-09  Havoc Pennington  <hp@redhat.com>
11121
11122         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11123         I'd checked this in earlier but hadn't.
11124
11125 2003-04-09  Havoc Pennington  <hp@redhat.com>
11126
11127         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11128         the activation test (man this is getting old!)
11129
11130 2003-04-09  Havoc Pennington  <hp@redhat.com>
11131
11132         * test/test-utils.c: use dispatch status function to fix this up
11133
11134         * bus/connection.c (connection_watch_callback): don't dispatch
11135         from here
11136         (connection_timeout_callback): don't dispatch from here
11137         (bus_connections_setup_connection): set the dispatch status function
11138         (bus_connection_disconnected): unset it
11139
11140         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11141         used to add a connection to be dispatched
11142         (_dbus_loop_iterate): do the dispatching at the end of each
11143         iteration
11144
11145         * dbus/dbus-connection.c
11146         (dbus_connection_set_dispatch_status_function): new function
11147         allowing us to fix up main loop usage
11148         (_dbus_connection_last_unref): free all the various function
11149         user data
11150         (dbus_connection_dispatch): call the DispatchStatusFunction
11151         whenever this function returns
11152         (dbus_connection_handle_watch): call DispatchStatusFunction
11153         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11154         (reply_handler_timeout): call DispatchStatusFunction
11155         (dbus_connection_flush): call DispatchStatusFunction
11156
11157 2003-04-09  Havoc Pennington  <hp@redhat.com>
11158
11159         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11160         a memory leak
11161
11162         * bus/dispatch.c (check_service_activated): fix bug in test
11163
11164         * dbus/dbus-mainloop.c (check_timeout): fix this up
11165
11166         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11167         verbose output so we can sort out output from different processes,
11168         e.g. in the activation case.
11169
11170 2003-04-08  Colin Walters  <walters@gnu.org>
11171
11172         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11173         the pid file.
11174         (bus_context_new): Set it.
11175         (bus_context_unref): Use it to delete the pid file.
11176
11177 2003-04-08  Havoc Pennington  <hp@redhat.com>
11178
11179         * test/data/invalid-messages/array-with-mixed-types.message:
11180         regression test that fails for the moment
11181
11182         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11183         tests for convenience
11184
11185         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11186         array of nil, it broke things.
11187
11188         * test/data/invalid-messages/array-of-nil.message: regression test
11189
11190         * test/data/valid-messages/array-of-array-of-uint32.message:
11191         happened to write this so added it to suite
11192
11193 2003-04-08  Havoc Pennington  <hp@redhat.com>
11194
11195         * bus/driver.c (bus_driver_handle_acquire_service): init
11196         retval/reply before checking name
11197
11198         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11199         recursion depth argument
11200
11201         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11202         in the public struct for future extension
11203
11204         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11205         typo
11206
11207         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11208         message
11209
11210         * doc/dbus-specification.sgml: fix typo
11211
11212 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11213
11214         Implemented recursive types, named types and new-style iters
11215
11216         * bus/driver.c:
11217         * glib/test-thread-client.c: (thread_func):
11218         * glib/test-thread-server.c: (handle_test_message):
11219         * test/test-service.c: (handle_echo):
11220         Update to new api
11221
11222         * dbus/Makefile.am:
11223         * dbus/dbus-dict.c:
11224         * dbus/dbus-dict.h:
11225         * dbus/dbus.h
11226         Remove DBusDict
11227
11228         * dbus/dbus-internals.c: (_dbus_type_to_string):
11229         Update for new types.
11230
11231         * dbus/dbus-marshal.[ch]:
11232         Implement recursive types and the new marshalling format.
11233         Remove hardcoded dict marshalling.
11234         Marshal named types.
11235
11236         * dbus/dbus-message-builder.c:
11237         Add BYTE_ARRAY.
11238         Remove references to old types
11239
11240         * dbus/dbus-message.[ch]:
11241         New non-refcounted iter API that supports recursive iters.
11242         Use iters for appending, including support for recursive
11243         iters.
11244         Add byte and named type support.
11245         Update everything to new marshalling formats.
11246         Add tests for new API.
11247
11248         * dbus/dbus-protocol.h:
11249         Remove old array types.
11250         Add types: BYTE, ARRAY, DICT, NAMED
11251
11252         * dbus/dbus-string.c:
11253         * dbus/dbus-sysdeps.c:
11254         Make parse_double locale safe.
11255
11256         * dbus/dbus-test-main.c:
11257         Call setlocale.
11258
11259         * dbus/dbus-test.c:
11260         Kill dict test
11261
11262         * doc/dbus-specification.sgml:
11263         Update spec
11264
11265         * test/data/incomplete-messages/missing-body.message:
11266         * test/data/invalid-messages/bad-boolean.message:
11267         * test/data/invalid-messages/bad-boolean-array.message:
11268         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11269         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11270         * test/data/invalid-messages/too-short-dict.message:
11271         * test/data/valid-messages/dict-simple.message:
11272         * test/data/valid-messages/dict.message:
11273         * test/data/valid-messages/emptiness.message:
11274         * test/data/valid-messages/lots-of-arguments.message:
11275         * test/data/valid-messages/no-padding.message:
11276         * test/data/valid-messages/recursive-types.message:
11277         Add missing NAME fields
11278         Fix up dicts & arrays
11279
11280         * test/data/invalid-messages/dict-with-nil-value.message:
11281         Removed, this is not invalid anymore.
11282
11283         * test/data/valid-messages/recursive-types.message:
11284         Add new test for deeply recursive types.
11285
11286 2003-04-07  Havoc Pennington  <hp@pobox.com>
11287
11288         * bus/driver.c (bus_driver_handle_acquire_service): return an
11289         error if you try to acquire a service that starts with ':'
11290
11291 2003-04-07  Havoc Pennington  <hp@redhat.com>
11292
11293         * doc/dbus-specification.sgml: require that base service names
11294         start with ':' and that the base service is created/deleted
11295         as first and last things a connection does on the bus
11296
11297         * bus/dispatch.c (check_existent_service_activation): lots more
11298         work on the activation test; it doesn't fully pass yet...
11299
11300         * test/test-service.c (main): fix so we don't memleak the
11301         connection to the message bus
11302         (filter_func): accept a message asking us to exit
11303
11304 2003-04-06  Havoc Pennington  <hp@pobox.com>
11305
11306         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11307         from Colin Walters
11308
11309         * configure.in: fixes to Qt detection from Colin Walters
11310
11311         * doc/Makefile.am: Only remove generated docbook dirs if they
11312         exist, from Colin Walters
11313
11314         * dbus/dbus-bus.c: change how we set well-known connections to
11315         NULL, so that it works if a single connection is stored in
11316         two well-known array slots.
11317
11318         * test/Makefile.am: remove a lot of stuff that isn't immediately
11319         useful, it's in CVS history if we want it.
11320
11321         * test/test-service.c: use dbus-mainloop instead of that
11322         watch.[hc] crack
11323
11324 2003-04-06  Havoc Pennington  <hp@pobox.com>
11325
11326         * dbus/Makefile.am: split lists of sources into stuff that goes in
11327         the library, util functions that go in the lib and are also used
11328         elsewhere, and util functions that are used in tests/daemon but
11329         don't go in the lib.
11330
11331         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11332         here so it can be used in test binaries also
11333
11334 2003-04-06  Havoc Pennington  <hp@pobox.com>
11335
11336         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11337         here in the parent process, so we can return an error if it
11338         fails. Also, move some of the code into the child so the parent
11339         is less hosed if we fail midway through.
11340
11341         * bus/bus.c (bus_context_new): move pidfile detection further up
11342         in the function, before we start overwriting sockets and such.
11343
11344         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11345
11346         * configure.in: add --with-system-pid-file and --with-system-socket
11347
11348 2003-04-06  Colin Walters  <walters@verbum.org>
11349
11350         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11351
11352         * bus/system.conf.in: Declare a pidfile.
11353
11354         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11355         create one (if appropriate).
11356
11357         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11358         (struct BusConfigParser) [pidfile]: New.
11359         (element_type_to_name, merge_included, start_busconfig_child)
11360         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11361         (bus_config_parser_unref): Free it.
11362         (bus_config_parser_get_pidfile): New function.
11363
11364         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11365
11366         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11367
11368         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11369
11370         * dbus/dbus-sysdeps.h: Prototype it.
11371
11372 2003-04-06  Havoc Pennington  <hp@pobox.com>
11373
11374         * bus/bus.c (bus_context_new): print the address in here, rather
11375         than in main(), because we need to do it before forking the daemon
11376
11377         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11378         on the service nonexistent error
11379
11380         * bus/driver.c (bus_driver_handle_acquire_service): set the
11381         sender on the AcquireService reply
11382
11383         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11384         server also listen on a UNIX socket so services can connect to it.
11385
11386 2003-04-06  Havoc Pennington  <hp@pobox.com>
11387
11388         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11389         so it detects deadlocks and also we actually init threads when
11390         debugging.
11391
11392 2003-04-06  Havoc Pennington  <hp@pobox.com>
11393
11394         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11395         save the domain socket name, and unlink it when we disconnect the
11396         server. Means that at least when we exit normally, we won't leave
11397         a bunch of junk in /tmp
11398
11399         * dbus/dbus-transport-unix.c
11400         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11401         memory management). (I was making a real change here but then
11402         didn't)
11403
11404 2003-04-06  Havoc Pennington  <hp@pobox.com>
11405
11406         * bus/bus.c (bus_context_new): fix wrong handling of
11407         server_data_slot_unref() in the error case.
11408
11409         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11410         "(condition) != 0" to _dbus_real_assert so that
11411         "_dbus_assert (pointer)" doesn't cause a warning
11412
11413         * bus/main.c (main): accept --print-address option to print out
11414         the message bus address
11415
11416         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11417
11418         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11419         "tmpdir" option to unix: address on client side
11420
11421         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11422         to unix: address
11423
11424         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11425         we can use to create sockets in the test suite.
11426
11427         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11428         cleanly. To be used for testing.
11429
11430         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11431
11432         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11433
11434         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11435         handle trying to call this when there's no servers active
11436
11437 2003-04-05  Havoc Pennington  <hp@pobox.com>
11438
11439         * NEWS: update
11440
11441         * configure.in: 0.8
11442
11443 2003-04-05  Havoc Pennington  <hp@pobox.com>
11444
11445         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11446         crash on startup. Need to get "try starting the daemon"
11447         in the test suite I guess. ;-)
11448
11449         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11450         tracked the number of open connections; it's better done in
11451         application-specific code as you want it to span all servers etc.
11452
11453 2003-04-05  Havoc Pennington  <hp@pobox.com>
11454
11455         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11456         patch from Colin Walters
11457
11458 2003-04-05  Havoc Pennington  <hp@pobox.com>
11459
11460         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11461         reality; in fact multiple mechanisms are allowed.
11462
11463         * dbus/dbus-internals.c (_dbus_real_assert)
11464         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11465         _dbus_assert_not_reached() into functions, so that they don't show
11466         up in basic block counts for test coverage, and don't use up as
11467         much disk space. Does mean slower execution speed though, so
11468         assumes --disable-asserts is the normal production case.
11469
11470 2003-04-05  Havoc Pennington  <hp@pobox.com>
11471
11472         * test/Makefile.am (dist-hook): also dist *.in files
11473
11474         * NEWS: update
11475
11476         * configure.in: 0.7
11477
11478 2003-04-05  Havoc Pennington  <hp@pobox.com>
11479
11480         * dbus/dbus-string.c: docs warning
11481
11482         * dbus/dbus-spawn.c: missing docs
11483
11484         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11485
11486 2003-04-05  Havoc Pennington  <hp@pobox.com>
11487
11488         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11489         magic from GLib
11490
11491         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11492         to -1 once we've reaped the babysitter
11493         (_dbus_babysitter_handle_watch): do as much work as we can, not
11494         just one go of it
11495
11496         * bus/activation.c: add code using DBusBabysitter so that we
11497         handle it when a service fails to start up properly.
11498         (bus_activation_service_created): don't remove the activation
11499         entries as we go, just let them get removed when we free the pending
11500         activation. Unref reply messages after sending them.
11501
11502 2003-04-05  Havoc Pennington  <hp@pobox.com>
11503
11504         * test/decode-gcov.c (main): print per-directory stats in the report
11505
11506         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11507
11508 2003-04-05  Havoc Pennington  <hp@pobox.com>
11509
11510         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11511
11512         * test/decode-gcov.c: hack up a little program to suck data
11513         out of gcov files. Yes this is sort of silly.
11514
11515         * configure.in: define something in config.h and do an
11516         AM_CONDITIONAL when gcov is enabled
11517
11518 2003-04-04  Havoc Pennington  <hp@redhat.com>
11519
11520         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11521         return a "babysitter" object that is used to monitor the status of
11522         the spawned process and reap it when required.
11523
11524         * test/test-segfault.c, test/test-exit.c,
11525         test/test-sleep-forever.c: binaries that do various lame things,
11526         used in the test suite.
11527
11528         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11529
11530 2003-04-03  Havoc Pennington  <hp@pobox.com>
11531
11532         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11533         in preparation for modifying it, dbus-sysdeps is getting
11534         a bit unmanageable.
11535
11536 2003-04-03  Havoc Pennington  <hp@redhat.com>
11537
11538         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11539         have multiple ones
11540
11541         * bus/*.[hc]: adapt to mainloop change
11542
11543 2003-04-03  Havoc Pennington  <hp@redhat.com>
11544
11545         * bus/activation.c (load_directory): fix up memleaks
11546         (bus_activation_entry_free): free the entry
11547
11548         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11549         we get one from the message bus; fix memleaks.
11550
11551         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11552
11553 2003-04-03  Havoc Pennington  <hp@pobox.com>
11554
11555         * bus/config-parser.c (bus_config_parser_unref): free
11556         list of mechanisms, bug discovered by test suite enhancements
11557         (putting system.conf and session.conf into suite)
11558
11559         * test/Makefile.am, test/test-service.c: add placeholder for a
11560         test service that we'll activate as part of test suite. Doesn't
11561         do anything yet.
11562
11563         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11564         setting NULL value, and use system malloc not dbus_malloc()
11565         when we have unavoidable memleakage.
11566
11567         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11568         didn't work, and support DBUS_BUS_ACTIVATION.
11569
11570         * bus/activation.c (child_setup): pass our well-known bus type to
11571         the child
11572
11573         * bus/config-parser.c: support <type> to specify well-known type
11574
11575         * doc/dbus-specification.sgml: document the env variables to
11576         locate well-known buses and find service activator
11577
11578 2003-04-02  Havoc Pennington  <hp@redhat.com>
11579
11580         * test/Makefile.am (all-local): add a rule to copy tests to
11581         builddir, so we can have generated tests. Use this to remove the
11582         silly hack for testing system.conf and session.conf. Will use this
11583         shortly to generate .service files pointing to test binaries.
11584
11585 2003-04-02  Havoc Pennington  <hp@redhat.com>
11586
11587         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11588         current alloc and needed new length, not max of the doubled
11589         allocation and needed new length. Also, when building tests,
11590         don't do the double-allocation stuff, just realloc every time.
11591
11592 2003-04-02  Havoc Pennington  <hp@redhat.com>
11593
11594         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11595         in error messages
11596         (_dbus_string_get_dirname): new
11597         (_dbus_sysdeps_test): new
11598         (_dbus_directory_open): include dirnames in error messages
11599
11600         * bus/config-parser.c: interpret <include> and <includedir> and
11601         <servicedir> relative to config file location if the given
11602         filename is not absolute.
11603
11604         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11605
11606 2003-04-02  Havoc Pennington  <hp@redhat.com>
11607
11608         * bus/connection.c (bus_transaction_send_error_reply): set sender
11609         service for the error, and unref the reply on success
11610
11611         * bus/activation.c: convert to use BusTransaction so OOM can be
11612         handled correctly
11613         (bus_activation_service_created): set sender of the message
11614
11615 2003-04-01  Havoc Pennington  <hp@redhat.com>
11616
11617         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11618         <includedir> (at least mostly)
11619
11620         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11621         first, then the user ID
11622
11623 2003-04-01  Havoc Pennington  <hp@pobox.com>
11624
11625         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11626         function
11627
11628         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11629
11630         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11631
11632         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11633         socket 0777, and unlink any existing socket.
11634
11635         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11636         the configuration file so specifies; set up auth mechanism
11637         restrictions
11638
11639         * bus/config-parser.c (bus_config_parser_content): add support
11640         for <fork> option and fill in code for <auth>
11641
11642         * bus/system.conf.in: add <fork/> to default configuration,
11643         and limit auth mechanisms to EXTERNAL
11644
11645         * doc/config-file.txt (Elements): add <fork>
11646
11647         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11648         (_dbus_change_identity): new function
11649
11650 2003-03-31  Havoc Pennington  <hp@redhat.com>
11651
11652         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11653         (_dbus_listen_unix_socket): fix off-by-one error in null
11654         termination spotted by Nalin
11655
11656 2003-03-31  Havoc Pennington  <hp@redhat.com>
11657
11658         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11659         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11660         having a real home directory available.
11661
11662 2003-03-31  Havoc Pennington  <hp@redhat.com>
11663
11664         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11665
11666         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11667
11668         * configure.in: add support for specifying a style of init script
11669         to install
11670
11671 2003-03-31  Havoc Pennington  <hp@redhat.com>
11672
11673         Fix some annoying DBusString API and fix all affected code.
11674
11675         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11676         max_length argument
11677         (_dbus_string_get_data): change to return string instead of using
11678         an out param
11679         (_dbus_string_get_const_data): ditto
11680         (_dbus_string_get_data_len): ditto
11681         (_dbus_string_get_const_data_len): ditto
11682
11683 2003-03-31  Havoc Pennington  <hp@redhat.com>
11684
11685         * bus/main.c (main): fix up the command line arguments to be nicer
11686
11687 2003-03-31  Havoc Pennington  <hp@redhat.com>
11688
11689         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11690         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11691         final location that lands in the config file
11692
11693         * bus/config-loader-expat.c (bus_config_load): fix type of
11694         XML_Parser variable
11695
11696         * doc/TODO: remove TODO item for dbus_bus_get()
11697
11698         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11699
11700 2003-03-31  Havoc Pennington  <hp@pobox.com>
11701
11702         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11703         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11704         argument since they are always client side
11705
11706         * dbus/dbus-server.c (dbus_server_get_address): new function
11707
11708         * bus/main.c (main): take the configuration file as an argument.
11709
11710         * test/data/valid-config-files/debug-allow-all.conf: new file to
11711         use with dispatch.c tests for example
11712
11713         * bus/test-main.c (main): require test data dir
11714
11715         * bus/bus.c (bus_context_new): change this to take a
11716         configuration file name as argument
11717
11718         * doc/config-file.txt (Elements): add <servicedir>
11719
11720         * bus/system.conf, bus/session.conf: new files
11721
11722         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11723         well-known socket if none set
11724
11725         * configure.in: create system.conf and session.conf
11726
11727 2003-03-30  Havoc Pennington  <hp@pobox.com>
11728
11729         * bus/config-parser.c: hacking
11730
11731         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11732         to shut down, since it could cause weirdness with the DBusList
11733         lock
11734
11735         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11736         link-oriented stack routines
11737         (alloc_link): free the mempool if the first alloc from it fails
11738
11739         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11740
11741         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11742         from GLib
11743         (_dbus_string_skip_white): new
11744
11745         * doc/config-file.txt (Elements): add <includedir>
11746
11747 2003-03-28  Havoc Pennington  <hp@pobox.com>
11748
11749         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11750         (_dbus_string_copy_data): new functions
11751
11752 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11753
11754         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11755         * dbus/dbus-bus.h:
11756         Add dbus_bus_get.
11757
11758         * dbus/dbus-memory.c:
11759         Fix a doc comment.
11760
11761 2003-03-28  Havoc Pennington  <hp@pobox.com>
11762
11763         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11764         I think it may have just been superstition. Not sure.
11765
11766         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11767         failures that were not being handled.
11768
11769         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11770
11771         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11772         row that will fail on out-of-memory.
11773
11774         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11775         function for testing out-of-memory handling.
11776
11777         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11778         allocation functions, they do map exactly to the expat ones.
11779
11780 2003-03-27  Havoc Pennington  <hp@redhat.com>
11781
11782         * bus/config-loader-libxml.c (bus_config_load): add another error
11783         check
11784
11785 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11786
11787         * doc/TODO:
11788         Add note about automatic service activation.
11789
11790         * doc/dbus-specification.sgml:
11791         Rename the specification and clarify a few things.
11792
11793 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11794
11795         * Doxyfile.in:
11796         * dbus/dbus-address.c:
11797         * dbus/dbus-dict.c:
11798         * dbus/dbus-marshal.c:
11799         * dbus/dbus-server-debug-pipe.c:
11800         * dbus/dbus-transport-unix.c:
11801         Fix documentation warnings.
11802
11803 2003-03-26  Havoc Pennington  <hp@pobox.com>
11804
11805         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11806         after every test so it's quick and easy to see which leaked, and
11807         so we test multiple dbus_shutdown() calls
11808
11809         * configure.in: change configure.in XML stuff to also support
11810         expat
11811
11812         * config-loader-libxml.c: some hacking
11813
11814         * config-loader-expat.c: some hacking
11815
11816         * config-parser.c: some hacking, plus tests
11817
11818 2003-03-25  Havoc Pennington  <hp@redhat.com>
11819
11820         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11821
11822         * configure.in: add --with-xml option to specify XML library,
11823         right now only libxml is supported.
11824
11825         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11826         nonworking code between home and work, still just stubs
11827
11828 2003-03-24  Havoc Pennington  <hp@redhat.com>
11829
11830         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11831         file
11832
11833         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11834         NULL argument for "message" if the error is a well-known one,
11835         fill in a generic message in this case.
11836
11837         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11838         favor of DBusError
11839
11840         * bus/test.c (bus_test_flush_bus): add
11841
11842         * bus/policy.c (bus_policy_test): test code stub
11843
11844 2003-03-24  Havoc Pennington  <hp@pobox.com>
11845
11846         * bus/connection.c (bus_connections_setup_connection): set up
11847         the "can this user connect" function, but it always returns
11848         TRUE until we have a config file parser so we can have a config
11849         file that allows connections.
11850
11851 2003-03-23  Havoc Pennington  <hp@pobox.com>
11852
11853         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11854         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11855         the mutex, so we can check for proper memory management
11856         and OOM handling.
11857
11858         * dbus/dbus-dataslot.c: remove the mutex from
11859         DBusDataSlotAllocator and lock it manually when using it,
11860         to simplify fitting it into the global slots framework.
11861
11862         * dbus/dbus-threads.c (init_static_locks): rework how we're
11863         handling global locks so they are easily shut down.
11864
11865         * bus/policy.c (bus_policy_append_rule): fix
11866
11867         * bus/test-main.c (main): check for memleaks
11868
11869         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11870         test suite check for memleaks
11871
11872         * dbus/dbus-memory.c: add support in test mode for tracking
11873         number of outstanding blocks
11874
11875 2003-03-23  Havoc Pennington  <hp@pobox.com>
11876
11877         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11878         policies code
11879
11880         * dbus/dbus-hash.h: add ULONG hash keys
11881
11882         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11883         (_dbus_get_group_id): new function
11884
11885 2003-03-20  Havoc Pennington  <hp@redhat.com>
11886
11887         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11888         new function
11889         (dbus_connection_get_unix_user): new function
11890
11891 2003-03-20  Havoc Pennington  <hp@pobox.com>
11892
11893         * bus/connection.c (bus_connection_send_oom_error): assert that
11894         message has a sender
11895         (connection_execute_transaction): ditto
11896         (bus_connection_preallocate_oom_error): fix to set the sender, and
11897         set recipient to the destination service, not the bus driver
11898
11899         * bus/policy.c: hacking
11900
11901         * dbus/dbus-message.c (dbus_message_service_is): new function
11902         (dbus_message_sender_is): new
11903
11904 2003-03-19  Havoc Pennington  <hp@redhat.com>
11905
11906         * bus/policy.c: start sketching code for policy restrictions on
11907         what connections can do.
11908
11909 2003-03-18  Havoc Pennington  <hp@redhat.com>
11910
11911         * doc/TODO: some notes on high-level todo items. Little nitpick
11912         stuff is all in @todo, so no need to add it here.
11913
11914         * doc/config-file.txt: some notes on how config file might look
11915
11916 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11917
11918         * configure.in: 0.6
11919
11920         * NEWS: Update.
11921
11922 2003-03-17  Havoc Pennington  <hp@redhat.com>
11923
11924         * dbus/dbus-internals.h: add gcc attributes so that
11925         our printf-style functions warn on bad arguments to
11926         format
11927
11928         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11929         format bug
11930
11931         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11932         printf format bug
11933
11934 2003-03-17  Havoc Pennington  <hp@redhat.com>
11935
11936         * bus/test-main.c (main): make it print something as it runs
11937         so make check doesn't look stuck
11938
11939         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11940         from CVS, now obsolete
11941
11942 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11943
11944         * bus/dispatch.c: (bus_dispatch):
11945         Refetch the service name since it may have been reallocated
11946         when dbus_message_set_sender was called.
11947
11948         * dbus/dbus-sysdeps.c: (_dbus_accept):
11949         Add address and address length variables and use them to stop
11950         valgrind from complaining.
11951
11952 2003-03-17  Havoc Pennington  <hp@pobox.com>
11953
11954         All tests pass, no memleaks, no valgrind complaints.
11955
11956         * bus/test.c: refcount handler_slot
11957
11958         * bus/connection.c (bus_connections_new): refcount
11959         connection_data_slot
11960
11961         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11962         bytes so that auth scripts pass.
11963
11964         * bus/dispatch.c: init message_handler_slot so it gets allocated
11965         properly
11966
11967         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11968
11969         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11970         dealloc server_pipe_hash when no longer used for benefit of
11971         leak checking
11972
11973         * dbus/dbus-auth.c (process_command): memleak fix
11974
11975         * bus/dispatch.c (check_hello_message): memleak fix
11976
11977 2003-03-16  Havoc Pennington  <hp@pobox.com>
11978
11979         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11980
11981 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11982
11983         * bus/activation.c (bus_activation_activate_service): Append
11984         the pending activation entry to the list of pending activations.
11985
11986 2003-03-16  Havoc Pennington  <hp@pobox.com>
11987
11988         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11989         connections
11990
11991         * dbus/dbus-address.c (create_entry): fix OOM handling when
11992         failing to alloc entry->method
11993
11994 2003-03-16  Havoc Pennington  <hp@pobox.com>
11995
11996         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11997         the watch
11998
11999         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12000         add some missing dbus_set_result
12001
12002         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12003         alloc the DBusMessageHandler
12004
12005         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12006         the transport here, since we call this from the finalizer; it
12007         resulted in a double-finalize.
12008
12009         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12010         where we tried to use transport->connection that was NULL,
12011         happened when transport was disconnected early on due to OOM
12012
12013         * bus/*.c: adapt to handle OOM for watches/timeouts
12014
12015         * dbus/dbus-transport-unix.c: port to handle OOM during
12016         watch handling
12017
12018         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12019         reference to unused bytes instead of a copy
12020
12021         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12022         out of memory
12023
12024         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12025         FALSE on OOM
12026
12027         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12028         of memory
12029
12030 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12031
12032         * doc/dbus-specification.sgml:
12033         Document reply message for ActivateService.
12034
12035 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12036
12037         * bus/activation.c: (bus_pending_activation_entry_free),
12038         (bus_pending_activation_free), (bus_activation_new),
12039         (bus_activation_unref), (bus_activation_service_created),
12040         (bus_activation_activate_service):
12041         * bus/activation.h:
12042         * bus/bus.c: (bus_context_new):
12043         * bus/desktop-file.c: (new_section):
12044         * bus/driver.c: (bus_driver_send_service_deleted),
12045         (bus_driver_handle_activate_service):
12046         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12047         * bus/services.h:
12048         * dbus/dbus-connection.c:
12049         (dbus_connection_send_with_reply_and_block):
12050         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12051         * dbus/dbus-protocol.h:
12052         Make activation work better. Now pending activations will be queued
12053         and the daemon won't try to activate services that are already registered.
12054
12055 2003-03-16  Havoc Pennington  <hp@pobox.com>
12056
12057         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12058         connection data
12059
12060         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12061         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12062
12063 2003-03-16  Havoc Pennington  <hp@pobox.com>
12064
12065         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12066         this. always run the test suite before commit...
12067
12068         * bus/*: adapt to DBusConnection API changes
12069
12070         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12071         requires renaming stuff to avoid dbus_connection_dispatch name
12072         conflict.
12073
12074         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12075         function
12076
12077         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12078         separate from _dbus_message_loader_return_buffer()
12079
12080         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12081         this, because it's now always broken to use; the number of
12082         messages in queue vs. the number still buffered by the message
12083         loader is undefined/meaningless. Should use
12084         dbus_connection_get_dispatch_state().
12085         (dbus_connection_dispatch): rename from
12086         dbus_connection_dispatch_message
12087
12088 2003-03-16  Havoc Pennington  <hp@pobox.com>
12089
12090         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12091         implementation
12092
12093 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12094
12095         * dbus/dbus-connection.c:
12096         (dbus_connection_send_with_reply_and_block):
12097         Decrease connection->n_incoming when removing an entry
12098         from the list.
12099         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12100         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12101         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12102         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12103         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12104         (dbus_dict_get_byte_array):
12105         Handle NULL arrays and strings. Also add support for byte arrays.
12106
12107         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12108         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12109         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12110         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12111         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12112         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12113         * dbus/dbus-marshal.h:
12114         Add support for marshalling and demarshalling empty arrays and strings.
12115
12116         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12117         (dbus_message_append_string_array),
12118         (dbus_message_iter_get_boolean),
12119         (dbus_message_iter_get_boolean_array),
12120         (dbus_message_iter_get_int32_array),
12121         (dbus_message_iter_get_uint32_array),
12122         (dbus_message_iter_get_double_array),
12123         (dbus_message_iter_get_byte_array),
12124         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12125         (check_message_handling):
12126         Add support for getting empty arrays and dicts.
12127
12128         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12129         Don't do any validation at all for now, that's better than just checking
12130         for ASCII.
12131
12132         * test/data/valid-messages/emptiness.message:
12133         New test message with lots of empty arrays.
12134
12135 2003-03-16  Havoc Pennington  <hp@pobox.com>
12136
12137         * dbus/dbus-connection.c
12138         (_dbus_connection_queue_received_message_link): new function that
12139         can't fail due to OOM
12140
12141         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12142         new function pops a message together with a list link
12143         containing it.
12144
12145         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12146         message queuing functions to avoid needing to alloc memory
12147
12148 2003-03-16  Havoc Pennington  <hp@pobox.com>
12149
12150         Oops - test code was only testing failure of around 30 of the
12151         mallocs in the test path, but it turns out there are 500+
12152         mallocs. I believe this was due to misguided linking setup such
12153         that there was one copy of dbus_malloc etc. in the daemon and one
12154         in the shared lib, and only daemon mallocs were tested. In any
12155         case, the test case now tests all 500+ mallocs, and doesn't pass
12156         yet, though there are lots of fixes in this patch.
12157
12158         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12159         this so that it doesn't need to allocate memory, since it
12160         has no way of indicating failure due to OOM (and would be
12161         annoying if it did).
12162
12163         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12164
12165         * bus/Makefile.am: rearrange to create two self-contained
12166         libraries, to avoid having libraries with overlapping symbols.
12167         that was resulting in weirdness, e.g. I'm pretty sure there
12168         were two copies of global static variables.
12169
12170         * dbus/dbus-internals.c: move the malloc debug stuff to
12171         dbus-memory.c
12172
12173         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12174         empty.
12175
12176         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12177
12178         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12179         on failure.
12180
12181         * bus/dispatch.c (bus_dispatch_add_connection): free
12182         message_handler_slot when no longer using it, so
12183         memory leak checkers are happy for the test suite.
12184
12185         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12186
12187         * bus/bus.c (new_connection_callback): disconnect in here if
12188         bus_connections_setup_connection fails.
12189
12190         * bus/connection.c (bus_connections_unref): fix to free the
12191         connections
12192         (bus_connections_setup_connection): if this fails, don't
12193         disconnect the connection, just be sure there are no side
12194         effects.
12195
12196         * dbus/dbus-string.c (undo_alignment): unbreak this
12197
12198         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12199         leaking
12200         (_dbus_auth_new): fix the order in which we free strings
12201         on OOM failure
12202
12203         * bus/connection.c (bus_connection_disconnected): fix to
12204         not send ServiceDeleted multiple times in case of memory
12205         allocation failure
12206
12207         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12208         get the base service name
12209         (dbus_bus_register_client): don't return base service name,
12210         instead store it on the DBusConnection and have an accessor
12211         function for it.
12212         (dbus_bus_register_client): rename dbus_bus_register()
12213
12214         * bus/dispatch.c (check_hello_message): verify that other
12215         connections on the bus also got the correct results, not
12216         just the one sending hello
12217
12218 2003-03-15  Havoc Pennington  <hp@pobox.com>
12219
12220         Make it pass the Hello handling test including all OOM codepaths.
12221         Now to do other messages...
12222
12223         * bus/services.c (bus_service_remove_owner): fix crash when
12224         removing owner from an empty list of owners
12225         (bus_registry_ensure): don't leave service in the list of
12226         a connection's owned services if we fail to put the service
12227         in the hash table.
12228
12229         * bus/connection.c (bus_connection_preallocate_oom_error): set
12230         error flag on the OOM error.
12231
12232         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12233         handle _dbus_transport_set_connection failure
12234
12235         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12236         to create watches up front and simply enable/disable them as
12237         needed.
12238         (unix_connection_set): this can now fail on OOM
12239
12240         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12241         of enabling/disabling a watch or timeout.
12242
12243         * bus/loop.c (bus_loop_iterate): don't touch disabled
12244         watches/timeouts
12245
12246         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12247
12248 2003-03-15  Havoc Pennington  <hp@pobox.com>
12249
12250         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12251         write useful test code, after all that futzing around ;-)
12252
12253         Test does not yet pass because we can't handle OOM in
12254         _dbus_transport_messages_pending (basically,
12255         dbus_connection_preallocate_send() does not prealloc the write
12256         watch). To fix this, I think we need to add new stuff to
12257         set_watch_functions, namely a SetEnabled function so we can alloc
12258         the watch earlier, then enable it later.
12259
12260         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12261         dbus-memory.c to the convenience lib
12262
12263         * bus/test.c: rename some static functions to keep them clearly
12264         distinct from stuff in connection.c. Handle client disconnection.
12265
12266 2003-03-14  Havoc Pennington  <hp@pobox.com>
12267
12268         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12269         transport, tests more of the real codepath. Set up clients
12270         with bus_setup_debug_client.
12271
12272         * bus/test.c (bus_setup_debug_client): function to set up debug
12273         "clients" on the main loop
12274
12275         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12276         support
12277
12278         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12279         server type
12280
12281         * dbus/dbus-server-debug.c: support a debug server based on pipes
12282
12283         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12284         (_dbus_close): new function
12285
12286         * configure.in: check for socketpair
12287
12288 2003-03-14  Havoc Pennington  <hp@redhat.com>
12289
12290         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12291         cheesy hack
12292
12293         * dbus/dbus-transport-debug.c: rework this a good bit to be
12294         less complicated. hopefully still works.
12295
12296         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12297         manually
12298
12299         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12300         after running it
12301
12302         * dbus/dbus-message.c (dbus_message_copy): rename from
12303         dbus_message_new_from_message, fix it up to copy
12304         all the message fields, add test case
12305
12306         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12307         not quite passing yet
12308
12309 2003-03-14  Havoc Pennington  <hp@pobox.com>
12310
12311         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12312         until no work remains" in test code. (the large diff here
12313         is just code movement, no actual changes)
12314
12315         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12316         1, no point waiting around for test code.
12317         (_dbus_server_debug_accept_transport): unref the timeout
12318         after adding it (right?)
12319
12320         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12321
12322 2003-03-13  Havoc Pennington  <hp@redhat.com>
12323
12324         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12325         out of memory
12326
12327         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12328         of memory
12329
12330         * dbus/dbus-connection.h: Make AddWatchFunction and
12331         AddTimeoutFunction return a bool so they can fail on out-of-memory
12332
12333         * bus/bus.c (bus_context_new): set up timeout handlers
12334
12335         * bus/connection.c (bus_connections_setup_connection): set up
12336         timeout handlers
12337
12338         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12339         can fail
12340
12341         * bus/bus.c (bus_context_new): adapt to changes
12342
12343         * bus/connection.c: adapt to changes
12344
12345         * test/watch.c: adapt to DBusWatch changes
12346
12347         * bus/dispatch.c (bus_dispatch_test): started adding this but
12348         didn't finish
12349
12350 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12351
12352         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12353
12354 2003-03-13  Havoc Pennington  <hp@pobox.com>
12355
12356         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12357         set up a test framework as for the library
12358
12359 2003-03-12  Havoc Pennington  <hp@pobox.com>
12360
12361         Throughout: purge global variables, introduce BusActivation,
12362         BusConnections, BusRegistry, etc. objects instead.
12363
12364         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12365         message bus object
12366
12367         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12368         going to redo this a bit differently I think
12369
12370 2003-03-12  Havoc Pennington  <hp@redhat.com>
12371
12372         Mega-patch that gets the message bus daemon initially handling
12373         out-of-memory. Work still needed. Also lots of random
12374         moving stuff to DBusError instead of ResultCode.
12375
12376         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12377
12378         * dbus/dbus-connection.c
12379         (dbus_connection_send_with_reply_and_block): use DBusError
12380
12381         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12382         DBusResultCode
12383
12384         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12385         code here, as the only failure possible is OOM.
12386
12387         * bus/connection.c (bus_connection_disconnect):
12388         rename bus_connection_disconnected as it's a notification only
12389
12390         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12391         "name" on get_args failure, should be done by get_args;
12392         don't disconnect client for bad args, just return an error.
12393         (bus_driver_handle_service_exists): ditto
12394
12395         * bus/services.c (bus_services_list): NULL-terminate returned array
12396
12397         * bus/driver.c (bus_driver_send_service_lost)
12398         (bus_driver_send_service_acquired): send messages from driver to a
12399         specific client to the client's unique name, not to the broadcast
12400         service.
12401
12402         * dbus/dbus-message.c (decode_header_data): reject messages that
12403         contain no name field
12404         (_dbus_message_get_client_serial): rename to
12405         dbus_message_get_serial and make public
12406         (_dbus_message_set_serial): rename from set_client_serial
12407         (_dbus_message_set_reply_serial): make public
12408         (_dbus_message_get_reply_serial): make public
12409
12410         * bus/connection.c (bus_connection_foreach): allow stopping
12411         iteration by returning FALSE from foreach function.
12412
12413         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12414         (dbus_connection_free_preallocated_send)
12415         (dbus_connection_preallocate_send): new API for sending a message
12416         without possibility of malloc failure.
12417         (dbus_connection_send_message): rename to just
12418         dbus_connection_send (and same for whole function family)
12419
12420         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12421
12422         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12423
12424         * bus/activation.c: handle/return errors
12425
12426         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12427
12428         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12429         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12430         (_dbus_result_from_errno): move to this file
12431
12432 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12433
12434         * dbus/dbus-marshal.c:
12435         (_dbus_marshal_set_string):
12436         Take a length argument so we can marshal the correct string
12437         length.
12438
12439         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12440         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12441         (_dbus_marshal_test):
12442         * dbus/dbus-marshal.h:
12443         Add support for marshalling and demarshalling dicts.
12444
12445         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12446         Add support for TYPE DICT.
12447
12448         * dbus/dbus-message.c: (set_string_field):
12449         Adjust header padding.
12450
12451         (dbus_message_append_args_valist), (dbus_message_append_dict),
12452         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12453         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12454         (check_message_handling), (check_have_valid_message):
12455         * dbus/dbus-message.h:
12456         Add functions for setting and getting dicts.
12457
12458         * dbus/dbus-protocol.h:
12459         Add DBUS_TYPE_DICT.
12460
12461         * dbus/dbus.h:
12462         Add dbus-dict.h
12463
12464         * doc/dbus-specification.sgml:
12465         Add information about how dicts are marshalled.
12466
12467         * test/data/invalid-messages/dict-with-nil-value.message:
12468         * test/data/invalid-messages/too-short-dict.message:
12469         * test/data/valid-messages/dict-simple.message:
12470         * test/data/valid-messages/dict.message:
12471         Add sample messages containing dicts.
12472
12473 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12474
12475         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12476
12477 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12478
12479         * dbus/Makefile.am:
12480         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12481         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12482         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12483         (dbus_dict_set_double), (dbus_dict_set_string),
12484         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12485         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12486         (dbus_dict_set_string_array), (_dbus_dict_test):
12487         * dbus/dbus-dict.h:
12488         Fix according to comments from Havoc.
12489
12490 2003-03-06  Michael Meeks  <michael@server.home>
12491
12492         * configure.in: if we don't have kde-config, disable have_qt.
12493
12494 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12495
12496         * dbus/Makefile.am:
12497         Add dbus-dict.[ch]
12498
12499         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12500         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12501         (dbus_dict_remove), (dbus_dict_get_value_type),
12502         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12503         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12504         (dbus_dict_put_double), (dbus_dict_put_string),
12505         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12506         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12507         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12508         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12509         (dbus_dict_get_double), (dbus_dict_get_string),
12510         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12511         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12512         (dbus_dict_get_string_array), (_dbus_dict_test):
12513         * dbus/dbus-dict.h:
12514         Add DBusDict implementation
12515
12516         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12517         * dbus/dbus-test.h:
12518         Add _dbus_dict_test
12519
12520 2003-03-04  Havoc Pennington  <hp@pobox.com>
12521
12522         * test/data/auth/*: adapt to changes
12523
12524         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12525         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12526         userid
12527
12528         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12529         more stuff from being in a context name, to make the protocol
12530         simpler to deal with
12531
12532         * dbus/dbus-errors.c (dbus_error_has_name): new function
12533         (dbus_error_is_set): new function
12534
12535         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12536         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12537
12538         * dbus/dbus-connection.c (dbus_connection_flush): also read
12539         messages during a flush operation
12540
12541         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12542
12543 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12544
12545         * configure.in: Check for gethostbyname on Solaris.
12546
12547         * dbus/dbus-transport.c: (_dbus_transport_open):
12548         Remove duplicate "tcp" entry.
12549
12550         * doc/dbus-specification.sgml:
12551         Clarify some things.
12552
12553 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12554
12555         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12556         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12557         (_dbus_keyring_test):
12558         * dbus/dbus-md5.c: (_dbus_md5_compute):
12559         * dbus/dbus-sha.c: (_dbus_sha_compute):
12560         Plug memory leaks.
12561
12562 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12563
12564         * README: Add some things.
12565
12566 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12567
12568         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12569         after case DBUS_TYPE_BOOELAN.
12570
12571 2003-03-02  Havoc Pennington  <hp@pobox.com>
12572
12573         * test/break-loader.c (randomly_set_extreme_ints): add test that
12574         sets really huge and small integers
12575
12576         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12577         that length of boolean array fits in the string, and that
12578         string has room for boolean value in single-bool case.
12579
12580         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12581         optional value to "ALIGN" command which is what to fill the
12582         alignment with.
12583
12584         * test/data/valid-messages/no-padding.message: add regression
12585         test for the message padding problem
12586
12587 2003-03-02  Havoc Pennington  <hp@pobox.com>
12588
12589         * dbus/dbus-message.c (decode_header_data): fix to always init
12590         message_padding, from Benjamin Dauvergne
12591
12592 2003-03-02  Havoc Pennington  <hp@pobox.com>
12593
12594         * configure.in: 0.5
12595
12596         * NEWS: Update.
12597
12598 2003-03-01  Joe Shaw  <joe@assbarn.com>
12599
12600         * configure.in: Check for "struct cmsgcred" and try to access its
12601         members for BSD-like unices.
12602
12603         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12604         _dbus_read_credentials_unix_socket().
12605         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12606         read() for reading the credential byte off the unix socket.  Use
12607         struct cmsgcred on systems that support it.
12608
12609 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12610
12611         * glib/Makefile.am:
12612         * configure.in:
12613         Make gthreads-2.0 dependency optional. Don't build thread test if
12614         its not found.
12615
12616 2003-02-27  Havoc Pennington  <hp@pobox.com>
12617
12618         * dbus/dbus-connection.c
12619         (dbus_connection_send_message_with_reply_and_block): fix doh!
12620         doh! doh! bug that resulted in never removing a reply from the
12621         queue, no wonder we called get_reply_serial so much ;-)
12622
12623         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12624         and client serial instead of demarshaling them every time
12625
12626 2003-02-27  Havoc Pennington  <hp@pobox.com>
12627
12628         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12629         more inlined, using dbus-string-private.h, speeds things up
12630         substantially
12631
12632         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12633         when freeing the string
12634         (_dbus_string_steal_data): fix for align offset
12635         (undo_alignment): new function
12636
12637 2003-02-26  Havoc Pennington  <hp@redhat.com>
12638
12639         All kinds of audit fixes from Owen, plus initial attempt to
12640         handle unaligned memory returned from malloc.
12641
12642         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12643         leave room for align_offset and nul byte
12644         (fixup_alignment): function to track an align_offset and
12645         ensure real->str is aligned
12646         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12647         to allow a nul byte plus align offset
12648         (_dbus_string_lock): fix overflow issue
12649         (_dbus_string_init_const_len): add assertions on sanity of len,
12650         assign allocated to be ALLOCATION_PADDING larger than len
12651         (set_length): fixup the overflow handling
12652         (_dbus_string_get_data_len): fix overflow in assertion
12653         (open_gap): detect overflow in size of gap to be opened
12654         (_dbus_string_lengthen): add overflow check
12655         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12656         (_dbus_string_append): add overflow check
12657         (_dbus_string_append_unichar): overflow
12658         (_dbus_string_delete): fix overflow in assertion
12659         (_dbus_string_copy_len): overflow in assertion
12660         (_dbus_string_replace_len): overflows in assertions
12661         (_dbus_string_find): change to implement in terms of
12662         _dbus_string_find_to
12663         (_dbus_string_find_to): assorted fixage
12664         (_dbus_string_equal_c_str): assert c_str != NULL,
12665         fix logic so the function works
12666         (_dbus_string_ends_with_c_str): fix overflow thingy
12667         (_dbus_string_base64_encode): overflow fix
12668         (_dbus_string_validate_ascii): overflow
12669         (_dbus_string_validate_nul): overflow
12670
12671 2003-02-26  Havoc Pennington  <hp@redhat.com>
12672
12673         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12674
12675 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12676
12677         * configure.in:
12678         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12679
12680         * dbus/dbus-connection.c:
12681         * dbus/dbus-connection.h:
12682         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12683         Add dbus_connection_set_wakeup_main_function and use it when queueing
12684         incoming and outgoing messages.
12685
12686
12687         * dbus/dbus-dataslot.c:
12688         Threadsafe usage of DBusDataSlotAllocator
12689
12690         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12691         dbus_new can fail.
12692
12693         * dbus/dbus-server-unix.c:
12694         Add todo comment
12695
12696         * glib/dbus-gmain.c:
12697         Implement the new wakeup functions for glib.
12698
12699         * glib/Makefile.am:
12700         * glib/test-thread-client.c:
12701         * glib/test-thread-server.c:
12702         * glib/test-thread.h:
12703         Initial cut at some thread test code. Not really done yet.
12704
12705 2003-02-26  Havoc Pennington  <hp@pobox.com>
12706
12707         * dbus/dbus-connection.c
12708         (dbus_connection_send_message_with_reply_and_block): fix crash
12709         where we ref'd the outgoing message instead of the returned reply
12710
12711         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12712         at the end of this function, so if we didn't need to read for
12713         authentication, we reinstall it for receiving messages
12714
12715         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12716         a NULL sender for peer-to-peer case
12717
12718         * dbus/dbus-transport-unix.c (check_read_watch): handle
12719         !authenticated case correctly
12720
12721         * glib/dbus-gmain.c: add support for DBusServer
12722
12723         * dbus/dbus-server.c: add data slot support
12724
12725         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12726         return values and handle errors
12727
12728         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12729         DBusConnection
12730
12731         * Doxyfile.in (INPUT): add glib subdir
12732
12733         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12734         setup_with_g_main instead of hookup_with_g_main; write docs
12735
12736 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12737
12738         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12739         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12740         * dbus/dbus-message.c: (dbus_message_append_boolean),
12741         (dbus_message_append_boolean_array),
12742         (dbus_message_get_args_valist), (_dbus_message_test):
12743         * dbus/dbus-message.h:
12744         * doc/dbus-specification.sgml:
12745         Various fixes as pointed out by Havoc.
12746
12747         * test/data/invalid-messages/bad-boolean-array.message:
12748         * test/data/invalid-messages/bad-boolean.message:
12749         Add invalid boolean value test cases.
12750
12751 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12752
12753         * dbus/dbus-internals.c: (_dbus_type_to_string):
12754         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12755         (_dbus_marshal_validate_arg):
12756         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12757         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12758         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12759         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12760         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12761         (dbus_message_iter_get_double),
12762         (dbus_message_iter_get_boolean_array), (message_iter_test):
12763         * dbus/dbus-message.h:
12764         * dbus/dbus-protocol.h:
12765         * doc/dbus-specification.sgml:
12766         * test/data/valid-messages/lots-of-arguments.message:
12767         Add support for boolean and boolean array types.
12768
12769 2003-02-23  Havoc Pennington  <hp@pobox.com>
12770
12771         * dbus/dbus-keyring.c: finish most of this implementation and
12772         simple unit test
12773
12774         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12775         these barf if the error isn't cleared to NULL
12776
12777         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12778         (_dbus_create_directory): new function
12779
12780         * dbus/dbus-errors.c (dbus_set_error): fix warning
12781
12782         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12783         (_dbus_string_hex_decode): new function
12784         (test_hex_roundtrip): test code
12785
12786         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12787
12788         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12789
12790         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12791         the save-to-temp/rename trick to atomically write the new file
12792         (_dbus_string_parse_uint): new function
12793
12794 2003-02-22  Havoc Pennington  <hp@pobox.com>
12795
12796         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12797
12798 2003-02-22  Havoc Pennington  <hp@pobox.com>
12799
12800         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12801         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12802
12803         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12804
12805         * dbus/test/data/sha-1: add US government test suite for SHA-1
12806
12807 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12808
12809         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12810         Make string arrays NULL-terminated.
12811
12812         * dbus/dbus-memory.c: (dbus_free_string_array):
12813         * dbus/dbus-memory.h:
12814         New function for freeing NULL-terminated string arrays.
12815
12816         * dbus/dbus-message-builder.c: (append_quoted_string),
12817         (_dbus_message_data_load):
12818         Add support for array types.
12819
12820         * dbus/dbus-message.c: (check_message_handling):
12821         Add more types as test cases.
12822
12823         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12824         (_dbus_string_parse_double):
12825         Add the start offset to the end offset.
12826
12827         * test/data/valid-messages/lots-of-arguments.message:
12828         New test message with lots of arguments.
12829
12830 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12831
12832         * dbus/dbus-message.c: (dbus_message_append_nil),
12833         (dbus_message_append_int32), (dbus_message_append_uint32),
12834         (dbus_message_append_double), (dbus_message_append_string),
12835         (dbus_message_append_int32_array),
12836         (dbus_message_append_uint32_array),
12837         (dbus_message_append_double_array),
12838         (dbus_message_append_byte_array),
12839         (dbus_message_append_string_array):
12840         Fix all out-of-memory handling in these functions.
12841
12842 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * dbus/dbus-message.c: (dbus_message_append_nil):
12845         Fix a silly.
12846
12847 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12848
12849         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12850         (dbus_message_append_nil), (dbus_message_append_int32_array),
12851         (dbus_message_append_uint32_array),
12852         (dbus_message_append_double_array),
12853         (dbus_message_append_byte_array),
12854         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12855         (dbus_message_iter_get_int32_array),
12856         (dbus_message_iter_get_uint32_array),
12857         (dbus_message_iter_get_double_array),
12858         (dbus_message_iter_get_byte_array),
12859         (dbus_message_iter_get_string_array):
12860
12861         * dbus/dbus-message.h:
12862         Add functions for appending and getting arrays.
12863
12864 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12865
12866         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12867         element size at least 8 bytes, fixes mempool tests on
12868         64-bit machines.
12869
12870 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12871
12872         * dbus/dbus-transport-unix.c (unix_do_iteration):
12873         Unlock the connection mutex during a blocking select call.
12874         Add todo about how we need a way to wake up the select.
12875
12876         * dbus/dbus-connection-internal.h:
12877         * dbus/dbus-connection.c:
12878         Add _dbus_connection_lock and _dbus_connection_unlock.
12879
12880 2003-02-19  Havoc Pennington  <hp@pobox.com>
12881
12882         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12883         Doxyfile.in, not Doxyfile
12884
12885         * dbus/dbus-keyring.c: do some hacking on this
12886
12887         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12888
12889         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12890         dbus_error_init
12891         (dbus_set_error): remove dbus_error_init, check for message ==
12892         NULL *before* we sprintf into it, and add @todo about including
12893         system headers in this file
12894
12895         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12896
12897         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12898
12899         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12900         get various bits of user information based on either username
12901         or user ID
12902         (_dbus_homedir_from_username): new function
12903
12904 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12905
12906         * configure.in:
12907         Add check for nonposix getpwnam_r
12908
12909         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12910         Align the pool element size to a sizeof (void *) boundary.
12911
12912         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12913         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12914         General Solaris fixes.
12915
12916         * test/data/valid-messages/simplest-manual.message:
12917         Explicitly state that we want little-endian packing.
12918
12919 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12920
12921         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12922
12923         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12924         Added to create a transport connecting using a tcp/ip socket.
12925
12926         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12927         to a tcp socket at given host and port.
12928         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12929         hostname and port.
12930
12931         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12932
12933         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12934         Added to create a server listening on a TCP/IP socket.
12935
12936 2003-02-19  Havoc Pennington  <hp@pobox.com>
12937
12938         Throughout: mop up all the Doxygen warnings and undocumented
12939         stuff.
12940
12941         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12942         to search any paths.
12943
12944         * dbus/dbus-threads.c: move global mutex initializers to
12945         dbus-internals.h, multiple prototypes was confusing doxygen
12946         besides being kind of ugly
12947
12948         * Doxyfile (PREDEFINED): have Doxygen define
12949         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12950         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12951         (do not abuse the feature! it's for stuff like the autogenerated
12952         macros in dbus-md5.c, not just for things you don't feel like
12953         documenting...)
12954
12955 2003-02-18  Havoc Pennington  <hp@pobox.com>
12956
12957         * dbus/dbus-string.c (_dbus_string_zero): new function
12958
12959         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12960         wrap it in some dbus-friendly API
12961
12962         * dbus/dbus-types.h: add 16-bit types
12963
12964 2003-02-18  Joe Shaw  <joe@assbarn.com>
12965
12966         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12967         credentials from our currently running process.
12968         (get_word): Fix a buglet where we were copying the entire length
12969         instead of relative to our position.
12970
12971         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12972         keys on the stack... it's 640k of data.
12973
12974         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12975         read the credentials byte off the socket, even if we don't have
12976         SO_PEERCRED.
12977         (_dbus_poll): Implement poll() using select() for systems which
12978         don't have it.
12979
12980         * glib/test-dbus-glib.c (main): Print out an error if no
12981         parameters are given.
12982
12983         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12984         can fallback to a secondary auth mechanism if the first fails.
12985
12986 2003-02-18  Havoc Pennington  <hp@pobox.com>
12987
12988         * AUTHORS: add Alex
12989
12990 2003-02-17  Havoc Pennington  <hp@pobox.com>
12991
12992         * doc/dbus-specification.sgml: lots of cosmetic
12993         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12994         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12995         s/server/bus/ (except in authentication section). Add a section
12996         "Message Bus Message Routing"
12997
12998 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12999
13000         Release 0.4
13001
13002         * NEWS: Update
13003
13004 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13005
13006         * doc/dbus-specification.sgml:
13007         Specification updates.
13008
13009 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13010
13011         * bus/activation.c: (bus_activation_init), (child_setup),
13012         (bus_activation_activate_service):
13013         * bus/activation.h:
13014         * bus/main.c: (main):
13015         Set DBUS_ADDRESS environment variable.
13016
13017         * dbus/dbus-errors.c: (dbus_set_error):
13018         Don't use va_copy since that's a C99 feature.
13019
13020         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13021         (_dbus_spawn_async):
13022         * dbus/dbus-sysdeps.h:
13023         Add child_setup_func to _dbus_spawn_async.
13024
13025         * doc/dbus-specification.sgml:
13026         Update specification.
13027
13028         * test/spawn-test.c: (setup_func), (main):
13029         Fix test.
13030
13031 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13032
13033         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13034         Added todo.
13035
13036 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13037
13038         * doc/.cvsignore:
13039         * doc/Makefile.am:
13040         * doc/dbus-test-plan.sgml:
13041         Add test plan document.
13042
13043         * test/Makefile.am:
13044         Fix distcheck.
13045
13046 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13047
13048         * dbus/dbus-message.c: (decode_header_data),
13049         (_dbus_message_loader_return_buffer):
13050         Set the header padding amount when loading a message.
13051
13052 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13053
13054         * bus/dispatch.c: (send_one_message):
13055         Only send broadcast messages to registered connections.
13056
13057         * dbus/dbus-message.c: (dbus_message_name_is):
13058         * dbus/dbus-message.h:
13059         New convenience function.
13060
13061         * dbus/dbus-transport-debug.c: (do_reading):
13062         Only dispatch one message per run.
13063
13064         * test/Makefile.am:
13065         * test/bus-test.c: (new_connection_callback), (die),
13066         (test_hello_client1_handler), (test_hello_client2_handler),
13067         (test_hello_replies), (main):
13068
13069         * test/bus-test-loop.[ch]:
13070         Add these.
13071
13072 2003-02-16  Havoc Pennington  <hp@pobox.com>
13073
13074         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13075         backward conditional
13076
13077 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13078
13079         * dbus/dbus-connection.c:
13080         Implement sent_message_with_reply. (with_reply_and block is still
13081         busted).
13082         Made dispatch_message not lose message if OOM.
13083
13084         * dbus/dbus-errors.h:
13085         Add NoReply error (for reply timeouts).
13086
13087 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13088
13089         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13090         Actually free keys and values when destroying hashtable.
13091
13092 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13093
13094         * dbus/dbus-auth.c: (client_try_next_mechanism):
13095         Plug a leak.
13096
13097         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13098         Return TRUE if there's no thread implementation around.
13099
13100         * glib/dbus-gmain.c: (free_source),
13101         (dbus_connection_hookup_with_g_main):
13102         Make sure to remove the GSource when the connection is finalized.
13103
13104 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13105
13106         * bus/dispatch.c: (bus_dispatch_message_handler):
13107         * dbus/dbus-errors.h:
13108         Return an error if someone tries to send a message to a service
13109         that doesn't exist.
13110
13111 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13112
13113         * bus/activation.c: (load_directory), (bus_activation_init),
13114         (bus_activation_activate_service):
13115         * bus/activation.h:
13116         * bus/driver.c:
13117         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13118         More work on the activation handling.
13119
13120         * dbus/dbus-errors.h:
13121         Add some error messages
13122
13123         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13124         * dbus/dbus-message.h:
13125         New function that creates an error message.
13126
13127         * dbus/dbus-protocol.h:
13128         Add ACTIVATE_SERVER message.
13129
13130         * dbus/dbus-server-unix.c: (unix_handle_watch),
13131         (_dbus_server_new_for_domain_socket):
13132         Call _dbus_fd_set_close_on_exec.
13133
13134         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13135         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13136         (_dbus_fd_set_close_on_exec):
13137         * dbus/dbus-sysdeps.h:
13138         Add _dbus_fd_set_close_on exec function. Also add function that checks
13139         that all open fds are set to close-on-exec and warns otherwise.
13140
13141         * dbus/dbus-transport-unix.c:
13142         (_dbus_transport_new_for_domain_socket):
13143         Call _dbus_fd_set_close_on_exec.
13144
13145 2003-02-16  Havoc Pennington  <hp@pobox.com>
13146
13147         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13148         allow people to avoid setting SIGPIPE to SIG_IGN
13149         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13150         we've been asked not to
13151
13152 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13153
13154         * dbus/dbus-list.c: (_dbus_list_append_link),
13155         (_dbus_list_prepend_link):
13156         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13157         (dbus_realloc):
13158         Warning fixes.
13159
13160 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13161
13162         * bus/Makefile.am:
13163         * bus/activation.c: (bus_activation_entry_free),
13164         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13165         * bus/activation.h:
13166         * bus/main.c: (main):
13167         Add simple activation support, doesn't work yet though.
13168
13169 2003-02-15   Zack Rusin  <zack@kde.org>
13170
13171         * qt/dbus-qthread.cpp:  small casting fix
13172
13173 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * dbus/dbus-errors.c: (dbus_set_error):
13176         * dbus/dbus-errors.h:
13177         Add a few errors and make dbus_set_error void.
13178
13179         * dbus/dbus-sysdeps.c:
13180         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13181         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13182         * dbus/dbus-sysdeps.h:
13183         Add _dbus_spawn_async.
13184
13185         * test/spawn-test.c: (main):
13186         Test for _dbus_spawn_async.
13187
13188 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13189
13190         * dbus/dbus-internals.h:
13191         Fix build without tests.
13192
13193         * dbus/dbus-list.c: (alloc_link):
13194         Fix a segfault when a malloc fails.
13195
13196         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13197         (dbus_malloc0), (dbus_realloc):
13198         Add support for malloc debugging.
13199
13200 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13201
13202         * dbus/dbus-threads.c:
13203         * dbus/dbus-threads.h:
13204         Add condvars. Remove static mutext from API.
13205         Implement static mutexes by initializing them from threads_init.
13206
13207         * glib/dbus-gthread.c:
13208         * qt/dbus-qthread.cpp:
13209         Update with the thread api changes.
13210
13211
13212         * dbus/dbus-list.c:
13213         * dbus/dbus-list.h:
13214         Turn StaticMutex into normal mutex + init function.
13215         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13216         _dbus_list_append_link, _dbus_list_prepend_link
13217
13218
13219         * dbus/dbus-sysdeps.c:
13220         * dbus/dbus-sysdeps.h:
13221         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13222         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13223
13224         * dbus/dbus-protocol.h:
13225         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13226
13227         * dbus/dbus-message.c:
13228         Make ref/unref atomic.
13229         Fix some docs.
13230
13231         * dbus/dbus-connection-internal.h:
13232         * dbus/dbus-connection.c:
13233         * dbus/dbus-connection.h:
13234         Make threadsafe.
13235         Change _peek to _borrow,_return & _steal_borrowed.
13236         Change disconnect callback to event.
13237         Make dbus_connection_dispatch_messages reentrant.
13238
13239         * dbus/dbus-transport.c:
13240         Don't ref the connection on calls to the transport
13241         implementation.
13242
13243         * dbus/dbus-message-handler.c:
13244         Make threadsafe.
13245
13246         * glib/dbus-gmain.c:
13247         Don't use peek_message anymore
13248
13249         * test/Makefile.am:
13250         * test/debug-thread.c:
13251         * test/debug-thread.h:
13252         Simple thread implementation that asserts() on deadlocks in
13253         single-threaded code.
13254
13255         * test/bus-test.c:
13256         (main) Call debug_threads_init.
13257
13258         * test/watch.c:
13259         Use disconnect message instead of disconnect callback.
13260
13261         * bus/connection.c:
13262         * bus/connection.h:
13263         Don't call dbus_connection_set_disconnect_function. Instead export
13264         bus_connection_disconnect.
13265
13266         * bus/dispatch.c:
13267         Call bus_connection_disconnect when we get a disconnected message.
13268
13269 2003-02-15  Havoc Pennington  <hp@pobox.com>
13270
13271         * dbus/dbus-message.c (dbus_message_new): fool around with the
13272         docs
13273
13274 2003-02-14  Havoc Pennington  <hp@pobox.com>
13275
13276         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13277
13278         * dbus/dbus-memory.c: fail if the debug functions indicate we
13279         should
13280
13281         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13282         (_dbus_decrement_fail_alloc_counter): debug functions to
13283         simulate memory allocation failures
13284
13285 2003-02-14  Havoc Pennington  <hp@pobox.com>
13286
13287         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13288         to DBusError
13289
13290 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13291
13292         * bus/driver.c: (bus_driver_handle_hello):
13293         * bus/driver.h:
13294         * bus/services.c: (bus_service_lookup):
13295         Reorder message sending so we get a more sane order.
13296
13297         * test/bus-test.c: (message_handler):
13298         Fix tyop.
13299
13300 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13301
13302         * bus/driver.c: (bus_driver_send_service_deleted),
13303         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13304         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13305         (bus_driver_send_welcome_message),
13306         (bus_driver_handle_list_services),
13307         (bus_driver_handle_acquire_service),
13308         (bus_driver_handle_service_exists):
13309         * dbus/dbus-bus.c: (dbus_bus_register_client),
13310         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13311         * dbus/dbus-errors.c: (dbus_result_to_string):
13312         * dbus/dbus-errors.h:
13313         * dbus/dbus-message.c: (dbus_message_append_args),
13314         (dbus_message_append_args_valist), (dbus_message_get_args),
13315         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13316         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13317         (dbus_message_iter_get_byte_array),
13318         (dbus_message_iter_get_string_array), (message_iter_test),
13319         (check_message_handling), (_dbus_message_test):
13320         * dbus/dbus-message.h:
13321         * test/bus-test.c: (main):
13322         Change fields to arguments in messages, so that they won't be
13323         confused with header fields.
13324
13325         * glib/test-dbus-glib.c: (main):
13326         Remove append_fields from hello message.
13327
13328 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13329
13330         * dbus/dbus-errors.c:
13331         * dbus/dbus-message.c:
13332         * dbus/dbus-string.c:
13333         Documentation fixes.
13334
13335 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13336
13337         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13338         (remove_timeout):
13339         Implement support for timeouts in dbus-glib.
13340
13341 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13342
13343         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13344         * dbus/dbus-message.c: (process_test_subdir):
13345         * test/break-loader.c: (find_breaks_based_on):
13346         Plug some memory leaks.
13347
13348 2003-02-13  Richard Hult  <rhult@codefactory.se>
13349
13350         * bus/main.c: Fix build.
13351
13352         * dbus/dbus-errors.h:
13353         * dbus/dbus-errors.c: Fix copyright for Anders.
13354
13355 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13356
13357         * bus/Makefile.am:
13358         Add utils.[ch]
13359
13360         * bus/connection.c: (bus_connection_foreach):
13361         Fix a warning.
13362
13363         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13364         (unescape_string), (new_section), (parse_section_start),
13365         (parse_key_value), (report_error), (bus_desktop_file_load),
13366         (bus_desktop_file_get_string):
13367         * bus/desktop-file.h:
13368         Use DBusError for error reporting.
13369
13370         * bus/dispatch.c: (send_one_message),
13371         (bus_dispatch_message_handler):
13372         * bus/driver.c: (bus_driver_send_service_deleted),
13373         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13374         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13375         (bus_driver_send_welcome_message),
13376         (bus_driver_handle_list_services),
13377         (bus_driver_handle_acquire_service),
13378         (bus_driver_handle_service_exists):
13379         * bus/loop.c: (bus_loop_run):
13380         * bus/main.c:
13381         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13382
13383         * bus/utils.c: (bus_wait_for_memory):
13384         * bus/utils.h:
13385         New files with general utility functions.
13386
13387         * dbus/dbus-internals.h:
13388         Remove _DBUS_HANDLE_OOM.
13389
13390 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13391
13392         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13393         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13394         * dbus/dbus-errors.h:
13395         Add DBusError structure.
13396
13397 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13398
13399         * test/data/valid-messages/standard-acquire-service.message:
13400         * test/data/valid-messages/standard-hello.message:
13401         * test/data/valid-messages/standard-list-services.message:
13402         * test/data/valid-messages/standard-service-exists.message:
13403         Add some standard messages.
13404
13405 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13406
13407         * bus/driver.c: (bus_driver_send_welcome_message),
13408         (bus_driver_handle_list_services),
13409         (bus_driver_handle_acquire_service),
13410         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13411         Update for API changes in libdbus.
13412
13413         * dbus/dbus-message.c: (dbus_message_new_reply):
13414         * dbus/dbus-message.h:
13415         Remove the name argument. The spec states that replies shouldn't
13416         have a name.
13417
13418 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13419
13420         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13421         (report_error), (bus_desktop_file_load), (lookup_section),
13422         (lookup_line), (bus_desktop_file_get_raw),
13423         (bus_desktop_file_get_string):
13424         * bus/desktop-file.h:
13425         Some fixes, and new functions for getting a key value from a section.
13426
13427 2003-02-13  Havoc Pennington  <hp@pobox.com>
13428
13429         * test/data/auth/fail-after-n-attempts.auth-script: new test
13430
13431         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13432         reject the client.
13433
13434 2003-02-13  Havoc Pennington  <hp@pobox.com>
13435
13436         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13437         dbus_credentials_match were backward
13438
13439         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13440         NO_CREDENTIALS and ROOT_CREDENTIALS
13441
13442         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13443         into here. Never process more commands after we've reached an
13444         end state; store further data as unused bytes.
13445
13446         * test/data/auth/*: add more auth tests
13447
13448         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13449         command to match exact string and EXPECT_UNUSED to match unused
13450         bytes
13451
13452         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13453
13454 2003-02-12  Havoc Pennington  <hp@pobox.com>
13455
13456         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13457         \r off of popped lines
13458
13459         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13460         scripts
13461
13462         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13463         SEND, append \r\n
13464
13465 2003-02-12  Havoc Pennington  <hp@pobox.com>
13466
13467         * dbus/Makefile.am: remove break-loader from the build, since it
13468         moved.
13469
13470         * configure.in: add --enable-gcov to turn on coverage profiling
13471         flags and disable optimization
13472
13473 2003-02-10  Havoc Pennington  <hp@pobox.com>
13474
13475         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13476         initial cut at test framework for DBusAuth from laptop.
13477         Doesn't quite work yet but it compiles and I need to get
13478         it off the 266mhz laptop. ;-)
13479
13480         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13481         fix a memleak in error case
13482
13483 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13484
13485         * bus/Makefile.am:
13486         * bus/desktop-file.c:
13487         * bus/desktop-file.h:
13488         Add a desktop file parser.
13489
13490 2003-02-11  Zack Rusin  <zack@kde.org>
13491
13492         * qt/message.[h|cpp]: sample implementation
13493         of the KDE wrapper for DBusMessage
13494
13495 2003-02-09  Zack Rusin  <zack@kde.org>
13496
13497         * test/bus-test.c: make_it_compile
13498         * doc/dbus-specification.sgml: minimal semantic fix
13499
13500 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13501
13502         Release 0.3
13503
13504         * NEWS: Update
13505
13506 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13507
13508         * dbus/Makefile.am:
13509         * dbus/dbus-break-loader.c:
13510         * test/Makefile.am:
13511         * test/break-loader.c:
13512         Move dbus-break-loader to test/ and rename it to break-loader.
13513
13514 2003-02-02  Havoc Pennington  <hp@pobox.com>
13515
13516         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13517         for code to manage cookies in your home directory
13518
13519         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13520
13521         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13522         to authenticate, then disconnect the client.
13523
13524 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13525
13526         * dbus/dbus-message.c (dbus_message_append_fields):
13527         Correct docs.
13528
13529 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13530
13531         * doc/dbus-specification.sgml:
13532         Update address format section.
13533
13534 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13535
13536         * test/Makefile.am:
13537         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13538         (message_handler), (new_connection_callback), (loop_quit),
13539         (loop_run), (main):
13540         Add bus test.
13541
13542 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13543
13544         * bus/driver.c: (bus_driver_handle_service_exists):
13545         Simplify the code a bit.
13546
13547         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13548         Fix a silly.
13549
13550 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13551
13552         * bus/Makefile.am:
13553         Add libdbus-daemon.la and link to it.
13554
13555 2003-02-01  James Willcox  <jwillcox@gnome.org>
13556
13557         * bus/driver.c: (bus_driver_handle_own_service):
13558         Actually include the service reply code in the message.
13559
13560 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13561
13562         * bus/driver.c: (bus_driver_handle_service_exists):
13563         Don't unref the incoming message.
13564
13565 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13566
13567         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13568
13569 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13570
13571         * dbus/dbus-server.c: (dbus_server_listen):
13572         * dbus/dbus-transport.c: (_dbus_transport_open):
13573         ifdef out the calls to the debug transport and server.
13574
13575 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13576
13577         * dbus/dbus-watch.c (dbus_watch_get_flags):
13578         Add note in the docs that ERROR or HANGUP won't be returned
13579         and are assumed always on.
13580
13581         * glib/dbus-gmain.c (add_watch):
13582         Always add IO_ERR | IO_HUP
13583
13584         * dbus/dbus-message.h:
13585         Add semicolon after dbus_message_iter_get_string_array().
13586         Makes qt code build again
13587
13588 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13589
13590         * bus/driver.c: (create_unique_client_name),
13591         (bus_driver_handle_hello):
13592         Don't take a name, just use a numeric id to identify
13593         each client.
13594
13595         * dbus/Makefile.am:
13596         * dbus/dbus-bus.c: (dbus_bus_register_client),
13597         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13598         * dbus/dbus-bus.h:
13599         Add new convenience functions for communicating with the bus.
13600
13601         * dbus/dbus-message.h:
13602
13603         * dbus/dbus-protocol.h:
13604         Fix a typo.
13605
13606 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13607
13608         * dbus/dbus-message.c (dbus_message_append_fields):
13609         Add some more doc comments.
13610
13611 2003-02-01  Havoc Pennington  <hp@pobox.com>
13612
13613         * dbus/dbus-break-loader.c (randomly_modify_length): change
13614         a 4-byte value in the message as if it were a length
13615
13616         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13617         execute bit on saved files
13618
13619 2003-02-01  Havoc Pennington  <hp@pobox.com>
13620
13621         * dbus/dbus-break-loader.c (main): new program to find messages
13622         that break the loader.
13623
13624         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13625         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13626
13627         * dbus/dbus-string.c (_dbus_string_set_byte): new
13628
13629 2003-01-31  Havoc Pennington  <hp@pobox.com>
13630
13631         * dbus/dbus-message.c: refactor the test code to be more general,
13632         in preparation for writing a "randomly permute test cases to
13633         try to break the loader" program.
13634
13635 2003-01-31  Havoc Pennington  <hp@pobox.com>
13636
13637         * doc/dbus-specification.sgml: work on the specification
13638
13639         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13640         the protocol version of the message.
13641
13642         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13643         no longer specifies that.
13644         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13645         1/2/3/4)
13646
13647         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13648         "break" for DBUS_TYPE_NIL, remove @todo
13649
13650 2003-01-31  Havoc Pennington  <hp@pobox.com>
13651
13652         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13653         just set_is_error/get_is_error as this is a commonly-used
13654         function, and write docs.
13655
13656 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13657
13658         * dbus/dbus-address.c: (dbus_address_entry_free):
13659         Free key and value lists.
13660
13661         * dbus/dbus-internals.c: (_dbus_type_to_string):
13662         Add the types we didn't have.
13663
13664         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13665         (_dbus_marshal_validate_arg):
13666         Add NIL types.
13667
13668         * dbus/dbus-message.c: (dbus_message_set_sender):
13669         Remove todo about being able to set sender to NULL.
13670
13671         (dbus_message_set_is_error_reply),
13672         (dbus_message_get_is_error_reply):
13673         * dbus/dbus-message.h:
13674         New functions.
13675
13676         * dbus/dbus-protocol.h:
13677         Add error reply flag.
13678
13679         * test/data/valid-messages/opposite-endian.message:
13680         Add NIL type to test.
13681
13682 2003-01-31  Havoc Pennington  <hp@pobox.com>
13683
13684         * doc/dbus-specification.sgml: fully specify the header.  Add
13685         flags and major protocol version, and change header/body len to
13686         unsigned.
13687
13688         * dbus/dbus-message-builder.c (append_saved_length): append length
13689         as uint32
13690
13691         * dbus/dbus-message.c (dbus_message_create_header): change header
13692         length and body length to unsigned. Add the new fields from the
13693         spec
13694         (_dbus_message_loader_return_buffer): unsigned header/body len
13695
13696 2003-01-30  Havoc Pennington  <hp@pobox.com>
13697
13698         * dbus/dbus-auth.c: rework to use only REJECTED, no
13699         MECHANISMS
13700
13701         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13702         use REJECTED, suggested by Mark McLoughlin
13703
13704 2003-01-30  Havoc Pennington  <hp@pobox.com>
13705
13706         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13707         a better way to report errors here. e.g.  "unix address lacks
13708         path" or something. also "no such file" when the path doesn't
13709         exist, etc.
13710
13711         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13712         leaking list nodes
13713         (dbus_parse_address): add @todo about documenting address format,
13714         and allowing , and ; to be escaped
13715
13716 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13717
13718         * dbus/Makefile.am:
13719         Add dbus-address.[ch]
13720
13721         * dbus/dbus-address.c: (dbus_address_entry_free),
13722         (dbus_address_entries_free), (create_entry),
13723         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13724         (dbus_parse_address), (_dbus_address_test):
13725         * dbus/dbus-address.h:
13726         New files for dealing with address parsing.
13727
13728         * dbus/dbus-connection.c:
13729         Document timeout functions.
13730
13731         * dbus/dbus-message.c:
13732         Document dbus_message_new_from_message.
13733
13734         * dbus/dbus-server-debug.c:
13735         Document.
13736
13737         * dbus/dbus-server.c: (dbus_server_listen):
13738         Parse address and use correct server implementation.
13739
13740         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13741         * dbus/dbus-string.h:
13742         New function with test.
13743
13744         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13745         * dbus/dbus-test.h:
13746         Add address tests.
13747
13748         * dbus/dbus-transport-debug.c:
13749         Document.
13750
13751         * dbus/dbus-transport.c: (_dbus_transport_open):
13752         Parse address and use correct transport implementation.
13753
13754 2003-01-30  Havoc Pennington  <hp@pobox.com>
13755
13756         * dbus/dbus-message.c: use message->byte_order instead of
13757         DBUS_COMPILER_BYTE_ORDER throughout.
13758         (dbus_message_create_header): pad header to align the
13759         start of the body of the message to 8-byte boundary
13760
13761         * dbus/dbus-marshal.h: make all the demarshalers take const
13762         DBusString arguments.
13763
13764         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13765         validate message args here, so we don't have to do slow validation
13766         later, and so we catch bad messages as they are incoming. Also add
13767         better checks on header_len and body_len. Also fill in
13768         message->byte_order
13769
13770         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13771         implemented properly)
13772         (_dbus_string_validate_nul): new function to check all-nul
13773
13774         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13775         get_arg_end_pos and remove all validation
13776         (_dbus_marshal_validate_arg): actually do validation here.
13777
13778 2003-01-29  Havoc Pennington  <hp@pobox.com>
13779
13780         * dbus/dbus-message.c (check_message_handling): fix assertion
13781         failure on set_client_serial
13782
13783 2003-01-28  Havoc Pennington  <hp@pobox.com>
13784
13785         * dbus/dbus-server-debug.c: Add doc section comments
13786
13787         * dbus/dbus-transport-debug.c: add doc section comments
13788
13789 2003-01-28  Havoc Pennington  <hp@redhat.com>
13790
13791         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13792         the reverse order from how I had it
13793         (_dbus_string_base64_encode): reverse encoding order. I was
13794         basically byteswapping everything during encoding.
13795
13796 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13797
13798         * dbus/dbus-connection-internal.h:
13799         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13800         (_dbus_connection_remove_timeout):
13801         Add functions for adding and removing timeouts.
13802
13803         * dbus/dbus-message.c: (dbus_message_new_from_message):
13804         Add new function that takes a message and creates an exact
13805         copy of it, but with the refcount set to 1.
13806         (check_message_handling):
13807         Fix build error.
13808
13809         * dbus/dbus-server-protected.h:
13810         * dbus/dbus-server.c: (_dbus_server_init_base),
13811         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13812         (dbus_server_set_timeout_functions):
13813         (_dbus_server_remove_timeout):
13814         New functions so that a server can add and remove timeouts.
13815
13816         (dbus_server_listen):
13817         Add commented out call to dbus_server_debug_new.
13818
13819         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13820         Actually set the handler, doh.
13821
13822         * dbus/dbus-transport.c: (_dbus_transport_open):
13823         Add commented out call to dbus_transport_debug_client_new.
13824
13825         * dbus/Makefile.am:
13826         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13827
13828 2003-01-28  Havoc Pennington  <hp@pobox.com>
13829
13830         * dbus/dbus-message.c (check_message_handling): function to check
13831         on the loaded message, iterates over it etc.
13832
13833 2003-01-28  Havoc Pennington  <hp@pobox.com>
13834
13835         * test/Makefile.am (dist-hook): fix make distdir
13836
13837         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13838
13839 2003-01-27  Havoc Pennington  <hp@pobox.com>
13840
13841         * dbus/dbus-mempool.c (time_for_size): replace printf with
13842         _dbus_verbose
13843
13844         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13845         empty lines; fix the SAVE_LENGTH stuff to be
13846         START_LENGTH/END_LENGTH so it actually works; couple other
13847         bugfixes
13848
13849         * test/Makefile.am (dist-hook): add dist-hook for .message files
13850
13851         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13852         can be constant or locked.
13853         (_dbus_string_free): allow freeing a const string as
13854         documented/intended
13855
13856         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13857
13858         * dbus/dbus-test-main.c (main): take an argument which is the
13859         directory containing test data
13860
13861         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13862         argument to this and load all the messages in test/data/
13863         checking that they can be loaded or not loaded as appropriate.
13864
13865 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13866
13867         * bus/dispatch.c: (bus_dispatch_message_handler):
13868         Dispatch messages sent to services.
13869
13870         * bus/driver.c: (bus_driver_send_service_deleted),
13871         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13872         (bus_driver_send_service_acquired):
13873         Add helper functions for sending service related messages.
13874
13875         (bus_driver_send_welcome_message):
13876         Send HELLO_REPLY instead of WELCOME.
13877
13878         (bus_driver_handle_list_services):
13879         Send LIST_SERVICES_REPLY instead of SERVICES.
13880
13881         (bus_driver_handle_own_service),
13882         (bus_driver_handle_service_exists):
13883         New message handlers.
13884
13885         (bus_driver_handle_message):
13886         Invoke new message handlers.
13887
13888         (bus_driver_remove_connection):
13889         Don't remove any services here since that's done automatically
13890         by bus_service_remove_owner now.
13891
13892         * bus/driver.h:
13893         New function signatures.
13894
13895         * bus/services.c: (bus_service_add_owner):
13896         Send ServiceAcquired message if we're the only primary owner.
13897
13898         (bus_service_remove_owner):
13899         Send ServiceAcquired/ServiceLost messages.
13900
13901         (bus_service_set_prohibit_replacement),
13902         (bus_service_get_prohibit_replacement):
13903         Functions for setting prohibit replacement.
13904
13905         (bus_service_has_owner):
13906         New function that checks if a connection is in the owner queue of
13907         a certain service.
13908
13909         * bus/services.h:
13910         Add new function signatures.
13911
13912         * dbus/dbus-list.c: (_dbus_list_test):
13913         Add tests for _dbus_list_remove_last and traversing the list backwards.
13914
13915         * dbus/dbus-list.h:
13916         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13917         go any further, so return NULL then.
13918
13919         * dbus/dbus-protocol.h:
13920         Add new messages, service flags and service replies.
13921
13922 2003-01-26  Havoc Pennington  <hp@pobox.com>
13923
13924         * dbus/dbus-message-builder.c: implement, completely untested.
13925
13926         * test/data/*: add data to be used in testing.
13927         ".message" files are our simple loadable text format.
13928         ".message-raw" will be binary dumps of messages.
13929
13930         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13931
13932 2003-01-26  Havoc Pennington  <hp@pobox.com>
13933
13934         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13935
13936         * dbus/dbus-errors.c (dbus_result_to_string): add
13937         file errors
13938
13939         * dbus/dbus-message-builder.c: new file, will contain code to load
13940         up messages from files. Not implemented yet.
13941
13942 2003-01-26  Havoc Pennington  <hp@pobox.com>
13943
13944         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13945         the sender by setting to NULL
13946
13947 2003-01-26  Havoc Pennington  <hp@pobox.com>
13948
13949         The unit tests pass, but otherwise untested.  If it breaks, the
13950         tests should have been better. ;-)
13951
13952         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13953         the connection.
13954
13955         * dbus/dbus-message.c: redo everything so we maintain
13956         message->header as the only copy of the various fields.
13957         This avoids the possibility of out-of-memory in some cases,
13958         for example dbus_message_lock() can't run out of memory anymore,
13959         and avoids extra copying. Figured I may as well go ahead and do
13960         this since it was busted for dbus_message_lock to not return
13961         failure on OOM, and dbus_message_write_header was totally
13962         unchecked for OOM. Also fixed some random other bugs.
13963
13964         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13965         that strings are nul-terminated. Also, end_pos can be equal
13966         to string length just not greater than, I think.
13967         (_dbus_marshal_set_int32): new function
13968         (_dbus_marshal_set_uint32): new function
13969         (_dbus_marshal_set_string): new function
13970
13971         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13972         a warning, init timeout_list to NULL
13973         (dbus_connection_send_message): don't use uninitialized variable
13974         "serial"
13975
13976         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13977
13978 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13979
13980         * bus/driver.c: (bus_driver_handle_hello),
13981         (bus_driver_send_welcome_message):
13982         Plug leaks
13983
13984 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13985
13986         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13987         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13988         (dbus_connection_unref):
13989         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13990         * dbus/dbus-message.c: (dbus_message_unref),
13991         Plug memory leaks.
13992
13993         (dbus_message_get_fields):
13994         Remove debugging printout.
13995
13996         (_dbus_message_loader_return_buffer):
13997         Don't store the header string.
13998
13999         (_dbus_message_test):
14000         Plug leaks.
14001
14002 2003-01-26  Richard Hult  <rhult@codefactory.se>
14003
14004         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14005         the file descriptor list, since it can change under us.
14006
14007 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14008
14009         * glib/dbus-gmain.c: (dbus_connection_prepare),
14010         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14011         (remove_watch), (dbus_connection_hookup_with_g_main):
14012         Rewrite the glib handling to use its own GSource instead of a
14013         GIOChannel so we can catch messages put in the queue while waiting
14014         for a reply.
14015
14016 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14017
14018         * bus/Makefile.am:
14019         * bus/connection.c: (connection_disconnect_handler),
14020         (connection_watch_callback), (bus_connection_setup):
14021         * bus/dispatch.c: (send_one_message),
14022         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14023         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14024         * bus/dispatch.h:
14025         * bus/driver.c: (bus_driver_send_service_deleted),
14026         (bus_driver_send_service_created), (bus_driver_handle_hello),
14027         (bus_driver_send_welcome_message),
14028         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14029         (bus_driver_handle_message):
14030         * bus/driver.h:
14031         Refactor code, put the message dispatching in its own file. Use
14032         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14033         is disconnected.
14034
14035 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14036
14037         * dbus/dbus-internals.h:
14038         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14039
14040         * dbus/dbus-message.c: (dbus_message_get_sender):
14041         * dbus/dbus-message.h:
14042         Implement dbus_message_get_sender.
14043
14044         * dbus/dbus-protocol.h:
14045         Add message and service defines.
14046
14047 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14048
14049         * dbus/dbus-connection.c: (dbus_connection_send_message):
14050         * dbus/dbus-message-internal.h:
14051         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14052         (dbus_message_write_header):
14053         Remove _dbus_messag_unlock and don't set the client serial on a
14054         message if one already exists.
14055
14056 2003-01-24  Havoc Pennington  <hp@pobox.com>
14057
14058         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14059         list_pool
14060
14061         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14062         on OOM
14063
14064 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14065
14066         * dbus/dbus-list.c: (alloc_link), (free_link):
14067         Use a memory pool for the links.
14068
14069 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14070
14071         * bus/connection.c: (bus_connection_foreach):
14072         * bus/connection.h:
14073         Add new bus_connection_foreach function.
14074
14075         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14076         Add function that broadcasts a message to all clients.
14077
14078         (bus_driver_send_service_created), (bus_driver_handle_hello),
14079         (bus_driver_send_welcome_message),
14080         (bus_driver_handle_list_services), (bus_driver_message_handler):
14081         Implement functions that take care of listing services, and notifying
14082         clients when new services are created.
14083
14084         * bus/services.c: (bus_services_list):
14085         * bus/services.h:
14086         Add new function that returns an array of strings with the currently
14087         registered services.
14088
14089         * glib/dbus-glib.h:
14090         * glib/dbus-gmain.c:
14091         Update copyright year.
14092
14093 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14094
14095         * dbus/dbus-connection.c: (dbus_connection_send_message):
14096         Unlock the message in case it was sent earlier.
14097
14098         (dbus_connection_send_message_with_reply_and_block):
14099         Remove the reply message from the list.
14100
14101         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14102         Set array_len and new_pos correctly.
14103
14104         (_dbus_marshal_test):
14105         Remove debug output.
14106
14107         * dbus/dbus-message-internal.h:
14108         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14109         New function that returns the reply serial.
14110
14111         (_dbus_message_unlock):
14112         New function that unlocks a message and resets its header.
14113
14114         (dbus_message_append_string_array),
14115         (dbus_message_get_fields_valist),
14116         (dbus_message_iter_get_field_type),
14117         (dbus_message_iter_get_string_array),
14118         (dbus_message_get_fields),
14119         (dbus_message_append_fields_valist):
14120         Handle string arrays.
14121
14122         (dbus_message_set_sender):
14123         Make this function public since the bus daemon needs it.
14124
14125         (decode_header_data):
14126         Set the reply serial to -1 initially.
14127
14128         * dbus/dbus-message.h:
14129         Add dbus_message_set_sender.
14130
14131 2003-01-24  Havoc Pennington  <hp@pobox.com>
14132
14133         * doc/dbus-specification.sgml: add some stuff
14134
14135 2003-01-22  Havoc Pennington  <hp@pobox.com>
14136
14137         * doc/dbus-specification.sgml: Start to document the protocol.
14138
14139 2003-01-22  Havoc Pennington  <hp@pobox.com>
14140
14141         * dbus/dbus-connection.c
14142         (dbus_connection_send_message_with_reply_and_block): add some @todo
14143
14144         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14145
14146 2003-01-21  Havoc Pennington  <hp@pobox.com>
14147
14148         (patch untested because can't compile)
14149
14150         * bus/driver.c (create_unique_client_name): make this function
14151         never recycle client names. Also, caller should initialize
14152         the DBusString.
14153
14154         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14155
14156 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14157
14158         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14159         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14160         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14161         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14162         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14163         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14164         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14165         * dbus/dbus-marshal.h:
14166         * dbus/dbus-protocol.h:
14167         Add support for marshalling and demarshalling integer, double
14168         and string arrays.
14169
14170 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14171
14172         * bus/Makefile.am:
14173         Add driver.[ch]
14174
14175         * bus/connection.c: (connection_disconnect_handler):
14176         Remove the connection from the bus driver's list.
14177
14178         (connection_watch_callback): Dispatch messages.
14179
14180         (free_connection_data): Free connection name.
14181
14182         (bus_connection_setup): Add connection to the bus driver's list.
14183         (bus_connection_remove_owned_service):
14184         (bus_connection_set_name), (bus_connection_get_name):
14185         Add functions for setting and getting the connection's name.
14186
14187         * bus/connection.h:
14188         Add function headers.
14189
14190         * bus/driver.c: (create_unique_client_name),
14191         (bus_driver_handle_hello_message),
14192         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14193         (bus_driver_add_connection), (bus_driver_remove_connection):
14194         * bus/driver.h:
14195         * bus/main.c:
14196         * bus/services.c: (bus_service_free):
14197         * bus/services.h:
14198         New file that handles communication and registreation with the bus
14199         itself.
14200
14201 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14202
14203         * dbus/dbus-connection.c: (dbus_connection_send_message):
14204         Add a new client_serial parameter.
14205
14206         (dbus_connection_send_message_with_reply):
14207         Remove a @todo since we've implemented the blocking function.
14208
14209         (dbus_connection_send_message_with_reply_and_block):
14210         New function that sends a message and waits for a reply and
14211         then returns the reply.
14212
14213         * dbus/dbus-connection.h:
14214         Add new functions.
14215
14216         * dbus/dbus-errors.c: (dbus_result_to_string):
14217         * dbus/dbus-errors.h:
14218         Add new DBUS_RESULT.
14219
14220         * dbus/dbus-message-internal.h:
14221         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14222         (_dbus_message_set_sender), (dbus_message_write_header),
14223         (dbus_message_new_reply), (decode_header_data),
14224         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14225         * dbus/dbus-message.h:
14226         Add new functions that set the reply serial and sender.
14227         Also marshal and demarshal them correctly and add test.
14228
14229         * dbus/dbus-protocol.h:
14230         Add new DBUS_MESSAGE_TYPE_SENDER.
14231
14232         * glib/dbus-glib.h:
14233         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14234         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14235         (dbus_connection_hookup_with_g_main):
14236         * glib/test-dbus-glib.c: (main):
14237         Rewrite to use GIOChannel and remove the GSource crack.
14238
14239         * test/echo-client.c: (main):
14240         * test/watch.c: (check_messages):
14241         Update for changed APIs
14242
14243 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14244
14245         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14246
14247         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14248         Create a DBusTimeoutList.
14249         (dbus_connection_set_timeout_functions): Add new function to
14250         set timeout callbacks
14251
14252         * dbus/dbus-connection.h: Add public DBusTimeout API.
14253
14254         * dbus/dbus-message.c: (dbus_message_get_service):
14255         * dbus/dbus-message.h:  New function.
14256
14257         * dbus/dbus-server.c: Fix small doc typo.
14258
14259         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14260
14261 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14262
14263         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14264         of the string, just as long as specified.
14265
14266 2003-01-19  Havoc Pennington  <hp@pobox.com>
14267
14268         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14269         new function
14270
14271         * dbus/dbus-server.c (dbus_server_set_max_connections)
14272         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14273         keep track of current number of connections, and add API for
14274         setting a max (but haven't implemented enforcing the max yet)
14275
14276 2003-01-18  Havoc Pennington  <hp@pobox.com>
14277
14278         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14279         reading/writing if read_watch != NULL or write_watch != NULL.
14280
14281         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14282         the message loader code to actually load message->header and
14283         message->body into the newly-created message.
14284
14285         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14286         in OOM case
14287
14288         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14289         (dbus_connection_get_max_message_size)
14290         (dbus_connection_set_max_live_messages_size)
14291         (dbus_connection_get_max_live_messages_size): implement some
14292         resource limitation functions
14293
14294         * dbus/dbus-resources.c: new file implementing some of the
14295         resource limits stuff
14296
14297         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14298         missing docs, add @todo to handle OOM etc.
14299
14300         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14301         docs
14302
14303 2003-01-18  Havoc Pennington  <hp@pobox.com>
14304
14305         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14306         connection if it hasn't been already.
14307
14308         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14309         replace with DisconnectFunction.
14310
14311 2003-01-18  Havoc Pennington  <hp@pobox.com>
14312
14313         Building --disable-verbose-mode --disable-asserts --disable-tests
14314         cuts the library from 112K to 45K or so
14315
14316         * configure.in: check for varargs macro support,
14317         add --enable-verbose-mode, --enable-asserts.
14318
14319         * dbus/dbus-internals.h (_dbus_assert): support
14320         DBUS_DISABLE_ASSERT
14321         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14322
14323 2003-01-18  Havoc Pennington  <hp@pobox.com>
14324
14325         * dbus/dbus-test.c: include config.h so that tests actually run
14326
14327         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14328         so the failure mode when that assumption fails will be plenty
14329         obvious.
14330
14331 2003-01-18  Havoc Pennington  <hp@pobox.com>
14332
14333         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14334
14335         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14336         the distribution
14337
14338         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14339         since we don't want to use those in make check
14340
14341 2003-01-15  Havoc Pennington  <hp@redhat.com>
14342
14343         Release 0.2
14344
14345         * NEWS: update
14346
14347 2003-01-15  Havoc Pennington  <hp@redhat.com>
14348
14349         * test/Makefile.am: fix so that test source code ends up in the
14350         distribution on make distcheck
14351
14352 2003-01-15  Havoc Pennington  <hp@redhat.com>
14353
14354         Release 0.1.
14355
14356         * NEWS: update
14357
14358 2003-01-15  Havoc Pennington  <hp@redhat.com>
14359
14360         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14361         fix build when --disable-tests
14362
14363         * Makefile.am (EXTRA_DIST): put HACKING in here
14364
14365         * HACKING: document procedure for making a tarball release.
14366
14367 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14368
14369         * bus/connection.c: (connection_error_handler),
14370         (bus_connection_setup):
14371         * bus/main.c: (main):
14372         Make sure that the DBusConnectionData struct is NULLed
14373         out to prevent a segfault.
14374
14375         * dbus/dbus-errors.c: (dbus_result_to_string):
14376         * dbus/dbus-errors.h:
14377         * dbus/dbus-message.c: (dbus_message_get_fields),
14378         (dbus_message_get_fields_valist), (_dbus_message_test):
14379         * dbus/dbus-message.h:
14380         Make dbus_message_get_fields return a result code so we can
14381         track invalid fields as well as oom.
14382
14383 2003-01-11  Havoc Pennington  <hp@pobox.com>
14384
14385         * configure.in: change --enable-test/--enable-ansi action-if-given
14386         to enable_foo=$enableval instead of enable_foo=yes
14387
14388 2003-01-08  Havoc Pennington  <hp@pobox.com>
14389
14390         * dbus/dbus-string.c (_dbus_string_align_length): new function
14391
14392         * dbus/dbus-test-main.c: move main() for test app here
14393         * dbus/dbus-test.c
14394         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14395         symbol to run tests, because dbus-test isn't in the main
14396         library
14397
14398         Code review nitpicks.
14399
14400         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14401         for people with narrow emacs ;-). Assert client_serial was filled
14402         in. Assert message->name != NULL.
14403         (dbus_message_append_fields): have "first_field_type" arg separate
14404         from va list, needed for C++ binding that also uses varargs IIRC
14405         and helps with type safety
14406         (dbus_message_new): add @todo about using DBusString to store
14407         service/name internally
14408         (dbus_message_new): don't leak ->service and ->name on OOM later
14409         in the function
14410         (dbus_message_unref): free the service name
14411         (dbus_message_get_fields): same change to varargs
14412         i.e. first_field_type
14413         (_dbus_message_loader_return_buffer): assert that the message data
14414         is aligned (if not it's a bug in our code). Put in verbose griping
14415         about why we set corrupted = TRUE.
14416         (decode_header_data): add FIXME that char* is evil.  Was going to
14417         add FIXME about evil locale-specific string.h strncmp, but just
14418         switched to wacky string-as-uint32 optimization. Move check for
14419         "no room for field name" above get_const_data_len() to avoid
14420         assertion failure in get_const_data_len if we have trailing 2
14421         bytes or the like. Check for service and name fields being
14422         provided twice. Don't leak service/name on error. Require field
14423         names to be aligned to 4 bytes.
14424
14425         * dbus/dbus-marshal.c: move byte swap stuff to header
14426         (_dbus_pack_int32): uscore-prefix
14427         (_dbus_unpack_int32): uscore-prefix
14428         (_dbus_unpack_uint32): export
14429         (_dbus_demarshal_string): add @todo complaining about use of
14430         memcpy()
14431         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14432         handling allowing corrupt data to go unchecked
14433
14434 2003-01-08  Havoc Pennington  <hp@redhat.com>
14435
14436         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14437         to the select() as needed for authentication. (should be using
14438         _dbus_poll() not select, but for another day)
14439
14440         * dbus/dbus.h: include dbus/dbus-protocol.h
14441
14442 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14443
14444         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14445         dbus-connection.h
14446
14447 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14448
14449         * dbus/dbus-internals.c: (_dbus_type_to_string):
14450         New function that returns a string describing a type.
14451
14452         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14453         * dbus/dbus-marshal.h:
14454         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14455         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14456         (dbus_message_iter_get_byte_array):
14457         * dbus/dbus-message.h:
14458         Add new convenience functions for appending and getting message fields.
14459         Also add demarshalling routines for byte arrays.
14460
14461 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14462
14463         * dbus/dbus-connection-internal.h:
14464         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14465         (_dbus_connection_get_next_client_serial),
14466         (dbus_connection_send_message):
14467         * dbus/dbus-internals.h:
14468         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14469         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14470         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14471         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14472         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14473         (_dbus_verbose_bytes), (_dbus_marshal_test):
14474         * dbus/dbus-marshal.h:
14475         * dbus/dbus-message-internal.h:
14476         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14477         (dbus_message_write_header), (_dbus_message_lock),
14478         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14479         (dbus_message_get_name), (dbus_message_append_int32),
14480         (dbus_message_append_uint32), (dbus_message_append_double),
14481         (dbus_message_append_string), (dbus_message_append_byte_array),
14482         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14483         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14484         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14485         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14486         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14487         (decode_header_data), (_dbus_message_loader_return_buffer),
14488         (message_iter_test), (_dbus_message_test):
14489         * dbus/dbus-message.h:
14490         * dbus/dbus-protocol.h:
14491         * dbus/dbus-test.c: (main):
14492         * dbus/dbus-test.h:
14493         * glib/test-dbus-glib.c: (message_handler), (main):
14494         * test/echo-client.c: (main):
14495         * test/watch.c: (check_messages):
14496         Make messages sendable and receivable for real.
14497
14498 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14499
14500         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14501         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14502         * dbus/dbus-message.c: (dbus_message_append_int32),
14503         (dbus_message_append_uint32), (dbus_message_append_double),
14504         (dbus_message_append_string), (dbus_message_append_byte_array):
14505         Handle OOM restoration.
14506
14507 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14508
14509         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14510         (_dbus_demarshal_string), (_dbus_marshal_test):
14511         * dbus/dbus-marshal.h:
14512         * dbus/dbus-message.c: (dbus_message_get_name),
14513         Document these functions.
14514
14515         (dbus_message_append_int32), (dbus_message_append_uint32),
14516         (dbus_message_append_double), (dbus_message_append_string),
14517         (dbus_message_append_byte_array):
14518         * dbus/dbus-message.h:
14519         Add functions for adding message fields of different types.
14520
14521         * dbus/dbus-protocol.h:
14522         Add the different types.
14523
14524 2003-01-05  Havoc Pennington  <hp@pobox.com>
14525
14526         * bus/connection.c: implement routines for handling connections,
14527         first thing is keeping a list of owned services on each connection
14528         and setting up watches etc.
14529
14530         * bus/services.c: implement a mapping from service names to lists
14531         of connections
14532
14533         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14534
14535         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14536         to use static mutexes for global data
14537
14538         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14539         collection of functions to set/get application-specific data
14540         on the DBusConnection.
14541
14542 2003-01-04  Havoc Pennington  <hp@pobox.com>
14543
14544         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14545         (_dbus_poll): new function
14546
14547         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14548         copied from GLib
14549
14550         * bus/loop.c: initial code for the daemon main loop
14551
14552 2003-01-04  Havoc Pennington  <hp@pobox.com>
14553
14554         * test/watch.c (error_handler): make it safe if the error handler
14555         is called multiple times (if we s/error handler/disconnect
14556         handler/ we should just guarantee it's called only once)
14557
14558         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14559         error handler on disconnect (it's quite possible we should
14560         just change the error handler to a "disconnect handler," I'm
14561         not sure we have any other meaningful errors)
14562
14563         * configure.in: check for getpwnam_r
14564
14565         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14566         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14567         mechanism as in SASL spec, using socket credentials
14568
14569         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14570         (_dbus_send_credentials_unix_socket): new function
14571
14572         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14573         dbus_accept()
14574         (_dbus_write): only check errno if <0 returned
14575         (_dbus_write_two): ditto
14576
14577 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14578
14579         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14580         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14581         (_dbus_marshal_test):
14582         * dbus/dbus-marshal.h:
14583         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14584         to _dbus_marshal_utf8_string. Also fix some tests.
14585
14586 2002-12-28  Harri Porten  <porten@kde.org>
14587
14588         * configure.in: added check for C++ compiler and a very cheesy
14589         check for the Qt integration
14590
14591         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14592
14593         * qt/Makefile.am: added
14594
14595         * qt/.cvsignore: added
14596
14597         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14598         latter, added #ifdef QT_THREAD_SUPPORT guard.
14599
14600         * dbus/Makefile.am: added missing headers for make dist
14601
14602 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14603
14604         * dbus/Makefile.am: fixup export-symbols-regex.
14605
14606 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14607
14608         * acinclude.m4: Add this file and put the
14609         PKG_CHECK_MODULE macro in it.
14610
14611 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14612
14613         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14614         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14615         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14616         (_dbus_marshal_test):
14617         Make the demarshalling routines align the pos argument.
14618         Add string marshalling tests and fix the obvious bugs
14619         discovered.
14620
14621 2002-12-26  Havoc Pennington  <hp@pobox.com>
14622
14623         * dbus/dbus-auth.c: fixes fixes fixes
14624
14625         * dbus/dbus-transport-unix.c: wire up support for
14626         encoding/decoding data on the wire
14627
14628         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14629         (_dbus_auth_decode_data): append to target string
14630         instead of nuking it.
14631
14632 2002-12-26  Havoc Pennington  <hp@pobox.com>
14633
14634         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14635         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14636         doh
14637
14638         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14639         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14640         now). Main point is because I wanted unpack_uint32 to implement
14641         _dbus_verbose_bytes
14642         (_dbus_verbose_bytes): new function
14643
14644         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14645
14646         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14647         mechanism to handle a corrupt message stream
14648         (_dbus_message_loader_new): fix preallocation to only prealloc,
14649         not prelengthen
14650
14651         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14652         (_dbus_string_test): enhance tests for copy/move and fix the
14653         functions
14654
14655         * dbus/dbus-transport-unix.c: Hold references in more places to
14656         avoid reentrancy problems
14657
14658         * dbus/dbus-transport.c: ditto
14659
14660         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14661         leak reference count in no-message case
14662
14663         * test/watch.c (do_mainloop): handle adding/removing watches
14664         during iteration over the watches. Also, ref the connection/server
14665         stored on a watch, so we don't try to mangle a destroyed one.
14666
14667         * dbus/dbus-transport-unix.c (do_authentication): perform
14668         authentication
14669
14670         * dbus/dbus-auth.c (get_state): add a state
14671         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14672         (_dbus_auth_get_unused_bytes): append the unused bytes
14673         to the passed in string, rather than prepend
14674
14675         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14676         the auth conversation DBusAuth
14677
14678         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14679         (_dbus_transport_new_for_domain_socket): when creating a
14680         transport, pass in whether it's a client-side or server-side
14681         transport so we know which DBusAuth to create
14682
14683 2002-12-03  Havoc Pennington  <hp@pobox.com>
14684
14685         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14686         _after_ finalizing the derived members
14687         (unix_connection_set): unref watch if we fail to add it
14688
14689         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14690         transport first, so that the connection owned by the
14691         transport will be valid as the transport finalizes.
14692
14693         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14694         if necessary, and remove watches from the connection.
14695
14696         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14697
14698 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14699
14700         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14701         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14702         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14703         (_dbus_marshal_test):
14704         * dbus/dbus-marshal.h:
14705         Add string marshal functions and have the demarshal functions
14706         return the new position.
14707
14708 2002-12-25  Havoc Pennington  <hp@pobox.com>
14709
14710         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14711         it is a simple protocol that just maps directly to SASL.
14712
14713         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14714         initial implementation, not actually used yet.
14715
14716         * dbus/dbus-string.c (_dbus_string_find): new function
14717         (_dbus_string_equal): new function
14718         (_dbus_string_base64_encode): new function
14719         (_dbus_string_base64_decode): new function
14720
14721 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14722
14723         * dbus/Makefile.am:
14724         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14725         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14726         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14727         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14728         * dbus/dbus-marshal.h:
14729         * dbus/dbus-protocol.h:
14730         * dbus/dbus-test.c: (main):
14731         * dbus/dbus-test.h:
14732         Add un-optimized marshalling/demarshalling routines.
14733
14734 2002-12-25  Harri Porten  <porten@kde.org>
14735
14736         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14737
14738 2002-12-24  Zack Rusin  <zack@kde.org>
14739
14740         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14741         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14742         main loop stuff
14743
14744 2002-12-24  Havoc Pennington  <hp@pobox.com>
14745
14746         * glib/dbus-gthread.c: fix include
14747
14748         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14749         I think glib API needs to change, though, as you don't
14750         want to use DBusMessageFunction, you want to use the
14751         DBusMessageHandler object. Probably
14752         dbus_connection_open_with_g_main_loop()
14753         and dbus_connection_setup_g_main_loop() or something like that
14754         (but think of better names...) that just create a connection
14755         that has watch/timeout functions etc. already set up.
14756
14757         * dbus/dbus-connection.c
14758         (dbus_connection_send_message_with_reply): new function just to
14759         show how the message handler helps us deal with replies.
14760
14761         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14762
14763         * dbus/dbus-string.c (_dbus_string_test): free a string that
14764         wasn't
14765
14766         * dbus/dbus-hash.c: use memory pools for the hash entries
14767         (rebuild_table): be more paranoid about overflow, and
14768         shrink table when we can
14769         (_dbus_hash_test): reduce number of sprintfs and write
14770         valid C89. Add tests for case where we grow and then
14771         shrink the hash table.
14772
14773         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14774
14775         * dbus/dbus-connection.c (dbus_connection_register_handler)
14776         (dbus_connection_unregister_handler): new functions
14777
14778         * dbus/dbus-message.c (dbus_message_get_name): new
14779
14780         * dbus/dbus-list.c: fix docs typo
14781
14782         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14783         an object representing a handler for messages.
14784
14785 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14786
14787         * glib/dbus-glib.h:
14788         * glib/dbus-gthread.c: (dbus_gthread_init):
14789         Don't use the gdbus prefix for public functions.
14790
14791 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14792
14793         * Makefile.am:
14794         * configure.in:
14795         Add GLib checks and fixup .pc files
14796
14797         * glib/Makefile.am:
14798         * glib/dbus-glib.h:
14799         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14800         (gdbus_connection_check), (gdbus_connection_dispatch),
14801         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14802         (dbus_connection_gsource_new):
14803         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14804         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14805         * glib/test-dbus-glib.c: (message_handler), (main):
14806         Add GLib support.
14807
14808 2002-12-15  Harri Porten  <porten@kde.org>
14809
14810         * autogen.sh: check for libtoolize before attempting to use it
14811
14812         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14813         struct.
14814
14815         * .cvsignore: ignore more stamp files
14816
14817         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14818
14819         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14820         without make install.
14821
14822 2002-12-15  Havoc Pennington  <hp@pobox.com>
14823
14824         * dbus/dbus-threads.c: add thread stubs that a higher library
14825         layer can fill in. e.g. the GLib wrapper might fill them in with
14826         GThread stuff. We still need to use this thread API to
14827         thread-safe-ize the library.
14828
14829 2002-12-12  Havoc Pennington  <hp@pobox.com>
14830
14831         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14832         below new interfaces and include fewer system headers.
14833
14834         * dbus/dbus-sysdeps.c (_dbus_read): new function
14835         (_dbus_write): new function
14836         (_dbus_write_two): new function
14837         (_dbus_connect_unix_socket): new function
14838         (_dbus_listen_unix_socket): new function
14839
14840         * dbus/dbus-message-internal.h: change interfaces to use
14841         DBusString
14842
14843 2002-12-11  Havoc Pennington  <hp@pobox.com>
14844
14845         * dbus/dbus-types.h: add dbus_unichar
14846
14847         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14848
14849         * dbus/dbus-connection.c (dbus_connection_send_message): return
14850         TRUE on success
14851
14852         * dbus/dbus-transport.c: include dbus-watch.h
14853
14854         * dbus/dbus-connection.c: include dbus-message-internal.h
14855
14856         * HACKING: add file with coding guidelines stuff.
14857
14858         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14859         handling here, for security purposes (as in vsftpd). Not actually
14860         using this class yet.
14861
14862         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14863         system/libc usage here, as in vsftpd, for ease of auditing (and
14864         should also simplify portability). Haven't actually moved all the
14865         system/libc usage into here yet.
14866
14867 2002-11-25  Havoc Pennington  <hp@pobox.com>
14868
14869         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14870         always print the first verbose message.
14871
14872 2002-11-24  Havoc Pennington  <hp@pobox.com>
14873
14874         * test/echo-client.c, test/echo-server.c: cheesy test
14875         clients.
14876
14877         * configure.in (AC_CHECK_FUNCS): check for writev
14878
14879         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14880         function
14881
14882         * dbus/dbus-list.c (_dbus_list_foreach): new function
14883
14884         * dbus/dbus-internals.c (_dbus_verbose): new function
14885
14886         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14887         representing a server that listens for connections.
14888
14889         * dbus/.cvsignore: create
14890
14891         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14892         public API for reporting errors
14893
14894         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14895         public object representing a connection that
14896         sends/receives messages. (Same object used for
14897         both client and server.)
14898
14899         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14900         Basic abstraction for different kinds of stream
14901         that we might read/write messages from.
14902
14903 2002-11-23  Havoc Pennington  <hp@pobox.com>
14904
14905         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14906         _DBUS_INT_MAX
14907
14908         * dbus/dbus-test.c (main): add list test, and include
14909         dbus-test.h as intended
14910
14911         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14912         (_dbus_hash_table_remove_int): return value indicates
14913         whether the entry existed to remove
14914
14915         * dbus/dbus-list.c: add linked list utility class,
14916         with docs and tests
14917
14918         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14919         array sometimes.
14920
14921 2002-11-23  Havoc Pennington  <hp@pobox.com>
14922
14923         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14924         DBUS_END_DECLS to nothing, that should fix this once and for all
14925
14926         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14927
14928         * dbus/dbus-message.c, dbus/dbus-hash.c:
14929         add some missing @brief
14930
14931 2002-11-23  Havoc Pennington  <hp@pobox.com>
14932
14933         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14934         to avoid confusing Doxygen
14935
14936         * dbus/dbus-hash.c: @} not }@
14937
14938         * dbus/dbus-message.c (struct DBusMessage): split out
14939         internals docs
14940
14941 2002-11-23  Havoc Pennington  <hp@pobox.com>
14942
14943         * configure.in: pile on more warning flags if using gcc
14944
14945         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14946         to document static functions
14947
14948         * configure.in: add summary to end of configure so it
14949         looks nice and attractive
14950
14951         * dbus/dbus-hash.c: finish implementation and write unit
14952         tests and docs
14953
14954         * configure.in: add --enable-tests to enable unit tests
14955
14956         * dbus/dbus-test.c: test program to run unit tests
14957         for all files in dbus/*, initially runs a test for
14958         dbus-hash.c
14959
14960         * dbus/dbus-internals.h: file to hold some internal utility stuff
14961
14962 2002-11-22  Havoc Pennington  <hp@redhat.com>
14963
14964         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14965         "ported" away from Tcl
14966
14967         * dbus/dbus-types.h: header for types such as dbus_bool_t
14968
14969 2002-11-22  Havoc Pennington  <hp@redhat.com>
14970
14971         * dbus/dbus.h: fixups for doc warnings
14972
14973         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14974         macros
14975         (QUIET): make it quiet so we can see warnings
14976
14977         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14978
14979 2002-11-22  Havoc Pennington  <hp@redhat.com>
14980
14981         * Makefile.am: include "Doxyfile" target in all-local
14982
14983         * configure.in: generate the Doxyfile
14984
14985         * Doxyfile.in: move Doxyfile here, so we can use
14986         configure to generate a Doxyfile with the right
14987         version number etc.
14988
14989 2002-11-22  Havoc Pennington  <hp@redhat.com>
14990
14991         * dbus/dbus-message.c: move inline docs into .c file
14992
14993         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14994         so all docs are under doc/
14995         (MAN_EXTENSION): generate man pages. Use extension
14996         ".3dbus" which matches ".3qt" on my system,
14997         I guess this is OK, I don't know really.
14998         (FILE_PATTERNS): look for .c files not .h, makes sense
14999         for plain C I think
15000
15001 2002-11-22  Havoc Pennington  <hp@pobox.com>
15002
15003         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15004         because any app can be a server, and any app can be a client,
15005         the bus is a special kind of server.
15006
15007 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15008
15009         * Doxyfile : adding. Still needs Makefile rules to be generated
15010         automatically (just run "doxygen" in the toplevel dir for now to
15011         generate docs)
15012
15013         * dbus/dbus-message.h : Adding sample docs (javadoc since
15014         resembles gtk-doc a little more)
15015
15016         * dbus/dbus.h : Adding sample docs
15017
15018 2002-11-21  Havoc Pennington  <hp@redhat.com>
15019
15020         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15021         so we can allow ourselves to include files directly,
15022         instead of having to use dbus.h
15023
15024         * dbus/dbus.h: fill in
15025
15026         * dbus/dbus-message.h: sketch out a sample header file.
15027         Include griping if you include it directly instead of
15028         via dbus.h
15029
15030         * dbus/dbus-macros.h: new file with macros for extern "C",
15031         TRUE/FALSE, NULL, etc.
15032
15033         * doc/file-boilerplate.c: put include guards in here
15034
15035 2002-11-21  Havoc Pennington  <hp@redhat.com>
15036
15037         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15038
15039         * COPYING: include the GPL as well, and license code
15040         under both AFL and GPL.
15041
15042 2002-11-21  Havoc Pennington  <hp@redhat.com>
15043
15044         * acconfig.h: get rid of this
15045
15046         * autogen.sh (run_configure): add --no-configure option
15047
15048         * configure.in: remove AC_ARG_PROGRAM to make
15049         autoconf complain less. add AC_PREREQ.
15050         add AC_DEFINE third arg.
15051
15052 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15053
15054         * doc/Makefile.am:
15055         Fix references so we can distcheck.
15056
15057 2002-11-21  Havoc Pennington  <hp@redhat.com>
15058
15059         * Initial module creation
15060