2006-11-01 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-01  Havoc Pennington  <hp@redhat.com>
2
3         * bus/dbus-daemon.1.in: document standard_session_servicedirs
4
5 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
6
7         * configure.in: expose DBUS_DATADIR
8         
9         * bus/config-parser.c: add the standard_session_servicedirs element
10         to the parser
11         (bus_config_parser_content): process the standard_session_servicedirs
12         element by getting the standard directories from sysdeps and merging
13         them into the service directory list
14         (test_default_session_servicedirs): make sure we get what we expect
15
16         * bus/session.conf.in: replace the servicedir tag with the 
17         standard_session_servicedirs tag
18
19         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
20         dbus-sysdeps.h to avoid circular header dependencies
21
22         * dbus/dbus-sysdeps.h: add the typedef of DBusList
23
24         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
25         which takes a string of directories delimited by colons, parses them 
26         out, appends a suffix and puts them in a list ignoring empty elements
27         (_dbus_get_standard_session_servicedirs): returns the standard 
28         directories for a session bus to look for service activation files
29         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
30         DBUS_DATADIR directories
31
32         * test/data/valid-config-files/many-rules.conf: add the 
33         standard_session_servicedirs tag to the valid config file tests
34
35 2006-10-30  Havoc Pennington  <hp@redhat.com>
36
37         * tools/dbus-launch.1, doc/TODO: capture intent to change the
38         command line options of dbus-launch a bit post 1.0
39
40 2006-10-27  Havoc Pennington  <hp@redhat.com>
41         
42         * dbus/dbus-connection.c (dbus_connection_open_private): document
43         how to choose shared vs. private connections
44
45 2006-10-27  Havoc Pennington  <hp@redhat.com>
46
47         * dbus/dbus-test.c: enclose more of the file in the
48         DBUS_BUILD_TESTS check.
49
50         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
51         DBUS_DISABLE_ASSERT case.
52
53         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
54         that it only works on the server side
55
56         * dbus/dbus-bus.c: add a global lock covering the BusData we
57         attach to each connection
58         (internal_bus_get): lock our access to the BusData
59         (dbus_bus_register): lock the entire registration process
60         with _DBUS_LOCK(bus_datas). If we get the lock and 
61         registration is already complete, silently return (vs. previous
62         behavior of aborting).
63         (dbus_bus_set_unique_name): lock the BusData
64         (dbus_bus_get_unique_name): lock the BusData
65
66 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
67
68         * bus/config-parser.c (service_dirs_find_dir, 
69         service_dirs_append_unique_or_free, 
70         service_dirs_append_link_unique_or_free): New static methods
71         for only appending unique service directory names into
72         the service directory list
73         (merge_included, bus_config_parser_content): Only add unique
74         service directory names into the list
75
76 2006-10-27  Havoc Pennington  <hp@redhat.com>
77
78         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
79         variables volatile, suggested by Thiago. Document struct fields.
80         (PTHREAD_CHECK): remove pthread error checking if assertions are
81         disabled, should reduce the no-assertions case to the bare
82         minimum code.
83
84 2006-10-26  Havoc Pennington  <hp@redhat.com>
85         
86         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
87         to be recursive
88         (_dbus_pthread_mutex_unlock): make it recursive
89         (_dbus_pthread_condvar_wait): save/restore the recursion count
90         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
91
92 2006-10-26  Havoc Pennington  <hp@redhat.com>
93
94         * doc/dbus-specification.xml: clarify the UUID text slightly
95
96         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
97         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
98         in preparation for being able to extend them for e.g. recursive
99         mutexes.
100
101 2006-10-26  Havoc Pennington  <hp@redhat.com>
102
103         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
104         condition variables relate to recursive mutexes.
105         
106         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
107         dbus/dbus-threads.c: Split the platforms-specific thread 
108         implementations into their own files.
109         
110         * dbus/dbus-sysdeps-pthread.c
111         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
112         was backward. Not that anything uses it.
113
114 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
115
116         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
117         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
118         needs to be cleaned up more.
119
120         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
121         up the CREDS issue.
122
123 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
124
125         * configure.in, dbus-1.pc.in: Check to see if thread methods 
126         are in glibc or libpthread and add -lpthread to the link stage 
127         if it is the latter
128
129 2006-10-26  Thiago Macieira  <thiago@kde.org>
130
131         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
132         bug 8780: the connection lock is only required while recording
133         the shared connection, so protect only that code
134         section. Don't require connection_lookup_shared to return a
135         locked connection.
136
137 2006-10-26  Thiago Macieira  <thiago@kde.org>
138
139         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
140         check if get_machine_uuid() returns NULL before proceeding any
141         further: we can't init the X atoms or create a session file
142         name if there is no machine ID.
143         This solves a crash reported by some users if
144         --exit-with-session was used without --autolaunch=<machine-id>
145
146 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
147
148         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
149         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
150
151         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
152         before we run dbus-launch
153
154         * configure.in: define TEST_BUS_BINARY to be the full path to 
155         dbus-daemon in the build root 
156
157 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
158
159         * dbus/Makefile.am:
160         * tools/Makefile.am:
161         * toos/dbus-uuidgen.1:
162                 Move the machine-id file to /var/lib/dbus 
163
164 2006-10-24  David Zeuthen  <davidz@redhat.com>
165
166         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
167         _dbus_assert (thread_init_generation != _dbus_current_generation)
168         not _dbus_assert (thread_init_generation == _dbus_current_generation)
169
170 2006-10-24  Thiago Macieira  <thiago@kde.org>
171
172         * dbus/dbus-sysdeps.h:
173         * dbus/dbus-sysdeps-unix.c: Add function
174         _dbus_make_file_world_readable that chmods a file to 0644.
175
176         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
177         Avoid writing to the static "argv" array, thereby avoiding a
178         COW on the child process.
179
180         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
181         call _dbus_make_file_world_readable on the created file.
182
183 2006-10-23  David Zeuthen  <davidz@redhat.com>
184
185         * dbus/dbus-memory.c: Use atomic variable to protect
186         n_blocks_outstanding otherwise OOM will be reported using SMP on
187         some arches
188         
189         * bus/dispatch.c: Add missing end of line characters
190
191         * bus/desktop-file.c (parse_section_start, parse_key_value) 
192         (bus_desktop_file_load): Propertly handle OOM
193
194         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
195         thread_init_generation equals _dbus_current_generation, not 0
196
197 2006-10-22  Havoc Pennington  <hp@redhat.com>
198
199         * dbus/dbus-connection-internal.h: move prototype of
200         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
201         it isn't in a public header and doesn't end up in the DBusBus
202         group in Doxygen
203
204 2006-10-21  Havoc Pennington  <hp@redhat.com>
205
206         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
207         the tarball if packagers want to run it
208
209         * cleanup-man-pages.sh: Add a script which munges all the internal
210         API man pages out of the Doxygen output. This reduces the size of
211         the installed man pages from 7 to 2 megs, and avoids
212         namespace-polluting pages. Right now (like Doxygen) this script
213         isn't in the build, it's something packagers can do manually.
214
215 2006-10-21  Havoc Pennington  <hp@redhat.com>
216
217         * dbus/dbus-connection.h: don't include the watch/timeout
218         functions in connection section
219
220 2006-10-21  Havoc Pennington  <hp@redhat.com>
221
222         * Documentation! Whee! Doxygen now 100% silent. If you make it
223         angry again, you will be punished.
224         
225 2006-10-21  Havoc Pennington  <hp@redhat.com>
226
227         * More documentation - all public API now documented according to
228         Doxygen
229
230 2006-10-21  Havoc Pennington  <hp@redhat.com>
231
232         * Document a bunch of undocumented stuff
233         
234 2006-10-21  Havoc Pennington  <hp@redhat.com>
235
236         * Clean up Doxygen group markers for public API so Doxygen finds
237         everything (not comprehensively fixed for private API).
238         Means all remaining Doxygen warnings are just about missing docs
239         and thus pretty simple to resolve.
240         
241 2006-10-21  Havoc Pennington  <hp@redhat.com>
242         
243         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
244
245         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
246         as DBUS_GNUC_DEPRECATED
247
248 2006-10-21  Havoc Pennington  <hp@redhat.com>
249
250         * Move all private API into the private Doxygen group sections of
251         the files, so they don't show up in the public API docs
252         
253 2006-10-21  Havoc Pennington  <hp@redhat.com>
254
255         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
256         dbus_message_iter_get_array_len().
257
258         * throughout: documentation improvements.
259
260 2006-10-20  Havoc Pennington  <hp@redhat.com>
261
262         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
263         matter, and the message-loader-breaker thing since nobody is going
264         to do it.  Add an item to 1.0 about supporting recursive locks
265         in dbus_threads_init_default() though, since it should be easy.
266
267         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
268         Fix this in the !dispatch case to avoid busy-looping after
269         disconnection
270
271         * More misc docs improvements
272
273 2006-10-19  Havoc Pennington  <hp@redhat.com>
274
275         * more Doxygen-related fixes (lots of moving things from the
276         public to internal section in dbus-connection.c)
277
278 2006-10-19  Havoc Pennington  <hp@redhat.com>
279
280         * Fix a pile of Doxygen warnings and missing docs
281
282 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
283
284         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
285         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
286         instead of a void *.  kqueue uses this to get the context's loop
287         while the other modules ignore the parameter.  This allows us to
288         avoid platform conditionals
289
290         * bus/bus.c (process_config_postinit): Pass in the context to the 
291         watch
292
293 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
294
295         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
296         when starting the system bus
297
298 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
299
300         * configure.in: More fixups for cross compile (Patch from 
301         Marco Pracucci <development at pracucci dot com>)
302
303 2006-10-17  Havoc Pennington  <hp@redhat.com>
304
305         * tools/dbus-send.c (main): don't close shared connection, fix
306         from Timo Hoenig
307
308 2006-10-17  Havoc Pennington  <hp@redhat.com>
309
310         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
311
312         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
313         since realistically it doesn't look like we'll be changing it
314         anymore.
315
316 2006-10-17  Havoc Pennington  <hp@redhat.com>
317
318         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
319         be used for return_if_fail type warnings; prefixes the pid, and
320         fatal by default.
321
322 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
323
324         * configure.in: Released 1.0 RC 2(0.94)
325         Add check for -fPIC and enable it if available
326
327 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
328
329         * doc/TODO: Remove the check TODO item
330
331 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
332
333         * dbus-transport-socket.c (exchange_credentials):
334         Print out more detailed errors if reading or sending
335         credentials fail (Patch from Julio M. Merino Vidal 
336         <jmmv at NetBSD dot org>)
337
338 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
339
340         * configure.in: when checking for posix getpwnam_r assume true
341         for cross compiles
342
343 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
344
345         * configure.in: Check for gethostbyname first before we check for it
346         in libnsl.  On gnu systems it is implemeneted 
347
348 2006-10-13  Havoc Pennington  <hp@redhat.com>
349
350         * dbus/dbus-connection.c
351         (dbus_connection_send_with_reply_and_block): fix to handle closed
352         connections, from Tambet Ingo bug #8631
353
354 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
355
356         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
357
358 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
359
360         * test/name-test/Makefile.am: don't link against both libdbus and
361         libdbus-convenience
362
363 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
364
365         * configure.in: check for dirfd even if it is a macro
366         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
367
368 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
369
370         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
371         avoid using dirfd on systems that don't have dirfd 
372         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
373
374 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
375
376         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
377         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
378
379         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
380         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
381         macro because _dbus_abort calls it
382
383         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
384         works
385
386 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
387
388         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
389         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
390
391 2006-10-02  Thiago Macieira  <thiago@kde.org>
392
393         * tools/dbus-launch.c (main): make it complain and abort
394         execution in case an unknown option is given. Also, process
395         the '--' argument as the end of arguments.
396
397 2006-10-01  Havoc Pennington  <hp@redhat.com>
398
399         * tools/dbus-launch.c (print_variables): if no syntax is given,
400         don't print something that's sort-of-half-sh-syntax, just print
401         a plain key-value pairs thing.
402
403         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
404         the local machine representation (but still have the hostname in
405         the display). Remove the hostname from the display if it is
406         localhost. Change session files to be named
407         ~/.dbus/session-bus/machine-display. Change X atoms to be
408         underscore-prefixed so nobody whines about ICCCM compliance.
409         Otherwise name them the same as the env variables.
410         Change session file format to include key-value pairs and an
411         explanatory comment. Keys are the same as the env variables.
412         (set_address_in_x11): X property format can't depend on
413         sizeof(pid_t) on a particular machine, fix to always be 32 bits
414
415         * tools/dbus-launch.c: make --autolaunch take a machine id
416         argument. If --autolaunch is used with a program to run, complain
417         for now (but add a FIXME). Also, don't look for existing bus if 
418         there's a program to run (but add a FIXME).
419
420         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
421         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
422         just to get this, and avoids duplicating uuid-reading code).
423
424         * tools/dbus-launch.1: clarify various things
425         
426 2006-10-01  Havoc Pennington  <hp@redhat.com>
427
428         * test/test-service.c (path_message_func): remove broken extra
429         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
430
431         * test/test-shell-service.c (path_message_func): same fix
432         
433         * dbus/dbus-connection.c
434         (_dbus_connection_get_dispatch_status_unlocked): break up the
435         function a little for clarity and fix the notification of
436         dbus-bus.c to not require dispatch to be complete
437
438         * dbus/dbus-connection.c (dbus_connection_unref): improve the
439         warning when you try to finalize an open connection.
440         
441 2006-10-01  Havoc Pennington  <hp@redhat.com>
442
443         * dbus/dbus-bus.c
444         (internal_bus_get): only weak ref the connection; this means 
445         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
446         called safely in any context
447         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
448         unref
449
450         * dbus/dbus-connection.c
451         (_dbus_connection_get_dispatch_status_unlocked): move
452         _dbus_bus_notify_shared_connection_disconnected_unlocked here
453         when queuing Disconnected instead of when the Disconnected message
454         arrives, so dbus_bus_get() won't return closed connections.
455         
456 2006-10-01  Havoc Pennington  <hp@redhat.com>
457
458         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
459         Add a hack to make DBusNewConnectionFunction work right.
460
461         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
462         the hack here. Also, fix the todo about refcount leak.
463         
464         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
465         and use the hack here
466         
467         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
468         "shareable" flag; this was completely broken, since it meant 
469         dbus_connection_open() returned a connection of unknown
470         shared-ness. Now, we always hold a ref on anything opened 
471         as shareable.
472
473         Move the call to notify dbus-bus.c into
474         connection_forget_shared_unlocked, so libdbus consistently forgets
475         all its knowledge of a connection at once. This exposed numerous
476         places where things were totally broken if we dropped a ref inside
477         get_dispatch_status_unlocked where
478         connection_forget_shared_unlocked was previously, so move
479         connection_forget_shared_unlocked into
480         _dbus_connection_update_dispatch_status_and_unlock. Also move the
481         exit_on_disconnect here.
482
483         (shared_connections_shutdown): this assumed weak refs to the
484         shared connections; since we have strong refs now, the assertion 
485         was failing and stuff was left in the hash. Fix it to close
486         still-open shared connections.
487         
488         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
489         debug pipe connections
490         
491         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
492         dbus-bus.c if the closed connection is in fact shared
493         (_dbus_connection_close_possibly_shared): rename from 
494         _dbus_connection_close_internal
495         (dbus_connection_close, dbus_connection_open,
496         dbus_connection_open_private): Improve docs to explain the deal
497         with when you should close or unref or both
498
499         * dbus/dbus-bus.c
500         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
501         from _dbus_bus_check_connection_and_unref_unlocked and modify to
502         loop over all connections
503
504         * test/test-utils.c (test_connection_shutdown): don't try to close
505         shared connections.
506
507         * test/name-test/test-threads-init.c (main): fix warnings in here
508
509         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
510         env variable to cause blocking waiting for gdb; drop
511         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
512         unconditionally.
513
514         * configure.in: add -export-dynamic to libtool flags if assertions enabled
515         so _dbus_print_backtrace works.
516
517         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
518         instead of _dbus_verbose to print the backtrace, and diagnose lack 
519         of -rdynamic/-export-dynamic
520         
521 2006-09-30  Havoc Pennington  <hp@redhat.com>
522
523         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
524         (internal_bus_get): fix screwy code formatting. whoever committed
525         that was not paying attention!
526
527 2006-09-30  Havoc Pennington  <hp@redhat.com>
528
529         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
530         reflect addition of interfaces.
531
532         * doc/dbus-specification.xml: describe a new
533         org.freedesktop.DBus.Peer.GetMachineId method
534
535         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
536         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
537         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
538         at end of skip_white
539         (_dbus_string_chop_white): new function
540
541         * bus/connection.c (bus_connections_setup_connection): call
542         dbus_connection_set_route_peer_messages.
543
544         * dbus/dbus-connection.c
545         (_dbus_connection_peer_filter_unlocked_no_update): modify to
546         support a GetMachineId method.
547
548         Also, support a new flag to let the bus pass peer methods through
549         to apps on the bus, which can be set with
550         dbus_connection_set_route_peer_messages.
551
552         Finally, handle and return an error for anything unknown on the
553         Peer interface, which will allow us to extend the Peer interface
554         in the future without fear that we're now intercepting something
555         apps were wanting to see.
556         
557         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
558         dbus/dbus-uuidgen.c
559
560         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
561         binary here, since most of the code is already in libdbus
562
563         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
564         uuid from the system config file
565
566         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
567         (_dbus_read_uuid_file_without_creating) 
568         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
569         uuid-related functions, partly factored out from dbus-server.c
570
571         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
572         DBUS_ERROR_FILE_EXISTS instead of EEXIST
573
574         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
575
576         * tools/dbus-cleanup-sockets.1: explain what the point of this
577         thing is a bit more
578
579         * autogen.sh (run_configure): add --config-cache to default
580         configure args
581
582         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
583         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
584
585         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
586         don't try to save address, fixes crash in make check
587         
588 2006-09-30  Thiago Macieira  <thiago@kde.org>
589
590         * configure.in: add DBUS_BINDIR as a #define to C source code.
591
592         * tools/dbus-launch.c
593         * tools/dbus-launch.h
594         * tools/dbus-launch-x11.c:
595         * tools/dbus-launch.1: Add the --autolaunch option to
596         dbus-launch, which makes it scan for an existing session
597         started with --autolaunch. With that option, it also creates
598         an X11 window and saves the bus address and PID to it.
599
600         * dbus/dbus-sysdeps.h:
601         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
602         a function that runs "dbus-launch --autolaunch" to retrieve
603         the running D-Bus session address (or start one if none was running)
604
605         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
606         address protocol, which tries to get the running session from
607         dbus-launch.
608
609         * dbus/dbus-bus.c:
610         * dbus/dbus-internals.h: Make "autolaunch:" be the default
611         D-Bus session bus address.
612
613         * dbus/dbus-connection.c: Fix horrible typo in error message.
614
615 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
616
617         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
618
619 2006-09-17  Havoc Pennington  <hp@redhat.com>
620
621         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
622         fix so that if unix_user_function is set on windows, we still
623         do the default check that the auth identity matches the bus identity
624
625 2006-09-16  Havoc Pennington  <hp@redhat.com>
626
627         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
628         to _dbus_transport_open_platform_specific,
629         _dbus_transport_open_socket,
630         and _dbus_transport_open_debug_pipe
631
632         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
633
634 2006-09-16  Havoc Pennington  <hp@redhat.com>
635
636         Attempt auditing public API to remove all cases where a Unix
637         function returns weird emulated goo to Windows. This probably 
638         breaks the bus daemon on Windows, to fix it again we may 
639         need to stop processing unix-specific config options on Windows,
640         and may need to add Windows-specific public API or config options.
641         
642         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
643         to reflect added interfaces; should not break soname.
644         
645         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
646         not invoke unix user function on Windows. Kind of a hacky fix, but 
647         we don't want a "unix uid" leaking out on Windows.
648
649         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
650         to get the socket fd on Windows or UNIX
651         (dbus_connection_get_unix_fd): make this always fail on Windows
652
653 2006-09-16  Havoc Pennington  <hp@redhat.com>
654
655         * dbus/dbus-server.c (dbus_server_listen): change how this works
656         to be able to delegate to a set of handlers that can succeed,
657         fail, or choose not to handle. Allows us to have 
658         dbus_server_listen_platform_specific.
659
660         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
661         factor out the tcp socket stuff to be used on windows, leaving
662         unix domain socket only in dbus-socket-unix.c
663
664         * dbus/dbus-transport-socket.c
665         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
666         stuff to be used on windows, leaving unix domain socket only 
667         in dbus-transport-unix.c
668
669         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
670         temporary hack to be sure this fails on windows
671         (dbus_connection_get_unix_process_id): ditto
672
673 2006-09-16  Havoc Pennington  <hp@redhat.com>
674
675         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
676         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
677         _dbus_open_socket so the domain/type/protocol from system headers
678         are not required. This is kind of pointless though unless we move
679         part of _dbus_connect_tcp_socket into sysdeps.c instead of
680         sysdeps-unix.c, which would mean adding a wrapper around
681         bind/listen/etc.
682         Also, add DBusError to the socket-opening functions so they 
683         don't require use of errno.
684
685 2006-09-16  Havoc Pennington  <hp@redhat.com>
686
687         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
688         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
689
690         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
691         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
692         functions specifically for sockets only, and move generic 
693         read/write/open/close into unix-specific code.
694
695 2006-09-14  Havoc Pennington  <hp@redhat.com>
696
697         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
698         complaint about accessing revents when poll returns 0, from Julian Seward.
699
700 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
701
702         * Released 1.0 RC 1 (0.93) 
703
704 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
705
706         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
707         use _dbus_close instead of close
708
709 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
710
711         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
712         credentials.  Fixes "external" authentication under e.g. NetBSD
713         which does not support any other socket credentials mechanism.
714         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
715
716 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
717
718         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
719         dbus_threads_init and be used by the dbus mutex functions to
720         avoid deadlocks.
721
722         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
723
724 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
725
726         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
727         use threadsafe readdir_r instead of readdir
728
729 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
730
731         * dbus-threads.c (dbus_threads_init_default): New method for
732         initializing the internal thread implementation (Patch from
733         Alexander Larsson <alexl at redhat dot com>)
734
735 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
736
737         * remove a bunch of todo items from the 1.0 list
738
739 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
740
741         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
742         key not found
743
744 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
745
746         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
747         complex debugging code
748
749         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
750         between the test suite ifdefs
751         (_dbus_verbose_bytes): return if verbosity is not enabled 
752
753 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
754
755         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
756         remove DBusMark
757
758 2006-09-10  Havoc Pennington  <hp@redhat.com>
759
760        patch mostly by Peter Kümmel, bug #8211
761         
762         * dbus/dbus-sysdeps-unix.c: new file, which splits out
763         unix-specific stuff in dbus-sysdeps.c
764
765         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
766         and move unix-specific stuff to dbus-sysdeps-unix.c
767
768         * configure.in: check HAVE_ERRNO_H
769         
770 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
771
772         * bus/test-main.c (main): Initialize threading during tests
773
774         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
775         Unlock connection on error
776         (generate_local_error_message): static method for generating
777         an error message when we don't have a message to reply to
778         (_dbus_connection_block_pending_call): Send a disconnect error
779         instead of just a timeout (NULL) when the bus gets disconnected
780         while blocking for a reply.
781         
782 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
783
784         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
785         filters (Patch from Kimmo Hämäläinen 
786         <kimmo dot hamalainen at nokia dot com>)
787
788 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
789
790         * dbus/dbus-connection-internal.h: Add prototype for 
791         _dbus_connection_test_get_locks to remove warning
792
793 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
794
795         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
796         close child_err_report_pipe[WRITE_END] on exec (Patch from 
797         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
798
799 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
800
801         * Clean up close calls to use _dbus_close (Patch from 
802         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
803
804 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
805
806         * doc/TODO:
807         - Remove pending call locking todo item
808         - dbus_connection_open now holds hard ref.  Remove todo item
809         - do proper locking on _dbus_bus_check_connection_and_unref
810           and handle DBUS_BUS_STARTER. Remove todo item
811         - Warn on closing of a shared connection.  Remove todo item
812
813         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
814         dbus/dbus-connection.c: Use the dbus_connection_close_internal
815         so we don't get the warning when closing shared connections
816
817         * test/test-service.c, test/test-shell-service.c: Applications
818         don't close shared connections themselves so we unref instead of
819         close
820
821         * test/test-utils.c (test_connection_shutdown): Close the connection
822
823         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
824         _dbus_bus_check_connection_and_unref_unlocked since we only call this
825         method on a locked connection.  
826         Make sure we call _dbus_connection_unref_unlocked instead of 
827         dbus_connection_unref also.
828         Handle DBUS_BUS_STARTER correctly
829
830         * dbus/dbus-connection.c (connection_record_shared_unlocked):
831         Mark as shared and hard ref the connection
832         (connection_forget_shared_unlocked): Remove the hard ref from the 
833         connection
834         (_dbus_connection_close_internal_and_unlock):  New internal function
835         which takes a locked connection and unlocks it after closing it
836         (_dbus_connection_close_internal): New internal function which acts
837         like the origonal dbus_connection_close method by grabbing a connection
838         lock and calling _dbus_connection_close_internal_and_unlock
839         (dbus_connection_close): Public close method, warns when the app
840         trys to close a shared connection
841
842 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
843
844         * bus/driver.c:
845         (bus_driver_generate_introspect_string): New method for populating
846         a DBusString with the introspect data
847         (bus_driver_handle_introspect): Move introspect generation code to 
848         bus_driver_generate_introspect_string
849
850         * bus/main.c:
851         (introspect): New function which prints out the intropect data and
852         exits
853         (main): Add a --introspect switch
854
855 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
856
857         * doc/TODO: Removed dtd publishing item.  
858         It seems the dtd has already been added at
859         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
860
861 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
862
863         * doc/TODO, various source files: Audited todo's and FIXME's and
864         prepended the ones we should be looking at with 1.0.  Those
865         prepended with 1.0? need clerification or might not be needed
866         for 1.0
867
868 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
869
870         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
871         NULL in the public API (Patch from Kimmo Hämäläinen 
872         <kimmo dot hamalainen at nokia dot com>)
873
874 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
875
876         * configure.in: Fix for OS-X compile time endian issues (patch from
877         Benjamin Reed <ranger at befunk dot com>)
878
879 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
880
881         * configure.in: Check for no-common compiler flag (OS-X fix from
882         Benjamin Reed <ranger at befunk dot com>)
883
884 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
885
886         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
887         <fcrozat at mandriva dot com>)
888
889 2006-08-29  Havoc Pennington  <hp@redhat.com>
890
891         * test/test-service.c (path_message_func): fix lack of return value
892
893         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
894         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
895         any more sense than on anything else in this file.
896         (_dbus_get_tmpdir): add const to return value, and keep the
897         results of the various getenv around in a static variable.
898
899 2006-08-29  Havoc Pennington  <hp@redhat.com>
900
901         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
902         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
903
904 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
905
906         * test/Makefile.am: change find to use syntax that works with non
907         gnu versions of find
908
909 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
910
911         * dbus/dbus-transport.c: fix invalid deref when checking if
912         a vtable method exists (Patch from Christian Ehrlicher 
913         <ch dot ehrlicher at gmx dot de>)
914
915 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
916
917         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
918         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
919         to build with builddir != srcdir (Taken from a patch by Bernard Leak
920         <bernard at brenda-arkle dot demon dot co dot uk>)
921
922 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
923
924         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
925         default case
926
927 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
928
929         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
930         it works on any system providing this interface, not only FreeBSD.
931         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
932
933 2006-08-20  Havoc Pennington  <hp@redhat.com>
934
935         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
936         the docs
937
938 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
939
940         * Released 0.92 
941
942 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
943
944         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
945         to reflect the init late change
946
947         * bus/bus.c (bus_context_new): Check user before we fork so we can
948         print out an error message a user will be able to see
949
950 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
951
952         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
953
954         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
955         Add two more global locks for use on windows platforms.  These are
956         unused on non-windows platforms but are not ifdefed out to avoid
957         potential bugs (i.e. the few bytes lost does not warrent the extra
958         maintanence and complexity that having seperate sets of locks would
959         cause)
960
961 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
962
963         * bus/services.c (bus_registry_acquire_service): Return an error
964         when an application tries to register the org.freedesktop.DBus Bus Name
965
966         * bus/services.c (bus_registry_release_service): Return an error
967         when an application tries to release the org.freedesktop.DBus Bus Name
968
969 2006-08-17  Alp Toker  <alp@atoker.com>
970
971         * doc/dbus-specification.xml: Fix some minor typos.
972
973 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
974
975         * configure.in: use $with_init_scripts instead of $operating_system
976         to determine where to store the pid since the init scripts manipulate 
977         the pid file (patch from Marcelo Ricardo Leitner 
978         <marcelo dot leitner at terra dot com dot br>.  
979
980 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
981
982         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
983         static DBusList *uninitialized_condvar_list to support new late 
984         initialization threading model.  In this model threads can be initialized
985         even after the D-Bus API has been used but still needs to be initialized 
986         before the second thread has been started.  Mutexes and condvar addresses
987         are stored in the two static lists and are replaced with actuall locks
988         when threads are initalized.
989         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
990         the location into the static list
991         (_dbus_mutex_free_at_location): New method for removing a mutex location 
992         from the static list and freeing the mutex
993         (_dbus_condvar_new_at_location): New method for creating a conditional 
994         variable and placing the location into the static list
995         (_dbus_condvar_free_at_location): New method for removing a conditional
996         variable location from the static list and freeing the conditional variable 
997         (init_uninitialized_locks): Atomic method which goes through the static 
998         lists of mutex and condvar location and updates them with actuall locks
999         (init_global_locks): changed to init_locks
1000         
1001         * dbus/dbus-connection.c:
1002         (_dbus_connection_test_get_locks): New method for tests to check connections
1003         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1004         condvar API
1005         (dbus_connection_allocate_data_slot): Pass in the global lock address
1006         to _dbus_data_slot_allocator_alloc
1007
1008         * dbus/dbus-dataslot.c:
1009         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1010         instead of the mutex itself
1011
1012         * dbus/dbus-message.c:
1013         (dbus_message_allocate_data_slot): Pass in the global lock address
1014         to _dbus_data_slot_allocator_alloc
1015
1016         * dbus/dbus-pending-call.c:
1017         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1018         to _dbus_data_slot_allocator_alloc
1019
1020         * dbus/dbus-server.c:
1021         (_dbus_server_init_base): Use the new at_location mutex API
1022         (dbus_server_allocate_data_slot): Pass in the global lock address
1023         to _dbus_data_slot_allocator_alloc
1024
1025         * test/name-test/test-threads-init.c: New test case for late thread
1026         initialization
1027
1028 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1031         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1032         causes compile problems when asserts are turned off
1033         Keeping _dbus_warn for printing out the message so even if
1034         asserts are turned off the user gets the messages that something is 
1035         wrong 
1036
1037 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1038
1039         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1040
1041         * bus/services.c (bus_service_list_queued_owners):
1042         Add a pointer cast to fix compiler warning
1043
1044         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1045         return a NULL instead of FALSE since the return type
1046         is not expecting a boolean
1047
1048         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1049         Remove unused variable
1050
1051         * dbus/dbus-marshal-recursive-util.c (node_new):
1052         return a NULL instead of FALSE since the return type
1053         is not expecting a boolean
1054
1055         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1056         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1057         because we are expecting a pointer not a boolean
1058
1059         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1060         add void as the parameter so some compilers
1061         don't complain
1062
1063         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1064           _dbus_transport_new_for_tcp_socket):
1065         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1066         because we are expecting a pointer not a boolean
1067
1068         * test/shell-test.c (test_command_line):
1069         cast the second argument to _dbus_list_append to avoid compiler
1070         warnings
1071
1072         * test/test-names.c (main): remove unused variable
1073
1074         * test/test-service.c (check_hello_from_self_reply):
1075         Initialize echo_message and echo_reply to NULL
1076         
1077         * test/test-shell-service.c (handle_echo):
1078         Remove unused variable and cast the third parameter passed to
1079         dbus_connection_get_object_path_data to avoid compiler warrnings
1080
1081         * test/name-test/test-names.c (clear_message_queue):
1082         Remove unused function
1083
1084         * test/name-test/test-pending-call-dispatch.c:
1085         Fix format string in printf
1086
1087
1088 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1089
1090         * dbus/dbus-bus.c:
1091         * test/name-test/test-names.c:
1092         Remove test method dbus_bus_connection_get_unique_name because 
1093         we already have public method dbus_bus_get_unique_name that 
1094         does the exact same thing
1095
1096 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1097
1098         * dbus/dbus-signature.c:
1099         fix typos in Julio's previous patch which cause make check to fail
1100
1101 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1102
1103         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1104         In any case it was wrong since this is a test checking to see if
1105         address parsing is correct.  There was no need to get the true
1106         tmp directory.  
1107
1108 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1109
1110         * dbus/dbus-macros.h: Revert the addition of stddef.h
1111         as we should not be adding it to library headers 
1112
1113 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1114
1115         * dbus/dbus-signature.c:
1116         Fix the unit tests so that they work if assertions are not enabled.
1117         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1118
1119 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1120
1121         * tools/run-with-tmp-session-bus.sh:
1122         * test/name-test/run-test.sh:
1123         Remove bashisms (patch from Julio M. Merino Vidal
1124         <jmmv at NetBSD dot org>)
1125
1126 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1127
1128         * configure.in: add a version (>= 2.6.0) check for libxml2
1129
1130 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1131
1132         * configure.in: make sure the compiler supports -Wfloat-equal
1133         
1134         * bus/dir-watch-dnotify.c: move functional code after 
1135         variable declerations (C99 fix)  (patches from Jens Granseuer
1136         <jensgr at gmx dot net>
1137
1138 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1139
1140         * dbus/dbus-macros.h:
1141         add #include <stddef.h> so that Sun compilers don't complain about
1142         the defining NULL
1143
1144 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1145
1146         * dbus/dbus-sysdeps.c:
1147         * dbus/dbus-address.c:
1148         * bus/activation.c:
1149         * test/shell-test.c:
1150         don't hardcode tmp directory (patch from Dave Meikle 
1151         <dmk at davemeikle dot co dot uk>)
1152
1153 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1154
1155         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1156         Change an assert to a detailed warning and abort.  
1157         When allocator->lock != mutex it indicates that the user has failed
1158         to initalize threads before using the D-Bus library.  This warning
1159         helps the user identify the issue and fix their app.
1160
1161 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1162
1163         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1164         with cleanups of bugs found from Coverity reports:
1165
1166         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1167         close the file on error to avoid a leak
1168
1169         * bus/expirelist.c (bus_expire_list_test):
1170         Check for NULL on dbus_new0
1171
1172         * bus/activation.c (update_directory):
1173         remove dead code
1174
1175         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1176         Fix some leaks
1177
1178         * bus/bus.c (process_config_every_time):
1179         Fixed a leak
1180
1181         * bus/desktop-file.c (parse_key_value):
1182         Fixed leak
1183
1184         * bus/selinux.c (bus_selinux_id_table_insert):
1185         Fixed leak
1186
1187 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1190         remove dead code
1191
1192 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1195         #!/bin/bash
1196
1197 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1198
1199         * Doxyfile.in: fix the INPUT line so we can generate docs 
1200         when sourcedir != builddir (patch from Cygwin Ports maintainer
1201         <yselkowitz at users dot sourceforge dot net>
1202
1203 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1204
1205         * dbus/dbus-sysdeps.h:
1206         * dbus/dbus-sysdeps.c: 
1207         * dbus/dbus-string.c: 
1208         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1209         GLib's function which does the same thing
1210
1211         * configure.in:
1212         * bus/Makefile.am:
1213         * bus/dir-watch-default.c:
1214         * bus/dir-watch-dnotify.c:
1215         * bus/dir-watch-kqueue.c:
1216         Add kqueue directory watching for freebsd and split the directory
1217         watching code into seperate files per method/arch
1218         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1219
1220 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1221
1222         * configure.in:
1223         * tools/Makefile.am:
1224         * tools/dbus-launch.c:
1225         * bus/Makefile.am:
1226         allow --with-dbus-daemondir switch to be used to make the
1227         daemon install to a seperate bindir like /usr/libexec
1228         (patch from Brian Cameron <brian dot cameron at sun dot com)
1229
1230 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1231
1232         * bus/Makefile.am (install-data-hook): removed the slash after 
1233         $(DESTDIR) so we don't get the double slash which does not work
1234         in windows (patch from Andras Porjesz 
1235         <andras dot porjesz at siemens dot com>)
1236
1237 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1238
1239         * dbus/dbus-sysdeps.h:
1240         * dbus/dbus-sysdeps.c: 
1241           add _dbus_printf_length (patch from Peter Kümmel 
1242           <syntheticpp at gmx dot net>)
1243
1244 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1245
1246         * dbus/dbus-internals.c: unistd.h is not used 
1247         (_dbus_verbose_real): only enable verbose printing 
1248         if DBUS_VERBOSE environment var is set to '1'
1249         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1250
1251 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1252
1253         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1254         so we still compile on older gcc (patch from Frederic Peters 
1255         <fpeters at 0d dot be>
1256
1257 2006-08-04  Havoc Pennington  <hp@redhat.com>
1258
1259         * configure.in: add -Wdeclaration-after-statement
1260
1261         * dbus/dbus-connection.c: change all the pending call stuff to
1262         reflect the fact that pending call operations use the connection
1263         lock
1264
1265         * dbus/dbus-pending-call.c: add locking here
1266
1267         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1268         field const consistent with how message field is done
1269
1270 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         * s/D-BUS/D-Bus/g
1273
1274 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1275
1276         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1277         <in7y118 at public.uni-hamburg dot de> - fix invalid
1278         read/write reported by valgrind
1279
1280 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1281
1282         * Released 0.91
1283
1284 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1285
1286         * dbus/dbus-connection.c:
1287         (_dbus_connection_attach_pending_call_unlocked):
1288         (connection_timeout_and_complete_all_pending_calls_unlocked):
1289         Make sure we set timeout_added on pending calls to FALSE when
1290         we remove the timeout from the connection
1291
1292 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1293
1294         * Removed some extra bindings stuff lingering around (thanks timo)
1295         * dbus-pendingcall.c (_dbus_pending_call_new): 
1296         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1297         when we tried to take a lock on an already locked connection
1298
1299 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1300
1301         * Released 0.90
1302
1303 2006-07-17  Havoc Pennington  <hp@redhat.com>
1304
1305         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1306         ints, reported by Owen Taylor
1307
1308 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * doc/TODO:
1311         * dbus/dbus-bus.c:
1312         * dbus-errors.c:
1313         * dbus/dbus-marshal-validate.c:
1314           Removed TODO items which were fixed or are no longer relevent
1315
1316 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1319         Remove stray files from the stripped bindings
1320
1321 2006-07-16  Havoc Pennington  <hp@redhat.com>
1322
1323         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1324         Improve the error message on reply timeout
1325
1326 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * Remove all bindings
1329
1330 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1331
1332         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1333         and set pending_reply out arg to NULL is connection is disconnected
1334         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1335         static method for cleaning up pending calls on disconnect
1336         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1337         calls queued timeouts on disconnect 
1338
1339          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1340         Remove 
1341
1342 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1343
1344         * bus/activation.[ch] (bus_activation_list_services): new function to 
1345         get the list of services that can be activated
1346
1347         * bus/dispatch.c: test coverage for the new bus method
1348         ListActivatableNames
1349
1350         * bus/driver.c: new bus method ListActivatableNames to get the list of
1351         services that can be activated
1352
1353         * doc/dbus-specification.xml: ListActivatableNames method documentation
1354
1355 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1356         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1357         source files
1358
1359 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1360         * dbus/dbus-message-factory.c:
1361         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1362
1363 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1364         * dbus/dbus-connection-internal.h:
1365         * dbus/dbus-connection.c:
1366         * file dbus/dbus-pending-call.c:
1367         * dbus/dbus-pending-call.h:
1368         Make DBusPendingCall an opaque type even to D-Bus internals
1369
1370 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1371
1372         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1373         connection_close
1374
1375         * dbus/dbus-connection.c: include dbus-bus.h
1376         (_dbus_connection_read_write_dispatch): make static
1377
1378 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1379
1380         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1381         function
1382         (dbus_connection_dispatch): On disconnect unref any shared connections
1383
1384         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1385         for cleaning up shared connections on disconnect
1386         (internal_bus_get): get a hard refrence to shared connections when
1387         they are created
1388         
1389         * doc/TODO: Remove items which are no longer relevent or have been fixed
1390         Split 1.0 todo items with a 0.90 freeze todo list
1391  
1392 2006-06-14  Ross Burton  <ross@openedhand.com>
1393
1394         * glib/dbus-gobject.c:
1395         Free a leaking GArray (surely not!) in dbus_g_method_return.
1396
1397 2006-06-14  Ross Burton  <ross@openedhand.com>
1398
1399         * tools/Makefile.am:
1400         * tools/dbus-monitor.c:
1401         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1402         Habacker).
1403         
1404 2006-06-14  Ross Burton  <ross@openedhand.com>
1405
1406         * tools/dbus-print-message.c:
1407         Also print the object path when outputting signals or method calls.
1408
1409 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1410
1411         * qt/src/Makefile.am: install the qdbus.h header.
1412         This allows people to actually use the installed code.
1413
1414 2006-06-12  Ross Burton  <ross@openedhand.com>
1415
1416         * glib/dbus-gproxy.c:
1417         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1418
1419 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1420
1421         * Released 0.62
1422
1423 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1424
1425         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1426         break pedantic builds. Closes bug 6043 (patch approved by
1427         Havoc back in February).
1428
1429 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1430
1431         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1432         that took a QDBusMessage parameter.
1433         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1434         * qt/tools/dbus.cpp: Don't use automatic call because we might
1435         be calling an async method: request a reply.
1436
1437 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1438
1439         * test/qt/*: Update the testcases, including testing the new
1440         functionality of sending null QByteArray and QString over the
1441         bus. Add new headertest test and restore the old
1442         qdbusxmlparser test.
1443
1444 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1445
1446         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1447         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1448
1449         * qt/examples/Makefile.am:
1450         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1451         form.
1452
1453         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1454         QByteArray() (nulls) over the bus.
1455         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1456         the one that has the signature suffix stripped.
1457         * qt/src/qdbusreply.h: Make some methods const.
1458
1459 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1460
1461         Patch from Timo Hoenig <thoenig@suse.de>.
1462
1463         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1464         required during build to EXTRA_DIST.
1465         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1466         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1467         * configure.in: Fix "make dist", take care that the Makefile for
1468         qt/dbus is being generated.
1469
1470 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1471
1472         * bus/bus.c: Fix eavesdropping on method calls
1473
1474 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1475
1476         * configure.in:
1477         * dbus/dbus-userdb-util.c:
1478         Add Solaris console owner patch from Artem Kachitchkine
1479
1480 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1481
1482         * qt/Makfile.am:
1483         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1484         reorganisation. Thanks to Timo Hoenig for pointing this out.
1485
1486 2006-06-06  Robert McQueen  <robot101@debian.org>
1487
1488         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1489           call to dbus_g_type_get_struct.
1490
1491 2006-06-06  Robert McQueen  <robot101@debian.org>
1492
1493         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1494           pointers were put into a GPtrArray-based specialised collection, and
1495           then freed along with the array. GValues which you add into
1496           collections or maps which have the NOCOPY flag set are assumed to not
1497           belong to the caller, so rather than the existing pointer-stealing
1498           semantics, they are copied instead. Given that the main consumers of
1499           this abstraction are the bindings themselves, I don't think this is
1500           too bad, but others should watch their choice of take vs set_static.
1501
1502 2006-06-06  Robert McQueen  <robot101@debian.org>
1503
1504         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1505           of g_slist_prepend not being used. Fixed copying of slist-based
1506           specialised collections, then wrote a test case and found that it was
1507           all broken. Went on to fix iterating and appending too. Good thing
1508           nobody uses this code yet.
1509
1510 2006-06-06  Robert McQueen  <robot101@debian.org>
1511
1512         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1513           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1514           are discarded without unsetting, so it makes no difference whether
1515           we take or set_static). Remove cases for G_TYPE_POINTER because
1516           there really is nothing useful we can do with them in our
1517           specialised types - we *need* boxed copy/free functions at the very
1518           least.
1519
1520 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1521
1522         * qt/dbus: Add directory. I had forgotten to add this
1523         yesterday after the move...
1524
1525         * qt/examples/Makefile.am:
1526         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1527
1528         * qt/tools/Makefile.am:
1529         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1530         Added feature to get and set properties.
1531         Added validation of service, object path and interface names.
1532
1533         * qt/tools/dbusidl2cpp.cpp: Two new features:
1534         1) Allow specifying both the header and the source file names,
1535         by separating them with a colon.
1536         2) Don't write an interface output if the -p switch wasn't
1537         given, but the -a was.
1538
1539         * qt/src/*: Fix usage of Iterators and ConstIterators.
1540         Fix shadowing of variables by other variables (-Wshadow).
1541         Fix keyword-cleanliness in headers.
1542         Fix ASCII-cast (QLatin1String, QLatin1Char).
1543         Fix validation of member names.
1544         Add extra checking of introspection data during XML parsing.
1545         Various bug fixes.
1546
1547 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1548
1549         * dbus/Makefile.am:
1550         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1551         qt/dbus/qdbus.h now.
1552
1553 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1554
1555         * configure.in: Make --disable-qt actually do
1556           something. Patch inspired by Zack Rusin.
1557
1558 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1559
1560         * qt/: Update to Subversion r548032.
1561         This includes a big reorganisation of the files inside the
1562         subdir.
1563
1564 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1565
1566         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1567         clear:  
1568         "Failed to connect to socket <host>:<port> <error>" instead of
1569         "Failed to connect to socket <host>: <error>:<port>"
1570
1571         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1572         for a tcp transport. 
1573
1574 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1575
1576         * qt/*: Update the QtDBus bindings up to revision 546310 in
1577         Subversion.
1578         This adds the dbuscpp2xml tool, that parses a C++ header and
1579         outputs a D-BUS Introspection XML.
1580
1581 2006-05-21  Havoc Pennington  <hp@redhat.com>
1582
1583         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1584         is not NULL when it shouldn't be. Also a couple of possible fixes
1585         for #4637 though I don't understand why the bug happens, to be
1586         honest... also the object constructor has an assert name != NULL
1587         and the name is only currently NULL for peer-to-peer proxies that 
1588         I don't think anyone uses? So it should be asserting.
1589         Anyway, for now at least see if we get an earlier assertion failure.
1590
1591         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1592         apparently broken code to be sure the tests fail and someone 
1593         will fix them...
1594
1595 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1596
1597         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1598         and arrays when they had a single element: has_next returns
1599         false, even before you read the element. So, instead, check
1600         the array length.
1601
1602 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1603
1604         * qt/qdbusmessage.cpp:
1605         * qt/qdbustypehelper_p.h:
1606         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1607         the list is a const-reference
1608
1609 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1610
1611         * Adding old doc patch that never got applied
1612         
1613         * dbus/bus.c (dbus_bus_add_match): Add documentation
1614
1615         * doc/dbus-specification.xml: Add documentation for the match rules
1616           and the AddMatch and RemoveMatch methods
1617
1618 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1619
1620         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1621         call (r535506)
1622
1623         * qt/dbusidl2cpp.cpp:
1624         * qt/qdbusabstractadaptor.cpp:
1625         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1626         sibling of the QDBusAbstractAdaptor objects instead of the
1627         parent. (r535848)
1628
1629         * qt/dbusidl2cpp.cpp:
1630         * qt/qdbusabstractinterface.cpp:
1631         * qt/qdbusabstractinterface.h:
1632         * qt/qdbusabstractinterface_p.h:
1633         * qt/qdbusinterface.cpp: Make properties in interfaces
1634         actually work. The code that was generated would not compile,
1635         due to moc calls to functions that did not exist. They now
1636         shall. (r536571)
1637
1638 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1639
1640         * Makefile.am:
1641         * configure.in:
1642         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1643         Thanks to Brad Hards for providing the patch
1644
1645 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1646
1647         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1648         call. (r535506)
1649
1650 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1651
1652         * qt/examples/dbus.cpp: Enhance error messages and use
1653         QDBusInterfacePtr.
1654
1655 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1656
1657         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1658         and disable the copy operators. (r533772, r534746)
1659
1660         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1661
1662         * qt/qdbusabstractinterface.cpp:
1663         * qt/qdbusabstractinterface.h: Change the default call mode to
1664         not use the event loop. Add convenience call() methods that
1665         take a CallMode parameter. (r534042)
1666
1667         * qt/qdbusconnection.h: Change the default call mode to not
1668         use the event loop. (r534042)
1669
1670         * qt/qdbusinterface.cpp:
1671         * qt/qdbusinterface.h: Add a method to tell us if the
1672         interface is valid (since we don't return a null pointer
1673         anymore) (r534099)
1674
1675         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1676         (r534101)
1677
1678         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1679         function in two so taht we get the chance to introspect
1680         without having a QDBusMessage (r534102)
1681
1682         * qt/qdbusbus.h:
1683         * qt/qdbusconnection.cpp:
1684         * qt/qdbusconnection_p.h:
1685         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1686         avoid a round-trip to the server when attempting to introspect
1687         one of our own objects. Also make sure the filter functions
1688         match the empty interface as well. (r534108)
1689         Don't keep the connection names. Instead, trust the unique
1690         connection name (r534111)
1691         Remove event loop usage (r534112)
1692
1693 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1694
1695         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1696         Brad Hards.
1697
1698 2006-04-28  Robert McQueen  <robot101@debian.org>
1699
1700         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1701         any order, making it easier for people who inherit from this
1702         object.
1703
1704 2006-04-28  Robert McQueen  <robot101@debian.org>
1705
1706         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1707         of memory from within pointer arrays and lists. Fixes bug #6300.
1708
1709 2006-04-28  Robert McQueen  <robot101@debian.org>
1710
1711         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1712         generating struct signatures. Fixes bug #6083.
1713
1714 2006-04-28  Robert McQueen  <robot101@debian.org>
1715
1716         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1717         to qdbusconnection_p.moc.
1718
1719 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1720
1721         * README, INSTALL: Doc fixes
1722         Patch from Brad Hards <bradh at frogmouth.net>
1723
1724 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1725
1726         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1727         the dynamic meta object. No need to guess which interface to
1728         call.
1729
1730 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1731
1732         * qt/qdbusconnection_p.h:
1733         * qt/qdbusmetaobject.cpp:
1734         * qt/qdbusmetaobject_p.h:
1735         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1736         for the dynamic meta object. No need to guess which
1737         interface to call.
1738         * qt/qdbusabstractinterface_p.h:
1739         * qt/qdbusconnection.cpp:
1740         * qt/qdbusintegrator.cpp:
1741         * qt/qdbusinterface.cpp:
1742         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1743         Add a QDBusRef that looks and behaves like DCOPRef.
1744
1745 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1746
1747         * dbus/dbus-connection.c: Interfaces are optional in method
1748         calls, so don't give up if the interface parameter is NULL.
1749         Patch reviewed by Havoc Pennington.
1750
1751 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1752
1753         * qt/qdbusreply.h: Add default constructor and operator=
1754           (r532625)
1755         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1756           in public headers (r532952)
1757         * qt/qdbusabstractinterface.cpp:
1758         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1759           make it the default (r532951)
1760
1761 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1762
1763         * dbus/dbus-connection.c: Fix asserts
1764         Patch from Tim Moloney <t.moloney at verizon.net>
1765
1766 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1767
1768         * mono/Connection.cs, mono/Message.cs: Check Target type
1769         Patch from Aaron Bockover (abockover at novell.com)
1770
1771 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1772
1773         * INSTALL: fine-tune the requirements for the Qt4 binding.
1774
1775 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1776
1777         * tools/dbus-print-message.c: Added support for printing of all 
1778           remaining data types. Fixed logic for indentation of compound
1779           data types.
1780         
1781 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1782
1783         * INSTALL: fill out content of file providing DBus specific
1784           build installations, followed by generic Auto* INSTALL file
1785           content
1786         
1787 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1788
1789         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1790           Patch by Stefan Eilers. (r529537)
1791
1792 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1793
1794         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1795           contents (r528208)
1796
1797 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1798
1799         * qt/Makefile.am: fix the dependency for
1800           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1801           not in qdbusconnection.cpp.
1802           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1803           spotting this.
1804
1805 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1806
1807         * qt/examples/listnames.cpp:
1808         * qt/examples/Makefile.am: Three ways to list the names on the
1809           bus.
1810
1811 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1812
1813         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1814           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1815
1816 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1817
1818         Merge from Subversion:
1819         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1820           something that exists (r526315)
1821         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1822           slots/signals (r526316)
1823         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1824           also return an unknown-method error if the parameters don't
1825           match for org.freedesktop.DBus.Properties. (r526842)
1826         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1827         * qt/qdbusintegrator.cpp: Restore the proper order of
1828           delivery: don't make method returns be delivered on priority
1829           (r528150)
1830
1831 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1832
1833         * configure.in qt/Makefile.am: add qt/examples
1834         * qt/examples: Add QtDBus example programs:
1835           - hello: Hello, World
1836           - ping: Simple method-calling program
1837           - pong: Simple object-exporting program (not using adaptors)
1838           - complexping: Interactive method-calling program 
1839                 (also gets and sets properties).
1840           - complexpong: Sample program exporting methods, signals and
1841                 properties, using adaptors.
1842           - dbus: Simple implementation of a generic method-calling
1843                 program, similar to 'dbus-send', but with semantics
1844                 similar to 'dcop'.
1845           - chat: Simplistic chat program, implemented using signals
1846                 and the system bus. Looks like IRC.
1847
1848 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1849
1850         * configure.in: Detect QtGui (necessary for one of the
1851           example programs). Note: this increases the minimum required
1852           version of Qt to 4.1.3.
1853
1854 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1855
1856         * test/qt/*: Sync with KDE Subversion revision 523647.
1857         Update the testcases to the new API. Remove testcases for
1858         classes that are no longer public or have been removed.
1859
1860 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1861
1862         * qt/*: 
1863         * dbus/qdbus.h: Sync with KDE Subversion revision
1864         523647. Hopefully, this will be the last of the
1865         source-incompatible changes. Documentation has been improved;
1866         support for QList<basic-types> has been added; QDBusObject is
1867         gone; QDBus(Abstract)Interface is now a QObject with
1868         auto-generated meta-object; QDBusIntrospection is marked
1869         private, since QMetaObject can be used now; lots of bugfixes.
1870
1871 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1872
1873         Patch from Milosz Derezynski <internalerror at gmail.com>
1874         
1875         * configure.in:
1876         Output the service directory in the configure summary
1877
1878         * dbus-1.pc.in:
1879         Add session_bus_services_dir
1880
1881 2006-03-10  Ross Burton  <ross@openedhand.com>
1882
1883         * tools/dbus-print-message.c:
1884         Add support for object paths and signatures.
1885
1886 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1887
1888         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1889         config reload.
1890         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1891         information caches
1892         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1893         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1894         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1895         * dbus/dbus-userdb.h: Add function to flush all user/group information
1896         caches.
1897
1898 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1899
1900         * qt/dbusidl2cpp.cpp:
1901         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1902         for dcopidl2cpp, found in the KDE installations (or the more
1903         modern kalyptus): generate Qt4 C++ code for the input XML
1904         introspection. Currently no IDL parsing.
1905
1906 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1907
1908         * test/qt/*: Update the self-tests.
1909
1910 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1911
1912         * qt/*: 
1913         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1914         represents the first feature-complete version of the Qt4
1915         bindings since I took ove maintainership.
1916
1917 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1918
1919         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1920         dir. This is C++, so we can't use the DBus ones.
1921
1922 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1923
1924         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1925         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1926
1927 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1928
1929         * dbus/dbus-connection.c: 
1930         (_dbus_connection_block_pending_call):
1931         Check to see if our data has already been read off the connection
1932         by another blocking pending call before we block in poll.
1933         (check_for_reply_and_update_dispatch_unlocked):
1934         Code taken from _dbus_connection_block_pending_call - checks for
1935         an already read reply and updates the dispatch if there is one.
1936
1937         * test/name-test/test-pending-call-dispatch.c:
1938         New test for making sure we don't get stuck polling a 
1939         dbus connection which has no data on the socket when
1940         blocking out of order on two or more pending calls.
1941
1942 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1943
1944         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1945         make/automake don't detect that we're talking about the same
1946         .lo file if I specify the full path to the source files.
1947
1948 2006-02-26  Havoc Pennington  <hp@redhat.com>
1949
1950         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1951
1952         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1953         session bus variable is unset, suggest "man dbus-launch" and "man
1954         dbus-daemon" to figure out how to fix the problem
1955
1956 2006-02-25  Havoc Pennington  <hp@redhat.com>
1957
1958         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1959         should make this thing use the new glib options parser
1960
1961 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1962
1963         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1964         .lo files taking moc sources.
1965
1966 2006-02-25  Havoc Pennington  <hp@redhat.com>
1967
1968         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1969         and install it as a public header
1970
1971 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1972
1973         * Released 0.61
1974
1975 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1976         
1977         * proxies.py: Fix the callchain
1978
1979 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1980         
1981         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1982
1983         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1984         dbus/dbus-sysdeps.c
1985
1986         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1987         call _dbus_group_info_free_allocated which causes infinite loop,
1988         correctly call _dbus_group_info_free
1989
1990 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1991
1992         * qt/qdbusinterface_p.h:
1993         * qt/qdbusinterface.cpp: Use the standard
1994         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1995         calls instead of creating one for us.
1996
1997         * qt/qdbusconnection_p.h:
1998         * qt/qdbusintegrator.cpp: Remove debugging code.
1999
2000         * qt/qdbusintegrator.cpp:
2001         * qt/qdbusmessage.cpp:
2002         * qt/qdbusmessage_p.h:
2003         * qt/qdbusmessage.h: Change the behaviour of automatic
2004         reply-sending: now a reply is always sent, unless the caller
2005         didn't request one or if the user slot has already sent one.
2006
2007 2006-02-16  Robert McQueen  <robot101@debian.org>
2008
2009         * configure.in: Patch from Debian packages by Sjoerd Simons
2010         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2011         arguments so it's possible to build both bindings in the
2012         same tree.
2013
2014         * qt/Makefile.am: Fix truncated value so that make dist works.
2015
2016 2006-02-16  Robert McQueen  <robot101@debian.org>
2017
2018         * acinclude.m4, configure.in: Patch from Brad Hards
2019         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2020         improving quoting, re-ordering a few checks, and a few other
2021         aesthetic tidy-ups.
2022
2023 2006-02-16  Robert McQueen  <robot101@debian.org>
2024
2025         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2026         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2027         assertion that the next element to read from the iter is fixed in
2028         size. This is not the case when you are at the end of the iter,
2029         because the next element type is INVALID.
2030
2031         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2032         a bogus assert which means that you may not initialise a 0-length
2033         string unless you provide a non-NULL pointer. This prevented
2034         you from marshalling messages containing zero-length arrays in
2035         some cases.
2036
2037         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2038         from Rob to correct bogus asserts when trying to demarshal an
2039         array and get_fixed_array got you 0 elements. Append nothing to
2040         the GArray in this case.
2041
2042         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2043         an empty array via the glib bindings. Without all of the above
2044         patches, this new test fails.
2045
2046 2006-02-16  Robert McQueen  <robot101@debian.org>
2047
2048         * glib/dbus-gmain.c: Make the previous commit compile.
2049
2050         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2051         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2052         specify sender_keyword="foo", path_keyword="bar" when adding
2053         a signal listener, so that you can bind to signals generically
2054         but still do something useful in your callback.
2055
2056         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2057         chars so that they're not cast to chars and made negative. Thanks
2058         to Jakub Stachowski for reporting this and testing the fix.
2059
2060 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2061
2062         * dbus/dbus-glib.h:
2063         * glib/dbus-gmain.h:
2064         (dbus_g_connection_open): new method for openning
2065         a connection to an arbitrary address in the glib bindings
2066
2067         * ChangeLog: checkin last entry which doesn't seem to be commited
2068
2069 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2070
2071         * tools/dbus-launch.c: Fixed sh syntax output
2072
2073 2006-02-13  Robert McQueen  <robot101@debian.org>
2074
2075         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2076         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2077         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2078         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2079         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2080         missing piece of the glib bindings jigsaw puzzle. This modifies
2081         the existing specialised types to have N type parameters (rather
2082         than the current 1 or 2 for arrays and dictionaries respectively).
2083         You can then use this to get a glib type to represent any arbitrary
2084         D-Bus struct type using dbus_g_type_get_struct. The only
2085         implementation of these types is with GValueArrays as before,
2086         but it's now possible to store these in arrays, emit them in
2087         signals, etc.
2088
2089 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2090
2091         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2092         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2093         <thiago.macieira at trolltech.com>
2094
2095 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2096
2097         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2098         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2099
2100 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2101
2102         * bus/connection.c (bus_connections_expect_reply): Make
2103         pending reply limit not common to all connections (Bug #5416)
2104         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2105
2106 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2107
2108         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2109
2110 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2111
2112         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2113         patch from Doug Goldstein <cardoe at gentoo.org>
2114
2115 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2116
2117         * mono/Arguments.cs: Fix a magic number in the mono bindings
2118         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2119
2120 2006-01-27  Robert McQueen  <robot101@debian.org>
2121
2122         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2123         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2124         when generating the client-side methods, instead of overloading
2125         CSymbol which broke everything horribly. My apologies.
2126
2127 2006-01-27  Robert McQueen  <robot101@debian.org>
2128
2129         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2130         by me and Rob Taylor to add a simple_free function to D-Bus map
2131         and collection types, which allows those types which can be freed
2132         with a GDestroyNotify (such as GHashTables and GArrays, but not
2133         GPtrArrays) to be stored as the values in hashtables.
2134
2135         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2136         Patch by Rob Taylor to add nested dicts to the glib tests to check
2137         the above code works, and appears not to leak when called repeatedly.
2138
2139 2006-01-27  Robert McQueen  <robot101@debian.org>
2140
2141         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2142         to free a D-Bus allocated string with dbus_free () instead of
2143         g_free ().
2144
2145 2006-01-27  Iain Holmes  <iain@openedhand.com>
2146
2147         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2148         method from being called multiple times.
2149
2150 2006-01-19  Robert McQueen  <robot101@debian.org>
2151
2152         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2153         <rob.taylor@collabora.co.uk> to add support for generating bindings
2154         to arrays that are represented as GPtrArrays rather than GArrays (ie
2155         size-variable things, such as strings, objects, structs, etc).
2156
2157 2006-01-05  Robert McQueen  <robot101@debian.org>
2158
2159         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2160         <ricardo.kekki@movial.fi> to make it possible to inherit from
2161         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2162         a private part, and moving the setting of the DBusGProxyManager into a
2163         connection property, allowing proper GObject construction.
2164
2165 2006-01-05  Robert McQueen  <robot101@debian.org>
2166
2167         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2168         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2169         annotations when generating glib client bindings.
2170
2171 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2172
2173         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2174
2175         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2176
2177 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2178
2179         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2180
2181 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2182
2183         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2184
2185 2005-12-19  Ross Burton  <ross@openedhand.com>
2186
2187         * doc/dbus-tutorial.xml:
2188         Document the Glib client-side bindings, and list all possible annotations.
2189
2190 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2191
2192         * dbus/bus.c (dbus_bus_release_name): Add documentation
2193
2194 2005-12-06  Robert McQueen  <robot101@debian.org>
2195
2196         * python/service.py: s/sucessful/successful/ so we're allocating to
2197         and reading from the same variable. Oops.
2198
2199 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2200
2201         * Released 0.60
2202
2203 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2204
2205         * test/qt/Makefile.am: build from srcdir
2206
2207         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2208         Note - this code is wrong and needs to be fixed by the Qt binding
2209         developers.  The flags should be treated as bitfields and not enums.
2210
2211         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2212
2213 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2214
2215         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2216           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2217           in production code
2218
2219 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2220
2221         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2222         method for getting messages off the bus in the absence of a
2223         mainloop.  This method is much like 
2224         dbus_connection_read_write_dispatch except it does not dispatch
2225         the messages to a registered filter function.  Instead it
2226         allows a developer to process messages by directly popping
2227         them off the bus.
2228
2229 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2230
2231         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2232         the parser to continue instead of returning error
2233         (bus_desktop_file_load): Do not free parser data when
2234         parse_section_start or parse_key_value fails because it was 
2235         already freed by parser_free (patch from Carlos Garcia Campos  
2236         <carlosgc at gnome.org>)
2237
2238 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2239
2240         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2241         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2242         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2243         test/test-segfault.c, test/test-utils.c,
2244         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2245         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2246         Various cleanup of dead code and compiler warnings (patch from
2247         Kjartan Maraas <kmaraas at gnome.org>) 
2248
2249 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2250
2251         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2252         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2253
2254 2005-11-27  Robert McQueen  <robot101@debian.org>
2255
2256         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2257         part of the preceding one. Oops. Merge patch by Johan Hedberg
2258         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2259         on big-endian platforms.
2260
2261         * test/python/test-client.py: Add some 16-bit integers to the test
2262         values.
2263
2264 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2265
2266         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2267         method return message for property getters
2268
2269 2005-11-27  Robert McQueen  <robot101@debian.org>
2270
2271         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2272         with type v of an instance of dbus.Variant(foo, type='x') caused
2273         it to be boxed twice before sending over the bus.
2274
2275         * python/dbus_bindings.pyx, python/service.py,
2276         test/python/test-client.py: Update the constants for the new
2277         request_name flags, and update comments/test cases now that queueing
2278         is the default action.
2279
2280 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2281
2282         * configure.in:
2283         - Change version to 0.60 for impending release
2284         - upped the sonames because of ABI and API breakage
2285
2286 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2287
2288         * configure.in: Add test/name-test/Makefile to the generated
2289         Makefile list
2290
2291         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2292         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2293         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2294         not to queue an ower if it can't be the primary owner
2295
2296         * bus/bus.h: Add new internal BusOwner struct
2297
2298         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2299         to bus_registry_ensure and don't set the prohibit_replacement flag
2300         since they are now set per BusOwner and not per name.
2301         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2302         that returns the list of connections in a name's connection queue
2303         
2304         * bus/services.c (struct BusService): remove prohibit_replacement field
2305         (struct BusOwner): new struct for keeping track of queued connections
2306         and their associated flags for the queue
2307         (struct BusRegistry): add a BusOwner memory pool
2308         (bus_registry_new): initialize the BusOwner memory pool
2309         (bus_registry_unref): free the BusOwner memory pool
2310         (_bus_service_find_owner_link): new internal method for
2311         searching the queue for a specific connection
2312         (bus_owner_set_flags): new method for adding setting the flags on a
2313         bus owner
2314         (bus_owner_new): new method that creates a BusOwner object from the
2315         pool and sets its flags
2316         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2317         (bus_registry_ensure): Add the flags parameter
2318         (bus_registry_acquire_service): Switch from using raw connections to
2319         using the BusOwner struct
2320         Add new state machine for dealing with the new set of flags
2321         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2322         cancel_ownership, free_ownership_cancel_data, 
2323         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2324         restore_ownership, free_ownership_restore_data, 
2325         add_restore_ownership_to_transaction): Switch to using BusOwner 
2326         instead of raw connections
2327         (bus_service_add_owner): Add flags parameter
2328         Switch to using BusOwner instead of raw connections
2329         Add state machine for dealing with the new set of flags
2330         (bus_service_swap_owner): Swaps the first and second owners in the
2331         queue.  Used to make sure proper signals are sent when a service looses 
2332         or gains primary ownership.  We never insert an owner at the top of the
2333         queue.  Instead we insert it in the second position and then swap.
2334         (bus_service_remove_owner): Remove the owner from the queue sending
2335         out the NameLost and NameOwnerChanged signals if the we were the 
2336         primary owner
2337         (bus_service_get_primary_owners_connection): New method that extracts
2338         the connection from the primary owner
2339         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2340         connection
2341         (bus_service_get_allow_replacement): Changed from the old 
2342         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2343         primary owner and returns if it can be replaced or not
2344         (bus_service_set_prohibit_replacement): removed
2345         (bus_service_has_owner): returns TRUE if and owner with
2346         the specified connection exists in the queue
2347         
2348         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2349         method that only compiles if tests are enabled.  Allows us to get the 
2350         unique name of a connection so we can check it against the queue when
2351         doing regression tests
2352
2353         * bus/activation.c (bus_activation_send_pending_auto_activate),
2354         bus/dispatch.c (bus_dispatch),  
2355         bus/driver.c (bus_driver_handle_get_service_owner, 
2356         bus_driver_handle_get_connection_unix_user, 
2357         bus_driver_handle_get_connection_unix_process_id,
2358         bus_driver_handle_get_connection_selinux_security_context),
2359         bus/signals.c (connection_is_primary_owner): 
2360         use bus_service_get_primary_owners_connection instead of
2361         bus_service_get_primary_owner
2362
2363         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2364         _dbus_listen_unix_socket): Calculate the length of the socket
2365         path and use that instead of using a fixed length which was
2366         causing socket names to contain many trailing Nul bytes.
2367
2368         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2369         (dbus_g_method_get_sender): New method for extracting the sender 
2370         from a DBusGMethodInvocation
2371         (dbus_g_method_return_get_reply): changed name to 
2372         dbus_g_method_get_reply
2373         (dbus_g_method_return_send_reply): changed name to
2374         dbus_g_method_send reply
2375
2376         * doc/dbus-specification.xml: New docs that describe how the new
2377         queueing system works and talks about the changes to the how
2378         we specify socket names
2379
2380         * glib/examples/example-service.c, 
2381         glib/examples/example-signal-emitter.c,
2382         glib/examples/statemachine/statemachine-server.c:
2383         Changed the RequestName flags to the new system
2384
2385         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2386         regression test suite for testing various states of the new
2387         queueing system
2388         
2389 2005-11-15  Robert McQueen  <robot101@debian.org>
2390
2391         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2392         Taylor to add two methods, dbus_g_method_return_get_reply and
2393         dbus_g_method_return_send_reply, to allow you to get the reply
2394         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2395         and send it. The GLib bindings can't marshal a return value of
2396         something like a(s) if the array is empty - ultimately they should be
2397         made to heed the signature of the out arguments as the Python bindings
2398         now can, but this is a workable interim solution which might have
2399         other applications.
2400
2401 2005-11-15  Robert McQueen  <robot101@debian.org>
2402
2403         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2404         method to org.freedesktop.DBus to release a bus name or give up
2405         waiting in the queue for it.
2406
2407         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2408         dbus_bus_release_name method to send the ReleaseName method calls.
2409         Add constants for the return values to dbus/dbus-shared.h.
2410
2411         * doc/dbus-specification.xml: Document the new ReleaseName method
2412         in the specification.
2413
2414         * python/dbus_bindings.pyx: Add a low-level python binding for the
2415         release name method.
2416
2417         * python/exceptions.py, python/service.py: Make freeing BusName
2418         objects release the name. Add a NameExistsException, and fix a
2419         bug with creating UnknownMethodException.
2420
2421         * test/python/test-client.py: Add tests for freeing BusName
2422         objects causing names to be released.
2423
2424 2005-11-14  Robert McQueen  <robot101@debian.org>
2425
2426         * python/service.py: Include the traceback in the error reply when we
2427         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2428
2429 2005-11-14  David Zeuthen  <davidz@redhat.com>
2430
2431         Patch from Timo Hoenig <thoenig@suse.de>.
2432
2433         * bus/bus.c: I've recently investigated why the automatic reload
2434         of configuration files does not work as expected.
2435
2436         Currently, reloading configuration files does only work when
2437         running dbus-daemon with --nodaemon.  If we are running as daemon
2438         we're hitting a dnotify bug once we fork the process.
2439
2440         We're initializing the dnotify fds before calling fork().  Once
2441         the child process forked it does still have the fds (and they
2442         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2443         getting SIGIO as changes are made to the configuration files.
2444
2445         The attached patch moves the initialization of the dnotify fds to
2446         process_config_postinit().  This is safe for all current code
2447         paths and solves the dnotify disfunction.  If we're running
2448         dbus-daemon as daemon the fds for dnotify are now being
2449         initialized after fork() for the child process.
2450
2451         * configure.in: The current configure.in check for dnotify probes
2452         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2453         match for 'xlinux', too. Additionally I have adapted the configure
2454         option's style to match with the others.
2455
2456 2005-11-14  Robert McQueen  <robot101@debian.org>
2457
2458         * python/decorators.py, python/service.py: Add a new argument to the
2459         dbus.service.method decorator called sender_keyword, which if set,
2460         specifies the name of an argument which will be provided the bus
2461         name of the method caller.
2462
2463         * test/python/test-client.py, test/python/test-service.py: Add a
2464         method and test to check the sender_keyword functionality.
2465
2466 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2467
2468         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2469         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2470         Simons <sjoerd at luon.net>)
2471
2472         * AUTHORS: Add Robert McQueen for his work on the Python
2473         Bindings and other parts of D-Bus
2474
2475 2005-11-07  Robert McQueen  <robot101@debian.org>
2476
2477         * python/decorators.py: Change emit_signal function to use the
2478         signature annotation of the signal when marhsalling the arguments from
2479         the service. Fix a bug where the code checking signature length
2480         against argument length referenced the wrong variable.
2481
2482         * python/introspect_parser.py: Avoid adding the type signature of
2483         signal arguments to any methods which occur after them in the
2484         introspection data (!) by making the parser a little more careful
2485         about its current state.
2486
2487         * python/service.py: Remove debug prints from last commit (again :D).
2488
2489         * test/python/test-client.py, test/python/test-service.py: Add test
2490         signals with signature decorators to test the strict marshalling code
2491         gives errors at the right time. Could do with checking the signals
2492         actually get emitted too, given that the test does nothing with
2493         signals at the moment...
2494
2495 2005-11-07  Robert McQueen  <robot101@debian.org>
2496
2497         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2498         instances to stop madness of creating new instances representing
2499         the same bus connection all the time, rendering any tracking of
2500         match rules and bus names quite meaningless. Caught a bug where
2501         the private argument to SessionBus() and friends was being passed
2502         in as use_default_mainloop by mistake. Still some problems with
2503         multiple dbus_binding.Connection instances representing the same
2504         low-level connection (eg when you use both SessionBus() and
2505         StarterBus() in same process), but it's a lot better now than it
2506         was.
2507
2508         * python/dbus_bindings.pyx: Add constants with the return values
2509         for bus_request_name().
2510
2511         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2512         and retrieve the same instances for the same name, so deletion can be
2513         done with refcounting. Also now throws some kind of error if you
2514         don't actually get the name you requested, unlike previously...
2515
2516         * test/python/test-client.py: Add tests for instance caching of buses
2517         and bus name objects.
2518
2519 2005-11-04  Robert McQueen  <robot101@debian.org>
2520
2521         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2522         marshalling of boolean values. Add some booleans to the values in
2523         the test client.
2524
2525         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2526         argument to the dbus.service.method decorator, which allows you to
2527         name arguments to take two callback functions for replying with
2528         return values or an exception.
2529
2530         * test/python/test-client.py, test/python/test-service.py: Add test
2531         case using asynchronous method reply functions, both return values and
2532         errors, and from within both the function itself and from a mainloop
2533         callback.
2534
2535         * python/decorators.py, python/service.py: Perform checking that the
2536         number of method/signal arguments matches the number of types in the
2537         signature at class loading time, not when you first introspect the
2538         class.
2539
2540         * python/service.py: Remove debug print left by the last commit.
2541
2542 2005-11-03  Robert McQueen  <robot101@debian.org>
2543
2544         * python/service.py: Heavy refactoring of method invocation, with
2545         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2546         in favour of a new _message_cb that uses seperate functions for
2547         looking up the method to call, marshalling the return values, and
2548         sending exceptions as errors, and is easier to follow as a
2549         consequence.  Fixes some corner cases about returning things that
2550         don't match your declared out_signature, allows exceptions to define
2551         _dbus_error_name and have it be sent over the bus as the error name,
2552         and paves the way for cool stuff like heeding the message no reply
2553         flag, asynchronous method implementations, informing the method of the
2554         sender, and including backtraces in the error messages.
2555
2556         * test/python/test-client.py: Catch and print exceptions thrown in the
2557         async callback tests, rather than passing them to the low-level
2558         bindings to be ignored in a noisy and frustrating manner.
2559
2560 2005-11-03  Robert McQueen  <robot101@debian.org>
2561
2562         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2563         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2564         tweak others to be consistent.
2565
2566         * test/python/test-client.py: Tweak output of testInheritance.
2567
2568 2005-10-29  Robert McQueen  <robot101@debian.org>
2569
2570         * python/service.py: Major changes to allow multiple inheritance
2571         from classes that define D-Bus interfaces:
2572         
2573          1. Create a new Interface class which is the parent class of
2574             Object, and make the ObjectType metaclass into InterfaceType.
2575         
2576          2. Patch written with Rob Taylor to replace use of method_vtable
2577             with code that walks the class's __MRO__ (method resolution order)
2578             to behave like Python does when invoking methods and allow
2579             overriding as you'd expect. Code is quite tricky because
2580             we have to find two methods, the one to invoke which has the
2581             right name and isn't decorated with the /wrong/ interface,
2582             and the one to pick up the signatures from which is decorated
2583             with the right interface.
2584         
2585             The same caveats apply as to normal multiple inheritance -
2586             this has undefined behaviour if you try and inherit from two
2587             classes that define a method with the same name but are
2588             decorated with different interfaces. You should decorate
2589             your overriding method with the interface you want.
2590         
2591          3. Replace grungy introspection XML generation code in the metaclass
2592             with dictionaries that cope correctly with multiple inheritance
2593             and the overriding of methods. This also uses the signature
2594             decorations to provide correct introspection data, including
2595             the debut appearance of the types of your return values. :D
2596
2597         * test/python/test-client.py, test/python/test-service.py: Add a test
2598         case to try invoking an method that overrides one inherited from a
2599         D-Bus interface class.
2600
2601 2005-10-29  Robert McQueen  <robot101@debian.org>
2602
2603         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2604         Add checking for the end of struct character when marshalling a
2605         struct in MessageIter.append_strict.
2606
2607         * python/examples/example-service.py,
2608         python/examples/gconf-proxy-service.py,
2609         python/examples/gconf-proxy-service2.py: Update to use gobject
2610         mainloop directly rather than appearing to depend on gtk.
2611
2612         * python/test/test-client.py, python/test/test-server.py: Remove
2613         obsolete and broken test scripts for old bindings. We have up to date
2614         and working tests in test/python/.
2615
2616 2005-10-29  Robert McQueen  <robot101@debian.org>
2617
2618         * python/decorators.py: Add optional arguments to the method and
2619         signal decorators to allow you to specify the signature of arguments
2620         and return values. Preserve the doc strings of signal functions in the
2621         decorated version, for pydoc and friends.
2622
2623         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2624         parse_signature_block function with an iterable dbus.Signature()
2625         type. Fix a bug in MessageIter.append_strict where you could append
2626         anything by claiming it was a string.
2627
2628         * python/service.py: Use the out_signature decoration on methods to
2629         marshal return values, meaning you no longer require dbus.Array()
2630         or dbus.Dictionary() to indicate the type when returning empty
2631         arrays or dictionaries. Fix a bug where exceptions which are defined
2632         in __main__ are not turned into error replies.
2633
2634         * test/python/test-client.py, test/python/test-service.py: Add test
2635         for correct marshalling of return values according to out_signature.
2636         Fix a bug in the async call test where the error_handler is missing a
2637         self argument.
2638
2639 2005-10-29  Robert McQueen  <robot101@debian.org>
2640
2641         * glib/Makefile.am, glib/examples/Makefile.am,
2642         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2643         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2644
2645         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2646
2647         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2648         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2649         the command line.
2650
2651 2005-10-27  Ross Burton  <ross@openedhand.com>
2652
2653         * dbus/dbus-marshal-header.c:
2654         Remove dead code.
2655
2656         * glib/dbus-gobject.c:
2657         Stop compiler warning.
2658
2659 2005-10-25  Ross Burton  <ross@openedhand.com>
2660
2661         * dbus/dbus-auth.c:
2662         * dbus/dbus-server-unix.c:
2663         * dbus/dbus-transport-unix.c:
2664         * glib/dbus-gmain.c:
2665         * glib/dbus-gobject.c:
2666         Add some const keywords.
2667
2668 2005-10-25  Ross Burton  <ross@openedhand.com>
2669
2670         * doc/dbus-specification.xml:
2671         Document the NoReply annotation.
2672
2673         * glib/dbus-binding-tool-glib.h:
2674         * glib/dbus-binding-tool-glib.c:
2675         Respect the NoReply annotation.
2676
2677 2005-10-24  Robert McQueen <robot101@debian.org>
2678
2679         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2680         derive from unicode instead of str, and encode/decode UTF-8 when
2681         marshalling/unmarshalling bus messages
2682
2683         * python/introspect_parser.py: encode introspection data as UTF-8
2684         before passing the buffer into libxml2
2685
2686         * test/python/test-client.py: add unicode test strings
2687
2688         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2689         ignore generated python test files
2690
2691 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2692
2693         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2694         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2695         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2696
2697         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2698         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2699         when constructing struct signatures
2700
2701         * python/_dbus.py (Bus): handle private connections using the
2702         private keyword in the constructor. defaults to private=False
2703         (Bus::close): new method to close a connection to the bus
2704
2705         * python/dbus_bindings.pyx (Connection::close): renamed method
2706         was previously called disconnect
2707         (bus_get): now supports getting a private connection
2708
2709         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2710         keyword is set to True.  if it is, execute the method without waiting
2711         for a reply
2712         (ProxyObject::_introspect_execute_queue): new method for executing
2713         all the pending methods that were waiting for the introspect to
2714         finish.  this is called when introspect either succeeds or fails
2715         (ProxyObject::_introspect_error_handler): call queued methods
2716
2717 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2718
2719         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2720         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2721
2722         * python/service.py (Object::_message_cb): handle exceptions correctly
2723         by sending them over the wire to the calling app.  This makes sure
2724         the client returns immediately instead of waiting the 15 seconds to
2725         timeout.
2726
2727         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2728         Add a test to benchmark how long it takes to introspect a service and 
2729         call a method which returns a large element (pretty fast)
2730
2731         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2732         method which pushes a lot of data
2733
2734 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2735
2736         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2737         reclaim memory outside of the loop and use del istead of just setting
2738         the key to None
2739
2740 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2741
2742         * python/service.py (ObjectType::_reflect_on_signal): Always close
2743         signal tag even when there are no arguments
2744
2745 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2746
2747         * configure.in: Set mono, mono-docs and Qt3 to default
2748         to no instead of auto when building.  These bindings do not
2749         have full time maintainers and will not be supported for the
2750         1.0 release.
2751
2752 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2753
2754         patches from Michael Krivoruchko <misha at sun.com>: 
2755         
2756         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2757         _dbus_connection_message_sent, 
2758         _dbus_connection_send_preallocated_unlocked_no_update, 
2759         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2760         is NULL when calling _dbus_verbose
2761
2762         * configure.in: check for functions getpeerucred and getpeereid
2763
2764         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2765         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2766         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2767         Patch was only tested on Solaris 10 x86 so it might be issues
2768         with other platforms (i.e. BSDs and MacOSX)
2769         
2770
2771 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2772
2773         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2774         instead of marshal basic so we can handle recursive types in a variant
2775
2776         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2777         in variants
2778
2779         * test/glib/test-service-glib.c, test-service-glib.xml
2780         (my_object_echo_variant [EchoVariant], 
2781         my_object_process_variant_of_array_of_ints123
2782         [ProcessVariantOfArrayOfInts123]): 
2783         Add two test methods
2784
2785         * python/introspect_parser.py: New module for parsing introspect
2786         data.
2787
2788         * python/dbus_bindings.pyx:
2789         (various places): when throwing errors fix to use errormsg instead 
2790         of message local variable because Pyrex can get confused with other 
2791         message variables (initial patch by Robert McQueen 
2792         <robert.mcqueen at collabora.co.uk>)
2793         (MessageIter::parse_signature_block): new method for getting the next
2794         block in a signiture.
2795         (MessageIter::append_strict): new method for appending values strictly
2796         using the passed in signature instead of guessing at the type
2797         (MessageItter:: append_dict, append_struct, append_array): use 
2798         signatures to marshal children if the signature is available
2799         
2800         * python/exceptions.py (IntrospectionParserException): new exception
2801
2802         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2803         introspected signatures if available, else we fall back to the
2804         old way of doing things.
2805         (ProxyObject::_introspect_reply_handler ): parse introspection data
2806         
2807         * python/service.py (ObjectType::_reflect_on_method): Properly
2808         terminate <method> if there are no args in the reflection data
2809
2810         * test/python/test-client.py: add tests for talking with the GLib
2811         test server.  This gives us better coverage for introspection since
2812         python to python will always generate arguments as variants.  It also
2813         allows us to test the robustness of the GLib bindings and interlanguage
2814         communications.
2815
2816         
2817 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2818
2819         * bus/driver.c (bus_driver_handle_introspect): Add signals
2820         to the introspect data. (patch from Daniel P. Berrange 
2821         <dan at berrange.com>)
2822
2823         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2824         
2825         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2826         _dbus_connection_run_builtin_filters): Changed these to
2827         be unlock_no_update functions and call 
2828         _dbus_connection_send_unlocked_no_update instead of
2829         dbus_connection_send to avoid locking errors.
2830         
2831         * doc/TODO: Removed the make Ping test TODO
2832         
2833 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2834
2835         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2836         We now copy the message from a DBusError and then free 
2837         the error object befor throwing the error
2838
2839         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2840         DBusBindingOutputMode enum which was causing a warning.
2841         #include <time.h> so using time_t is explicitly defined
2842
2843 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2844
2845         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2846         - dbus/dbus-bus.c
2847         (internal_bus_get): new method that take over the heavy lifting
2848         of dbus_bus_get and adds the ability to get a private connection
2849         to the bus
2850         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2851         interface as in previous versions
2852         (dbus_bus_get_private): new method that is a wrapper to 
2853         internal_bus_get to get a private connection to the bus
2854
2855         - dbus/dbus-bus.h
2856         (dbus_bus_get_private): add as a public libdbus interface
2857
2858         - dbus-1.pc.in: output system_bus_default_address and 
2859         sysconfdir variables so apps can use them when compiling
2860
2861 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2862         * dbus/qt: New Qt bindings
2863
2864 2005-09-12  Waldo Bastian  <bastian@kde.org>
2865
2866         * dbus/dbus-marshal-validate.c,
2867         doc/dbus-specification.xml, test/Makefile.am,
2868         test/test-names.c: allow hyphens in bus names.
2869
2870 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2871
2872         * test/data/auth/fallback.auth-script: we don't
2873         retry the EXTERNAL method when we know its going
2874         to fail anymore.
2875
2876 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2877
2878         * dbus/dbus-connection-internal.h: rename
2879         (add|remove|toggle)_(watch|timeout) to unlocked()
2880         
2881         * dbus/dbus-connection.c: ditto.
2882         
2883         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2884         Update some callers for the renaming.
2885
2886 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2887
2888         * dbus/dbus-auth.c: (record_mechanisms): don't
2889         retry the first auth mechanism because we know
2890         we're just going to get rejected again.
2891         
2892         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2893         Fix thinko ... and what a nasty little bugger to
2894         track down you were ...
2895
2896         * dbus/dbus-connection.c:
2897         (_dbus_connection_add_watch),
2898         (_dbus_connection_remove_watch): add note about
2899         these needing the connection to be locked.
2900         (_dbus_connection_get_dispatch_status_unlocked):
2901         set status to DATA_REMAINS when we queue the
2902         disconnected message.
2903         
2904         * bus/dispatch.c:
2905         (bus_dispatch): fix warning.
2906         (check_existent_service_no_auto_start):
2907         Expect ChildSignaled error too.
2908         (check_existent_hello_from_self): fix another
2909         couple of warnings.
2910         
2911 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2912
2913         Patches from James Willcox <snorp@snorp.net>
2914
2915         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2916
2917         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2918         support array "out" parameters.
2919
2920         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2921         for 16-bit int support.
2922
2923 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2924
2925         * Released 0.50
2926
2927         * Patch from Steve Grubb:
2928         - bus/activation.c (bus_activation_service_reload_test): clean up
2929         some indentation
2930         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2931         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2932         buffer overflows in the test suite.  This is non critical because
2933         it can not be exploited and this code is only run when doing a 
2934         make check.
2935
2936         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2937         - configure.in: Don't check and link against kdecore, only qt headers
2938         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2939         - gcj/org/freedesktop/dbus/Makefile.am:
2940         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2941         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2942         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2943         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2944         - tools/Makefile.am: Add platform extentions to binaries 
2945         (i.e. .exe on windows)
2946
2947         * configure.in: 
2948         - Make it so if no suitable version of python is found we only 
2949         disable building python instead of exiting the configure script
2950         - Require version 2.4 of glib for glib bindings
2951         - Up version to 0.50
2952
2953         * python/__init__.py: Sync version with libdbus to (0,50,0)
2954         
2955 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2956
2957         * dbus/dbus-object-tree.c (find_subtree_recurse):
2958         a couple of optimizations (bug #710):
2959         - do a binary search in the tree
2960         - insert a new child at the right place directly, no need for
2961           qsort anymore
2962         - do the "double alloc" thing when allocating children
2963
2964 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2965
2966         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2967
2968         * python/dbus_bindings.pyx: Memory management foo
2969         (global): remove hacky _user_data_references global list
2970         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2971         tuples. Unref user_data
2972         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2973         (Connection::__del__): Remove and replace with __dealloc__ method
2974         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2975         to keep tuple from being deallocated instead of the global var hack
2976         (Connection::register_object_path): Stuff user_data into a tuple.
2977         Use Py_INCREF to keep tuple from being deallocated instead of the 
2978         global var hack
2979         (Connection::register_fallback): Stuff user_data into a tuple.
2980         Use Py_INCREF to keep tuple from being deallocated instead of the 
2981         global var hack
2982         (GIL_safe_pending_call_notification): Don't unref the message
2983         because it gets unreffed when going out of scope.  Py_XDECREF
2984         the user_data
2985         (PendingCall::__del__): Remove and replace with __dealloc__ method
2986         (PendingCall::set_notify): ref the pending call because we will
2987         need it to stick around for when the notify callback gets called
2988         (Message::__del__): Remove and replace with __dealloc__ method
2989
2990         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2991         gthreads_init to match up with the dbus call
2992
2993         * python/glib.py (init_threads): Changed to threads_init to match
2994         up with gobject.threads_init().  init_threads is kept for backwards
2995         compat but will most likely be deprecated in the future
2996
2997         * test/python/test-client.py: 
2998         - revamp to use Python's unittest functionality
2999         - add async call tests
3000         - setup threads in glib and dbus so we make sure locks are working
3001         
3002 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3003
3004         * python/dbus_bindings.pyx 
3005         (_pending_call_notification, cunregister_function_handler, 
3006         cmessage_function_handler): All callback functions have been rearranged 
3007         to workaround a bug in Pyrex when working with the GIL which is Python's 
3008         global lock when dealing with threads.  They have been split into
3009         a wrapper function (which assumes the name of the old function) and
3010         a _GIL_safe_<function name> function which contains the functionality
3011         of the old function.  This ensures that Pyrex does not write code
3012         the lock is released.
3013         
3014
3015 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3016
3017         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3018         GIL global lock when calling back into Python
3019
3020 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3021
3022         * Release 0.36.2
3023
3024         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3025
3026         * bus/policy.c (bus_policy_allow_user): change default "user is
3027         allowed" to be "user has same uid as the bus itself"; any
3028         allow/deny rules will override.
3029
3030         * bus/session.conf.in: don't allow all users, since now by default
3031         the user that ran the bus can connect.
3032
3033 2005-08-26  Colin Walters  <walters@verbum.org>
3034
3035         * tools/dbus-print-message.c (print_message): Flush stdout
3036         after printing a message, so that redirecting to a file, then
3037         hitting Ctrl-C works.
3038
3039 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3040
3041         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3042         (EmptyMessage): new class that subclasses Message.  This is a workaround
3043         to a Pyrex bug that fails to call __del__ when the Message object goes out
3044         of scope.  For some reason subclassing Message fixes this bug
3045         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3046         - s/Message(_create=0)/EmptyMessage everywhere else
3047         
3048         * test/python/test-{server|client}.py: add the python/.libs directory
3049         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3050         get picked up from the system
3051
3052 2005-08-25  Colin Walters  <walters@verbum.org>
3053
3054         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3055         to Ryan Lortie for the suggestion.
3056
3057 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3058
3059         * test/python: Add python regression test
3060
3061         * configure.in: Add test/python/Makefile
3062
3063         * test/Makefile.am: Add the python directory to SUBDIRS
3064
3065 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3066
3067         * Release 0.36.1
3068
3069         * python/_dbus.py: 
3070         (Interface::connect_to_signal): propigate keywords for match on args
3071         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3072
3073         * python/proxies.py (ProxyObject::connect_to_signal):
3074         propigate keywords for match on args
3075
3076         * Makefile.am: point everything to pyexecdir since python borks
3077         on multilib
3078
3079 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3080
3081         * Release 0.36
3082
3083 2005-08-23  Colin Walters  <walters@verbum.org>
3084
3085         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3086
3087 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3088
3089         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3090         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3091         of defining DBusConnection ourselves.
3092
3093 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3094
3095         * python/dbus.pth: New path file to fix up problems when installing
3096         c libraries to lib64 and python files to lib.
3097
3098         * python/Makefile.am: install dbus.pth in the correct spot
3099
3100 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3101         * ChangeLog: clean up my last entry a bit
3102
3103         * doc/introspect.xsl: New stylesheet for converting introspection data
3104         into browser renderable xhtml. Contributed by Lennart Poettering.
3105
3106         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3107         Poettering.
3108
3109         * doc/dbus-tutorial.xml: 
3110         - Add Colin Walter to the Authors section for authoring the GLib
3111         section
3112         - Add descriptions of the new signature and type functionality
3113         in the Python complex type mapping section
3114         - Add a sidenote on the new args matching functionality in 
3115         the Python bindings
3116         - Fixed up some of the examples to use the gobject.MainLoop
3117         instead of gtk.main
3118         
3119         * python/_dbus.py:
3120         (Bus::_create_args_dict): New. Converts a hash of arg matches
3121         to a more useable format
3122         (Bus::add_signal_receiver): add a **keywords parameter for catching
3123         arg match parameters
3124         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3125         arg match parameters
3126         
3127         * python/matchrules.py:
3128         (MatchTree::exec_matches): Check for arg matches
3129         (SignalMatchRule::add_args_match): New method
3130         (SignalMatchRule::execute): Added args_list parameter as an optimization
3131         so we don't have to marshal the args more than once
3132         (SignalMatchRule::match_args_from_list): New method that checks to see
3133         if the rule's arg matches match an argument list.  Only arguments
3134         set in the rule are checked.
3135         (SignalMatchRule::match_args_from_rule): New method that checks to see
3136         if the rule's arg matches match another rule's.  All args have to match
3137         in order for this method to return true.  If either rule has more args
3138         then it is not a match.
3139         (SignalMatchRule::is_match): Add args match
3140         (SignalMatchRule::repr): Add args to the final output if they exist
3141
3142 2005-08-17  Ross Burton  <ross@burtonini.com>
3143
3144         * glib/dbus-gproxy.c:
3145         (dbus_g_proxy_call_no_reply): unref the message once sent.
3146         (dbus_g_proxy_call): protect against NULL proxy.
3147
3148 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3149
3150         * python/__init__.py: Version updated (0, 43, 0)
3151         
3152         * python/dbus_bindings.pyx: 
3153         - Fixed type objects to have self passed into __init__
3154         - Added the Variant type
3155         - Add the ability to specify types or signatures for Array, Variant 
3156         and Dictionary
3157         (Connection::send_with_reply_handlers): return a PendingCall object
3158         (_pending_call_notification): handle the case when an error is returned 
3159         without an error message in the body
3160         (MessageIter::get_boolean): return True or False instead of an integer
3161         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3162         and add checks for objects with embeded signatures or types (Array, 
3163         Variant and Dictionary)
3164         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3165         (MessageIter::append_dict): handle embeded types or signatures
3166         (MessageIter::append_array): handle embeded types or signatures
3167         (MessageIter::append_variant): new method
3168         
3169         * python/proxies.py:
3170         (DeferedMethod): New. Dummy executable object used when queuing calls 
3171         blocking on introspection data
3172         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3173         or shorter timeouts for method calls
3174         (ProxyObject): Add first pass at an introspection state machine
3175         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3176         introspection. 
3177         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3178         the usual mechanisms for sending messages.  This is to avoid a deadlock
3179         where the Intospect call would be queued waiting for the Introspect 
3180         call to finish ;-)
3181         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3182         when introspection returns with no error
3183         (ProxyObject::_introspect_error_handler): New.  This method is called 
3184         when introspection encounters an error
3185         (ProxyObject::__getattr__): Code to handle different introspection 
3186         states.  Queue async calls or block blocking calls if we are 
3187         introspecting.  Pass through as normal if we are not or are done with 
3188         introspecting.
3189         
3190         * python/service.py: Import signal and method from decorators.py
3191
3192         * python/types.py: Add Variant type
3193
3194 2005-08-16  Colin Walters  <walters@verbum.org>
3195
3196         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3197         DBusError message is NULL.
3198
3199 2005-08-09  Havoc Pennington  <hp@redhat.com>
3200
3201         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3202         malloc'd copy of the name parameter
3203
3204 2005-08-09  Havoc Pennington  <hp@redhat.com>
3205
3206         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3207         warning if the reply serial is set to 0
3208
3209 2005-08-04  Colin Walters  <walters@verbum.org>
3210
3211         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3212         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3213         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3214         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3215         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3216         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3217         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3218         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3219         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3220         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3221         
3222         Prefix name with _ to ensure they're not exported.  All callers
3223         updated.
3224
3225         * glib/dbus-gvalue.c (typecode_to_gtype)
3226         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3227         (signature_iter_to_g_type_dict)
3228         (signature_iter_to_g_type_array)
3229         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3230         (dbus_gtypes_from_arg_signature):
3231         Move to dbus-gsignature.c.
3232
3233         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3234         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3235         (dbus_binding_tool_output_glib_client): Ditto.
3236
3237         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3238         and dbus-gsignature.h
3239
3240         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3241         unused variable.
3242
3243 2005-08-03  Colin Walters  <walters@verbum.org>
3244
3245         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3246         catch any incompatible changes accidentally made.
3247
3248 2005-08-03  Havoc Pennington  <hp@redhat.com>
3249
3250         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3251         typo, from Julien Puydt
3252
3253         * bus/connection.c (bus_connection_disconnected): we were always
3254         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3255
3256 2005-08-01  Colin Walters  <walters@verbum.org>
3257
3258         Patch from Joe Markus Clarke:   
3259         
3260         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3261         use-after-free.
3262
3263 2005-08-01  Colin Walters  <walters@verbum.org>
3264         
3265         Patch from Joe Markus Clarke:   
3266         
3267         * tools/dbus-send.c (main): 
3268         
3269         Don't use C99 style initializers (bug #3933).
3270         
3271 2005-08-01  Colin Walters  <walters@verbum.org>
3272
3273         Patch from Joe Markus Clarke:   
3274
3275         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3276         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3277         * glib/dbus-gobject.c (write_interface):
3278
3279         Don't use C99 style initializers (bug #3933).
3280
3281 2005-07-31  Havoc Pennington  <hp@redhat.com>
3282
3283         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3284         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3285
3286 2005-07-30  Havoc Pennington  <hp@redhat.com>
3287
3288         * fix a bunch of Doxygen warnings and mistakes
3289
3290 2005-07-30  Havoc Pennington  <hp@redhat.com>
3291
3292         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3293         DBUS_BUILD_TESTS since it's now used in production code
3294
3295 2005-07-29  Havoc Pennington  <hp@redhat.com>
3296
3297         * test/glib/test-profile.c (write_junk): initialize the junk
3298         buffer so valgrind doesn't have a breakdown
3299
3300 2005-07-29  Havoc Pennington  <hp@redhat.com>
3301
3302         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3303         (match_rule_matches): remove unused arg
3304         (test_matching): add tests for match_rule_matches()
3305
3306         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3307         do arg0='foo' arg5='bar' in the match rules
3308         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3309
3310         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3311
3312 2005-07-29  Ross Burton  <ross@openedhand.com>
3313
3314         * dbus/dbus-connection.c:
3315         Don't create a DBusCondVar which is never used.
3316
3317 2005-07-27  Ross Burton  <ross@openedhand.com>
3318
3319         * dbus/dbus-message.c:
3320         Reduce the size of the maximum cached message to 10K.
3321
3322 2005-07-25  Ross Burton  <ross@openedhand.com>
3323
3324         * glib/dbus-gproxy.c:
3325         Remove matches when all proxies are unregistered.
3326
3327 2005-07-24  Colin Walters  <walters@verbum.org>
3328
3329         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3330         typedata; recursive arrays won't have it.
3331
3332         * test/glib/test-dbus-glib.c:
3333         * test/glib/test-service-glib.c:
3334         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3335         
3336 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3337
3338         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3339         proxies.py, service.py: Cleanup of code after running it through the
3340         pyflakes code checker mostly dealing with undefined names.  
3341         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3342
3343 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3344
3345         * NEWS: Update to 0.35.2
3346
3347 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3348
3349         * python/_dbus.py: Remove import of the dbus.services
3350         module as it no longer exists (patch from Dimitur Kirov)
3351
3352         * python/service.py (Object::__init__): Fixed typo
3353         s/name/bus_name (patch from Dimitur Kirov)
3354
3355         * python/examples/example-signal-emitter.py: import dbus.glib
3356         to get the main loop and use glib mainloop instead of gtk so
3357         X doesn't have to be running.
3358
3359         * python/examples/example-signal-recipient.py: import dbus.glib
3360         to get the main loop and use glib mainloop instead of gtk so
3361         X doesn't have to be running. Import the decorators module
3362         directly.
3363
3364         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3365         didn't pick up on but are needed to build
3366
3367         * configure.in: upped version to 0.35.2
3368
3369         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3370         added Colin Walters' SELinux API rename patch from head 
3371         s/unix sercurity context/selinux security context/
3372
3373 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3374
3375         * python/Makefile.am: dbus_binding.pxd.in should be included 
3376         in EXTRA_DIST not dbus_binding.pxd
3377         fix up $(srcdir) hopefully for the last time
3378
3379         * NEWS: Update to 0.35.1
3380
3381 2005-07-16  Colin Walters  <walters@verbum.org>
3382
3383         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3384         from bus_driver_handle_get_connection_unix_security_context.  Update for
3385         error usage.
3386         (message_handlers): Update for renames.
3387
3388         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3389         _dbus_string_init failure correctly.
3390         (bus_selinux_append_context): Convert SID to context.  Append it
3391         as a byte array.
3392         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3393         hasn't been called.
3394
3395         * bus/selinux.h: Update prototype.
3396
3397         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3398         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3399
3400 2005-07-15  Colin Walters  <walters@verbum.org>
3401
3402         * doc/TODO: Add note about convenience wrappers.
3403
3404 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3405
3406         * NEWS: Update to 0.35
3407
3408 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3409
3410         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3411         so distcheck doesn't fail
3412
3413         * glib/examples/Makefile.am: Add example-service.xml and 
3414         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3415
3416         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3417         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3418
3419         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3420         compiler looks in the right places during distcheck
3421
3422 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3423
3424         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3425         to fail
3426
3427 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3428
3429         * python/examples/example-service.py,
3430         python/examples/example-signal-emitter.py: Fixed up examples
3431         for API changes
3432
3433 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3434
3435         * python/__init__.py: Upped to version (0,42,0) because of
3436         the API change
3437
3438 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3439
3440         * ChangeLog: fix date in last entry
3441
3442         * configure.in, bus/system.conf.in: add the ability to configure 
3443         the system bus user at compiletime with the --with-dbus-user flag
3444         (patch from Kristof Vansant)
3445
3446 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3447
3448         * bus/dispatch.c, test/test-service.c: Add testcase
3449         for sending messages to oneself (TODO item).
3450
3451         * python/service.py (class Object): Swap ordering of bus_name 
3452         and object_path parameters to better support inheritance.
3453
3454         * doc/dbus-tutorial.xml: change Python docs to reflect change
3455         in parameter ordering and fix the inheritance section.
3456
3457         * doc/TODO: remove sending message to oneself TODO item
3458
3459 2005-07-15  Ross Burton  <ross@openedhand.com>
3460
3461         * glib/dbus-gproxy.c:
3462         Fix a leak when calling methods via the proxy.
3463
3464 2005-07-15  Colin Walters  <walters@verbum.org>
3465
3466         * bus/selinux.c (bus_selinux_append_context): Wrap in
3467         HAVE_SELINUX.
3468
3469 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3470
3471         * python/_dbus.py (Bus::remove_signal_receiver):
3472         don't add a callback to the match if none has been passed in
3473         
3474         * python/matchrules.py (SignalMatchTree::remove): if the rule
3475         being matched does not have a callback treat it as a wildcard
3476         fix matching logic
3477
3478         * doc/dbus-tutorial.xml: Add Python tutorial
3479
3480 2005-07-14  Colin Walters  <walters@verbum.org>
3481
3482         * bus/driver.c
3483         (bus_driver_handle_get_connection_unix_security_context): New function.
3484         (message_handlers): Add.
3485
3486         * bus/selinux.c (bus_selinux_append_context): New function; appends
3487         security context to message.
3488
3489         * bus/selinux.h: Prototype.
3490
3491         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3492
3493 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3494
3495         * bus/activation.c: clean up all tabs to be 8 spaces 
3496         (bus_activation_activate_service): make sure we clean up
3497         if activation fails
3498
3499         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3500         (check_shell_fail_service_auto_start): New function
3501         tests to make sure we get fail properly when trying to auto start a service
3502         with a faulty command line
3503         (check_shell_service_success_auto_start): New function tests to make sure
3504         auto started services get the arguments on the command line
3505
3506         * test/test-shell-service.c: Added service for testing auto-starting with 
3507         command line arguments
3508
3509         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3510         test/data/valid-service-files/debug-shell-echo-success.service.in:
3511         Added service files for testing auto-starting with command line arguments
3512
3513         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3514
3515 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3516
3517         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3518         
3519         * dbus/Makefile.am: added new files to build.
3520
3521         * bus/activation.c (bus_activation_activate_service): support
3522         activation commands with parameters.
3523
3524         * test/shell-test.c: added test program for the shell parsing
3525         code.
3526
3527 2005-07-13  David Zeuthen  <davidz@redhat.com>
3528
3529         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3530         64 bit signed and unsigned parameters
3531
3532 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3533
3534         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3535
3536         * python/service.py (class Name): renamed BusName to make it clearer
3537         what the object is for (a name on the bus)
3538
3539         * python/examples/example-service.py,
3540         python/examples/example-signal-emitter.py: change the Name object to
3541         BusName
3542
3543 2005-07-12  Colin Walters  <walters@verbum.org>
3544
3545         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3546
3547         * tools/dbus-launch.c: Include sys/select.h.
3548
3549 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3550         * python/dbus_bindings.pyx.in: removed
3551
3552         * python/dbus_bindings.pyx: Added.
3553         - Fixed some memleaks (patch from 
3554         Sean Meiners <sean.meiners@linspireinc.com>)
3555         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3556         own pxd file (Pyrex definition)
3557         - Broke out glib dependancies into its own pyx module
3558         
3559         * python/dbus_bindings.pdx: Added.
3560         - Defines C class Connection for exporting to other modules
3561
3562         * python/dbus_glib_bindings.pyx: Added.
3563         - New module to handle lowlevel dbus-glib mainloop integration
3564
3565         * python/glib.py: Added.
3566         - Registers the glib mainloop when you import this module
3567
3568         * python/services.py: Removed (renamed to service.py)
3569         
3570         * python/service.py: Added.
3571         - (class Server): renamed Name
3572
3573         * python/__init__.py: Bump ro version (0,41,0)
3574         -don't import the decorators or service module
3575         by default.  These now reside in the dbus.service namespace
3576
3577         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3578         setup function on creation 
3579
3580         * python/examples/example-service.py,
3581         python/examples/example-signal-emitter.py: update examples
3582
3583         * python/examples/gconf-proxy-service.py,
3584         python/examples/gconf-proxy-service2.py: TODO fix these up
3585
3586         * doc/TODO: Addition
3587         - Added a Python Bindings 1.0 section
3588         - added "Add match on args or match on details to match rules"
3589
3590
3591 2005-07-12  Colin Walters  <walters@verbum.org>
3592
3593         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3594         (statemachine-glue.h): 
3595         * glib/examples/Makefile.am (example-service-glue.h) 
3596         (example-signal-emitter-glue.h): 
3597         * glib/Makefile.am (dbus-glib-error-switch.h): 
3598         Add libtool --mode=execute so we use the built library instead
3599         of any installed one.
3600
3601 2005-07-11  Colin Walters  <walters@verbum.org>
3602
3603         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3604         (dbus_g_value_types_init): Remove assertion.
3605         (dbus_g_value_get_g_type, dbus_g_value_open)
3606         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3607         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3608         functions related to DBusGValue.  Now we marshal/demarshal
3609         structures as GValueArray.
3610         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3611         structures.
3612         (signature_iter_to_g_type_array): Don't call
3613         signature_iter_to_g_type_struct.
3614         (signature_iter_to_g_type_struct): Delete.
3615         (dbus_gvalue_to_signature): Delete.
3616         (dbus_gvalue_to_signature): New function with same name as other
3617         one; we can convert structures to signatures.
3618         (demarshal_valuearray): New function.
3619         (get_type_demarshaller): Use it.
3620         (demarshal_recurse): Delete.
3621         (marshal_proxy): New function.
3622         (marshal_map): Warn if we can't determine signature from type.
3623         (marshal_collection_ptrarray): Ditto.
3624         (marshal_collection_array): Ditto.
3625         (get_type_marshaller): Use marshal_valuearray.
3626         (marshal_recurse): Delete.
3627         (_dbus_gvalue_test): Add some tests.
3628
3629         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3630         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3631         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3632         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3633         (dbus_g_value_free): Remove prototypes.
3634
3635         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3636         G_TYPE_VALUE_ARRAY.
3637
3638         * glib/examples/example-service.c:
3639         * glib/examples/example-client.c: Implement GetTuple.
3640
3641         * test/glib/test-dbus-glib.c:
3642         * test/glib/test-service-glib.c:
3643         * test/glib/test-service-glib.xml: Add structure tests.
3644
3645 2005-07-10  Colin Walters  <walters@verbum.org>
3646
3647         * doc/TODO: Knock off some GLib items with this patch.
3648
3649         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3650         (_dbus_gvalue_signals_error): New functions.
3651
3652         * glib/dbus-gvalue-utils.h: Prototype them.
3653
3654         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3655         and change to not output const/retval flags for input args.  All
3656         callers updated.
3657         (invoke_object_method): Refactor to handle return values.  Add
3658         some more comments in various places.  Remove debug g_print.
3659
3660         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3661
3662         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3663         Handle G_TYPE_NONE.
3664         (compute_gsignature): New function; refactored from code from
3665         compute_marshaller and compute_marshaller_name.  Enhance to
3666         handle return values and async ops more cleanly.  Update for
3667         async ops returning NONE instead of BOOLEAN.
3668         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3669         and output appropriate string.
3670         (generate_glue): Handle return value annotation.  Also don't dump
3671         constness flag for input arguments.
3672
3673         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3674         files shared between installed library and utilities.
3675         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3676         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3677         binding tool can access gtype utility functions.
3678
3679         * test/glib/test-service-glib.c: 
3680         * test/glib/test-service-glib.xml: 
3681         * test/glib/test-dbus-glib.c: Add some tests for return values.
3682
3683 2005-07-09  Colin Walters  <walters@verbum.org>
3684
3685         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3686         argument if available, not method.
3687
3688         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3689         (invoke_object_method): First, remove some redundant
3690         GValues (object_value, error_value) in favor of working on
3691         array directly.  Second, rework constness to be less buggy.
3692         Now we iterate directly over the argument metadata instead
3693         of parallel iterating over output signature and metadata.
3694
3695         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3696
3697         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3698         annotation on input args.
3699         
3700 2005-07-09  Colin Walters  <walters@verbum.org>
3701
3702         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3703         Define.
3704
3705         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3706         annotation.
3707
3708         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3709         (method_dir_signature_from_object_info): Handle arg_iterate change.
3710         (write_interface): Ditto.
3711         (lookup_object_info): Don't barf if format_version is > 0.
3712         (invoke_object_method): Handle arg constness.
3713
3714         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3715         (arg_info_new): Create.
3716         (arg_info_unref): Destroy.
3717         (arg_info_get_annotations, arg_info_get_annotation) 
3718         (arg_info_add_annotation): New functions.
3719
3720         * glib/dbus-gidl.h: Prototype them.
3721
3722         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3723         args, disallow them in properties.
3724         (parse_annotation): Handle arg annotations.
3725
3726         * test/glib/test-service-glib.xml: 
3727         * test/glib/test-service-glib.c: Update to make some methods
3728         const.
3729
3730 2005-07-08  Colin Walters  <walters@verbum.org>
3731
3732         * test/glib/test-service-glib.xml: 
3733         * test/glib/test-service-glib.c:
3734         * test/glib/test-dbus-glib.c: Test a{sv}.
3735
3736         * glib/examples/statemachine/statemachine.c:
3737         * glib/examples/statemachine/statemachine-server.c:
3738         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3739         add progress bar, etc.
3740
3741         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3742         needed anymore due to generic array/map marshalling.
3743         (dbus_g_value_types_init): Don't register basic arrays or the
3744         string/string hash.
3745         (dbus_gtype_from_signature_iter): Don't try to recurse into
3746         variants.
3747         (dbus_gtype_to_signature): Check collection/map before type
3748         metadata.
3749         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3750         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3751         generic map creation/append functions instead of hash table
3752         specifically.
3753         (get_type_demarshaller): Handle maps.
3754         (demarshal_collection): Dispatch on collection type to either
3755         demarshal_collection_ptrarray or demarshal_collection_array.
3756         (get_type_marshaller): Handle maps.
3757         (marshal_collection): Dispatch collection type to either
3758         marshal_collection_ptrarray or marshal_collection_array.
3759         (_dbus_gvalue_test): New test.
3760
3761         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3762         (hash_free_from_gtype): Use it to free GValues.
3763         (hashtable_append): New function.
3764         (ptrarray_append): Fix prototype.
3765         (slist_append): Ditto.
3766         (_dbus_gvalue_utils_test): Extend tests.
3767
3768         * glib/dbus-gtype-specialized.c
3769         (dbus_g_type_specialized_init_append): Renamed from
3770         dbus_g_type_specialized_collection_init_append.  Remove const from
3771         value, since we steal it.
3772         (dbus_g_type_specialized_map_append): New function.
3773
3774         * glib/dbus-gtype-specialized.h: Update prototypes.
3775         Add DBusGTypeSpecializedMapAppendFunc.
3776
3777         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3778         _dbus_gvalue_test.
3779         
3780         * glib/dbus-gtest.h: Prototype it.
3781
3782 2005-07-08  Ross Burton  <ross@openedhand.com>
3783
3784         * dbus/dbus-glib.h:
3785         Add DBysGAsyncData for the async bindings.
3786
3787         * glib/dbus-binding-tool-glib.c:
3788         Re-enable the async bindings.
3789
3790         * test/glib/test-dbus-glib.c:
3791         Add a test for the generated async bindings.
3792
3793 2005-07-08  Colin Walters  <walters@verbum.org>
3794
3795         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3796         connection concept.
3797         
3798 2005-07-08  Colin Walters  <walters@verbum.org>
3799         
3800         * tools/Makefile.am: Kill of print-introspect in favor of using
3801         dbus-send --print-reply=literal.
3802
3803         * test/glib/test-service-glib.xml: 
3804         * test/glib/test-service-glib.c (my_object_get_objs): New test
3805         for "ao".
3806
3807         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3808         (main): Test GetObjs.
3809
3810         * glib/examples/statemachine/Makefile.am:
3811         * glib/examples/statemachine/sm-marshal.list:
3812         * glib/examples/statemachine/statemachine-client.c:
3813         * glib/examples/statemachine/statemachine-server.c:
3814         * glib/examples/statemachine/statemachine-server.xml:
3815         * glib/examples/statemachine/statemachine.c:
3816         * glib/examples/statemachine/statemachine.h:
3817         * glib/examples/statemachine/statemachine.xml:
3818
3819         New example.
3820
3821         * glib/examples/example-service.c (main): Move invocation
3822         of dbus_g_object_type_install_info earlier, to emphasize it
3823         should only be done once.
3824
3825         * glib/examples/example-signal-emitter.c (main): Ditto.
3826
3827         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3828
3829         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3830         (dbus_gvalue_marshal): Update prototypes.
3831
3832         * glib/dbus-gvalue.c: Update all marshalling functions to take
3833         const GValue instead of GValue.
3834         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3835         types.
3836         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3837         change.
3838         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3839         Return a newly-allocated string.
3840         (demarshal_proxy, demarshal_object_path, demarshal_object)
3841         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3842         we get the wrong types from message.
3843         (get_type_demarshaller): New function, extracted from
3844         dbus_gvalue_demarshal.
3845         (demarshal_collection): New function, demarshals generic
3846         collection.
3847         (dbus_gvalue_demarshal): Just invoke result of
3848         get_type_demarshaller.  Throw error if we don't have one.
3849         (marshal_garray_basic): Abort on OOM.
3850         (get_type_marshaller): New function, extracted from
3851         dbus_gvalue_marshal.
3852         (collection_marshal_iterator, marshal_collection): New functions;
3853         implements generic marshalling for an iteratable specialized
3854         collection.
3855         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3856
3857         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3858         G_TYPE_STRING.
3859         (ptrarray_value_from_gvalue): Ditto.
3860         (ptrarray_append, ptrarray_free): New functions.
3861         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3862         (slist_append, slist_end_append, slist_free): New functions.
3863         (dbus_g_type_specialized_builtins_init): Add append fuctions
3864         for GPtrArray and GSList.  Register GSList.
3865         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3866
3867         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3868         New.
3869         (dbus_g_type_specialized_collection_init_append)
3870         (dbus_g_type_specialized_collection_append)
3871         (dbus_g_type_specialized_collection_end_append): Prototype.
3872         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3873         end_append_func.
3874
3875         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3876         (dbus_g_type_specialized_collection_append) 
3877         (dbus_g_type_specialized_collection_end_append): New functions.
3878         (dbus_g_type_map_value_iterate): Take const GValue.
3879         (dbus_g_type_collection_value_iterate): Ditto.
3880
3881         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3882         _dbus_gvalue_utils_test.
3883         
3884         * glib/dbus-gtest.h: Prototype it.
3885
3886         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3887         using uninitialized owner_list.
3888         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3889         public API.
3890         (dbus_g_proxy_end_call_internal): Update to use error set
3891         from dbus_gvalue_demarshal instead of setting it here.
3892         (dbus_g_proxy_begin_call): Move return_if_fail here.
3893
3894         * glib/dbus-gobject.c (write_interface): Update for
3895         dbus_gtype_to_signature returning new string.
3896
3897         * configure.in: Add glib/examples/statemachine.
3898
3899 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3900
3901         * configure.in: Add a configure option, --with-console-auth-dir
3902         
3903         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3904         new setting.  Patch from Kay Sievers.
3905
3906 2005-07-06  Colin Walters  <walters@verbum.org>
3907
3908         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3909         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3910         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3911         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3912         Delete in favor of dbus_g_proxy_begin_call and
3913         dbus_g_proxy_cancel_call.
3914         (DBusGProxyCall, DBusGProxyCallNotify): New.
3915         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3916         data, and destroy function.  This replaces
3917         dbus_g_pending_call_set_notify.
3918         (dbus_g_proxy_cancel_call): Prototype.
3919         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3920
3921         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3922         pending_calls map.
3923         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3924         internal proxy for calls to the bus. Remove
3925         pending_nameowner_calls, now the internal proxy keeps track.
3926         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3927         pending_nameowner_calls.
3928         (got_name_owner_cb): Update prototype, and use
3929         dbus_g_proxy_end_call.
3930         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3931         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3932         favor of using internal proxy.
3933         (dbus_g_proxy_manager_unregister): Update to use
3934         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3935         (dbus_g_proxy_init): Initialize pending calls map.
3936         (dbus_g_proxy_constructor): New.
3937         (dbus_g_proxy_class_init): Add get/set property functions,
3938         constructor, and add NAME, PATH, and INTERFACE properties.
3939         (cancel_pending_call): New function.
3940         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3941         cancel them.
3942         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3943         (GPendingNotifyClosure): New structure.
3944         (d_pending_call_notify, d_pending_call_free): Moved here from
3945         dbus-glib.c.
3946         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3947         ordering.
3948         (manager_begin_bus_call): New internal function for talking to
3949         internal bus proxy.
3950         (dbus_g_proxy_new): Construct object using GObjet properties.
3951         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3952         Create closure of same, and insert call into map of pending calls.
3953         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3954         call.  Look up pending call in current set.  Remove it when we've
3955         completed.
3956         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3957         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3958         and destroy function directly.
3959         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3960         (dbus_g_proxy_call): Invoke with NULL callback.
3961         (dbus_g_proxy_cancel_call): New function, replaces
3962         dbus_g_pending_call_cancel.
3963
3964         * glib/dbus-gparser.c (validate_signature): Fix call to
3965         dbus_set_g_error.
3966
3967         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3968         New quark for attaching metadata to GType.
3969         (info_hash): Delete.
3970         (lookup_object_info): Look up using quark.
3971         (dbus_g_object_type_install_info): Check that a type is classed,
3972         not that it's an object.  Also just install type data using quark
3973         instead of using global hash.
3974
3975         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3976         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3977         (GPendingNotifyClosure): Delete.
3978         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3979         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3980
3981         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3982         client method generation until we can fix it...
3983         
3984         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3985         (load_from_service_thread_func): Ditto.
3986
3987         * tools/dbus-names-model.c (struct NamesModel): Hold
3988         DBusGProxyCall.
3989         (have_names_notify): Update prototype, use
3990         dbus_g_proxy_cancel_call.
3991         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3992
3993         * tools/dbus-monitor.c (filter_func): Update for print_message
3994         API change.
3995
3996         * test/glib/test-dbus-glib.c: Add more tests for async
3997         invocations.  Update many begin_call/end_call pairs to just use
3998         dbus_g_proxy_call.
3999
4000         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4001         allows us to dump print-introspect.c.
4002
4003         * tools/dbus-print-message.h (print_message): Add literal argument
4004         to print_message which is intended to allow printing arguments without
4005         metadata like "string=".
4006
4007         * tools/dbus-print-message.c (print_iter): Add literal argument.
4008         (print_message): Allow printing string messages literally.
4009
4010 2005-07-05  Colin Walters  <walters@verbum.org>
4011
4012         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4013         Remove value refcount leak, original patch from Jorn Baayen
4014         <jorn@openedhand.com>.  Also remove useless extra value in favor
4015         of prepending to value array directly.
4016
4017 2005-07-02  Colin Walters  <walters@verbum.org>
4018
4019         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4020
4021 2005-07-01  Colin Walters  <walters@verbum.org>
4022
4023         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4024         
4025         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4026         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4027         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4028         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4029
4030 2005-06-30  Colin Walters  <walters@verbum.org>
4031
4032         * test/glib/test-dbus-glib.c:
4033         * test/glib/test-service-glib.c:
4034         * test/glib/test-service-glib.xml: Update tests for new error
4035         setting bits, also add async tests (patch from Ross Burton).
4036
4037         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4038         DBUS_GLIB_THREADS_LIBS.
4039
4040         * glib/dbus-gproxy.c (get_name_owner)
4041         (dbus_g_pending_call_end_valist): Ditto.
4042
4043         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4044         domain (GQuark) to DBusGErrorInfo.  
4045         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4046         quark in error_metadata.  Take message interface as default
4047         error message interface.
4048         (gerror_to_dbus_error_message): Pass message interface.
4049         (dbus_set_g_error): Resurrected.
4050         (dbus_g_error_info_free): New function.
4051         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4052         of _peek to actually create the object class if it hasn't been
4053         created yet.
4054         (dbus_g_error_domain_register): New function.
4055
4056         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4057
4058         * glib/dbus-gparser.c (validate_signature): Ditto.
4059
4060         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4061         (dbus_g_error_domain_register): Prototype.
4062
4063         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4064         Update tests.
4065
4066 2005-06-29  Colin Walters  <walters@verbum.org>
4067
4068         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4069         DBUS_TYPE_G_OBJECT_PATH.
4070
4071         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4072         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4073         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4074         (dbus_g_object_path_get_g_type): New function.
4075         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4076         to DBUS_TYPE_G_OBJECT_PATH by default.
4077         (demarshal_proxy): Remove unused name variable.
4078         (demarshal_object_path, marshal_object_path): New functions.
4079         (demarshal_proxy_array, marshal_proxy_array): Delete.
4080         
4081         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4082         DBUS_TYPE_G_OBJECT_PATH to char *.
4083         (dbus_g_type_get_lookup_function): Map builtin
4084         DBUS_TYPE_G_OBJECT_PATH.
4085
4086         * test/glib/test-dbus-glib.c
4087         * test/glib/test-service-glib.c (my_object_objpath): 
4088         Adapt tests to new object path marshalling.
4089
4090 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4091
4092         * configure.in: force check for Python >= 2.4
4093
4094 2005-06-29  Colin Walters  <walters@verbum.org>
4095         
4096         Patch from Ross Burton <ross@openedhand.com>
4097         
4098         * glib/dbus-gobject.c (invoke_object_method): Unset object
4099         value in all cases, not only in async case.
4100
4101 2005-06-29  Colin Walters  <walters@verbum.org>
4102
4103         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4104         name_call for keeping track of any outgoing GetNameOwner call.
4105         Also add for_owner and associated.
4106         (struct _DBusGProxyManager): Add owner_names, which is hash table
4107         that maps a base name to a list of names it owns (that we're
4108         interested in).  Add pending_nameowner_calls which is a list of
4109         all outstanding GetNameOwner; avoids us having to iterate over
4110         every proxy.  Add unassociated_proxies which keeps track of name
4111         proxies with no associated name owner.
4112         (dbus_g_proxy_manager_unref): Destroy owner_names.
4113         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4114         name refcounts.
4115         (find_name_in_info, name_owner_foreach)
4116         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4117         (dbus_g_proxy_manager_monitor_name_owner)
4118         (dbus_g_proxy_manager_unmonitor_name_owner)
4119         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4120         New functions; they manipulate the owner_names mapping.
4121         (got_name_owner_cb): New function.
4122         (get_name_owner): New function, extracted from
4123         dbus_g_proxy_new_for_name_owner.
4124         (dbus_g_proxy_manager_register): For now we need to keep track of
4125         all NameOwnerChanged.  Also if the proxy is for a name, if we
4126         don't already know the name owner, queue a new GetNameOwner
4127         request and add it to our list of unassociated proxies.  Otherwise
4128         inc the refcount.
4129         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4130         cancel any pending GetNameOwner call, etc.
4131         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4132         the owner_names mapping to look up the current names for the
4133         signal source, and dispatch to any proxies for that name.
4134         (dbus_g_proxy_new): Initialize new members.
4135         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4136         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4137         (dbus_g_pending_call_end_valist): New function, extracted from
4138         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4139         but want to use the GLib infrastructure.  Also note how many
4140         arguments in reply were over.
4141         (dbus_g_pending_call_end): New function, just call
4142         dbus_g_pending_call_end_valist.
4143         (dbus_g_proxy_end_call_internal): Just call
4144         dbus_g_pending_call_end_valist.
4145
4146         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4147         of builtin marshaller for STRING_STRING_STRING.
4148
4149         * test/glib/test-dbus-glib.c: 
4150         * test/glib/test-service-glib.c:
4151         * test/glib/test-service-glib.xml:
4152         Extend tests to cover name proxies, destruction of owner proxies,
4153         etc.
4154         
4155         * glib/examples/example-signal-recipient.c
4156         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4157         
4158         * tools/dbus-send.c (main): Print D-BUS error name in addition
4159         to message.
4160
4161 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4162
4163         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4164         cmessage_function_handler): Patch from 
4165         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4166         by using the Py_GILState_Ensure/Release to synchronize with the
4167         python runtime.
4168         
4169 2005-06-28  Ray Strode  <rstrode@redhat.com>
4170
4171         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4172         babysitter helper process on last unref, bug #2813.
4173
4174 2005-06-27  Colin Walters  <walters@verbum.org>
4175
4176         * test/glib/test-dbus-glib.c: 
4177         * test/glib/test-service-glib.c:
4178         * test/glib/test-service-glib.xml:
4179         Test hash table signal emitting.
4180
4181         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4182         types to their fundamental basis types, since this is what
4183         marshallers operate on.  Also add an entry for VOID__BOXED.
4184         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4185
4186 2005-06-26  Havoc Pennington  <hp@redhat.com>
4187
4188         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4189         from Don Park
4190
4191 2005-06-26  Colin Walters  <walters@verbum.org>
4192
4193         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4194         (dbus_g_error_set): New public function from its ashes; used by
4195         both service-side method implementation and GLib bindings
4196         internals.
4197         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4198         (_dbus_glib_test): Add some tests.
4199
4200         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4201
4202         * test/glib/test-service-glib.c (my_object_throw_error): Use
4203         dbus_g_error_set.
4204
4205         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4206         errors thrown by dbus_g_error_set.
4207
4208         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4209
4210         * glib/dbus-gparser.c (validate_signature): Ditto.
4211
4212         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4213         (dbus_g_proxy_end_call_internal): Ditto.
4214
4215         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4216         converts DBUS_ERROR_x to DBUS_GERROR_x.
4217         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4218
4219         * doc/TODO: Remove error TODO.
4220
4221         * doc/dbus-tutorial.xml: Update with documentation about error
4222         handling.
4223
4224         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4225         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4226         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4227
4228 2005-06-22  Colin Walters  <walters@verbum.org>
4229         
4230         Patch from Ross Burton <ross@openedhand.com>
4231
4232         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4233
4234 2005-06-20  Colin Walters  <walters@verbum.org>
4235
4236         * configure.in: Add glib/examples.
4237
4238         * glib/Makefile.am: Add examples/
4239
4240         * glib/examples/.cvsignore
4241         * glib/examples/Makefile.am
4242         * glib/examples/example-client.c
4243         * glib/examples/example-service.c
4244         * glib/examples/example-service.xml
4245         * glib/examples/example-signal-emitter.c
4246         * glib/examples/example-signal-emitter.xml
4247         * glib/examples/example-signal-recipient.c:
4248         New files; GLib binding examples, ported from
4249         python/examples.
4250
4251 2005-06-20  Colin Walters  <walters@verbum.org>
4252
4253         * dbus/dbus-glib.h: 
4254         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4255         dbus_g_proxy_call.
4256
4257         * glib/dbus-binding-tool-glib.c: 
4258         * doc/dbus-tutorial.xml: 
4259         * test/glib/test-dbus-glib.c: Update for rename.
4260         
4261 2005-06-20  Colin Walters  <walters@verbum.org>
4262
4263         Patch suggested by Ross Burton <ross@openedhand.com>
4264
4265         * glib/dbus-gobject.c (export_signals): Free signal name.
4266         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4267         memory leak.  Add a bit of documentation.
4268         (dbus_g_method_return_error): Free context, and note we do
4269         so.
4270
4271 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4272
4273         * dbus/dbus-glib.h:
4274         * glib/dbus-gobject.c:
4275         * glib/dbus-gproxy.c:
4276         * glib/dbus-gvalue.c: Predeclare structs as 
4277         typedef struct _Something Something instead of 
4278         typedef struct Something Something, so we can 
4279         redeclare the prototypes. Other GNOME libraries 
4280         do this already.
4281
4282 2005-06-17  Colin Walters  <walters@verbum.org>
4283
4284         * tools/dbus-names-model.c (have_names_notify): Fix call
4285         to dbus_g_proxy_end_call.
4286         
4287 2005-06-17  Colin Walters  <walters@verbum.org>
4288
4289         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4290         spew warnings if we get malformed remote signals.
4291
4292         * glib/dbus-gobject.c (propsig_iterate): New function.
4293         (lookup_object_info): New function, extracted from
4294         lookup_object_and_method.
4295         (introspect_properties, introspect_signals): Delete; these
4296         are merged into write_interface.
4297         (write_interface): Write out signals and properties here;
4298         dump the org.gtk.object stuff and use the interface given
4299         in the introspection data blob.  Also fix up property XML.
4300         (lookup_values): New function.
4301         (introspect_interfaces): Gather a mapping from interface to a
4302         list of its methods, signals, and properties, then write out
4303         each interface.
4304         (lookup_object_and_method): Use lookup_object_info.
4305         (struct DBusGSignalClosure): Add interface.
4306         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4307         we can just use the constant data.
4308         (dbus_g_signal_closure_finalize): Don't free signal name.
4309         (signal_emitter_marshaller): Use interface from signal closure.
4310         (export_signals): Only export signals mentioned in introspection
4311         blob.
4312         (dbus_g_connection_register_g_object): Warn if we have no
4313         introspection data for an object.
4314         (funcsig_equal): Remove unused variable.
4315         (dbus_g_object_register_marshaller): Take varargs instead of
4316         list.
4317         (dbus_g_object_register_marshaller_array): New function,
4318         extracted from old dbus_g_object_register_marshaller.
4319
4320         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4321         signals and property data.
4322         (write_quoted_string): New function, extracted from generate_glue.
4323         (generate_glue): Write signals and properties to introspection
4324         blob.
4325
4326         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4327         exported_signals and exported_properties.
4328         (dbus_g_object_register_marshaller): Update prototype.
4329         (dbus_g_object_register_marshaller_array): Prototype.
4330         
4331         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4332
4333         * test/glib/test-service-glib.c: Add new test signals and method
4334         to emit them.
4335
4336         * test/glib/test-service-glib.xml: Add some test signals.
4337
4338         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4339         and my-object-marshal.h
4340         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4341         my-object-marshal.c.
4342         (my-object-marshal.c, my-object-marshal.h): Implement.
4343
4344         * test/glib/.cvsignore: Update.
4345
4346         * doc/TODO: Remove two GLib TODO items fixed by this
4347         patch.
4348
4349 2005-06-16  Colin Walters  <walters@verbum.org>
4350
4351         * doc/TODO: Update for GLib bindings.
4352         
4353 2005-06-16  Colin Walters  <walters@verbum.org>
4354
4355         * glib/dbus-binding-tool-glib.c:
4356         * glib/dbus-gobject.c:
4357         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4358         from Ross Burton, for his GLib bindings work.
4359
4360 2005-06-16  Colin Walters  <walters@verbum.org>
4361
4362         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4363         to iterate instead of walking to G_TYPE_INVALID.
4364
4365         Patch based on a patch from Ryan Gammon.
4366
4367 2005-06-16  Colin Walters  <walters@verbum.org>
4368
4369         * bus/bus.c (bus_context_new): Set parser to NULL
4370         after we unref it (Patch from Chris Boscolo, #2174).
4371         
4372 2005-06-16  Colin Walters  <walters@verbum.org>
4373
4374         * python/dbus_bindings.pyx.in: Import size_t,
4375         __int64_t, __uint64_t, and __signed.
4376
4377         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4378         Define cmsg struct, output it.
4379         (_dbus_read_credentials_unix_socket):
4380         Use cmsg struct.
4381         
4382         Patch from Joe Markus Clarke for FreeBSD support.
4383         
4384 2005-06-16  Colin Walters  <walters@verbum.org>
4385
4386         * tools/dbus-send.c (append_array): Use strtok.
4387         (append_dict): New function.
4388         (type_from_name): New function, extracted from main.
4389         (main): Handle sending dicts.
4390
4391         * tools/dbus-print-message.c (print_iter): Print dict
4392         entries.
4393         
4394 2005-06-16  Colin Walters  <walters@verbum.org>
4395
4396         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4397         values as the empty string (#2948).
4398         
4399 2005-06-16  Colin Walters  <walters@verbum.org>
4400
4401         * dbus/Makefile.am:
4402         * mono/doc/Makefile.am:
4403         * test/glib/Makefile.am:
4404
4405         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4406
4407 2005-06-16  Colin Walters  <walters@verbum.org>
4408
4409         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4410         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4411
4412         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4413         Increment pointer after swapping fixed array.  Add assertion
4414         for array length.
4415                 
4416 2005-06-15  Colin Walters  <walters@verbum.org>
4417
4418         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4419         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4420         
4421 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4422
4423         * NEWS: Update to 0.34
4424
4425 2005-06-15  David Zeuthen  <davidz@redhat.com>
4426
4427         * configure.in (LT_CURRENT): Revert back to 1 as the library
4428         hasn't changed and we've certainly not committed to protocol
4429         stability yet.  All this does is to break ABI. See commit note
4430         from hp@redhat.com 2005-05-05 for details.
4431         
4432 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4433
4434         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4435         (_dbus_connection_run_builtin_filters): New method
4436         (dbus_connection_dispatch): Run the builtin filters which in turn
4437         runs the peer filter which handles Ping messages.
4438
4439         * doc/TODO: 
4440          - Ping isn't handled: This patch fixes it
4441          
4442          - Add a test case for the Ping message: added TODO item
4443
4444 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4445
4446         * dbus/dbus-message.c:
4447         (dbus_message_has_path): New method
4448         (dbus_message_has_interface): New method
4449         (dbus_message_has_member): New method
4450
4451         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4452         New method
4453
4454         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4455         the keyring directory is private to the user
4456
4457         * doc/TODO:
4458          - The convenience functions in dbus-bus.h should perhaps have
4459          the signatures that they would have if they were autogenerated
4460          stubs. e.g. the acquire service function. We should also evaluate
4461          which of these functions to include, in light of the fact that
4462          GLib/Qt native stubs will probably also exist.: Punted
4463
4464          - add dbus_message_has_path(), maybe has_member/interface:
4465          fixed in this patch
4466
4467          - in dbus-keyring.c, enforce that the keyring dir is not
4468          world readable/writable: Fixed in this patch
4469
4470 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4471
4472         * dbus/dbus-marshal-validate.h: Added a new validation
4473         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4474         out of memory errors when validating signitures
4475
4476         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4477         in places where we previously used DBUS_VALID and a FALSE return 
4478         value to indicate OOM
4479         
4480         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4481         Use a stack to track the number of elements inside containers.  The 
4482         stack values are then used to validate that dict entries have only two
4483         elements within them.
4484         (validate_body_helper): check the reason for failure when validating
4485         varients
4486         
4487         * dbus/dbus-message.c (load_message): use 
4488         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4489         DBUS_VALID and a FALSE return value to indicate OOM
4490
4491         * doc/TODO: remove "- validate dict entry number of fields" as this
4492         patch fixes it
4493
4494 2005-06-14  David Zeuthen  <davidz@redhat.com>
4495
4496         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4497         watches (if applicable) and add new watches
4498
4499         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4500         (main): Setup SIGIO signal handler if using D_NOTIFY
4501
4502         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4503
4504         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4505         (merge_included): Also merge conf_dirs list
4506         (bus_config_parser_unref): Clear conf_dirs list
4507         (include_dir): Add directory to conf_dirs list
4508         (bus_config_parser_get_conf_dirs): New function
4509
4510         * bus/dir-watch.[ch]: New files
4511
4512         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4513
4514         * configure.in: Add checks for D_NOTIFY on Linux
4515
4516 2005-06-14  Colin Walters  <walters@verbum.org>
4517
4518         * glib/dbus-binding-tool-glib.c:
4519         * glib/dbus-gobject.c:
4520         * glib/dbus-gvalue.c: Fix indentation and brace style.
4521         
4522 2005-06-14  Ross Burton <ross@openedhand.com>.
4523
4524         * glib/dbus-glib.h: Make DBusGMethodInvocation
4525         a private structure.  Rearrange prototypes a bit.
4526         
4527         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4528         documentation for first_arg_type.
4529         
4530         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4531         here, add documentation.  Move dbus_g_method_return
4532         and dbus_g_method_return_error into public API
4533         section.
4534
4535 2005-06-14  Colin Walters  <walters@verbum.org>
4536
4537         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4538         Add missing return statements, noticed by Ross Burton.
4539         
4540 2005-06-13  Ross Burton <ross@openedhand.com>.
4541
4542         * glib/dbus-gobject.c: Handle errors on message
4543         demarshalling by sending error message back.
4544         * glib/dbus-gvalue.c: Initialize return variables.
4545
4546 2005-06-13  Colin Walters  <walters@verbum.org>
4547
4548         * glib/Makefile.am: Fix thinko in last patch.
4549
4550 2005-06-13  Colin Walters  <walters@verbum.org>
4551
4552         * glib/Makefile.am: Move dbus-gtype-specialized.c
4553         and dbus-gtype-specialized.h into a _HEADERS variable,
4554         install them.
4555
4556 2005-06-12  Colin Walters  <walters@verbum.org>
4557
4558         Async signals and various bugfixes and testing by
4559         Ross Burton <ross@openedhand.com>.
4560
4561         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4562         (dbus_gvalue_genmarshal_name_from_type)
4563         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4564         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4565         (dbus_g_value_types_init, dbus_gtype_from_signature)
4566         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4567         (dbus_gtypes_from_arg_signature): New function prototypes.
4568         (dbus_gvalue_demarshal): Take context and error arguments.
4569         (dbus_gvalue_demarshal_variant): New function.
4570         (dbus_gvalue_demarshal_message): New function.
4571         (dbus_gvalue_store): Delete.
4572
4573         * glib/dbus-gvalue.c:
4574
4575         File has been almost entirely rewritten; now we special-case
4576         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4577         hash tables correctly, etc.  Full support for recursive values
4578         is not yet complete.
4579
4580         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4581         argument of signal to G_TYPE_POINTER since we now pass a
4582         structure.
4583         (lookup_g_marshaller): Delete in favor of
4584         _dbus_gobject_lookup_marshaller.
4585         (marshal_dbus_message_to_g_marshaller): Use
4586         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4587         to handle remote signal callbacks.
4588         (dbus_g_proxy_new_from_proxy): New function; creates a new
4589         DBusGProxy by copying an existing one.
4590         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4591         (dbus_g_proxy_get_path): New functions.
4592         (dbus_g_proxy_marshal_args_to_message): New function;
4593         factored out of existing code.
4594         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4595         from a varargs array.
4596         (dbus_g_proxy_begin_call_internal): New function.
4597         (dbus_g_proxy_end_call_internal): New function.
4598         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4599         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4600         after collecting args into value array.
4601         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4602         invoke dbus_g_proxy_end_call_internal.
4603         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4604         end_call_internal.
4605         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4606         types.
4607         (array_free_all): New function.
4608         (dbus_g_proxy_add_signal): Take GTypes.
4609
4610         * glib/dbus-gobject.h:
4611         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4612         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4613         Prototype.
4614
4615         * glib/dbus-gobject.c: Add a global marshal_table hash which
4616         stores mappings from type signatures to marshallers.  Change lots
4617         of invocations of dbus_gtype_to_dbus_type to
4618         dbus_gtype_to_signature.
4619         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4620         (introspect_signals): Fix test for query.return_type.
4621         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4622         (invoke_object_method): Many changes.  Handle asynchronous
4623         invocations.  Convert arguments with
4624         dbus_gvalue_demarshal_message.  Handle errors.  Use
4625         DBusSignatureIter instead of strlen on args. Handle all arguments
4626         generically.  Special-case variants.
4627         (dbus_g_method_return, dbus_g_method_return_error): New function.
4628         (DBusGSignalClosure): New structure, closes over signal
4629         information.
4630         (dbus_g_signal_closure_new): New function.
4631         (dbus_g_signal_closure_finalize): New function.
4632         (signal_emitter_marshaller): New function; is special marshaller
4633         which emits signals on bus.
4634         (export_signals): New function; introspects object signals and
4635         connects to them.
4636         (dbus_g_object_type_install_info): Take GType instead of
4637         GObjectClass.
4638         (dbus_g_connection_register_g_object): Invoke export_signals.
4639         (dbus_g_connection_lookup_g_object): New function.
4640         (DBusGFuncSignature) New structure; used for mapping type
4641         signatures to marshallers.
4642         (funcsig_hash): New function; hashes DBusGFuncSignature.
4643         (funcsig_equal): New function; compares DBusGFuncSignature.
4644         (_dbus_gobject_lookup_marshaller): New function.
4645         (dbus_g_object_register_marshaller): New function; used to
4646         register a marshaller at runtime for a particular signature.
4647
4648         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4649
4650         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4651         which notes a server method implementation should be
4652         asynchronous.
4653
4654         * glib/dbus-binding-tool-glib.c
4655         (dbus_binding_tool_output_glib_server): Call
4656         dbus_g_value_types_init.
4657         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4658         variants specially.
4659         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4660         of a lookup function.
4661         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4662         (write_untyped_out_args): New method; write output arguments.
4663         (write_formal_declarations_for_direction): Function for
4664         writing prototypes.
4665         (write_formal_parameters_for_direction): Function for
4666         writing implementations.
4667         (write_typed_args_for_direction): Function for writing
4668         arguments prefixed with GTypes.
4669         (write_async_method_client): Write out async version
4670         of method.
4671
4672         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4673         (dbus_g_type_get_marshal_name): Move mapping from GType
4674         to marshal name into here.
4675         (dbus_g_type_get_c_name): Move into here.
4676         (compute_marshaller): Convert signature to type with
4677         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4678         (compute_marshaller_name): Ditto.
4679         (compute_marshaller): Handle async signal annotations.
4680         (gather_marshallers): Return if we don't have a known
4681         prefix.
4682         (generate_glue): Collect introspection blob here, and
4683         write all of the blob at the end.  This allows an object
4684         with multiple interfaces to work.
4685         Mark async methods in introspection blob.
4686
4687         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4688         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4689         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4690
4691         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4692         avoids people accidentally using DBUS_TYPE_* which should
4693         not be necessary anymore.
4694         Do include dbus-gtype-specialized.h, which are utilities
4695         for GLib container types.
4696         Add various #defines for types such as
4697         DBUS_TYPE_G_BOOLEAN_ARRAY.
4698         (DBusGValueIterator, DBusGValue): Define, not fully used
4699         yet.
4700         (dbus_g_value_get_g_type): Type for recursive value.
4701         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4702         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4703         (dbus_g_value_free): Prototypes.
4704         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4705         (dbus_g_proxy_set_interface): Prototype.
4706         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4707         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4708         types.
4709         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4710         Accessors.
4711         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4712         doing async invocations.
4713         (dbus_g_method_return, dbus_g_method_return_error):
4714         Prototypes.
4715         * doc/dbus-tutorial.xml: Update GLib section.
4716         
4717         * tools/dbus-viewer.c (load_child_nodes): Update
4718         for new invocation type of dbus_g_proxy_end_call.
4719         (load_from_service_thread_func): Ditto.
4720
4721         * tools/print-introspect.c (main): Ditto.
4722
4723         * tools/dbus-names-model.c (have_names_notify)
4724         (names_model_reload, names_model_set_connection)
4725         Use GTypes.
4726
4727         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4728         needed since Python bindings use GLib bindings.
4729
4730         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4731         Add --prefix argument.
4732
4733         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4734         unneeded --ignore-unsupported arg.
4735         
4736         * test/glib/test-service-glib.c: 
4737         * test/glib/test-service-glib.xml:
4738         * test/glib/test-dbus-glib.c: Add many more tests.
4739
4740 2005-06-06  David Zeuthen  <davidz@redhat.com>
4741
4742         * doc/TODO: Add item about need to remove deprecated functions.
4743
4744         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4745
4746         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4747         to repair the ABI which was broken with the last commit.
4748
4749 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4750
4751         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4752         (dbus_connection_disconnect): renamed to dbus_connection_close 
4753         for API symmetry with dbus_connection_open
4754         (_dbus_connection_open_internal): 
4755         s/dbus_connection_disconnect/dbus_connection_close
4756
4757         * dbus/dbus-bus.c (dbus_bus_get):
4758         s/dbus_connection_disconnect/dbus_connection_close
4759
4760         * bus/connection.c (bus_connections_unref, 
4761         bus_connections_setup_connection, bus_connections_expire_incomplete):
4762         s/dbus_connection_disconnect/dbus_connection_close
4763
4764         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4765         kill_client_connection_unchecked, check_hello_connection):
4766         s/dbus_connection_disconnect/dbus_connection_close
4767
4768         * bus/bus.c (new_connection_callback):
4769         s/dbus_connection_disconnect/dbus_connection_close
4770
4771         * tools/dbus-send.c (main):
4772         s/dbus_connection_disconnect/dbus_connection_close
4773
4774         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4775         s/dbus_connection_disconnect/dbus_connection_close
4776         
4777         * test/test-service.c (path_message_func, filter_func):
4778         s/dbus_connection_disconnect/dbus_connection_close
4779         
4780         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4781         
4782 2005-05-25  Colin Walters  <walters@verbum.org>
4783
4784         * dbus/dbus-protocol.h: Move various bus service #defines such
4785           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4786           dbus/dbus-shared.h.
4787         * dbus/dbus-shared.h: Various defines moved here.
4788         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4789
4790 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4791
4792         * python/__init__.py: Python bindings deserve a minor version
4793         update.  Upped to (0, 40, 2)
4794
4795 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4796
4797         * python/decorators.py: add explicitly_pass_message decorator
4798         for passing in the dbus message as keyword for edge case signal
4799         handling
4800
4801         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4802         to conform with what dbus expects for match rules
4803         (SignalMatchRule.execute): add the dbus message as a keyword
4804         if the signal handler has requested it
4805
4806         * python/examples/example/signal-recipient.py: added some more
4807         examples on how to hook up to signals
4808
4809 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4810
4811         * python/decorators.py: import dbus_bindings
4812
4813         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4814         SignalMatchNode): new classes that implement wildcard signal
4815         callback matching using a tree lookup. Heavily modified from a
4816         patch sent by Celso Pinto (fd.o bug #3241)
4817
4818         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4819         use new match classes to handle signals.
4820
4821 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4822         
4823         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4824
4825 2005-05-18  Havoc Pennington  <hp@redhat.com>
4826
4827         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4828         gettext. Not really worth requiring yet perhaps, but any
4829         production quality 1.0 would require it so we should go ahead and
4830         get things set up. We do have a couple token calls to
4831         bindtextdomain in the code already.
4832
4833 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4834
4835         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4836         when using recursive g_main_loops
4837
4838         * python/_dbus.py (class Bus): add the ProxyObjectClass
4839         alias for ProxyObject to make it easier for the Twisted 
4840         networking framework to integrate dbus.
4841
4842         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4843         alias for ProxyMethod to make it easier for the Twisted 
4844         networking framework to integrate dbus. 
4845
4846 2005-05-11  Ross Burton  <ross@openedhand.com>
4847
4848         * glib/dbus-glib-tool.c: Add --prefix argument.
4849         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4850         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4851         Add prefix argument.
4852         (generate_glue): Pass prefix argument down.
4853         (dbus_binding_tool_output_glib_server): Pass prefix to
4854         glib-genmarshal.
4855         
4856 2005-05-11  Colin Walters  <walters@verbum.org>
4857
4858         * tools/dbus-send.c (append_array): New function.
4859         (append_arg): Broken out from main.
4860         (main): Add cheesy hack to send arrays and variants.
4861         (usage): Update.
4862         * tools/dbus-print-message.c (print_iter): Broken out
4863         from main.
4864
4865 2005-05-11  Colin Walters  <walters@verbum.org>
4866
4867         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4868         New function, returns signature string for signature iter.
4869         * dbus/dbus-signature.h: Prototype it.
4870         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4871         New function, returns signature string for message iter.
4872         (dbus_message_iter_get_array_len): New function, returns
4873         length of array.
4874         (dbus_message_iter_get_fixed_array): Fix assertion; this
4875         function should be used when the iter is pointing to the
4876         contents of an array
4877         * dbus/dbus-message.h: Prototypes.
4878         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4879         New function; returns length of an array.
4880         * dbus/dbus-marshal-recursive.h: Prototype it.
4881         
4882 2005-05-11  Colin Walters  <walters@verbum.org>
4883
4884         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4885         compilation error.
4886         
4887 2005-05-08  Havoc Pennington  <hp@redhat.com>
4888
4889         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4890         daemon's pid, not the parent's pid, to the file descriptor.
4891         Reported by Taj Morton.
4892
4893 2005-05-05  Havoc Pennington  <hp@redhat.com>
4894
4895         * configure.in (LT_*): add notes on how the libtool versioning
4896         works to save thinking. Increment soname to indicate protocol
4897         breakage (though really the library interface hasn't changed I
4898         guess)
4899
4900         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4901         verify the GUID received from server matches what we were
4902         expecting, if we had an expectation
4903
4904         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4905         (_dbus_auth_get_guid_from_server): new function
4906         (send_begin): parse the OK args
4907
4908         * doc/dbus-specification.xml: add GUID to the auth protocol
4909
4910 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4911
4912         * Fix my name in previous changelog ;)
4913
4914         * python/proxies.py (ProxyObject.__getattr__): add further patch
4915         from Anthony Baxter to throw an AttributeError when python 
4916         __special__ functions are called instead of marshling them over 
4917         the bus (Bug#1685 comment 3).
4918
4919 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4920
4921         * python/Makefile.am: changed to use pyexecdir for the binding
4922         shared libraries (Bug#2494)
4923
4924         * python/exceptions.py: bring exceptions over from the bindings
4925         so they can be used in applications (Bug#2036)
4926         Make all exceptions derive from DBusException
4927
4928         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4929         of classes so that print obj doesn't throw an exception (Bug #1685)
4930
4931 2005-05-03  Ross Burton  <ross@openedhand.com>
4932
4933         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4934         Return if we get an error during registration.  Set up a
4935         weak reference on object to unregister if object is destroyed.
4936         (unregister_gobject): New function.
4937         
4938 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4939
4940         * python/dbus_bindings.pyx.in: 
4941         - added new type classes for hinting to the marashaler what type 
4942         to send over the wire
4943         - added int16 and uint16 marshalers
4944         - Fixed a bug in the type constants that caused int32 to go out
4945         as uint16 over the wire
4946         * python/dbus.py: split up into different files and renamed _dbus.py
4947         * python/__init__.py, python/_util.py, python/decorators.py, 
4948         python/exceptions.py, python/proxies.py, python/services.py,
4949         python/types.py: new files split off from dbus.py
4950         * python/Makefile.am: Add new files, remove dbus.py and 
4951         install all python files to <python module dir>/dbus
4952         * python/examples/*: Added #!/usr/bin/env python to the top of
4953         every example.  Patch provided by Tatavarty Kalyan
4954
4955 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4956
4957         * NEWS: Update to 0.33
4958
4959 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4960
4961         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4962         method for doing async calls
4963         (_pending_call_notification): New C function for handling pendning call
4964         callbacks
4965         (set_notify): New method for setting pending call notification
4966         
4967         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4968         Async capabilities added to remote method calls
4969         (Sender): class removed
4970         (RemoteService): class removed
4971         (ObjectTree): class removed for now
4972         (RemoteObject): Renamed to ProxyObject
4973         (RemoteMethod): Renamed to ProxyMethod
4974         (method): Decorator added for decorating python methods as dbus methods
4975         (signal): Decorator added for decorating python methods as signal emitters
4976         (ObjectType): Metaclass added for generating introspection data and the
4977         method callback vtable
4978         (Interface): Wrapper class added to wrap objects in a dbus interface
4979         (Object): Uses ObjectType as its metaclass and exports Introspect
4980         of the org.freedesktop.DBus.Introspectable interface
4981         (ValidationException, UnknownMethodException): new exceptions
4982
4983         * python/examples/*: Modified to fit with the new bindings
4984
4985 2005-04-23  Havoc Pennington  <hp@redhat.com>
4986
4987         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4988         reported by Tony Houghton
4989
4990         * test/test-service.c (main): test
4991         dbus_connection_get_object_path_data()
4992
4993         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4994         the exact_match
4995         (_dbus_object_tree_get_user_data_unlocked): new function used by
4996         dbus_connection_get_object_path_data()
4997         (do_register): add assertion test for get_user_data_unlocked
4998         (object_tree_test_iteration): more tests
4999
5000         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5001         new function from Dan Reed to let you get the user data from 
5002         dbus_connection_register_object_path()
5003
5004 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5005
5006         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5007         in numerous places that did not account for the NULL terminator
5008         (signature_from_seed): changed the manual string copy loop to 
5009         just use strcpy instead
5010         make check should now pass
5011
5012 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5013
5014         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5015         so that it allows messages that are not signals to pass in 
5016         NULL as the interface.
5017
5018 2005-04-18  David Zeuthen  <davidz@redhat.com>
5019
5020         * glib/dbus-gmain.c (io_handler_destroy_source): 
5021         (timeout_handler_destroy_source, connection_setup_free): 
5022         Also unref the source to avoid memory leaks.
5023
5024 2005-04-13  David Zeuthen  <davidz@redhat.com>
5025
5026         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5027         more reasonable, yet still totally arbitrary, value :-). 
5028
5029 2005-04-13  David Zeuthen  <davidz@redhat.com>
5030
5031         * doc/TODO: Added an "important for 1.0" item about selinux
5032         allow/deny messages
5033
5034 2005-04-13  David Zeuthen  <davidz@redhat.com>
5035
5036         * bus/selinux.c: Add c-file-style to top of file
5037         (log_audit_callback): Don't free the data here anymore
5038         (bus_selinux_check): Don't take spid and tpid since appending
5039         that to auxdata may OOM.
5040         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5041         to the caller if we are OOM by taking an error object.
5042         (bus_selinux_allows_send): -do-
5043
5044         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5045         and bus_selinux_allows_send
5046
5047         * bus/bus.c (bus_context_check_security_policy): Pass error and
5048         pass on OOM thrown by bus_selinux_allows_send()
5049
5050         * bus/services.c (bus_registry_acquire_service): Pass error and
5051         pass on OOM thrown by bus_selinux_allows_acquire_service()
5052
5053 2005-04-13  Havoc Pennington  <hp@redhat.com>
5054
5055         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5056         message at a time to avoid monopolizing the main loop, bug 
5057         #2953 from Benjamin Otte
5058
5059 2005-04-09  Havoc Pennington  <hp@redhat.com>
5060
5061         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5062         possible overlap, fix from Daniel Reed
5063         (fixup_alignment): fix signedness warnings
5064         (_dbus_string_append_unichar): ditto
5065
5066 2005-04-09  Havoc Pennington  <hp@redhat.com>
5067
5068         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5069
5070         * glib/dbus-glib-tool.c (main): fix warning
5071
5072         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5073
5074         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5075         add a new function that can be used in simple applications that
5076         don't have a main loop and are willing to block
5077
5078 2005-04-05  David Zeuthen  <davidz@redhat.com>
5079
5080         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5081
5082         * glib/dbus-gmain.c:
5083         (io_handler_destroy_source): Remove from list of IO handlers
5084         of the ConnectionSetup object
5085         (timeout_handler_destroy_source): -do- for timeout handlers
5086         (io_handler_source_finalized): Don't remove from list since
5087         we now do that in io_handler_destroy_source(). Renamed from
5088         io_handler_source_destroyed
5089         (timeout_handler_source_destroyed): -do- for timeout handlers
5090         (connection_setup_free): It is now safe to iterate over all
5091         IO and timeout handlers as the _destroy_source removes them
5092         from the list synchronously
5093
5094 2005-03-30  Havoc Pennington  <hp@redhat.com>
5095
5096         * configure.in: change check to gtk 2.4
5097
5098         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5099         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5100         to 2.4
5101
5102 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5103
5104         * News: Update 0.32
5105
5106         * HACKING: Fixed realease instructions.  configure.in should be updated to
5107           the next release by the person who made the last release.
5108
5109 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5110
5111         * python/lvalue_cast_post_process.py - removed.  Patch has been
5112           submitted to Pyrex maintainers that fixes gcc4.0 errors
5113
5114         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5115
5116 2005-03-24  Daniel Reed  <n@ml.org>
5117
5118         * tools/Makefile.am: Make print-introspect and
5119         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5120
5121 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5122
5123         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5124
5125         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5126           had in Red Hat packages for a while but for some reason never 
5127           got merged upstream
5128           (_dbus_is_a_number): New checks if a string
5129           can be converted to a number and does the conversion if it can
5130           (_dbus_user_database_lookup): Add check to see if the given username
5131           is a udi.  This allows udi's to be used instead of usernames in the
5132           config file.
5133           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5134           is a gdi.  This allows gdi's to be used instead of groupnames in the
5135           config file.
5136
5137 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5138
5139         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5140           code so that it compiles with gcc4.0
5141
5142         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5143           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5144           results back to dbus_binding.c
5145
5146 2005-03-20  Colin Walters  <walters@verbum.org>
5147
5148         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5149
5150         * configure.in: Require GTK+ 2.6.
5151         
5152 2005-03-20  Colin Walters  <walters@verbum.org>
5153
5154         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5155
5156 2005-03-17  Tom Parker  <palfrey@tevp.net>
5157
5158         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5159         print DBUS_UID_UNSET; instead print passed username.  Also
5160         be sure to actually use gid looked up in cache.
5161         
5162         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5163         for DBUS_GID_UNSET and groupname.
5164
5165 2005-03-17  Colin Walters  <walters@verbum.org>
5166
5167         * bus/print-introspect.c: Move to tools/.
5168         * bus/run-with-tmp-session-bus.sh: Ditto.
5169         
5170         * glib/Makefile.am (dbus-glib-bindings.h): Move
5171         generation to tools/Makefile.am.
5172
5173         * test/glib/run-test.sh: Update to handle move
5174         of run-with-tmp-session-bus.sh.
5175
5176         * test/glib/test-service-glib.c: Update to handle
5177         move of dbus-glib-bindings.h.
5178
5179         * tools/print-introspect.c: Moved here
5180         from bus/, and ported to GLib bindings.
5181
5182         * tools/run-with-tmp-session-bus.sh: Moved here
5183         from bus/.
5184
5185         * tools/Makefile.am: Generate dbus-glib-bindings.h
5186         and dbus-bus-introspect.xml here.
5187
5188         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5189         Update.
5190
5191 2005-03-17  Colin Walters  <walters@verbum.org>
5192
5193         * bus/driver.c (write_args_for_direction): Use
5194         _dbus_string_get_const_data to retrieve string;
5195         _dbus_string_get_const_data_len doesn't actually return
5196         a NULL-terminated substring.
5197
5198         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5199         (main): Change to use org_freedesktop_DBus_request_name
5200         instead of using g_proxy_begin_call/end_call.
5201
5202 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5203
5204         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5205         generating the finalizer.  Fixes from Ben Maurer.
5206
5207 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5208
5209         * mono/BusDriver.cs: Update method names: ListServices
5210         becomes ListNames; GetOwner becomes GetNameOwner.
5211
5212         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5213         onto the eval stack when removing the delegate.
5214
5215 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5216
5217         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5218         LT_CURRENT.  Set it to the autoconf variable.
5219                                                                                 
5220         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5221         classes that disconnects the signal handler delegate from the
5222         service object.  Fixes a big leak of proxy objects on the
5223         client side of things.  Patch from Ben Maurer
5224         <bmaurer@ximian.com>
5225
5226 2005-03-12  Colin Walters  <walters@verbum.org>
5227
5228         * bus/driver.c (write_args_for_direction): New function,
5229         parses a type signature into arguments and outputs to
5230         XML.
5231         (bus_driver_handle_introspect): Use it instead of
5232         hardcoding XML for certain signatures.
5233         
5234         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5235         dependency on dbus-daemon.
5236
5237         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5238         argument, pass it to dbus_binding_tool_output_glib_client.
5239
5240         * glib/dbus-binding-tool-glib.c
5241         (generate_client_glue): Protect against multiple inclusion.
5242         (dbus_binding_tool_output_glib_client): Add
5243         G_BEGIN_DECLS/G_END_DECLS.
5244
5245         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5246         Change to just take iface prefix directly.
5247         (write_formal_parameters): Clarify error message.
5248         (check_supported_parameters): New function; checks to see type
5249         signatures of method parameters are supported.
5250         (generate_client_glue): Handle ignore_unsupported flag.
5251         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5252         parameter.
5253
5254         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5255         --ignore-unsupported by default until glib bindings
5256         support arrays.
5257
5258 2005-03-11  Colin Walters  <walters@verbum.org>
5259
5260         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5261         install it.
5262
5263         * bus/print-introspect.c: New file; prints introspection
5264         data for a given name and object path.
5265
5266         * bus/run-with-tmp-session-bus.sh: New file, refactored
5267         from test/glib/run-test.sh.  Creates a temporary session
5268         bus and runs another program.
5269
5270         * test/glib/run-test.sh: Refactor to invoke
5271         run-with-tmp-session-bus.sh.
5272
5273         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5274         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5275         macros instead of hardcoding.
5276
5277         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5278
5279 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5280
5281         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5282         this unref; it doesn't match up evenly in some codepaths.
5283         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5284         this evenly matches with the ref near the top of this function.
5285
5286 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5287
5288         * dbus/dbus-object-tree.c
5289         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5290         and we try to unregister a path that's not registered, still go
5291         through the process of unlocking and don't just return.
5292
5293 2005-03-09  Colin Walters  <walters@verbum.org>
5294
5295         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5296         to this are generated for client-side wrappers.  Invokes a
5297         D-BUS method and returns reply values.  
5298
5299         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5300         function; writes signature string for argument direction.
5301         (write_args_for_direction): Change to pass input values directly
5302         instead of via address, and fix indentation.
5303         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5304         make generated wrappers inlineable.
5305
5306         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5307         note about using dbus_type_is_fixed.
5308
5309         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5310         dbus/dbus-signature.c as dbus_type_is_fixed.
5311
5312         All callers updated.
5313
5314         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5315         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5316
5317         * dbus/dbus-signature.h: Prototype.
5318
5319         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5320         error printf code.
5321
5322         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5323         appropriate instead of just freeing it.
5324         (main): Free returned strings using g_free.
5325
5326         * test/glib/Makefile.am (test-service-glib-glue.h)
5327         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5328
5329         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5330         simply maps a simple D-BUS type to GType.
5331         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5332         GType.
5333         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5334         initialize the value with it.
5335         (dbus_gvalue_binding_type_from_type): Unused, delete.
5336         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5337         various types instead of unmarshalling to value data directly.
5338         Remove can_convert boolean.
5339         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5340         returning directly instead of using can_convert boolean.
5341         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5342         Stores a GValue in a pointer to a value of its corresponding C
5343         type.
5344
5345         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5346         add dbus_gvalue_store.
5347
5348 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5349
5350         Fix a bunch of lifecycle and memory management problems
5351         in the mono bindings.
5352
5353         * mono/Arguments.cs (Arguments): Implement IDisposable
5354
5355         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5356         strictly a static class.
5357
5358         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5359         delegates into this file.
5360         (Connection): Implement IDisposable.
5361         (Dispose): Disconnect the connection and set the raw connection
5362         pointer to IntPtr.Zero.
5363         (~Connection): Call Dispose().
5364         (RegisterObjectPath): Added.  Manages the registration of object
5365         paths so we can cleanly disconnect them at dispose/finalize time.
5366         (UnregisterObjectPath): Ditto.
5367         (set_RawConnection): Unregister all of the object paths when
5368         changing the underlying DBusConnection.  Add them back onto the
5369         new connection, if any.
5370
5371         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5372         more unmanaged resources anymore, so it's not necessary.  Move all
5373         the DBusObjectPathVTable stuff out of here.
5374         (Handler): Save references to our delegates so that they don't get
5375         finalized.  Call Connection.RegisterObjectPath() instead of
5376         dbus_connection_register_object_path() directly.
5377         (Message_Called): Dispose the message after we're finished with
5378         it.
5379
5380         * mono/Message.cs (Message): Implement IDisposable.
5381         (Dispose): Dispose the Arguments, and set the RawMessage to
5382         IntPtr.Zero.
5383         (SendWithReplyAndBlock): We own the ref to the reply that comes
5384         back from dbus_connection_send_with_reply_and_block() so add a
5385         comment about that and unref it after we've constructed a managed
5386         MethodReturn class around it.  Fixes a big, big leak.
5387
5388         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5389         method.
5390         (BuildSignalHandler): After we've sent the Signal message, dispose
5391         of it.
5392         (BuildMethod): Dispose of the method call and reply messages after
5393         we've sent the message and extracted the data we want from the
5394         reply.
5395
5396         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5397         anymore.
5398         (Service_FilterCalled): Dispose of the message after we're
5399         finished with it.
5400
5401 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5402
5403         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5404         After we attach our pending call to the connection, unref
5405         it.  Fixes a leak.
5406  
5407         * mono/Connection.cs (set_RawConnection): Disconnect our
5408         filter and match callbacks from the old connection and
5409         reconnect them to the new connection, if any.
5410
5411         * mono/DBusType/Array.cs: "Code" is a static member, so
5412         don't use "this" to refer to it.  Fix for stricter checking
5413         in Mono 1.1.4.
5414  
5415         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5416         object path that we pass into unmanaged code.
5417  
5418         * mono/DBusType/String.cs (Append): Don't leak the string
5419         that we pass into unmanged code.
5420
5421 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5422         * NEWS: Update for 0.31
5423
5424         * configure.in: Release 0.31
5425         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5426
5427         * qt/Makefile.am: fixed build
5428
5429         * dbus/Makefile.am: soname bump for libdbus
5430
5431         * glib/Makefile.am: soname bump for libdbus-glib
5432
5433 2005-03-05  Havoc Pennington  <hp@redhat.com>
5434
5435         * dbus/dbus-sysdeps.c:
5436         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5437         value
5438         (_dbus_generate_random_bytes_buffer): fix return value
5439
5440         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5441         checks actually work, from Tom Parker <fdo@tevp.net>
5442
5443 2005-03-01  Colin Walters  <walters@verbum.org>
5444
5445         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5446         functions copied from dbus-glib-tool.c.
5447         (main): Convert lots of error code to use them.
5448         Also add some testing for introspection bits.
5449
5450 2005-03-01  Colin Walters  <walters@verbum.org>
5451         
5452         * doc/TODO: Remove introspection signature TODO.
5453
5454 2005-02-27  Colin Walters  <walters@verbum.org>
5455
5456         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5457         Change return value to const char * instead of int so we can do
5458         full signatures.
5459         (struct PropertyInfo, struct ArgInfo): Store char *.
5460         (property_info_new, arg_info_new): Update parameters, strdup.
5461         (property_info_unref, arg_info_unref): Free.
5462
5463         * glib/dbus-gidl.h: Update prototypes.
5464
5465         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5466         (validate_signature): New function, just validates signature and
5467         sets GError.
5468         (parse_property, parse_arg): Invoke validate_signature.  Store
5469         signature instead of just type code.
5470
5471         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5472         function to return a primary type for a signature, dropping
5473         information about types in container types.
5474         (dbus_gvalue_genmarshal_name_from_type)
5475         (dbus_gvalue_binding_type_from_type)
5476         (dbus_gvalue_ctype_from_type): Update to take full signature
5477          instead of type code.
5478         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5479
5480         * glib/dbus-gvalue.h: Update prototypes for above.
5481
5482         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5483         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5484         (introspect_properties, introspect_signals, write_interface):
5485         Update to handle signatures, and remove usage of
5486         _dbus_gutils_type_to_string.
5487         (handle_introspect): Print out type codes instead of e.g. "string"
5488         in hardcoded introspection XML; also use x_AS_STRING constants
5489         instead of hardcoding in string.
5490
5491         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5492         to string.  Remove usage of _dbus_gutils_type_to_string.
5493
5494         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5495
5496         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5497         deletion.
5498         
5499         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5500         (compute_marshaller_name, generate_glue): Handle signature change
5501         to string.
5502         (write_formal_parameters, write_args_for_direction): Ditto, and
5503         remove FIXME.
5504
5505         * tools/dbus-tree-view.c (type_to_string): Delete.
5506         (info_set_func_text): Update to print full signatures.
5507
5508         * test/glib/test-service-glib.xml: Change types to new
5509         introspection format.
5510
5511 2005-02-26  Havoc Pennington  <hp@redhat.com>
5512
5513         * doc/TODO: remove the "guid" item
5514
5515         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5516         (with_bus_thread_func): use open_private
5517
5518         * dbus/dbus-connection.c (dbus_connection_open_private): new
5519         function that works like the old dbus_connection_open()
5520         (dbus_connection_open): now returns an existing connection if
5521         possible
5522
5523         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5524         through the GUID to the transport
5525
5526         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5527         GUID in hex-encoded form.
5528
5529         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5530         pass GUID argument in to the transport
5531
5532         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5533         guid argument
5534
5535         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5536
5537         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5538
5539 2005-02-25  Havoc Pennington  <hp@redhat.com>
5540
5541         * doc/dbus-specification.xml: document the GUID thing
5542
5543         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5544         globally unique ID for the server, and put a "guid=hexencoded"
5545         field in the address
5546
5547         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5548
5549         * dbus/dbus-message.c: ditto
5550
5551         * dbus/dbus-dataslot.c: ditto
5552
5553         * dbus/dbus-list.c: ditto
5554
5555         * dbus/dbus-internals.h: wait, just include
5556         dbus-threads-internal.h here
5557         
5558         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5559         use in main library
5560
5561         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5562
5563 2005-02-24  Colin Walters  <walters@verbum.org>
5564
5565         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5566
5567 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5568
5569         * glib/Makefile.am: added dbus-gobject.h to sources list
5570         so distcheck doesn't fail
5571         
5572 2005-02-24  Havoc Pennington  <hp@redhat.com>
5573
5574         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5575         you must disconnect before unref, since locking and other things
5576         are screwed up otherwise. Fix assorted other locking stuff.
5577
5578         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5579         fix compilation
5580
5581         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5582         into a private header and don't export from the library
5583
5584         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5585
5586 2005-02-24  Colin Walters  <walters@verbum.org>
5587         
5588         * dbus/dbus-signature.c: New file; implements various functions
5589         related to type signatures.  Includes an interator for parsing,
5590         validation functions.
5591         (dbus_type_is_basic): Moved here from
5592         dbus-marshal-basic.c:_dbus_type_is_basic.
5593         (dbus_type_is_container): Moved here from
5594         dbus-marshal-basic.c:_dbus_type_is_container.
5595
5596         All callers of _dbus_type_is_container and _dbus_type_is_basic
5597         updated, and include dbus-signature.h.
5598
5599         * dbus/dbus-signature.h: New file; prototypes for the above.
5600
5601         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5602         dbus-signature.h.
5603
5604         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5605         function factored out of _dbus_first_type_in_signature.
5606         (_dbus_first_type_in_signature_c_str): New function; returns first
5607         type code for a type signature character.
5608
5609         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5610         handle function moves.
5611
5612         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5613
5614         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5615         function; skips to next complete type in type signature.
5616         Implemented using previous skip_one_complete_type.  Now
5617         skip_one_complete_type just delegates to
5618         _dbus_type_signature_next.
5619
5620         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5621         to dbus-signature.c
5622         (_dbus_type_is_container): Ditto.
5623
5624         * doc/dbus-specification.xml: Update introspection sample to
5625         use real type signatures.
5626
5627         * dbus/dbus-test.h: Prototype signature test.
5628
5629         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5630         signature tests.
5631
5632         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5633
5634 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5635
5636         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5637         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5638
5639 2005-02-21  Colin Walters  <walters@verbum.org>
5640
5641         * dbus/dbus-test-main.c (main): Take optional specific test
5642         argument.
5643
5644         * dbus/dbus-test.c (run_test): New function, runs a test function
5645         with no data directory.
5646         (run_data_test): Like above, but takes data directory.
5647         (dbus_internal_do_not_use_run_tests): Take
5648         specific test argument.  Replace lots of cut n' paste code
5649         with run_test and run_data_test.
5650
5651         * dbus/dbus-test.h: Update prototype for
5652         dbus_internal_do_not_use_run_tests.
5653
5654 2005-02-20  Havoc Pennington  <hp@redhat.com>
5655
5656         Fix bugs reported by Daniel P. Berrange
5657         
5658         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5659         (protected_change_watch): new function
5660         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5661         (_dbus_server_add_watch): change to work like the
5662         dbus-connection.c equivalents; like those, probably kind of
5663         busted, but should at least mostly work for now
5664         (dbus_server_disconnect): drop the lock if we were already
5665         disconnected, patch from Daniel P. Berrange
5666
5667         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5668         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5669         same stuff
5670
5671         * doc/TODO: todo about unscrewing this mess
5672
5673 2005-02-19  Colin Walters  <walters@verbum.org>
5674
5675         * glib/dbus-binding-tool-glib.c
5676         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5677
5678         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5679         as errno.h and sys/stat.h.
5680         (lose): New function, prints error with
5681         newline and exits.
5682         (lose_gerror): Similar, but takes GError for message.
5683         (main): Add --output argument to specify output file to write to,
5684         instead of always printing to stdout.  In this mode, determine
5685         timestamps on source files to see whether any are newer than the
5686         target file.  If not, exit.  Also convert a number of error
5687         messages to use lose (since it's shorter), and switch to using
5688         g_io_channel_shutdown.
5689
5690 2005-02-19  Havoc Pennington  <hp@redhat.com>
5691
5692         * glib/dbus-gobject.c
5693         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5694
5695         * glib/dbus-glib.c: fix doxygen warnings
5696
5697         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5698         is found on an <arg>
5699
5700 2005-02-17  Colin Walters  <walters@verbum.org>
5701
5702         * glib/dbus-gobject.h: Don't export
5703         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5704         
5705         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5706         (invoke_object_method): Handle it.
5707
5708         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5709         Handle rename.
5710         
5711 2005-02-17  Colin Walters  <walters@verbum.org>
5712
5713         * bus/.cvsignore, doc/.cvsignore
5714         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5715         Update.
5716
5717 2005-02-17  Colin Walters  <walters@verbum.org>
5718         
5719         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5720         Rename to DBUS_SERVICE_DBUS.
5721         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5722         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5723         Change the value from "org.freedesktop.Local"
5724         to "org.freedesktop.DBus.Local".
5725         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5726         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5727         DBUS_INTERFACE_INTROSPECTABLE.
5728         Change the value from "org.freedesktop.Introspectable"
5729         to "org.freedesktop.DBus.Introspectable".
5730         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5731         DBUS_INTERFACE_PROPERTIES.
5732         Change the value from "org.freedesktop.Properties"
5733         to "org.freedesktop.DBus.Properties".
5734         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5735         DBUS_INTERFACE_PEER.
5736         Change the value from "org.freedesktop.Peer"
5737         to "org.freedesktop.DBus.Peer".
5738         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5739         DBUS_INTERFACE_LOCAL.
5740         Change the value from "org.freedesktop.Local"
5741         to "org.freedesktop.DBus.Local".
5742
5743         All other users of those constants have been changed.
5744
5745         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5746
5747         * glib/dbus-gobject.c (handle_introspect): Use constants.
5748
5749         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5750
5751 2005-02-17  Colin Walters  <walters@verbum.org>
5752
5753         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5754         (parse_node, parse_interface, parse_method, parse_signal)
5755         (parse_property, parse_annotation): Lose if we're currently in an
5756         annotation.
5757         (parse_annotation): New function.
5758         (parser_start_element, parser_end_element): Handle annotation.
5759         (parse_method, parse_interface): Remove support for c_name attribute,
5760         switch to annotations.
5761
5762         * glib/dbus-gidl.h (interface_info_get_binding_names)
5763         (method_info_get_binding_names)
5764         (interface_info_get_binding_name, method_info_get_binding_name)
5765         (interface_info_set_binding_name, method_info_set_binding_name):
5766         Remove.
5767         (interface_info_get_annotations, method_info_get_annotations)
5768         (interface_info_get_annotation, method_info_get_annotation)
5769         (interface_info_add_annotation, method_info_add_annotation):
5770         Prototype.
5771
5772         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5773         for "bindings".
5774         (struct MethodInfo): Ditto.
5775         Straightfoward conversion of binding methods into annotation methods
5776         as prototyped.
5777
5778         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5779
5780         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5781
5782         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5783         Use new annotation API.
5784
5785         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5786         annotation element.
5787         
5788         * doc/dbus-specification.xml: Discuss introspection annotations,
5789         include list of well-known annotations.
5790
5791         * test/glib/test-service-glib.xml: Make validate against new DTD.
5792
5793 2005-02-17  Colin Walters  <walters@verbum.org>
5794
5795         This patch is based on initial work from
5796         Paul Kuliniewicz <kuliniew@purdue.edu>.
5797
5798         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5799         initialization of GValue from dbus type to here.
5800         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5801         for the "glib-genmarshal" program from a DBus type.
5802         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5803         into the C name for it we use in the glib bindings.
5804         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5805         glib C type (not GValue).
5806         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5807
5808         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5809         from dbus-gobject.c.
5810
5811         * glib/dbus-gutils.h: Prototype it.
5812
5813         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5814         (marshal_dbus_message_to_g_marshaller): Use new shared function
5815         dbus_glib_marshal_dbus_message_to_gvalue_array.
5816
5817         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5818         Will be changed once we have annotations.
5819
5820         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5821         GStaticRWLock.  Callers updated.
5822         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5823         (string_table_next): New function for iterating over zero-terminated
5824         string value array.
5825         (string_table_lookup): New function; retrieves specific entry in
5826         array.
5827         (get_method_data): New function; look up method data in object data chunk.
5828         (object_error_domain_prefix_from_object_info)
5829         (object_error_code_from_object_info): New functions, but not implemented yet.
5830         (method_interface_from_object_info): New function; retrieve interface name.
5831         (method_name_from_object_info): New function; retrieve method name.
5832         (method_arg_info_from_object_info): New function; retrieve argument data.
5833         (arg_iterate): New function; iterates over serialized argument data.
5834         (method_dir_signature_from_object_info): New function; returns a
5835         GString holding type signature for arguments for just one
5836         direction (input or output).
5837         (method_input_signature_from_object_info)
5838         (method_output_signature_from_object_info): New functions.
5839         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5840         converts dbus message arguments into a GValue array.  Used for both
5841         signal handling and method invocation.
5842         (struct DBusGlibWriteIterfaceData): New utility structure.
5843         (write_interface): New function; generate introspection XML for
5844         an interface.
5845         (introspect_interfaces): New function; gathers all interface->methods,
5846         generates introspection XML for them.
5847         (handle_introspect): Invoke introspect_interfaces.
5848         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5849         (lookup_object_and_method): New function; examines an incoming message
5850         and attempts to match it up (via interface, method name, and argument
5851         signature) with a known object and method.
5852         (gerror_domaincode_to_dbus_error_name): New function; converts a
5853         GError domain and code into a DBus error name.  Needs GError data
5854         added to object introspection to work well.
5855         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5856         GError.
5857         (invoke_object_method): New function to invoke an object method
5858         looked up via lookup_object_and_method.  Parses the incoming
5859         message, turns it into a GValue array, then invokes the marshaller
5860         specified in the DBusGMethodInfo.  Creates a new message with
5861         either return values or error message as appropriate.
5862         (gobject_message_function): Invoke lookup_object_and_method and
5863         invoke_object_method.
5864
5865         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5866         (enum DBusBindingOutputMode): New enum for binding output modes.
5867         (pretty_print): Print binding names.
5868         (dbus_binding_tool_error_quark): GError bits.
5869         (version): Fix typo.
5870         (main): Create GIOChannel for output.  Parse new --mode argument,
5871         possible values are "pretty-print", "glib-server", "glib-client".
5872         Use mode to invoke appropriate function.
5873         
5874         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5875
5876         * glib/dbus-glib-tool.h: New header, just includes GError bits
5877         for now.
5878
5879         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5880         maps binding style to name.
5881         (struct MethodInfo): Ditto.
5882         (get_hash_keys, get_hash_key): Utility function, returns keys for
5883         a GHashTable.
5884         (interface_info_new, method_info_new): Initialize bindings.
5885         (interface_info_unref, method_info_unref): Destroy bindings.
5886         (method_info_get_binding_names, method_info_get_binding_name)
5887         (interface_info_get_binding_names, interface_info_get_binding_name):
5888         Functions for retrieving binding names.
5889         (method_info_set_binding_name, interface_info_set_binding_name):
5890         Functions for setting binding names.
5891
5892         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5893         for glib binding generation.
5894
5895         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5896         and client-side glib glue generation.
5897
5898         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5899         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5900         dbus-glib-tool.h.
5901
5902         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5903         of using GClosureMarshal directly.
5904         (struct DBusGObjectInfo): Add n_infos member.
5905
5906         * test/glib/test-service-glib.xml: New file; contains introspection data
5907         for MyTestObject used in test-service-glib.c.
5908
5909         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5910         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5911         (my_object_uppercase, my_object_many_args): New test methods.
5912         (main): Use dbus_g_object_class_install_info to include generated object
5913         info.
5914
5915         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5916         as well as client-side bindings.
5917
5918         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5919         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5920         using both the dbus_gproxy stuff directly as well as the generated bindings.
5921
5922 2005-02-15  Havoc Pennington  <hp@redhat.com>
5923
5924         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5925         complete a pending call, don't run filters first.
5926
5927         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5928         dbus_pending_call_steal_reply
5929
5930         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5931         _dbus_connection_block_pending_call
5932         (dbus_pending_call_get_reply): change to steal_reply and return a
5933         ref
5934
5935         * dbus/dbus-connection.c
5936         (dbus_connection_send_with_reply_and_block): port to work in terms
5937         of DBusPendingCall
5938         (_dbus_connection_block_pending_call): replace block_for_reply
5939         with this
5940
5941 2005-02-14  Havoc Pennington  <hp@redhat.com>
5942
5943         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5944         properly handle looking up group information by name; fix 
5945         from j@bootlab.org
5946
5947 2005-02-13  Havoc Pennington  <hp@redhat.com>
5948
5949         * dbus/dbus-connection.c (dbus_connection_return_message) 
5950         (dbus_connection_borrow_message): hold dispatch lock while message
5951         is outstanding
5952         (_dbus_connection_block_for_reply): hold dispatch lock while we
5953         block for the reply, so nobody steals our reply
5954         (dbus_connection_pop_message): hold the dispatch lock while we
5955         pluck the message
5956
5957 2005-02-13  Havoc Pennington  <hp@redhat.com>
5958
5959         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5960         (_dbus_connection_release_dispatch)
5961         (_dbus_connection_acquire_io_path)
5962         (_dbus_connection_release_io_path): make the mutex and condvar
5963         control access to the "acquired" flag. Drop the connection lock
5964         while waiting on the condvar. Hopefully these are baby steps in
5965         roughly the right direction.
5966
5967 2005-02-13  Havoc Pennington  <hp@redhat.com>
5968
5969         * dbus/dbus-connection.c: use separate mutexes for the condition
5970         variables; this is some kind of baseline for sanity, but the
5971         condition variables still aren't used correctly afaict
5972
5973 2005-02-13  Havoc Pennington  <hp@redhat.com>
5974
5975         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5976         fix a double-unlock
5977
5978         * dbus/dbus-connection.c
5979         (_dbus_connection_detach_pending_call_unlocked): add this
5980
5981         Initial semi-correct pass through to fix thread locking; there are
5982         still some issues with the condition variable paths I'm pretty
5983         sure
5984         
5985         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5986         lock/unlock calls
5987
5988         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5989         rename to add _unlocked
5990         (struct DBusConnection): move "dispatch_acquired" and
5991         "io_path_acquired" to use only one bit each.
5992         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5993         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5994         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5995         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5996         (_dbus_connection_remove_timeout) 
5997         (_dbus_connection_toggle_timeout): drop lock when calling out to
5998         user functions; done in a hacky/bad way.
5999         (_dbus_connection_send_and_unlock): add a missing unlock
6000         (_dbus_connection_block_for_reply): add a missing unlock
6001
6002         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6003         drop lock in a hacky probably unsafe way to call out to user
6004         function
6005
6006 2005-02-12  Havoc Pennington  <hp@redhat.com>
6007
6008         * tools/dbus-tree-view.c (info_set_func_text): display more
6009         details on args
6010
6011         * bus/driver.c (bus_driver_handle_list_services): list the bus
6012         driver
6013
6014         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6015
6016         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6017         (method_info_get_n_args): new function
6018
6019 2005-02-12  Havoc Pennington  <hp@redhat.com>
6020
6021         * bus/driver.c (bus_driver_handle_introspect): add introspection
6022         for bus driver
6023
6024 2005-02-12  Havoc Pennington  <hp@redhat.com>
6025
6026         * bus/driver.c: put the signature of each bus driver method in the
6027         table of handlers and check it on incoming calls; this isn't
6028         really useful, but going to add introspect support in a minute.
6029
6030 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6031
6032         * mono/Connection.cs: The unpredictability of finalizers in mono
6033         prevents us from deterministically disconnecting the filters from
6034         the Service class's finalizer, so move tracking of filters and
6035         matches here.  Add API for that.
6036
6037         * mono/Service.cs: Remove the code, add code which calls the
6038         methods now on the Connection class.
6039
6040 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6041
6042         * python/dbus.py (class Sender): added to support dbus signals better
6043         (Bus::add_signal_receiver): added expand_args parameter which defaults
6044         to True.  When expand args is True the signal handler will pass the 
6045         message arguments as parameters to the signal handler.  If False
6046         revert to previous behavior where the signal handler must get the
6047         argument list from the message.  This is to help port applications
6048         like HAL that have a tendancy to send variable length argument lists.
6049         self._match_rule_to_receivers is now a dict of dicts.
6050         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6051         removing it from a list
6052         (Bus::_signal_func): change signal handlers so that interface,
6053         signal_name, service, path and message are packed into a Sender
6054         object and that is passed to the handler.  If expand_args is True
6055         extract the args list from the message and append it to the parameter
6056         list
6057         
6058         * python/dbus_bindings.pyx.in (class Signature): added to support 
6059         signiature types
6060         (MessageIter::__init__): changed iteration limit to match D-BUS
6061         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6062         STRUCT and VARIENT type support
6063         (MessageIter::python_value_to_dbus_sig): made recursive to support
6064         recursive types
6065         (MessageIter::append*): added Signature, dict, tuple 
6066         support
6067
6068         * python/examples/example-client.py: added examples of getting tuples
6069         and dicts
6070
6071         * python/examples/example-service.py: added examples of sending tuples
6072         and dicts
6073
6074         * python/examples/example-signal-recipient.py: Fixed to handle new
6075         signal callback format
6076
6077 2005-02-10  Havoc Pennington  <hp@redhat.com>
6078
6079         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6080         (call dbus_g_proxy_add_signal)
6081
6082         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6083         escape the hostname
6084         (_dbus_server_new_for_domain_socket): escape the path
6085
6086         * dbus/dbus-address.c (dbus_address_escape_value): new
6087         (dbus_address_unescape_value): new
6088         (dbus_parse_address): unescape values
6089
6090         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6091
6092         * doc/dbus-specification.xml: explain how to escape values in
6093         addresses
6094
6095 2005-02-10  Havoc Pennington  <hp@redhat.com>
6096
6097         * dbus/dbus-message-factory.c (generate_special): modify test to
6098         avoid using a non-basic dict key
6099
6100         * dbus/dbus-marshal-validate-util.c: add test for the below
6101
6102         * doc/dbus-specification.xml: require that dict keys are a basic
6103         type
6104
6105         * dbus/dbus-marshal-validate.c
6106         (_dbus_validate_signature_with_reason): require that dict key is a
6107         basic type
6108
6109 2005-02-10  Havoc Pennington  <hp@redhat.com>
6110
6111         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6112         change to be _and_unlock instead of _unlocked
6113
6114         * dbus/dbus-connection.c
6115         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6116         have no_update so we can find this bug quickly in future
6117
6118 2005-02-10  Havoc Pennington  <hp@redhat.com>
6119
6120         * dbus/dbus-message-util.c (verify_test_message): tests for string
6121         array
6122
6123         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6124         support for arrays of string/signature/path
6125
6126 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6127
6128         * dbus/dbus-connection.c
6129         (_dbus_connection_queue_received_message_link,
6130         _dbus_connection_message_sent): Add the path to
6131         the verbose output.
6132         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6133         _dbus_connection_send_preallocated_unlocked(), updated the
6134         dispatch status, and unlocks.  Fixes a bug where certain
6135         situations (like a broken pipe) could cause a Disconnect message
6136         to not be sent, tricking the bus into thinking a service was still
6137         there when the process had quit.
6138         (_dbus_connection_send_preallocated): Call
6139         _dbus_connection_send_preallocated_and_unlock().
6140         (_dbus_connection_send_and_unlock): Added.  Calls
6141         _dbus_connection_send_preallocated_and_unlock().
6142         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6143         (dbus_connection_send_with_reply): Update the dispatch status and
6144         unlock.
6145
6146         * mono/Service.cs (~Service): Added.  Removes the filter so that
6147         we don't get unmanaged code calling back into a GCed delegate.
6148         (RemoveFilter); Added.
6149
6150 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6151
6152         * dbus/dbus-message.c (dbus_message_iter_open_container):
6153         - Removed check for iterator type being an array because
6154         get_arg_type does not work with writer iterators
6155         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6156
6157 2005-02-07  Havoc Pennington  <hp@redhat.com>
6158
6159         * doc/dbus-specification.xml: some more language cleanups; add
6160         stuff about how to deal with invalid protocol and extension
6161         points; add _ to allowed chars in auth commands; add EXTENSION_
6162         auth command prefix
6163
6164 2005-02-06  Havoc Pennington  <hp@redhat.com>
6165
6166         * s/expected/required/ in a couple places for clarity
6167
6168 2005-02-07  Colin Walters  <walters@verbum.org>
6169
6170         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6171         sender or proposed_recipient.
6172
6173 2005-02-06  Havoc Pennington  <hp@redhat.com>
6174
6175         * dbus/dbus-message-factory.c (generate_special): more tests
6176
6177         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6178         array length that exceeds the maximum
6179
6180 2005-02-05  Havoc Pennington  <hp@redhat.com>
6181
6182         * dbus/dbus-message-factory.c (generate_special): more test cases,
6183         increasing coverage
6184
6185         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6186         reason why a signature was invalid
6187
6188         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6189         skip the length of the string before we look at it in validation
6190
6191         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6192         equal_substring
6193
6194         * dbus/dbus-message.c (_dbus_message_loader_new): default
6195         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6196
6197 2005-02-05  Havoc Pennington  <hp@redhat.com>
6198
6199         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6200         if the signature of a variant was empty
6201         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6202         struct with no element type)
6203
6204         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6205         mangled messages to break things
6206
6207 2005-02-04  Havoc Pennington  <hp@redhat.com>
6208
6209         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6210         g_quark_try_string() so it actually can return 0
6211         (dbus_g_proxy_connect_signal): ditto
6212
6213 2005-02-04  Havoc Pennington  <hp@redhat.com>
6214
6215         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6216         bogus warning
6217         (tristring_from_message): assert cleanly on null path/interface
6218         (should not be possible though I decided later)
6219         (dbus_g_proxy_dispose): move proxy manager unregistration here
6220         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6221         g_return_if_fail() checks
6222
6223 2005-02-04  Havoc Pennington  <hp@redhat.com>
6224
6225         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6226
6227         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6228         (with some minor changes)
6229
6230         * doc/dbus-specification.xml: add deprecated attribute to
6231         introspection format
6232
6233 2005-01-31  Havoc Pennington  <hp@redhat.com>
6234
6235         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6236         think it's sort of right
6237
6238 2005-01-30  Havoc Pennington  <hp@redhat.com>
6239
6240         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6241
6242 2005-01-30  Havoc Pennington  <hp@redhat.com>
6243
6244         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6245
6246         * autogen.sh: change to autotools 1.9
6247
6248         * glib/dbus-gproxy.c: completely change how signals work
6249         (dbus_g_proxy_add_signal): new function to specify signature of a
6250         signal
6251         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6252         and g_warning if the incoming message has the wrong signature.
6253
6254 2005-01-30  Havoc Pennington  <hp@redhat.com>
6255
6256         * tools/dbus-names-model.c (have_names_notify): fix this
6257
6258         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6259         up the string array handling a bit 
6260
6261 2005-01-30  Havoc Pennington  <hp@redhat.com>
6262
6263         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6264         (dbus_g_pending_call_cancel): new function
6265
6266         * dbus/dbus-glib.h: move GType decls for connection/message here;
6267         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6268         here, just kind of rationalizing how we handle all that
6269
6270         * tools/dbus-names-model.c: new file for a tree model listing the
6271         services on a bus
6272
6273         * tools/dbus-tree-view.c (model_new): use proper typing on the
6274         model rows
6275
6276 2005-01-30  Havoc Pennington  <hp@redhat.com>
6277
6278         * glib/dbus-gmain.c: add a custom GSource back that just checks
6279         whether the message queue has anything in it; otherwise, there are 
6280         cases where we won't see messages in the queue since there was no 
6281         IO visible to the glib main loop
6282
6283         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6284         increase default message timeout to 25 seconds
6285
6286 2005-01-30  Havoc Pennington  <hp@redhat.com>
6287
6288         * test/glib/test-profile.c (no_bus_stop_server): remove the
6289         warning about the g_warning that I just fixed
6290
6291         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6292         custom source, seems to be a lot easier to understand and work
6293         better.
6294
6295 2005-01-30  Havoc Pennington  <hp@redhat.com>
6296
6297         I think this main loop thing is conceptually broken, but here are 
6298         some band aids. I'll maybe rewrite it in a minute.
6299         
6300         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6301         custom GSource, so don't pass it in; confusing
6302         (gsource_server_finalize, gsource_connection_finalize): add
6303         finalize handlers that remove all the watches.  
6304
6305 2005-01-30  Havoc Pennington  <hp@redhat.com>
6306
6307         * glib/dbus-gobject.c (introspect_properties): fix the XML
6308         generated
6309
6310         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6311         which effectively detects the use of freed messages
6312
6313         * glib/dbus-gobject.c (handle_introspect): modify and return the
6314         reply message instead of the incoming message
6315
6316         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6317         gee, maybe it should SEND THE XML instead of just making a string
6318         and freeing it again ;-)
6319
6320         * tools/dbus-print-message.c (print_message): improve printing of
6321         messages
6322
6323         * configure.in: add debug-glib.service to the output
6324
6325 2005-01-30  Havoc Pennington  <hp@redhat.com>
6326
6327         dbus-viewer introspected and displayed the bus driver
6328         
6329         * dbus/dbus-object-tree.c 
6330         (object_tree_test_iteration): add tests for a handler registered on "/"
6331
6332         * dbus/dbus-object-tree.c
6333         (_dbus_decompose_path): fix to handle path "/" properly
6334         (run_decompose_tests): add tests for path decomposition
6335         
6336         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6337         properly
6338
6339         * glib/dbus-gobject.c (handle_introspect): fix quotes
6340
6341         * test/glib/run-test.sh: support launching the bus, then running
6342         dbus-viewer
6343
6344         * test/glib/test-service-glib.c (main): put in a trivial gobject
6345         subclass and register it on the connection
6346
6347         * bus/driver.c (bus_driver_handle_introspect): implement
6348         introspection of the bus driver service
6349
6350         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6351         identifiers, doctype decl
6352
6353         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6354         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6355         returning the service unchanged.
6356         (bus_driver_handle_message): remove old check for reply_serial in
6357         method calls, now the message type deals with that
6358         (bus_driver_handle_message): handle NULL interface
6359
6360         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6361
6362         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6363         -1 for len
6364
6365         * tools/dbus-viewer.c: add support for introspecting a service on
6366         a bus
6367
6368         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6369         (dbus_g_pending_call_unref): add
6370
6371 2005-01-29  Havoc Pennington  <hp@redhat.com>
6372
6373         * tools/dbus-tree-view.c: add support for displaying properties.
6374         (run dbus-viewer with an introspect xml file as arg, then resize
6375         the window so the tree elements show up, not sure what that is)
6376
6377         * glib/dbus-gobject.c (handle_introspect): return
6378         org.freedesktop.Properties and org.freedesktop.Introspectable
6379         interfaces when we are introspected.
6380
6381         * doc/dbus-specification.xml: allow empty interface name when 
6382         Get/Set a property
6383
6384 2005-01-29  Havoc Pennington  <hp@redhat.com>
6385
6386         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6387         though it uses glib, it could be extended for any binding in
6388         principle
6389
6390         * glib/dbus-gobject.c (gobject_message_function): change to the
6391         new way properties work
6392
6393         * dbus/dbus-protocol.h: add the new interfaces
6394
6395         * doc/dbus-specification.xml: document the introspection format,
6396         Introspectable interface, and add an org.freedesktop.Properties
6397         interface.
6398
6399         * glib/dbus-gparser.c: add support for a <property> element
6400
6401         * glib/dbus-gidl.c: add PropertyInfo
6402
6403         * glib/dbus-gobject.c (handle_introspect): put the outermost
6404         <node> outside the signal and property descriptions.
6405         (introspect_properties): export properties as <property> rather
6406         than as method calls
6407
6408 2005-01-28  Havoc Pennington  <hp@redhat.com>
6409
6410         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6411         related to authentication protocol
6412
6413 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6414
6415         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6416                 - BUS_ACTIVATION -> BUS_STARTER
6417                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6418                 - class MessageIter (__init__): Added recursion checking 
6419                 so we throw a nice error instead of just disconnecting from the
6420                 bus.
6421                 (get): Added arg_type parameter for recursion.
6422                 Removed the nil type
6423                 Added signiture type placeholder (not implemented)
6424                 Added struct type placeholder (not implemented)
6425                 Added varient type placeholder (not implemented)
6426                 Commented out dict type for now     
6427                 (get_element_type): renamed from get_array_type
6428                 (get_*): changed to use the dbus_message_iter_get_basic API
6429                 (get_*_array): removed in favor of recursive get_array method
6430                 (get_array): new recursive method which calls get to marshal
6431                 the elements of the array
6432                 (value_to_dbus_sig): New method returns the corrasponding
6433                 dbus signiture to a python value
6434                 (append): Comment out dict handling for now
6435                 Handle lists with the new recursive API
6436                 Comment out None handling for now
6437                 (append_nil): removed
6438                 (append_*): changed to use dbus_message_iter_append_basic API
6439                 (append_*_array): removed in favor of recursive append_array 
6440                 method
6441                 (__str__): Make it easier to print out recursive iterators
6442                 for debugging
6443                 - class Message (__str__): moved type inspection to the
6444                 MessageIter class' __str__ method
6445                 (get_iter): Added an append parameter wich defaults to False
6446                 If True use the new API's to create an append iterator
6447
6448         * python/dbus.py: Update to use new bindings API
6449                 - TYPE_ACTIVATION -> TYPE_STARTER
6450                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6451                 - class ActivationBus -> class StarterBus
6452                 - class RemoteObject (__call__): get an append iterator
6453                 - (_dispatch_dbus_method_call): get an append iterator
6454                 - class Object (emit_signal): get an append iterator
6455
6456         * python/examples/: Fixed up the examples to work with the new API
6457                 
6458 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6459
6460         * configure.in: Bump version up to 0.30.
6461
6462         * HACKING: Add a release item to bump the version number up after 
6463         a release.
6464
6465 2005-01-28  Havoc Pennington  <hp@redhat.com>
6466
6467         * doc/dbus-specification.xml: update to describe 16-bit types and
6468         dict entries
6469
6470         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6471         assertion
6472
6473         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6474         type
6475
6476         * dbus/dbus-marshal-recursive.c: implement
6477
6478 2005-01-27  Havoc Pennington  <hp@redhat.com>
6479
6480         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6481
6482         * configure.in: find the right type for 16 and 32 bit ints as well
6483         as 64
6484
6485         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6486         the 16-bit types so people don't have to stuff them in 32-bit or
6487         byte arrays.
6488
6489 2005-01-27  Havoc Pennington  <hp@redhat.com>
6490
6491         * dbus/dbus-message.c: byteswap the message if you init an
6492         iterator to read/write from it
6493         
6494         * dbus/dbus-marshal-byteswap.c: new file implementing 
6495         _dbus_marshal_byteswap()
6496
6497         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6498
6499 2005-01-26  Havoc Pennington  <hp@redhat.com>
6500         
6501         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6502         build, apparently - nobody noticed?)
6503         
6504 2005-01-26  Havoc Pennington  <hp@redhat.com>
6505
6506         * dbus/dbus-marshal-recursive.h: remove todo comment
6507
6508 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6509
6510         * Land the mono binding changes to conform to the new APIs.
6511
6512         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6513         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6514
6515         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6516         type code as a string.
6517         (InitAppending): Rename dbus_message_append_iter_init() to
6518         dbus_message_iter_init_append().
6519
6520         * mono/BusDriver.cs: Rename ServiceEventHandler to
6521         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6522         Rename ServiceOwnerChanged to NameOwnerChanged.
6523
6524         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6525         underlying C call.
6526
6527         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6528
6529         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6530         dbus_bus_acquire_service() to dbus_bus_request_name().
6531
6532         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6533         of Type.UnderlyingSystemType to get the correct element type for
6534         the array.
6535         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6536         dbus_message_get_{element|arg}_type() instead of
6537         dbus_message_iter_init_array_iterator().
6538         (Append): Replace dbus_message_iter_append_array() with
6539         dbus_message_iter_open_container() and
6540         dbus_message_iter_close_container().
6541
6542         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6543         types have been removed.
6544         
6545         * mono/DBusType/*.cs: Replace calls of
6546         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6547         but specify the type in the DllImport extern declaration.  Ditto
6548         for dbus_message_iter_append_[type]() ->
6549         dbus_message_iter_append_basic().
6550
6551         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6552         NameOwnerChangedHandler.
6553
6554 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6555
6556         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6557                 - get_base_service -> get_unique_name
6558                 - bus_get_base_service -> bus_get_unique_name
6559                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6560                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6561                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6562                 - bus_activate_service -> bus_start_service_by_name
6563                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6564                 - bus_acquire_service -> bus_request_name
6565                 - dbus_bus_acquire_service -> dbus_bus_request_name
6566                 - bus_service_exists -> bus_name_has_owner
6567                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6568
6569         * python/dbus.py: Rename of methods
6570                 - activate_service -> start_service_by_name
6571                 - bus_acquire_service -> bus_request_name
6572                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6573                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6574
6575         
6576 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6577
6578         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6579         signature for the method that can't be found.
6580
6581         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6582         the message has any arguments, we need to call
6583         _dbus_type_reader_get_current_type(), not
6584         _dbus_type_reader_has_next().
6585
6586 2005-01-24  Havoc Pennington  <hp@redhat.com>
6587
6588         * dbus/dbus-message-factory.c: more testing of message validation
6589
6590         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6591         header
6592
6593 2005-01-23  Havoc Pennington  <hp@redhat.com>
6594
6595         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6596         get this all working, not many tests in the framework yet though
6597
6598 2005-01-22  Havoc Pennington  <hp@redhat.com>
6599
6600         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6601         tutorial, based on work from David Wheeler.
6602
6603 2005-01-21  Havoc Pennington  <hp@redhat.com>
6604
6605         * dbus/dbus-bus.c: add more return_if_fail checks
6606
6607         * dbus/dbus-message.c (load_message): have the "no validation"
6608         mode (have to edit the code to toggle the mode for now though)
6609
6610         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6611         skips all validation; I want to use this at least for benchmark
6612         baseline, I'm not sure if it should be a publicly-available switch.
6613
6614 2005-01-21  Havoc Pennington  <hp@redhat.com>
6615
6616         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6617         toplevel doxygen group as the low-level API stuff
6618
6619         * dbus/dbus.h: note that libdbus is the low-level API
6620
6621 2005-01-20  Havoc Pennington  <hp@redhat.com>
6622
6623         * update-dbus-docs.sh: script to update docs on the web site, only
6624         works for me though. neener.
6625
6626 2005-01-20  Havoc Pennington  <hp@redhat.com>
6627
6628         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6629         code can reveal bugs in it
6630
6631 2005-01-20  Havoc Pennington  <hp@redhat.com>
6632
6633         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6634         select() version, patches from Tor Lillqvist
6635
6636 2005-01-20  Havoc Pennington  <hp@redhat.com>
6637
6638         * doc/dbus-tutorial.xml: replace > with &gt;
6639
6640         * bus/services.c (bus_registry_acquire_service): validate the name
6641         and return a better error if it's no good.
6642
6643         * doc/dbus-specification.xml: note NO_AUTO_START change
6644
6645         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6646         from AUTO_START, we're toggling the default
6647
6648         * bus/dispatch.c: adapt the tests to change of auto-start default
6649
6650 2005-01-18  Havoc Pennington  <hp@redhat.com>
6651
6652         * rename dbus-daemon-1 to dbus-daemon throughout
6653
6654 2005-01-18  Havoc Pennington  <hp@redhat.com>
6655
6656         * Throughout, grand renaming to strip out the use of "service",
6657         just say "name" instead (or "bus name" when ambiguous).  Did not
6658         change the internal code of the message bus itself, only the
6659         programmer-facing API and messages.
6660         
6661         * doc/dbus-specification.xml: further update the message bus section
6662         
6663         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6664         in error case
6665
6666 2005-01-17  Havoc Pennington  <hp@redhat.com>
6667
6668         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6669         ever
6670
6671         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6672         "invalid name character" not only non-ASCII
6673
6674         * doc/dbus-specification.xml: further update spec, message bus 
6675         parts are still out-of-date but the marshaling etc. stuff is now
6676         accurate-ish
6677
6678 2005-01-17  Havoc Pennington  <hp@redhat.com>
6679
6680         * doc/dbus-specification.xml: partially update spec
6681
6682 2005-01-17  Havoc Pennington  <hp@redhat.com>
6683
6684         * Throughout, align variant bodies according to the contained
6685         type, rather than always to 8. Should save a fair bit of space in
6686         message headers.
6687         
6688         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6689         fix handling of case where p == end
6690
6691         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6692
6693 2005-01-17  Havoc Pennington  <hp@redhat.com>
6694
6695         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6696
6697         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6698         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6699         are marshaling/unmarshaling a boolean.
6700
6701 2005-01-16  Havoc Pennington  <hp@redhat.com>
6702
6703         This is about it on what can be disabled/deleted from libdbus
6704         easily, back below 150K anyhow. Deeper cuts are more work than 
6705         just turning the code off as I've done here.
6706         
6707         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6708         signed int convenience funcs
6709
6710         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6711         verbose mode
6712
6713         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6714         things out of libdbus
6715
6716         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6717         
6718         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6719         tests-enabled-only, though it should probably be deleted)
6720
6721         * dbus/dbus-message-util.c: same stuff
6722
6723         * dbus/dbus-auth-util.c: same stuff
6724
6725 2005-01-16  Havoc Pennington  <hp@redhat.com>
6726
6727         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6728
6729         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6730         way for stripping down dbus-userdb.c stuff included in libdbus.
6731         Rename _dbus_parse_uid for consistency.
6732
6733 2005-01-16  Havoc Pennington  <hp@redhat.com>
6734
6735         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6736         name the assertion failed in
6737
6738         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6739         (_dbus_return_val_if_fail): assert that the name of the function
6740         containing the check doesn't start with '_', since we only want to 
6741         use checks on public functions
6742         
6743         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6744         checks to assertions
6745
6746         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6747         change checks to asserts for private function
6748
6749         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6750         to asserts for private function
6751
6752         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6753         broken assertion that was breaking make check
6754         (_dbus_type_reader_array_is_empty): remove this rather than fix
6755         it, was only used in assertions
6756
6757 2005-01-16  Havoc Pennington  <hp@redhat.com>
6758
6759         * test/unused-code-gc.py: hacky script to find code that's used
6760         only by the bus (not libdbus) or used only by tests or not used at
6761         all. It has some false alarms, but looks like we can clean up a
6762         lot of size from libdbus.
6763
6764         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6765         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6766         
6767 2005-01-16  Havoc Pennington  <hp@redhat.com>
6768
6769         * Add and fix docs according to Doxygen warnings throughout
6770         source.
6771         
6772         * dbus/dbus-marshal-recursive.c
6773         (_dbus_type_reader_array_is_empty): change this to just call
6774         array_reader_get_array_len() and make it static
6775
6776         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6777         from get_array_type
6778         (dbus_message_iter_init_append): rename from append_iter_init
6779
6780         * dbus/dbus-marshal-recursive.c
6781         (_dbus_type_reader_get_element_type): rename from
6782         _dbus_type_reader_get_array_type
6783
6784 2005-01-15  Havoc Pennington  <hp@redhat.com>
6785
6786         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6787
6788         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6789         when DBUS_DISABLE_ASSERT
6790         (_dbus_marshal_set_basic): be sure we align for the string length
6791
6792         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6793         this look faster
6794
6795         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6796         inline macro version
6797         (_dbus_string_set_byte): provide inline macro version
6798
6799 2005-01-15  Havoc Pennington  <hp@redhat.com>
6800
6801         * Land the new message args API and type system.
6802
6803         This patch is huge, but the public API change is not 
6804         really large. The set of D-BUS types has changed somewhat, 
6805         and the arg "getters" are more geared toward language bindings;
6806         they don't make a copy, etc.
6807
6808         There are also some known issues. See these emails for details
6809         on this huge patch:
6810         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6811         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6812         
6813         * dbus/dbus-marshal-*: all the new stuff
6814
6815         * dbus/dbus-message.c: basically rewritten
6816
6817         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6818         freed blocks to be all non-nul bytes so using freed memory is less
6819         likely to work right
6820
6821         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6822         DBUS_FAIL_MALLOC=N environment variable, so you can do
6823         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6824         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6825         thorough.
6826
6827         * qt/message.cpp: port to the new message args API
6828         (operator<<): use str.utf8() rather than str.unicode()
6829         (pretty sure this is right from the Qt docs?)
6830
6831         * glib/dbus-gvalue.c: port to the new message args API
6832
6833         * bus/dispatch.c, bus/driver.c: port to the new message args API
6834
6835         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6836         "locked" flag to TRUE and align_offset to 0; I guess we never
6837         looked at these anyhow, but seems cleaner.
6838
6839         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6840         move allocation padding macro to this header; use it to implement
6841         (_DBUS_STRING_STATIC): ability to declare a static string.
6842
6843         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6844         change to return TRUE if the interface is not set.
6845
6846         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6847         to dbus-marshal-validate.[hc]
6848
6849         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6850         dbus-internals.c
6851
6852         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6853         to dbus-marshal-*.[hc]
6854
6855         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6856         function here from dbus-marshal.c
6857
6858 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6859
6860         * NEWS: Update for 0.23.
6861
6862         * configure.in: Release 0.23.
6863
6864 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6865
6866         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6867         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6868         behind.
6869
6870         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6871         uninstall"
6872
6873         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6874         is an enum, get the enum's underlying type.  Another mono
6875         1.1.3 fix.
6876
6877 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6878
6879         Patch from Sjoerd Simons <sjoerd@luon.net>
6880
6881         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6882         DESTDIR.  It breaks stuff.
6883
6884 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6885
6886         Patch from Tambet Ingo <tambet@ximian.com>
6887
6888         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6889         calling type.GetElementType().  The code previously depended on
6890         broken Mono behavior, which was fixed in Mono 1.1.3.
6891
6892         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6893         Activator.CreateInstance() so that the class's constructor is
6894         called with the right parameters.
6895
6896 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6897
6898         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6899
6900         * dbus/dbus-connection.c
6901         (_dbus_connection_queue_received_message_link): Call
6902         _dbus_connection_remove_timeout() instead of the _locked()
6903         variant, since it's always called from
6904         _dbus_connection_handle_watch(), which handles the locking.
6905         Removed the _locked() variant since it's no longer used.
6906
6907 2005-01-03  Havoc Pennington  <hp@redhat.com>
6908
6909         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6910         return
6911         
6912 2004-12-26  Havoc Pennington  <hp@redhat.com>
6913
6914         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6915
6916 2005-01-03  Havoc Pennington  <hp@redhat.com>
6917
6918         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6919         floating point
6920
6921         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6922
6923 2005-01-02  Havoc Pennington  <hp@redhat.com>
6924
6925         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6926
6927 2005-01-01  Havoc Pennington  <hp@redhat.com>
6928
6929         * configure.in: add -Wfloat-equal
6930
6931 2005-01-01  Havoc Pennington  <hp@redhat.com>
6932
6933         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6934         for a variety of reasons '==' doesn't do this.
6935
6936 2004-12-31  Havoc Pennington  <hp@redhat.com>
6937
6938         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6939         I keep wishing I had
6940
6941 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6942
6943         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6944
6945 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6946
6947         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6948         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6949         dbus-protocol.h.  Because they are defines and not enums they are not
6950         autogenerated.
6951
6952 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6953
6954         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6955         dbus_bus_activate_service
6956
6957         * python/dbus.py (Bus.activate_service): activate a service on the
6958         bus.
6959
6960 2004-12-24  Havoc Pennington  <hp@redhat.com>
6961
6962         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6963         file format has also changed and I haven't adapted to that yet
6964         
6965         * Makefile.am: load .gcno files from latest gcc
6966
6967 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6968         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6969
6970         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6971         lowlevel binding
6972
6973         * python/dbus.py (get_unix_user): Added binding to 
6974         call dbus_bindings.bus_get_unix_user
6975
6976         * python/extract.py: Modified the proto_pat regex to
6977         handle unsigned long
6978
6979 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6980
6981         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6982         better POSIX compliance.
6983
6984 2004-12-19  Havoc Pennington  <hp@redhat.com>
6985
6986         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6987         (_dbus_string_insert_8_aligned): new functions
6988
6989         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6990
6991 2004-12-18  Havoc Pennington  <hp@redhat.com>
6992
6993         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6994         macro
6995
6996         * dbus/dbus-message.c: fix a comment, and add a still-unused
6997         not-implemented function
6998
6999         * dbus/dbus-marshal.h: fix comment
7000
7001         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7002
7003 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7004
7005         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7006         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7007         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7008         Type.UnderlyingSystemType to get the actual system type
7009         underneath.  This code previously depended on the broken Mono
7010         behavior, which was fixed in 1.1.3.
7011
7012 2004-11-27  Havoc Pennington  <hp@redhat.com>
7013
7014         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7015         are disabled
7016         (_dbus_string_get_const_data): inline when asserts are disabled
7017
7018         * dbus/dbus-message.c: record the _dbus_current_generation of
7019         creation so we can complain if dbus_shutdown() is used improperly.
7020         Do this only if checks are enabled.
7021
7022         * dbus/dbus-connection.c: ditto
7023         
7024 2004-11-26  Havoc Pennington  <hp@redhat.com>
7025
7026         * test/glib/test-profile.c: add with_bus mode to profile echoes
7027         that go through the bus.
7028
7029         * test/glib/run-test.sh: add ability to run test-profile
7030
7031         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7032         config file reload.
7033
7034 2004-11-26  Havoc Pennington  <hp@redhat.com>
7035
7036         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7037         thing was implemented
7038
7039 2004-11-26  Havoc Pennington  <hp@redhat.com>
7040
7041         * test/glib/test-profile.c: tweak a bit, add support for some
7042         made-up minimal malloc overhead with plain sockets, since in 
7043         real life some sort of buffers are unavoidable thus we could 
7044         count them in the theoretical best case
7045
7046 2004-11-26  Havoc Pennington  <hp@redhat.com>
7047
7048         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7049         where I was trying to cache one too many messages
7050
7051 2004-11-26  Havoc Pennington  <hp@redhat.com>
7052
7053         * dbus/dbus-message.c: reimplement message cache as an array which 
7054         makes the cache about twice as fast and saves maybe 1.5% overall
7055
7056 2004-11-26  Havoc Pennington  <hp@redhat.com>
7057
7058         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7059         message cache lock here
7060
7061 2004-11-26  Havoc Pennington  <hp@redhat.com>
7062
7063         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7064         the "char byte_order" next to each other to save 4 bytes
7065         (dbus_message_new_empty_header): reduce preallocation, since the
7066         message cache should achieve a similar effect
7067         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7068         message cache that keeps a few DBusMessage around in a pool,
7069         another 8% speedup or so.
7070
7071         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7072
7073 2004-11-25  Havoc Pennington  <hp@redhat.com>
7074
7075         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7076         to write, without reading or blocking, try it before the poll()
7077         and skip the poll() if nothing remains to write. This is about a
7078         3% speedup in the echo client/server
7079
7080 2004-11-25  Havoc Pennington  <hp@redhat.com>
7081
7082         The primary change here is to always write() once before adding
7083         the write watch, which gives us about a 10% performance increase.
7084         
7085         * dbus/dbus-transport-unix.c: a number of modifications to cope
7086         with removing messages_pending
7087         (check_write_watch): properly handle
7088         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7089         messages_pending stuff
7090         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7091         AUTHENTICATED cases
7092         (unix_handle_watch): after writing, see if the write watch can be
7093         removed
7094         (unix_do_iteration): assert that write_watch/read_watch are
7095         non-NULL rather than testing that they aren't, since they 
7096         aren't allowed to be NULL. check_write_watch() at the end so 
7097         we add the watch if we did not finish writing (e.g. got EAGAIN)
7098
7099         * dbus/dbus-transport-protected.h: remove messages_pending call,
7100         since it resulted in too much inefficient watch adding/removing; 
7101         instead we now require that the transport user does an iteration 
7102         after queueing outgoing messages, and after trying the first
7103         write() we add a write watch if we got EAGAIN or exceeded our 
7104         max bytes to write per iteration setting
7105
7106         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7107         function
7108
7109         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7110         freed and then accessed, valgrind flagged this bug, fix it
7111
7112         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7113         as the last valid field plus 1, where really it is equal to the
7114         last valid field. Corrects some message corruption issues.
7115
7116         * dbus/dbus-mainloop.c: verbosity changes
7117
7118         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7119         instead of aborting in one of the test codepaths
7120
7121         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7122         caused not printing the pid ever again if a verbose was missing
7123         the newline at the end
7124         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7125
7126         * dbus/dbus-connection.c: verbosity changes; 
7127         (dbus_connection_has_messages_to_send): new function
7128         (_dbus_connection_message_sent): no longer call transport->messages_pending
7129         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7130         try to write() immediately, so we can avoid the write watch. This
7131         is the core purpose of this patchset
7132         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7133         dump the outgoing message queue, so nobody will get confused
7134         trying to send them or thinking stuff is pending to be sent
7135
7136         * bus/test.c: verbosity changes
7137
7138         * bus/driver.c: verbosity/assertion changes
7139
7140         * bus/dispatch.c: a bunch of little tweaks to get it working again
7141         because this patchset changes when/where you need to block.
7142
7143 2004-11-23  Havoc Pennington  <hp@redhat.com>
7144
7145         * test/glib/test-profile.c: modify to accept a plain_sockets
7146         argument in which case it will bench plain sockets instead of
7147         libdbus, for comparison purposes.
7148
7149 2004-11-22  Havoc Pennington  <hp@redhat.com>
7150
7151         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7152         threads for more time, so sysprof can get a grip on it.
7153
7154         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7155         pointless variable
7156
7157 2004-11-13  Havoc Pennington  <hp@redhat.com>
7158
7159         * test/glib/test-profile.c: fix this thing up a bit
7160
7161         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7162         preallocation sizes by a fair bit; not sure if this will be an
7163         overall performance win or not, but it does reduce reallocs.
7164
7165         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7166         the test hack that forced constant realloc if asserts are
7167         disabled, so we can profile sanely. Sprinkle in some
7168         _DBUS_UNLIKELY() which are probably pointless, but before I
7169         noticed the real performance problem I put them in.
7170         (_dbus_string_validate_utf8): micro-optimize this thing a little
7171         bit, though callgrind says it didn't help; then special-case
7172         ascii, which did help a lot; then be sure we detect nul bytes as
7173         invalid, which is a bugfix.
7174         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7175         superstition; use memset to nul the padding instead of a manual
7176         loop.
7177         (_dbus_string_get_length): inline this as a
7178         macro; it showed up in the profile because it's used for loop
7179         tests and so forth
7180
7181 2004-11-10  Colin Walters  <walters@verbum.org>
7182
7183         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7184         for extra paranoia.
7185
7186 2004-11-09  Colin Walters  <walters@verbum.org>
7187
7188         * dbus/dbus-string.c (_dbus_string_get_length): New
7189         function, writes DBusString to C buffer.
7190
7191         * dbus/dbus-string.h: Prototype it.
7192
7193         * dbus/dbus-message.c (dbus_message_type_to_string): New
7194         function, converts message type into C string.
7195
7196         * dbus/dbus-message.h: Prototype it.
7197
7198         * bus/selinux.c (bus_selinux_check): Take source pid,
7199         target pid, and audit data.  Pass audit data to
7200         avc_has_perm.
7201         (log_audit_callback): New function, appends extra
7202         audit information.
7203         (bus_selinux_allows_acquire_service): Also take
7204         service name, add it to audit data.
7205         (bus_selinux_allows_send): Also take message
7206         type, interface, method member, error name,
7207         and destination, and add them to audit data.
7208         (log_cb): Initialize func_audit.
7209         
7210         * bus/selinux.h (bus_selinux_allows_acquire_service)
7211         (bus_selinux_allows_send): Update prototypes 
7212
7213         * bus/services.c (bus_registry_acquire_service): Pass
7214         service name to bus_selinux_allows_acquire_service.
7215
7216         * bus/bus.c (bus_context_check_security_policy): Pass
7217         additional audit data.  Move assignment of dest
7218         to its own line.
7219
7220 2004-11-07  Colin Walters  <walters@verbum.org>
7221
7222         * dbus/dbus-transport-unix.c (do_authentication): Always
7223         initialize auth_completed.
7224         
7225 2004-11-07  Colin Walters  <walters@verbum.org>
7226
7227         * bus/bus.c (load_config): Break into three
7228         separate functions: process_config_first_time_only,
7229         process_config_every_time, and process_config_postinit.
7230         (process_config_every_time): Move call of
7231         bus_registry_set_service_context_table into
7232         process_config_postinit.
7233         (process_config_postinit): New function, does
7234         any processing that needs to happen late
7235         in initialization (and also on reload).
7236         (bus_context_new): Instead of calling load_config,
7237         open config parser here and call process_config_first_time_only
7238         and process_config_every_time directly.  Later, after
7239         we have forked but before changing UID,
7240         invoke bus_selinux_full_init, and then call
7241         process_config_postinit.
7242         (bus_context_reload_config): As in bus_context_new,
7243         load parse file inside here, and call process_config_every_time
7244         and process_config_postinit.
7245
7246         * bus/services.h, bus/services.c
7247         (bus_registry_set_service_context_table): Rename
7248         from bus_registry_set_sid_table.  Take string hash from config
7249         parser, and convert them here into SIDs.
7250
7251         * bus/config-parser.c (struct BusConfigParser): Have
7252         config parser only store a mapping of service->context
7253         string.
7254         (merge_service_context_hash): New function.
7255         (merge_included): Merge context string hashes instead
7256         of using bus_selinux_id_table_union.
7257         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7258         simply create a new string hash.
7259         (bus_config_parser_unref): Unref it.
7260         (start_selinux_child): Simply insert strings into hash,
7261         don't call bus_selinux_id_table_copy_over.
7262
7263         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7264         (bus_selinux_id_table_copy_over): Delete.
7265
7266 2004-11-03  Colin Walters  <walters@verbum.org>
7267
7268         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7269         variables.
7270         
7271 2004-11-03  Colin Walters  <walters@verbum.org>
7272
7273         * bus/test-main.c (test_pre_hook): Fix test logic,
7274         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7275
7276 2004-11-02  Colin Walters  <walters@redhat.com>
7277
7278         * bus/selinux.c (bus_selinux_init): Split into two functions,
7279         bus_selinux_pre_init and bus_selinux_post_init.
7280         (bus_selinux_pre_init): Just determine whether SELinux is
7281         enabled.
7282         (bus_selinux_post_init): Do everything else.
7283
7284         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7285         config file, and bus_selinux_post_init after.  This ensures that
7286         we don't lose the policyreload notification thread that
7287         bus_selinux_init created before forking previously.
7288         
7289         * bus/test-main.c (test_pre_hook): Update for split.
7290
7291 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7292
7293         Patch from Johan Fischer <linux@fischaz.com>
7294         
7295         * mono/doc/Makefile.am (install-data-local): Added directory
7296         install for DESTDIR
7297
7298 2004-10-29  Colin Walters  <walters@redhat.com>
7299
7300         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7301         parameter for fd to write pid to.       
7302
7303         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7304         
7305         * bus/bus.c (bus_context_new): Pass print_pid_fd
7306         to _dbus_become_daemon (bug #1720)
7307
7308 2004-10-29  Colin Walters  <walters@redhat.com>
7309
7310         Patch from Ed Catmur <ed@catmur.co.uk>
7311
7312         * mono/doc/Makefile.am (install-data-local): Handle
7313         DESTDIR.
7314
7315 2004-10-29  Colin Walters  <walters@redhat.com>
7316
7317         * bus/.cvsignore, qt/.cvsignore: Update.
7318
7319 2004-10-29  Colin Walters  <walters@redhat.com>
7320
7321         Patch from Kristof Vansant <de_lupus@pandora.be>
7322
7323         * configure.in: Detect Slackware.
7324         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7325         * bus/rc.messagebus.in: New file.
7326
7327 2004-10-29  Colin Walters  <walters@redhat.com>
7328
7329         * tools/dbus-monitor.c (filter_func): Return
7330         DBUS_HANDLER_RESULT_HANDLED in filter function
7331         for now.  See:
7332         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7333
7334 2004-10-29  Colin Walters  <walters@redhat.com>
7335
7336         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7337
7338         * bus/services.c (bus_registry_acquire_service): 
7339         Correctly retrieve service name from DBusString
7340         for printing.
7341
7342 2004-10-29  Colin Walters  <walters@redhat.com>
7343
7344         * dbus/dbus-glib.h: Update documentation to not
7345         refer to internal APIs.
7346
7347 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7348
7349         * mono/Arguments.cs (GetDBusTypeConstructor):
7350         type.UnderlyingSystemType will return "System.Byte" if you do it
7351         on "byte[]", which is not what we want.  So check the type.IsArray
7352         property and use System.Array instead.
7353
7354 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7355
7356         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7357         the DBusUserInfo structure since this is passed into the function.
7358         This would cause a double free when the function that allocated
7359         the structure would try to free it when an error occured.
7360
7361         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7362         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7363         for service activation to avoid 32bit/64bit parallel install issues
7364
7365 2004-10-21  Colin Walters  <walters@verbum.org>
7366
7367         * AUTHORS: Fix my email address, the @gnu.org one
7368         has been bouncing for some time.  Also add J5.
7369         
7370 2004-10-21  Colin Walters  <walters@verbum.org>
7371
7372         * dbus/dbus-transport-unix.c (do_authentication): Return
7373         authentication status to callers.
7374         (unix_handle_watch): If we completed authentication this round,
7375         don't do another read.  Instead wait until the next iteration,
7376         after we've read any pending data in the auth buffer.
7377         (unix_do_iteration): Ditto.
7378         (unix_handle_watch): Updated for new do_authentication prototype.
7379
7380 2004-10-18  Colin Walters  <walters@verbum.org>
7381
7382         * bus/selinux.c (bus_selinux_enabled): Handle
7383         --disable-selinux case.
7384         
7385 2004-10-18  Colin Walters  <walters@verbum.org>
7386
7387         * bus/selinux.h: Add bus_selinux_enabled.
7388         
7389         * bus/selinux.c (bus_selinux_enabled): Implement it.
7390         
7391         * bus/config-parser.c (struct include): Add
7392         if_selinux_enabled member.
7393         (start_busconfig_child): Parse if_selinux_enabled
7394         attribute for include.
7395         (bus_config_parser_content): Handle it.
7396
7397         * bus/session.conf.in, bus/system.conf.in: Add
7398         inclusion of context mapping to default config files;
7399         conditional on SELinux being enabled.
7400         
7401         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7402         
7403         * test/data/invalid-config-files/badselinux-1.conf, 
7404         test/data/invalid-config-files/badselinux-2.conf:
7405         Test files for bad syntax.
7406         
7407 2004-10-17  Colin Walters  <walters@verbum.org>
7408
7409         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7410         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7411         format specifier mismatches.
7412
7413 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7414
7415         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7416         format string.
7417
7418         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7419         pointer (bug #1540, Leonardo Boiko).
7420
7421 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7422
7423         * mono/BusDriver.cs: Changed BusDriver struct to remove
7424         the ServiceCreated and ServiceDeleted events and replace them
7425         with the new ServiceOwnerChanged event.
7426
7427         * mono/example/BusListener.cs: Added a new example program,
7428         which listens for and reports any ServiceOwnerChanged events
7429         on the bus driver.
7430
7431         * mono/example/Makefile.am (DESTDIR): Build changes for the
7432         new BusListener.cs example.
7433
7434 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7435
7436         * bus/signals.c (bus_match_rule_parse): validate the components of
7437         match rules (bug #1439).
7438
7439         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7440
7441 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7442
7443         * doc/dbus-specification.xml: document ServiceOwnerChanged
7444         signal.
7445         
7446         * bus/driver.c, bus/driver.h, bus/services.c: Use
7447         ServiceOwnerChanged signal instead of ServiceCreated and
7448         ServiceDeleted.
7449         
7450         * bus/dispatch.c: update testcase for the new signal.
7451
7452 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7453
7454         Patch from Nat Friedman <nat@novell.com>
7455
7456         * mono/Makefile.am: A number of small build fixes to allow "make
7457         distcheck" to succeed.
7458
7459         * mono/example/Makefile.am: "make distcheck" fixes.
7460
7461         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7462         key in @srcdir@.
7463
7464         * test/Makefile.am: "make distcheck" fixes.
7465
7466 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7467
7468         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7469
7470         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7471
7472         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7473         messages after the first one (bug #1389).
7474         
7475         * bus/dispatch.c (check_double_hello_message): add a test case for
7476         the double hello message bug.
7477         (check_existent_service_activation): fix check of spawning error.
7478         
7479 2004-09-16  David Zeuthen  <david@fubar.dk>
7480
7481         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7482
7483 2004-09-12  David Zeuthen  <david@fubar.dk>
7484
7485         Patch from Kay Sievers <kay.sievers@vrfy.org>
7486
7487         * bus/bus.c (bus_context_new):
7488         * bus/bus.h:
7489         * bus/main.c (usage)
7490         (main):
7491         Add commandline option --nofork to override configuration file
7492         setting.
7493
7494 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7495
7496         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7497         compilers don't like it (bug #974).
7498
7499 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7500
7501         * qt/connection.*: Applied patch by Jérôme Lodewyck
7502         <lodewyck@clipper.ens.fr> to integrate an existing
7503         connection into the Qt eventloop
7504
7505 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7506
7507         * mono/BusDriver.cs: Added.  This is a class for interacting with
7508         the org.freedesktop.DBus service.
7509
7510         * mono/Message.cs: Added a mechanism to expose the message that is
7511         currently being dispatched via the static Message.Current
7512         property.  Added Message.Sender and Message.Destination
7513         properties.
7514
7515         * mono/Handler.cs: Expose the dispatched message via
7516         Message.Current when handling method calls.
7517
7518         * mono/Service.cs: Expose the dispatched message via
7519         Message.Current when handling signal emissions.
7520         
7521         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7522         Connection.BaseService property.
7523
7524 2004-08-28  Havoc Pennington  <hp@redhat.com>
7525
7526         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7527
7528         More fixes from Steve Grubb
7529         
7530         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7531         (_dbus_listen_tcp_socket): fix fd leak
7532
7533         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7534         EINTR to a bit lower in the code
7535
7536 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7537
7538         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7539         TRUE if we are inquiring about the existence of the built-in
7540         org.freedesktop.DBus service.
7541
7542 2004-08-25  John Palmieri  <johnp@redhat.com>
7543         * bus/config-parser.c:
7544         (struct PolicyType): Add POLICY_CONSOLE
7545         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7546         (start_busconfig_child): Sets up console element when
7547         <policy at_console=""> is encountered in a policy file
7548         (append_rule_from_element): Convert console elements to console
7549         rules.
7550
7551         * bus/policy.c: 
7552         (bus_policy_create_client_policy): Add console rules to the client
7553         policy based on if the client is at the console
7554         (bus_policy_append_console_rule): New function for adding a
7555         console rule to a policy
7556         (bus_policy_merge): Handle console rule merging
7557
7558         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7559         where we check for console user files
7560         
7561         * dbus/dbus-sysdeps.c:
7562         (_dbus_file_exists): New function which checks if the given
7563         file exists
7564         (_dbus_user_at_console): New function which does the system
7565         specific process of checking if the user is at the console
7566
7567         * dbus/dbus-userdb.c:
7568         (_dbus_is_console_user): New function converts a UID to user name
7569         and then calls the system specific _dbus_user_at_console to 
7570         see if the user is at the console and therefor a console user
7571
7572 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7573
7574         * bus/config-parser.c (set_limit):
7575         * bus/dbus-daemon-1.1.in:
7576         * test/data/valid-config-files/many-rules.conf: set the
7577         max_match_rules_per_connection limt from the config file. 
7578
7579         * doc/busconfig.dtd: update the DTD.
7580
7581         * bus/driver.c: remove some unused variables.
7582
7583 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7584
7585         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7586         it's been replaced by dbus_g_bus_get
7587
7588 2004-08-23  Colin Walters  <walters@redhat.com>
7589
7590         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7591
7592         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7593
7594         * bus/selinux.c: Create a thread for policy reload notification.
7595         (bus_selinux_get_policy_root): Implement.
7596
7597         * bus/config-parser.c (start_busconfig_child)
7598         (bus_config_parser_content): Support SELinux-root relative
7599         inclusion.
7600
7601         * configure.in <HAVE_SELINUX>: Add -lpthread.
7602         
7603         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7604         (test_post_hook): Move memory checking into here.
7605         (test_pre_hook, test_post_hook): Move SELinux checks in
7606         here, but conditional on a DBUS_TEST_SELINUX environment
7607         variable.  Unfortunately we can't run the SELinux checks
7608         as a normal user, since they won't have any permissions
7609         for /selinux.  So this will have to be tested manually
7610         for now, until we have virtualization for most of
7611         libselinux.
7612         
7613 2004-08-23  Havoc Pennington  <hp@redhat.com>
7614
7615         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7616         drop supplementary groups, suggested by Steve Grubb
7617
7618 2004-08-20  Colin Walters  <walters@redhat.com>
7619
7620         * bus/config-parser.c (start_busconfig_child): Remove some unused
7621         variables.
7622         
7623         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7624         warning.
7625
7626 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7627
7628         * configure.in: If --enable-mono is passed in, if we can't find
7629         mono error out.
7630
7631         * mono/Makefile.am: Use /gacutil to install assemblies into the
7632         GAC and not /root.
7633
7634 2004-08-12  Havoc Pennington  <hp@redhat.com>
7635
7636         * NEWS: update for 0.22
7637
7638         * configure.in: release 0.22
7639
7640 2004-08-11  Colin Walters  <walters@redhat.com>
7641
7642         * tools/dbus-send.c (main, usage): Add --reply-timeout
7643         argument.
7644
7645 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7646
7647         * bus/bus.c (process_config_first_time_only): get rid of an unused
7648         DBusError that was causing a memoy leak (bug #989).
7649
7650         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7651         fix compilation on Solaris/Forte C (bug #974)
7652
7653         * bus/main.c (main): plug two minuscule memleaks.
7654
7655 2004-08-10  Havoc Pennington  <hp@redhat.com>
7656
7657         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7658
7659 2004-08-09  Havoc Pennington  <hp@redhat.com>
7660
7661         * COPYING: switch to Academic Free License version 2.1 instead of
7662         2.0, to resolve complaints about patent termination clause.
7663
7664 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7665
7666         * README: added documentation for the --enable-python 
7667         configure switch.
7668
7669 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7670
7671         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7672         _unref in the SELinux support.
7673
7674         * doc/busconfig.dtd: update DTD for SELinux support.
7675
7676         * bus/config-loader-libxml.c: fix error handler and parser
7677         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7678
7679         * configure.in: remove the warning about libxml2.
7680
7681         * dbus/dbus-bus.c: silence doxygen warning.
7682
7683 2004-07-31  Colin Walters  <walters@redhat.com>
7684
7685         * configure.in: Move #error in SELinux check to its own line.
7686
7687 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7688
7689         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7690         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7691         dbus_error_set.
7692
7693         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7694         broken by the change in the _SET_OOM macros.
7695
7696 2004-07-31  Colin Walters  <walters@redhat.com>
7697
7698         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7699         BUS_SET_OOM.
7700
7701 2004-07-31  Colin Walters  <walters@redhat.com>
7702
7703         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7704         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7705         AC_MSG_CHECKING.
7706
7707 2004-07-24  Havoc Pennington  <hp@redhat.com>
7708
7709         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7710
7711         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7712         functionality
7713
7714         * configure.in: add --enable-selinux
7715         
7716         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7717
7718         * bus/main.c (main): initialize and shut down selinux
7719
7720         * bus/connection.c: store SELinux ID on each connection, to avoid 
7721         repeated getting of the string context and converting it into 
7722         an ID
7723
7724         * bus/bus.c (bus_context_get_policy): new accessor, though it
7725         isn't used
7726         (bus_context_check_security_policy): check whether the security
7727         context of sender connection can send to the security context of
7728         recipient connection
7729
7730         * bus/config-parser.c: add parsing for <selinux> and <associate>
7731         
7732         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7733         implement dbus_connection_get_unix_fd()
7734
7735         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7736         function, used by the selinux stuff
7737         
7738 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7739
7740         * bus/config-loader-libxml.c: complete the implementation of
7741         libxml backend for config file loader. Doesn't work with full OOM
7742         test yet. 
7743         
7744         * configure.in: change error when selecting libxml into a warning.
7745         
7746         * test/data/invalid-config-files: add two non-well-formed XML
7747         files. 
7748         
7749         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7750         
7751         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7752         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7753         be necessary to read all the buffer. (bug #894)
7754
7755         * bus/activation.c (bus_activation_activate_service): fix a
7756         potential assertion failure (bug #896). Small optimization in the
7757         case of auto-activation messages.
7758
7759         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7760         add test case for byte-through-vararg bug (#901). patch by Kimmo
7761         Hämäläinen. 
7762
7763 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7764
7765         * python/dbus.py:
7766         * python/dbus_bindings.pyx.in:
7767         Add dbus.init_gthreads (), allow emit_signal to pass
7768         arguments to the signal.
7769         
7770 2004-07-24  Havoc Pennington  <hp@redhat.com>
7771
7772         * AUTHORS: add some people, not really comprehensively, let me
7773         know if I missed you
7774
7775 2004-07-24  Havoc Pennington  <hp@redhat.com>
7776
7777         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7778         Owen
7779
7780         * test/Makefile.am (DIST_SUBDIRS): here also
7781
7782 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7783
7784         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7785         breaking build on Solaris, reported by Farhad Saberi on the ML.
7786
7787         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7788         va_arg invocation to account for integer promotion in the case of
7789         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7790
7791         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7792         _dbus_list_get_first_link, not _dbus_list_get_first.
7793
7794         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7795
7796         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7797         handler functions so that the asserts in _dbus_object_subtree_unref
7798         do not fail.
7799
7800         * dbus/dbus-transport-unix.c (do_reading):
7801         _dbus_transport_queue_messages return value is of type
7802         dbus_bool_t, not DBusDispatchStatus.
7803         
7804 2004-07-19  David Zeuthen  <david@fubar.dk>
7805
7806         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7807
7808         * bus/dispatch.c:
7809         (check_get_connection_unix_user): Debug says GetProperty; but the
7810         method is called GetConnectionUnixUser
7811         (check_get_connection_unix_process_id): New function
7812         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7813         also call check_get_connection_unix_process_id()
7814         
7815         * bus/driver.c:
7816         (bus_driver_handle_get_connection_unix_process_id): New function,
7817         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7818         interface
7819         
7820         * dbus/dbus-auth.c:
7821         (handle_server_data_external_mech): Set pid from the credentials
7822         obtained from the socket
7823         
7824         * dbus/dbus-connection.c:
7825         (dbus_connection_get_unix_process_id): New function
7826         
7827         * dbus/dbus-connection.h: 
7828         Add prototype for dbus_connection_get_unix_process_id
7829         
7830         * dbus/dbus-transport.c:
7831         (_dbus_transport_get_unix_process_id): New function
7832         
7833         * dbus/dbus-transport.h:
7834         Add prototype for _dbus_transport_get_unix_process_id
7835         
7836 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7837
7838         * dbus/dbus-message.c: Message counter fix, patch by Christian
7839         Hammond <chipx86@gnupdate.org>
7840
7841 2004-07-18  Seth Nickell  <seth@gnome.org>
7842
7843         * python/dbus.py:
7844         * python/dbus_bindings.pyx.in:
7845         * python/tests/test-client.py:
7846
7847         Add dbus.ByteArray and dbus_bindings.ByteArray
7848         types so that byte streams can be passed back.
7849
7850         Give jdahlin the heaps of credit that are so
7851         rightfully his.
7852         
7853 2004-07-12  Seth Nickell  <seth@gnome.org>
7854
7855         * python/dbus.py:
7856
7857         Add message argument to the default object_method_handler
7858         function.
7859         
7860         * python/dbus_bindings.pyx.in:
7861
7862         Automatically return NIL when passed an empty list
7863         (we can't pass back a list since lists are typed
7864         and we don't have any idea what type the the client
7865         intended the list to be... :-( )
7866         
7867 2004-07-10  Seth Nickell  <seth@gnome.org>
7868
7869         * python/examples/Makefile.am:
7870
7871         Fix distcheck breakage caused by new examples.
7872
7873 2004-07-10  Seth Nickell  <seth@gnome.org>
7874
7875         * python/dbus.py:
7876
7877         Add "message" argument to service-side dbus.Object
7878         methods. This will break existing services written
7879         using the python bindings, but will allow extraction
7880         of all the message information (e.g. who its from).
7881
7882         Add improved "object oriented" signal handling/emission.
7883         
7884         * python/examples/example-service.py:
7885
7886         Nix this example.
7887         
7888         * python/examples/example-signal-emitter.py:
7889         * python/examples/example-signal-recipient.py:
7890
7891         Two new examples that show how to emit and receive
7892         signals using the new APIs.
7893         
7894         * python/examples/example-signals.py:
7895         * python/examples/gconf-proxy-service.py:
7896         * python/examples/gconf-proxy-service2.py:
7897
7898         Add "message" argument to service methods.
7899
7900 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7901
7902         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7903         * dbus/bus.c (dbus_bus_get_unix_user)
7904         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7905         method of org.freedesktop.DBus interface.
7906
7907         * bus/dispatch.c: test case
7908
7909 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7910
7911         * python/Makefile.am: switched include directory from glib/ to dbus/
7912         since dbus-glib.h moved
7913  
7914 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7915
7916         * configure.in: prevent building the gcj stuff and libxml loader
7917         since they are broken.
7918
7919 2004-06-20  Havoc Pennington  <hp@redhat.com>
7920
7921         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7922         codes from the dbus error names
7923         
7924         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7925         as dbus/dbus-glib.h and that breakage is now visible due to 
7926         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7927         
7928         * glib/dbus-glib.h: s/gproxy/g_proxy/
7929
7930         * dbus/dbus-shared.h: new header to hold stuff shared with
7931         binding APIs
7932         
7933         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7934         than dbus-errors.h
7935
7936         * glib/dbus-glib.h (dbus_set_g_error): move to
7937         dbus-glib-lowlevel.h
7938
7939         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7940         of stuff to enable this
7941
7942         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7943
7944         * a bunch of other changes with the same basic "separate glib 
7945         bindings from dbus.h" theme
7946         
7947 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7948
7949         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7950
7951         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7952
7953 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7954
7955         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7956         the reply value of the ServiceExists message.
7957
7958 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7959
7960         * python/dbus_bindings.pyx.in: No longer need to parse path
7961         elements and pass them as arrays of strings.  The C API now
7962         accepts plain path strings.
7963         (_build_parsed_path): removed 
7964
7965 2004-06-07  Havoc Pennington  <hp@redhat.com>
7966
7967         * doc/TODO: remove auto-activation item since it's done; sort
7968         items by importance/milestone
7969
7970 2004-06-07  Havoc Pennington  <hp@redhat.com>
7971
7972         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7973         random signature when using REQUIRED_FIELDS (this hack won't work
7974         in the long term)
7975
7976         * dbus/dbus-message.c: change the signature to be a header field,
7977         instead of message->signature special-case string. Incremental
7978         step forward. Then we can fix up code to send the signature in the
7979         message, then fix up code to validate said signature, then fix up
7980         code to not put the typecodes inline, etc.
7981         (load_one_message): don't make up the signature after the fact
7982         (decode_header_data): require signature field for the known
7983         message types
7984
7985         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7986
7987         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7988
7989 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7990
7991         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7992
7993         * mono/Handler.cs: Updated to follow new path argument for
7994         (un-)registering objects.
7995
7996         * mono/example/Makefile.am:
7997         * mono/Makefile.am:
7998         * configure.in: Bumped required version for mono and use new -pkg
7999         syntax for deps
8000
8001 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8002
8003         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8004         registration functions take the path argument as char* instead of
8005         char**.
8006
8007         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8008         split off the path decompostion part of
8009         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8010         warnings. 
8011
8012         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8013         
8014 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8015  
8016         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8017         machine approach.  A state is implemented as a function that
8018         handles incoming events as specified for that state.
8019         
8020         * doc/dbus-specification.xml: Update auth protocol state machine
8021         specification to match implementation.  Remove some leftover
8022         base64 examples.
8023
8024 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8025
8026         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8027         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8028         quiet doxygen.
8029
8030         * Doxyfile.in: remove deprecated options.
8031
8032         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8033         glib/test-thread.h, glib/test-thread-client.c,
8034         glib/test-thread-server.c, glib/test-profile.c,
8035         glib/test-dbus-glib.c: remove these unused files.
8036
8037 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8038
8039         * dbus/dbus-object-tree.c
8040         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8041         non-fallback handlers (bug #684).
8042         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8043         (find_subtree_recurse): report wether the returned subtree is an
8044         exact match or a "fallback" match higher up in the tree.
8045         (object_tree_test_iteration): update test case.
8046
8047 2004-06-01  Seth Nickell  <seth@gnome.org>
8048
8049         * python/dbus_bindings.pyx.in:
8050         * python/tests/test-client.py:
8051
8052         Round off basic type support. Add dicts (yay!), and 
8053         remaining array types.
8054
8055         Make MessageIter more general so it works for dicts too.
8056
8057         Mark all loop variables as C integers.
8058         
8059 2004-05-31  Havoc Pennington  <hp@redhat.com>
8060
8061         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8062         "in" before "out"
8063
8064         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8065
8066         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8067         option that runs the tests, and start filling in some code
8068         including for starters just dumping the interfaces to stdout
8069
8070         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8071
8072         * test/data/valid-introspection-files/lots-of-types.xml: test of
8073         an example introspection file
8074
8075         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8076         "node" (I think...)
8077
8078 2004-05-31  Seth Nickell  <seth@gnome.org>
8079
8080         * python/dbus_bindings.pyx.in:
8081         * python/tests/test-client.py:
8082
8083         Test Suite: 1
8084         Python Bindings: 0
8085
8086         Fix string array memory trashing bug... oops...
8087
8088 2004-05-30  Seth Nickell  <seth@gnome.org>
8089
8090         * python/dbus.py:
8091
8092         Add a nicer-but-less-flexible alternate API for handling 
8093         calls to virtual objects in dbus.ObjectTree.
8094
8095         Screw up the argument order to the dbus.Object constructor
8096         for consistency with dbus.ObjectTree (and to make dbus_methods
8097         optional for future extension)
8098         
8099         * python/examples/Makefile.am:
8100         * python/examples/gconf-proxy-service.py:
8101         * python/examples/gconf-proxy-service2.py:
8102
8103         Alternate implementation of gconf-proxy-service using the
8104         nicer dbus.ObjectTree API.
8105         
8106         * python/examples/example-service.py:
8107         * python/tests/test-server.py
8108
8109         Reverse the argument order to deal with dbus.Object constructor
8110         changes.
8111         
8112 2004-05-30  Seth Nickell  <seth@gnome.org>
8113
8114         * python/examples/example-client.py:
8115         * python/examples/example-service.py:
8116
8117         Take it back. Lists seem to work but they're broken
8118         in the test suite. Make the base examples use
8119         lists (works fine).
8120
8121 2004-05-30  Seth Nickell  <seth@gnome.org>
8122
8123         * python/dbus_bindings.pyx.in:
8124         * python/tests/test-client.py:
8125
8126         Add some more tests and fix errors that crop up.
8127         Unfortunately, currently it seems like marshalling
8128         and unmarshalling of lists is completely broken :-(
8129
8130 2004-05-30  Seth Nickell  <seth@gnome.org>
8131
8132         * python/dbus_bindings.pyx.in:
8133
8134         Add support for ObjectPath type.
8135
8136         * python/dbus.py:
8137
8138         Refactor message handling code to a common function.
8139         
8140         * python/tests/test-client.py:
8141         * python/tests/test-server.py:
8142
8143         Add tests that check to make sure values of all types
8144         can be echoed from a service w/o mangling.
8145         
8146 2004-05-29  Seth Nickell  <seth@gnome.org>
8147
8148         * python/dbus.py:
8149
8150         Add ObjectTree class which allows implementation
8151         of trees of "virtual" objects. Basically the python
8152         wrapper for "register_fallback".
8153         
8154         * python/examples/Makefile.am
8155         * python/examples/gconf-proxy-client.py:
8156         * python/examples/gconf-proxy-service.py:
8157
8158         Implement a simple GConf proxy service that supports
8159         get/set on string and int GConf keys using the ObjectTree.
8160         
8161 2004-05-29  Seth Nickell  <seth@gnome.org>
8162
8163         * python/dbus.py:
8164         * python/examples/example-client.py:
8165         * python/examples/example-service.py:
8166         * python/examples/list-system-services.py:
8167
8168         Add SessionBus, SystemBus and ActivationBus classes
8169         so you don't need to know the special little BUS_TYPE
8170         flag.
8171         
8172 2004-05-29  Havoc Pennington  <hp@redhat.com>
8173
8174         * bus/config-parser.c (process_test_valid_subdir): temporarily
8175         stop testing config parser OOM handling, since expat has issues
8176         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8177
8178         * bus/dbus-daemon-1.1.in: change requested_reply to
8179         send_requested_reply/receive_requested_reply so we can send the
8180         replies, not just receive them.
8181
8182         * bus/config-parser.c: parse the new
8183         send_requested_reply/receive_requested_reply
8184
8185         * bus/policy.c (bus_client_policy_check_can_send): add
8186         requested_reply argument and use it
8187
8188         * bus/bus.c (bus_context_check_security_policy): pass through
8189         requested_reply status to message send check
8190
8191         * bus/system.conf.in: adapt to requested_reply change
8192         
8193 2004-05-28  Havoc Pennington  <hp@redhat.com>
8194
8195         * test/glib/test-service-glib.c (main): remove unused variable
8196
8197         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8198
8199         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8200         from the enum, no longer in use.
8201
8202         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8203         works right.
8204
8205         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8206         whether error_name passed in is a valid error name.
8207
8208 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8209
8210         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8211         OBJECT_PATH and OBJECT_PATH_ARRAY
8212
8213 2004-05-28  Seth Nickell  <seth@gnome.org>
8214
8215         * python/examples/Makefile.am:
8216
8217         Forget to add Makefile.am. Do not pass go.
8218
8219 2004-05-28  Michael Meeks  <michael@ximian.com>
8220
8221         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8222         fix no int64 case.
8223
8224         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8225
8226         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8227         (_dbus_message_iter_get_basic_type_array): impl.
8228         drastically simplify ~all relevant _get methods to use these.
8229         (_dbus_message_iter_append_basic_array),
8230         (dbus_message_iter_append_basic): impl
8231         drastically simplify ~all relevant _append methods to use these.
8232
8233         * dbus/dbus-message-builder.c (parse_basic_type) 
8234         (parse_basic_array, lookup_basic_type): impl.
8235         (_dbus_message_data_load): prune scads of duplicate /
8236         cut & paste coding.
8237
8238         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8239         (_dbus_demarshal_basic_type): implement,
8240         (demarshal_and_validate_len/arg): beef up debug.
8241         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8242
8243 2004-05-27  Seth Nickell  <seth@gnome.org>
8244
8245         * configure.in:
8246         * python/Makefile.am:
8247
8248         Include the example python apps in the tarball.
8249         
8250         * python/examples/list-system-services.py
8251
8252         Add a python new example that fetches the list of services
8253         from the system bus.
8254         
8255 2004-05-27  Seth Nickell  <seth@gnome.org>
8256
8257         * python/dbus.py:
8258         * python/dbus_bindings.pyx.in:
8259
8260         Fix failure to notify that a signal was not handled,
8261         resulted in hung functions.
8262         
8263 2004-05-25  Colin Walters  <walters@redhat.com>
8264
8265         * tools/dbus-monitor.c (main): Monitor all types of messages.
8266
8267 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8268
8269         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8270         which unregisters the object path and disposes the handler.
8271
8272 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8273  
8274         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8275          
8276         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8277         operands to && so we call dbus_message_iter_next () for the last
8278         argument also.
8279
8280 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8281
8282         * dbus/dbus-object-tree.c
8283         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8284         children even if the requested path isn't registered.
8285         (object_tree_test_iteration): test object_tree_list_registered.
8286
8287         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8288         it to 0.
8289         
8290 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8291
8292         * doc/TODO: Remove resolved items.
8293
8294         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8295         field.
8296         
8297         * bus/connection.c (bus_connections_expect_reply): Enforce the
8298         per-connection limit on pending replies.
8299         
8300         Patch from Jon Trowbridge <trow@ximian.com>:
8301  
8302         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8303         up a watch that triggers a config reload when one end of the pipe
8304         becomes readable.
8305         (signal_handler): Instead of doing the config reload in our SIGHUP
8306         handler, just write to the reload pipe and let the associated
8307         watch handle the reload when control returns to the main loop.
8308  
8309         * bus/driver.c (bus_driver_handle_reload_config): Added.
8310         Implements a ReloadConfig method for requesting a configuration
8311         file reload via the bus driver.
8312  
8313 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8314
8315         * HACKING: Updated release instructions concerning the wiki page.
8316
8317 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8318
8319         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8320         filter against auth->allowed_mechs; we only add allowed mechs in
8321         record_mechanisms().
8322  
8323         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8324         ALLOWED_MECHS to auth-script format so we can set the list of
8325         allowed mechanisms.
8326  
8327         * data/auth/client-out-of-mechanisms.auth-script: New test to
8328         check client disconnects when it is out of mechanisms to try.
8329  
8330         * dbus/dbus-auth.c (process_command): Remove check for lines
8331         longer that 1 MB; we only buffer up maximum 16 kB.
8332  
8333         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8334         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8335         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8336         assume there might be unused bytes.
8337  
8338         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8339         client-out-of-mechs, it is handled in process_reject(). Move check
8340         for max failures to send_rejected(), as it's a server-only thing.
8341
8342         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8343         send_auth(), send_data(), send_rejected(), send_error(),
8344         send_ok(), send_begin() and send_cancel().
8345
8346 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8347
8348         Remove base64 encoding, replace with hex encoding. Original patch
8349         from trow@ximian.com, added error handling.
8350
8351         * dbus/dbus-string.c (_dbus_string_base64_encode)
8352         (_dbus_string_base64_decode): Remove.
8353         (_dbus_string_hex_decode): Add end_return argument so we can
8354         distinguish between OOM and invalid hex encoding.
8355         (_dbus_string_test): Remove base64 tests and add test case for
8356         invalid hex.
8357
8358         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8359         Replace base64 with hex.
8360
8361         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8362         for invalid hex encoded data in auth protocol.
8363
8364 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8365
8366         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8367         leak.
8368
8369 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8370
8371         * mono/dbus-sharp.dll.config.in: Added for GAC
8372         * mono/dbus-sharp.snk: Added for GAC
8373         * mono/Assembly.cs.in: Added for GAC
8374         * mono/Makefile.am: Changes for GAC installation        
8375         * configure.in: Added refs for dbus-sharp.dll.config.in and
8376         Assembly.cs.in. More fixes for mono testing
8377         * mono/example/Makefile.am: Changed var to CSC
8378         * Makefile.am: Changed flag name to DBUS_USE_CSC
8379
8380 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8381
8382         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8383         * mono/doc/*: Added documentation framework
8384         * configure.in: Added monodoc check
8385         * README: Added description of mono configure flags
8386
8387 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8388
8389         * doc/dbus-specification.xml: Added a "Required" column to the 
8390         header fields table and changed the "zero or more" verbage in
8391         the above paragraph to read "The header must contain the required 
8392         named header fields and zero or more of the optional named header 
8393         fields".
8394         * test/data/invalid-messages/*.message: Added the required PATH 
8395         named header field to the tests so that they don't fail on 
8396         'Missing path field'
8397
8398 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8399
8400         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8401         the stack by implicitly defining variable and parameter types and
8402         removing the hack of defining C pointers as python objects and later
8403         casting them.
8404
8405 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8406
8407         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8408
8409 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8410
8411         * mono/DBusType/Dict.cs: Handle empty dicts
8412         * mono/DBusType/Array.cs: Handle empty arrays
8413         * mono/Arguments.cs: Handle empty arguments
8414
8415 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8416
8417         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8418         field
8419
8420 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8421
8422         * test/data/valid-messages/standard-*.message: Update message
8423         test scripts to new header field names.
8424
8425 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8426
8427         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8428         overflow to times_we_did_each_thing array which would chop off the
8429         first character of the failure_dir string. Increased the size of
8430         the array to 7 to reflect the number of random mutation functions
8431         we have.
8432
8433 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8434
8435         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8436         unix_server->watch here, it is unreffed in disconnect.
8437         (_dbus_server_new_for_tcp_socket): convert NULL host to
8438         "localhost" here so we don't append NULL to address.
8439         
8440         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8441         various addresses, including tcp with no explicit host.
8442
8443 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8444
8445         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8446         fix incorrect setting of .name_offset in the HeaderField (it was
8447         off by two bytes, positioned right after the name and typecode)
8448
8449         * bus/bus.c (bus_context_new, bus_context_unref): test before
8450         calling dbus_server_free_data_slot and _dbus_user_database_unref
8451         in case of an error.
8452
8453         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8454         by libdbus-gtool.
8455
8456 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8457
8458         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8459         _dbus_poll() instead of select().
8460
8461 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8462
8463         * bus/main.c (signal_handler): Reload the configuration files
8464         on SIGHUP.
8465         (main): Set up our SIGHUP handler.
8466
8467         * bus/bus.c (struct BusContext): Store the config file, user and
8468         fork flag in the BusContext.
8469         (process_config_first_time_only): Added.  Contains the code
8470         (previously in bus_context_new) for setting up the BusContext from
8471         the BusConfigParser that should only be run the first time the
8472         config files are read.
8473         (process_config_every_time): Added.  Contains the code (previously
8474         in bus_context_new) for setting up the BusContext from the
8475         BusConfigParser that should be run every time the config files are
8476         read.
8477         (load_config): Added.  Builds a BusConfigParser from the config
8478         files and passes the resulting structure off to
8479         process_config_first_time_only (assuming this is the first time)
8480         and process_config_every_time.
8481         (bus_context_new): All of the config-related code has been moved
8482         to process_config_first_time_only and process_config_every_time.
8483         Now this function just does the non-config-related initializations
8484         and calls load_config.
8485         (bus_context_reload_config): Added.
8486
8487 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8488
8489         * bus/driver.c (bus_driver_handle_get_service_owner):
8490         implement a GetServiceOwner method.
8491         * doc/dbus-specification.xml: document it.
8492         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8493         
8494         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8495         implement, using the bus GetServiceOwner method.
8496
8497         * test/glib/test-dbus-glib.c:
8498         use dbus_gproxy_new_for_service_owner so that we can receive the
8499         signal. 
8500
8501 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8502
8503         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8504         dbus/dbus-message.c, dbus/dbus-protocol.h
8505         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8506
8507         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8508         dbus/dbus-message.c, dbus/dbus-protocol.h
8509         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8510
8511         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8512         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8513         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8514
8515         * doc/dbus-specification.xml (Header Fields Table):
8516         s/SERVICE/DESTINATION
8517         s/SENDER_SERVICE/SENDER
8518
8519
8520 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8521
8522         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8523         a few seconds.
8524
8525 2004-04-13  Michael Meeks  <michael@ximian.com>
8526
8527         * glib/dbus-gobject.c (handle_introspect): split out
8528         (introspect_properties): this.
8529         (handle_introspect): implement this.
8530
8531         * test/glib/Makefile.am: use the absolute path so the bus
8532         daemon's chdir ("/") doesn't kill us dead.
8533
8534         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8535
8536 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8537
8538         * bus/config-parser.c (struct BusConfigParser): Added
8539         included_files field.
8540         (seen_include): Added.  Checks whether or not a file has already
8541         been included by any parent BusConfigParser.
8542         (bus_config_parser_new): Copy the parent's included_files.
8543         (include_file): Track which files have been included, and fail on
8544         circular inclusions.
8545         (process_test_valid_subdir): Changed printf to report if we are
8546         testing valid or invalid conf files.
8547         (all_are_equiv): Changed printf to be a bit clearer about
8548         what we are actually doing.
8549         (bus_config_parser_test): Test invalid configuration files.
8550
8551 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8552
8553         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8554         argument.  If non-null, the newly-constructed BusConfigParser will
8555         be initialized with the parent's BusLimits instead of the default
8556         values.
8557         (include_file): When including a config file, pass in
8558         the current parser as the parent and then copy the BusLimits
8559         from the included BusConfigParser pack to the current parser.
8560         (process_test_valid_subdir): Renamed from process_test_subdir.
8561         (process_test_equiv_subdir): Added.  Walks through a directory,
8562         descending into each subdirectory and loading the config files
8563         it finds there.  If any subdirectory contains two config files
8564         that don't produce identical BusConfigParser structs, fail.
8565         For now, the BusConfigParser's BusPolicies are not compared.
8566         (bus_config_parser_test): Call both process_test_valid_subdir and
8567         process_test_equiv_subdir.
8568
8569         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8570         argument and pass it along to the call to bus_config_parser_new.
8571         Also made a few small changes to allow this code to compile.
8572
8573         * bus/config-loader-expat.c (bus_config_load): Take a parent
8574         argument and pass it along to the call to bus_config_parser_new.
8575
8576         * bus/bus.c (bus_context_new): Load the config file
8577         with a NULL parent argument.
8578
8579 2004-03-29  Michael Meeks  <michael@ximian.com>
8580
8581         * glib/dbus-gobject.c (introspect_properties): split
8582         out, fix mangled 'while' flow control.
8583         (introspect_signals): implement.
8584         (handle_introspect): update.
8585
8586 2004-03-29  Michael Meeks  <michael@ximian.com>
8587
8588         * glib/dbus-gobject.c (set_object_property): split out / 
8589         re-work, use the property type, and not the message type(!)
8590         (get_object_property): ditto.
8591
8592         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8593         (dbus_gvalue_marshal): make this code re-usable, needed
8594         for signals too, also on both proxy and server side.
8595         Re-write for more efficiency / readability.
8596
8597 2004-03-29  Michael Meeks  <michael@ximian.com>
8598
8599         * dbus/dbus-message.c
8600         (dbus_message_new_error_printf): impl.
8601
8602         * dbus/dbus-connection.c
8603         (dbus_connection_unregister_object_path): fix warning.
8604
8605         * configure.in: fix no-mono-installed situation.
8606
8607 2004-03-27  Havoc Pennington  <hp@redhat.com>
8608
8609         Patch from Timo Teräs:
8610         
8611         * tools/dbus-send.c (main): if --print-reply, assume type is
8612         method call; support boolean type args
8613         
8614         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8615         bunch of memleak and logic bugs
8616         
8617 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8618
8619         * mono/Arguments.cs:
8620         * mono/Introspector.cs:
8621         * mono/Handler.cs:
8622         * mono/InterfaceProxy.cs:
8623         * mono/Message.cs
8624         * mono/ProxyBuilder.cs:
8625         * mono/Service.cs:
8626         Added InterfaceProxy class to avoid building proxies for every
8627         object.
8628
8629         * dbus-message.h:
8630         * dbus-message.c (dbus_message_append_args_valist)
8631         (dbus_message_iter_get_object_path)
8632         (dbus_message_iter_get_object_path_array)
8633         (dbus_message_iter_append_object_path)
8634         (dbus_message_iter_append_object_path_array):
8635         Added object_path iter functions to handle OBJECT_PATH arguments
8636         
8637 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8638
8639         First checkin of mono bindings.
8640         * configure.in:
8641         * Makefile.am:
8642         Build stuff for the bindings
8643         * dbus-sharp.pc.in: Added for pkgconfig
8644         
8645 2004-03-21  Havoc Pennington  <hp@redhat.com>
8646
8647         * test/test-service.c (main): remove debug spew
8648
8649 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8650
8651         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8652         arrays
8653
8654         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8655         (dbus_message_iter_init_array_iterator)
8656         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8657         indicate whether the iterator is empty
8658
8659         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8660         warnings
8661
8662 2004-03-19  Havoc Pennington  <hp@redhat.com>
8663
8664         * NEWS: 0.21 updates
8665
8666         * configure.in: 0.21
8667
8668         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8669         
8670         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8671         you don't need pyrex to make dist
8672
8673         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8674         sources; run moc
8675         
8676 2004-03-18  Richard Hult  <richard@imendio.com>
8677
8678         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8679         (dbus_message_set_auto_activation): Add doxygen docs.
8680
8681 2004-03-16  Richard Hult  <richard@imendio.com>
8682
8683         * bus/activation.c: (bus_activation_service_created),
8684         (bus_activation_send_pending_auto_activation_messages),
8685         (bus_activation_activate_service):
8686         * bus/activation.h:
8687         * bus/dispatch.c: (bus_dispatch),
8688         (check_nonexistent_service_auto_activation),
8689         (check_service_auto_activated),
8690         (check_segfault_service_auto_activation),
8691         (check_existent_service_auto_activation), (bus_dispatch_test):
8692         * bus/driver.c: (bus_driver_handle_activate_service):
8693         * bus/services.c: (bus_registry_acquire_service):
8694         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8695         (dbus_message_get_auto_activation):
8696         * dbus/dbus-message.h:
8697         * dbus/dbus-protocol.h: Implement auto-activation.
8698         
8699         * doc/dbus-specification.xml: Add auto-activation to the spec.
8700
8701 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8702
8703         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8704         fix a bug with CUSTOM types.
8705
8706         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8707         a unit test for this bug (used to fail).
8708
8709 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8710
8711         * bus/activation.c:
8712         (babysitter_watch_callback): notify all pending activations waiting for
8713           the same exec that the activation failed.
8714         (bus_activation_activate_service): shortcut the activation if we 
8715           already waiting for the same executable to start up.
8716
8717 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8718
8719         * bus/activation.c: 
8720         - Added service file reloading. 
8721           Each service files directory is kept in an hash table in 
8722           BusActivation and each BusActivationEntry knows what .service-file it
8723           was read from. So when you try to activate a service the bus will 
8724           check if it's been updated, removed or if new .service-files has 
8725           been installed.
8726         - Test code at the bottom for the service file reloading.
8727         * bus/test-main.c: (main):
8728         * bus/test.h:
8729         - added service reloading test.
8730         * dbus/dbus-sysdeps.c: 
8731         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8732
8733 2004-03-08  Michael Meeks  <michael@ximian.com>
8734
8735         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8736         bail immediately if disconnected, to avoid busy loop.
8737
8738         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8739         cleanup cut/paste/inefficiency.
8740
8741 2004-03-01  David Zeuthen  <david@fubar.dk>
8742
8743         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8744         bug where args were used twice. This bug resulted in a segfault
8745         on a Debian/PPC system when starting the messagebus daemon. Include
8746         dbus-sysdeps.h for DBUS_VA_COPY
8747
8748         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8749
8750         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8751         appropriate va_copy implementation. From GLib
8752         
8753 2004-02-24  Joe Shaw  <joe@ximian.com>
8754
8755         * bus/services.c (bus_registry_acquire_service): We need to pass
8756         in the service name to dbus_set_error() to prevent a crash.
8757
8758 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8759
8760         * AUTHORS: Reveal my True identity.
8761
8762 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8763
8764         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8765         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8766
8767 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8768
8769         * doc/TODO: Added not about better error check of configuration files.
8770
8771 2003-12-02  Richard Hult  <richard@imendio.com>
8772
8773         * Update AFL version to 2.0 throughout the source files to reflect
8774         the update that was done a while ago.
8775
8776 2003-12-02  Richard Hult  <richard@imendio.com>
8777
8778         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8779         wrote_dict_key to FALSE on the iter that the dict is appended to,
8780         just like when appending other types. Fixes a bug where a dict
8781         couldn't be put inside a dict.
8782         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8783         (message_iter_test, _dbus_message_test): Add test case for dict
8784         inside dict.
8785
8786 2003-12-01  David Zeuthen  <david@fubar.dk>
8787
8788         * python/dbus.py: Add the actual message when calling the reciever
8789         of a signal such that parameters can be inspected. Add the method
8790         remove_signal_receiver
8791         
8792 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8793
8794         * bus/*.[ch]:
8795         * dbus/*.[ch]:
8796         * glib/*.[ch]: Made ref functions return the pointer
8797
8798 2003-11-25  Zack Rusin  <zack@kde.org>
8799
8800         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8801
8802         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8803         wrappers,
8804
8805         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8806         the Integrator and to better fit with the server,
8807
8808 2003-11-24  Zack Rusin  <zack@kde.org>
8809
8810         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8811         the integrator handles it now
8812
8813         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8814         since QTimer wasn't really meant to be used the way DBusTimeout is
8815
8816 2003-11-24  Zack Rusin  <zack@kde.org>
8817
8818         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8819         Integrator class which integrates D-BUS with the Qt event loop,
8820
8821         * qt/connection.h, qt/connection.cpp: Move all the code which
8822         was dealing with D-BUS integration to the Integrator class,
8823         and start using Integrator,
8824
8825 2003-11-23  Zack Rusin  <zack@kde.org>
8826
8827         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8828         wrapper
8829
8830         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8831         switching namespaces to DBusQt, reworking the class,
8832
8833         * Makefile.cvs: switching dependencies so that it matches KDE 
8834         schematics,
8835         
8836         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8837         the library
8838
8839 2003-11-19  Havoc Pennington  <hp@redhat.com>
8840
8841         * NEWS: update
8842
8843         * configure.in: bump version to 0.20
8844
8845         * configure.in (have_qt): add yet another place to look for qt
8846         (someone hand trolltech a .pc file...)
8847
8848 2003-11-01  Havoc Pennington  <hp@redhat.com>
8849
8850         * doc/dbus-specification.xml: add state machine docs on the auth
8851         protocol; just a first draft, I'm sure it's wrong.      
8852
8853 2003-10-28  David Zeuthen  <david@fubar.dk>
8854
8855         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8856         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8857         
8858 2003-10-28  Havoc Pennington  <hp@redhat.com>
8859
8860         * dbus/dbus-message.c (get_next_field): delete unused function
8861
8862 2003-10-28  Havoc Pennington  <hp@redhat.com>
8863
8864         * bus/expirelist.c (do_expiration_with_current_time): detect
8865         failure of the expire_func due to OOM
8866
8867         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8868
8869         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8870         NoReply error that's now created by the bus when the service exits
8871
8872 2003-10-28  Havoc Pennington  <hp@redhat.com>
8873
8874         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8875         tests for set_path, set_interface, set_member, etc.
8876
8877         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8878
8879         * dbus/dbus-message.c (set_string_field): always just delete and
8880         re-append the field; accept NULL for deletion
8881         (re_align_fields_recurse): reimplement
8882         
8883 2003-10-26  Havoc Pennington  <hp@redhat.com>
8884
8885         * dbus/dbus-connection.c: fix docs to properly describe the
8886         disconnected message
8887         (_dbus_connection_notify_disconnected): remove this function; 
8888         we can't synchronously add the disconnected message, we have to 
8889         do it after we've queued any remaining real messages
8890         (_dbus_connection_get_dispatch_status_unlocked): queue the
8891         disconnect message only if the transport has finished queueing all
8892         its real messages and is disconnected.
8893         (dbus_connection_disconnect): update the dispatch status here
8894
8895 2003-10-22  Havoc Pennington  <hp@redhat.com>
8896
8897         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8898
8899         * bus/connection.c (bus_transaction_send_from_driver): set the
8900         destination to the connection's base service
8901
8902 2003-10-20  Havoc Pennington  <hp@redhat.com>
8903
8904         hmm, make check is currently not passing.
8905         
8906         * doc/dbus-specification.xml: add requirement that custom type
8907         names follow the same rules as interface names.
8908
8909         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8910         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8911         'map'
8912
8913         * doc/dbus-specification.xml: update type codes to match
8914         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8915         CUSTOM. Add type OBJECT_PATH to the spec.
8916
8917 2003-10-17  Havoc Pennington  <hp@redhat.com>
8918
8919         * bus/driver.c (create_unique_client_name): use "." as separator
8920         in base service names instead of '-'
8921
8922         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8923         byte at the end of the string
8924
8925         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8926         optimization macros since string validation seems to be a slow
8927         point.
8928         
8929         * doc/dbus-specification.xml: restrict valid
8930         service/interface/member/error names. Add test suite code for the
8931         name validation.
8932
8933         * dbus/dbus-string.c: limit service/interface/member/error names 
8934         to [0-9][A-Z][a-z]_
8935
8936         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8937         format arg to verbose spew
8938
8939         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8940         memory, return instead of g_error
8941
8942         * test/test-service.c (path_message_func): support emitting a
8943         signal on request
8944
8945         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8946         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8947         assuming the activation bus was the session bus so that services
8948         started manually will still register.
8949         (init_connections_unlocked): fix so that in OOM situation we get
8950         the same semantics when retrying the function
8951         
8952         * test/test-service.c (main): change to use path registration, to
8953         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8954         than DBUS_BUS_SESSION
8955
8956 2003-10-16  Havoc Pennington  <hp@redhat.com>
8957
8958         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8959
8960         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8961         coverage of the tests
8962         (coverage-report.txt): don't move the .da and .bbg files around
8963
8964 2003-10-16  Havoc Pennington  <hp@redhat.com>
8965
8966         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8967         to put there
8968
8969 2003-10-16  Havoc Pennington  <hp@redhat.com>
8970
8971         * bus/connection.c (bus_pending_reply_expired): either cancel or
8972         execute, not both
8973         (bus_connections_check_reply): use unlink, not remove_link, as we
8974         don't want to free the link; fixes double free mess
8975
8976         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8977         where no reply was received
8978
8979         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8980         fix a refcount leak
8981
8982         * bus/signals.c (match_rule_matches): add special cases for the
8983         bus driver, so you can match on sender/destination for it.
8984
8985         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8986         DBUS_PRINT_BACKTRACE is set
8987
8988         * dbus/dbus-internals.c: add pid to assertion failure messages
8989
8990         * dbus/dbus-connection.c: add message type code to the debug spew
8991
8992         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8993         sender=foo not service=foo
8994
8995         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8996         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8997         DBUS_ACTIVATION_ADDRESS instead
8998
8999         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9000         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9001
9002         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9003         context struct
9004
9005         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9006         (dbus_message_iter_get_object_path_array): new function (half
9007         finished, disabled for the moment)
9008         
9009         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9010         DBUS_MESSAGE_TYPE_ERROR
9011
9012         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9013         avoid redirecting stderr to /dev/null
9014         (babysit): close stdin if not doing the "exit_with_session" thing
9015
9016         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9017         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9018         stdout/stdin, so things don't get confused
9019         
9020         * bus/system.conf.in: fix to allow replies, I modified .conf
9021         instead of .conf.in again.
9022
9023 2003-10-14  David Zeuthen  <david@fubar.dk>
9024
9025         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9026         argtype to arg_type when raising unknown arg type exception.
9027         Changed type list to reflect the changes in dbus-protocol.h so 
9028         the bindings actually work.
9029
9030 2003-10-14  Havoc Pennington  <hp@redhat.com>
9031
9032         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9033         to have a bug keeping it from outputting the .da files sometimes
9034         (string_get_string): don't append garbage nul bytes to the string.
9035
9036 2003-10-15  Seth Nickell  <seth@gnome.org>
9037
9038         * python/Makefile.am:
9039
9040         Include dbus_h_wrapper.h in the dist tarball.
9041
9042 2003-10-14  Havoc Pennington  <hp@redhat.com>
9043
9044         * bus/bus.c (bus_context_check_security_policy): revamp this to
9045         work more sanely with new policy-based requested reply setup
9046
9047         * bus/connection.c (bus_transaction_send_from_driver): set bus
9048         driver messages as no reply
9049
9050         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9051         requested_reply attribute on allow/deny rules
9052
9053         * bus/system.conf: add <allow requested_reply="true"/>
9054
9055         * bus/driver.c (bus_driver_handle_message): fix check for replies
9056         sent to the bus driver, which was backward. How did this ever work
9057         at all though? I think I'm missing something.
9058
9059         * dbus/dbus-message.c (decode_header_data): require error and
9060         method return messages to have a reply serial field to be valid
9061         (_dbus_message_loader_queue_messages): break up this function;
9062         validate that reply serial and plain serial are nonzero; 
9063         clean up the OOM/error handling.
9064         (get_uint_field): don't return -1 from this
9065         (dbus_message_create_header): fix signed/unsigned bug
9066
9067         * bus/connection.c (bus_connections_expect_reply): save serial of
9068         the incoming message, not reply serial
9069
9070 2003-10-14  Havoc Pennington  <hp@redhat.com>
9071
9072         * bus/connection.c: implement pending reply tracking using
9073         BusExpireList
9074
9075         * bus/bus.c (bus_context_check_security_policy): verify that a
9076         reply is pending in order to allow a reply to be sent. Deny 
9077         messages of unknown type.
9078
9079         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9080
9081         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9082         (bus_context_get_reply_timeout): new
9083
9084 2003-10-13  Seth Nickell  <seth@gnome.org>
9085
9086         * python/Makefile.am:
9087
9088         Pass "make distcheck": remove a couple files from DIST_FILES
9089         that weren't included in the final version.
9090
9091 2003-10-12  Havoc Pennington  <hp@pobox.com>
9092
9093         Added test code that 1) starts an actual bus daemon and 2) uses
9094         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9095         more testing possible, but this is the basic framework.
9096         
9097         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9098         empty proxy lists from the proxy list hash
9099
9100         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9101         couple of return_if_fail checks
9102
9103         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9104         to allocate, so everything is cleared to NULL as it should be.
9105
9106         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9107         source as data to dbus_connection_set_timeout_functions() as the 
9108         timeout functions expected
9109
9110         * test/glib/run-test.sh: add a little script to start up a message
9111         bus and run tests using it
9112
9113         * tools/dbus-launch.1: updates
9114
9115         * tools/dbus-launch.c (main): add --config-file option
9116
9117         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9118         that could never be reached.
9119
9120         * dbus/dbus-message.c (dbus_message_new_method_return) 
9121         (dbus_message_new_error, dbus_message_new_signal): set the
9122         no-reply-expected flag on all these. Redundant, but may
9123         as well be consistent.
9124
9125 2003-10-11  Havoc Pennington  <hp@pobox.com>
9126
9127         * test/decode-gcov.c (function_solve_graph): make broken block
9128         graph a nonfatal error since it seems to be broken. Need to debug
9129         this.
9130
9131         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9132         can't just check type > INVALID < LAST anymore
9133
9134         * dbus/dbus-message.c (dbus_message_get_signature): new function
9135         (dbus_message_has_signature): new function
9136         (struct DBusMessage): add signature field (right now it isn't sent
9137         over the wire, just generated on the fly)
9138         (dbus_message_copy): copy the signature, and init strings to
9139         proper length to avoid some reallocs
9140         (dbus_message_iter_init_array_iterator): return void, since it
9141         can't fail
9142         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9143         (_dbus_message_loader_queue_messages): add silly temporary hack to
9144         fill in message->signature on load
9145
9146         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9147         characters, so they are relatively human-readable.
9148
9149 2003-10-11  Havoc Pennington  <hp@pobox.com>
9150
9151         * dbus/dbus-message.c (_dbus_message_test): add more test
9152         coverage, but #if 0 for now since they uncover a bug 
9153         not fixed yet; I think in re_align_field_recurse()
9154         (re_align_field_recurse): add FIXME about broken assertion
9155
9156         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9157
9158         * bus/connection.c: share a couple code bits with expirelist.c
9159
9160         * bus/expirelist.h, bus/expirelist.c: implement a generic
9161         expire-items-after-N-seconds facility, was going to share between
9162         expiring connections and replies, decided not to use for expiring
9163         connections for now.
9164
9165         * COPYING: include AFL 2.0 (still need to change all the file headers)
9166
9167 2003-10-09  Havoc Pennington  <hp@redhat.com>
9168
9169         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9170         gcc 3.3. Not that we do anything about it yet.
9171
9172         * bus/signals.c (bus_match_rule_parse): impose max length on the
9173         match rule text
9174
9175         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9176
9177 2003-10-09  Havoc Pennington  <hp@redhat.com>
9178
9179         Make matching rules theoretically work (add parser).
9180         
9181         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9182         the case where destination is explicitly specified as bus driver
9183         and someone else is eavesdropping.
9184         
9185         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9186         definition of eavesdropping and assertion
9187
9188         * tools/dbus-send.c (main): use dbus_message_type_from_string
9189
9190         * bus/signals.c (bus_match_rule_parse): implement
9191
9192         * dbus/dbus-message.c (dbus_message_type_from_string): new
9193
9194         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9195
9196 2003-10-02  Havoc Pennington  <hp@pobox.com>
9197
9198         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9199         dbus_gproxy_oneway_call
9200
9201         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9202         (dbus_server_setup_with_g_main): fix to allow calling them more
9203         than once on the same args
9204         (dbus_bus_get_with_g_main): new function
9205
9206 2003-10-02  Havoc Pennington  <hp@redhat.com>
9207
9208         * doc/dbus-tutorial.xml: write some stuff
9209
9210 2003-09-29  Havoc Pennington  <hp@pobox.com>
9211
9212         * configure.in: split checks for Doxygen from XML docs, check for
9213         xmlto
9214
9215         * doc/Makefile.am: XML-ify all the docs, and add a blank
9216         dbus-tutorial.xml
9217
9218 2003-09-29  Havoc Pennington  <hp@pobox.com>
9219
9220         * Merge dbus-object-names branch. To see the entire patch 
9221         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9222         it's huuuuge though.
9223         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9224         
9225 2003-09-28  Havoc Pennington  <hp@pobox.com>
9226
9227         * HACKING: update to reflect new server
9228
9229 2003-09-26  Seth Nickell  <seth@gnome.org>
9230
9231         * python/dbus.py:
9232         * python/examples/example-signals.py:
9233
9234         Start implementing some notions of signals. The API
9235         is really terrible, but they sort of work (with the
9236         exception of being able to filter by service, and to
9237         transmit signals *as* a particular service). Need to
9238         figure out how to make messages come from the service
9239         we registered :-(
9240         
9241         * python/dbus_bindings.pyx.in:
9242
9243         Removed duplicate message_handler callbacks.
9244         
9245 2003-09-25  Havoc Pennington  <hp@redhat.com>
9246
9247         * bus/session.conf.in: fix my mess
9248
9249 2003-09-25  Havoc Pennington  <hp@pobox.com>
9250
9251         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9252
9253 2003-09-25  Seth Nickell  <seth@gnome.org>
9254
9255         * python/examples/example-service.py:
9256
9257         Johan notices complete wrong code in example-service, but
9258         completely wrong in a way that works exactly the same (!).
9259         Johan is confused, how could this possibly work? Example
9260         code fails to serve purpose of making things clear.
9261         Seth fixes.
9262
9263 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9264
9265         * doc/dbus-specification.sgml: don't require header fields
9266         to be 4-byte aligned and specify that fields should be
9267         distinguished from padding by the fact that zero is not
9268         a valid field name.
9269         
9270         * doc/TODO: remove re-alignment item and add item to doc
9271         the OBJECT_PATH type.
9272         
9273         * dbus/dbus-message.c:
9274         (HeaderField): rename the original member to value_offset
9275         and introduce a name_offset member to keep track of where
9276         the field actually begins.
9277         (adjust_field_offsets): remove.
9278         (append_int_field), (append_uint_field),
9279         (append_string_field): don't align the start of the header
9280         field to a 4-byte boundary.
9281         (get_next_field): impl finding the next marhsalled field
9282         after a given field.
9283         (re_align_field_recurse): impl re-aligning a number of
9284         already marshalled fields.
9285         (delete_field): impl deleting a field of any type and
9286         re-aligning any following fields.
9287         (delete_int_or_uint_field), (delete_string_field): remove.
9288         (set_int_field), (set_uint_field): no need to re-check
9289         that we have the correct type for the field.
9290         (set_string_field): ditto and impl re-aligning any
9291         following fields.
9292         (decode_header_data): update to take into account that
9293         the fields aren't 4-byte aligned any more and the new
9294         way to distinguish padding from header fields. Also,
9295         don't exit when there is too much header padding.
9296         (process_test_subdir): print the directory.
9297         (_dbus_message_test): add test to make sure a following
9298         field is re-aligned correctly after field deletion.
9299         
9300         * dbus/dbus-string.[ch]:
9301         (_dbus_string_insert_bytes): rename from insert_byte and
9302         allow the insert of multiple bytes.
9303         (_dbus_string_test): test inserting multiple bytes.
9304
9305         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9306         warning note to docs about having to re-align any
9307         marshalled values following the string.
9308         
9309         * dbus/dbus-message-builder.c:
9310         (append_string_field), (_dbus_message_data_load):
9311         don't align the header field.
9312         
9313         * dbus/dbus-auth.c: (process_test_subdir): print the
9314         directory.
9315         
9316         * test/break-loader.c: (randomly_add_one_byte): upd. for
9317         insert_byte change.
9318         
9319         * test/data/invalid-messages/bad-header-field-alignment.message:
9320         new test case.
9321         
9322         * test/data/valid-messages/unknown-header-field.message: shove
9323         a dict in the unknown field.
9324
9325 2003-09-25  Seth Nickell  <seth@gnome.org>
9326
9327         * python/dbus.py:
9328         * python/dbus_bindings.pyx.in:
9329
9330         Handle return values.
9331         
9332         * python/examples/example-client.py:
9333         * python/examples/example-service.py:
9334
9335         Pass back return values from the service to the client.
9336         
9337 2003-09-24  Seth Nickell  <seth@gnome.org>
9338
9339         * python/dbus.py:
9340
9341         Connect Object methods (when you are sharing an object) up... pass
9342         in a list of methods to be shared. Sharing all the methods just
9343         worked out too weird. You can now create nice Services over the
9344         DBus in Python. :-)
9345         
9346         * python/dbus_bindings.pyx.in:
9347
9348         Keep references to user_data tuples passed into C functions so 
9349         Python doesn't garbage collect on us.
9350
9351         Implement MethodReturn and Error subclasses of Message for creating
9352         DBusMessage's of those types.
9353         
9354         * python/examples/example-client.py:
9355         * python/examples/example-service.py:
9356
9357         Simple example code showing both how create DBus services and objects,
9358         and how to use them.
9359
9360 2003-09-23  Havoc Pennington  <hp@pobox.com>
9361
9362         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9363
9364 2003-09-23  Havoc Pennington  <hp@redhat.com>
9365
9366         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9367         (dbus_gproxy_disconnect_signal): implement
9368         (dbus_gproxy_manager_remove_signal_match): implement
9369         (dbus_gproxy_manager_add_signal_match): implement
9370         (dbus_gproxy_oneway_call): implement
9371
9372 2003-09-23  Havoc Pennington  <hp@pobox.com>
9373
9374         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9375         subclass. This means dropping the transparent thread safety of the
9376         proxy; you now need a separate proxy per-thread, or your own
9377         locking on the proxy. Probably right anyway.
9378         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9379
9380 2003-09-22  Havoc Pennington  <hp@redhat.com>
9381
9382         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9383
9384 2003-09-21  Seth Nickell  <seth@gnome.org>
9385
9386         First checkin of the Python bindings.
9387         
9388         * python/.cvsignore:
9389         * python/Makefile.am:
9390         * python/dbus_bindings.pyx.in:
9391         * python/dbus_h_wrapper.h:
9392
9393         Pieces for Pyrex to operate on, building a dbus_bindings.so
9394         python module for low-level access to the DBus APIs.
9395         
9396         * python/dbus.py:
9397
9398         High-level Python module for accessing DBus objects.
9399
9400         * configure.in:
9401         * Makefile.am:
9402
9403         Build stuff for the python bindings.
9404
9405         * acinclude.m4:
9406
9407         Extra macro needed for finding the Python C header files.
9408
9409 2003-09-21  Havoc Pennington  <hp@pobox.com>
9410
9411         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9412         implementing the proxy manager, didn't get very far.
9413
9414         * dbus/dbus-bus.c (dbus_bus_add_match): new
9415         (dbus_bus_remove_match): new
9416
9417         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9418         path_name argument; adjust the other not-yet-implemented 
9419         gproxy constructors to be what I think they should be.
9420
9421 2003-09-21  Havoc Pennington  <hp@pobox.com>
9422
9423         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9424         by default for message bus connections.
9425
9426         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9427         exit_on_disconnect flag is set and we process the disconnected
9428         signal.
9429         (dbus_connection_set_exit_on_disconnect): new function
9430
9431 2003-09-21  Havoc Pennington  <hp@pobox.com>
9432
9433         Get matching rules mostly working in the bus; only actually
9434         parsing the rule text remains. However, the client side of
9435         "signal connections" hasn't been started, this patch is only the
9436         bus side.
9437         
9438         * dbus/dispatch.c: fix for the matching rules changes
9439         
9440         * bus/driver.c (bus_driver_handle_remove_match)
9441         (bus_driver_handle_add_match): send an ack reply from these
9442         method calls
9443
9444         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9445         arguments, reported by Seth Nickell
9446
9447         * bus/config-parser.c (append_rule_from_element): support
9448         eavesdrop=true|false attribute on policies so match rules 
9449         can be prevented from snooping on the system bus.
9450
9451         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9452         and "destination" in attribute names; fix some docs bugs; 
9453         add eavesdrop=true|false attribute
9454
9455         * bus/driver.c (bus_driver_handle_add_match)
9456         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9457         messages
9458
9459         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9460         rid of broadcast service concept, signals are just always broadcast
9461
9462         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9463         mostly implement matching rules stuff (currently only exposed as signal
9464         connections)
9465
9466 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9467
9468         * doc/dbus-specification.sgml: Change the header field name
9469         to be an enum and update the rest of the spec to reference
9470         the fields using the conventinal name.
9471
9472         * dbus/dbus-protocol.h: update to reflect the spec.
9473
9474         * doc/TODO: add item to remove the 4 byte alignment requirement.
9475         
9476         * dbus/dbus-message.c: Remove the code to generalise the
9477         header/body length and serial number header fields as named
9478         header fields so we can reference field names using the 
9479         protocol values.
9480         (append_int_field), (append_uint_field), (append_string_field):
9481         Append the field name as a byte rather than four chars.
9482         (delete_int_or_uint_field), (delete_string_field): reflect the
9483         fact that the field name and typecode now occupy 4 bytes instead
9484         of 8.
9485         (decode_string_field), (decode_header_data): update to reflect
9486         protocol changes and move the field specific encoding from
9487         decode_string_field() back into decode_header_data().
9488         
9489         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9490         Add utility to aid debugging.
9491         
9492         * dbus/dbus-message-builder.c:
9493         (append_string_field), (_dbus_message_data_load): Update to
9494         reflect protocol changes; Change the FIELD_NAME directive
9495         to HEADER_FIELD and allow it to take the field's conventional
9496         name rather than the actual value.
9497         
9498         * test/data/*/*.message: Update to use HEADER_FIELD instead
9499         of FIELD_NAME; Always align the header on an 8 byte boundary
9500         *before* updating the header length.
9501
9502 2003-09-15  Havoc Pennington  <hp@pobox.com>
9503
9504         * dbus/dbus-pending-call.c: add the get/set object data
9505         boilerplate as for DBusConnection, etc. Use generic object data
9506         for the notify callback.
9507
9508         * glib/dbus-gparser.c (parse_node): parse child nodes
9509
9510         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9511         
9512         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9513         contain functions shared between the convenience lib and the
9514         installed lib
9515
9516         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9517         -export-symbols-regex to the GLib library
9518
9519         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9520         fix the locking in here, and add a default handler for
9521         Introspect() that just returns sub-nodes.
9522
9523 2003-09-14  Havoc Pennington  <hp@pobox.com>
9524
9525         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9526         rather than gfoo consistent
9527
9528         * glib/dbus-gproxy.h: delete for now, move contents to
9529         dbus-glib.h, because the include files don't work right since we
9530         aren't in the dbus/ subdir.
9531         
9532         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9533         (dbus_gproxy_end_call): finish
9534         (dbus_gproxy_begin_call): finish
9535
9536         * glib/dbus-gmain.c (dbus_set_g_error): new
9537
9538         * glib/dbus-gobject.c (handle_introspect): include information
9539         about child nodes in the introspection
9540
9541         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9542         function to help in implementation of introspection
9543
9544         * dbus/dbus-object-tree.c
9545         (_dbus_object_tree_list_registered_and_unlock): new function
9546
9547 2003-09-12  Havoc Pennington  <hp@pobox.com>
9548
9549         * glib/dbus-gidl.h: add common base class for all the foo_info
9550         types
9551
9552         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9553         similar to kdcop
9554
9555         * test/Makefile.am: try test srcdir -ef . in addition to test
9556         srcdir = ., one of them should work (yeah lame)
9557         
9558         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9559         library
9560         
9561         * glib/dbus-gparser.h: make description_load routines return
9562         NodeInfo* not Parser*
9563
9564         * Makefile.am (SUBDIRS): build test dir after all library dirs
9565
9566         * configure.in: add GTK+ detection
9567
9568 2003-09-07  Havoc Pennington  <hp@pobox.com>
9569
9570         * Make Doxygen contented.
9571
9572 2003-09-07  Havoc Pennington  <hp@pobox.com>
9573
9574         * doc/dbus-specification.sgml: more updates
9575
9576 2003-09-06  Havoc Pennington  <hp@pobox.com>
9577
9578         * doc/dbus-specification.sgml: partial updates
9579
9580         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9581         zillionth time; hopefully I edited the right file this time.
9582
9583         * bus/config-parser.c (append_rule_from_element): support
9584         send_type, send_path, receive_type, receive_path
9585
9586         * bus/policy.c: add message type and path to the list of things
9587         that can be "firewalled"
9588
9589 2003-09-06  Havoc Pennington  <hp@pobox.com>
9590
9591         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9592         (dbus_connection_register_object_path): make this not handle
9593         messages to paths below the given path
9594
9595 2003-09-03  Havoc Pennington  <hp@pobox.com>
9596
9597         * test/glib/Makefile.am: add this with random glib-linked test
9598         programs
9599
9600         * glib/Makefile.am: remove the random test programs from here,
9601         leave only the unit tests
9602
9603         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9604         uscore/javacaps conversion, and fix     
9605         (get_object_property, set_object_property): change to .NET
9606         convention for mapping props to methods, set_FooBar/get_FooBar, 
9607         since one language has such a convention we may as well copy it. 
9608         Plus real methods in either getFooBar or get_foo_bar style won't 
9609         collide with this convention.
9610
9611 2003-09-01  Havoc Pennington  <hp@pobox.com>
9612
9613         * glib/dbus-gparser.c: implement
9614
9615         * glib/dbus-gobject.c: start implementing skeletons support
9616
9617         * configure.in: when disabling checks/assert, also define
9618         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9619
9620 2003-09-01  Havoc Pennington  <hp@pobox.com>
9621
9622         * glib/Makefile.am: rearrange a bunch of files and get "make
9623         check" framework set up
9624
9625 2003-08-31  Havoc Pennington  <hp@pobox.com>
9626
9627         * fix build with --disable-tests
9628
9629 2003-08-30  Havoc Pennington  <hp@pobox.com>
9630
9631         * dbus/dbus-connection.c: purge DBusMessageHandler
9632
9633         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9634         use callbacks everywhere
9635
9636 2003-08-30  Havoc Pennington  <hp@pobox.com>
9637
9638         * test/data/valid-config-files/system.d/test.conf: change to 
9639         root for the user so warnings don't get printed
9640
9641         * dbus/dbus-message.c: add dbus_message_get_path,
9642         dbus_message_set_path
9643         
9644         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9645         dispatching to a path
9646
9647         * dbus/dbus-string.c (_dbus_string_validate_path): add
9648
9649         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9650         (_dbus_marshal_object_path): implement
9651
9652         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9653         to contain the path to the target object
9654         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9655         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9656
9657 2003-08-30  Havoc Pennington  <hp@pobox.com>
9658
9659         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9660
9661 2003-08-29  Havoc Pennington  <hp@pobox.com>
9662
9663         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9664         registered
9665         (struct DBusObjectSubtree): shrink this
9666         a lot, since we may have a lot of them
9667         (_dbus_object_tree_free_all_unlocked): implement
9668         (_dbus_object_tree_dispatch_and_unlock): implement
9669
9670 2003-08-29  Havoc Pennington  <hp@pobox.com>
9671
9672         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9673
9674 2003-08-28  Havoc Pennington  <hp@pobox.com>
9675
9676         purge DBusObjectID
9677         
9678         * dbus/dbus-connection.c: port to no ObjectID, create a
9679         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9680
9681         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9682         everything except UnregisterFunction and MessageFunction
9683         
9684         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9685         add DBUS_TYPE_OBJECT_PATH
9686         
9687         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9688         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9689         path-based object IDs
9690
9691 2003-08-25  Havoc Pennington  <hp@pobox.com>
9692
9693         Just noticed that dbus_message_test is hosed, I wonder when I
9694         broke that. I thought make check was passing earlier...
9695         
9696         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9697         container tree, will replace most of dbus-object-registry
9698
9699         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9700         screwup
9701
9702 2003-08-19  Havoc Pennington  <hp@pobox.com>
9703
9704         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9705         (dbus_message_is_error): fix this function
9706
9707         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9708         match
9709
9710         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9711         reflect clarified man page
9712         (bus_client_policy_check_can_send): ditto
9713         
9714         * bus/session.conf.in: fixup
9715
9716         * bus/system.conf.in: fixup
9717
9718 2003-08-18  Havoc Pennington  <hp@redhat.com>
9719
9720         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9721
9722         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9723         dumb bug created earlier (wrong order of args to
9724         decode_header_data())
9725         
9726         * tools/dbus-send.c: port
9727
9728         * tools/dbus-print-message.c (print_message): port
9729
9730         * test/data/*messages: port all messages over
9731         
9732         * dbus/dbus-message-builder.c: support including 
9733         message type
9734         
9735         * bus/driver.c: port over
9736         
9737         * bus/dispatch.c: port over to new stuff
9738
9739         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9740         rename disconnect signal to "Disconnected"
9741
9742 2003-08-17  Havoc Pennington  <hp@pobox.com>
9743
9744         This doesn't compile yet, but syncing up so I can hack on it from
9745         work. What are branches for if not broken code? ;-)
9746         
9747         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9748         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9749         DBUS_HEADER_FIELD_ERROR_NAME
9750         
9751         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9752         for the interface+member pairs
9753         (string_hash): change to use g_str_hash algorithm
9754         (find_direct_function, find_string_function): refactor these to
9755         share most code.
9756         
9757         * dbus/dbus-message.c: port all of this over to support 
9758         interface/member fields instead of name field
9759
9760         * dbus/dbus-object-registry.c: port over
9761         
9762         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9763         from _dbus_string_validate_name
9764
9765         * bus/dbus-daemon-1.1: change file format for the 
9766         <deny>/<allow> stuff to match new message naming scheme
9767
9768         * bus/policy.c: port over
9769
9770         * bus/config-parser.c: parse new format
9771         
9772 2003-08-16  Havoc Pennington  <hp@pobox.com>
9773
9774         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9775         broken assertion
9776
9777         * glib/dbus-gproxy.c: some hacking
9778
9779 2003-08-15  Havoc Pennington  <hp@redhat.com>
9780
9781         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9782
9783         * dbus/dbus-connection.c
9784         (dbus_connection_send_with_reply_and_block): factor out internals;
9785         change to convert any error replies to DBusError instead of 
9786         returning them as a message
9787
9788 2003-08-15  Havoc Pennington  <hp@pobox.com>
9789
9790         * dbus/dbus-connection.c, 
9791         dbus/dbus-pending-call.c: Finish the pending call stuff
9792
9793 2003-08-14  Havoc Pennington  <hp@redhat.com>
9794
9795         * dbus/dbus-pending-call.c: start on new object that will replace
9796         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9797         replies
9798
9799         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9800         with remote interfaces
9801
9802         * dbus/dbus-gidl.c: do the boring boilerplate in here
9803         
9804 2003-08-12  Havoc Pennington  <hp@pobox.com>
9805
9806         * bus/dispatch.c (bus_dispatch): make this return proper 
9807         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9808
9809         * dbus/dbus-errors.c (dbus_set_error): use
9810         _dbus_string_append_printf_valist
9811
9812         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9813         (_dbus_string_append_printf): new
9814
9815         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9816         UNKNOWN_METHOD
9817
9818         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9819         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9820         message is unhandled.
9821
9822 2003-08-11  Havoc Pennington  <hp@pobox.com>
9823
9824         * bus/test.c (client_disconnect_handler): change to return
9825         HANDLED (would have been REMOVE_MESSAGE)
9826
9827         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9828         HANDLED/NOT_YET_HANDLED instead of
9829         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9830         should be used.
9831
9832 2003-08-10  Havoc Pennington  <hp@pobox.com>
9833
9834         * tools/dbus-send.c (main): add --type argument, for now
9835         supporting only method_call and signal types.
9836
9837         * tools/dbus-print-message.c: print message type
9838
9839         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9840         init connection->objects
9841
9842         * doc/dbus-specification.sgml: fix sgml
9843
9844         * bus/*.c: port over to object-instance API changes
9845
9846         * test/test-service.c: ditto
9847         
9848         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9849         name, we will have to fix up the rest of the code to also handle
9850         this
9851         (dbus_message_new): generic message-creation call
9852         (set_string_field): allow appending name field
9853
9854 2003-08-06  Havoc Pennington  <hp@pobox.com>
9855
9856         * dbus/dbus-object-registry.c: implement signal connection 
9857         and dispatch
9858
9859         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9860
9861         * dbus/dbus-internals.c (_dbus_memdup): new function
9862
9863 2003-08-02  Havoc Pennington  <hp@pobox.com>
9864
9865         * dbus/dbus-message.c (dbus_message_get_no_reply)
9866         (dbus_message_set_no_reply): add these and remove
9867         set_is_error/get_is_error
9868
9869         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9870         remove the ERROR flag, since there's now an ERROR type
9871
9872 2003-08-01  Havoc Pennington  <hp@pobox.com>
9873
9874         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9875         implement
9876
9877         * dbus/dbus-message.c (dbus_message_get_type): new function
9878
9879         * doc/dbus-specification.sgml: add "type" byte to messages
9880
9881 2003-08-01  Havoc Pennington  <hp@pobox.com>
9882
9883         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9884         a message type enum to distinguish kinds of message
9885         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9886         that need not be replied to
9887
9888 2003-08-01  Havoc Pennington  <hp@pobox.com>
9889
9890         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9891         (unpack_8_octets): fix no-64-bit-int bug
9892
9893         * dbus/dbus-object-registry.c (validate_id): validate the 
9894         connection ID bits, not just the instance ID.
9895
9896         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9897         the connection-global 33 bits of the object ID
9898
9899         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9900         object ID in the new way
9901
9902         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9903         define server/client/instance bits.
9904
9905 2003-07-30  Havoc Pennington  <hp@pobox.com>
9906
9907         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9908         build
9909
9910 2003-07-13  Havoc Pennington  <hp@pobox.com>
9911
9912         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9913         fields to DBusObjectVTable and DBusObjectInfo
9914
9915 2003-07-12  Havoc Pennington  <hp@pobox.com>
9916
9917         * dbus/dbus-object-registry.c: implement unit test,
9918         fix bugs discovered in process
9919
9920         * dbus/dbus-connection.c: remove handler_table and
9921         register_handler(), add DBusObjectRegistry usage
9922
9923         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9924         (dbus_object_id_set_null): new functions
9925
9926 2003-07-08  Havoc Pennington  <hp@pobox.com>
9927
9928         * dbus/dbus-object.c: implement some of this
9929
9930         * dbus/dbus-object-registry.c
9931         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9932         param
9933         (_dbus_object_registry_new): handle OOM
9934
9935 2003-07-08  Havoc Pennington  <hp@pobox.com>
9936
9937         * dbus/dbus-object.h: sketch out an API for registering objects
9938         with a connection, that allows us to use as little as 24 bytes
9939         per object and lets application code represent an object in 
9940         any conceivable way.
9941
9942         * dbus/dbus-object-registry.c: implement the hard bits of the
9943         DBusConnection aspect of object API. Not yet wired up.
9944         
9945 2003-07-06  Havoc Pennington  <hp@pobox.com>
9946
9947         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9948         (_dbus_marshal_object_id): new
9949         (_dbus_demarshal_object_id): new
9950         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9951         consolidate identical switch cases. Don't conditionalize handling
9952         of DBUS_TYPE_UINT64, need to handle the type always.
9953         (_dbus_marshal_validate_arg): consolidate identical cases, and
9954         handle DBUS_TYPE_OBJECT_ID
9955
9956         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9957
9958         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9959
9960 2003-09-28  Havoc Pennington  <hp@pobox.com>
9961
9962         * real 0.13 release
9963
9964 2003-09-28  Havoc Pennington  <hp@pobox.com>
9965
9966         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9967         to work with Debian db2html
9968
9969 2003-09-28  Havoc Pennington  <hp@pobox.com>
9970
9971         * configure.in: 0.13
9972
9973         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9974         stylesheet-images for benefit of Debian
9975         
9976         Change back to using filesystem-linked sockets for the system
9977         bus, so only root can create the default system bus address.
9978         
9979         * bus/system.conf.in: change to use
9980         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9981
9982         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9983         from here.
9984
9985         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9986         here, and AC_DEFINE DBUS_SYSTEM_PATH
9987
9988 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9989
9990         * doc/TODO:
9991         * doc/busconfig.dtd:
9992         Add busconfig DTD.
9993         
9994 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9995
9996         * doc/dbus-specification.sgml:
9997         Add activation reply values.
9998         
9999 2003-08-05  Havoc Pennington  <hp@redhat.com>
10000
10001         * configure.in: 0.12
10002
10003 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10004
10005         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10006         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10007         (add_watch), (remove_watch), (create_source):
10008         Refcount fds, fixes some reentrancy issues.
10009         
10010 2003-07-30  Havoc Pennington  <hp@redhat.com>
10011
10012         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10013         bus address to be abstract if we have abstract sockets
10014
10015         * NEWS: update
10016
10017 2003-07-28  Havoc Pennington  <hp@redhat.com>
10018
10019         * bus/messagebus.in: fix to avoid processname/servicename 
10020         confusion, from Michael Kearey
10021         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10022         
10023 2003-07-23  Havoc Pennington  <hp@pobox.com>
10024
10025         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10026         fix from Andy Hanton to remove broken "+1"
10027
10028 2003-07-16  Havoc Pennington  <hp@pobox.com>
10029
10030         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10031         babysitter process, as suggested by Thomas Leonard, so 
10032         an "eval `dbus-launch --exit-with-session`" will actually 
10033         return
10034
10035 2003-07-16  Havoc Pennington  <hp@pobox.com>
10036
10037         * configure.in: print out EXPANDED_* variables in the summary at
10038         the end; clean up the code that computes EXPANDED_ variables and
10039         get the ones using exec_prefix right. Should make things work
10040         when you build without --prefix
10041
10042 2003-06-29  Havoc Pennington  <hp@pobox.com>
10043
10044         * mono/Test.cs (class Test): fire up a main loop and run it
10045
10046         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10047         done once, the app has to do it
10048
10049 2003-06-26  Havoc Pennington  <hp@pobox.com>
10050
10051         * mono/Connection.cs: set up connection with the glib main loop
10052
10053 2003-07-01  Havoc Pennington  <hp@redhat.com>
10054
10055         * doc/dbus-specification.sgml: clarify the format of a type code,
10056         change suggested by Jim Blandy
10057
10058 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10059
10060         * doc/Makefile.am:
10061         * tools/Makefile.am: Don't assume srcdir == builddir.
10062
10063         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10064         the allocated block.
10065         (_dbus_memory_test): New function.
10066         * dbus/dbus-test.h: Add _dbus_memory_test ().
10067         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10068
10069         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10070         of %c%c%c%c.
10071         (dbus_message_new): Remove obsolete @todo.
10072
10073         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10074         (_dbus_marshal_set_uint64): Fix comment.
10075
10076         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10077         hardcode FIELD_REPLY_SERIAL.
10078
10079         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10080         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10081
10082         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10083         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10084
10085 2003-06-24  Havoc Pennington  <hp@pobox.com>
10086
10087         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10088
10089 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10090
10091         * configure.in:
10092         * gcj/.cvsignore:
10093         * gcj/Hello.java:
10094         * gcj/Makefile.am:
10095         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10096         * gcj/org/.cvsignore:
10097         * gcj/org/Makefile.am:
10098         * gcj/org/freedesktop/.cvsignore:
10099         * gcj/org/freedesktop/Makefile.am:
10100         * gcj/org/freedesktop/dbus/.cvsignore:
10101         * gcj/org/freedesktop/dbus/Makefile.am:
10102         * gcj/org/freedesktop/dbus/Message.java: (Message),
10103         (Message.Message):
10104         * gcj/org/freedesktop/dbus/natMessage.cc:
10105         Fix the build system.
10106
10107 2003-06-22  Havoc Pennington  <hp@pobox.com>
10108
10109         * mono/Connection.cs: add more bindings
10110
10111         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10112         more than once.
10113
10114 2003-06-22  Havoc Pennington  <hp@pobox.com>
10115
10116         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10117         Start wrapping more stuff.
10118
10119 2003-06-22  Havoc Pennington  <hp@pobox.com>
10120
10121         * mono/Message.cs: implement Message.Wrap() that ensures we only
10122         have a single C# wrapper per DBusMessage, assuming it works which
10123         it probably doesn't.
10124
10125         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10126         (dbus_message_free_data_slot): new
10127         (dbus_message_set_data): new
10128         (dbus_message_get_data): new
10129
10130 2003-06-22  Havoc Pennington  <hp@pobox.com>
10131
10132         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10133         (_dbus_data_slot_allocator_alloc): rework these to keep a
10134         reference count on each slot and automatically manage a global
10135         slot ID variable passed in by address
10136
10137         * bus/bus.c: convert to new dataslot API
10138
10139         * dbus/dbus-bus.c: convert to new dataslot API
10140
10141         * dbus/dbus-connection.c: convert to new dataslot API
10142
10143         * dbus/dbus-server.c: convert to new dataslot API
10144
10145         * glib/dbus-gmain.c: ditto
10146
10147         * bus/test.c: ditto
10148
10149         * bus/connection.c: ditto
10150
10151 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10152
10153         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10154         after the gcj checks so that the correct configuration tags
10155         will be added to libtool.
10156
10157         * dbus-glib-1.pc.in: No need to specify any includes since
10158         dbus-1.pc.in has those.
10159
10160 2003-06-22  Havoc Pennington  <hp@pobox.com>
10161
10162         * mono/*, gcj/*, configure.in, Makefile.am:
10163         Check in makefiles and subdirs for mono and gcj bindings.
10164         Neither binding actually exists, just trying to get through
10165         all the build and other boring bits.
10166
10167 2003-06-21  Philip Blundell  <philb@gnu.org>
10168
10169         * tools/dbus-monitor.1: Updated.
10170
10171         * tools/dbus-send.1: Likewise.
10172
10173 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10174
10175         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10176         for hangup and error after checking read so we won't discard
10177         pending data if both hangup and read are set.
10178
10179 2003-06-19  Philip Blundell  <philb@gnu.org>
10180
10181         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10182
10183         * tools/dbus-send.c: Accept both --system and --session.
10184
10185         * tools/dbus-monitor.c: Same here.
10186
10187 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10188
10189         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10190         from C++ (Patch by Miloslav Trmac).
10191
10192 2003-06-15  Joe Shaw  <joe@assbarn.com>
10193
10194         * configure.in: Check for socklen_t.
10195
10196         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10197
10198         * test/test-segfault.c: Add #include <sys/time.h>
10199
10200         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10201         dbus-launch needs it.
10202
10203 2003-06-09  Havoc Pennington  <hp@redhat.com>
10204
10205         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10206         SUN_LEN, it breaks abstract socket usage
10207
10208         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10209         starts of lines.
10210
10211 2003-06-04  Havoc Pennington  <hp@pobox.com>
10212
10213         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10214         using unix:abstract=/foo, and when listening in a tmpdir
10215         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10216
10217         * dbus/dbus-transport.c (_dbus_transport_open): support
10218         unix:abstract=/foo
10219
10220         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10221         support abstract sockets
10222
10223         * dbus/dbus-transport-unix.c
10224         (_dbus_transport_new_for_domain_socket): support abstract sockets
10225
10226         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10227         toggle as an argument, implement abstract namespace support
10228         (_dbus_listen_unix_socket): ditto
10229
10230         * configure.in: add --enable-abstract-sockets and implement
10231         a configure check for autodetection of the right value.
10232
10233 2003-06-01  Havoc Pennington  <hp@pobox.com>
10234
10235         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10236         in /tmp (though on Linux this will end up being useless,
10237         when we add abstract namespace support)
10238
10239         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10240         subst'ing it
10241
10242 2003-05-28  Colin Walters  <walters@verbum.org>
10243
10244         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10245
10246 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10247
10248         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10249
10250 2003-05-17  Colin Walters  <walters@gnu.org>
10251
10252         * tools/dbus-send.c: Don't exit with an error code if --help was
10253         passed.  Default to using the session bus instead of the system
10254         one.
10255
10256         * tools/dbus-launch.c: Ditto.
10257
10258         * tools/dbus-monitor.c: Ditto.
10259
10260         * tools/dbus-send.1: Update with new arguments.
10261
10262         * tools/dbus-launch.c: Emit code to export variables.  New
10263         arguments -s and -c to specify shell syntax, and a bit of code to
10264         autodetect syntax.  Also, allow specifying a program to run.
10265
10266         * tools/dbus-launch.1: Update with new arguments.
10267
10268         * tools/dbus-send.1: Ditto.
10269
10270         * tools/dbus-monitor.1: Ditto.
10271
10272 2003-05-17  Havoc Pennington  <hp@pobox.com>
10273
10274         * bus/config-parser.c (merge_included): merge in policies from
10275         child configuration file.
10276
10277         * bus/policy.c (bus_policy_merge): function to merge two policies
10278         together
10279
10280 2003-05-16  Havoc Pennington  <hp@redhat.com>
10281
10282         * dbus/dbus-connection.c: disable verbose lock spew
10283
10284         * tools/dbus-send.c: add --print-reply command line option
10285
10286         * tools/dbus-print-message.h (print_message): new util function
10287         shared by dbus-send and dbus-monitor
10288
10289         * tools/dbus-monitor.c (handler_func): exit on disconnect
10290
10291         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10292         disconnected, don't try to use the read_watch
10293
10294         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10295         so we can find this bug more easily
10296
10297 2003-05-16  Havoc Pennington  <hp@redhat.com>
10298
10299         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10300         NULL as DBusHashTable is annoyingly likely to do.
10301
10302 2003-05-16  Colin Walters  <walters@verbum.org>
10303
10304         * tools/dbus-monitor.c: Add --session argument and usage()
10305         function.
10306
10307         * tools/dbus-monitor.1: Update with new --session arg.
10308
10309         * bus/Makefile.am (install-data-hook): Create
10310         $(libdir)/dbus-1.0/services so that the session bus is happy.
10311
10312 2003-05-15  Havoc Pennington  <hp@redhat.com>
10313
10314         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10315         on non-x86. ifdef's are evil.
10316
10317 2003-05-15  Havoc Pennington  <hp@redhat.com>
10318
10319         * configure.in: 0.11
10320
10321         * NEWS: update
10322
10323         * bus/Makefile.am (initddir): apparently we are supposed to put
10324         init scripts in /etc/rc.d/init.d not /etc/init.d
10325
10326         * bus/Makefile.am: remove the "you must --enable-tests to make
10327         check" as it broke distcheck
10328
10329         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10330
10331 2003-05-13  James Willcox  <jwillcox@gnome.org>
10332
10333         * configure.in:
10334         * bus/activation.c: (bus_activation_service_created),
10335         (bus_activation_activate_service):
10336         * bus/driver.c: (bus_driver_send_service_deleted),
10337         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10338         (bus_driver_send_service_acquired),
10339         (bus_driver_send_welcome_message),
10340         (bus_driver_handle_list_services):
10341         * bus/session.conf.in:
10342         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10343         (dbus_bus_service_exists), (dbus_bus_activate_service):
10344         * dbus/dbus-bus.h:
10345
10346         Add some convenience API which lets you activate a service, and did a
10347         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10348         and dbus_message_get_args()
10349
10350 2003-05-11  Havoc Pennington  <hp@pobox.com>
10351
10352         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10353         calling _dbus_marshal_validate_arg() for every byte in a byte
10354         array, etc.
10355
10356         * dbus/dbus-message-handler.c: use atomic reference counting to
10357         reduce number of locks slightly; the global lock in here sucks
10358
10359         * dbus/dbus-connection.c
10360         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10361         update_dispatch_status that can be called with lock held; then use
10362         in a couple places to reduce locking/unlocking
10363         (dbus_connection_send): hold the lock over the whole function
10364         instead of acquiring it twice.
10365
10366         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10367
10368         * bus/connection.c (bus_connections_setup_connection): fix access
10369         to already-freed memory.
10370
10371         * dbus/dbus-connection.c: keep a little cache of linked list
10372         nodes, to avoid using the global linked list alloc lock in the
10373         normal send-message case. Instead we just use the connection lock
10374         that we already have to take.
10375
10376         * dbus/dbus-list.c (_dbus_list_find_last): new function
10377
10378         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10379         change to use a struct for the atomic type; fix docs,
10380         they return value before increment, not after increment.
10381
10382         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10383         (_dbus_string_append_8_aligned): new functions to try to
10384         microoptimize this operation.
10385         (reallocate_for_length): break this out of set_length(), to
10386         improve profile info, and also so we can consider inlining the
10387         set_length() part.
10388
10389         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10390         strings with some preallocation, cuts down on our calls to realloc
10391         a fair bit. Though if we can get the "move entire string to empty
10392         string" optimization below to kick in here, it would be better.
10393
10394         * dbus/dbus-string.c (_dbus_string_move): just call
10395         _dbus_string_move_len
10396         (_dbus_string_move_len): add a special case for moving
10397         an entire string into an empty string; we can just
10398         swap the string data instead of doing any reallocs.
10399         (_dbus_string_init_preallocated): new function
10400
10401 2003-05-11  Havoc Pennington  <hp@pobox.com>
10402
10403         Write a "test-profile" that does echo client-server with threads;
10404         profile reveals lock contention, memcpy/realloc of buffers, and
10405         UTF-8 validation as hot spots. 20% of lock contention eliminated
10406         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10407         contention is global mempool locks for GList and DBusList.
10408
10409         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10410         x86 implementation
10411
10412         * dbus/dbus-connection.c (struct DBusConnection): use
10413         dbus_atomic_t for the reference count
10414
10415         * dbus/dbus-message.c (struct DBusMessage): declare
10416         dbus_atomic_t values as volatile
10417
10418         * configure.in: code to detect ability to use atomic integer
10419         operations in assembly, from GLib patch
10420
10421         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10422         time, tired of it being wrong in threads and forked processes
10423
10424         * glib/test-profile.c: a little program to bounce messages back
10425         and forth between threads and eat CPU
10426
10427         * dbus/dbus-connection.c: add debug spew macros for debugging
10428         thread locks; include config.h at top; fix deadlock in
10429         dbus_connection_flush()
10430
10431 2003-05-08  Havoc Pennington  <hp@pobox.com>
10432
10433         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10434         data from getting written, and there wasn't a good reason to
10435         use _exit really.
10436
10437         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10438         dbus_verbose lines in test coverage
10439         (main): add list of functions sorted by # of untested blocks
10440         to the coverage report
10441
10442         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10443
10444         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10445
10446         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10447         extend test coverage
10448
10449         * test/data/auth/cancel.auth-script: test canceling an
10450         authentication
10451
10452         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10453         aren't used. in CVS history if we end up needing them.
10454
10455 2003-05-04  Havoc Pennington  <hp@pobox.com>
10456
10457         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10458         unit test
10459
10460         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10461         function, which assumed length was in # of strings, not bytes
10462
10463         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10464         missing coverage
10465
10466         * dbus/dbus-connection.c
10467         (_dbus_connection_queue_received_message): disable function for
10468         now, we are only using it in test mode
10469
10470         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10471         remove a mistaken FIXME
10472
10473 2003-05-04  Havoc Pennington  <hp@pobox.com>
10474
10475         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10476         unlock mutex on successful return, patch from Anders Gustafsson
10477
10478 2003-05-04  Havoc Pennington  <hp@pobox.com>
10479
10480         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10481         Anders Gustafsson
10482
10483 2003-05-04  Havoc Pennington  <hp@pobox.com>
10484
10485         * tools/dbus-launch.c: implement
10486
10487         * bus/main.c (main), bus/bus.c (bus_context_new):
10488         implement --print-pid and --fork
10489
10490 2003-05-03  Havoc Pennington  <hp@redhat.com>
10491
10492         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10493         the address had no value, and add to test suite. Fix and
10494         regression test from Miloslav Trmac
10495
10496 2003-05-03  Havoc Pennington  <hp@pobox.com>
10497
10498         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10499         watch is invalid when handled
10500
10501         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10502         dbus-launch utility to launch the bus from a shell script.  Didn't
10503         actually implement dbus-launch yet, it's just a placeholder still.
10504
10505 2003-05-03  Havoc Pennington  <hp@pobox.com>
10506
10507         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10508         daemon; also documents daemon config file, so replaces
10509         doc/config-file.txt. Corrected some stuff from config-file.txt in
10510         the process of moving it.
10511
10512 2003-05-03  Havoc Pennington  <hp@pobox.com>
10513
10514         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10515         add some man pages
10516
10517 2003-05-03  Colin Walters  <walters@verbum.org>
10518
10519         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10520         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10521
10522         * Makefile.am: Update to use new .pc versioning scheme.
10523
10524 2003-05-02  Havoc Pennington  <hp@redhat.com>
10525
10526         * bus/system.conf.in: allow send/receive to/from message bus
10527         service
10528
10529 2003-04-30  Havoc Pennington  <hp@redhat.com>
10530
10531         * configure.in: print a note when building with unit tests and
10532         without assertions
10533
10534 2003-04-30  Havoc Pennington  <hp@redhat.com>
10535
10536         * Makefile.am: add a check-local that complains if you didn't
10537         configure with --enable-tests
10538
10539 2003-04-29  Havoc Pennington  <hp@redhat.com>
10540
10541         * glib/dbus-gmain.c: docs cleanups
10542
10543         * dbus/dbus-types.h: add docs on int64 types
10544
10545         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10546         public API docs section
10547
10548 2003-04-29  Havoc Pennington  <hp@redhat.com>
10549
10550         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10551         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10552         parallel install API version, not with the D-BUS package version.
10553
10554         * HACKING: move some of README over here
10555
10556         * README: updates, and document API/ABI policy
10557
10558         * configure.in: reindentation
10559
10560 2003-04-29  Havoc Pennington  <hp@redhat.com>
10561
10562         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10563         to use this library" to be sure people have the right
10564         expectations.
10565
10566 2003-04-28  Havoc Pennington  <hp@redhat.com>
10567
10568         * configure.in: add --enable-docs which by default is auto yes if
10569         doxygen and db2html found, no otherwise; but can be forced on/off
10570
10571         * doc/Makefile.am: conditionalize whether to build docs on
10572         --enable-docs
10573
10574 2003-04-28  Havoc Pennington  <hp@redhat.com>
10575
10576         * configure.in: 0.10
10577
10578         * NEWS: update
10579
10580         * bus/system.conf.in: add <includedir>system.d</includedir>
10581
10582         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10583         username was provided but not uid
10584
10585         * bus/config-parser.c (struct BusConfigParser): keep track of
10586         whether the parser is toplevel or was included; change some
10587         of the error handling if it's included.
10588
10589 2003-04-27  Havoc Pennington  <hp@pobox.com>
10590
10591         Unbreak my code...
10592
10593         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10594         report correct status if we finish processing authentication
10595         inside this function.
10596
10597         * bus/activation.c (try_send_activation_failure): use
10598         bus_transaction_send_error_reply
10599
10600         * bus/connection.c (bus_connection_get_groups): return an error
10601         explaining the problem
10602
10603         * bus/bus.c (bus_context_check_security_policy): implement
10604         restriction here that inactive connections can only send the
10605         hello message. Also, allow bus driver to send anything to
10606         any recipient.
10607
10608         * bus/connection.c (bus_connection_complete): create the
10609         BusClientPolicy here instead of on-demand.
10610         (bus_connection_get_policy): don't return an error
10611
10612         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10613         sender field in message being replied to
10614
10615         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10616         causing it to return FALSE always
10617
10618         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10619         we checked sender rather than destination
10620
10621 2003-04-25  Havoc Pennington  <hp@redhat.com>
10622
10623         test suite is slightly hosed at the moment, will fix soon
10624
10625         * bus/connection.c (bus_connections_expire_incomplete): fix to
10626         properly disable the timeout when required
10627         (bus_connection_set_name): check whether we can remove incomplete
10628         connections timeout after we complete each connection.
10629
10630         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10631         probably still broken.
10632
10633         * bus/services.c (bus_registry_acquire_service): implement max
10634         number of services owned, and honor allow/deny rules on which
10635         services a connection can own.
10636
10637         * bus/connection.c (bus_connection_get_policy): report errors here
10638
10639         * bus/activation.c: implement limit on number of pending
10640         activations
10641
10642 2003-04-25  Havoc Pennington  <hp@redhat.com>
10643
10644         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10645         where we used >= 0 instead of != DBUS_UID_UNSET.
10646
10647 2003-04-25  Havoc Pennington  <hp@redhat.com>
10648
10649         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10650         were toggled without add/remove, fix from Anders Gustafsson
10651
10652 2003-04-24  Havoc Pennington  <hp@redhat.com>
10653
10654         * test/data/valid-config-files/basic.conf: add <limit> tags to
10655         this test
10656
10657         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10658         <limit> tag in configuration file.
10659
10660 2003-04-24  Havoc Pennington  <hp@redhat.com>
10661
10662         * bus/dispatch.c: somehow missed some name_is
10663
10664         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10665         (_dbus_timeout_set_interval): new
10666
10667         * bus/connection.c (bus_connections_setup_connection): record time
10668         when each connection is first set up, and expire them after the
10669         auth timeout passes.
10670
10671 2003-04-24  Havoc Pennington  <hp@redhat.com>
10672
10673         * dbus/dbus-message.c (dbus_message_name_is): rename
10674         (dbus_message_service_is): rename
10675         (dbus_message_sender_is): rename
10676         (dbus_message_get_service): rename
10677
10678 2003-04-24  Havoc Pennington  <hp@redhat.com>
10679
10680         * configure.in: add --enable-checks
10681
10682         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10683
10684         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10685         to use thread locks.
10686         (_dbus_connection_handler_destroyed_locked): move some private
10687         functions into proper docs group
10688
10689         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10690         _dbus_return_val_if_fail
10691
10692         Throughout: use dbus_return_if_fail
10693
10694 2003-04-23  James Willcox  <jwillcox@gnome.org>
10695
10696         * glib/dbus-glib.h:
10697         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10698         (dbus_connection_setup_with_g_main),
10699         (dbus_server_setup_with_g_main):
10700         * glib/test-dbus-glib.c: (main):
10701         * glib/test-thread-client.c: (main):
10702         * glib/test-thread-server.c: (new_connection_callback), (main):
10703         * tools/dbus-monitor.c: (main):
10704
10705         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10706         and dbus_server_setup_with_g_main().
10707
10708 2003-04-20  Havoc Pennington  <hp@pobox.com>
10709
10710         * doc/dbus-specification.sgml: document the restrictions on
10711         message and service names
10712
10713 2003-04-22  Havoc Pennington  <hp@redhat.com>
10714
10715         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10716         support, and do some code cleanups to share more code and
10717         speed up array marshal/demarshal.
10718
10719         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10720
10721         * configure.in: generate dbus-arch-deps.h
10722
10723         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10724         64-bit typecodes
10725
10726 2003-04-22  Havoc Pennington  <hp@redhat.com>
10727
10728         * test/data/valid-messages/opposite-endian.message: fix test
10729         to use proper type for rply field
10730
10731         * test/data/invalid-messages: add tests for below validation
10732
10733         * dbus/dbus-message.c (decode_header_data): validate field types,
10734         and validate that named fields are valid names
10735         (decode_name_field): consider messages in the
10736         org.freedesktop.Local. namespace to be invalid.
10737
10738         * dbus/dbus-string.c (_dbus_string_validate_name): new
10739
10740 2003-04-19  Havoc Pennington  <hp@pobox.com>
10741
10742         * bus/driver.c (bus_driver_handle_hello): check limits and
10743         return an error if they are exceeded.
10744
10745         * bus/connection.c: maintain separate lists of active and inactive
10746         connections, and a count of each. Maintain count of completed
10747         connections per user. Implement code to check connection limits.
10748
10749         * dbus/dbus-list.c (_dbus_list_unlink): export
10750
10751         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10752         number of bytes in the message queue for a connection
10753
10754 2003-04-18  Havoc Pennington  <hp@pobox.com>
10755
10756         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10757
10758         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10759         memleaks
10760
10761         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10762         on realloc be sure to update the pointer in the keyring
10763
10764         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10765         offset to avoid writing to unallocated memory
10766
10767         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10768         try the next mechanism, so we properly handle OOM
10769
10770         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10771         on OOM.
10772         (_dbus_keyring_new): fix OOM bug
10773         (_dbus_keyring_new_homedir): always set error; impose a maximum
10774         number of keys we'll load from the file, mostly to speed up the
10775         test suite and make its OOM checks more useful, but also for
10776         general sanity.
10777
10778         * dbus/dbus-auth.c (process_error_server): reject authentication
10779         if we get an error from the client
10780         (process_cancel): on cancel, send REJECTED, per the spec
10781         (process_error_client): send CANCEL if we get an error from the
10782         server.
10783
10784 2003-04-18  Havoc Pennington  <hp@pobox.com>
10785
10786         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10787         debug spew
10788
10789         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10790         handling problem
10791
10792         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10793         about DBUS_TEST_HOMEDIR once
10794
10795         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10796         the environment
10797
10798         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10799         config file so we test the right thing
10800
10801         Throughout: assorted docs improvements
10802
10803 2003-04-18  Havoc Pennington  <hp@pobox.com>
10804
10805         * glib/dbus-gmain.c: adapt to watch changes
10806
10807         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10808
10809         * dbus/dbus-server.h: remove dbus_server_handle_watch
10810
10811         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10812
10813         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10814         like DBusTimeout, so we don't need dbus_connection_handle_watch
10815         etc.
10816
10817 2003-04-17  Havoc Pennington  <hp@redhat.com>
10818
10819         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10820         database usage so it all goes via the DBusUserDatabase cache.
10821
10822 2003-04-17  Havoc Pennington  <hp@redhat.com>
10823
10824         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10825         there was an OOM watch we skipped, we always return TRUE so we
10826         iterate again to have a look at it again. Fixes test suite hang.
10827         Code rearrangement also lets us lose some memset and only iterate
10828         over callbacks once.
10829
10830         * bus/driver.c (bus_driver_handle_message): sense of test for
10831         reply was backward
10832
10833 2003-04-16  Havoc Pennington  <hp@pobox.com>
10834
10835         * doc/dbus-specification.sgml: make spec say serials are unsigned
10836
10837         * dbus/dbus-message.h: change message serials to unsigned
10838
10839         * dbus/dbus-connection.c: adapt to message serials being unsigned
10840
10841 2003-04-15  Havoc Pennington  <hp@pobox.com>
10842
10843         * bus/bus.c: create and keep around a shared DBusUserDatabase
10844         object.
10845
10846         * bus/connection.c (bus_connection_get_groups): don't cache
10847         groups for user in the connection object, since user database
10848         object now does that.
10849
10850 2003-04-16  Havoc Pennington  <hp@redhat.com>
10851
10852         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10853         list of size counters
10854         (_dbus_message_loader_putback_message_link): put back a popped link
10855
10856         * dbus/dbus-connection.c
10857         (dbus_connection_set_max_live_messages_size): rename
10858         max_received_size
10859         (dbus_connection_get_outgoing_size): get size of outgoing
10860         queue
10861         (_dbus_connection_set_connection_counter): remove this cruft
10862
10863 2003-04-14  Havoc Pennington  <hp@redhat.com>
10864
10865         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10866         caching, but at some point we might want to be able to use a
10867         different database.
10868
10869         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10870         SHA1 conf file to test the sha1 auth mechanism, since the regular
10871         test always uses EXTERNAL when available.
10872
10873         * configure.in,
10874         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10875         add conf file that requires use of sha1 auth
10876
10877 2003-04-13  Havoc Pennington  <hp@pobox.com>
10878
10879         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10880         from Philip Blundell to send messages and monitor them.
10881
10882 2003-04-13  Havoc Pennington  <hp@pobox.com>
10883
10884         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10885         callbacks
10886
10887         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10888         users
10889
10890         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10891         fix to only recover unused bytes if we're already authenticated
10892         (_dbus_transport_get_is_authenticated): fix to still mark us
10893         authenticated if there are unused bytes.
10894
10895         * bus/dispatch.c: implement security policy checking
10896
10897         * bus/connection.c (bus_transaction_send_from_driver): new
10898
10899         * bus/bus.c (bus_context_check_security_policy): new
10900
10901         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10902         now we just set the DBusError and it gets converted to an error
10903         reply.
10904
10905         * bus/connection.c (allow_user_function): enable code using actual
10906         data from the config file
10907
10908         * bus/policy.c (list_allows_user): handle wildcard rules for
10909         user/group connection perms
10910
10911 2003-04-13  Havoc Pennington  <hp@pobox.com>
10912
10913         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10914
10915         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10916
10917         * bus/policy.c (bus_policy_append_mandatory_rule)
10918         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10919         (bus_policy_append_group_rule): new functions
10920
10921 2003-04-12  Havoc Pennington  <hp@pobox.com>
10922
10923         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10924
10925         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10926         the pid/gid/uid, just for paranoia.
10927
10928         * test/break-loader.c (randomly_do_n_things): find a byte
10929         containing a type code, and randomly change it to a different
10930         type code.
10931
10932 2003-04-12  Havoc Pennington  <hp@pobox.com>
10933
10934         * bus/policy.h: change BusPolicy to be the thing from the config
10935         file, and rename old BusPolicy to BusClientPolicy
10936
10937         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10938         match change in how policy works
10939
10940         * dbus/dbus-internals.h: mark assert_not_reached as
10941         __attribute((noreturn))__
10942
10943 2003-04-11  Havoc Pennington  <hp@redhat.com>
10944
10945         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10946         the broadcast service. Use boolean return for ServiceExists.
10947
10948 2003-04-11  Havoc Pennington  <hp@redhat.com>
10949
10950         * configure.in: add another directory to look for qt in.
10951
10952 2003-04-11  Havoc Pennington  <hp@redhat.com>
10953
10954         * AUTHORS: add Colin Walters
10955
10956 2003-04-11  Havoc Pennington  <hp@redhat.com>
10957
10958         * NEWS: update
10959
10960         * configure.in: 0.9
10961
10962 2003-04-11  Havoc Pennington  <hp@redhat.com>
10963
10964         * bus/messagebus.in: remove pid file when stopping the
10965         message bus, since the bus won't have privileges to remove it
10966         itself.
10967
10968 2003-04-11  Havoc Pennington  <hp@redhat.com>
10969
10970         * bus/bus.c (bus_context_new): move credentials change after
10971         creating pidfile
10972
10973 2003-04-11  Havoc Pennington  <hp@pobox.com>
10974
10975         * test/decode-gcov.c: add "below average functions" to the
10976         coverage report, and change how some of the code works.
10977
10978         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10979         not in the coverage stats.
10980
10981         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10982         couple places so running the test suite doesn't result in megaspam.
10983
10984 2003-04-11  Havoc Pennington  <hp@pobox.com>
10985
10986         * bus/dispatch.c (check_existent_service_activation): accept a no
10987         memory error in a place we didn't before
10988
10989         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10990         in case the first one failed," since the test suite is less
10991         broken now.
10992
10993 2003-04-10  Havoc Pennington  <hp@pobox.com>
10994
10995         * bus/dispatch.c (check_segfault_service_activation): add test
10996         for launching an executable that just crashes.
10997
10998         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10999         don't leave a million cores. We'll see how portable this is.
11000
11001 2003-04-10  Havoc Pennington  <hp@pobox.com>
11002
11003         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11004         the possible parent failures before we fork, so that we don't
11005         fail to create a babysitter after creating the child.
11006
11007         * bus/activation.c (bus_activation_activate_service): kill child
11008         if we don't successfully complete the activation.
11009
11010 2003-04-10  Havoc Pennington  <hp@redhat.com>
11011
11012         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11013         the connection if it's disconnected
11014
11015         * bus/activation.c (bus_activation_service_created): use new
11016         transaction features to roll back removal of pending activation if
11017         we don't successfully create the service after all. Don't remove
11018         pending activation if the function fails.
11019
11020         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11021         (_dbus_list_insert_after_link): new code to facilitate
11022         services.c fixes
11023
11024         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11025         new functionality, so we can preallocate the ability to insert
11026         into a hash table.
11027
11028         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11029         allowing us to put custom hooks in a transaction to be used for
11030         cancelling said transaction
11031
11032         * doc/dbus-specification.sgml: add some discussion of secondary
11033         service owners, and disallow zero-length service names
11034
11035         * bus/services.c (bus_registry_acquire_service): new function,
11036         splits out part of bus_driver_handle_acquire_service() and fixes
11037         a bug where we didn't remove the service doing the acquiring
11038         from the secondary queue if we failed to remove the current owner
11039         from the front of the queue.
11040
11041 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11042
11043         * doc/dbus-specification.sgml:
11044         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11045
11046 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11047
11048         * bus/.cvsignore:
11049         * glib/.cvsignore:
11050         * test/.cvsignore:
11051         Added files to cvsignore
11052
11053         * dbus/dbus-message.h:
11054         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11055         Make get_named() take two out argument and return a boolean.
11056         (dbus_message_iter_get_args_valist):
11057         Update usage of get_named().
11058         (dbus_message_iter_append_byte):
11059         Fix typo
11060         (dbus_message_iter_append_named)
11061         Fix typo
11062         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11063         More tests.
11064
11065 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11066
11067         * dbus/dbus-marshal.[ch]:
11068         Add array_type_pos argument to _dbus_marshal_validate_arg.
11069         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11070
11071         * dbus/dbus-message.[ch]:
11072         Multi-dimensional arrays have full type specification in the
11073         outermost array. Iter code re-arranged to handle this.
11074         Added some more iter tests.
11075
11076         * doc/dbus-specification.sgml:
11077         Add me to authors.
11078         Remove old FIXME.
11079         Update new array encoding description.
11080         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11081
11082         * test/data/invalid-messages/array-with-mixed-types.message:
11083         * test/data/valid-messages/array-of-array-of-uint32.message:
11084         Change to the new array format.
11085
11086         * test/data/invalid-messages/too-short-dict.message:
11087         Fix bug in test.
11088
11089         * test/data/valid-messages/recursive-types.message:
11090         Fix up and extend test.
11091
11092 2003-04-10  Havoc Pennington  <hp@pobox.com>
11093
11094         * bus/dispatch.c: lots of fixes
11095
11096         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11097         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11098         that was crack, broke the test service.
11099
11100         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11101         handling to avoid piling up errors if we get a failure on the
11102         first address.
11103
11104         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11105         pid in assertion failures.
11106
11107         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11108         to some fixed size of file descriptor array. Don't return TRUE
11109         anytime a timeout exists, that led to lots of busy loop silliness
11110         in the tests.
11111
11112 2003-04-09  Havoc Pennington  <hp@redhat.com>
11113
11114         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11115         I'd checked this in earlier but hadn't.
11116
11117 2003-04-09  Havoc Pennington  <hp@redhat.com>
11118
11119         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11120         the activation test (man this is getting old!)
11121
11122 2003-04-09  Havoc Pennington  <hp@redhat.com>
11123
11124         * test/test-utils.c: use dispatch status function to fix this up
11125
11126         * bus/connection.c (connection_watch_callback): don't dispatch
11127         from here
11128         (connection_timeout_callback): don't dispatch from here
11129         (bus_connections_setup_connection): set the dispatch status function
11130         (bus_connection_disconnected): unset it
11131
11132         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11133         used to add a connection to be dispatched
11134         (_dbus_loop_iterate): do the dispatching at the end of each
11135         iteration
11136
11137         * dbus/dbus-connection.c
11138         (dbus_connection_set_dispatch_status_function): new function
11139         allowing us to fix up main loop usage
11140         (_dbus_connection_last_unref): free all the various function
11141         user data
11142         (dbus_connection_dispatch): call the DispatchStatusFunction
11143         whenever this function returns
11144         (dbus_connection_handle_watch): call DispatchStatusFunction
11145         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11146         (reply_handler_timeout): call DispatchStatusFunction
11147         (dbus_connection_flush): call DispatchStatusFunction
11148
11149 2003-04-09  Havoc Pennington  <hp@redhat.com>
11150
11151         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11152         a memory leak
11153
11154         * bus/dispatch.c (check_service_activated): fix bug in test
11155
11156         * dbus/dbus-mainloop.c (check_timeout): fix this up
11157
11158         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11159         verbose output so we can sort out output from different processes,
11160         e.g. in the activation case.
11161
11162 2003-04-08  Colin Walters  <walters@gnu.org>
11163
11164         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11165         the pid file.
11166         (bus_context_new): Set it.
11167         (bus_context_unref): Use it to delete the pid file.
11168
11169 2003-04-08  Havoc Pennington  <hp@redhat.com>
11170
11171         * test/data/invalid-messages/array-with-mixed-types.message:
11172         regression test that fails for the moment
11173
11174         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11175         tests for convenience
11176
11177         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11178         array of nil, it broke things.
11179
11180         * test/data/invalid-messages/array-of-nil.message: regression test
11181
11182         * test/data/valid-messages/array-of-array-of-uint32.message:
11183         happened to write this so added it to suite
11184
11185 2003-04-08  Havoc Pennington  <hp@redhat.com>
11186
11187         * bus/driver.c (bus_driver_handle_acquire_service): init
11188         retval/reply before checking name
11189
11190         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11191         recursion depth argument
11192
11193         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11194         in the public struct for future extension
11195
11196         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11197         typo
11198
11199         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11200         message
11201
11202         * doc/dbus-specification.sgml: fix typo
11203
11204 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11205
11206         Implemented recursive types, named types and new-style iters
11207
11208         * bus/driver.c:
11209         * glib/test-thread-client.c: (thread_func):
11210         * glib/test-thread-server.c: (handle_test_message):
11211         * test/test-service.c: (handle_echo):
11212         Update to new api
11213
11214         * dbus/Makefile.am:
11215         * dbus/dbus-dict.c:
11216         * dbus/dbus-dict.h:
11217         * dbus/dbus.h
11218         Remove DBusDict
11219
11220         * dbus/dbus-internals.c: (_dbus_type_to_string):
11221         Update for new types.
11222
11223         * dbus/dbus-marshal.[ch]:
11224         Implement recursive types and the new marshalling format.
11225         Remove hardcoded dict marshalling.
11226         Marshal named types.
11227
11228         * dbus/dbus-message-builder.c:
11229         Add BYTE_ARRAY.
11230         Remove references to old types
11231
11232         * dbus/dbus-message.[ch]:
11233         New non-refcounted iter API that supports recursive iters.
11234         Use iters for appending, including support for recursive
11235         iters.
11236         Add byte and named type support.
11237         Update everything to new marshalling formats.
11238         Add tests for new API.
11239
11240         * dbus/dbus-protocol.h:
11241         Remove old array types.
11242         Add types: BYTE, ARRAY, DICT, NAMED
11243
11244         * dbus/dbus-string.c:
11245         * dbus/dbus-sysdeps.c:
11246         Make parse_double locale safe.
11247
11248         * dbus/dbus-test-main.c:
11249         Call setlocale.
11250
11251         * dbus/dbus-test.c:
11252         Kill dict test
11253
11254         * doc/dbus-specification.sgml:
11255         Update spec
11256
11257         * test/data/incomplete-messages/missing-body.message:
11258         * test/data/invalid-messages/bad-boolean.message:
11259         * test/data/invalid-messages/bad-boolean-array.message:
11260         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11261         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11262         * test/data/invalid-messages/too-short-dict.message:
11263         * test/data/valid-messages/dict-simple.message:
11264         * test/data/valid-messages/dict.message:
11265         * test/data/valid-messages/emptiness.message:
11266         * test/data/valid-messages/lots-of-arguments.message:
11267         * test/data/valid-messages/no-padding.message:
11268         * test/data/valid-messages/recursive-types.message:
11269         Add missing NAME fields
11270         Fix up dicts & arrays
11271
11272         * test/data/invalid-messages/dict-with-nil-value.message:
11273         Removed, this is not invalid anymore.
11274
11275         * test/data/valid-messages/recursive-types.message:
11276         Add new test for deeply recursive types.
11277
11278 2003-04-07  Havoc Pennington  <hp@pobox.com>
11279
11280         * bus/driver.c (bus_driver_handle_acquire_service): return an
11281         error if you try to acquire a service that starts with ':'
11282
11283 2003-04-07  Havoc Pennington  <hp@redhat.com>
11284
11285         * doc/dbus-specification.sgml: require that base service names
11286         start with ':' and that the base service is created/deleted
11287         as first and last things a connection does on the bus
11288
11289         * bus/dispatch.c (check_existent_service_activation): lots more
11290         work on the activation test; it doesn't fully pass yet...
11291
11292         * test/test-service.c (main): fix so we don't memleak the
11293         connection to the message bus
11294         (filter_func): accept a message asking us to exit
11295
11296 2003-04-06  Havoc Pennington  <hp@pobox.com>
11297
11298         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11299         from Colin Walters
11300
11301         * configure.in: fixes to Qt detection from Colin Walters
11302
11303         * doc/Makefile.am: Only remove generated docbook dirs if they
11304         exist, from Colin Walters
11305
11306         * dbus/dbus-bus.c: change how we set well-known connections to
11307         NULL, so that it works if a single connection is stored in
11308         two well-known array slots.
11309
11310         * test/Makefile.am: remove a lot of stuff that isn't immediately
11311         useful, it's in CVS history if we want it.
11312
11313         * test/test-service.c: use dbus-mainloop instead of that
11314         watch.[hc] crack
11315
11316 2003-04-06  Havoc Pennington  <hp@pobox.com>
11317
11318         * dbus/Makefile.am: split lists of sources into stuff that goes in
11319         the library, util functions that go in the lib and are also used
11320         elsewhere, and util functions that are used in tests/daemon but
11321         don't go in the lib.
11322
11323         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11324         here so it can be used in test binaries also
11325
11326 2003-04-06  Havoc Pennington  <hp@pobox.com>
11327
11328         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11329         here in the parent process, so we can return an error if it
11330         fails. Also, move some of the code into the child so the parent
11331         is less hosed if we fail midway through.
11332
11333         * bus/bus.c (bus_context_new): move pidfile detection further up
11334         in the function, before we start overwriting sockets and such.
11335
11336         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11337
11338         * configure.in: add --with-system-pid-file and --with-system-socket
11339
11340 2003-04-06  Colin Walters  <walters@verbum.org>
11341
11342         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11343
11344         * bus/system.conf.in: Declare a pidfile.
11345
11346         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11347         create one (if appropriate).
11348
11349         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11350         (struct BusConfigParser) [pidfile]: New.
11351         (element_type_to_name, merge_included, start_busconfig_child)
11352         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11353         (bus_config_parser_unref): Free it.
11354         (bus_config_parser_get_pidfile): New function.
11355
11356         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11357
11358         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11359
11360         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11361
11362         * dbus/dbus-sysdeps.h: Prototype it.
11363
11364 2003-04-06  Havoc Pennington  <hp@pobox.com>
11365
11366         * bus/bus.c (bus_context_new): print the address in here, rather
11367         than in main(), because we need to do it before forking the daemon
11368
11369         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11370         on the service nonexistent error
11371
11372         * bus/driver.c (bus_driver_handle_acquire_service): set the
11373         sender on the AcquireService reply
11374
11375         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11376         server also listen on a UNIX socket so services can connect to it.
11377
11378 2003-04-06  Havoc Pennington  <hp@pobox.com>
11379
11380         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11381         so it detects deadlocks and also we actually init threads when
11382         debugging.
11383
11384 2003-04-06  Havoc Pennington  <hp@pobox.com>
11385
11386         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11387         save the domain socket name, and unlink it when we disconnect the
11388         server. Means that at least when we exit normally, we won't leave
11389         a bunch of junk in /tmp
11390
11391         * dbus/dbus-transport-unix.c
11392         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11393         memory management). (I was making a real change here but then
11394         didn't)
11395
11396 2003-04-06  Havoc Pennington  <hp@pobox.com>
11397
11398         * bus/bus.c (bus_context_new): fix wrong handling of
11399         server_data_slot_unref() in the error case.
11400
11401         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11402         "(condition) != 0" to _dbus_real_assert so that
11403         "_dbus_assert (pointer)" doesn't cause a warning
11404
11405         * bus/main.c (main): accept --print-address option to print out
11406         the message bus address
11407
11408         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11409
11410         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11411         "tmpdir" option to unix: address on client side
11412
11413         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11414         to unix: address
11415
11416         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11417         we can use to create sockets in the test suite.
11418
11419         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11420         cleanly. To be used for testing.
11421
11422         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11423
11424         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11425
11426         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11427         handle trying to call this when there's no servers active
11428
11429 2003-04-05  Havoc Pennington  <hp@pobox.com>
11430
11431         * NEWS: update
11432
11433         * configure.in: 0.8
11434
11435 2003-04-05  Havoc Pennington  <hp@pobox.com>
11436
11437         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11438         crash on startup. Need to get "try starting the daemon"
11439         in the test suite I guess. ;-)
11440
11441         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11442         tracked the number of open connections; it's better done in
11443         application-specific code as you want it to span all servers etc.
11444
11445 2003-04-05  Havoc Pennington  <hp@pobox.com>
11446
11447         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11448         patch from Colin Walters
11449
11450 2003-04-05  Havoc Pennington  <hp@pobox.com>
11451
11452         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11453         reality; in fact multiple mechanisms are allowed.
11454
11455         * dbus/dbus-internals.c (_dbus_real_assert)
11456         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11457         _dbus_assert_not_reached() into functions, so that they don't show
11458         up in basic block counts for test coverage, and don't use up as
11459         much disk space. Does mean slower execution speed though, so
11460         assumes --disable-asserts is the normal production case.
11461
11462 2003-04-05  Havoc Pennington  <hp@pobox.com>
11463
11464         * test/Makefile.am (dist-hook): also dist *.in files
11465
11466         * NEWS: update
11467
11468         * configure.in: 0.7
11469
11470 2003-04-05  Havoc Pennington  <hp@pobox.com>
11471
11472         * dbus/dbus-string.c: docs warning
11473
11474         * dbus/dbus-spawn.c: missing docs
11475
11476         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11477
11478 2003-04-05  Havoc Pennington  <hp@pobox.com>
11479
11480         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11481         magic from GLib
11482
11483         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11484         to -1 once we've reaped the babysitter
11485         (_dbus_babysitter_handle_watch): do as much work as we can, not
11486         just one go of it
11487
11488         * bus/activation.c: add code using DBusBabysitter so that we
11489         handle it when a service fails to start up properly.
11490         (bus_activation_service_created): don't remove the activation
11491         entries as we go, just let them get removed when we free the pending
11492         activation. Unref reply messages after sending them.
11493
11494 2003-04-05  Havoc Pennington  <hp@pobox.com>
11495
11496         * test/decode-gcov.c (main): print per-directory stats in the report
11497
11498         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11499
11500 2003-04-05  Havoc Pennington  <hp@pobox.com>
11501
11502         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11503
11504         * test/decode-gcov.c: hack up a little program to suck data
11505         out of gcov files. Yes this is sort of silly.
11506
11507         * configure.in: define something in config.h and do an
11508         AM_CONDITIONAL when gcov is enabled
11509
11510 2003-04-04  Havoc Pennington  <hp@redhat.com>
11511
11512         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11513         return a "babysitter" object that is used to monitor the status of
11514         the spawned process and reap it when required.
11515
11516         * test/test-segfault.c, test/test-exit.c,
11517         test/test-sleep-forever.c: binaries that do various lame things,
11518         used in the test suite.
11519
11520         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11521
11522 2003-04-03  Havoc Pennington  <hp@pobox.com>
11523
11524         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11525         in preparation for modifying it, dbus-sysdeps is getting
11526         a bit unmanageable.
11527
11528 2003-04-03  Havoc Pennington  <hp@redhat.com>
11529
11530         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11531         have multiple ones
11532
11533         * bus/*.[hc]: adapt to mainloop change
11534
11535 2003-04-03  Havoc Pennington  <hp@redhat.com>
11536
11537         * bus/activation.c (load_directory): fix up memleaks
11538         (bus_activation_entry_free): free the entry
11539
11540         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11541         we get one from the message bus; fix memleaks.
11542
11543         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11544
11545 2003-04-03  Havoc Pennington  <hp@pobox.com>
11546
11547         * bus/config-parser.c (bus_config_parser_unref): free
11548         list of mechanisms, bug discovered by test suite enhancements
11549         (putting system.conf and session.conf into suite)
11550
11551         * test/Makefile.am, test/test-service.c: add placeholder for a
11552         test service that we'll activate as part of test suite. Doesn't
11553         do anything yet.
11554
11555         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11556         setting NULL value, and use system malloc not dbus_malloc()
11557         when we have unavoidable memleakage.
11558
11559         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11560         didn't work, and support DBUS_BUS_ACTIVATION.
11561
11562         * bus/activation.c (child_setup): pass our well-known bus type to
11563         the child
11564
11565         * bus/config-parser.c: support <type> to specify well-known type
11566
11567         * doc/dbus-specification.sgml: document the env variables to
11568         locate well-known buses and find service activator
11569
11570 2003-04-02  Havoc Pennington  <hp@redhat.com>
11571
11572         * test/Makefile.am (all-local): add a rule to copy tests to
11573         builddir, so we can have generated tests. Use this to remove the
11574         silly hack for testing system.conf and session.conf. Will use this
11575         shortly to generate .service files pointing to test binaries.
11576
11577 2003-04-02  Havoc Pennington  <hp@redhat.com>
11578
11579         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11580         current alloc and needed new length, not max of the doubled
11581         allocation and needed new length. Also, when building tests,
11582         don't do the double-allocation stuff, just realloc every time.
11583
11584 2003-04-02  Havoc Pennington  <hp@redhat.com>
11585
11586         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11587         in error messages
11588         (_dbus_string_get_dirname): new
11589         (_dbus_sysdeps_test): new
11590         (_dbus_directory_open): include dirnames in error messages
11591
11592         * bus/config-parser.c: interpret <include> and <includedir> and
11593         <servicedir> relative to config file location if the given
11594         filename is not absolute.
11595
11596         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11597
11598 2003-04-02  Havoc Pennington  <hp@redhat.com>
11599
11600         * bus/connection.c (bus_transaction_send_error_reply): set sender
11601         service for the error, and unref the reply on success
11602
11603         * bus/activation.c: convert to use BusTransaction so OOM can be
11604         handled correctly
11605         (bus_activation_service_created): set sender of the message
11606
11607 2003-04-01  Havoc Pennington  <hp@redhat.com>
11608
11609         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11610         <includedir> (at least mostly)
11611
11612         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11613         first, then the user ID
11614
11615 2003-04-01  Havoc Pennington  <hp@pobox.com>
11616
11617         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11618         function
11619
11620         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11621
11622         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11623
11624         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11625         socket 0777, and unlink any existing socket.
11626
11627         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11628         the configuration file so specifies; set up auth mechanism
11629         restrictions
11630
11631         * bus/config-parser.c (bus_config_parser_content): add support
11632         for <fork> option and fill in code for <auth>
11633
11634         * bus/system.conf.in: add <fork/> to default configuration,
11635         and limit auth mechanisms to EXTERNAL
11636
11637         * doc/config-file.txt (Elements): add <fork>
11638
11639         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11640         (_dbus_change_identity): new function
11641
11642 2003-03-31  Havoc Pennington  <hp@redhat.com>
11643
11644         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11645         (_dbus_listen_unix_socket): fix off-by-one error in null
11646         termination spotted by Nalin
11647
11648 2003-03-31  Havoc Pennington  <hp@redhat.com>
11649
11650         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11651         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11652         having a real home directory available.
11653
11654 2003-03-31  Havoc Pennington  <hp@redhat.com>
11655
11656         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11657
11658         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11659
11660         * configure.in: add support for specifying a style of init script
11661         to install
11662
11663 2003-03-31  Havoc Pennington  <hp@redhat.com>
11664
11665         Fix some annoying DBusString API and fix all affected code.
11666
11667         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11668         max_length argument
11669         (_dbus_string_get_data): change to return string instead of using
11670         an out param
11671         (_dbus_string_get_const_data): ditto
11672         (_dbus_string_get_data_len): ditto
11673         (_dbus_string_get_const_data_len): ditto
11674
11675 2003-03-31  Havoc Pennington  <hp@redhat.com>
11676
11677         * bus/main.c (main): fix up the command line arguments to be nicer
11678
11679 2003-03-31  Havoc Pennington  <hp@redhat.com>
11680
11681         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11682         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11683         final location that lands in the config file
11684
11685         * bus/config-loader-expat.c (bus_config_load): fix type of
11686         XML_Parser variable
11687
11688         * doc/TODO: remove TODO item for dbus_bus_get()
11689
11690         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11691
11692 2003-03-31  Havoc Pennington  <hp@pobox.com>
11693
11694         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11695         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11696         argument since they are always client side
11697
11698         * dbus/dbus-server.c (dbus_server_get_address): new function
11699
11700         * bus/main.c (main): take the configuration file as an argument.
11701
11702         * test/data/valid-config-files/debug-allow-all.conf: new file to
11703         use with dispatch.c tests for example
11704
11705         * bus/test-main.c (main): require test data dir
11706
11707         * bus/bus.c (bus_context_new): change this to take a
11708         configuration file name as argument
11709
11710         * doc/config-file.txt (Elements): add <servicedir>
11711
11712         * bus/system.conf, bus/session.conf: new files
11713
11714         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11715         well-known socket if none set
11716
11717         * configure.in: create system.conf and session.conf
11718
11719 2003-03-30  Havoc Pennington  <hp@pobox.com>
11720
11721         * bus/config-parser.c: hacking
11722
11723         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11724         to shut down, since it could cause weirdness with the DBusList
11725         lock
11726
11727         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11728         link-oriented stack routines
11729         (alloc_link): free the mempool if the first alloc from it fails
11730
11731         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11732
11733         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11734         from GLib
11735         (_dbus_string_skip_white): new
11736
11737         * doc/config-file.txt (Elements): add <includedir>
11738
11739 2003-03-28  Havoc Pennington  <hp@pobox.com>
11740
11741         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11742         (_dbus_string_copy_data): new functions
11743
11744 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11745
11746         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11747         * dbus/dbus-bus.h:
11748         Add dbus_bus_get.
11749
11750         * dbus/dbus-memory.c:
11751         Fix a doc comment.
11752
11753 2003-03-28  Havoc Pennington  <hp@pobox.com>
11754
11755         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11756         I think it may have just been superstition. Not sure.
11757
11758         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11759         failures that were not being handled.
11760
11761         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11762
11763         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11764         row that will fail on out-of-memory.
11765
11766         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11767         function for testing out-of-memory handling.
11768
11769         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11770         allocation functions, they do map exactly to the expat ones.
11771
11772 2003-03-27  Havoc Pennington  <hp@redhat.com>
11773
11774         * bus/config-loader-libxml.c (bus_config_load): add another error
11775         check
11776
11777 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11778
11779         * doc/TODO:
11780         Add note about automatic service activation.
11781
11782         * doc/dbus-specification.sgml:
11783         Rename the specification and clarify a few things.
11784
11785 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11786
11787         * Doxyfile.in:
11788         * dbus/dbus-address.c:
11789         * dbus/dbus-dict.c:
11790         * dbus/dbus-marshal.c:
11791         * dbus/dbus-server-debug-pipe.c:
11792         * dbus/dbus-transport-unix.c:
11793         Fix documentation warnings.
11794
11795 2003-03-26  Havoc Pennington  <hp@pobox.com>
11796
11797         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11798         after every test so it's quick and easy to see which leaked, and
11799         so we test multiple dbus_shutdown() calls
11800
11801         * configure.in: change configure.in XML stuff to also support
11802         expat
11803
11804         * config-loader-libxml.c: some hacking
11805
11806         * config-loader-expat.c: some hacking
11807
11808         * config-parser.c: some hacking, plus tests
11809
11810 2003-03-25  Havoc Pennington  <hp@redhat.com>
11811
11812         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11813
11814         * configure.in: add --with-xml option to specify XML library,
11815         right now only libxml is supported.
11816
11817         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11818         nonworking code between home and work, still just stubs
11819
11820 2003-03-24  Havoc Pennington  <hp@redhat.com>
11821
11822         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11823         file
11824
11825         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11826         NULL argument for "message" if the error is a well-known one,
11827         fill in a generic message in this case.
11828
11829         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11830         favor of DBusError
11831
11832         * bus/test.c (bus_test_flush_bus): add
11833
11834         * bus/policy.c (bus_policy_test): test code stub
11835
11836 2003-03-24  Havoc Pennington  <hp@pobox.com>
11837
11838         * bus/connection.c (bus_connections_setup_connection): set up
11839         the "can this user connect" function, but it always returns
11840         TRUE until we have a config file parser so we can have a config
11841         file that allows connections.
11842
11843 2003-03-23  Havoc Pennington  <hp@pobox.com>
11844
11845         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11846         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11847         the mutex, so we can check for proper memory management
11848         and OOM handling.
11849
11850         * dbus/dbus-dataslot.c: remove the mutex from
11851         DBusDataSlotAllocator and lock it manually when using it,
11852         to simplify fitting it into the global slots framework.
11853
11854         * dbus/dbus-threads.c (init_static_locks): rework how we're
11855         handling global locks so they are easily shut down.
11856
11857         * bus/policy.c (bus_policy_append_rule): fix
11858
11859         * bus/test-main.c (main): check for memleaks
11860
11861         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11862         test suite check for memleaks
11863
11864         * dbus/dbus-memory.c: add support in test mode for tracking
11865         number of outstanding blocks
11866
11867 2003-03-23  Havoc Pennington  <hp@pobox.com>
11868
11869         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11870         policies code
11871
11872         * dbus/dbus-hash.h: add ULONG hash keys
11873
11874         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11875         (_dbus_get_group_id): new function
11876
11877 2003-03-20  Havoc Pennington  <hp@redhat.com>
11878
11879         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11880         new function
11881         (dbus_connection_get_unix_user): new function
11882
11883 2003-03-20  Havoc Pennington  <hp@pobox.com>
11884
11885         * bus/connection.c (bus_connection_send_oom_error): assert that
11886         message has a sender
11887         (connection_execute_transaction): ditto
11888         (bus_connection_preallocate_oom_error): fix to set the sender, and
11889         set recipient to the destination service, not the bus driver
11890
11891         * bus/policy.c: hacking
11892
11893         * dbus/dbus-message.c (dbus_message_service_is): new function
11894         (dbus_message_sender_is): new
11895
11896 2003-03-19  Havoc Pennington  <hp@redhat.com>
11897
11898         * bus/policy.c: start sketching code for policy restrictions on
11899         what connections can do.
11900
11901 2003-03-18  Havoc Pennington  <hp@redhat.com>
11902
11903         * doc/TODO: some notes on high-level todo items. Little nitpick
11904         stuff is all in @todo, so no need to add it here.
11905
11906         * doc/config-file.txt: some notes on how config file might look
11907
11908 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11909
11910         * configure.in: 0.6
11911
11912         * NEWS: Update.
11913
11914 2003-03-17  Havoc Pennington  <hp@redhat.com>
11915
11916         * dbus/dbus-internals.h: add gcc attributes so that
11917         our printf-style functions warn on bad arguments to
11918         format
11919
11920         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11921         format bug
11922
11923         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11924         printf format bug
11925
11926 2003-03-17  Havoc Pennington  <hp@redhat.com>
11927
11928         * bus/test-main.c (main): make it print something as it runs
11929         so make check doesn't look stuck
11930
11931         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11932         from CVS, now obsolete
11933
11934 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11935
11936         * bus/dispatch.c: (bus_dispatch):
11937         Refetch the service name since it may have been reallocated
11938         when dbus_message_set_sender was called.
11939
11940         * dbus/dbus-sysdeps.c: (_dbus_accept):
11941         Add address and address length variables and use them to stop
11942         valgrind from complaining.
11943
11944 2003-03-17  Havoc Pennington  <hp@pobox.com>
11945
11946         All tests pass, no memleaks, no valgrind complaints.
11947
11948         * bus/test.c: refcount handler_slot
11949
11950         * bus/connection.c (bus_connections_new): refcount
11951         connection_data_slot
11952
11953         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11954         bytes so that auth scripts pass.
11955
11956         * bus/dispatch.c: init message_handler_slot so it gets allocated
11957         properly
11958
11959         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11960
11961         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11962         dealloc server_pipe_hash when no longer used for benefit of
11963         leak checking
11964
11965         * dbus/dbus-auth.c (process_command): memleak fix
11966
11967         * bus/dispatch.c (check_hello_message): memleak fix
11968
11969 2003-03-16  Havoc Pennington  <hp@pobox.com>
11970
11971         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11972
11973 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11974
11975         * bus/activation.c (bus_activation_activate_service): Append
11976         the pending activation entry to the list of pending activations.
11977
11978 2003-03-16  Havoc Pennington  <hp@pobox.com>
11979
11980         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11981         connections
11982
11983         * dbus/dbus-address.c (create_entry): fix OOM handling when
11984         failing to alloc entry->method
11985
11986 2003-03-16  Havoc Pennington  <hp@pobox.com>
11987
11988         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11989         the watch
11990
11991         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11992         add some missing dbus_set_result
11993
11994         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11995         alloc the DBusMessageHandler
11996
11997         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11998         the transport here, since we call this from the finalizer; it
11999         resulted in a double-finalize.
12000
12001         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12002         where we tried to use transport->connection that was NULL,
12003         happened when transport was disconnected early on due to OOM
12004
12005         * bus/*.c: adapt to handle OOM for watches/timeouts
12006
12007         * dbus/dbus-transport-unix.c: port to handle OOM during
12008         watch handling
12009
12010         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12011         reference to unused bytes instead of a copy
12012
12013         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12014         out of memory
12015
12016         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12017         FALSE on OOM
12018
12019         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12020         of memory
12021
12022 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12023
12024         * doc/dbus-specification.sgml:
12025         Document reply message for ActivateService.
12026
12027 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12028
12029         * bus/activation.c: (bus_pending_activation_entry_free),
12030         (bus_pending_activation_free), (bus_activation_new),
12031         (bus_activation_unref), (bus_activation_service_created),
12032         (bus_activation_activate_service):
12033         * bus/activation.h:
12034         * bus/bus.c: (bus_context_new):
12035         * bus/desktop-file.c: (new_section):
12036         * bus/driver.c: (bus_driver_send_service_deleted),
12037         (bus_driver_handle_activate_service):
12038         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12039         * bus/services.h:
12040         * dbus/dbus-connection.c:
12041         (dbus_connection_send_with_reply_and_block):
12042         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12043         * dbus/dbus-protocol.h:
12044         Make activation work better. Now pending activations will be queued
12045         and the daemon won't try to activate services that are already registered.
12046
12047 2003-03-16  Havoc Pennington  <hp@pobox.com>
12048
12049         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12050         connection data
12051
12052         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12053         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12054
12055 2003-03-16  Havoc Pennington  <hp@pobox.com>
12056
12057         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12058         this. always run the test suite before commit...
12059
12060         * bus/*: adapt to DBusConnection API changes
12061
12062         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12063         requires renaming stuff to avoid dbus_connection_dispatch name
12064         conflict.
12065
12066         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12067         function
12068
12069         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12070         separate from _dbus_message_loader_return_buffer()
12071
12072         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12073         this, because it's now always broken to use; the number of
12074         messages in queue vs. the number still buffered by the message
12075         loader is undefined/meaningless. Should use
12076         dbus_connection_get_dispatch_state().
12077         (dbus_connection_dispatch): rename from
12078         dbus_connection_dispatch_message
12079
12080 2003-03-16  Havoc Pennington  <hp@pobox.com>
12081
12082         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12083         implementation
12084
12085 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12086
12087         * dbus/dbus-connection.c:
12088         (dbus_connection_send_with_reply_and_block):
12089         Decrease connection->n_incoming when removing an entry
12090         from the list.
12091         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12092         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12093         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12094         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12095         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12096         (dbus_dict_get_byte_array):
12097         Handle NULL arrays and strings. Also add support for byte arrays.
12098
12099         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12100         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12101         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12102         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12103         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12104         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12105         * dbus/dbus-marshal.h:
12106         Add support for marshalling and demarshalling empty arrays and strings.
12107
12108         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12109         (dbus_message_append_string_array),
12110         (dbus_message_iter_get_boolean),
12111         (dbus_message_iter_get_boolean_array),
12112         (dbus_message_iter_get_int32_array),
12113         (dbus_message_iter_get_uint32_array),
12114         (dbus_message_iter_get_double_array),
12115         (dbus_message_iter_get_byte_array),
12116         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12117         (check_message_handling):
12118         Add support for getting empty arrays and dicts.
12119
12120         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12121         Don't do any validation at all for now, that's better than just checking
12122         for ASCII.
12123
12124         * test/data/valid-messages/emptiness.message:
12125         New test message with lots of empty arrays.
12126
12127 2003-03-16  Havoc Pennington  <hp@pobox.com>
12128
12129         * dbus/dbus-connection.c
12130         (_dbus_connection_queue_received_message_link): new function that
12131         can't fail due to OOM
12132
12133         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12134         new function pops a message together with a list link
12135         containing it.
12136
12137         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12138         message queuing functions to avoid needing to alloc memory
12139
12140 2003-03-16  Havoc Pennington  <hp@pobox.com>
12141
12142         Oops - test code was only testing failure of around 30 of the
12143         mallocs in the test path, but it turns out there are 500+
12144         mallocs. I believe this was due to misguided linking setup such
12145         that there was one copy of dbus_malloc etc. in the daemon and one
12146         in the shared lib, and only daemon mallocs were tested. In any
12147         case, the test case now tests all 500+ mallocs, and doesn't pass
12148         yet, though there are lots of fixes in this patch.
12149
12150         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12151         this so that it doesn't need to allocate memory, since it
12152         has no way of indicating failure due to OOM (and would be
12153         annoying if it did).
12154
12155         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12156
12157         * bus/Makefile.am: rearrange to create two self-contained
12158         libraries, to avoid having libraries with overlapping symbols.
12159         that was resulting in weirdness, e.g. I'm pretty sure there
12160         were two copies of global static variables.
12161
12162         * dbus/dbus-internals.c: move the malloc debug stuff to
12163         dbus-memory.c
12164
12165         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12166         empty.
12167
12168         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12169
12170         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12171         on failure.
12172
12173         * bus/dispatch.c (bus_dispatch_add_connection): free
12174         message_handler_slot when no longer using it, so
12175         memory leak checkers are happy for the test suite.
12176
12177         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12178
12179         * bus/bus.c (new_connection_callback): disconnect in here if
12180         bus_connections_setup_connection fails.
12181
12182         * bus/connection.c (bus_connections_unref): fix to free the
12183         connections
12184         (bus_connections_setup_connection): if this fails, don't
12185         disconnect the connection, just be sure there are no side
12186         effects.
12187
12188         * dbus/dbus-string.c (undo_alignment): unbreak this
12189
12190         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12191         leaking
12192         (_dbus_auth_new): fix the order in which we free strings
12193         on OOM failure
12194
12195         * bus/connection.c (bus_connection_disconnected): fix to
12196         not send ServiceDeleted multiple times in case of memory
12197         allocation failure
12198
12199         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12200         get the base service name
12201         (dbus_bus_register_client): don't return base service name,
12202         instead store it on the DBusConnection and have an accessor
12203         function for it.
12204         (dbus_bus_register_client): rename dbus_bus_register()
12205
12206         * bus/dispatch.c (check_hello_message): verify that other
12207         connections on the bus also got the correct results, not
12208         just the one sending hello
12209
12210 2003-03-15  Havoc Pennington  <hp@pobox.com>
12211
12212         Make it pass the Hello handling test including all OOM codepaths.
12213         Now to do other messages...
12214
12215         * bus/services.c (bus_service_remove_owner): fix crash when
12216         removing owner from an empty list of owners
12217         (bus_registry_ensure): don't leave service in the list of
12218         a connection's owned services if we fail to put the service
12219         in the hash table.
12220
12221         * bus/connection.c (bus_connection_preallocate_oom_error): set
12222         error flag on the OOM error.
12223
12224         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12225         handle _dbus_transport_set_connection failure
12226
12227         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12228         to create watches up front and simply enable/disable them as
12229         needed.
12230         (unix_connection_set): this can now fail on OOM
12231
12232         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12233         of enabling/disabling a watch or timeout.
12234
12235         * bus/loop.c (bus_loop_iterate): don't touch disabled
12236         watches/timeouts
12237
12238         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12239
12240 2003-03-15  Havoc Pennington  <hp@pobox.com>
12241
12242         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12243         write useful test code, after all that futzing around ;-)
12244
12245         Test does not yet pass because we can't handle OOM in
12246         _dbus_transport_messages_pending (basically,
12247         dbus_connection_preallocate_send() does not prealloc the write
12248         watch). To fix this, I think we need to add new stuff to
12249         set_watch_functions, namely a SetEnabled function so we can alloc
12250         the watch earlier, then enable it later.
12251
12252         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12253         dbus-memory.c to the convenience lib
12254
12255         * bus/test.c: rename some static functions to keep them clearly
12256         distinct from stuff in connection.c. Handle client disconnection.
12257
12258 2003-03-14  Havoc Pennington  <hp@pobox.com>
12259
12260         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12261         transport, tests more of the real codepath. Set up clients
12262         with bus_setup_debug_client.
12263
12264         * bus/test.c (bus_setup_debug_client): function to set up debug
12265         "clients" on the main loop
12266
12267         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12268         support
12269
12270         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12271         server type
12272
12273         * dbus/dbus-server-debug.c: support a debug server based on pipes
12274
12275         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12276         (_dbus_close): new function
12277
12278         * configure.in: check for socketpair
12279
12280 2003-03-14  Havoc Pennington  <hp@redhat.com>
12281
12282         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12283         cheesy hack
12284
12285         * dbus/dbus-transport-debug.c: rework this a good bit to be
12286         less complicated. hopefully still works.
12287
12288         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12289         manually
12290
12291         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12292         after running it
12293
12294         * dbus/dbus-message.c (dbus_message_copy): rename from
12295         dbus_message_new_from_message, fix it up to copy
12296         all the message fields, add test case
12297
12298         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12299         not quite passing yet
12300
12301 2003-03-14  Havoc Pennington  <hp@pobox.com>
12302
12303         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12304         until no work remains" in test code. (the large diff here
12305         is just code movement, no actual changes)
12306
12307         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12308         1, no point waiting around for test code.
12309         (_dbus_server_debug_accept_transport): unref the timeout
12310         after adding it (right?)
12311
12312         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12313
12314 2003-03-13  Havoc Pennington  <hp@redhat.com>
12315
12316         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12317         out of memory
12318
12319         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12320         of memory
12321
12322         * dbus/dbus-connection.h: Make AddWatchFunction and
12323         AddTimeoutFunction return a bool so they can fail on out-of-memory
12324
12325         * bus/bus.c (bus_context_new): set up timeout handlers
12326
12327         * bus/connection.c (bus_connections_setup_connection): set up
12328         timeout handlers
12329
12330         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12331         can fail
12332
12333         * bus/bus.c (bus_context_new): adapt to changes
12334
12335         * bus/connection.c: adapt to changes
12336
12337         * test/watch.c: adapt to DBusWatch changes
12338
12339         * bus/dispatch.c (bus_dispatch_test): started adding this but
12340         didn't finish
12341
12342 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12343
12344         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12345
12346 2003-03-13  Havoc Pennington  <hp@pobox.com>
12347
12348         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12349         set up a test framework as for the library
12350
12351 2003-03-12  Havoc Pennington  <hp@pobox.com>
12352
12353         Throughout: purge global variables, introduce BusActivation,
12354         BusConnections, BusRegistry, etc. objects instead.
12355
12356         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12357         message bus object
12358
12359         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12360         going to redo this a bit differently I think
12361
12362 2003-03-12  Havoc Pennington  <hp@redhat.com>
12363
12364         Mega-patch that gets the message bus daemon initially handling
12365         out-of-memory. Work still needed. Also lots of random
12366         moving stuff to DBusError instead of ResultCode.
12367
12368         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12369
12370         * dbus/dbus-connection.c
12371         (dbus_connection_send_with_reply_and_block): use DBusError
12372
12373         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12374         DBusResultCode
12375
12376         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12377         code here, as the only failure possible is OOM.
12378
12379         * bus/connection.c (bus_connection_disconnect):
12380         rename bus_connection_disconnected as it's a notification only
12381
12382         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12383         "name" on get_args failure, should be done by get_args;
12384         don't disconnect client for bad args, just return an error.
12385         (bus_driver_handle_service_exists): ditto
12386
12387         * bus/services.c (bus_services_list): NULL-terminate returned array
12388
12389         * bus/driver.c (bus_driver_send_service_lost)
12390         (bus_driver_send_service_acquired): send messages from driver to a
12391         specific client to the client's unique name, not to the broadcast
12392         service.
12393
12394         * dbus/dbus-message.c (decode_header_data): reject messages that
12395         contain no name field
12396         (_dbus_message_get_client_serial): rename to
12397         dbus_message_get_serial and make public
12398         (_dbus_message_set_serial): rename from set_client_serial
12399         (_dbus_message_set_reply_serial): make public
12400         (_dbus_message_get_reply_serial): make public
12401
12402         * bus/connection.c (bus_connection_foreach): allow stopping
12403         iteration by returning FALSE from foreach function.
12404
12405         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12406         (dbus_connection_free_preallocated_send)
12407         (dbus_connection_preallocate_send): new API for sending a message
12408         without possibility of malloc failure.
12409         (dbus_connection_send_message): rename to just
12410         dbus_connection_send (and same for whole function family)
12411
12412         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12413
12414         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12415
12416         * bus/activation.c: handle/return errors
12417
12418         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12419
12420         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12421         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12422         (_dbus_result_from_errno): move to this file
12423
12424 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12425
12426         * dbus/dbus-marshal.c:
12427         (_dbus_marshal_set_string):
12428         Take a length argument so we can marshal the correct string
12429         length.
12430
12431         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12432         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12433         (_dbus_marshal_test):
12434         * dbus/dbus-marshal.h:
12435         Add support for marshalling and demarshalling dicts.
12436
12437         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12438         Add support for TYPE DICT.
12439
12440         * dbus/dbus-message.c: (set_string_field):
12441         Adjust header padding.
12442
12443         (dbus_message_append_args_valist), (dbus_message_append_dict),
12444         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12445         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12446         (check_message_handling), (check_have_valid_message):
12447         * dbus/dbus-message.h:
12448         Add functions for setting and getting dicts.
12449
12450         * dbus/dbus-protocol.h:
12451         Add DBUS_TYPE_DICT.
12452
12453         * dbus/dbus.h:
12454         Add dbus-dict.h
12455
12456         * doc/dbus-specification.sgml:
12457         Add information about how dicts are marshalled.
12458
12459         * test/data/invalid-messages/dict-with-nil-value.message:
12460         * test/data/invalid-messages/too-short-dict.message:
12461         * test/data/valid-messages/dict-simple.message:
12462         * test/data/valid-messages/dict.message:
12463         Add sample messages containing dicts.
12464
12465 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12466
12467         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12468
12469 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12470
12471         * dbus/Makefile.am:
12472         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12473         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12474         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12475         (dbus_dict_set_double), (dbus_dict_set_string),
12476         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12477         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12478         (dbus_dict_set_string_array), (_dbus_dict_test):
12479         * dbus/dbus-dict.h:
12480         Fix according to comments from Havoc.
12481
12482 2003-03-06  Michael Meeks  <michael@server.home>
12483
12484         * configure.in: if we don't have kde-config, disable have_qt.
12485
12486 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12487
12488         * dbus/Makefile.am:
12489         Add dbus-dict.[ch]
12490
12491         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12492         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12493         (dbus_dict_remove), (dbus_dict_get_value_type),
12494         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12495         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12496         (dbus_dict_put_double), (dbus_dict_put_string),
12497         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12498         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12499         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12500         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12501         (dbus_dict_get_double), (dbus_dict_get_string),
12502         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12503         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12504         (dbus_dict_get_string_array), (_dbus_dict_test):
12505         * dbus/dbus-dict.h:
12506         Add DBusDict implementation
12507
12508         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12509         * dbus/dbus-test.h:
12510         Add _dbus_dict_test
12511
12512 2003-03-04  Havoc Pennington  <hp@pobox.com>
12513
12514         * test/data/auth/*: adapt to changes
12515
12516         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12517         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12518         userid
12519
12520         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12521         more stuff from being in a context name, to make the protocol
12522         simpler to deal with
12523
12524         * dbus/dbus-errors.c (dbus_error_has_name): new function
12525         (dbus_error_is_set): new function
12526
12527         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12528         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12529
12530         * dbus/dbus-connection.c (dbus_connection_flush): also read
12531         messages during a flush operation
12532
12533         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12534
12535 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12536
12537         * configure.in: Check for gethostbyname on Solaris.
12538
12539         * dbus/dbus-transport.c: (_dbus_transport_open):
12540         Remove duplicate "tcp" entry.
12541
12542         * doc/dbus-specification.sgml:
12543         Clarify some things.
12544
12545 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12546
12547         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12548         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12549         (_dbus_keyring_test):
12550         * dbus/dbus-md5.c: (_dbus_md5_compute):
12551         * dbus/dbus-sha.c: (_dbus_sha_compute):
12552         Plug memory leaks.
12553
12554 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12555
12556         * README: Add some things.
12557
12558 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12559
12560         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12561         after case DBUS_TYPE_BOOELAN.
12562
12563 2003-03-02  Havoc Pennington  <hp@pobox.com>
12564
12565         * test/break-loader.c (randomly_set_extreme_ints): add test that
12566         sets really huge and small integers
12567
12568         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12569         that length of boolean array fits in the string, and that
12570         string has room for boolean value in single-bool case.
12571
12572         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12573         optional value to "ALIGN" command which is what to fill the
12574         alignment with.
12575
12576         * test/data/valid-messages/no-padding.message: add regression
12577         test for the message padding problem
12578
12579 2003-03-02  Havoc Pennington  <hp@pobox.com>
12580
12581         * dbus/dbus-message.c (decode_header_data): fix to always init
12582         message_padding, from Benjamin Dauvergne
12583
12584 2003-03-02  Havoc Pennington  <hp@pobox.com>
12585
12586         * configure.in: 0.5
12587
12588         * NEWS: Update.
12589
12590 2003-03-01  Joe Shaw  <joe@assbarn.com>
12591
12592         * configure.in: Check for "struct cmsgcred" and try to access its
12593         members for BSD-like unices.
12594
12595         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12596         _dbus_read_credentials_unix_socket().
12597         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12598         read() for reading the credential byte off the unix socket.  Use
12599         struct cmsgcred on systems that support it.
12600
12601 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12602
12603         * glib/Makefile.am:
12604         * configure.in:
12605         Make gthreads-2.0 dependency optional. Don't build thread test if
12606         its not found.
12607
12608 2003-02-27  Havoc Pennington  <hp@pobox.com>
12609
12610         * dbus/dbus-connection.c
12611         (dbus_connection_send_message_with_reply_and_block): fix doh!
12612         doh! doh! bug that resulted in never removing a reply from the
12613         queue, no wonder we called get_reply_serial so much ;-)
12614
12615         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12616         and client serial instead of demarshaling them every time
12617
12618 2003-02-27  Havoc Pennington  <hp@pobox.com>
12619
12620         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12621         more inlined, using dbus-string-private.h, speeds things up
12622         substantially
12623
12624         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12625         when freeing the string
12626         (_dbus_string_steal_data): fix for align offset
12627         (undo_alignment): new function
12628
12629 2003-02-26  Havoc Pennington  <hp@redhat.com>
12630
12631         All kinds of audit fixes from Owen, plus initial attempt to
12632         handle unaligned memory returned from malloc.
12633
12634         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12635         leave room for align_offset and nul byte
12636         (fixup_alignment): function to track an align_offset and
12637         ensure real->str is aligned
12638         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12639         to allow a nul byte plus align offset
12640         (_dbus_string_lock): fix overflow issue
12641         (_dbus_string_init_const_len): add assertions on sanity of len,
12642         assign allocated to be ALLOCATION_PADDING larger than len
12643         (set_length): fixup the overflow handling
12644         (_dbus_string_get_data_len): fix overflow in assertion
12645         (open_gap): detect overflow in size of gap to be opened
12646         (_dbus_string_lengthen): add overflow check
12647         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12648         (_dbus_string_append): add overflow check
12649         (_dbus_string_append_unichar): overflow
12650         (_dbus_string_delete): fix overflow in assertion
12651         (_dbus_string_copy_len): overflow in assertion
12652         (_dbus_string_replace_len): overflows in assertions
12653         (_dbus_string_find): change to implement in terms of
12654         _dbus_string_find_to
12655         (_dbus_string_find_to): assorted fixage
12656         (_dbus_string_equal_c_str): assert c_str != NULL,
12657         fix logic so the function works
12658         (_dbus_string_ends_with_c_str): fix overflow thingy
12659         (_dbus_string_base64_encode): overflow fix
12660         (_dbus_string_validate_ascii): overflow
12661         (_dbus_string_validate_nul): overflow
12662
12663 2003-02-26  Havoc Pennington  <hp@redhat.com>
12664
12665         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12666
12667 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12668
12669         * configure.in:
12670         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12671
12672         * dbus/dbus-connection.c:
12673         * dbus/dbus-connection.h:
12674         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12675         Add dbus_connection_set_wakeup_main_function and use it when queueing
12676         incoming and outgoing messages.
12677
12678
12679         * dbus/dbus-dataslot.c:
12680         Threadsafe usage of DBusDataSlotAllocator
12681
12682         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12683         dbus_new can fail.
12684
12685         * dbus/dbus-server-unix.c:
12686         Add todo comment
12687
12688         * glib/dbus-gmain.c:
12689         Implement the new wakeup functions for glib.
12690
12691         * glib/Makefile.am:
12692         * glib/test-thread-client.c:
12693         * glib/test-thread-server.c:
12694         * glib/test-thread.h:
12695         Initial cut at some thread test code. Not really done yet.
12696
12697 2003-02-26  Havoc Pennington  <hp@pobox.com>
12698
12699         * dbus/dbus-connection.c
12700         (dbus_connection_send_message_with_reply_and_block): fix crash
12701         where we ref'd the outgoing message instead of the returned reply
12702
12703         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12704         at the end of this function, so if we didn't need to read for
12705         authentication, we reinstall it for receiving messages
12706
12707         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12708         a NULL sender for peer-to-peer case
12709
12710         * dbus/dbus-transport-unix.c (check_read_watch): handle
12711         !authenticated case correctly
12712
12713         * glib/dbus-gmain.c: add support for DBusServer
12714
12715         * dbus/dbus-server.c: add data slot support
12716
12717         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12718         return values and handle errors
12719
12720         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12721         DBusConnection
12722
12723         * Doxyfile.in (INPUT): add glib subdir
12724
12725         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12726         setup_with_g_main instead of hookup_with_g_main; write docs
12727
12728 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12729
12730         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12731         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12732         * dbus/dbus-message.c: (dbus_message_append_boolean),
12733         (dbus_message_append_boolean_array),
12734         (dbus_message_get_args_valist), (_dbus_message_test):
12735         * dbus/dbus-message.h:
12736         * doc/dbus-specification.sgml:
12737         Various fixes as pointed out by Havoc.
12738
12739         * test/data/invalid-messages/bad-boolean-array.message:
12740         * test/data/invalid-messages/bad-boolean.message:
12741         Add invalid boolean value test cases.
12742
12743 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12744
12745         * dbus/dbus-internals.c: (_dbus_type_to_string):
12746         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12747         (_dbus_marshal_validate_arg):
12748         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12749         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12750         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12751         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12752         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12753         (dbus_message_iter_get_double),
12754         (dbus_message_iter_get_boolean_array), (message_iter_test):
12755         * dbus/dbus-message.h:
12756         * dbus/dbus-protocol.h:
12757         * doc/dbus-specification.sgml:
12758         * test/data/valid-messages/lots-of-arguments.message:
12759         Add support for boolean and boolean array types.
12760
12761 2003-02-23  Havoc Pennington  <hp@pobox.com>
12762
12763         * dbus/dbus-keyring.c: finish most of this implementation and
12764         simple unit test
12765
12766         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12767         these barf if the error isn't cleared to NULL
12768
12769         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12770         (_dbus_create_directory): new function
12771
12772         * dbus/dbus-errors.c (dbus_set_error): fix warning
12773
12774         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12775         (_dbus_string_hex_decode): new function
12776         (test_hex_roundtrip): test code
12777
12778         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12779
12780         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12781
12782         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12783         the save-to-temp/rename trick to atomically write the new file
12784         (_dbus_string_parse_uint): new function
12785
12786 2003-02-22  Havoc Pennington  <hp@pobox.com>
12787
12788         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12789
12790 2003-02-22  Havoc Pennington  <hp@pobox.com>
12791
12792         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12793         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12794
12795         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12796
12797         * dbus/test/data/sha-1: add US government test suite for SHA-1
12798
12799 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12800
12801         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12802         Make string arrays NULL-terminated.
12803
12804         * dbus/dbus-memory.c: (dbus_free_string_array):
12805         * dbus/dbus-memory.h:
12806         New function for freeing NULL-terminated string arrays.
12807
12808         * dbus/dbus-message-builder.c: (append_quoted_string),
12809         (_dbus_message_data_load):
12810         Add support for array types.
12811
12812         * dbus/dbus-message.c: (check_message_handling):
12813         Add more types as test cases.
12814
12815         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12816         (_dbus_string_parse_double):
12817         Add the start offset to the end offset.
12818
12819         * test/data/valid-messages/lots-of-arguments.message:
12820         New test message with lots of arguments.
12821
12822 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12823
12824         * dbus/dbus-message.c: (dbus_message_append_nil),
12825         (dbus_message_append_int32), (dbus_message_append_uint32),
12826         (dbus_message_append_double), (dbus_message_append_string),
12827         (dbus_message_append_int32_array),
12828         (dbus_message_append_uint32_array),
12829         (dbus_message_append_double_array),
12830         (dbus_message_append_byte_array),
12831         (dbus_message_append_string_array):
12832         Fix all out-of-memory handling in these functions.
12833
12834 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12835
12836         * dbus/dbus-message.c: (dbus_message_append_nil):
12837         Fix a silly.
12838
12839 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12840
12841         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12842         (dbus_message_append_nil), (dbus_message_append_int32_array),
12843         (dbus_message_append_uint32_array),
12844         (dbus_message_append_double_array),
12845         (dbus_message_append_byte_array),
12846         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12847         (dbus_message_iter_get_int32_array),
12848         (dbus_message_iter_get_uint32_array),
12849         (dbus_message_iter_get_double_array),
12850         (dbus_message_iter_get_byte_array),
12851         (dbus_message_iter_get_string_array):
12852
12853         * dbus/dbus-message.h:
12854         Add functions for appending and getting arrays.
12855
12856 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12857
12858         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12859         element size at least 8 bytes, fixes mempool tests on
12860         64-bit machines.
12861
12862 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12863
12864         * dbus/dbus-transport-unix.c (unix_do_iteration):
12865         Unlock the connection mutex during a blocking select call.
12866         Add todo about how we need a way to wake up the select.
12867
12868         * dbus/dbus-connection-internal.h:
12869         * dbus/dbus-connection.c:
12870         Add _dbus_connection_lock and _dbus_connection_unlock.
12871
12872 2003-02-19  Havoc Pennington  <hp@pobox.com>
12873
12874         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12875         Doxyfile.in, not Doxyfile
12876
12877         * dbus/dbus-keyring.c: do some hacking on this
12878
12879         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12880
12881         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12882         dbus_error_init
12883         (dbus_set_error): remove dbus_error_init, check for message ==
12884         NULL *before* we sprintf into it, and add @todo about including
12885         system headers in this file
12886
12887         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12888
12889         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12890
12891         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12892         get various bits of user information based on either username
12893         or user ID
12894         (_dbus_homedir_from_username): new function
12895
12896 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12897
12898         * configure.in:
12899         Add check for nonposix getpwnam_r
12900
12901         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12902         Align the pool element size to a sizeof (void *) boundary.
12903
12904         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12905         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12906         General Solaris fixes.
12907
12908         * test/data/valid-messages/simplest-manual.message:
12909         Explicitly state that we want little-endian packing.
12910
12911 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12912
12913         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12914
12915         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12916         Added to create a transport connecting using a tcp/ip socket.
12917
12918         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12919         to a tcp socket at given host and port.
12920         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12921         hostname and port.
12922
12923         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12924
12925         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12926         Added to create a server listening on a TCP/IP socket.
12927
12928 2003-02-19  Havoc Pennington  <hp@pobox.com>
12929
12930         Throughout: mop up all the Doxygen warnings and undocumented
12931         stuff.
12932
12933         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12934         to search any paths.
12935
12936         * dbus/dbus-threads.c: move global mutex initializers to
12937         dbus-internals.h, multiple prototypes was confusing doxygen
12938         besides being kind of ugly
12939
12940         * Doxyfile (PREDEFINED): have Doxygen define
12941         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12942         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12943         (do not abuse the feature! it's for stuff like the autogenerated
12944         macros in dbus-md5.c, not just for things you don't feel like
12945         documenting...)
12946
12947 2003-02-18  Havoc Pennington  <hp@pobox.com>
12948
12949         * dbus/dbus-string.c (_dbus_string_zero): new function
12950
12951         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12952         wrap it in some dbus-friendly API
12953
12954         * dbus/dbus-types.h: add 16-bit types
12955
12956 2003-02-18  Joe Shaw  <joe@assbarn.com>
12957
12958         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12959         credentials from our currently running process.
12960         (get_word): Fix a buglet where we were copying the entire length
12961         instead of relative to our position.
12962
12963         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12964         keys on the stack... it's 640k of data.
12965
12966         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12967         read the credentials byte off the socket, even if we don't have
12968         SO_PEERCRED.
12969         (_dbus_poll): Implement poll() using select() for systems which
12970         don't have it.
12971
12972         * glib/test-dbus-glib.c (main): Print out an error if no
12973         parameters are given.
12974
12975         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12976         can fallback to a secondary auth mechanism if the first fails.
12977
12978 2003-02-18  Havoc Pennington  <hp@pobox.com>
12979
12980         * AUTHORS: add Alex
12981
12982 2003-02-17  Havoc Pennington  <hp@pobox.com>
12983
12984         * doc/dbus-specification.sgml: lots of cosmetic
12985         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12986         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12987         s/server/bus/ (except in authentication section). Add a section
12988         "Message Bus Message Routing"
12989
12990 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12991
12992         Release 0.4
12993
12994         * NEWS: Update
12995
12996 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12997
12998         * doc/dbus-specification.sgml:
12999         Specification updates.
13000
13001 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13002
13003         * bus/activation.c: (bus_activation_init), (child_setup),
13004         (bus_activation_activate_service):
13005         * bus/activation.h:
13006         * bus/main.c: (main):
13007         Set DBUS_ADDRESS environment variable.
13008
13009         * dbus/dbus-errors.c: (dbus_set_error):
13010         Don't use va_copy since that's a C99 feature.
13011
13012         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13013         (_dbus_spawn_async):
13014         * dbus/dbus-sysdeps.h:
13015         Add child_setup_func to _dbus_spawn_async.
13016
13017         * doc/dbus-specification.sgml:
13018         Update specification.
13019
13020         * test/spawn-test.c: (setup_func), (main):
13021         Fix test.
13022
13023 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13024
13025         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13026         Added todo.
13027
13028 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13029
13030         * doc/.cvsignore:
13031         * doc/Makefile.am:
13032         * doc/dbus-test-plan.sgml:
13033         Add test plan document.
13034
13035         * test/Makefile.am:
13036         Fix distcheck.
13037
13038 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13039
13040         * dbus/dbus-message.c: (decode_header_data),
13041         (_dbus_message_loader_return_buffer):
13042         Set the header padding amount when loading a message.
13043
13044 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13045
13046         * bus/dispatch.c: (send_one_message):
13047         Only send broadcast messages to registered connections.
13048
13049         * dbus/dbus-message.c: (dbus_message_name_is):
13050         * dbus/dbus-message.h:
13051         New convenience function.
13052
13053         * dbus/dbus-transport-debug.c: (do_reading):
13054         Only dispatch one message per run.
13055
13056         * test/Makefile.am:
13057         * test/bus-test.c: (new_connection_callback), (die),
13058         (test_hello_client1_handler), (test_hello_client2_handler),
13059         (test_hello_replies), (main):
13060
13061         * test/bus-test-loop.[ch]:
13062         Add these.
13063
13064 2003-02-16  Havoc Pennington  <hp@pobox.com>
13065
13066         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13067         backward conditional
13068
13069 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13070
13071         * dbus/dbus-connection.c:
13072         Implement sent_message_with_reply. (with_reply_and block is still
13073         busted).
13074         Made dispatch_message not lose message if OOM.
13075
13076         * dbus/dbus-errors.h:
13077         Add NoReply error (for reply timeouts).
13078
13079 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13080
13081         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13082         Actually free keys and values when destroying hashtable.
13083
13084 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13085
13086         * dbus/dbus-auth.c: (client_try_next_mechanism):
13087         Plug a leak.
13088
13089         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13090         Return TRUE if there's no thread implementation around.
13091
13092         * glib/dbus-gmain.c: (free_source),
13093         (dbus_connection_hookup_with_g_main):
13094         Make sure to remove the GSource when the connection is finalized.
13095
13096 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13097
13098         * bus/dispatch.c: (bus_dispatch_message_handler):
13099         * dbus/dbus-errors.h:
13100         Return an error if someone tries to send a message to a service
13101         that doesn't exist.
13102
13103 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13104
13105         * bus/activation.c: (load_directory), (bus_activation_init),
13106         (bus_activation_activate_service):
13107         * bus/activation.h:
13108         * bus/driver.c:
13109         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13110         More work on the activation handling.
13111
13112         * dbus/dbus-errors.h:
13113         Add some error messages
13114
13115         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13116         * dbus/dbus-message.h:
13117         New function that creates an error message.
13118
13119         * dbus/dbus-protocol.h:
13120         Add ACTIVATE_SERVER message.
13121
13122         * dbus/dbus-server-unix.c: (unix_handle_watch),
13123         (_dbus_server_new_for_domain_socket):
13124         Call _dbus_fd_set_close_on_exec.
13125
13126         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13127         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13128         (_dbus_fd_set_close_on_exec):
13129         * dbus/dbus-sysdeps.h:
13130         Add _dbus_fd_set_close_on exec function. Also add function that checks
13131         that all open fds are set to close-on-exec and warns otherwise.
13132
13133         * dbus/dbus-transport-unix.c:
13134         (_dbus_transport_new_for_domain_socket):
13135         Call _dbus_fd_set_close_on_exec.
13136
13137 2003-02-16  Havoc Pennington  <hp@pobox.com>
13138
13139         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13140         allow people to avoid setting SIGPIPE to SIG_IGN
13141         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13142         we've been asked not to
13143
13144 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13145
13146         * dbus/dbus-list.c: (_dbus_list_append_link),
13147         (_dbus_list_prepend_link):
13148         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13149         (dbus_realloc):
13150         Warning fixes.
13151
13152 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13153
13154         * bus/Makefile.am:
13155         * bus/activation.c: (bus_activation_entry_free),
13156         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13157         * bus/activation.h:
13158         * bus/main.c: (main):
13159         Add simple activation support, doesn't work yet though.
13160
13161 2003-02-15   Zack Rusin  <zack@kde.org>
13162
13163         * qt/dbus-qthread.cpp:  small casting fix
13164
13165 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13166
13167         * dbus/dbus-errors.c: (dbus_set_error):
13168         * dbus/dbus-errors.h:
13169         Add a few errors and make dbus_set_error void.
13170
13171         * dbus/dbus-sysdeps.c:
13172         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13173         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13174         * dbus/dbus-sysdeps.h:
13175         Add _dbus_spawn_async.
13176
13177         * test/spawn-test.c: (main):
13178         Test for _dbus_spawn_async.
13179
13180 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13181
13182         * dbus/dbus-internals.h:
13183         Fix build without tests.
13184
13185         * dbus/dbus-list.c: (alloc_link):
13186         Fix a segfault when a malloc fails.
13187
13188         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13189         (dbus_malloc0), (dbus_realloc):
13190         Add support for malloc debugging.
13191
13192 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13193
13194         * dbus/dbus-threads.c:
13195         * dbus/dbus-threads.h:
13196         Add condvars. Remove static mutext from API.
13197         Implement static mutexes by initializing them from threads_init.
13198
13199         * glib/dbus-gthread.c:
13200         * qt/dbus-qthread.cpp:
13201         Update with the thread api changes.
13202
13203
13204         * dbus/dbus-list.c:
13205         * dbus/dbus-list.h:
13206         Turn StaticMutex into normal mutex + init function.
13207         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13208         _dbus_list_append_link, _dbus_list_prepend_link
13209
13210
13211         * dbus/dbus-sysdeps.c:
13212         * dbus/dbus-sysdeps.h:
13213         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13214         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13215
13216         * dbus/dbus-protocol.h:
13217         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13218
13219         * dbus/dbus-message.c:
13220         Make ref/unref atomic.
13221         Fix some docs.
13222
13223         * dbus/dbus-connection-internal.h:
13224         * dbus/dbus-connection.c:
13225         * dbus/dbus-connection.h:
13226         Make threadsafe.
13227         Change _peek to _borrow,_return & _steal_borrowed.
13228         Change disconnect callback to event.
13229         Make dbus_connection_dispatch_messages reentrant.
13230
13231         * dbus/dbus-transport.c:
13232         Don't ref the connection on calls to the transport
13233         implementation.
13234
13235         * dbus/dbus-message-handler.c:
13236         Make threadsafe.
13237
13238         * glib/dbus-gmain.c:
13239         Don't use peek_message anymore
13240
13241         * test/Makefile.am:
13242         * test/debug-thread.c:
13243         * test/debug-thread.h:
13244         Simple thread implementation that asserts() on deadlocks in
13245         single-threaded code.
13246
13247         * test/bus-test.c:
13248         (main) Call debug_threads_init.
13249
13250         * test/watch.c:
13251         Use disconnect message instead of disconnect callback.
13252
13253         * bus/connection.c:
13254         * bus/connection.h:
13255         Don't call dbus_connection_set_disconnect_function. Instead export
13256         bus_connection_disconnect.
13257
13258         * bus/dispatch.c:
13259         Call bus_connection_disconnect when we get a disconnected message.
13260
13261 2003-02-15  Havoc Pennington  <hp@pobox.com>
13262
13263         * dbus/dbus-message.c (dbus_message_new): fool around with the
13264         docs
13265
13266 2003-02-14  Havoc Pennington  <hp@pobox.com>
13267
13268         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13269
13270         * dbus/dbus-memory.c: fail if the debug functions indicate we
13271         should
13272
13273         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13274         (_dbus_decrement_fail_alloc_counter): debug functions to
13275         simulate memory allocation failures
13276
13277 2003-02-14  Havoc Pennington  <hp@pobox.com>
13278
13279         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13280         to DBusError
13281
13282 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13283
13284         * bus/driver.c: (bus_driver_handle_hello):
13285         * bus/driver.h:
13286         * bus/services.c: (bus_service_lookup):
13287         Reorder message sending so we get a more sane order.
13288
13289         * test/bus-test.c: (message_handler):
13290         Fix tyop.
13291
13292 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13293
13294         * bus/driver.c: (bus_driver_send_service_deleted),
13295         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13296         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13297         (bus_driver_send_welcome_message),
13298         (bus_driver_handle_list_services),
13299         (bus_driver_handle_acquire_service),
13300         (bus_driver_handle_service_exists):
13301         * dbus/dbus-bus.c: (dbus_bus_register_client),
13302         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13303         * dbus/dbus-errors.c: (dbus_result_to_string):
13304         * dbus/dbus-errors.h:
13305         * dbus/dbus-message.c: (dbus_message_append_args),
13306         (dbus_message_append_args_valist), (dbus_message_get_args),
13307         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13308         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13309         (dbus_message_iter_get_byte_array),
13310         (dbus_message_iter_get_string_array), (message_iter_test),
13311         (check_message_handling), (_dbus_message_test):
13312         * dbus/dbus-message.h:
13313         * test/bus-test.c: (main):
13314         Change fields to arguments in messages, so that they won't be
13315         confused with header fields.
13316
13317         * glib/test-dbus-glib.c: (main):
13318         Remove append_fields from hello message.
13319
13320 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13321
13322         * dbus/dbus-errors.c:
13323         * dbus/dbus-message.c:
13324         * dbus/dbus-string.c:
13325         Documentation fixes.
13326
13327 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13328
13329         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13330         (remove_timeout):
13331         Implement support for timeouts in dbus-glib.
13332
13333 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13334
13335         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13336         * dbus/dbus-message.c: (process_test_subdir):
13337         * test/break-loader.c: (find_breaks_based_on):
13338         Plug some memory leaks.
13339
13340 2003-02-13  Richard Hult  <rhult@codefactory.se>
13341
13342         * bus/main.c: Fix build.
13343
13344         * dbus/dbus-errors.h:
13345         * dbus/dbus-errors.c: Fix copyright for Anders.
13346
13347 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13348
13349         * bus/Makefile.am:
13350         Add utils.[ch]
13351
13352         * bus/connection.c: (bus_connection_foreach):
13353         Fix a warning.
13354
13355         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13356         (unescape_string), (new_section), (parse_section_start),
13357         (parse_key_value), (report_error), (bus_desktop_file_load),
13358         (bus_desktop_file_get_string):
13359         * bus/desktop-file.h:
13360         Use DBusError for error reporting.
13361
13362         * bus/dispatch.c: (send_one_message),
13363         (bus_dispatch_message_handler):
13364         * bus/driver.c: (bus_driver_send_service_deleted),
13365         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13366         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13367         (bus_driver_send_welcome_message),
13368         (bus_driver_handle_list_services),
13369         (bus_driver_handle_acquire_service),
13370         (bus_driver_handle_service_exists):
13371         * bus/loop.c: (bus_loop_run):
13372         * bus/main.c:
13373         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13374
13375         * bus/utils.c: (bus_wait_for_memory):
13376         * bus/utils.h:
13377         New files with general utility functions.
13378
13379         * dbus/dbus-internals.h:
13380         Remove _DBUS_HANDLE_OOM.
13381
13382 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13383
13384         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13385         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13386         * dbus/dbus-errors.h:
13387         Add DBusError structure.
13388
13389 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13390
13391         * test/data/valid-messages/standard-acquire-service.message:
13392         * test/data/valid-messages/standard-hello.message:
13393         * test/data/valid-messages/standard-list-services.message:
13394         * test/data/valid-messages/standard-service-exists.message:
13395         Add some standard messages.
13396
13397 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13398
13399         * bus/driver.c: (bus_driver_send_welcome_message),
13400         (bus_driver_handle_list_services),
13401         (bus_driver_handle_acquire_service),
13402         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13403         Update for API changes in libdbus.
13404
13405         * dbus/dbus-message.c: (dbus_message_new_reply):
13406         * dbus/dbus-message.h:
13407         Remove the name argument. The spec states that replies shouldn't
13408         have a name.
13409
13410 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13411
13412         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13413         (report_error), (bus_desktop_file_load), (lookup_section),
13414         (lookup_line), (bus_desktop_file_get_raw),
13415         (bus_desktop_file_get_string):
13416         * bus/desktop-file.h:
13417         Some fixes, and new functions for getting a key value from a section.
13418
13419 2003-02-13  Havoc Pennington  <hp@pobox.com>
13420
13421         * test/data/auth/fail-after-n-attempts.auth-script: new test
13422
13423         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13424         reject the client.
13425
13426 2003-02-13  Havoc Pennington  <hp@pobox.com>
13427
13428         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13429         dbus_credentials_match were backward
13430
13431         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13432         NO_CREDENTIALS and ROOT_CREDENTIALS
13433
13434         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13435         into here. Never process more commands after we've reached an
13436         end state; store further data as unused bytes.
13437
13438         * test/data/auth/*: add more auth tests
13439
13440         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13441         command to match exact string and EXPECT_UNUSED to match unused
13442         bytes
13443
13444         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13445
13446 2003-02-12  Havoc Pennington  <hp@pobox.com>
13447
13448         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13449         \r off of popped lines
13450
13451         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13452         scripts
13453
13454         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13455         SEND, append \r\n
13456
13457 2003-02-12  Havoc Pennington  <hp@pobox.com>
13458
13459         * dbus/Makefile.am: remove break-loader from the build, since it
13460         moved.
13461
13462         * configure.in: add --enable-gcov to turn on coverage profiling
13463         flags and disable optimization
13464
13465 2003-02-10  Havoc Pennington  <hp@pobox.com>
13466
13467         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13468         initial cut at test framework for DBusAuth from laptop.
13469         Doesn't quite work yet but it compiles and I need to get
13470         it off the 266mhz laptop. ;-)
13471
13472         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13473         fix a memleak in error case
13474
13475 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13476
13477         * bus/Makefile.am:
13478         * bus/desktop-file.c:
13479         * bus/desktop-file.h:
13480         Add a desktop file parser.
13481
13482 2003-02-11  Zack Rusin  <zack@kde.org>
13483
13484         * qt/message.[h|cpp]: sample implementation
13485         of the KDE wrapper for DBusMessage
13486
13487 2003-02-09  Zack Rusin  <zack@kde.org>
13488
13489         * test/bus-test.c: make_it_compile
13490         * doc/dbus-specification.sgml: minimal semantic fix
13491
13492 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13493
13494         Release 0.3
13495
13496         * NEWS: Update
13497
13498 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13499
13500         * dbus/Makefile.am:
13501         * dbus/dbus-break-loader.c:
13502         * test/Makefile.am:
13503         * test/break-loader.c:
13504         Move dbus-break-loader to test/ and rename it to break-loader.
13505
13506 2003-02-02  Havoc Pennington  <hp@pobox.com>
13507
13508         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13509         for code to manage cookies in your home directory
13510
13511         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13512
13513         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13514         to authenticate, then disconnect the client.
13515
13516 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13517
13518         * dbus/dbus-message.c (dbus_message_append_fields):
13519         Correct docs.
13520
13521 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13522
13523         * doc/dbus-specification.sgml:
13524         Update address format section.
13525
13526 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13527
13528         * test/Makefile.am:
13529         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13530         (message_handler), (new_connection_callback), (loop_quit),
13531         (loop_run), (main):
13532         Add bus test.
13533
13534 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13535
13536         * bus/driver.c: (bus_driver_handle_service_exists):
13537         Simplify the code a bit.
13538
13539         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13540         Fix a silly.
13541
13542 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13543
13544         * bus/Makefile.am:
13545         Add libdbus-daemon.la and link to it.
13546
13547 2003-02-01  James Willcox  <jwillcox@gnome.org>
13548
13549         * bus/driver.c: (bus_driver_handle_own_service):
13550         Actually include the service reply code in the message.
13551
13552 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13553
13554         * bus/driver.c: (bus_driver_handle_service_exists):
13555         Don't unref the incoming message.
13556
13557 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13558
13559         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13560
13561 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13562
13563         * dbus/dbus-server.c: (dbus_server_listen):
13564         * dbus/dbus-transport.c: (_dbus_transport_open):
13565         ifdef out the calls to the debug transport and server.
13566
13567 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13568
13569         * dbus/dbus-watch.c (dbus_watch_get_flags):
13570         Add note in the docs that ERROR or HANGUP won't be returned
13571         and are assumed always on.
13572
13573         * glib/dbus-gmain.c (add_watch):
13574         Always add IO_ERR | IO_HUP
13575
13576         * dbus/dbus-message.h:
13577         Add semicolon after dbus_message_iter_get_string_array().
13578         Makes qt code build again
13579
13580 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13581
13582         * bus/driver.c: (create_unique_client_name),
13583         (bus_driver_handle_hello):
13584         Don't take a name, just use a numeric id to identify
13585         each client.
13586
13587         * dbus/Makefile.am:
13588         * dbus/dbus-bus.c: (dbus_bus_register_client),
13589         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13590         * dbus/dbus-bus.h:
13591         Add new convenience functions for communicating with the bus.
13592
13593         * dbus/dbus-message.h:
13594
13595         * dbus/dbus-protocol.h:
13596         Fix a typo.
13597
13598 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13599
13600         * dbus/dbus-message.c (dbus_message_append_fields):
13601         Add some more doc comments.
13602
13603 2003-02-01  Havoc Pennington  <hp@pobox.com>
13604
13605         * dbus/dbus-break-loader.c (randomly_modify_length): change
13606         a 4-byte value in the message as if it were a length
13607
13608         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13609         execute bit on saved files
13610
13611 2003-02-01  Havoc Pennington  <hp@pobox.com>
13612
13613         * dbus/dbus-break-loader.c (main): new program to find messages
13614         that break the loader.
13615
13616         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13617         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13618
13619         * dbus/dbus-string.c (_dbus_string_set_byte): new
13620
13621 2003-01-31  Havoc Pennington  <hp@pobox.com>
13622
13623         * dbus/dbus-message.c: refactor the test code to be more general,
13624         in preparation for writing a "randomly permute test cases to
13625         try to break the loader" program.
13626
13627 2003-01-31  Havoc Pennington  <hp@pobox.com>
13628
13629         * doc/dbus-specification.sgml: work on the specification
13630
13631         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13632         the protocol version of the message.
13633
13634         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13635         no longer specifies that.
13636         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13637         1/2/3/4)
13638
13639         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13640         "break" for DBUS_TYPE_NIL, remove @todo
13641
13642 2003-01-31  Havoc Pennington  <hp@pobox.com>
13643
13644         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13645         just set_is_error/get_is_error as this is a commonly-used
13646         function, and write docs.
13647
13648 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13649
13650         * dbus/dbus-address.c: (dbus_address_entry_free):
13651         Free key and value lists.
13652
13653         * dbus/dbus-internals.c: (_dbus_type_to_string):
13654         Add the types we didn't have.
13655
13656         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13657         (_dbus_marshal_validate_arg):
13658         Add NIL types.
13659
13660         * dbus/dbus-message.c: (dbus_message_set_sender):
13661         Remove todo about being able to set sender to NULL.
13662
13663         (dbus_message_set_is_error_reply),
13664         (dbus_message_get_is_error_reply):
13665         * dbus/dbus-message.h:
13666         New functions.
13667
13668         * dbus/dbus-protocol.h:
13669         Add error reply flag.
13670
13671         * test/data/valid-messages/opposite-endian.message:
13672         Add NIL type to test.
13673
13674 2003-01-31  Havoc Pennington  <hp@pobox.com>
13675
13676         * doc/dbus-specification.sgml: fully specify the header.  Add
13677         flags and major protocol version, and change header/body len to
13678         unsigned.
13679
13680         * dbus/dbus-message-builder.c (append_saved_length): append length
13681         as uint32
13682
13683         * dbus/dbus-message.c (dbus_message_create_header): change header
13684         length and body length to unsigned. Add the new fields from the
13685         spec
13686         (_dbus_message_loader_return_buffer): unsigned header/body len
13687
13688 2003-01-30  Havoc Pennington  <hp@pobox.com>
13689
13690         * dbus/dbus-auth.c: rework to use only REJECTED, no
13691         MECHANISMS
13692
13693         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13694         use REJECTED, suggested by Mark McLoughlin
13695
13696 2003-01-30  Havoc Pennington  <hp@pobox.com>
13697
13698         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13699         a better way to report errors here. e.g.  "unix address lacks
13700         path" or something. also "no such file" when the path doesn't
13701         exist, etc.
13702
13703         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13704         leaking list nodes
13705         (dbus_parse_address): add @todo about documenting address format,
13706         and allowing , and ; to be escaped
13707
13708 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13709
13710         * dbus/Makefile.am:
13711         Add dbus-address.[ch]
13712
13713         * dbus/dbus-address.c: (dbus_address_entry_free),
13714         (dbus_address_entries_free), (create_entry),
13715         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13716         (dbus_parse_address), (_dbus_address_test):
13717         * dbus/dbus-address.h:
13718         New files for dealing with address parsing.
13719
13720         * dbus/dbus-connection.c:
13721         Document timeout functions.
13722
13723         * dbus/dbus-message.c:
13724         Document dbus_message_new_from_message.
13725
13726         * dbus/dbus-server-debug.c:
13727         Document.
13728
13729         * dbus/dbus-server.c: (dbus_server_listen):
13730         Parse address and use correct server implementation.
13731
13732         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13733         * dbus/dbus-string.h:
13734         New function with test.
13735
13736         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13737         * dbus/dbus-test.h:
13738         Add address tests.
13739
13740         * dbus/dbus-transport-debug.c:
13741         Document.
13742
13743         * dbus/dbus-transport.c: (_dbus_transport_open):
13744         Parse address and use correct transport implementation.
13745
13746 2003-01-30  Havoc Pennington  <hp@pobox.com>
13747
13748         * dbus/dbus-message.c: use message->byte_order instead of
13749         DBUS_COMPILER_BYTE_ORDER throughout.
13750         (dbus_message_create_header): pad header to align the
13751         start of the body of the message to 8-byte boundary
13752
13753         * dbus/dbus-marshal.h: make all the demarshalers take const
13754         DBusString arguments.
13755
13756         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13757         validate message args here, so we don't have to do slow validation
13758         later, and so we catch bad messages as they are incoming. Also add
13759         better checks on header_len and body_len. Also fill in
13760         message->byte_order
13761
13762         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13763         implemented properly)
13764         (_dbus_string_validate_nul): new function to check all-nul
13765
13766         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13767         get_arg_end_pos and remove all validation
13768         (_dbus_marshal_validate_arg): actually do validation here.
13769
13770 2003-01-29  Havoc Pennington  <hp@pobox.com>
13771
13772         * dbus/dbus-message.c (check_message_handling): fix assertion
13773         failure on set_client_serial
13774
13775 2003-01-28  Havoc Pennington  <hp@pobox.com>
13776
13777         * dbus/dbus-server-debug.c: Add doc section comments
13778
13779         * dbus/dbus-transport-debug.c: add doc section comments
13780
13781 2003-01-28  Havoc Pennington  <hp@redhat.com>
13782
13783         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13784         the reverse order from how I had it
13785         (_dbus_string_base64_encode): reverse encoding order. I was
13786         basically byteswapping everything during encoding.
13787
13788 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13789
13790         * dbus/dbus-connection-internal.h:
13791         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13792         (_dbus_connection_remove_timeout):
13793         Add functions for adding and removing timeouts.
13794
13795         * dbus/dbus-message.c: (dbus_message_new_from_message):
13796         Add new function that takes a message and creates an exact
13797         copy of it, but with the refcount set to 1.
13798         (check_message_handling):
13799         Fix build error.
13800
13801         * dbus/dbus-server-protected.h:
13802         * dbus/dbus-server.c: (_dbus_server_init_base),
13803         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13804         (dbus_server_set_timeout_functions):
13805         (_dbus_server_remove_timeout):
13806         New functions so that a server can add and remove timeouts.
13807
13808         (dbus_server_listen):
13809         Add commented out call to dbus_server_debug_new.
13810
13811         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13812         Actually set the handler, doh.
13813
13814         * dbus/dbus-transport.c: (_dbus_transport_open):
13815         Add commented out call to dbus_transport_debug_client_new.
13816
13817         * dbus/Makefile.am:
13818         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13819
13820 2003-01-28  Havoc Pennington  <hp@pobox.com>
13821
13822         * dbus/dbus-message.c (check_message_handling): function to check
13823         on the loaded message, iterates over it etc.
13824
13825 2003-01-28  Havoc Pennington  <hp@pobox.com>
13826
13827         * test/Makefile.am (dist-hook): fix make distdir
13828
13829         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13830
13831 2003-01-27  Havoc Pennington  <hp@pobox.com>
13832
13833         * dbus/dbus-mempool.c (time_for_size): replace printf with
13834         _dbus_verbose
13835
13836         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13837         empty lines; fix the SAVE_LENGTH stuff to be
13838         START_LENGTH/END_LENGTH so it actually works; couple other
13839         bugfixes
13840
13841         * test/Makefile.am (dist-hook): add dist-hook for .message files
13842
13843         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13844         can be constant or locked.
13845         (_dbus_string_free): allow freeing a const string as
13846         documented/intended
13847
13848         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13849
13850         * dbus/dbus-test-main.c (main): take an argument which is the
13851         directory containing test data
13852
13853         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13854         argument to this and load all the messages in test/data/
13855         checking that they can be loaded or not loaded as appropriate.
13856
13857 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13858
13859         * bus/dispatch.c: (bus_dispatch_message_handler):
13860         Dispatch messages sent to services.
13861
13862         * bus/driver.c: (bus_driver_send_service_deleted),
13863         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13864         (bus_driver_send_service_acquired):
13865         Add helper functions for sending service related messages.
13866
13867         (bus_driver_send_welcome_message):
13868         Send HELLO_REPLY instead of WELCOME.
13869
13870         (bus_driver_handle_list_services):
13871         Send LIST_SERVICES_REPLY instead of SERVICES.
13872
13873         (bus_driver_handle_own_service),
13874         (bus_driver_handle_service_exists):
13875         New message handlers.
13876
13877         (bus_driver_handle_message):
13878         Invoke new message handlers.
13879
13880         (bus_driver_remove_connection):
13881         Don't remove any services here since that's done automatically
13882         by bus_service_remove_owner now.
13883
13884         * bus/driver.h:
13885         New function signatures.
13886
13887         * bus/services.c: (bus_service_add_owner):
13888         Send ServiceAcquired message if we're the only primary owner.
13889
13890         (bus_service_remove_owner):
13891         Send ServiceAcquired/ServiceLost messages.
13892
13893         (bus_service_set_prohibit_replacement),
13894         (bus_service_get_prohibit_replacement):
13895         Functions for setting prohibit replacement.
13896
13897         (bus_service_has_owner):
13898         New function that checks if a connection is in the owner queue of
13899         a certain service.
13900
13901         * bus/services.h:
13902         Add new function signatures.
13903
13904         * dbus/dbus-list.c: (_dbus_list_test):
13905         Add tests for _dbus_list_remove_last and traversing the list backwards.
13906
13907         * dbus/dbus-list.h:
13908         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13909         go any further, so return NULL then.
13910
13911         * dbus/dbus-protocol.h:
13912         Add new messages, service flags and service replies.
13913
13914 2003-01-26  Havoc Pennington  <hp@pobox.com>
13915
13916         * dbus/dbus-message-builder.c: implement, completely untested.
13917
13918         * test/data/*: add data to be used in testing.
13919         ".message" files are our simple loadable text format.
13920         ".message-raw" will be binary dumps of messages.
13921
13922         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13923
13924 2003-01-26  Havoc Pennington  <hp@pobox.com>
13925
13926         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13927
13928         * dbus/dbus-errors.c (dbus_result_to_string): add
13929         file errors
13930
13931         * dbus/dbus-message-builder.c: new file, will contain code to load
13932         up messages from files. Not implemented yet.
13933
13934 2003-01-26  Havoc Pennington  <hp@pobox.com>
13935
13936         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13937         the sender by setting to NULL
13938
13939 2003-01-26  Havoc Pennington  <hp@pobox.com>
13940
13941         The unit tests pass, but otherwise untested.  If it breaks, the
13942         tests should have been better. ;-)
13943
13944         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13945         the connection.
13946
13947         * dbus/dbus-message.c: redo everything so we maintain
13948         message->header as the only copy of the various fields.
13949         This avoids the possibility of out-of-memory in some cases,
13950         for example dbus_message_lock() can't run out of memory anymore,
13951         and avoids extra copying. Figured I may as well go ahead and do
13952         this since it was busted for dbus_message_lock to not return
13953         failure on OOM, and dbus_message_write_header was totally
13954         unchecked for OOM. Also fixed some random other bugs.
13955
13956         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13957         that strings are nul-terminated. Also, end_pos can be equal
13958         to string length just not greater than, I think.
13959         (_dbus_marshal_set_int32): new function
13960         (_dbus_marshal_set_uint32): new function
13961         (_dbus_marshal_set_string): new function
13962
13963         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13964         a warning, init timeout_list to NULL
13965         (dbus_connection_send_message): don't use uninitialized variable
13966         "serial"
13967
13968         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13969
13970 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13971
13972         * bus/driver.c: (bus_driver_handle_hello),
13973         (bus_driver_send_welcome_message):
13974         Plug leaks
13975
13976 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13977
13978         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13979         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13980         (dbus_connection_unref):
13981         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13982         * dbus/dbus-message.c: (dbus_message_unref),
13983         Plug memory leaks.
13984
13985         (dbus_message_get_fields):
13986         Remove debugging printout.
13987
13988         (_dbus_message_loader_return_buffer):
13989         Don't store the header string.
13990
13991         (_dbus_message_test):
13992         Plug leaks.
13993
13994 2003-01-26  Richard Hult  <rhult@codefactory.se>
13995
13996         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13997         the file descriptor list, since it can change under us.
13998
13999 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14000
14001         * glib/dbus-gmain.c: (dbus_connection_prepare),
14002         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14003         (remove_watch), (dbus_connection_hookup_with_g_main):
14004         Rewrite the glib handling to use its own GSource instead of a
14005         GIOChannel so we can catch messages put in the queue while waiting
14006         for a reply.
14007
14008 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14009
14010         * bus/Makefile.am:
14011         * bus/connection.c: (connection_disconnect_handler),
14012         (connection_watch_callback), (bus_connection_setup):
14013         * bus/dispatch.c: (send_one_message),
14014         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14015         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14016         * bus/dispatch.h:
14017         * bus/driver.c: (bus_driver_send_service_deleted),
14018         (bus_driver_send_service_created), (bus_driver_handle_hello),
14019         (bus_driver_send_welcome_message),
14020         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14021         (bus_driver_handle_message):
14022         * bus/driver.h:
14023         Refactor code, put the message dispatching in its own file. Use
14024         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14025         is disconnected.
14026
14027 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14028
14029         * dbus/dbus-internals.h:
14030         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14031
14032         * dbus/dbus-message.c: (dbus_message_get_sender):
14033         * dbus/dbus-message.h:
14034         Implement dbus_message_get_sender.
14035
14036         * dbus/dbus-protocol.h:
14037         Add message and service defines.
14038
14039 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14040
14041         * dbus/dbus-connection.c: (dbus_connection_send_message):
14042         * dbus/dbus-message-internal.h:
14043         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14044         (dbus_message_write_header):
14045         Remove _dbus_messag_unlock and don't set the client serial on a
14046         message if one already exists.
14047
14048 2003-01-24  Havoc Pennington  <hp@pobox.com>
14049
14050         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14051         list_pool
14052
14053         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14054         on OOM
14055
14056 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14057
14058         * dbus/dbus-list.c: (alloc_link), (free_link):
14059         Use a memory pool for the links.
14060
14061 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14062
14063         * bus/connection.c: (bus_connection_foreach):
14064         * bus/connection.h:
14065         Add new bus_connection_foreach function.
14066
14067         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14068         Add function that broadcasts a message to all clients.
14069
14070         (bus_driver_send_service_created), (bus_driver_handle_hello),
14071         (bus_driver_send_welcome_message),
14072         (bus_driver_handle_list_services), (bus_driver_message_handler):
14073         Implement functions that take care of listing services, and notifying
14074         clients when new services are created.
14075
14076         * bus/services.c: (bus_services_list):
14077         * bus/services.h:
14078         Add new function that returns an array of strings with the currently
14079         registered services.
14080
14081         * glib/dbus-glib.h:
14082         * glib/dbus-gmain.c:
14083         Update copyright year.
14084
14085 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14086
14087         * dbus/dbus-connection.c: (dbus_connection_send_message):
14088         Unlock the message in case it was sent earlier.
14089
14090         (dbus_connection_send_message_with_reply_and_block):
14091         Remove the reply message from the list.
14092
14093         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14094         Set array_len and new_pos correctly.
14095
14096         (_dbus_marshal_test):
14097         Remove debug output.
14098
14099         * dbus/dbus-message-internal.h:
14100         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14101         New function that returns the reply serial.
14102
14103         (_dbus_message_unlock):
14104         New function that unlocks a message and resets its header.
14105
14106         (dbus_message_append_string_array),
14107         (dbus_message_get_fields_valist),
14108         (dbus_message_iter_get_field_type),
14109         (dbus_message_iter_get_string_array),
14110         (dbus_message_get_fields),
14111         (dbus_message_append_fields_valist):
14112         Handle string arrays.
14113
14114         (dbus_message_set_sender):
14115         Make this function public since the bus daemon needs it.
14116
14117         (decode_header_data):
14118         Set the reply serial to -1 initially.
14119
14120         * dbus/dbus-message.h:
14121         Add dbus_message_set_sender.
14122
14123 2003-01-24  Havoc Pennington  <hp@pobox.com>
14124
14125         * doc/dbus-specification.sgml: add some stuff
14126
14127 2003-01-22  Havoc Pennington  <hp@pobox.com>
14128
14129         * doc/dbus-specification.sgml: Start to document the protocol.
14130
14131 2003-01-22  Havoc Pennington  <hp@pobox.com>
14132
14133         * dbus/dbus-connection.c
14134         (dbus_connection_send_message_with_reply_and_block): add some @todo
14135
14136         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14137
14138 2003-01-21  Havoc Pennington  <hp@pobox.com>
14139
14140         (patch untested because can't compile)
14141
14142         * bus/driver.c (create_unique_client_name): make this function
14143         never recycle client names. Also, caller should initialize
14144         the DBusString.
14145
14146         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14147
14148 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14149
14150         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14151         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14152         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14153         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14154         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14155         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14156         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14157         * dbus/dbus-marshal.h:
14158         * dbus/dbus-protocol.h:
14159         Add support for marshalling and demarshalling integer, double
14160         and string arrays.
14161
14162 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14163
14164         * bus/Makefile.am:
14165         Add driver.[ch]
14166
14167         * bus/connection.c: (connection_disconnect_handler):
14168         Remove the connection from the bus driver's list.
14169
14170         (connection_watch_callback): Dispatch messages.
14171
14172         (free_connection_data): Free connection name.
14173
14174         (bus_connection_setup): Add connection to the bus driver's list.
14175         (bus_connection_remove_owned_service):
14176         (bus_connection_set_name), (bus_connection_get_name):
14177         Add functions for setting and getting the connection's name.
14178
14179         * bus/connection.h:
14180         Add function headers.
14181
14182         * bus/driver.c: (create_unique_client_name),
14183         (bus_driver_handle_hello_message),
14184         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14185         (bus_driver_add_connection), (bus_driver_remove_connection):
14186         * bus/driver.h:
14187         * bus/main.c:
14188         * bus/services.c: (bus_service_free):
14189         * bus/services.h:
14190         New file that handles communication and registreation with the bus
14191         itself.
14192
14193 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14194
14195         * dbus/dbus-connection.c: (dbus_connection_send_message):
14196         Add a new client_serial parameter.
14197
14198         (dbus_connection_send_message_with_reply):
14199         Remove a @todo since we've implemented the blocking function.
14200
14201         (dbus_connection_send_message_with_reply_and_block):
14202         New function that sends a message and waits for a reply and
14203         then returns the reply.
14204
14205         * dbus/dbus-connection.h:
14206         Add new functions.
14207
14208         * dbus/dbus-errors.c: (dbus_result_to_string):
14209         * dbus/dbus-errors.h:
14210         Add new DBUS_RESULT.
14211
14212         * dbus/dbus-message-internal.h:
14213         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14214         (_dbus_message_set_sender), (dbus_message_write_header),
14215         (dbus_message_new_reply), (decode_header_data),
14216         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14217         * dbus/dbus-message.h:
14218         Add new functions that set the reply serial and sender.
14219         Also marshal and demarshal them correctly and add test.
14220
14221         * dbus/dbus-protocol.h:
14222         Add new DBUS_MESSAGE_TYPE_SENDER.
14223
14224         * glib/dbus-glib.h:
14225         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14226         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14227         (dbus_connection_hookup_with_g_main):
14228         * glib/test-dbus-glib.c: (main):
14229         Rewrite to use GIOChannel and remove the GSource crack.
14230
14231         * test/echo-client.c: (main):
14232         * test/watch.c: (check_messages):
14233         Update for changed APIs
14234
14235 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14236
14237         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14238
14239         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14240         Create a DBusTimeoutList.
14241         (dbus_connection_set_timeout_functions): Add new function to
14242         set timeout callbacks
14243
14244         * dbus/dbus-connection.h: Add public DBusTimeout API.
14245
14246         * dbus/dbus-message.c: (dbus_message_get_service):
14247         * dbus/dbus-message.h:  New function.
14248
14249         * dbus/dbus-server.c: Fix small doc typo.
14250
14251         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14252
14253 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14254
14255         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14256         of the string, just as long as specified.
14257
14258 2003-01-19  Havoc Pennington  <hp@pobox.com>
14259
14260         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14261         new function
14262
14263         * dbus/dbus-server.c (dbus_server_set_max_connections)
14264         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14265         keep track of current number of connections, and add API for
14266         setting a max (but haven't implemented enforcing the max yet)
14267
14268 2003-01-18  Havoc Pennington  <hp@pobox.com>
14269
14270         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14271         reading/writing if read_watch != NULL or write_watch != NULL.
14272
14273         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14274         the message loader code to actually load message->header and
14275         message->body into the newly-created message.
14276
14277         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14278         in OOM case
14279
14280         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14281         (dbus_connection_get_max_message_size)
14282         (dbus_connection_set_max_live_messages_size)
14283         (dbus_connection_get_max_live_messages_size): implement some
14284         resource limitation functions
14285
14286         * dbus/dbus-resources.c: new file implementing some of the
14287         resource limits stuff
14288
14289         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14290         missing docs, add @todo to handle OOM etc.
14291
14292         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14293         docs
14294
14295 2003-01-18  Havoc Pennington  <hp@pobox.com>
14296
14297         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14298         connection if it hasn't been already.
14299
14300         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14301         replace with DisconnectFunction.
14302
14303 2003-01-18  Havoc Pennington  <hp@pobox.com>
14304
14305         Building --disable-verbose-mode --disable-asserts --disable-tests
14306         cuts the library from 112K to 45K or so
14307
14308         * configure.in: check for varargs macro support,
14309         add --enable-verbose-mode, --enable-asserts.
14310
14311         * dbus/dbus-internals.h (_dbus_assert): support
14312         DBUS_DISABLE_ASSERT
14313         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14314
14315 2003-01-18  Havoc Pennington  <hp@pobox.com>
14316
14317         * dbus/dbus-test.c: include config.h so that tests actually run
14318
14319         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14320         so the failure mode when that assumption fails will be plenty
14321         obvious.
14322
14323 2003-01-18  Havoc Pennington  <hp@pobox.com>
14324
14325         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14326
14327         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14328         the distribution
14329
14330         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14331         since we don't want to use those in make check
14332
14333 2003-01-15  Havoc Pennington  <hp@redhat.com>
14334
14335         Release 0.2
14336
14337         * NEWS: update
14338
14339 2003-01-15  Havoc Pennington  <hp@redhat.com>
14340
14341         * test/Makefile.am: fix so that test source code ends up in the
14342         distribution on make distcheck
14343
14344 2003-01-15  Havoc Pennington  <hp@redhat.com>
14345
14346         Release 0.1.
14347
14348         * NEWS: update
14349
14350 2003-01-15  Havoc Pennington  <hp@redhat.com>
14351
14352         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14353         fix build when --disable-tests
14354
14355         * Makefile.am (EXTRA_DIST): put HACKING in here
14356
14357         * HACKING: document procedure for making a tarball release.
14358
14359 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14360
14361         * bus/connection.c: (connection_error_handler),
14362         (bus_connection_setup):
14363         * bus/main.c: (main):
14364         Make sure that the DBusConnectionData struct is NULLed
14365         out to prevent a segfault.
14366
14367         * dbus/dbus-errors.c: (dbus_result_to_string):
14368         * dbus/dbus-errors.h:
14369         * dbus/dbus-message.c: (dbus_message_get_fields),
14370         (dbus_message_get_fields_valist), (_dbus_message_test):
14371         * dbus/dbus-message.h:
14372         Make dbus_message_get_fields return a result code so we can
14373         track invalid fields as well as oom.
14374
14375 2003-01-11  Havoc Pennington  <hp@pobox.com>
14376
14377         * configure.in: change --enable-test/--enable-ansi action-if-given
14378         to enable_foo=$enableval instead of enable_foo=yes
14379
14380 2003-01-08  Havoc Pennington  <hp@pobox.com>
14381
14382         * dbus/dbus-string.c (_dbus_string_align_length): new function
14383
14384         * dbus/dbus-test-main.c: move main() for test app here
14385         * dbus/dbus-test.c
14386         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14387         symbol to run tests, because dbus-test isn't in the main
14388         library
14389
14390         Code review nitpicks.
14391
14392         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14393         for people with narrow emacs ;-). Assert client_serial was filled
14394         in. Assert message->name != NULL.
14395         (dbus_message_append_fields): have "first_field_type" arg separate
14396         from va list, needed for C++ binding that also uses varargs IIRC
14397         and helps with type safety
14398         (dbus_message_new): add @todo about using DBusString to store
14399         service/name internally
14400         (dbus_message_new): don't leak ->service and ->name on OOM later
14401         in the function
14402         (dbus_message_unref): free the service name
14403         (dbus_message_get_fields): same change to varargs
14404         i.e. first_field_type
14405         (_dbus_message_loader_return_buffer): assert that the message data
14406         is aligned (if not it's a bug in our code). Put in verbose griping
14407         about why we set corrupted = TRUE.
14408         (decode_header_data): add FIXME that char* is evil.  Was going to
14409         add FIXME about evil locale-specific string.h strncmp, but just
14410         switched to wacky string-as-uint32 optimization. Move check for
14411         "no room for field name" above get_const_data_len() to avoid
14412         assertion failure in get_const_data_len if we have trailing 2
14413         bytes or the like. Check for service and name fields being
14414         provided twice. Don't leak service/name on error. Require field
14415         names to be aligned to 4 bytes.
14416
14417         * dbus/dbus-marshal.c: move byte swap stuff to header
14418         (_dbus_pack_int32): uscore-prefix
14419         (_dbus_unpack_int32): uscore-prefix
14420         (_dbus_unpack_uint32): export
14421         (_dbus_demarshal_string): add @todo complaining about use of
14422         memcpy()
14423         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14424         handling allowing corrupt data to go unchecked
14425
14426 2003-01-08  Havoc Pennington  <hp@redhat.com>
14427
14428         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14429         to the select() as needed for authentication. (should be using
14430         _dbus_poll() not select, but for another day)
14431
14432         * dbus/dbus.h: include dbus/dbus-protocol.h
14433
14434 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14435
14436         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14437         dbus-connection.h
14438
14439 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14440
14441         * dbus/dbus-internals.c: (_dbus_type_to_string):
14442         New function that returns a string describing a type.
14443
14444         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14445         * dbus/dbus-marshal.h:
14446         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14447         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14448         (dbus_message_iter_get_byte_array):
14449         * dbus/dbus-message.h:
14450         Add new convenience functions for appending and getting message fields.
14451         Also add demarshalling routines for byte arrays.
14452
14453 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14454
14455         * dbus/dbus-connection-internal.h:
14456         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14457         (_dbus_connection_get_next_client_serial),
14458         (dbus_connection_send_message):
14459         * dbus/dbus-internals.h:
14460         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14461         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14462         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14463         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14464         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14465         (_dbus_verbose_bytes), (_dbus_marshal_test):
14466         * dbus/dbus-marshal.h:
14467         * dbus/dbus-message-internal.h:
14468         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14469         (dbus_message_write_header), (_dbus_message_lock),
14470         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14471         (dbus_message_get_name), (dbus_message_append_int32),
14472         (dbus_message_append_uint32), (dbus_message_append_double),
14473         (dbus_message_append_string), (dbus_message_append_byte_array),
14474         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14475         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14476         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14477         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14478         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14479         (decode_header_data), (_dbus_message_loader_return_buffer),
14480         (message_iter_test), (_dbus_message_test):
14481         * dbus/dbus-message.h:
14482         * dbus/dbus-protocol.h:
14483         * dbus/dbus-test.c: (main):
14484         * dbus/dbus-test.h:
14485         * glib/test-dbus-glib.c: (message_handler), (main):
14486         * test/echo-client.c: (main):
14487         * test/watch.c: (check_messages):
14488         Make messages sendable and receivable for real.
14489
14490 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14491
14492         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14493         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14494         * dbus/dbus-message.c: (dbus_message_append_int32),
14495         (dbus_message_append_uint32), (dbus_message_append_double),
14496         (dbus_message_append_string), (dbus_message_append_byte_array):
14497         Handle OOM restoration.
14498
14499 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14500
14501         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14502         (_dbus_demarshal_string), (_dbus_marshal_test):
14503         * dbus/dbus-marshal.h:
14504         * dbus/dbus-message.c: (dbus_message_get_name),
14505         Document these functions.
14506
14507         (dbus_message_append_int32), (dbus_message_append_uint32),
14508         (dbus_message_append_double), (dbus_message_append_string),
14509         (dbus_message_append_byte_array):
14510         * dbus/dbus-message.h:
14511         Add functions for adding message fields of different types.
14512
14513         * dbus/dbus-protocol.h:
14514         Add the different types.
14515
14516 2003-01-05  Havoc Pennington  <hp@pobox.com>
14517
14518         * bus/connection.c: implement routines for handling connections,
14519         first thing is keeping a list of owned services on each connection
14520         and setting up watches etc.
14521
14522         * bus/services.c: implement a mapping from service names to lists
14523         of connections
14524
14525         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14526
14527         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14528         to use static mutexes for global data
14529
14530         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14531         collection of functions to set/get application-specific data
14532         on the DBusConnection.
14533
14534 2003-01-04  Havoc Pennington  <hp@pobox.com>
14535
14536         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14537         (_dbus_poll): new function
14538
14539         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14540         copied from GLib
14541
14542         * bus/loop.c: initial code for the daemon main loop
14543
14544 2003-01-04  Havoc Pennington  <hp@pobox.com>
14545
14546         * test/watch.c (error_handler): make it safe if the error handler
14547         is called multiple times (if we s/error handler/disconnect
14548         handler/ we should just guarantee it's called only once)
14549
14550         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14551         error handler on disconnect (it's quite possible we should
14552         just change the error handler to a "disconnect handler," I'm
14553         not sure we have any other meaningful errors)
14554
14555         * configure.in: check for getpwnam_r
14556
14557         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14558         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14559         mechanism as in SASL spec, using socket credentials
14560
14561         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14562         (_dbus_send_credentials_unix_socket): new function
14563
14564         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14565         dbus_accept()
14566         (_dbus_write): only check errno if <0 returned
14567         (_dbus_write_two): ditto
14568
14569 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14570
14571         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14572         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14573         (_dbus_marshal_test):
14574         * dbus/dbus-marshal.h:
14575         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14576         to _dbus_marshal_utf8_string. Also fix some tests.
14577
14578 2002-12-28  Harri Porten  <porten@kde.org>
14579
14580         * configure.in: added check for C++ compiler and a very cheesy
14581         check for the Qt integration
14582
14583         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14584
14585         * qt/Makefile.am: added
14586
14587         * qt/.cvsignore: added
14588
14589         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14590         latter, added #ifdef QT_THREAD_SUPPORT guard.
14591
14592         * dbus/Makefile.am: added missing headers for make dist
14593
14594 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14595
14596         * dbus/Makefile.am: fixup export-symbols-regex.
14597
14598 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14599
14600         * acinclude.m4: Add this file and put the
14601         PKG_CHECK_MODULE macro in it.
14602
14603 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14604
14605         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14606         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14607         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14608         (_dbus_marshal_test):
14609         Make the demarshalling routines align the pos argument.
14610         Add string marshalling tests and fix the obvious bugs
14611         discovered.
14612
14613 2002-12-26  Havoc Pennington  <hp@pobox.com>
14614
14615         * dbus/dbus-auth.c: fixes fixes fixes
14616
14617         * dbus/dbus-transport-unix.c: wire up support for
14618         encoding/decoding data on the wire
14619
14620         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14621         (_dbus_auth_decode_data): append to target string
14622         instead of nuking it.
14623
14624 2002-12-26  Havoc Pennington  <hp@pobox.com>
14625
14626         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14627         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14628         doh
14629
14630         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14631         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14632         now). Main point is because I wanted unpack_uint32 to implement
14633         _dbus_verbose_bytes
14634         (_dbus_verbose_bytes): new function
14635
14636         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14637
14638         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14639         mechanism to handle a corrupt message stream
14640         (_dbus_message_loader_new): fix preallocation to only prealloc,
14641         not prelengthen
14642
14643         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14644         (_dbus_string_test): enhance tests for copy/move and fix the
14645         functions
14646
14647         * dbus/dbus-transport-unix.c: Hold references in more places to
14648         avoid reentrancy problems
14649
14650         * dbus/dbus-transport.c: ditto
14651
14652         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14653         leak reference count in no-message case
14654
14655         * test/watch.c (do_mainloop): handle adding/removing watches
14656         during iteration over the watches. Also, ref the connection/server
14657         stored on a watch, so we don't try to mangle a destroyed one.
14658
14659         * dbus/dbus-transport-unix.c (do_authentication): perform
14660         authentication
14661
14662         * dbus/dbus-auth.c (get_state): add a state
14663         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14664         (_dbus_auth_get_unused_bytes): append the unused bytes
14665         to the passed in string, rather than prepend
14666
14667         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14668         the auth conversation DBusAuth
14669
14670         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14671         (_dbus_transport_new_for_domain_socket): when creating a
14672         transport, pass in whether it's a client-side or server-side
14673         transport so we know which DBusAuth to create
14674
14675 2002-12-03  Havoc Pennington  <hp@pobox.com>
14676
14677         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14678         _after_ finalizing the derived members
14679         (unix_connection_set): unref watch if we fail to add it
14680
14681         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14682         transport first, so that the connection owned by the
14683         transport will be valid as the transport finalizes.
14684
14685         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14686         if necessary, and remove watches from the connection.
14687
14688         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14689
14690 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14691
14692         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14693         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14694         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14695         (_dbus_marshal_test):
14696         * dbus/dbus-marshal.h:
14697         Add string marshal functions and have the demarshal functions
14698         return the new position.
14699
14700 2002-12-25  Havoc Pennington  <hp@pobox.com>
14701
14702         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14703         it is a simple protocol that just maps directly to SASL.
14704
14705         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14706         initial implementation, not actually used yet.
14707
14708         * dbus/dbus-string.c (_dbus_string_find): new function
14709         (_dbus_string_equal): new function
14710         (_dbus_string_base64_encode): new function
14711         (_dbus_string_base64_decode): new function
14712
14713 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14714
14715         * dbus/Makefile.am:
14716         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14717         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14718         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14719         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14720         * dbus/dbus-marshal.h:
14721         * dbus/dbus-protocol.h:
14722         * dbus/dbus-test.c: (main):
14723         * dbus/dbus-test.h:
14724         Add un-optimized marshalling/demarshalling routines.
14725
14726 2002-12-25  Harri Porten  <porten@kde.org>
14727
14728         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14729
14730 2002-12-24  Zack Rusin  <zack@kde.org>
14731
14732         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14733         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14734         main loop stuff
14735
14736 2002-12-24  Havoc Pennington  <hp@pobox.com>
14737
14738         * glib/dbus-gthread.c: fix include
14739
14740         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14741         I think glib API needs to change, though, as you don't
14742         want to use DBusMessageFunction, you want to use the
14743         DBusMessageHandler object. Probably
14744         dbus_connection_open_with_g_main_loop()
14745         and dbus_connection_setup_g_main_loop() or something like that
14746         (but think of better names...) that just create a connection
14747         that has watch/timeout functions etc. already set up.
14748
14749         * dbus/dbus-connection.c
14750         (dbus_connection_send_message_with_reply): new function just to
14751         show how the message handler helps us deal with replies.
14752
14753         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14754
14755         * dbus/dbus-string.c (_dbus_string_test): free a string that
14756         wasn't
14757
14758         * dbus/dbus-hash.c: use memory pools for the hash entries
14759         (rebuild_table): be more paranoid about overflow, and
14760         shrink table when we can
14761         (_dbus_hash_test): reduce number of sprintfs and write
14762         valid C89. Add tests for case where we grow and then
14763         shrink the hash table.
14764
14765         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14766
14767         * dbus/dbus-connection.c (dbus_connection_register_handler)
14768         (dbus_connection_unregister_handler): new functions
14769
14770         * dbus/dbus-message.c (dbus_message_get_name): new
14771
14772         * dbus/dbus-list.c: fix docs typo
14773
14774         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14775         an object representing a handler for messages.
14776
14777 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14778
14779         * glib/dbus-glib.h:
14780         * glib/dbus-gthread.c: (dbus_gthread_init):
14781         Don't use the gdbus prefix for public functions.
14782
14783 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14784
14785         * Makefile.am:
14786         * configure.in:
14787         Add GLib checks and fixup .pc files
14788
14789         * glib/Makefile.am:
14790         * glib/dbus-glib.h:
14791         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14792         (gdbus_connection_check), (gdbus_connection_dispatch),
14793         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14794         (dbus_connection_gsource_new):
14795         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14796         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14797         * glib/test-dbus-glib.c: (message_handler), (main):
14798         Add GLib support.
14799
14800 2002-12-15  Harri Porten  <porten@kde.org>
14801
14802         * autogen.sh: check for libtoolize before attempting to use it
14803
14804         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14805         struct.
14806
14807         * .cvsignore: ignore more stamp files
14808
14809         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14810
14811         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14812         without make install.
14813
14814 2002-12-15  Havoc Pennington  <hp@pobox.com>
14815
14816         * dbus/dbus-threads.c: add thread stubs that a higher library
14817         layer can fill in. e.g. the GLib wrapper might fill them in with
14818         GThread stuff. We still need to use this thread API to
14819         thread-safe-ize the library.
14820
14821 2002-12-12  Havoc Pennington  <hp@pobox.com>
14822
14823         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14824         below new interfaces and include fewer system headers.
14825
14826         * dbus/dbus-sysdeps.c (_dbus_read): new function
14827         (_dbus_write): new function
14828         (_dbus_write_two): new function
14829         (_dbus_connect_unix_socket): new function
14830         (_dbus_listen_unix_socket): new function
14831
14832         * dbus/dbus-message-internal.h: change interfaces to use
14833         DBusString
14834
14835 2002-12-11  Havoc Pennington  <hp@pobox.com>
14836
14837         * dbus/dbus-types.h: add dbus_unichar
14838
14839         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14840
14841         * dbus/dbus-connection.c (dbus_connection_send_message): return
14842         TRUE on success
14843
14844         * dbus/dbus-transport.c: include dbus-watch.h
14845
14846         * dbus/dbus-connection.c: include dbus-message-internal.h
14847
14848         * HACKING: add file with coding guidelines stuff.
14849
14850         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14851         handling here, for security purposes (as in vsftpd). Not actually
14852         using this class yet.
14853
14854         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14855         system/libc usage here, as in vsftpd, for ease of auditing (and
14856         should also simplify portability). Haven't actually moved all the
14857         system/libc usage into here yet.
14858
14859 2002-11-25  Havoc Pennington  <hp@pobox.com>
14860
14861         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14862         always print the first verbose message.
14863
14864 2002-11-24  Havoc Pennington  <hp@pobox.com>
14865
14866         * test/echo-client.c, test/echo-server.c: cheesy test
14867         clients.
14868
14869         * configure.in (AC_CHECK_FUNCS): check for writev
14870
14871         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14872         function
14873
14874         * dbus/dbus-list.c (_dbus_list_foreach): new function
14875
14876         * dbus/dbus-internals.c (_dbus_verbose): new function
14877
14878         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14879         representing a server that listens for connections.
14880
14881         * dbus/.cvsignore: create
14882
14883         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14884         public API for reporting errors
14885
14886         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14887         public object representing a connection that
14888         sends/receives messages. (Same object used for
14889         both client and server.)
14890
14891         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14892         Basic abstraction for different kinds of stream
14893         that we might read/write messages from.
14894
14895 2002-11-23  Havoc Pennington  <hp@pobox.com>
14896
14897         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14898         _DBUS_INT_MAX
14899
14900         * dbus/dbus-test.c (main): add list test, and include
14901         dbus-test.h as intended
14902
14903         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14904         (_dbus_hash_table_remove_int): return value indicates
14905         whether the entry existed to remove
14906
14907         * dbus/dbus-list.c: add linked list utility class,
14908         with docs and tests
14909
14910         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14911         array sometimes.
14912
14913 2002-11-23  Havoc Pennington  <hp@pobox.com>
14914
14915         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14916         DBUS_END_DECLS to nothing, that should fix this once and for all
14917
14918         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14919
14920         * dbus/dbus-message.c, dbus/dbus-hash.c:
14921         add some missing @brief
14922
14923 2002-11-23  Havoc Pennington  <hp@pobox.com>
14924
14925         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14926         to avoid confusing Doxygen
14927
14928         * dbus/dbus-hash.c: @} not }@
14929
14930         * dbus/dbus-message.c (struct DBusMessage): split out
14931         internals docs
14932
14933 2002-11-23  Havoc Pennington  <hp@pobox.com>
14934
14935         * configure.in: pile on more warning flags if using gcc
14936
14937         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14938         to document static functions
14939
14940         * configure.in: add summary to end of configure so it
14941         looks nice and attractive
14942
14943         * dbus/dbus-hash.c: finish implementation and write unit
14944         tests and docs
14945
14946         * configure.in: add --enable-tests to enable unit tests
14947
14948         * dbus/dbus-test.c: test program to run unit tests
14949         for all files in dbus/*, initially runs a test for
14950         dbus-hash.c
14951
14952         * dbus/dbus-internals.h: file to hold some internal utility stuff
14953
14954 2002-11-22  Havoc Pennington  <hp@redhat.com>
14955
14956         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14957         "ported" away from Tcl
14958
14959         * dbus/dbus-types.h: header for types such as dbus_bool_t
14960
14961 2002-11-22  Havoc Pennington  <hp@redhat.com>
14962
14963         * dbus/dbus.h: fixups for doc warnings
14964
14965         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14966         macros
14967         (QUIET): make it quiet so we can see warnings
14968
14969         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14970
14971 2002-11-22  Havoc Pennington  <hp@redhat.com>
14972
14973         * Makefile.am: include "Doxyfile" target in all-local
14974
14975         * configure.in: generate the Doxyfile
14976
14977         * Doxyfile.in: move Doxyfile here, so we can use
14978         configure to generate a Doxyfile with the right
14979         version number etc.
14980
14981 2002-11-22  Havoc Pennington  <hp@redhat.com>
14982
14983         * dbus/dbus-message.c: move inline docs into .c file
14984
14985         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14986         so all docs are under doc/
14987         (MAN_EXTENSION): generate man pages. Use extension
14988         ".3dbus" which matches ".3qt" on my system,
14989         I guess this is OK, I don't know really.
14990         (FILE_PATTERNS): look for .c files not .h, makes sense
14991         for plain C I think
14992
14993 2002-11-22  Havoc Pennington  <hp@pobox.com>
14994
14995         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14996         because any app can be a server, and any app can be a client,
14997         the bus is a special kind of server.
14998
14999 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15000
15001         * Doxyfile : adding. Still needs Makefile rules to be generated
15002         automatically (just run "doxygen" in the toplevel dir for now to
15003         generate docs)
15004
15005         * dbus/dbus-message.h : Adding sample docs (javadoc since
15006         resembles gtk-doc a little more)
15007
15008         * dbus/dbus.h : Adding sample docs
15009
15010 2002-11-21  Havoc Pennington  <hp@redhat.com>
15011
15012         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15013         so we can allow ourselves to include files directly,
15014         instead of having to use dbus.h
15015
15016         * dbus/dbus.h: fill in
15017
15018         * dbus/dbus-message.h: sketch out a sample header file.
15019         Include griping if you include it directly instead of
15020         via dbus.h
15021
15022         * dbus/dbus-macros.h: new file with macros for extern "C",
15023         TRUE/FALSE, NULL, etc.
15024
15025         * doc/file-boilerplate.c: put include guards in here
15026
15027 2002-11-21  Havoc Pennington  <hp@redhat.com>
15028
15029         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15030
15031         * COPYING: include the GPL as well, and license code
15032         under both AFL and GPL.
15033
15034 2002-11-21  Havoc Pennington  <hp@redhat.com>
15035
15036         * acconfig.h: get rid of this
15037
15038         * autogen.sh (run_configure): add --no-configure option
15039
15040         * configure.in: remove AC_ARG_PROGRAM to make
15041         autoconf complain less. add AC_PREREQ.
15042         add AC_DEFINE third arg.
15043
15044 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15045
15046         * doc/Makefile.am:
15047         Fix references so we can distcheck.
15048
15049 2002-11-21  Havoc Pennington  <hp@redhat.com>
15050
15051         * Initial module creation
15052