2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2
3         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
4         make/automake don't detect that we're talking about the same
5         .lo file if I specify the full path to the source files.
6
7 2006-02-26  Havoc Pennington  <hp@redhat.com>
8
9         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
10
11         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
12         session bus variable is unset, suggest "man dbus-launch" and "man
13         dbus-daemon" to figure out how to fix the problem
14
15 2006-02-25  Havoc Pennington  <hp@redhat.com>
16
17         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
18         should make this thing use the new glib options parser
19
20 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
21
22         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
23         .lo files taking moc sources.
24
25 2006-02-25  Havoc Pennington  <hp@redhat.com>
26
27         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
28         and install it as a public header
29
30 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
31
32         * Released 0.61
33
34 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
35         
36         * proxies.py: Fix the callchain
37
38 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
39         
40         * patch from Sjoerd Simons <sjoerd at debian.org>:      
41
42         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
43         dbus/dbus-sysdeps.c
44
45         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
46         call _dbus_group_info_free_allocated which causes infinite loop,
47         correctly call _dbus_group_info_free
48
49 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
50
51         * qt/qdbusinterface_p.h:
52         * qt/qdbusinterface.cpp: Use the standard
53         org.freedesktop.DBus.Method.NoReply annotation for the "async"
54         calls instead of creating one for us.
55
56         * qt/qdbusconnection_p.h:
57         * qt/qdbusintegrator.cpp: Remove debugging code.
58
59         * qt/qdbusintegrator.cpp:
60         * qt/qdbusmessage.cpp:
61         * qt/qdbusmessage_p.h:
62         * qt/qdbusmessage.h: Change the behaviour of automatic
63         reply-sending: now a reply is always sent, unless the caller
64         didn't request one or if the user slot has already sent one.
65
66 2006-02-16  Robert McQueen  <robot101@debian.org>
67
68         * configure.in: Patch from Debian packages by Sjoerd Simons
69         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
70         arguments so it's possible to build both bindings in the
71         same tree.
72
73         * qt/Makefile.am: Fix truncated value so that make dist works.
74
75 2006-02-16  Robert McQueen  <robot101@debian.org>
76
77         * acinclude.m4, configure.in: Patch from Brad Hards
78         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
79         improving quoting, re-ordering a few checks, and a few other
80         aesthetic tidy-ups.
81
82 2006-02-16  Robert McQueen  <robot101@debian.org>
83
84         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
85         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
86         assertion that the next element to read from the iter is fixed in
87         size. This is not the case when you are at the end of the iter,
88         because the next element type is INVALID.
89
90         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
91         a bogus assert which means that you may not initialise a 0-length
92         string unless you provide a non-NULL pointer. This prevented
93         you from marshalling messages containing zero-length arrays in
94         some cases.
95
96         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
97         from Rob to correct bogus asserts when trying to demarshal an
98         array and get_fixed_array got you 0 elements. Append nothing to
99         the GArray in this case.
100
101         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
102         an empty array via the glib bindings. Without all of the above
103         patches, this new test fails.
104
105 2006-02-16  Robert McQueen  <robot101@debian.org>
106
107         * glib/dbus-gmain.c: Make the previous commit compile.
108
109         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
110         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
111         specify sender_keyword="foo", path_keyword="bar" when adding
112         a signal listener, so that you can bind to signals generically
113         but still do something useful in your callback.
114
115         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
116         chars so that they're not cast to chars and made negative. Thanks
117         to Jakub Stachowski for reporting this and testing the fix.
118
119 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
120
121         * dbus/dbus-glib.h:
122         * glib/dbus-gmain.h:
123         (dbus_g_connection_open): new method for openning
124         a connection to an arbitrary address in the glib bindings
125
126         * ChangeLog: checkin last entry which doesn't seem to be commited
127
128 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
129
130         * tools/dbus-launch.c: Fixed sh syntax output
131
132 2006-02-13  Robert McQueen  <robot101@debian.org>
133
134         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
135         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
136         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
137         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
138         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
139         missing piece of the glib bindings jigsaw puzzle. This modifies
140         the existing specialised types to have N type parameters (rather
141         than the current 1 or 2 for arrays and dictionaries respectively).
142         You can then use this to get a glib type to represent any arbitrary
143         D-Bus struct type using dbus_g_type_get_struct. The only
144         implementation of these types is with GValueArrays as before,
145         but it's now possible to store these in arrays, emit them in
146         signals, etc.
147
148 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
149
150         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
151         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
152         <thiago.macieira at trolltech.com>
153
154 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
155
156         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
157         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
158
159 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
160
161         * bus/connection.c (bus_connections_expect_reply): Make
162         pending reply limit not common to all connections (Bug #5416)
163         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
164
165 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
166
167         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
168
169 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
170
171         * gcj/Makefile.am: point to correct jar command (Bug #4529)
172         patch from Doug Goldstein <cardoe at gentoo.org>
173
174 2006-02-09  Joe Shaw  <joeshaw@novell.com>
175
176         * mono/Arguments.cs: Fix a magic number in the mono bindings
177         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
178
179 2006-01-27  Robert McQueen  <robot101@debian.org>
180
181         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
182         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
183         when generating the client-side methods, instead of overloading
184         CSymbol which broke everything horribly. My apologies.
185
186 2006-01-27  Robert McQueen  <robot101@debian.org>
187
188         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
189         by me and Rob Taylor to add a simple_free function to D-Bus map
190         and collection types, which allows those types which can be freed
191         with a GDestroyNotify (such as GHashTables and GArrays, but not
192         GPtrArrays) to be stored as the values in hashtables.
193
194         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
195         Patch by Rob Taylor to add nested dicts to the glib tests to check
196         the above code works, and appears not to leak when called repeatedly.
197
198 2006-01-27  Robert McQueen  <robot101@debian.org>
199
200         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
201         to free a D-Bus allocated string with dbus_free () instead of
202         g_free ().
203
204 2006-01-27  Iain Holmes  <iain@openedhand.com>
205
206         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
207         method from being called multiple times.
208
209 2006-01-19  Robert McQueen  <robot101@debian.org>
210
211         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
212         <rob.taylor@collabora.co.uk> to add support for generating bindings
213         to arrays that are represented as GPtrArrays rather than GArrays (ie
214         size-variable things, such as strings, objects, structs, etc).
215
216 2006-01-05  Robert McQueen  <robot101@debian.org>
217
218         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
219         <ricardo.kekki@movial.fi> to make it possible to inherit from
220         DBusGProxy, by splitting the DBusGProxy struct into a public part and
221         a private part, and moving the setting of the DBusGProxyManager into a
222         connection property, allowing proper GObject construction.
223
224 2006-01-05  Robert McQueen  <robot101@debian.org>
225
226         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
227         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
228         annotations when generating glib client bindings.
229
230 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
231
232         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
233
234         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
235
236 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
237
238         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
239
240 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
241
242         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
243
244 2005-12-19  Ross Burton  <ross@openedhand.com>
245
246         * doc/dbus-tutorial.xml:
247         Document the Glib client-side bindings, and list all possible annotations.
248
249 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
250
251         * dbus/bus.c (dbus_bus_release_name): Add documentation
252
253 2005-12-06  Robert McQueen  <robot101@debian.org>
254
255         * python/service.py: s/sucessful/successful/ so we're allocating to
256         and reading from the same variable. Oops.
257
258 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
259
260         * Released 0.60
261
262 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
263
264         * test/qt/Makefile.am: build from srcdir
265
266         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
267         Note - this code is wrong and needs to be fixed by the Qt binding
268         developers.  The flags should be treated as bitfields and not enums.
269
270         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
271
272 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
273
274         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
275           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
276           in production code
277
278 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
279
280         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
281         method for getting messages off the bus in the absence of a
282         mainloop.  This method is much like 
283         dbus_connection_read_write_dispatch except it does not dispatch
284         the messages to a registered filter function.  Instead it
285         allows a developer to process messages by directly popping
286         them off the bus.
287
288 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
289
290         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
291         the parser to continue instead of returning error
292         (bus_desktop_file_load): Do not free parser data when
293         parse_section_start or parse_key_value fails because it was 
294         already freed by parser_free (patch from Carlos Garcia Campos  
295         <carlosgc at gnome.org>)
296
297 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
298
299         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
300         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
301         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
302         test/test-segfault.c, test/test-utils.c,
303         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
304         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
305         Various cleanup of dead code and compiler warnings (patch from
306         Kjartan Maraas <kmaraas at gnome.org>) 
307
308 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
309
310         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
311         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
312
313 2005-11-27  Robert McQueen  <robot101@debian.org>
314
315         * python/dbus_bindings.pyx: Repair my previous commit which reverted
316         part of the preceding one. Oops. Merge patch by Johan Hedberg
317         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
318         on big-endian platforms.
319
320         * test/python/test-client.py: Add some 16-bit integers to the test
321         values.
322
323 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
324
325         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
326         method return message for property getters
327
328 2005-11-27  Robert McQueen  <robot101@debian.org>
329
330         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
331         with type v of an instance of dbus.Variant(foo, type='x') caused
332         it to be boxed twice before sending over the bus.
333
334         * python/dbus_bindings.pyx, python/service.py,
335         test/python/test-client.py: Update the constants for the new
336         request_name flags, and update comments/test cases now that queueing
337         is the default action.
338
339 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
340
341         * configure.in:
342         - Change version to 0.60 for impending release
343         - upped the sonames because of ABI and API breakage
344
345 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
346
347         * configure.in: Add test/name-test/Makefile to the generated
348         Makefile list
349
350         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
351         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
352         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
353         not to queue an ower if it can't be the primary owner
354
355         * bus/bus.h: Add new internal BusOwner struct
356
357         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
358         to bus_registry_ensure and don't set the prohibit_replacement flag
359         since they are now set per BusOwner and not per name.
360         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
361         that returns the list of connections in a name's connection queue
362         
363         * bus/services.c (struct BusService): remove prohibit_replacement field
364         (struct BusOwner): new struct for keeping track of queued connections
365         and their associated flags for the queue
366         (struct BusRegistry): add a BusOwner memory pool
367         (bus_registry_new): initialize the BusOwner memory pool
368         (bus_registry_unref): free the BusOwner memory pool
369         (_bus_service_find_owner_link): new internal method for
370         searching the queue for a specific connection
371         (bus_owner_set_flags): new method for adding setting the flags on a
372         bus owner
373         (bus_owner_new): new method that creates a BusOwner object from the
374         pool and sets its flags
375         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
376         (bus_registry_ensure): Add the flags parameter
377         (bus_registry_acquire_service): Switch from using raw connections to
378         using the BusOwner struct
379         Add new state machine for dealing with the new set of flags
380         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
381         cancel_ownership, free_ownership_cancel_data, 
382         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
383         restore_ownership, free_ownership_restore_data, 
384         add_restore_ownership_to_transaction): Switch to using BusOwner 
385         instead of raw connections
386         (bus_service_add_owner): Add flags parameter
387         Switch to using BusOwner instead of raw connections
388         Add state machine for dealing with the new set of flags
389         (bus_service_swap_owner): Swaps the first and second owners in the
390         queue.  Used to make sure proper signals are sent when a service looses 
391         or gains primary ownership.  We never insert an owner at the top of the
392         queue.  Instead we insert it in the second position and then swap.
393         (bus_service_remove_owner): Remove the owner from the queue sending
394         out the NameLost and NameOwnerChanged signals if the we were the 
395         primary owner
396         (bus_service_get_primary_owners_connection): New method that extracts
397         the connection from the primary owner
398         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
399         connection
400         (bus_service_get_allow_replacement): Changed from the old 
401         bus_service_get_prohibit_replacement method.  Checks the flags of the 
402         primary owner and returns if it can be replaced or not
403         (bus_service_set_prohibit_replacement): removed
404         (bus_service_has_owner): returns TRUE if and owner with
405         the specified connection exists in the queue
406         
407         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
408         method that only compiles if tests are enabled.  Allows us to get the 
409         unique name of a connection so we can check it against the queue when
410         doing regression tests
411
412         * bus/activation.c (bus_activation_send_pending_auto_activate),
413         bus/dispatch.c (bus_dispatch),  
414         bus/driver.c (bus_driver_handle_get_service_owner, 
415         bus_driver_handle_get_connection_unix_user, 
416         bus_driver_handle_get_connection_unix_process_id,
417         bus_driver_handle_get_connection_selinux_security_context),
418         bus/signals.c (connection_is_primary_owner): 
419         use bus_service_get_primary_owners_connection instead of
420         bus_service_get_primary_owner
421
422         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
423         _dbus_listen_unix_socket): Calculate the length of the socket
424         path and use that instead of using a fixed length which was
425         causing socket names to contain many trailing Nul bytes.
426
427         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
428         (dbus_g_method_get_sender): New method for extracting the sender 
429         from a DBusGMethodInvocation
430         (dbus_g_method_return_get_reply): changed name to 
431         dbus_g_method_get_reply
432         (dbus_g_method_return_send_reply): changed name to
433         dbus_g_method_send reply
434
435         * doc/dbus-specification.xml: New docs that describe how the new
436         queueing system works and talks about the changes to the how
437         we specify socket names
438
439         * glib/examples/example-service.c, 
440         glib/examples/example-signal-emitter.c,
441         glib/examples/statemachine/statemachine-server.c:
442         Changed the RequestName flags to the new system
443
444         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
445         regression test suite for testing various states of the new
446         queueing system
447         
448 2005-11-15  Robert McQueen  <robot101@debian.org>
449
450         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
451         Taylor to add two methods, dbus_g_method_return_get_reply and
452         dbus_g_method_return_send_reply, to allow you to get the reply
453         message from a DBusGMethodInvocation, append arbitrary stuff to it,
454         and send it. The GLib bindings can't marshal a return value of
455         something like a(s) if the array is empty - ultimately they should be
456         made to heed the signature of the out arguments as the Python bindings
457         now can, but this is a workable interim solution which might have
458         other applications.
459
460 2005-11-15  Robert McQueen  <robot101@debian.org>
461
462         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
463         method to org.freedesktop.DBus to release a bus name or give up
464         waiting in the queue for it.
465
466         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
467         dbus_bus_release_name method to send the ReleaseName method calls.
468         Add constants for the return values to dbus/dbus-shared.h.
469
470         * doc/dbus-specification.xml: Document the new ReleaseName method
471         in the specification.
472
473         * python/dbus_bindings.pyx: Add a low-level python binding for the
474         release name method.
475
476         * python/exceptions.py, python/service.py: Make freeing BusName
477         objects release the name. Add a NameExistsException, and fix a
478         bug with creating UnknownMethodException.
479
480         * test/python/test-client.py: Add tests for freeing BusName
481         objects causing names to be released.
482
483 2005-11-14  Robert McQueen  <robot101@debian.org>
484
485         * python/service.py: Include the traceback in the error reply when we
486         send an exception over the bus. _BEST_ _PATCH_ _EVER_
487
488 2005-11-14  David Zeuthen  <davidz@redhat.com>
489
490         Patch from Timo Hoenig <thoenig@suse.de>.
491
492         * bus/bus.c: I've recently investigated why the automatic reload
493         of configuration files does not work as expected.
494
495         Currently, reloading configuration files does only work when
496         running dbus-daemon with --nodaemon.  If we are running as daemon
497         we're hitting a dnotify bug once we fork the process.
498
499         We're initializing the dnotify fds before calling fork().  Once
500         the child process forked it does still have the fds (and they
501         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
502         getting SIGIO as changes are made to the configuration files.
503
504         The attached patch moves the initialization of the dnotify fds to
505         process_config_postinit().  This is safe for all current code
506         paths and solves the dnotify disfunction.  If we're running
507         dbus-daemon as daemon the fds for dnotify are now being
508         initialized after fork() for the child process.
509
510         * configure.in: The current configure.in check for dnotify probes
511         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
512         match for 'xlinux', too. Additionally I have adapted the configure
513         option's style to match with the others.
514
515 2005-11-14  Robert McQueen  <robot101@debian.org>
516
517         * python/decorators.py, python/service.py: Add a new argument to the
518         dbus.service.method decorator called sender_keyword, which if set,
519         specifies the name of an argument which will be provided the bus
520         name of the method caller.
521
522         * test/python/test-client.py, test/python/test-service.py: Add a
523         method and test to check the sender_keyword functionality.
524
525 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
526
527         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
528         empty reply so blocking calls don't block forever (Patch from Sjoerd 
529         Simons <sjoerd at luon.net>)
530
531         * AUTHORS: Add Robert McQueen for his work on the Python
532         Bindings and other parts of D-Bus
533
534 2005-11-07  Robert McQueen  <robot101@debian.org>
535
536         * python/decorators.py: Change emit_signal function to use the
537         signature annotation of the signal when marhsalling the arguments from
538         the service. Fix a bug where the code checking signature length
539         against argument length referenced the wrong variable.
540
541         * python/introspect_parser.py: Avoid adding the type signature of
542         signal arguments to any methods which occur after them in the
543         introspection data (!) by making the parser a little more careful
544         about its current state.
545
546         * python/service.py: Remove debug prints from last commit (again :D).
547
548         * test/python/test-client.py, test/python/test-service.py: Add test
549         signals with signature decorators to test the strict marshalling code
550         gives errors at the right time. Could do with checking the signals
551         actually get emitted too, given that the test does nothing with
552         signals at the moment...
553
554 2005-11-07  Robert McQueen  <robot101@debian.org>
555
556         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
557         instances to stop madness of creating new instances representing
558         the same bus connection all the time, rendering any tracking of
559         match rules and bus names quite meaningless. Caught a bug where
560         the private argument to SessionBus() and friends was being passed
561         in as use_default_mainloop by mistake. Still some problems with
562         multiple dbus_binding.Connection instances representing the same
563         low-level connection (eg when you use both SessionBus() and
564         StarterBus() in same process), but it's a lot better now than it
565         was.
566
567         * python/dbus_bindings.pyx: Add constants with the return values
568         for bus_request_name().
569
570         * python/service.py: Store bus name instances in a per-dbus.Bus cache
571         and retrieve the same instances for the same name, so deletion can be
572         done with refcounting. Also now throws some kind of error if you
573         don't actually get the name you requested, unlike previously...
574
575         * test/python/test-client.py: Add tests for instance caching of buses
576         and bus name objects.
577
578 2005-11-04  Robert McQueen  <robot101@debian.org>
579
580         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
581         marshalling of boolean values. Add some booleans to the values in
582         the test client.
583
584         * python/decorators.py, python/service.py: Add an 'async_callbacks'
585         argument to the dbus.service.method decorator, which allows you to
586         name arguments to take two callback functions for replying with
587         return values or an exception.
588
589         * test/python/test-client.py, test/python/test-service.py: Add test
590         case using asynchronous method reply functions, both return values and
591         errors, and from within both the function itself and from a mainloop
592         callback.
593
594         * python/decorators.py, python/service.py: Perform checking that the
595         number of method/signal arguments matches the number of types in the
596         signature at class loading time, not when you first introspect the
597         class.
598
599         * python/service.py: Remove debug print left by the last commit.
600
601 2005-11-03  Robert McQueen  <robot101@debian.org>
602
603         * python/service.py: Heavy refactoring of method invocation, with
604         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
605         in favour of a new _message_cb that uses seperate functions for
606         looking up the method to call, marshalling the return values, and
607         sending exceptions as errors, and is easier to follow as a
608         consequence.  Fixes some corner cases about returning things that
609         don't match your declared out_signature, allows exceptions to define
610         _dbus_error_name and have it be sent over the bus as the error name,
611         and paves the way for cool stuff like heeding the message no reply
612         flag, asynchronous method implementations, informing the method of the
613         sender, and including backtraces in the error messages.
614
615         * test/python/test-client.py: Catch and print exceptions thrown in the
616         async callback tests, rather than passing them to the low-level
617         bindings to be ignored in a noisy and frustrating manner.
618
619 2005-11-03  Robert McQueen  <robot101@debian.org>
620
621         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
622         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
623         tweak others to be consistent.
624
625         * test/python/test-client.py: Tweak output of testInheritance.
626
627 2005-10-29  Robert McQueen  <robot101@debian.org>
628
629         * python/service.py: Major changes to allow multiple inheritance
630         from classes that define D-Bus interfaces:
631         
632          1. Create a new Interface class which is the parent class of
633             Object, and make the ObjectType metaclass into InterfaceType.
634         
635          2. Patch written with Rob Taylor to replace use of method_vtable
636             with code that walks the class's __MRO__ (method resolution order)
637             to behave like Python does when invoking methods and allow
638             overriding as you'd expect. Code is quite tricky because
639             we have to find two methods, the one to invoke which has the
640             right name and isn't decorated with the /wrong/ interface,
641             and the one to pick up the signatures from which is decorated
642             with the right interface.
643         
644             The same caveats apply as to normal multiple inheritance -
645             this has undefined behaviour if you try and inherit from two
646             classes that define a method with the same name but are
647             decorated with different interfaces. You should decorate
648             your overriding method with the interface you want.
649         
650          3. Replace grungy introspection XML generation code in the metaclass
651             with dictionaries that cope correctly with multiple inheritance
652             and the overriding of methods. This also uses the signature
653             decorations to provide correct introspection data, including
654             the debut appearance of the types of your return values. :D
655
656         * test/python/test-client.py, test/python/test-service.py: Add a test
657         case to try invoking an method that overrides one inherited from a
658         D-Bus interface class.
659
660 2005-10-29  Robert McQueen  <robot101@debian.org>
661
662         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
663         Add checking for the end of struct character when marshalling a
664         struct in MessageIter.append_strict.
665
666         * python/examples/example-service.py,
667         python/examples/gconf-proxy-service.py,
668         python/examples/gconf-proxy-service2.py: Update to use gobject
669         mainloop directly rather than appearing to depend on gtk.
670
671         * python/test/test-client.py, python/test/test-server.py: Remove
672         obsolete and broken test scripts for old bindings. We have up to date
673         and working tests in test/python/.
674
675 2005-10-29  Robert McQueen  <robot101@debian.org>
676
677         * python/decorators.py: Add optional arguments to the method and
678         signal decorators to allow you to specify the signature of arguments
679         and return values. Preserve the doc strings of signal functions in the
680         decorated version, for pydoc and friends.
681
682         * python/dbus_bindings.pyx, python/proxies.py: Replace the
683         parse_signature_block function with an iterable dbus.Signature()
684         type. Fix a bug in MessageIter.append_strict where you could append
685         anything by claiming it was a string.
686
687         * python/service.py: Use the out_signature decoration on methods to
688         marshal return values, meaning you no longer require dbus.Array()
689         or dbus.Dictionary() to indicate the type when returning empty
690         arrays or dictionaries. Fix a bug where exceptions which are defined
691         in __main__ are not turned into error replies.
692
693         * test/python/test-client.py, test/python/test-service.py: Add test
694         for correct marshalling of return values according to out_signature.
695         Fix a bug in the async call test where the error_handler is missing a
696         self argument.
697
698 2005-10-29  Robert McQueen  <robot101@debian.org>
699
700         * glib/Makefile.am, glib/examples/Makefile.am,
701         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
702         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
703
704         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
705
706         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
707         from Ubuntu by Daniel Silverstone to allow specifying match rules on
708         the command line.
709
710 2005-10-27  Ross Burton  <ross@openedhand.com>
711
712         * dbus/dbus-marshal-header.c:
713         Remove dead code.
714
715         * glib/dbus-gobject.c:
716         Stop compiler warning.
717
718 2005-10-25  Ross Burton  <ross@openedhand.com>
719
720         * dbus/dbus-auth.c:
721         * dbus/dbus-server-unix.c:
722         * dbus/dbus-transport-unix.c:
723         * glib/dbus-gmain.c:
724         * glib/dbus-gobject.c:
725         Add some const keywords.
726
727 2005-10-25  Ross Burton  <ross@openedhand.com>
728
729         * doc/dbus-specification.xml:
730         Document the NoReply annotation.
731
732         * glib/dbus-binding-tool-glib.h:
733         * glib/dbus-binding-tool-glib.c:
734         Respect the NoReply annotation.
735
736 2005-10-24  Robert McQueen <robot101@debian.org>
737
738         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
739         derive from unicode instead of str, and encode/decode UTF-8 when
740         marshalling/unmarshalling bus messages
741
742         * python/introspect_parser.py: encode introspection data as UTF-8
743         before passing the buffer into libxml2
744
745         * test/python/test-client.py: add unicode test strings
746
747         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
748         ignore generated python test files
749
750 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
751
752         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
753         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
754         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
755
756         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
757         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
758         when constructing struct signatures
759
760         * python/_dbus.py (Bus): handle private connections using the
761         private keyword in the constructor. defaults to private=False
762         (Bus::close): new method to close a connection to the bus
763
764         * python/dbus_bindings.pyx (Connection::close): renamed method
765         was previously called disconnect
766         (bus_get): now supports getting a private connection
767
768         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
769         keyword is set to True.  if it is, execute the method without waiting
770         for a reply
771         (ProxyObject::_introspect_execute_queue): new method for executing
772         all the pending methods that were waiting for the introspect to
773         finish.  this is called when introspect either succeeds or fails
774         (ProxyObject::_introspect_error_handler): call queued methods
775
776 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
777
778         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
779         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
780
781         * python/service.py (Object::_message_cb): handle exceptions correctly
782         by sending them over the wire to the calling app.  This makes sure
783         the client returns immediately instead of waiting the 15 seconds to
784         timeout.
785
786         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
787         Add a test to benchmark how long it takes to introspect a service and 
788         call a method which returns a large element (pretty fast)
789
790         * test/python/test-service.py (TestObject::GetComplexArray): new test 
791         method which pushes a lot of data
792
793 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
794
795         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
796         reclaim memory outside of the loop and use del istead of just setting
797         the key to None
798
799 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
800
801         * python/service.py (ObjectType::_reflect_on_signal): Always close
802         signal tag even when there are no arguments
803
804 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
805
806         * configure.in: Set mono, mono-docs and Qt3 to default
807         to no instead of auto when building.  These bindings do not
808         have full time maintainers and will not be supported for the
809         1.0 release.
810
811 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
812
813         patches from Michael Krivoruchko <misha at sun.com>: 
814         
815         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
816         _dbus_connection_message_sent, 
817         _dbus_connection_send_preallocated_unlocked_no_update, 
818         _dbus_connection_pop_message_link_unlocked): handle the case when path 
819         is NULL when calling _dbus_verbose
820
821         * configure.in: check for functions getpeerucred and getpeereid
822
823         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
824         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
825         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
826         Patch was only tested on Solaris 10 x86 so it might be issues
827         with other platforms (i.e. BSDs and MacOSX)
828         
829
830 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
831
832         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
833         instead of marshal basic so we can handle recursive types in a variant
834
835         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
836         in variants
837
838         * test/glib/test-service-glib.c, test-service-glib.xml
839         (my_object_echo_variant [EchoVariant], 
840         my_object_process_variant_of_array_of_ints123
841         [ProcessVariantOfArrayOfInts123]): 
842         Add two test methods
843
844         * python/introspect_parser.py: New module for parsing introspect
845         data.
846
847         * python/dbus_bindings.pyx:
848         (various places): when throwing errors fix to use errormsg instead 
849         of message local variable because Pyrex can get confused with other 
850         message variables (initial patch by Robert McQueen 
851         <robert.mcqueen at collabora.co.uk>)
852         (MessageIter::parse_signature_block): new method for getting the next
853         block in a signiture.
854         (MessageIter::append_strict): new method for appending values strictly
855         using the passed in signature instead of guessing at the type
856         (MessageItter:: append_dict, append_struct, append_array): use 
857         signatures to marshal children if the signature is available
858         
859         * python/exceptions.py (IntrospectionParserException): new exception
860
861         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
862         introspected signatures if available, else we fall back to the
863         old way of doing things.
864         (ProxyObject::_introspect_reply_handler ): parse introspection data
865         
866         * python/service.py (ObjectType::_reflect_on_method): Properly
867         terminate <method> if there are no args in the reflection data
868
869         * test/python/test-client.py: add tests for talking with the GLib
870         test server.  This gives us better coverage for introspection since
871         python to python will always generate arguments as variants.  It also
872         allows us to test the robustness of the GLib bindings and interlanguage
873         communications.
874
875         
876 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
877
878         * bus/driver.c (bus_driver_handle_introspect): Add signals
879         to the introspect data. (patch from Daniel P. Berrange 
880         <dan at berrange.com>)
881
882         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
883         
884         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
885         _dbus_connection_run_builtin_filters): Changed these to
886         be unlock_no_update functions and call 
887         _dbus_connection_send_unlocked_no_update instead of
888         dbus_connection_send to avoid locking errors.
889         
890         * doc/TODO: Removed the make Ping test TODO
891         
892 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
893
894         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
895         We now copy the message from a DBusError and then free 
896         the error object befor throwing the error
897
898         * glib/dbus-glib-tool.c: removed extra comma at the end of the
899         DBusBindingOutputMode enum which was causing a warning.
900         #include <time.h> so using time_t is explicitly defined
901
902 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
903
904         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
905         - dbus/dbus-bus.c
906         (internal_bus_get): new method that take over the heavy lifting
907         of dbus_bus_get and adds the ability to get a private connection
908         to the bus
909         (dbus_bus_get): wrapper to internal_bus_get that provides the same
910         interface as in previous versions
911         (dbus_bus_get_private): new method that is a wrapper to 
912         internal_bus_get to get a private connection to the bus
913
914         - dbus/dbus-bus.h
915         (dbus_bus_get_private): add as a public libdbus interface
916
917         - dbus-1.pc.in: output system_bus_default_address and 
918         sysconfdir variables so apps can use them when compiling
919
920 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
921         * dbus/qt: New Qt bindings
922
923 2005-09-12  Waldo Bastian  <bastian@kde.org>
924
925         * dbus/dbus-marshal-validate.c,
926         doc/dbus-specification.xml, test/Makefile.am,
927         test/test-names.c: allow hyphens in bus names.
928
929 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
930
931         * test/data/auth/fallback.auth-script: we don't
932         retry the EXTERNAL method when we know its going
933         to fail anymore.
934
935 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
936
937         * dbus/dbus-connection-internal.h: rename
938         (add|remove|toggle)_(watch|timeout) to unlocked()
939         
940         * dbus/dbus-connection.c: ditto.
941         
942         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
943         Update some callers for the renaming.
944
945 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
946
947         * dbus/dbus-auth.c: (record_mechanisms): don't
948         retry the first auth mechanism because we know
949         we're just going to get rejected again.
950         
951         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
952         Fix thinko ... and what a nasty little bugger to
953         track down you were ...
954
955         * dbus/dbus-connection.c:
956         (_dbus_connection_add_watch),
957         (_dbus_connection_remove_watch): add note about
958         these needing the connection to be locked.
959         (_dbus_connection_get_dispatch_status_unlocked):
960         set status to DATA_REMAINS when we queue the
961         disconnected message.
962         
963         * bus/dispatch.c:
964         (bus_dispatch): fix warning.
965         (check_existent_service_no_auto_start):
966         Expect ChildSignaled error too.
967         (check_existent_hello_from_self): fix another
968         couple of warnings.
969         
970 2005-09-08  Joe Shaw  <joeshaw@novell.com>
971
972         Patches from James Willcox <snorp@snorp.net>
973
974         * mono/Makefile.am: Add Int16.cs and UInt16.cs
975
976         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
977         support array "out" parameters.
978
979         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
980         for 16-bit int support.
981
982 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
983
984         * Released 0.50
985
986         * Patch from Steve Grubb:
987         - bus/activation.c (bus_activation_service_reload_test): clean up
988         some indentation
989         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
990         - dbus/dbus-message-factory.c (generate_special): fix a couple of
991         buffer overflows in the test suite.  This is non critical because
992         it can not be exploited and this code is only run when doing a 
993         make check.
994
995         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
996         - configure.in: Don't check and link against kdecore, only qt headers
997         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
998         - gcj/org/freedesktop/dbus/Makefile.am:
999         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1000         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1001         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1002         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1003         - tools/Makefile.am: Add platform extentions to binaries 
1004         (i.e. .exe on windows)
1005
1006         * configure.in: 
1007         - Make it so if no suitable version of python is found we only 
1008         disable building python instead of exiting the configure script
1009         - Require version 2.4 of glib for glib bindings
1010         - Up version to 0.50
1011
1012         * python/__init__.py: Sync version with libdbus to (0,50,0)
1013         
1014 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1015
1016         * dbus/dbus-object-tree.c (find_subtree_recurse):
1017         a couple of optimizations (bug #710):
1018         - do a binary search in the tree
1019         - insert a new child at the right place directly, no need for
1020           qsort anymore
1021         - do the "double alloc" thing when allocating children
1022
1023 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1024
1025         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1026
1027         * python/dbus_bindings.pyx: Memory management foo
1028         (global): remove hacky _user_data_references global list
1029         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1030         tuples. Unref user_data
1031         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1032         (Connection::__del__): Remove and replace with __dealloc__ method
1033         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1034         to keep tuple from being deallocated instead of the global var hack
1035         (Connection::register_object_path): Stuff user_data into a tuple.
1036         Use Py_INCREF to keep tuple from being deallocated instead of the 
1037         global var hack
1038         (Connection::register_fallback): Stuff user_data into a tuple.
1039         Use Py_INCREF to keep tuple from being deallocated instead of the 
1040         global var hack
1041         (GIL_safe_pending_call_notification): Don't unref the message
1042         because it gets unreffed when going out of scope.  Py_XDECREF
1043         the user_data
1044         (PendingCall::__del__): Remove and replace with __dealloc__ method
1045         (PendingCall::set_notify): ref the pending call because we will
1046         need it to stick around for when the notify callback gets called
1047         (Message::__del__): Remove and replace with __dealloc__ method
1048
1049         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1050         gthreads_init to match up with the dbus call
1051
1052         * python/glib.py (init_threads): Changed to threads_init to match
1053         up with gobject.threads_init().  init_threads is kept for backwards
1054         compat but will most likely be deprecated in the future
1055
1056         * test/python/test-client.py: 
1057         - revamp to use Python's unittest functionality
1058         - add async call tests
1059         - setup threads in glib and dbus so we make sure locks are working
1060         
1061 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1062
1063         * python/dbus_bindings.pyx 
1064         (_pending_call_notification, cunregister_function_handler, 
1065         cmessage_function_handler): All callback functions have been rearranged 
1066         to workaround a bug in Pyrex when working with the GIL which is Python's 
1067         global lock when dealing with threads.  They have been split into
1068         a wrapper function (which assumes the name of the old function) and
1069         a _GIL_safe_<function name> function which contains the functionality
1070         of the old function.  This ensures that Pyrex does not write code
1071         the lock is released.
1072         
1073
1074 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1075
1076         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1077         GIL global lock when calling back into Python
1078
1079 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1080
1081         * Release 0.36.2
1082
1083         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1084
1085         * bus/policy.c (bus_policy_allow_user): change default "user is
1086         allowed" to be "user has same uid as the bus itself"; any
1087         allow/deny rules will override.
1088
1089         * bus/session.conf.in: don't allow all users, since now by default
1090         the user that ran the bus can connect.
1091
1092 2005-08-26  Colin Walters  <walters@verbum.org>
1093
1094         * tools/dbus-print-message.c (print_message): Flush stdout
1095         after printing a message, so that redirecting to a file, then
1096         hitting Ctrl-C works.
1097
1098 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1099
1100         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1101         (EmptyMessage): new class that subclasses Message.  This is a workaround
1102         to a Pyrex bug that fails to call __del__ when the Message object goes out
1103         of scope.  For some reason subclassing Message fixes this bug
1104         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1105         - s/Message(_create=0)/EmptyMessage everywhere else
1106         
1107         * test/python/test-{server|client}.py: add the python/.libs directory
1108         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1109         get picked up from the system
1110
1111 2005-08-25  Colin Walters  <walters@verbum.org>
1112
1113         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1114         to Ryan Lortie for the suggestion.
1115
1116 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1117
1118         * test/python: Add python regression test
1119
1120         * configure.in: Add test/python/Makefile
1121
1122         * test/Makefile.am: Add the python directory to SUBDIRS
1123
1124 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1125
1126         * Release 0.36.1
1127
1128         * python/_dbus.py: 
1129         (Interface::connect_to_signal): propigate keywords for match on args
1130         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1131
1132         * python/proxies.py (ProxyObject::connect_to_signal):
1133         propigate keywords for match on args
1134
1135         * Makefile.am: point everything to pyexecdir since python borks
1136         on multilib
1137
1138 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1139
1140         * Release 0.36
1141
1142 2005-08-23  Colin Walters  <walters@verbum.org>
1143
1144         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1145
1146 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1147
1148         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1149         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1150         of defining DBusConnection ourselves.
1151
1152 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * python/dbus.pth: New path file to fix up problems when installing
1155         c libraries to lib64 and python files to lib.
1156
1157         * python/Makefile.am: install dbus.pth in the correct spot
1158
1159 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1160         * ChangeLog: clean up my last entry a bit
1161
1162         * doc/introspect.xsl: New stylesheet for converting introspection data
1163         into browser renderable xhtml. Contributed by Lennart Poettering.
1164
1165         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1166         Poettering.
1167
1168         * doc/dbus-tutorial.xml: 
1169         - Add Colin Walter to the Authors section for authoring the GLib
1170         section
1171         - Add descriptions of the new signature and type functionality
1172         in the Python complex type mapping section
1173         - Add a sidenote on the new args matching functionality in 
1174         the Python bindings
1175         - Fixed up some of the examples to use the gobject.MainLoop
1176         instead of gtk.main
1177         
1178         * python/_dbus.py:
1179         (Bus::_create_args_dict): New. Converts a hash of arg matches
1180         to a more useable format
1181         (Bus::add_signal_receiver): add a **keywords parameter for catching
1182         arg match parameters
1183         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1184         arg match parameters
1185         
1186         * python/matchrules.py:
1187         (MatchTree::exec_matches): Check for arg matches
1188         (SignalMatchRule::add_args_match): New method
1189         (SignalMatchRule::execute): Added args_list parameter as an optimization
1190         so we don't have to marshal the args more than once
1191         (SignalMatchRule::match_args_from_list): New method that checks to see
1192         if the rule's arg matches match an argument list.  Only arguments
1193         set in the rule are checked.
1194         (SignalMatchRule::match_args_from_rule): New method that checks to see
1195         if the rule's arg matches match another rule's.  All args have to match
1196         in order for this method to return true.  If either rule has more args
1197         then it is not a match.
1198         (SignalMatchRule::is_match): Add args match
1199         (SignalMatchRule::repr): Add args to the final output if they exist
1200
1201 2005-08-17  Ross Burton  <ross@burtonini.com>
1202
1203         * glib/dbus-gproxy.c:
1204         (dbus_g_proxy_call_no_reply): unref the message once sent.
1205         (dbus_g_proxy_call): protect against NULL proxy.
1206
1207 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * python/__init__.py: Version updated (0, 43, 0)
1210         
1211         * python/dbus_bindings.pyx: 
1212         - Fixed type objects to have self passed into __init__
1213         - Added the Variant type
1214         - Add the ability to specify types or signatures for Array, Variant 
1215         and Dictionary
1216         (Connection::send_with_reply_handlers): return a PendingCall object
1217         (_pending_call_notification): handle the case when an error is returned 
1218         without an error message in the body
1219         (MessageIter::get_boolean): return True or False instead of an integer
1220         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1221         and add checks for objects with embeded signatures or types (Array, 
1222         Variant and Dictionary)
1223         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1224         (MessageIter::append_dict): handle embeded types or signatures
1225         (MessageIter::append_array): handle embeded types or signatures
1226         (MessageIter::append_variant): new method
1227         
1228         * python/proxies.py:
1229         (DeferedMethod): New. Dummy executable object used when queuing calls 
1230         blocking on introspection data
1231         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1232         or shorter timeouts for method calls
1233         (ProxyObject): Add first pass at an introspection state machine
1234         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1235         introspection. 
1236         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1237         the usual mechanisms for sending messages.  This is to avoid a deadlock
1238         where the Intospect call would be queued waiting for the Introspect 
1239         call to finish ;-)
1240         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1241         when introspection returns with no error
1242         (ProxyObject::_introspect_error_handler): New.  This method is called 
1243         when introspection encounters an error
1244         (ProxyObject::__getattr__): Code to handle different introspection 
1245         states.  Queue async calls or block blocking calls if we are 
1246         introspecting.  Pass through as normal if we are not or are done with 
1247         introspecting.
1248         
1249         * python/service.py: Import signal and method from decorators.py
1250
1251         * python/types.py: Add Variant type
1252
1253 2005-08-16  Colin Walters  <walters@verbum.org>
1254
1255         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1256         DBusError message is NULL.
1257
1258 2005-08-09  Havoc Pennington  <hp@redhat.com>
1259
1260         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1261         malloc'd copy of the name parameter
1262
1263 2005-08-09  Havoc Pennington  <hp@redhat.com>
1264
1265         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1266         warning if the reply serial is set to 0
1267
1268 2005-08-04  Colin Walters  <walters@verbum.org>
1269
1270         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1271         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1272         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1273         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1274         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1275         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1276         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1277         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1278         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1279         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1280         
1281         Prefix name with _ to ensure they're not exported.  All callers
1282         updated.
1283
1284         * glib/dbus-gvalue.c (typecode_to_gtype)
1285         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1286         (signature_iter_to_g_type_dict)
1287         (signature_iter_to_g_type_array)
1288         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1289         (dbus_gtypes_from_arg_signature):
1290         Move to dbus-gsignature.c.
1291
1292         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1293         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1294         (dbus_binding_tool_output_glib_client): Ditto.
1295
1296         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1297         and dbus-gsignature.h
1298
1299         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1300         unused variable.
1301
1302 2005-08-03  Colin Walters  <walters@verbum.org>
1303
1304         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1305         catch any incompatible changes accidentally made.
1306
1307 2005-08-03  Havoc Pennington  <hp@redhat.com>
1308
1309         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1310         typo, from Julien Puydt
1311
1312         * bus/connection.c (bus_connection_disconnected): we were always
1313         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1314
1315 2005-08-01  Colin Walters  <walters@verbum.org>
1316
1317         Patch from Joe Markus Clarke:   
1318         
1319         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1320         use-after-free.
1321
1322 2005-08-01  Colin Walters  <walters@verbum.org>
1323         
1324         Patch from Joe Markus Clarke:   
1325         
1326         * tools/dbus-send.c (main): 
1327         
1328         Don't use C99 style initializers (bug #3933).
1329         
1330 2005-08-01  Colin Walters  <walters@verbum.org>
1331
1332         Patch from Joe Markus Clarke:   
1333
1334         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1335         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1336         * glib/dbus-gobject.c (write_interface):
1337
1338         Don't use C99 style initializers (bug #3933).
1339
1340 2005-07-31  Havoc Pennington  <hp@redhat.com>
1341
1342         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1343         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1344
1345 2005-07-30  Havoc Pennington  <hp@redhat.com>
1346
1347         * fix a bunch of Doxygen warnings and mistakes
1348
1349 2005-07-30  Havoc Pennington  <hp@redhat.com>
1350
1351         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1352         DBUS_BUILD_TESTS since it's now used in production code
1353
1354 2005-07-29  Havoc Pennington  <hp@redhat.com>
1355
1356         * test/glib/test-profile.c (write_junk): initialize the junk
1357         buffer so valgrind doesn't have a breakdown
1358
1359 2005-07-29  Havoc Pennington  <hp@redhat.com>
1360
1361         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1362         (match_rule_matches): remove unused arg
1363         (test_matching): add tests for match_rule_matches()
1364
1365         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1366         do arg0='foo' arg5='bar' in the match rules
1367         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1368
1369         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1370
1371 2005-07-29  Ross Burton  <ross@openedhand.com>
1372
1373         * dbus/dbus-connection.c:
1374         Don't create a DBusCondVar which is never used.
1375
1376 2005-07-27  Ross Burton  <ross@openedhand.com>
1377
1378         * dbus/dbus-message.c:
1379         Reduce the size of the maximum cached message to 10K.
1380
1381 2005-07-25  Ross Burton  <ross@openedhand.com>
1382
1383         * glib/dbus-gproxy.c:
1384         Remove matches when all proxies are unregistered.
1385
1386 2005-07-24  Colin Walters  <walters@verbum.org>
1387
1388         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1389         typedata; recursive arrays won't have it.
1390
1391         * test/glib/test-dbus-glib.c:
1392         * test/glib/test-service-glib.c:
1393         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1394         
1395 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1396
1397         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1398         proxies.py, service.py: Cleanup of code after running it through the
1399         pyflakes code checker mostly dealing with undefined names.  
1400         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1401
1402 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * NEWS: Update to 0.35.2
1405
1406 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1407
1408         * python/_dbus.py: Remove import of the dbus.services
1409         module as it no longer exists (patch from Dimitur Kirov)
1410
1411         * python/service.py (Object::__init__): Fixed typo
1412         s/name/bus_name (patch from Dimitur Kirov)
1413
1414         * python/examples/example-signal-emitter.py: import dbus.glib
1415         to get the main loop and use glib mainloop instead of gtk so
1416         X doesn't have to be running.
1417
1418         * python/examples/example-signal-recipient.py: import dbus.glib
1419         to get the main loop and use glib mainloop instead of gtk so
1420         X doesn't have to be running. Import the decorators module
1421         directly.
1422
1423         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1424         didn't pick up on but are needed to build
1425
1426         * configure.in: upped version to 0.35.2
1427
1428         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1429         added Colin Walters' SELinux API rename patch from head 
1430         s/unix sercurity context/selinux security context/
1431
1432 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1433
1434         * python/Makefile.am: dbus_binding.pxd.in should be included 
1435         in EXTRA_DIST not dbus_binding.pxd
1436         fix up $(srcdir) hopefully for the last time
1437
1438         * NEWS: Update to 0.35.1
1439
1440 2005-07-16  Colin Walters  <walters@verbum.org>
1441
1442         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1443         from bus_driver_handle_get_connection_unix_security_context.  Update for
1444         error usage.
1445         (message_handlers): Update for renames.
1446
1447         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1448         _dbus_string_init failure correctly.
1449         (bus_selinux_append_context): Convert SID to context.  Append it
1450         as a byte array.
1451         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1452         hasn't been called.
1453
1454         * bus/selinux.h: Update prototype.
1455
1456         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1457         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1458
1459 2005-07-15  Colin Walters  <walters@verbum.org>
1460
1461         * doc/TODO: Add note about convenience wrappers.
1462
1463 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * NEWS: Update to 0.35
1466
1467 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1470         so distcheck doesn't fail
1471
1472         * glib/examples/Makefile.am: Add example-service.xml and 
1473         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1474
1475         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1476         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1477
1478         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1479         compiler looks in the right places during distcheck
1480
1481 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1484         to fail
1485
1486 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         * python/examples/example-service.py,
1489         python/examples/example-signal-emitter.py: Fixed up examples
1490         for API changes
1491
1492 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1493
1494         * python/__init__.py: Upped to version (0,42,0) because of
1495         the API change
1496
1497 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1498
1499         * ChangeLog: fix date in last entry
1500
1501         * configure.in, bus/system.conf.in: add the ability to configure 
1502         the system bus user at compiletime with the --with-dbus-user flag
1503         (patch from Kristof Vansant)
1504
1505 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * bus/dispatch.c, test/test-service.c: Add testcase
1508         for sending messages to oneself (TODO item).
1509
1510         * python/service.py (class Object): Swap ordering of bus_name 
1511         and object_path parameters to better support inheritance.
1512
1513         * doc/dbus-tutorial.xml: change Python docs to reflect change
1514         in parameter ordering and fix the inheritance section.
1515
1516         * doc/TODO: remove sending message to oneself TODO item
1517
1518 2005-07-15  Ross Burton  <ross@openedhand.com>
1519
1520         * glib/dbus-gproxy.c:
1521         Fix a leak when calling methods via the proxy.
1522
1523 2005-07-15  Colin Walters  <walters@verbum.org>
1524
1525         * bus/selinux.c (bus_selinux_append_context): Wrap in
1526         HAVE_SELINUX.
1527
1528 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1529
1530         * python/_dbus.py (Bus::remove_signal_receiver):
1531         don't add a callback to the match if none has been passed in
1532         
1533         * python/matchrules.py (SignalMatchTree::remove): if the rule
1534         being matched does not have a callback treat it as a wildcard
1535         fix matching logic
1536
1537         * doc/dbus-tutorial.xml: Add Python tutorial
1538
1539 2005-07-14  Colin Walters  <walters@verbum.org>
1540
1541         * bus/driver.c
1542         (bus_driver_handle_get_connection_unix_security_context): New function.
1543         (message_handlers): Add.
1544
1545         * bus/selinux.c (bus_selinux_append_context): New function; appends
1546         security context to message.
1547
1548         * bus/selinux.h: Prototype.
1549
1550         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1551
1552 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1553
1554         * bus/activation.c: clean up all tabs to be 8 spaces 
1555         (bus_activation_activate_service): make sure we clean up
1556         if activation fails
1557
1558         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1559         (check_shell_fail_service_auto_start): New function
1560         tests to make sure we get fail properly when trying to auto start a service
1561         with a faulty command line
1562         (check_shell_service_success_auto_start): New function tests to make sure
1563         auto started services get the arguments on the command line
1564
1565         * test/test-shell-service.c: Added service for testing auto-starting with 
1566         command line arguments
1567
1568         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1569         test/data/valid-service-files/debug-shell-echo-success.service.in:
1570         Added service files for testing auto-starting with command line arguments
1571
1572         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1573
1574 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1575
1576         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1577         
1578         * dbus/Makefile.am: added new files to build.
1579
1580         * bus/activation.c (bus_activation_activate_service): support
1581         activation commands with parameters.
1582
1583         * test/shell-test.c: added test program for the shell parsing
1584         code.
1585
1586 2005-07-13  David Zeuthen  <davidz@redhat.com>
1587
1588         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1589         64 bit signed and unsigned parameters
1590
1591 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1592
1593         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1594
1595         * python/service.py (class Name): renamed BusName to make it clearer
1596         what the object is for (a name on the bus)
1597
1598         * python/examples/example-service.py,
1599         python/examples/example-signal-emitter.py: change the Name object to
1600         BusName
1601
1602 2005-07-12  Colin Walters  <walters@verbum.org>
1603
1604         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1605
1606         * tools/dbus-launch.c: Include sys/select.h.
1607
1608 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1609         * python/dbus_bindings.pyx.in: removed
1610
1611         * python/dbus_bindings.pyx: Added.
1612         - Fixed some memleaks (patch from 
1613         Sean Meiners <sean.meiners@linspireinc.com>)
1614         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1615         own pxd file (Pyrex definition)
1616         - Broke out glib dependancies into its own pyx module
1617         
1618         * python/dbus_bindings.pdx: Added.
1619         - Defines C class Connection for exporting to other modules
1620
1621         * python/dbus_glib_bindings.pyx: Added.
1622         - New module to handle lowlevel dbus-glib mainloop integration
1623
1624         * python/glib.py: Added.
1625         - Registers the glib mainloop when you import this module
1626
1627         * python/services.py: Removed (renamed to service.py)
1628         
1629         * python/service.py: Added.
1630         - (class Server): renamed Name
1631
1632         * python/__init__.py: Bump ro version (0,41,0)
1633         -don't import the decorators or service module
1634         by default.  These now reside in the dbus.service namespace
1635
1636         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1637         setup function on creation 
1638
1639         * python/examples/example-service.py,
1640         python/examples/example-signal-emitter.py: update examples
1641
1642         * python/examples/gconf-proxy-service.py,
1643         python/examples/gconf-proxy-service2.py: TODO fix these up
1644
1645         * doc/TODO: Addition
1646         - Added a Python Bindings 1.0 section
1647         - added "Add match on args or match on details to match rules"
1648
1649
1650 2005-07-12  Colin Walters  <walters@verbum.org>
1651
1652         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1653         (statemachine-glue.h): 
1654         * glib/examples/Makefile.am (example-service-glue.h) 
1655         (example-signal-emitter-glue.h): 
1656         * glib/Makefile.am (dbus-glib-error-switch.h): 
1657         Add libtool --mode=execute so we use the built library instead
1658         of any installed one.
1659
1660 2005-07-11  Colin Walters  <walters@verbum.org>
1661
1662         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1663         (dbus_g_value_types_init): Remove assertion.
1664         (dbus_g_value_get_g_type, dbus_g_value_open)
1665         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1666         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1667         functions related to DBusGValue.  Now we marshal/demarshal
1668         structures as GValueArray.
1669         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1670         structures.
1671         (signature_iter_to_g_type_array): Don't call
1672         signature_iter_to_g_type_struct.
1673         (signature_iter_to_g_type_struct): Delete.
1674         (dbus_gvalue_to_signature): Delete.
1675         (dbus_gvalue_to_signature): New function with same name as other
1676         one; we can convert structures to signatures.
1677         (demarshal_valuearray): New function.
1678         (get_type_demarshaller): Use it.
1679         (demarshal_recurse): Delete.
1680         (marshal_proxy): New function.
1681         (marshal_map): Warn if we can't determine signature from type.
1682         (marshal_collection_ptrarray): Ditto.
1683         (marshal_collection_array): Ditto.
1684         (get_type_marshaller): Use marshal_valuearray.
1685         (marshal_recurse): Delete.
1686         (_dbus_gvalue_test): Add some tests.
1687
1688         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1689         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1690         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1691         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1692         (dbus_g_value_free): Remove prototypes.
1693
1694         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1695         G_TYPE_VALUE_ARRAY.
1696
1697         * glib/examples/example-service.c:
1698         * glib/examples/example-client.c: Implement GetTuple.
1699
1700         * test/glib/test-dbus-glib.c:
1701         * test/glib/test-service-glib.c:
1702         * test/glib/test-service-glib.xml: Add structure tests.
1703
1704 2005-07-10  Colin Walters  <walters@verbum.org>
1705
1706         * doc/TODO: Knock off some GLib items with this patch.
1707
1708         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1709         (_dbus_gvalue_signals_error): New functions.
1710
1711         * glib/dbus-gvalue-utils.h: Prototype them.
1712
1713         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1714         and change to not output const/retval flags for input args.  All
1715         callers updated.
1716         (invoke_object_method): Refactor to handle return values.  Add
1717         some more comments in various places.  Remove debug g_print.
1718
1719         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1720
1721         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1722         Handle G_TYPE_NONE.
1723         (compute_gsignature): New function; refactored from code from
1724         compute_marshaller and compute_marshaller_name.  Enhance to
1725         handle return values and async ops more cleanly.  Update for
1726         async ops returning NONE instead of BOOLEAN.
1727         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1728         and output appropriate string.
1729         (generate_glue): Handle return value annotation.  Also don't dump
1730         constness flag for input arguments.
1731
1732         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1733         files shared between installed library and utilities.
1734         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1735         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1736         binding tool can access gtype utility functions.
1737
1738         * test/glib/test-service-glib.c: 
1739         * test/glib/test-service-glib.xml: 
1740         * test/glib/test-dbus-glib.c: Add some tests for return values.
1741
1742 2005-07-09  Colin Walters  <walters@verbum.org>
1743
1744         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1745         argument if available, not method.
1746
1747         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1748         (invoke_object_method): First, remove some redundant
1749         GValues (object_value, error_value) in favor of working on
1750         array directly.  Second, rework constness to be less buggy.
1751         Now we iterate directly over the argument metadata instead
1752         of parallel iterating over output signature and metadata.
1753
1754         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1755
1756         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1757         annotation on input args.
1758         
1759 2005-07-09  Colin Walters  <walters@verbum.org>
1760
1761         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1762         Define.
1763
1764         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1765         annotation.
1766
1767         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1768         (method_dir_signature_from_object_info): Handle arg_iterate change.
1769         (write_interface): Ditto.
1770         (lookup_object_info): Don't barf if format_version is > 0.
1771         (invoke_object_method): Handle arg constness.
1772
1773         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1774         (arg_info_new): Create.
1775         (arg_info_unref): Destroy.
1776         (arg_info_get_annotations, arg_info_get_annotation) 
1777         (arg_info_add_annotation): New functions.
1778
1779         * glib/dbus-gidl.h: Prototype them.
1780
1781         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1782         args, disallow them in properties.
1783         (parse_annotation): Handle arg annotations.
1784
1785         * test/glib/test-service-glib.xml: 
1786         * test/glib/test-service-glib.c: Update to make some methods
1787         const.
1788
1789 2005-07-08  Colin Walters  <walters@verbum.org>
1790
1791         * test/glib/test-service-glib.xml: 
1792         * test/glib/test-service-glib.c:
1793         * test/glib/test-dbus-glib.c: Test a{sv}.
1794
1795         * glib/examples/statemachine/statemachine.c:
1796         * glib/examples/statemachine/statemachine-server.c:
1797         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1798         add progress bar, etc.
1799
1800         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1801         needed anymore due to generic array/map marshalling.
1802         (dbus_g_value_types_init): Don't register basic arrays or the
1803         string/string hash.
1804         (dbus_gtype_from_signature_iter): Don't try to recurse into
1805         variants.
1806         (dbus_gtype_to_signature): Check collection/map before type
1807         metadata.
1808         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1809         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1810         generic map creation/append functions instead of hash table
1811         specifically.
1812         (get_type_demarshaller): Handle maps.
1813         (demarshal_collection): Dispatch on collection type to either
1814         demarshal_collection_ptrarray or demarshal_collection_array.
1815         (get_type_marshaller): Handle maps.
1816         (marshal_collection): Dispatch collection type to either
1817         marshal_collection_ptrarray or marshal_collection_array.
1818         (_dbus_gvalue_test): New test.
1819
1820         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1821         (hash_free_from_gtype): Use it to free GValues.
1822         (hashtable_append): New function.
1823         (ptrarray_append): Fix prototype.
1824         (slist_append): Ditto.
1825         (_dbus_gvalue_utils_test): Extend tests.
1826
1827         * glib/dbus-gtype-specialized.c
1828         (dbus_g_type_specialized_init_append): Renamed from
1829         dbus_g_type_specialized_collection_init_append.  Remove const from
1830         value, since we steal it.
1831         (dbus_g_type_specialized_map_append): New function.
1832
1833         * glib/dbus-gtype-specialized.h: Update prototypes.
1834         Add DBusGTypeSpecializedMapAppendFunc.
1835
1836         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1837         _dbus_gvalue_test.
1838         
1839         * glib/dbus-gtest.h: Prototype it.
1840
1841 2005-07-08  Ross Burton  <ross@openedhand.com>
1842
1843         * dbus/dbus-glib.h:
1844         Add DBysGAsyncData for the async bindings.
1845
1846         * glib/dbus-binding-tool-glib.c:
1847         Re-enable the async bindings.
1848
1849         * test/glib/test-dbus-glib.c:
1850         Add a test for the generated async bindings.
1851
1852 2005-07-08  Colin Walters  <walters@verbum.org>
1853
1854         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1855         connection concept.
1856         
1857 2005-07-08  Colin Walters  <walters@verbum.org>
1858         
1859         * tools/Makefile.am: Kill of print-introspect in favor of using
1860         dbus-send --print-reply=literal.
1861
1862         * test/glib/test-service-glib.xml: 
1863         * test/glib/test-service-glib.c (my_object_get_objs): New test
1864         for "ao".
1865
1866         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1867         (main): Test GetObjs.
1868
1869         * glib/examples/statemachine/Makefile.am:
1870         * glib/examples/statemachine/sm-marshal.list:
1871         * glib/examples/statemachine/statemachine-client.c:
1872         * glib/examples/statemachine/statemachine-server.c:
1873         * glib/examples/statemachine/statemachine-server.xml:
1874         * glib/examples/statemachine/statemachine.c:
1875         * glib/examples/statemachine/statemachine.h:
1876         * glib/examples/statemachine/statemachine.xml:
1877
1878         New example.
1879
1880         * glib/examples/example-service.c (main): Move invocation
1881         of dbus_g_object_type_install_info earlier, to emphasize it
1882         should only be done once.
1883
1884         * glib/examples/example-signal-emitter.c (main): Ditto.
1885
1886         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1887
1888         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1889         (dbus_gvalue_marshal): Update prototypes.
1890
1891         * glib/dbus-gvalue.c: Update all marshalling functions to take
1892         const GValue instead of GValue.
1893         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1894         types.
1895         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1896         change.
1897         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1898         Return a newly-allocated string.
1899         (demarshal_proxy, demarshal_object_path, demarshal_object)
1900         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1901         we get the wrong types from message.
1902         (get_type_demarshaller): New function, extracted from
1903         dbus_gvalue_demarshal.
1904         (demarshal_collection): New function, demarshals generic
1905         collection.
1906         (dbus_gvalue_demarshal): Just invoke result of
1907         get_type_demarshaller.  Throw error if we don't have one.
1908         (marshal_garray_basic): Abort on OOM.
1909         (get_type_marshaller): New function, extracted from
1910         dbus_gvalue_marshal.
1911         (collection_marshal_iterator, marshal_collection): New functions;
1912         implements generic marshalling for an iteratable specialized
1913         collection.
1914         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1915
1916         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1917         G_TYPE_STRING.
1918         (ptrarray_value_from_gvalue): Ditto.
1919         (ptrarray_append, ptrarray_free): New functions.
1920         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1921         (slist_append, slist_end_append, slist_free): New functions.
1922         (dbus_g_type_specialized_builtins_init): Add append fuctions
1923         for GPtrArray and GSList.  Register GSList.
1924         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1925
1926         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1927         New.
1928         (dbus_g_type_specialized_collection_init_append)
1929         (dbus_g_type_specialized_collection_append)
1930         (dbus_g_type_specialized_collection_end_append): Prototype.
1931         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1932         end_append_func.
1933
1934         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1935         (dbus_g_type_specialized_collection_append) 
1936         (dbus_g_type_specialized_collection_end_append): New functions.
1937         (dbus_g_type_map_value_iterate): Take const GValue.
1938         (dbus_g_type_collection_value_iterate): Ditto.
1939
1940         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1941         _dbus_gvalue_utils_test.
1942         
1943         * glib/dbus-gtest.h: Prototype it.
1944
1945         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1946         using uninitialized owner_list.
1947         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1948         public API.
1949         (dbus_g_proxy_end_call_internal): Update to use error set
1950         from dbus_gvalue_demarshal instead of setting it here.
1951         (dbus_g_proxy_begin_call): Move return_if_fail here.
1952
1953         * glib/dbus-gobject.c (write_interface): Update for
1954         dbus_gtype_to_signature returning new string.
1955
1956         * configure.in: Add glib/examples/statemachine.
1957
1958 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1959
1960         * configure.in: Add a configure option, --with-console-auth-dir
1961         
1962         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1963         new setting.  Patch from Kay Sievers.
1964
1965 2005-07-06  Colin Walters  <walters@verbum.org>
1966
1967         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1968         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1969         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1970         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1971         Delete in favor of dbus_g_proxy_begin_call and
1972         dbus_g_proxy_cancel_call.
1973         (DBusGProxyCall, DBusGProxyCallNotify): New.
1974         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1975         data, and destroy function.  This replaces
1976         dbus_g_pending_call_set_notify.
1977         (dbus_g_proxy_cancel_call): Prototype.
1978         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1979
1980         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1981         pending_calls map.
1982         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1983         internal proxy for calls to the bus. Remove
1984         pending_nameowner_calls, now the internal proxy keeps track.
1985         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1986         pending_nameowner_calls.
1987         (got_name_owner_cb): Update prototype, and use
1988         dbus_g_proxy_end_call.
1989         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1990         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1991         favor of using internal proxy.
1992         (dbus_g_proxy_manager_unregister): Update to use
1993         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1994         (dbus_g_proxy_init): Initialize pending calls map.
1995         (dbus_g_proxy_constructor): New.
1996         (dbus_g_proxy_class_init): Add get/set property functions,
1997         constructor, and add NAME, PATH, and INTERFACE properties.
1998         (cancel_pending_call): New function.
1999         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2000         cancel them.
2001         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2002         (GPendingNotifyClosure): New structure.
2003         (d_pending_call_notify, d_pending_call_free): Moved here from
2004         dbus-glib.c.
2005         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2006         ordering.
2007         (manager_begin_bus_call): New internal function for talking to
2008         internal bus proxy.
2009         (dbus_g_proxy_new): Construct object using GObjet properties.
2010         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2011         Create closure of same, and insert call into map of pending calls.
2012         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2013         call.  Look up pending call in current set.  Remove it when we've
2014         completed.
2015         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2016         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2017         and destroy function directly.
2018         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2019         (dbus_g_proxy_call): Invoke with NULL callback.
2020         (dbus_g_proxy_cancel_call): New function, replaces
2021         dbus_g_pending_call_cancel.
2022
2023         * glib/dbus-gparser.c (validate_signature): Fix call to
2024         dbus_set_g_error.
2025
2026         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2027         New quark for attaching metadata to GType.
2028         (info_hash): Delete.
2029         (lookup_object_info): Look up using quark.
2030         (dbus_g_object_type_install_info): Check that a type is classed,
2031         not that it's an object.  Also just install type data using quark
2032         instead of using global hash.
2033
2034         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2035         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2036         (GPendingNotifyClosure): Delete.
2037         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2038         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2039
2040         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2041         client method generation until we can fix it...
2042         
2043         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2044         (load_from_service_thread_func): Ditto.
2045
2046         * tools/dbus-names-model.c (struct NamesModel): Hold
2047         DBusGProxyCall.
2048         (have_names_notify): Update prototype, use
2049         dbus_g_proxy_cancel_call.
2050         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2051
2052         * tools/dbus-monitor.c (filter_func): Update for print_message
2053         API change.
2054
2055         * test/glib/test-dbus-glib.c: Add more tests for async
2056         invocations.  Update many begin_call/end_call pairs to just use
2057         dbus_g_proxy_call.
2058
2059         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2060         allows us to dump print-introspect.c.
2061
2062         * tools/dbus-print-message.h (print_message): Add literal argument
2063         to print_message which is intended to allow printing arguments without
2064         metadata like "string=".
2065
2066         * tools/dbus-print-message.c (print_iter): Add literal argument.
2067         (print_message): Allow printing string messages literally.
2068
2069 2005-07-05  Colin Walters  <walters@verbum.org>
2070
2071         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2072         Remove value refcount leak, original patch from Jorn Baayen
2073         <jorn@openedhand.com>.  Also remove useless extra value in favor
2074         of prepending to value array directly.
2075
2076 2005-07-02  Colin Walters  <walters@verbum.org>
2077
2078         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2079
2080 2005-07-01  Colin Walters  <walters@verbum.org>
2081
2082         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2083         
2084         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2085         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2086         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2087         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2088
2089 2005-06-30  Colin Walters  <walters@verbum.org>
2090
2091         * test/glib/test-dbus-glib.c:
2092         * test/glib/test-service-glib.c:
2093         * test/glib/test-service-glib.xml: Update tests for new error
2094         setting bits, also add async tests (patch from Ross Burton).
2095
2096         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2097         DBUS_GLIB_THREADS_LIBS.
2098
2099         * glib/dbus-gproxy.c (get_name_owner)
2100         (dbus_g_pending_call_end_valist): Ditto.
2101
2102         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2103         domain (GQuark) to DBusGErrorInfo.  
2104         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2105         quark in error_metadata.  Take message interface as default
2106         error message interface.
2107         (gerror_to_dbus_error_message): Pass message interface.
2108         (dbus_set_g_error): Resurrected.
2109         (dbus_g_error_info_free): New function.
2110         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2111         of _peek to actually create the object class if it hasn't been
2112         created yet.
2113         (dbus_g_error_domain_register): New function.
2114
2115         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2116
2117         * glib/dbus-gparser.c (validate_signature): Ditto.
2118
2119         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2120         (dbus_g_error_domain_register): Prototype.
2121
2122         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2123         Update tests.
2124
2125 2005-06-29  Colin Walters  <walters@verbum.org>
2126
2127         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2128         DBUS_TYPE_G_OBJECT_PATH.
2129
2130         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2131         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2132         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2133         (dbus_g_object_path_get_g_type): New function.
2134         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2135         to DBUS_TYPE_G_OBJECT_PATH by default.
2136         (demarshal_proxy): Remove unused name variable.
2137         (demarshal_object_path, marshal_object_path): New functions.
2138         (demarshal_proxy_array, marshal_proxy_array): Delete.
2139         
2140         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2141         DBUS_TYPE_G_OBJECT_PATH to char *.
2142         (dbus_g_type_get_lookup_function): Map builtin
2143         DBUS_TYPE_G_OBJECT_PATH.
2144
2145         * test/glib/test-dbus-glib.c
2146         * test/glib/test-service-glib.c (my_object_objpath): 
2147         Adapt tests to new object path marshalling.
2148
2149 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2150
2151         * configure.in: force check for Python >= 2.4
2152
2153 2005-06-29  Colin Walters  <walters@verbum.org>
2154         
2155         Patch from Ross Burton <ross@openedhand.com>
2156         
2157         * glib/dbus-gobject.c (invoke_object_method): Unset object
2158         value in all cases, not only in async case.
2159
2160 2005-06-29  Colin Walters  <walters@verbum.org>
2161
2162         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2163         name_call for keeping track of any outgoing GetNameOwner call.
2164         Also add for_owner and associated.
2165         (struct _DBusGProxyManager): Add owner_names, which is hash table
2166         that maps a base name to a list of names it owns (that we're
2167         interested in).  Add pending_nameowner_calls which is a list of
2168         all outstanding GetNameOwner; avoids us having to iterate over
2169         every proxy.  Add unassociated_proxies which keeps track of name
2170         proxies with no associated name owner.
2171         (dbus_g_proxy_manager_unref): Destroy owner_names.
2172         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2173         name refcounts.
2174         (find_name_in_info, name_owner_foreach)
2175         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2176         (dbus_g_proxy_manager_monitor_name_owner)
2177         (dbus_g_proxy_manager_unmonitor_name_owner)
2178         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2179         New functions; they manipulate the owner_names mapping.
2180         (got_name_owner_cb): New function.
2181         (get_name_owner): New function, extracted from
2182         dbus_g_proxy_new_for_name_owner.
2183         (dbus_g_proxy_manager_register): For now we need to keep track of
2184         all NameOwnerChanged.  Also if the proxy is for a name, if we
2185         don't already know the name owner, queue a new GetNameOwner
2186         request and add it to our list of unassociated proxies.  Otherwise
2187         inc the refcount.
2188         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2189         cancel any pending GetNameOwner call, etc.
2190         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2191         the owner_names mapping to look up the current names for the
2192         signal source, and dispatch to any proxies for that name.
2193         (dbus_g_proxy_new): Initialize new members.
2194         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2195         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2196         (dbus_g_pending_call_end_valist): New function, extracted from
2197         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2198         but want to use the GLib infrastructure.  Also note how many
2199         arguments in reply were over.
2200         (dbus_g_pending_call_end): New function, just call
2201         dbus_g_pending_call_end_valist.
2202         (dbus_g_proxy_end_call_internal): Just call
2203         dbus_g_pending_call_end_valist.
2204
2205         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2206         of builtin marshaller for STRING_STRING_STRING.
2207
2208         * test/glib/test-dbus-glib.c: 
2209         * test/glib/test-service-glib.c:
2210         * test/glib/test-service-glib.xml:
2211         Extend tests to cover name proxies, destruction of owner proxies,
2212         etc.
2213         
2214         * glib/examples/example-signal-recipient.c
2215         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2216         
2217         * tools/dbus-send.c (main): Print D-BUS error name in addition
2218         to message.
2219
2220 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2221
2222         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2223         cmessage_function_handler): Patch from 
2224         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2225         by using the Py_GILState_Ensure/Release to synchronize with the
2226         python runtime.
2227         
2228 2005-06-28  Ray Strode  <rstrode@redhat.com>
2229
2230         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2231         babysitter helper process on last unref, bug #2813.
2232
2233 2005-06-27  Colin Walters  <walters@verbum.org>
2234
2235         * test/glib/test-dbus-glib.c: 
2236         * test/glib/test-service-glib.c:
2237         * test/glib/test-service-glib.xml:
2238         Test hash table signal emitting.
2239
2240         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2241         types to their fundamental basis types, since this is what
2242         marshallers operate on.  Also add an entry for VOID__BOXED.
2243         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2244
2245 2005-06-26  Havoc Pennington  <hp@redhat.com>
2246
2247         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2248         from Don Park
2249
2250 2005-06-26  Colin Walters  <walters@verbum.org>
2251
2252         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2253         (dbus_g_error_set): New public function from its ashes; used by
2254         both service-side method implementation and GLib bindings
2255         internals.
2256         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2257         (_dbus_glib_test): Add some tests.
2258
2259         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2260
2261         * test/glib/test-service-glib.c (my_object_throw_error): Use
2262         dbus_g_error_set.
2263
2264         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2265         errors thrown by dbus_g_error_set.
2266
2267         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2268
2269         * glib/dbus-gparser.c (validate_signature): Ditto.
2270
2271         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2272         (dbus_g_proxy_end_call_internal): Ditto.
2273
2274         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2275         converts DBUS_ERROR_x to DBUS_GERROR_x.
2276         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2277
2278         * doc/TODO: Remove error TODO.
2279
2280         * doc/dbus-tutorial.xml: Update with documentation about error
2281         handling.
2282
2283         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2284         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2285         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2286
2287 2005-06-22  Colin Walters  <walters@verbum.org>
2288         
2289         Patch from Ross Burton <ross@openedhand.com>
2290
2291         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2292
2293 2005-06-20  Colin Walters  <walters@verbum.org>
2294
2295         * configure.in: Add glib/examples.
2296
2297         * glib/Makefile.am: Add examples/
2298
2299         * glib/examples/.cvsignore
2300         * glib/examples/Makefile.am
2301         * glib/examples/example-client.c
2302         * glib/examples/example-service.c
2303         * glib/examples/example-service.xml
2304         * glib/examples/example-signal-emitter.c
2305         * glib/examples/example-signal-emitter.xml
2306         * glib/examples/example-signal-recipient.c:
2307         New files; GLib binding examples, ported from
2308         python/examples.
2309
2310 2005-06-20  Colin Walters  <walters@verbum.org>
2311
2312         * dbus/dbus-glib.h: 
2313         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2314         dbus_g_proxy_call.
2315
2316         * glib/dbus-binding-tool-glib.c: 
2317         * doc/dbus-tutorial.xml: 
2318         * test/glib/test-dbus-glib.c: Update for rename.
2319         
2320 2005-06-20  Colin Walters  <walters@verbum.org>
2321
2322         Patch suggested by Ross Burton <ross@openedhand.com>
2323
2324         * glib/dbus-gobject.c (export_signals): Free signal name.
2325         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2326         memory leak.  Add a bit of documentation.
2327         (dbus_g_method_return_error): Free context, and note we do
2328         so.
2329
2330 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2331
2332         * dbus/dbus-glib.h:
2333         * glib/dbus-gobject.c:
2334         * glib/dbus-gproxy.c:
2335         * glib/dbus-gvalue.c: Predeclare structs as 
2336         typedef struct _Something Something instead of 
2337         typedef struct Something Something, so we can 
2338         redeclare the prototypes. Other GNOME libraries 
2339         do this already.
2340
2341 2005-06-17  Colin Walters  <walters@verbum.org>
2342
2343         * tools/dbus-names-model.c (have_names_notify): Fix call
2344         to dbus_g_proxy_end_call.
2345         
2346 2005-06-17  Colin Walters  <walters@verbum.org>
2347
2348         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2349         spew warnings if we get malformed remote signals.
2350
2351         * glib/dbus-gobject.c (propsig_iterate): New function.
2352         (lookup_object_info): New function, extracted from
2353         lookup_object_and_method.
2354         (introspect_properties, introspect_signals): Delete; these
2355         are merged into write_interface.
2356         (write_interface): Write out signals and properties here;
2357         dump the org.gtk.object stuff and use the interface given
2358         in the introspection data blob.  Also fix up property XML.
2359         (lookup_values): New function.
2360         (introspect_interfaces): Gather a mapping from interface to a
2361         list of its methods, signals, and properties, then write out
2362         each interface.
2363         (lookup_object_and_method): Use lookup_object_info.
2364         (struct DBusGSignalClosure): Add interface.
2365         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2366         we can just use the constant data.
2367         (dbus_g_signal_closure_finalize): Don't free signal name.
2368         (signal_emitter_marshaller): Use interface from signal closure.
2369         (export_signals): Only export signals mentioned in introspection
2370         blob.
2371         (dbus_g_connection_register_g_object): Warn if we have no
2372         introspection data for an object.
2373         (funcsig_equal): Remove unused variable.
2374         (dbus_g_object_register_marshaller): Take varargs instead of
2375         list.
2376         (dbus_g_object_register_marshaller_array): New function,
2377         extracted from old dbus_g_object_register_marshaller.
2378
2379         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2380         signals and property data.
2381         (write_quoted_string): New function, extracted from generate_glue.
2382         (generate_glue): Write signals and properties to introspection
2383         blob.
2384
2385         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2386         exported_signals and exported_properties.
2387         (dbus_g_object_register_marshaller): Update prototype.
2388         (dbus_g_object_register_marshaller_array): Prototype.
2389         
2390         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2391
2392         * test/glib/test-service-glib.c: Add new test signals and method
2393         to emit them.
2394
2395         * test/glib/test-service-glib.xml: Add some test signals.
2396
2397         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2398         and my-object-marshal.h
2399         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2400         my-object-marshal.c.
2401         (my-object-marshal.c, my-object-marshal.h): Implement.
2402
2403         * test/glib/.cvsignore: Update.
2404
2405         * doc/TODO: Remove two GLib TODO items fixed by this
2406         patch.
2407
2408 2005-06-16  Colin Walters  <walters@verbum.org>
2409
2410         * doc/TODO: Update for GLib bindings.
2411         
2412 2005-06-16  Colin Walters  <walters@verbum.org>
2413
2414         * glib/dbus-binding-tool-glib.c:
2415         * glib/dbus-gobject.c:
2416         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2417         from Ross Burton, for his GLib bindings work.
2418
2419 2005-06-16  Colin Walters  <walters@verbum.org>
2420
2421         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2422         to iterate instead of walking to G_TYPE_INVALID.
2423
2424         Patch based on a patch from Ryan Gammon.
2425
2426 2005-06-16  Colin Walters  <walters@verbum.org>
2427
2428         * bus/bus.c (bus_context_new): Set parser to NULL
2429         after we unref it (Patch from Chris Boscolo, #2174).
2430         
2431 2005-06-16  Colin Walters  <walters@verbum.org>
2432
2433         * python/dbus_bindings.pyx.in: Import size_t,
2434         __int64_t, __uint64_t, and __signed.
2435
2436         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2437         Define cmsg struct, output it.
2438         (_dbus_read_credentials_unix_socket):
2439         Use cmsg struct.
2440         
2441         Patch from Joe Markus Clarke for FreeBSD support.
2442         
2443 2005-06-16  Colin Walters  <walters@verbum.org>
2444
2445         * tools/dbus-send.c (append_array): Use strtok.
2446         (append_dict): New function.
2447         (type_from_name): New function, extracted from main.
2448         (main): Handle sending dicts.
2449
2450         * tools/dbus-print-message.c (print_iter): Print dict
2451         entries.
2452         
2453 2005-06-16  Colin Walters  <walters@verbum.org>
2454
2455         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2456         values as the empty string (#2948).
2457         
2458 2005-06-16  Colin Walters  <walters@verbum.org>
2459
2460         * dbus/Makefile.am:
2461         * mono/doc/Makefile.am:
2462         * test/glib/Makefile.am:
2463
2464         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2465
2466 2005-06-16  Colin Walters  <walters@verbum.org>
2467
2468         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2469         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2470
2471         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2472         Increment pointer after swapping fixed array.  Add assertion
2473         for array length.
2474                 
2475 2005-06-15  Colin Walters  <walters@verbum.org>
2476
2477         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2478         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2479         
2480 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2481
2482         * NEWS: Update to 0.34
2483
2484 2005-06-15  David Zeuthen  <davidz@redhat.com>
2485
2486         * configure.in (LT_CURRENT): Revert back to 1 as the library
2487         hasn't changed and we've certainly not committed to protocol
2488         stability yet.  All this does is to break ABI. See commit note
2489         from hp@redhat.com 2005-05-05 for details.
2490         
2491 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2492
2493         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2494         (_dbus_connection_run_builtin_filters): New method
2495         (dbus_connection_dispatch): Run the builtin filters which in turn
2496         runs the peer filter which handles Ping messages.
2497
2498         * doc/TODO: 
2499          - Ping isn't handled: This patch fixes it
2500          
2501          - Add a test case for the Ping message: added TODO item
2502
2503 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2504
2505         * dbus/dbus-message.c:
2506         (dbus_message_has_path): New method
2507         (dbus_message_has_interface): New method
2508         (dbus_message_has_member): New method
2509
2510         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2511         New method
2512
2513         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2514         the keyring directory is private to the user
2515
2516         * doc/TODO:
2517          - The convenience functions in dbus-bus.h should perhaps have
2518          the signatures that they would have if they were autogenerated
2519          stubs. e.g. the acquire service function. We should also evaluate
2520          which of these functions to include, in light of the fact that
2521          GLib/Qt native stubs will probably also exist.: Punted
2522
2523          - add dbus_message_has_path(), maybe has_member/interface:
2524          fixed in this patch
2525
2526          - in dbus-keyring.c, enforce that the keyring dir is not
2527          world readable/writable: Fixed in this patch
2528
2529 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2530
2531         * dbus/dbus-marshal-validate.h: Added a new validation
2532         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2533         out of memory errors when validating signitures
2534
2535         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2536         in places where we previously used DBUS_VALID and a FALSE return 
2537         value to indicate OOM
2538         
2539         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2540         Use a stack to track the number of elements inside containers.  The 
2541         stack values are then used to validate that dict entries have only two
2542         elements within them.
2543         (validate_body_helper): check the reason for failure when validating
2544         varients
2545         
2546         * dbus/dbus-message.c (load_message): use 
2547         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2548         DBUS_VALID and a FALSE return value to indicate OOM
2549
2550         * doc/TODO: remove "- validate dict entry number of fields" as this
2551         patch fixes it
2552
2553 2005-06-14  David Zeuthen  <davidz@redhat.com>
2554
2555         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2556         watches (if applicable) and add new watches
2557
2558         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2559         (main): Setup SIGIO signal handler if using D_NOTIFY
2560
2561         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2562
2563         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2564         (merge_included): Also merge conf_dirs list
2565         (bus_config_parser_unref): Clear conf_dirs list
2566         (include_dir): Add directory to conf_dirs list
2567         (bus_config_parser_get_conf_dirs): New function
2568
2569         * bus/dir-watch.[ch]: New files
2570
2571         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2572
2573         * configure.in: Add checks for D_NOTIFY on Linux
2574
2575 2005-06-14  Colin Walters  <walters@verbum.org>
2576
2577         * glib/dbus-binding-tool-glib.c:
2578         * glib/dbus-gobject.c:
2579         * glib/dbus-gvalue.c: Fix indentation and brace style.
2580         
2581 2005-06-14  Ross Burton <ross@openedhand.com>.
2582
2583         * glib/dbus-glib.h: Make DBusGMethodInvocation
2584         a private structure.  Rearrange prototypes a bit.
2585         
2586         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2587         documentation for first_arg_type.
2588         
2589         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2590         here, add documentation.  Move dbus_g_method_return
2591         and dbus_g_method_return_error into public API
2592         section.
2593
2594 2005-06-14  Colin Walters  <walters@verbum.org>
2595
2596         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2597         Add missing return statements, noticed by Ross Burton.
2598         
2599 2005-06-13  Ross Burton <ross@openedhand.com>.
2600
2601         * glib/dbus-gobject.c: Handle errors on message
2602         demarshalling by sending error message back.
2603         * glib/dbus-gvalue.c: Initialize return variables.
2604
2605 2005-06-13  Colin Walters  <walters@verbum.org>
2606
2607         * glib/Makefile.am: Fix thinko in last patch.
2608
2609 2005-06-13  Colin Walters  <walters@verbum.org>
2610
2611         * glib/Makefile.am: Move dbus-gtype-specialized.c
2612         and dbus-gtype-specialized.h into a _HEADERS variable,
2613         install them.
2614
2615 2005-06-12  Colin Walters  <walters@verbum.org>
2616
2617         Async signals and various bugfixes and testing by
2618         Ross Burton <ross@openedhand.com>.
2619
2620         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2621         (dbus_gvalue_genmarshal_name_from_type)
2622         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2623         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2624         (dbus_g_value_types_init, dbus_gtype_from_signature)
2625         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2626         (dbus_gtypes_from_arg_signature): New function prototypes.
2627         (dbus_gvalue_demarshal): Take context and error arguments.
2628         (dbus_gvalue_demarshal_variant): New function.
2629         (dbus_gvalue_demarshal_message): New function.
2630         (dbus_gvalue_store): Delete.
2631
2632         * glib/dbus-gvalue.c:
2633
2634         File has been almost entirely rewritten; now we special-case
2635         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2636         hash tables correctly, etc.  Full support for recursive values
2637         is not yet complete.
2638
2639         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2640         argument of signal to G_TYPE_POINTER since we now pass a
2641         structure.
2642         (lookup_g_marshaller): Delete in favor of
2643         _dbus_gobject_lookup_marshaller.
2644         (marshal_dbus_message_to_g_marshaller): Use
2645         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2646         to handle remote signal callbacks.
2647         (dbus_g_proxy_new_from_proxy): New function; creates a new
2648         DBusGProxy by copying an existing one.
2649         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2650         (dbus_g_proxy_get_path): New functions.
2651         (dbus_g_proxy_marshal_args_to_message): New function;
2652         factored out of existing code.
2653         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2654         from a varargs array.
2655         (dbus_g_proxy_begin_call_internal): New function.
2656         (dbus_g_proxy_end_call_internal): New function.
2657         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2658         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2659         after collecting args into value array.
2660         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2661         invoke dbus_g_proxy_end_call_internal.
2662         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2663         end_call_internal.
2664         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2665         types.
2666         (array_free_all): New function.
2667         (dbus_g_proxy_add_signal): Take GTypes.
2668
2669         * glib/dbus-gobject.h:
2670         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2671         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2672         Prototype.
2673
2674         * glib/dbus-gobject.c: Add a global marshal_table hash which
2675         stores mappings from type signatures to marshallers.  Change lots
2676         of invocations of dbus_gtype_to_dbus_type to
2677         dbus_gtype_to_signature.
2678         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2679         (introspect_signals): Fix test for query.return_type.
2680         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2681         (invoke_object_method): Many changes.  Handle asynchronous
2682         invocations.  Convert arguments with
2683         dbus_gvalue_demarshal_message.  Handle errors.  Use
2684         DBusSignatureIter instead of strlen on args. Handle all arguments
2685         generically.  Special-case variants.
2686         (dbus_g_method_return, dbus_g_method_return_error): New function.
2687         (DBusGSignalClosure): New structure, closes over signal
2688         information.
2689         (dbus_g_signal_closure_new): New function.
2690         (dbus_g_signal_closure_finalize): New function.
2691         (signal_emitter_marshaller): New function; is special marshaller
2692         which emits signals on bus.
2693         (export_signals): New function; introspects object signals and
2694         connects to them.
2695         (dbus_g_object_type_install_info): Take GType instead of
2696         GObjectClass.
2697         (dbus_g_connection_register_g_object): Invoke export_signals.
2698         (dbus_g_connection_lookup_g_object): New function.
2699         (DBusGFuncSignature) New structure; used for mapping type
2700         signatures to marshallers.
2701         (funcsig_hash): New function; hashes DBusGFuncSignature.
2702         (funcsig_equal): New function; compares DBusGFuncSignature.
2703         (_dbus_gobject_lookup_marshaller): New function.
2704         (dbus_g_object_register_marshaller): New function; used to
2705         register a marshaller at runtime for a particular signature.
2706
2707         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2708
2709         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2710         which notes a server method implementation should be
2711         asynchronous.
2712
2713         * glib/dbus-binding-tool-glib.c
2714         (dbus_binding_tool_output_glib_server): Call
2715         dbus_g_value_types_init.
2716         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2717         variants specially.
2718         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2719         of a lookup function.
2720         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2721         (write_untyped_out_args): New method; write output arguments.
2722         (write_formal_declarations_for_direction): Function for
2723         writing prototypes.
2724         (write_formal_parameters_for_direction): Function for
2725         writing implementations.
2726         (write_typed_args_for_direction): Function for writing
2727         arguments prefixed with GTypes.
2728         (write_async_method_client): Write out async version
2729         of method.
2730
2731         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2732         (dbus_g_type_get_marshal_name): Move mapping from GType
2733         to marshal name into here.
2734         (dbus_g_type_get_c_name): Move into here.
2735         (compute_marshaller): Convert signature to type with
2736         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2737         (compute_marshaller_name): Ditto.
2738         (compute_marshaller): Handle async signal annotations.
2739         (gather_marshallers): Return if we don't have a known
2740         prefix.
2741         (generate_glue): Collect introspection blob here, and
2742         write all of the blob at the end.  This allows an object
2743         with multiple interfaces to work.
2744         Mark async methods in introspection blob.
2745
2746         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2747         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2748         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2749
2750         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2751         avoids people accidentally using DBUS_TYPE_* which should
2752         not be necessary anymore.
2753         Do include dbus-gtype-specialized.h, which are utilities
2754         for GLib container types.
2755         Add various #defines for types such as
2756         DBUS_TYPE_G_BOOLEAN_ARRAY.
2757         (DBusGValueIterator, DBusGValue): Define, not fully used
2758         yet.
2759         (dbus_g_value_get_g_type): Type for recursive value.
2760         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2761         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2762         (dbus_g_value_free): Prototypes.
2763         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2764         (dbus_g_proxy_set_interface): Prototype.
2765         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2766         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2767         types.
2768         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2769         Accessors.
2770         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2771         doing async invocations.
2772         (dbus_g_method_return, dbus_g_method_return_error):
2773         Prototypes.
2774         * doc/dbus-tutorial.xml: Update GLib section.
2775         
2776         * tools/dbus-viewer.c (load_child_nodes): Update
2777         for new invocation type of dbus_g_proxy_end_call.
2778         (load_from_service_thread_func): Ditto.
2779
2780         * tools/print-introspect.c (main): Ditto.
2781
2782         * tools/dbus-names-model.c (have_names_notify)
2783         (names_model_reload, names_model_set_connection)
2784         Use GTypes.
2785
2786         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2787         needed since Python bindings use GLib bindings.
2788
2789         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2790         Add --prefix argument.
2791
2792         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2793         unneeded --ignore-unsupported arg.
2794         
2795         * test/glib/test-service-glib.c: 
2796         * test/glib/test-service-glib.xml:
2797         * test/glib/test-dbus-glib.c: Add many more tests.
2798
2799 2005-06-06  David Zeuthen  <davidz@redhat.com>
2800
2801         * doc/TODO: Add item about need to remove deprecated functions.
2802
2803         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2804
2805         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2806         to repair the ABI which was broken with the last commit.
2807
2808 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2809
2810         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2811         (dbus_connection_disconnect): renamed to dbus_connection_close 
2812         for API symmetry with dbus_connection_open
2813         (_dbus_connection_open_internal): 
2814         s/dbus_connection_disconnect/dbus_connection_close
2815
2816         * dbus/dbus-bus.c (dbus_bus_get):
2817         s/dbus_connection_disconnect/dbus_connection_close
2818
2819         * bus/connection.c (bus_connections_unref, 
2820         bus_connections_setup_connection, bus_connections_expire_incomplete):
2821         s/dbus_connection_disconnect/dbus_connection_close
2822
2823         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2824         kill_client_connection_unchecked, check_hello_connection):
2825         s/dbus_connection_disconnect/dbus_connection_close
2826
2827         * bus/bus.c (new_connection_callback):
2828         s/dbus_connection_disconnect/dbus_connection_close
2829
2830         * tools/dbus-send.c (main):
2831         s/dbus_connection_disconnect/dbus_connection_close
2832
2833         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2834         s/dbus_connection_disconnect/dbus_connection_close
2835         
2836         * test/test-service.c (path_message_func, filter_func):
2837         s/dbus_connection_disconnect/dbus_connection_close
2838         
2839         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2840         
2841 2005-05-25  Colin Walters  <walters@verbum.org>
2842
2843         * dbus/dbus-protocol.h: Move various bus service #defines such
2844           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2845           dbus/dbus-shared.h.
2846         * dbus/dbus-shared.h: Various defines moved here.
2847         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2848
2849 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2850
2851         * python/__init__.py: Python bindings deserve a minor version
2852         update.  Upped to (0, 40, 2)
2853
2854 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2855
2856         * python/decorators.py: add explicitly_pass_message decorator
2857         for passing in the dbus message as keyword for edge case signal
2858         handling
2859
2860         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2861         to conform with what dbus expects for match rules
2862         (SignalMatchRule.execute): add the dbus message as a keyword
2863         if the signal handler has requested it
2864
2865         * python/examples/example/signal-recipient.py: added some more
2866         examples on how to hook up to signals
2867
2868 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2869
2870         * python/decorators.py: import dbus_bindings
2871
2872         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2873         SignalMatchNode): new classes that implement wildcard signal
2874         callback matching using a tree lookup. Heavily modified from a
2875         patch sent by Celso Pinto (fd.o bug #3241)
2876
2877         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2878         use new match classes to handle signals.
2879
2880 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2881         
2882         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2883
2884 2005-05-18  Havoc Pennington  <hp@redhat.com>
2885
2886         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2887         gettext. Not really worth requiring yet perhaps, but any
2888         production quality 1.0 would require it so we should go ahead and
2889         get things set up. We do have a couple token calls to
2890         bindtextdomain in the code already.
2891
2892 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2893
2894         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2895         when using recursive g_main_loops
2896
2897         * python/_dbus.py (class Bus): add the ProxyObjectClass
2898         alias for ProxyObject to make it easier for the Twisted 
2899         networking framework to integrate dbus.
2900
2901         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2902         alias for ProxyMethod to make it easier for the Twisted 
2903         networking framework to integrate dbus. 
2904
2905 2005-05-11  Ross Burton  <ross@openedhand.com>
2906
2907         * glib/dbus-glib-tool.c: Add --prefix argument.
2908         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2909         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2910         Add prefix argument.
2911         (generate_glue): Pass prefix argument down.
2912         (dbus_binding_tool_output_glib_server): Pass prefix to
2913         glib-genmarshal.
2914         
2915 2005-05-11  Colin Walters  <walters@verbum.org>
2916
2917         * tools/dbus-send.c (append_array): New function.
2918         (append_arg): Broken out from main.
2919         (main): Add cheesy hack to send arrays and variants.
2920         (usage): Update.
2921         * tools/dbus-print-message.c (print_iter): Broken out
2922         from main.
2923
2924 2005-05-11  Colin Walters  <walters@verbum.org>
2925
2926         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2927         New function, returns signature string for signature iter.
2928         * dbus/dbus-signature.h: Prototype it.
2929         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2930         New function, returns signature string for message iter.
2931         (dbus_message_iter_get_array_len): New function, returns
2932         length of array.
2933         (dbus_message_iter_get_fixed_array): Fix assertion; this
2934         function should be used when the iter is pointing to the
2935         contents of an array
2936         * dbus/dbus-message.h: Prototypes.
2937         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2938         New function; returns length of an array.
2939         * dbus/dbus-marshal-recursive.h: Prototype it.
2940         
2941 2005-05-11  Colin Walters  <walters@verbum.org>
2942
2943         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2944         compilation error.
2945         
2946 2005-05-08  Havoc Pennington  <hp@redhat.com>
2947
2948         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2949         daemon's pid, not the parent's pid, to the file descriptor.
2950         Reported by Taj Morton.
2951
2952 2005-05-05  Havoc Pennington  <hp@redhat.com>
2953
2954         * configure.in (LT_*): add notes on how the libtool versioning
2955         works to save thinking. Increment soname to indicate protocol
2956         breakage (though really the library interface hasn't changed I
2957         guess)
2958
2959         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2960         verify the GUID received from server matches what we were
2961         expecting, if we had an expectation
2962
2963         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2964         (_dbus_auth_get_guid_from_server): new function
2965         (send_begin): parse the OK args
2966
2967         * doc/dbus-specification.xml: add GUID to the auth protocol
2968
2969 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2970
2971         * Fix my name in previous changelog ;)
2972
2973         * python/proxies.py (ProxyObject.__getattr__): add further patch
2974         from Anthony Baxter to throw an AttributeError when python 
2975         __special__ functions are called instead of marshling them over 
2976         the bus (Bug#1685 comment 3).
2977
2978 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2979
2980         * python/Makefile.am: changed to use pyexecdir for the binding
2981         shared libraries (Bug#2494)
2982
2983         * python/exceptions.py: bring exceptions over from the bindings
2984         so they can be used in applications (Bug#2036)
2985         Make all exceptions derive from DBusException
2986
2987         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2988         of classes so that print obj doesn't throw an exception (Bug #1685)
2989
2990 2005-05-03  Ross Burton  <ross@openedhand.com>
2991
2992         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2993         Return if we get an error during registration.  Set up a
2994         weak reference on object to unregister if object is destroyed.
2995         (unregister_gobject): New function.
2996         
2997 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2998
2999         * python/dbus_bindings.pyx.in: 
3000         - added new type classes for hinting to the marashaler what type 
3001         to send over the wire
3002         - added int16 and uint16 marshalers
3003         - Fixed a bug in the type constants that caused int32 to go out
3004         as uint16 over the wire
3005         * python/dbus.py: split up into different files and renamed _dbus.py
3006         * python/__init__.py, python/_util.py, python/decorators.py, 
3007         python/exceptions.py, python/proxies.py, python/services.py,
3008         python/types.py: new files split off from dbus.py
3009         * python/Makefile.am: Add new files, remove dbus.py and 
3010         install all python files to <python module dir>/dbus
3011         * python/examples/*: Added #!/usr/bin/env python to the top of
3012         every example.  Patch provided by Tatavarty Kalyan
3013
3014 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3015
3016         * NEWS: Update to 0.33
3017
3018 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3019
3020         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3021         method for doing async calls
3022         (_pending_call_notification): New C function for handling pendning call
3023         callbacks
3024         (set_notify): New method for setting pending call notification
3025         
3026         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3027         Async capabilities added to remote method calls
3028         (Sender): class removed
3029         (RemoteService): class removed
3030         (ObjectTree): class removed for now
3031         (RemoteObject): Renamed to ProxyObject
3032         (RemoteMethod): Renamed to ProxyMethod
3033         (method): Decorator added for decorating python methods as dbus methods
3034         (signal): Decorator added for decorating python methods as signal emitters
3035         (ObjectType): Metaclass added for generating introspection data and the
3036         method callback vtable
3037         (Interface): Wrapper class added to wrap objects in a dbus interface
3038         (Object): Uses ObjectType as its metaclass and exports Introspect
3039         of the org.freedesktop.DBus.Introspectable interface
3040         (ValidationException, UnknownMethodException): new exceptions
3041
3042         * python/examples/*: Modified to fit with the new bindings
3043
3044 2005-04-23  Havoc Pennington  <hp@redhat.com>
3045
3046         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3047         reported by Tony Houghton
3048
3049         * test/test-service.c (main): test
3050         dbus_connection_get_object_path_data()
3051
3052         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3053         the exact_match
3054         (_dbus_object_tree_get_user_data_unlocked): new function used by
3055         dbus_connection_get_object_path_data()
3056         (do_register): add assertion test for get_user_data_unlocked
3057         (object_tree_test_iteration): more tests
3058
3059         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3060         new function from Dan Reed to let you get the user data from 
3061         dbus_connection_register_object_path()
3062
3063 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3064
3065         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3066         in numerous places that did not account for the NULL terminator
3067         (signature_from_seed): changed the manual string copy loop to 
3068         just use strcpy instead
3069         make check should now pass
3070
3071 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3072
3073         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3074         so that it allows messages that are not signals to pass in 
3075         NULL as the interface.
3076
3077 2005-04-18  David Zeuthen  <davidz@redhat.com>
3078
3079         * glib/dbus-gmain.c (io_handler_destroy_source): 
3080         (timeout_handler_destroy_source, connection_setup_free): 
3081         Also unref the source to avoid memory leaks.
3082
3083 2005-04-13  David Zeuthen  <davidz@redhat.com>
3084
3085         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3086         more reasonable, yet still totally arbitrary, value :-). 
3087
3088 2005-04-13  David Zeuthen  <davidz@redhat.com>
3089
3090         * doc/TODO: Added an "important for 1.0" item about selinux
3091         allow/deny messages
3092
3093 2005-04-13  David Zeuthen  <davidz@redhat.com>
3094
3095         * bus/selinux.c: Add c-file-style to top of file
3096         (log_audit_callback): Don't free the data here anymore
3097         (bus_selinux_check): Don't take spid and tpid since appending
3098         that to auxdata may OOM.
3099         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3100         to the caller if we are OOM by taking an error object.
3101         (bus_selinux_allows_send): -do-
3102
3103         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3104         and bus_selinux_allows_send
3105
3106         * bus/bus.c (bus_context_check_security_policy): Pass error and
3107         pass on OOM thrown by bus_selinux_allows_send()
3108
3109         * bus/services.c (bus_registry_acquire_service): Pass error and
3110         pass on OOM thrown by bus_selinux_allows_acquire_service()
3111
3112 2005-04-13  Havoc Pennington  <hp@redhat.com>
3113
3114         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3115         message at a time to avoid monopolizing the main loop, bug 
3116         #2953 from Benjamin Otte
3117
3118 2005-04-09  Havoc Pennington  <hp@redhat.com>
3119
3120         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3121         possible overlap, fix from Daniel Reed
3122         (fixup_alignment): fix signedness warnings
3123         (_dbus_string_append_unichar): ditto
3124
3125 2005-04-09  Havoc Pennington  <hp@redhat.com>
3126
3127         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3128
3129         * glib/dbus-glib-tool.c (main): fix warning
3130
3131         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3132
3133         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3134         add a new function that can be used in simple applications that
3135         don't have a main loop and are willing to block
3136
3137 2005-04-05  David Zeuthen  <davidz@redhat.com>
3138
3139         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3140
3141         * glib/dbus-gmain.c:
3142         (io_handler_destroy_source): Remove from list of IO handlers
3143         of the ConnectionSetup object
3144         (timeout_handler_destroy_source): -do- for timeout handlers
3145         (io_handler_source_finalized): Don't remove from list since
3146         we now do that in io_handler_destroy_source(). Renamed from
3147         io_handler_source_destroyed
3148         (timeout_handler_source_destroyed): -do- for timeout handlers
3149         (connection_setup_free): It is now safe to iterate over all
3150         IO and timeout handlers as the _destroy_source removes them
3151         from the list synchronously
3152
3153 2005-03-30  Havoc Pennington  <hp@redhat.com>
3154
3155         * configure.in: change check to gtk 2.4
3156
3157         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3158         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3159         to 2.4
3160
3161 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3162
3163         * News: Update 0.32
3164
3165         * HACKING: Fixed realease instructions.  configure.in should be updated to
3166           the next release by the person who made the last release.
3167
3168 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * python/lvalue_cast_post_process.py - removed.  Patch has been
3171           submitted to Pyrex maintainers that fixes gcc4.0 errors
3172
3173         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3174
3175 2005-03-24  Daniel Reed  <n@ml.org>
3176
3177         * tools/Makefile.am: Make print-introspect and
3178         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3179
3180 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3181
3182         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3183
3184         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3185           had in Red Hat packages for a while but for some reason never 
3186           got merged upstream
3187           (_dbus_is_a_number): New checks if a string
3188           can be converted to a number and does the conversion if it can
3189           (_dbus_user_database_lookup): Add check to see if the given username
3190           is a udi.  This allows udi's to be used instead of usernames in the
3191           config file.
3192           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3193           is a gdi.  This allows gdi's to be used instead of groupnames in the
3194           config file.
3195
3196 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3197
3198         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3199           code so that it compiles with gcc4.0
3200
3201         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3202           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3203           results back to dbus_binding.c
3204
3205 2005-03-20  Colin Walters  <walters@verbum.org>
3206
3207         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3208
3209         * configure.in: Require GTK+ 2.6.
3210         
3211 2005-03-20  Colin Walters  <walters@verbum.org>
3212
3213         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3214
3215 2005-03-17  Tom Parker  <palfrey@tevp.net>
3216
3217         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3218         print DBUS_UID_UNSET; instead print passed username.  Also
3219         be sure to actually use gid looked up in cache.
3220         
3221         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3222         for DBUS_GID_UNSET and groupname.
3223
3224 2005-03-17  Colin Walters  <walters@verbum.org>
3225
3226         * bus/print-introspect.c: Move to tools/.
3227         * bus/run-with-tmp-session-bus.sh: Ditto.
3228         
3229         * glib/Makefile.am (dbus-glib-bindings.h): Move
3230         generation to tools/Makefile.am.
3231
3232         * test/glib/run-test.sh: Update to handle move
3233         of run-with-tmp-session-bus.sh.
3234
3235         * test/glib/test-service-glib.c: Update to handle
3236         move of dbus-glib-bindings.h.
3237
3238         * tools/print-introspect.c: Moved here
3239         from bus/, and ported to GLib bindings.
3240
3241         * tools/run-with-tmp-session-bus.sh: Moved here
3242         from bus/.
3243
3244         * tools/Makefile.am: Generate dbus-glib-bindings.h
3245         and dbus-bus-introspect.xml here.
3246
3247         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3248         Update.
3249
3250 2005-03-17  Colin Walters  <walters@verbum.org>
3251
3252         * bus/driver.c (write_args_for_direction): Use
3253         _dbus_string_get_const_data to retrieve string;
3254         _dbus_string_get_const_data_len doesn't actually return
3255         a NULL-terminated substring.
3256
3257         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3258         (main): Change to use org_freedesktop_DBus_request_name
3259         instead of using g_proxy_begin_call/end_call.
3260
3261 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3262
3263         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3264         generating the finalizer.  Fixes from Ben Maurer.
3265
3266 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3267
3268         * mono/BusDriver.cs: Update method names: ListServices
3269         becomes ListNames; GetOwner becomes GetNameOwner.
3270
3271         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3272         onto the eval stack when removing the delegate.
3273
3274 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3275
3276         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3277         LT_CURRENT.  Set it to the autoconf variable.
3278                                                                                 
3279         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3280         classes that disconnects the signal handler delegate from the
3281         service object.  Fixes a big leak of proxy objects on the
3282         client side of things.  Patch from Ben Maurer
3283         <bmaurer@ximian.com>
3284
3285 2005-03-12  Colin Walters  <walters@verbum.org>
3286
3287         * bus/driver.c (write_args_for_direction): New function,
3288         parses a type signature into arguments and outputs to
3289         XML.
3290         (bus_driver_handle_introspect): Use it instead of
3291         hardcoding XML for certain signatures.
3292         
3293         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3294         dependency on dbus-daemon.
3295
3296         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3297         argument, pass it to dbus_binding_tool_output_glib_client.
3298
3299         * glib/dbus-binding-tool-glib.c
3300         (generate_client_glue): Protect against multiple inclusion.
3301         (dbus_binding_tool_output_glib_client): Add
3302         G_BEGIN_DECLS/G_END_DECLS.
3303
3304         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3305         Change to just take iface prefix directly.
3306         (write_formal_parameters): Clarify error message.
3307         (check_supported_parameters): New function; checks to see type
3308         signatures of method parameters are supported.
3309         (generate_client_glue): Handle ignore_unsupported flag.
3310         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3311         parameter.
3312
3313         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3314         --ignore-unsupported by default until glib bindings
3315         support arrays.
3316
3317 2005-03-11  Colin Walters  <walters@verbum.org>
3318
3319         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3320         install it.
3321
3322         * bus/print-introspect.c: New file; prints introspection
3323         data for a given name and object path.
3324
3325         * bus/run-with-tmp-session-bus.sh: New file, refactored
3326         from test/glib/run-test.sh.  Creates a temporary session
3327         bus and runs another program.
3328
3329         * test/glib/run-test.sh: Refactor to invoke
3330         run-with-tmp-session-bus.sh.
3331
3332         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3333         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3334         macros instead of hardcoding.
3335
3336         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3337
3338 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3339
3340         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3341         this unref; it doesn't match up evenly in some codepaths.
3342         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3343         this evenly matches with the ref near the top of this function.
3344
3345 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3346
3347         * dbus/dbus-object-tree.c
3348         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3349         and we try to unregister a path that's not registered, still go
3350         through the process of unlocking and don't just return.
3351
3352 2005-03-09  Colin Walters  <walters@verbum.org>
3353
3354         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3355         to this are generated for client-side wrappers.  Invokes a
3356         D-BUS method and returns reply values.  
3357
3358         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3359         function; writes signature string for argument direction.
3360         (write_args_for_direction): Change to pass input values directly
3361         instead of via address, and fix indentation.
3362         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3363         make generated wrappers inlineable.
3364
3365         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3366         note about using dbus_type_is_fixed.
3367
3368         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3369         dbus/dbus-signature.c as dbus_type_is_fixed.
3370
3371         All callers updated.
3372
3373         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3374         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3375
3376         * dbus/dbus-signature.h: Prototype.
3377
3378         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3379         error printf code.
3380
3381         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3382         appropriate instead of just freeing it.
3383         (main): Free returned strings using g_free.
3384
3385         * test/glib/Makefile.am (test-service-glib-glue.h)
3386         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3387
3388         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3389         simply maps a simple D-BUS type to GType.
3390         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3391         GType.
3392         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3393         initialize the value with it.
3394         (dbus_gvalue_binding_type_from_type): Unused, delete.
3395         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3396         various types instead of unmarshalling to value data directly.
3397         Remove can_convert boolean.
3398         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3399         returning directly instead of using can_convert boolean.
3400         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3401         Stores a GValue in a pointer to a value of its corresponding C
3402         type.
3403
3404         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3405         add dbus_gvalue_store.
3406
3407 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3408
3409         Fix a bunch of lifecycle and memory management problems
3410         in the mono bindings.
3411
3412         * mono/Arguments.cs (Arguments): Implement IDisposable
3413
3414         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3415         strictly a static class.
3416
3417         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3418         delegates into this file.
3419         (Connection): Implement IDisposable.
3420         (Dispose): Disconnect the connection and set the raw connection
3421         pointer to IntPtr.Zero.
3422         (~Connection): Call Dispose().
3423         (RegisterObjectPath): Added.  Manages the registration of object
3424         paths so we can cleanly disconnect them at dispose/finalize time.
3425         (UnregisterObjectPath): Ditto.
3426         (set_RawConnection): Unregister all of the object paths when
3427         changing the underlying DBusConnection.  Add them back onto the
3428         new connection, if any.
3429
3430         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3431         more unmanaged resources anymore, so it's not necessary.  Move all
3432         the DBusObjectPathVTable stuff out of here.
3433         (Handler): Save references to our delegates so that they don't get
3434         finalized.  Call Connection.RegisterObjectPath() instead of
3435         dbus_connection_register_object_path() directly.
3436         (Message_Called): Dispose the message after we're finished with
3437         it.
3438
3439         * mono/Message.cs (Message): Implement IDisposable.
3440         (Dispose): Dispose the Arguments, and set the RawMessage to
3441         IntPtr.Zero.
3442         (SendWithReplyAndBlock): We own the ref to the reply that comes
3443         back from dbus_connection_send_with_reply_and_block() so add a
3444         comment about that and unref it after we've constructed a managed
3445         MethodReturn class around it.  Fixes a big, big leak.
3446
3447         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3448         method.
3449         (BuildSignalHandler): After we've sent the Signal message, dispose
3450         of it.
3451         (BuildMethod): Dispose of the method call and reply messages after
3452         we've sent the message and extracted the data we want from the
3453         reply.
3454
3455         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3456         anymore.
3457         (Service_FilterCalled): Dispose of the message after we're
3458         finished with it.
3459
3460 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3461
3462         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3463         After we attach our pending call to the connection, unref
3464         it.  Fixes a leak.
3465  
3466         * mono/Connection.cs (set_RawConnection): Disconnect our
3467         filter and match callbacks from the old connection and
3468         reconnect them to the new connection, if any.
3469
3470         * mono/DBusType/Array.cs: "Code" is a static member, so
3471         don't use "this" to refer to it.  Fix for stricter checking
3472         in Mono 1.1.4.
3473  
3474         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3475         object path that we pass into unmanaged code.
3476  
3477         * mono/DBusType/String.cs (Append): Don't leak the string
3478         that we pass into unmanged code.
3479
3480 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3481         * NEWS: Update for 0.31
3482
3483         * configure.in: Release 0.31
3484         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3485
3486         * qt/Makefile.am: fixed build
3487
3488         * dbus/Makefile.am: soname bump for libdbus
3489
3490         * glib/Makefile.am: soname bump for libdbus-glib
3491
3492 2005-03-05  Havoc Pennington  <hp@redhat.com>
3493
3494         * dbus/dbus-sysdeps.c:
3495         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3496         value
3497         (_dbus_generate_random_bytes_buffer): fix return value
3498
3499         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3500         checks actually work, from Tom Parker <fdo@tevp.net>
3501
3502 2005-03-01  Colin Walters  <walters@verbum.org>
3503
3504         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3505         functions copied from dbus-glib-tool.c.
3506         (main): Convert lots of error code to use them.
3507         Also add some testing for introspection bits.
3508
3509 2005-03-01  Colin Walters  <walters@verbum.org>
3510         
3511         * doc/TODO: Remove introspection signature TODO.
3512
3513 2005-02-27  Colin Walters  <walters@verbum.org>
3514
3515         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3516         Change return value to const char * instead of int so we can do
3517         full signatures.
3518         (struct PropertyInfo, struct ArgInfo): Store char *.
3519         (property_info_new, arg_info_new): Update parameters, strdup.
3520         (property_info_unref, arg_info_unref): Free.
3521
3522         * glib/dbus-gidl.h: Update prototypes.
3523
3524         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3525         (validate_signature): New function, just validates signature and
3526         sets GError.
3527         (parse_property, parse_arg): Invoke validate_signature.  Store
3528         signature instead of just type code.
3529
3530         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3531         function to return a primary type for a signature, dropping
3532         information about types in container types.
3533         (dbus_gvalue_genmarshal_name_from_type)
3534         (dbus_gvalue_binding_type_from_type)
3535         (dbus_gvalue_ctype_from_type): Update to take full signature
3536          instead of type code.
3537         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3538
3539         * glib/dbus-gvalue.h: Update prototypes for above.
3540
3541         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3542         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3543         (introspect_properties, introspect_signals, write_interface):
3544         Update to handle signatures, and remove usage of
3545         _dbus_gutils_type_to_string.
3546         (handle_introspect): Print out type codes instead of e.g. "string"
3547         in hardcoded introspection XML; also use x_AS_STRING constants
3548         instead of hardcoding in string.
3549
3550         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3551         to string.  Remove usage of _dbus_gutils_type_to_string.
3552
3553         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3554
3555         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3556         deletion.
3557         
3558         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3559         (compute_marshaller_name, generate_glue): Handle signature change
3560         to string.
3561         (write_formal_parameters, write_args_for_direction): Ditto, and
3562         remove FIXME.
3563
3564         * tools/dbus-tree-view.c (type_to_string): Delete.
3565         (info_set_func_text): Update to print full signatures.
3566
3567         * test/glib/test-service-glib.xml: Change types to new
3568         introspection format.
3569
3570 2005-02-26  Havoc Pennington  <hp@redhat.com>
3571
3572         * doc/TODO: remove the "guid" item
3573
3574         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3575         (with_bus_thread_func): use open_private
3576
3577         * dbus/dbus-connection.c (dbus_connection_open_private): new
3578         function that works like the old dbus_connection_open()
3579         (dbus_connection_open): now returns an existing connection if
3580         possible
3581
3582         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3583         through the GUID to the transport
3584
3585         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3586         GUID in hex-encoded form.
3587
3588         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3589         pass GUID argument in to the transport
3590
3591         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3592         guid argument
3593
3594         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3595
3596         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3597
3598 2005-02-25  Havoc Pennington  <hp@redhat.com>
3599
3600         * doc/dbus-specification.xml: document the GUID thing
3601
3602         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3603         globally unique ID for the server, and put a "guid=hexencoded"
3604         field in the address
3605
3606         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3607
3608         * dbus/dbus-message.c: ditto
3609
3610         * dbus/dbus-dataslot.c: ditto
3611
3612         * dbus/dbus-list.c: ditto
3613
3614         * dbus/dbus-internals.h: wait, just include
3615         dbus-threads-internal.h here
3616         
3617         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3618         use in main library
3619
3620         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3621
3622 2005-02-24  Colin Walters  <walters@verbum.org>
3623
3624         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3625
3626 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3627
3628         * glib/Makefile.am: added dbus-gobject.h to sources list
3629         so distcheck doesn't fail
3630         
3631 2005-02-24  Havoc Pennington  <hp@redhat.com>
3632
3633         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3634         you must disconnect before unref, since locking and other things
3635         are screwed up otherwise. Fix assorted other locking stuff.
3636
3637         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3638         fix compilation
3639
3640         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3641         into a private header and don't export from the library
3642
3643         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3644
3645 2005-02-24  Colin Walters  <walters@verbum.org>
3646         
3647         * dbus/dbus-signature.c: New file; implements various functions
3648         related to type signatures.  Includes an interator for parsing,
3649         validation functions.
3650         (dbus_type_is_basic): Moved here from
3651         dbus-marshal-basic.c:_dbus_type_is_basic.
3652         (dbus_type_is_container): Moved here from
3653         dbus-marshal-basic.c:_dbus_type_is_container.
3654
3655         All callers of _dbus_type_is_container and _dbus_type_is_basic
3656         updated, and include dbus-signature.h.
3657
3658         * dbus/dbus-signature.h: New file; prototypes for the above.
3659
3660         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3661         dbus-signature.h.
3662
3663         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3664         function factored out of _dbus_first_type_in_signature.
3665         (_dbus_first_type_in_signature_c_str): New function; returns first
3666         type code for a type signature character.
3667
3668         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3669         handle function moves.
3670
3671         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3672
3673         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3674         function; skips to next complete type in type signature.
3675         Implemented using previous skip_one_complete_type.  Now
3676         skip_one_complete_type just delegates to
3677         _dbus_type_signature_next.
3678
3679         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3680         to dbus-signature.c
3681         (_dbus_type_is_container): Ditto.
3682
3683         * doc/dbus-specification.xml: Update introspection sample to
3684         use real type signatures.
3685
3686         * dbus/dbus-test.h: Prototype signature test.
3687
3688         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3689         signature tests.
3690
3691         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3692
3693 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3694
3695         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3696         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3697
3698 2005-02-21  Colin Walters  <walters@verbum.org>
3699
3700         * dbus/dbus-test-main.c (main): Take optional specific test
3701         argument.
3702
3703         * dbus/dbus-test.c (run_test): New function, runs a test function
3704         with no data directory.
3705         (run_data_test): Like above, but takes data directory.
3706         (dbus_internal_do_not_use_run_tests): Take
3707         specific test argument.  Replace lots of cut n' paste code
3708         with run_test and run_data_test.
3709
3710         * dbus/dbus-test.h: Update prototype for
3711         dbus_internal_do_not_use_run_tests.
3712
3713 2005-02-20  Havoc Pennington  <hp@redhat.com>
3714
3715         Fix bugs reported by Daniel P. Berrange
3716         
3717         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3718         (protected_change_watch): new function
3719         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3720         (_dbus_server_add_watch): change to work like the
3721         dbus-connection.c equivalents; like those, probably kind of
3722         busted, but should at least mostly work for now
3723         (dbus_server_disconnect): drop the lock if we were already
3724         disconnected, patch from Daniel P. Berrange
3725
3726         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3727         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3728         same stuff
3729
3730         * doc/TODO: todo about unscrewing this mess
3731
3732 2005-02-19  Colin Walters  <walters@verbum.org>
3733
3734         * glib/dbus-binding-tool-glib.c
3735         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3736
3737         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3738         as errno.h and sys/stat.h.
3739         (lose): New function, prints error with
3740         newline and exits.
3741         (lose_gerror): Similar, but takes GError for message.
3742         (main): Add --output argument to specify output file to write to,
3743         instead of always printing to stdout.  In this mode, determine
3744         timestamps on source files to see whether any are newer than the
3745         target file.  If not, exit.  Also convert a number of error
3746         messages to use lose (since it's shorter), and switch to using
3747         g_io_channel_shutdown.
3748
3749 2005-02-19  Havoc Pennington  <hp@redhat.com>
3750
3751         * glib/dbus-gobject.c
3752         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3753
3754         * glib/dbus-glib.c: fix doxygen warnings
3755
3756         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3757         is found on an <arg>
3758
3759 2005-02-17  Colin Walters  <walters@verbum.org>
3760
3761         * glib/dbus-gobject.h: Don't export
3762         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3763         
3764         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3765         (invoke_object_method): Handle it.
3766
3767         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3768         Handle rename.
3769         
3770 2005-02-17  Colin Walters  <walters@verbum.org>
3771
3772         * bus/.cvsignore, doc/.cvsignore
3773         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3774         Update.
3775
3776 2005-02-17  Colin Walters  <walters@verbum.org>
3777         
3778         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3779         Rename to DBUS_SERVICE_DBUS.
3780         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3781         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3782         Change the value from "org.freedesktop.Local"
3783         to "org.freedesktop.DBus.Local".
3784         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3785         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3786         DBUS_INTERFACE_INTROSPECTABLE.
3787         Change the value from "org.freedesktop.Introspectable"
3788         to "org.freedesktop.DBus.Introspectable".
3789         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3790         DBUS_INTERFACE_PROPERTIES.
3791         Change the value from "org.freedesktop.Properties"
3792         to "org.freedesktop.DBus.Properties".
3793         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3794         DBUS_INTERFACE_PEER.
3795         Change the value from "org.freedesktop.Peer"
3796         to "org.freedesktop.DBus.Peer".
3797         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3798         DBUS_INTERFACE_LOCAL.
3799         Change the value from "org.freedesktop.Local"
3800         to "org.freedesktop.DBus.Local".
3801
3802         All other users of those constants have been changed.
3803
3804         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3805
3806         * glib/dbus-gobject.c (handle_introspect): Use constants.
3807
3808         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3809
3810 2005-02-17  Colin Walters  <walters@verbum.org>
3811
3812         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3813         (parse_node, parse_interface, parse_method, parse_signal)
3814         (parse_property, parse_annotation): Lose if we're currently in an
3815         annotation.
3816         (parse_annotation): New function.
3817         (parser_start_element, parser_end_element): Handle annotation.
3818         (parse_method, parse_interface): Remove support for c_name attribute,
3819         switch to annotations.
3820
3821         * glib/dbus-gidl.h (interface_info_get_binding_names)
3822         (method_info_get_binding_names)
3823         (interface_info_get_binding_name, method_info_get_binding_name)
3824         (interface_info_set_binding_name, method_info_set_binding_name):
3825         Remove.
3826         (interface_info_get_annotations, method_info_get_annotations)
3827         (interface_info_get_annotation, method_info_get_annotation)
3828         (interface_info_add_annotation, method_info_add_annotation):
3829         Prototype.
3830
3831         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3832         for "bindings".
3833         (struct MethodInfo): Ditto.
3834         Straightfoward conversion of binding methods into annotation methods
3835         as prototyped.
3836
3837         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3838
3839         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3840
3841         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3842         Use new annotation API.
3843
3844         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3845         annotation element.
3846         
3847         * doc/dbus-specification.xml: Discuss introspection annotations,
3848         include list of well-known annotations.
3849
3850         * test/glib/test-service-glib.xml: Make validate against new DTD.
3851
3852 2005-02-17  Colin Walters  <walters@verbum.org>
3853
3854         This patch is based on initial work from
3855         Paul Kuliniewicz <kuliniew@purdue.edu>.
3856
3857         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3858         initialization of GValue from dbus type to here.
3859         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3860         for the "glib-genmarshal" program from a DBus type.
3861         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3862         into the C name for it we use in the glib bindings.
3863         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3864         glib C type (not GValue).
3865         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3866
3867         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3868         from dbus-gobject.c.
3869
3870         * glib/dbus-gutils.h: Prototype it.
3871
3872         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3873         (marshal_dbus_message_to_g_marshaller): Use new shared function
3874         dbus_glib_marshal_dbus_message_to_gvalue_array.
3875
3876         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3877         Will be changed once we have annotations.
3878
3879         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3880         GStaticRWLock.  Callers updated.
3881         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3882         (string_table_next): New function for iterating over zero-terminated
3883         string value array.
3884         (string_table_lookup): New function; retrieves specific entry in
3885         array.
3886         (get_method_data): New function; look up method data in object data chunk.
3887         (object_error_domain_prefix_from_object_info)
3888         (object_error_code_from_object_info): New functions, but not implemented yet.
3889         (method_interface_from_object_info): New function; retrieve interface name.
3890         (method_name_from_object_info): New function; retrieve method name.
3891         (method_arg_info_from_object_info): New function; retrieve argument data.
3892         (arg_iterate): New function; iterates over serialized argument data.
3893         (method_dir_signature_from_object_info): New function; returns a
3894         GString holding type signature for arguments for just one
3895         direction (input or output).
3896         (method_input_signature_from_object_info)
3897         (method_output_signature_from_object_info): New functions.
3898         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3899         converts dbus message arguments into a GValue array.  Used for both
3900         signal handling and method invocation.
3901         (struct DBusGlibWriteIterfaceData): New utility structure.
3902         (write_interface): New function; generate introspection XML for
3903         an interface.
3904         (introspect_interfaces): New function; gathers all interface->methods,
3905         generates introspection XML for them.
3906         (handle_introspect): Invoke introspect_interfaces.
3907         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3908         (lookup_object_and_method): New function; examines an incoming message
3909         and attempts to match it up (via interface, method name, and argument
3910         signature) with a known object and method.
3911         (gerror_domaincode_to_dbus_error_name): New function; converts a
3912         GError domain and code into a DBus error name.  Needs GError data
3913         added to object introspection to work well.
3914         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3915         GError.
3916         (invoke_object_method): New function to invoke an object method
3917         looked up via lookup_object_and_method.  Parses the incoming
3918         message, turns it into a GValue array, then invokes the marshaller
3919         specified in the DBusGMethodInfo.  Creates a new message with
3920         either return values or error message as appropriate.
3921         (gobject_message_function): Invoke lookup_object_and_method and
3922         invoke_object_method.
3923
3924         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3925         (enum DBusBindingOutputMode): New enum for binding output modes.
3926         (pretty_print): Print binding names.
3927         (dbus_binding_tool_error_quark): GError bits.
3928         (version): Fix typo.
3929         (main): Create GIOChannel for output.  Parse new --mode argument,
3930         possible values are "pretty-print", "glib-server", "glib-client".
3931         Use mode to invoke appropriate function.
3932         
3933         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3934
3935         * glib/dbus-glib-tool.h: New header, just includes GError bits
3936         for now.
3937
3938         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3939         maps binding style to name.
3940         (struct MethodInfo): Ditto.
3941         (get_hash_keys, get_hash_key): Utility function, returns keys for
3942         a GHashTable.
3943         (interface_info_new, method_info_new): Initialize bindings.
3944         (interface_info_unref, method_info_unref): Destroy bindings.
3945         (method_info_get_binding_names, method_info_get_binding_name)
3946         (interface_info_get_binding_names, interface_info_get_binding_name):
3947         Functions for retrieving binding names.
3948         (method_info_set_binding_name, interface_info_set_binding_name):
3949         Functions for setting binding names.
3950
3951         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3952         for glib binding generation.
3953
3954         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3955         and client-side glib glue generation.
3956
3957         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3958         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3959         dbus-glib-tool.h.
3960
3961         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3962         of using GClosureMarshal directly.
3963         (struct DBusGObjectInfo): Add n_infos member.
3964
3965         * test/glib/test-service-glib.xml: New file; contains introspection data
3966         for MyTestObject used in test-service-glib.c.
3967
3968         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3969         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3970         (my_object_uppercase, my_object_many_args): New test methods.
3971         (main): Use dbus_g_object_class_install_info to include generated object
3972         info.
3973
3974         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3975         as well as client-side bindings.
3976
3977         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3978         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3979         using both the dbus_gproxy stuff directly as well as the generated bindings.
3980
3981 2005-02-15  Havoc Pennington  <hp@redhat.com>
3982
3983         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3984         complete a pending call, don't run filters first.
3985
3986         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3987         dbus_pending_call_steal_reply
3988
3989         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3990         _dbus_connection_block_pending_call
3991         (dbus_pending_call_get_reply): change to steal_reply and return a
3992         ref
3993
3994         * dbus/dbus-connection.c
3995         (dbus_connection_send_with_reply_and_block): port to work in terms
3996         of DBusPendingCall
3997         (_dbus_connection_block_pending_call): replace block_for_reply
3998         with this
3999
4000 2005-02-14  Havoc Pennington  <hp@redhat.com>
4001
4002         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4003         properly handle looking up group information by name; fix 
4004         from j@bootlab.org
4005
4006 2005-02-13  Havoc Pennington  <hp@redhat.com>
4007
4008         * dbus/dbus-connection.c (dbus_connection_return_message) 
4009         (dbus_connection_borrow_message): hold dispatch lock while message
4010         is outstanding
4011         (_dbus_connection_block_for_reply): hold dispatch lock while we
4012         block for the reply, so nobody steals our reply
4013         (dbus_connection_pop_message): hold the dispatch lock while we
4014         pluck the message
4015
4016 2005-02-13  Havoc Pennington  <hp@redhat.com>
4017
4018         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4019         (_dbus_connection_release_dispatch)
4020         (_dbus_connection_acquire_io_path)
4021         (_dbus_connection_release_io_path): make the mutex and condvar
4022         control access to the "acquired" flag. Drop the connection lock
4023         while waiting on the condvar. Hopefully these are baby steps in
4024         roughly the right direction.
4025
4026 2005-02-13  Havoc Pennington  <hp@redhat.com>
4027
4028         * dbus/dbus-connection.c: use separate mutexes for the condition
4029         variables; this is some kind of baseline for sanity, but the
4030         condition variables still aren't used correctly afaict
4031
4032 2005-02-13  Havoc Pennington  <hp@redhat.com>
4033
4034         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4035         fix a double-unlock
4036
4037         * dbus/dbus-connection.c
4038         (_dbus_connection_detach_pending_call_unlocked): add this
4039
4040         Initial semi-correct pass through to fix thread locking; there are
4041         still some issues with the condition variable paths I'm pretty
4042         sure
4043         
4044         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4045         lock/unlock calls
4046
4047         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4048         rename to add _unlocked
4049         (struct DBusConnection): move "dispatch_acquired" and
4050         "io_path_acquired" to use only one bit each.
4051         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4052         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4053         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4054         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4055         (_dbus_connection_remove_timeout) 
4056         (_dbus_connection_toggle_timeout): drop lock when calling out to
4057         user functions; done in a hacky/bad way.
4058         (_dbus_connection_send_and_unlock): add a missing unlock
4059         (_dbus_connection_block_for_reply): add a missing unlock
4060
4061         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4062         drop lock in a hacky probably unsafe way to call out to user
4063         function
4064
4065 2005-02-12  Havoc Pennington  <hp@redhat.com>
4066
4067         * tools/dbus-tree-view.c (info_set_func_text): display more
4068         details on args
4069
4070         * bus/driver.c (bus_driver_handle_list_services): list the bus
4071         driver
4072
4073         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4074
4075         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4076         (method_info_get_n_args): new function
4077
4078 2005-02-12  Havoc Pennington  <hp@redhat.com>
4079
4080         * bus/driver.c (bus_driver_handle_introspect): add introspection
4081         for bus driver
4082
4083 2005-02-12  Havoc Pennington  <hp@redhat.com>
4084
4085         * bus/driver.c: put the signature of each bus driver method in the
4086         table of handlers and check it on incoming calls; this isn't
4087         really useful, but going to add introspect support in a minute.
4088
4089 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4090
4091         * mono/Connection.cs: The unpredictability of finalizers in mono
4092         prevents us from deterministically disconnecting the filters from
4093         the Service class's finalizer, so move tracking of filters and
4094         matches here.  Add API for that.
4095
4096         * mono/Service.cs: Remove the code, add code which calls the
4097         methods now on the Connection class.
4098
4099 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4100
4101         * python/dbus.py (class Sender): added to support dbus signals better
4102         (Bus::add_signal_receiver): added expand_args parameter which defaults
4103         to True.  When expand args is True the signal handler will pass the 
4104         message arguments as parameters to the signal handler.  If False
4105         revert to previous behavior where the signal handler must get the
4106         argument list from the message.  This is to help port applications
4107         like HAL that have a tendancy to send variable length argument lists.
4108         self._match_rule_to_receivers is now a dict of dicts.
4109         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4110         removing it from a list
4111         (Bus::_signal_func): change signal handlers so that interface,
4112         signal_name, service, path and message are packed into a Sender
4113         object and that is passed to the handler.  If expand_args is True
4114         extract the args list from the message and append it to the parameter
4115         list
4116         
4117         * python/dbus_bindings.pyx.in (class Signature): added to support 
4118         signiature types
4119         (MessageIter::__init__): changed iteration limit to match D-BUS
4120         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4121         STRUCT and VARIENT type support
4122         (MessageIter::python_value_to_dbus_sig): made recursive to support
4123         recursive types
4124         (MessageIter::append*): added Signature, dict, tuple 
4125         support
4126
4127         * python/examples/example-client.py: added examples of getting tuples
4128         and dicts
4129
4130         * python/examples/example-service.py: added examples of sending tuples
4131         and dicts
4132
4133         * python/examples/example-signal-recipient.py: Fixed to handle new
4134         signal callback format
4135
4136 2005-02-10  Havoc Pennington  <hp@redhat.com>
4137
4138         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4139         (call dbus_g_proxy_add_signal)
4140
4141         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4142         escape the hostname
4143         (_dbus_server_new_for_domain_socket): escape the path
4144
4145         * dbus/dbus-address.c (dbus_address_escape_value): new
4146         (dbus_address_unescape_value): new
4147         (dbus_parse_address): unescape values
4148
4149         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4150
4151         * doc/dbus-specification.xml: explain how to escape values in
4152         addresses
4153
4154 2005-02-10  Havoc Pennington  <hp@redhat.com>
4155
4156         * dbus/dbus-message-factory.c (generate_special): modify test to
4157         avoid using a non-basic dict key
4158
4159         * dbus/dbus-marshal-validate-util.c: add test for the below
4160
4161         * doc/dbus-specification.xml: require that dict keys are a basic
4162         type
4163
4164         * dbus/dbus-marshal-validate.c
4165         (_dbus_validate_signature_with_reason): require that dict key is a
4166         basic type
4167
4168 2005-02-10  Havoc Pennington  <hp@redhat.com>
4169
4170         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4171         change to be _and_unlock instead of _unlocked
4172
4173         * dbus/dbus-connection.c
4174         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4175         have no_update so we can find this bug quickly in future
4176
4177 2005-02-10  Havoc Pennington  <hp@redhat.com>
4178
4179         * dbus/dbus-message-util.c (verify_test_message): tests for string
4180         array
4181
4182         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4183         support for arrays of string/signature/path
4184
4185 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4186
4187         * dbus/dbus-connection.c
4188         (_dbus_connection_queue_received_message_link,
4189         _dbus_connection_message_sent): Add the path to
4190         the verbose output.
4191         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4192         _dbus_connection_send_preallocated_unlocked(), updated the
4193         dispatch status, and unlocks.  Fixes a bug where certain
4194         situations (like a broken pipe) could cause a Disconnect message
4195         to not be sent, tricking the bus into thinking a service was still
4196         there when the process had quit.
4197         (_dbus_connection_send_preallocated): Call
4198         _dbus_connection_send_preallocated_and_unlock().
4199         (_dbus_connection_send_and_unlock): Added.  Calls
4200         _dbus_connection_send_preallocated_and_unlock().
4201         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4202         (dbus_connection_send_with_reply): Update the dispatch status and
4203         unlock.
4204
4205         * mono/Service.cs (~Service): Added.  Removes the filter so that
4206         we don't get unmanaged code calling back into a GCed delegate.
4207         (RemoveFilter); Added.
4208
4209 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4210
4211         * dbus/dbus-message.c (dbus_message_iter_open_container):
4212         - Removed check for iterator type being an array because
4213         get_arg_type does not work with writer iterators
4214         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4215
4216 2005-02-07  Havoc Pennington  <hp@redhat.com>
4217
4218         * doc/dbus-specification.xml: some more language cleanups; add
4219         stuff about how to deal with invalid protocol and extension
4220         points; add _ to allowed chars in auth commands; add EXTENSION_
4221         auth command prefix
4222
4223 2005-02-06  Havoc Pennington  <hp@redhat.com>
4224
4225         * s/expected/required/ in a couple places for clarity
4226
4227 2005-02-07  Colin Walters  <walters@verbum.org>
4228
4229         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4230         sender or proposed_recipient.
4231
4232 2005-02-06  Havoc Pennington  <hp@redhat.com>
4233
4234         * dbus/dbus-message-factory.c (generate_special): more tests
4235
4236         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4237         array length that exceeds the maximum
4238
4239 2005-02-05  Havoc Pennington  <hp@redhat.com>
4240
4241         * dbus/dbus-message-factory.c (generate_special): more test cases,
4242         increasing coverage
4243
4244         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4245         reason why a signature was invalid
4246
4247         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4248         skip the length of the string before we look at it in validation
4249
4250         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4251         equal_substring
4252
4253         * dbus/dbus-message.c (_dbus_message_loader_new): default
4254         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4255
4256 2005-02-05  Havoc Pennington  <hp@redhat.com>
4257
4258         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4259         if the signature of a variant was empty
4260         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4261         struct with no element type)
4262
4263         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4264         mangled messages to break things
4265
4266 2005-02-04  Havoc Pennington  <hp@redhat.com>
4267
4268         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4269         g_quark_try_string() so it actually can return 0
4270         (dbus_g_proxy_connect_signal): ditto
4271
4272 2005-02-04  Havoc Pennington  <hp@redhat.com>
4273
4274         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4275         bogus warning
4276         (tristring_from_message): assert cleanly on null path/interface
4277         (should not be possible though I decided later)
4278         (dbus_g_proxy_dispose): move proxy manager unregistration here
4279         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4280         g_return_if_fail() checks
4281
4282 2005-02-04  Havoc Pennington  <hp@redhat.com>
4283
4284         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4285
4286         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4287         (with some minor changes)
4288
4289         * doc/dbus-specification.xml: add deprecated attribute to
4290         introspection format
4291
4292 2005-01-31  Havoc Pennington  <hp@redhat.com>
4293
4294         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4295         think it's sort of right
4296
4297 2005-01-30  Havoc Pennington  <hp@redhat.com>
4298
4299         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4300
4301 2005-01-30  Havoc Pennington  <hp@redhat.com>
4302
4303         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4304
4305         * autogen.sh: change to autotools 1.9
4306
4307         * glib/dbus-gproxy.c: completely change how signals work
4308         (dbus_g_proxy_add_signal): new function to specify signature of a
4309         signal
4310         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4311         and g_warning if the incoming message has the wrong signature.
4312
4313 2005-01-30  Havoc Pennington  <hp@redhat.com>
4314
4315         * tools/dbus-names-model.c (have_names_notify): fix this
4316
4317         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4318         up the string array handling a bit 
4319
4320 2005-01-30  Havoc Pennington  <hp@redhat.com>
4321
4322         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4323         (dbus_g_pending_call_cancel): new function
4324
4325         * dbus/dbus-glib.h: move GType decls for connection/message here;
4326         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4327         here, just kind of rationalizing how we handle all that
4328
4329         * tools/dbus-names-model.c: new file for a tree model listing the
4330         services on a bus
4331
4332         * tools/dbus-tree-view.c (model_new): use proper typing on the
4333         model rows
4334
4335 2005-01-30  Havoc Pennington  <hp@redhat.com>
4336
4337         * glib/dbus-gmain.c: add a custom GSource back that just checks
4338         whether the message queue has anything in it; otherwise, there are 
4339         cases where we won't see messages in the queue since there was no 
4340         IO visible to the glib main loop
4341
4342         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4343         increase default message timeout to 25 seconds
4344
4345 2005-01-30  Havoc Pennington  <hp@redhat.com>
4346
4347         * test/glib/test-profile.c (no_bus_stop_server): remove the
4348         warning about the g_warning that I just fixed
4349
4350         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4351         custom source, seems to be a lot easier to understand and work
4352         better.
4353
4354 2005-01-30  Havoc Pennington  <hp@redhat.com>
4355
4356         I think this main loop thing is conceptually broken, but here are 
4357         some band aids. I'll maybe rewrite it in a minute.
4358         
4359         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4360         custom GSource, so don't pass it in; confusing
4361         (gsource_server_finalize, gsource_connection_finalize): add
4362         finalize handlers that remove all the watches.  
4363
4364 2005-01-30  Havoc Pennington  <hp@redhat.com>
4365
4366         * glib/dbus-gobject.c (introspect_properties): fix the XML
4367         generated
4368
4369         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4370         which effectively detects the use of freed messages
4371
4372         * glib/dbus-gobject.c (handle_introspect): modify and return the
4373         reply message instead of the incoming message
4374
4375         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4376         gee, maybe it should SEND THE XML instead of just making a string
4377         and freeing it again ;-)
4378
4379         * tools/dbus-print-message.c (print_message): improve printing of
4380         messages
4381
4382         * configure.in: add debug-glib.service to the output
4383
4384 2005-01-30  Havoc Pennington  <hp@redhat.com>
4385
4386         dbus-viewer introspected and displayed the bus driver
4387         
4388         * dbus/dbus-object-tree.c 
4389         (object_tree_test_iteration): add tests for a handler registered on "/"
4390
4391         * dbus/dbus-object-tree.c
4392         (_dbus_decompose_path): fix to handle path "/" properly
4393         (run_decompose_tests): add tests for path decomposition
4394         
4395         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4396         properly
4397
4398         * glib/dbus-gobject.c (handle_introspect): fix quotes
4399
4400         * test/glib/run-test.sh: support launching the bus, then running
4401         dbus-viewer
4402
4403         * test/glib/test-service-glib.c (main): put in a trivial gobject
4404         subclass and register it on the connection
4405
4406         * bus/driver.c (bus_driver_handle_introspect): implement
4407         introspection of the bus driver service
4408
4409         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4410         identifiers, doctype decl
4411
4412         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4413         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4414         returning the service unchanged.
4415         (bus_driver_handle_message): remove old check for reply_serial in
4416         method calls, now the message type deals with that
4417         (bus_driver_handle_message): handle NULL interface
4418
4419         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4420
4421         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4422         -1 for len
4423
4424         * tools/dbus-viewer.c: add support for introspecting a service on
4425         a bus
4426
4427         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4428         (dbus_g_pending_call_unref): add
4429
4430 2005-01-29  Havoc Pennington  <hp@redhat.com>
4431
4432         * tools/dbus-tree-view.c: add support for displaying properties.
4433         (run dbus-viewer with an introspect xml file as arg, then resize
4434         the window so the tree elements show up, not sure what that is)
4435
4436         * glib/dbus-gobject.c (handle_introspect): return
4437         org.freedesktop.Properties and org.freedesktop.Introspectable
4438         interfaces when we are introspected.
4439
4440         * doc/dbus-specification.xml: allow empty interface name when 
4441         Get/Set a property
4442
4443 2005-01-29  Havoc Pennington  <hp@redhat.com>
4444
4445         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4446         though it uses glib, it could be extended for any binding in
4447         principle
4448
4449         * glib/dbus-gobject.c (gobject_message_function): change to the
4450         new way properties work
4451
4452         * dbus/dbus-protocol.h: add the new interfaces
4453
4454         * doc/dbus-specification.xml: document the introspection format,
4455         Introspectable interface, and add an org.freedesktop.Properties
4456         interface.
4457
4458         * glib/dbus-gparser.c: add support for a <property> element
4459
4460         * glib/dbus-gidl.c: add PropertyInfo
4461
4462         * glib/dbus-gobject.c (handle_introspect): put the outermost
4463         <node> outside the signal and property descriptions.
4464         (introspect_properties): export properties as <property> rather
4465         than as method calls
4466
4467 2005-01-28  Havoc Pennington  <hp@redhat.com>
4468
4469         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4470         related to authentication protocol
4471
4472 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4473
4474         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4475                 - BUS_ACTIVATION -> BUS_STARTER
4476                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4477                 - class MessageIter (__init__): Added recursion checking 
4478                 so we throw a nice error instead of just disconnecting from the
4479                 bus.
4480                 (get): Added arg_type parameter for recursion.
4481                 Removed the nil type
4482                 Added signiture type placeholder (not implemented)
4483                 Added struct type placeholder (not implemented)
4484                 Added varient type placeholder (not implemented)
4485                 Commented out dict type for now     
4486                 (get_element_type): renamed from get_array_type
4487                 (get_*): changed to use the dbus_message_iter_get_basic API
4488                 (get_*_array): removed in favor of recursive get_array method
4489                 (get_array): new recursive method which calls get to marshal
4490                 the elements of the array
4491                 (value_to_dbus_sig): New method returns the corrasponding
4492                 dbus signiture to a python value
4493                 (append): Comment out dict handling for now
4494                 Handle lists with the new recursive API
4495                 Comment out None handling for now
4496                 (append_nil): removed
4497                 (append_*): changed to use dbus_message_iter_append_basic API
4498                 (append_*_array): removed in favor of recursive append_array 
4499                 method
4500                 (__str__): Make it easier to print out recursive iterators
4501                 for debugging
4502                 - class Message (__str__): moved type inspection to the
4503                 MessageIter class' __str__ method
4504                 (get_iter): Added an append parameter wich defaults to False
4505                 If True use the new API's to create an append iterator
4506
4507         * python/dbus.py: Update to use new bindings API
4508                 - TYPE_ACTIVATION -> TYPE_STARTER
4509                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4510                 - class ActivationBus -> class StarterBus
4511                 - class RemoteObject (__call__): get an append iterator
4512                 - (_dispatch_dbus_method_call): get an append iterator
4513                 - class Object (emit_signal): get an append iterator
4514
4515         * python/examples/: Fixed up the examples to work with the new API
4516                 
4517 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4518
4519         * configure.in: Bump version up to 0.30.
4520
4521         * HACKING: Add a release item to bump the version number up after 
4522         a release.
4523
4524 2005-01-28  Havoc Pennington  <hp@redhat.com>
4525
4526         * doc/dbus-specification.xml: update to describe 16-bit types and
4527         dict entries
4528
4529         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4530         assertion
4531
4532         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4533         type
4534
4535         * dbus/dbus-marshal-recursive.c: implement
4536
4537 2005-01-27  Havoc Pennington  <hp@redhat.com>
4538
4539         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4540
4541         * configure.in: find the right type for 16 and 32 bit ints as well
4542         as 64
4543
4544         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4545         the 16-bit types so people don't have to stuff them in 32-bit or
4546         byte arrays.
4547
4548 2005-01-27  Havoc Pennington  <hp@redhat.com>
4549
4550         * dbus/dbus-message.c: byteswap the message if you init an
4551         iterator to read/write from it
4552         
4553         * dbus/dbus-marshal-byteswap.c: new file implementing 
4554         _dbus_marshal_byteswap()
4555
4556         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4557
4558 2005-01-26  Havoc Pennington  <hp@redhat.com>
4559         
4560         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4561         build, apparently - nobody noticed?)
4562         
4563 2005-01-26  Havoc Pennington  <hp@redhat.com>
4564
4565         * dbus/dbus-marshal-recursive.h: remove todo comment
4566
4567 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4568
4569         * Land the mono binding changes to conform to the new APIs.
4570
4571         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4572         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4573
4574         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4575         type code as a string.
4576         (InitAppending): Rename dbus_message_append_iter_init() to
4577         dbus_message_iter_init_append().
4578
4579         * mono/BusDriver.cs: Rename ServiceEventHandler to
4580         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4581         Rename ServiceOwnerChanged to NameOwnerChanged.
4582
4583         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4584         underlying C call.
4585
4586         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4587
4588         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4589         dbus_bus_acquire_service() to dbus_bus_request_name().
4590
4591         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4592         of Type.UnderlyingSystemType to get the correct element type for
4593         the array.
4594         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4595         dbus_message_get_{element|arg}_type() instead of
4596         dbus_message_iter_init_array_iterator().
4597         (Append): Replace dbus_message_iter_append_array() with
4598         dbus_message_iter_open_container() and
4599         dbus_message_iter_close_container().
4600
4601         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4602         types have been removed.
4603         
4604         * mono/DBusType/*.cs: Replace calls of
4605         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4606         but specify the type in the DllImport extern declaration.  Ditto
4607         for dbus_message_iter_append_[type]() ->
4608         dbus_message_iter_append_basic().
4609
4610         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4611         NameOwnerChangedHandler.
4612
4613 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4614
4615         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4616                 - get_base_service -> get_unique_name
4617                 - bus_get_base_service -> bus_get_unique_name
4618                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4619                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4620                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4621                 - bus_activate_service -> bus_start_service_by_name
4622                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4623                 - bus_acquire_service -> bus_request_name
4624                 - dbus_bus_acquire_service -> dbus_bus_request_name
4625                 - bus_service_exists -> bus_name_has_owner
4626                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4627
4628         * python/dbus.py: Rename of methods
4629                 - activate_service -> start_service_by_name
4630                 - bus_acquire_service -> bus_request_name
4631                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4632                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4633
4634         
4635 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4636
4637         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4638         signature for the method that can't be found.
4639
4640         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4641         the message has any arguments, we need to call
4642         _dbus_type_reader_get_current_type(), not
4643         _dbus_type_reader_has_next().
4644
4645 2005-01-24  Havoc Pennington  <hp@redhat.com>
4646
4647         * dbus/dbus-message-factory.c: more testing of message validation
4648
4649         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4650         header
4651
4652 2005-01-23  Havoc Pennington  <hp@redhat.com>
4653
4654         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4655         get this all working, not many tests in the framework yet though
4656
4657 2005-01-22  Havoc Pennington  <hp@redhat.com>
4658
4659         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4660         tutorial, based on work from David Wheeler.
4661
4662 2005-01-21  Havoc Pennington  <hp@redhat.com>
4663
4664         * dbus/dbus-bus.c: add more return_if_fail checks
4665
4666         * dbus/dbus-message.c (load_message): have the "no validation"
4667         mode (have to edit the code to toggle the mode for now though)
4668
4669         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4670         skips all validation; I want to use this at least for benchmark
4671         baseline, I'm not sure if it should be a publicly-available switch.
4672
4673 2005-01-21  Havoc Pennington  <hp@redhat.com>
4674
4675         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4676         toplevel doxygen group as the low-level API stuff
4677
4678         * dbus/dbus.h: note that libdbus is the low-level API
4679
4680 2005-01-20  Havoc Pennington  <hp@redhat.com>
4681
4682         * update-dbus-docs.sh: script to update docs on the web site, only
4683         works for me though. neener.
4684
4685 2005-01-20  Havoc Pennington  <hp@redhat.com>
4686
4687         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4688         code can reveal bugs in it
4689
4690 2005-01-20  Havoc Pennington  <hp@redhat.com>
4691
4692         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4693         select() version, patches from Tor Lillqvist
4694
4695 2005-01-20  Havoc Pennington  <hp@redhat.com>
4696
4697         * doc/dbus-tutorial.xml: replace > with &gt;
4698
4699         * bus/services.c (bus_registry_acquire_service): validate the name
4700         and return a better error if it's no good.
4701
4702         * doc/dbus-specification.xml: note NO_AUTO_START change
4703
4704         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4705         from AUTO_START, we're toggling the default
4706
4707         * bus/dispatch.c: adapt the tests to change of auto-start default
4708
4709 2005-01-18  Havoc Pennington  <hp@redhat.com>
4710
4711         * rename dbus-daemon-1 to dbus-daemon throughout
4712
4713 2005-01-18  Havoc Pennington  <hp@redhat.com>
4714
4715         * Throughout, grand renaming to strip out the use of "service",
4716         just say "name" instead (or "bus name" when ambiguous).  Did not
4717         change the internal code of the message bus itself, only the
4718         programmer-facing API and messages.
4719         
4720         * doc/dbus-specification.xml: further update the message bus section
4721         
4722         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4723         in error case
4724
4725 2005-01-17  Havoc Pennington  <hp@redhat.com>
4726
4727         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4728         ever
4729
4730         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4731         "invalid name character" not only non-ASCII
4732
4733         * doc/dbus-specification.xml: further update spec, message bus 
4734         parts are still out-of-date but the marshaling etc. stuff is now
4735         accurate-ish
4736
4737 2005-01-17  Havoc Pennington  <hp@redhat.com>
4738
4739         * doc/dbus-specification.xml: partially update spec
4740
4741 2005-01-17  Havoc Pennington  <hp@redhat.com>
4742
4743         * Throughout, align variant bodies according to the contained
4744         type, rather than always to 8. Should save a fair bit of space in
4745         message headers.
4746         
4747         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4748         fix handling of case where p == end
4749
4750         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4751
4752 2005-01-17  Havoc Pennington  <hp@redhat.com>
4753
4754         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4755
4756         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4757         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4758         are marshaling/unmarshaling a boolean.
4759
4760 2005-01-16  Havoc Pennington  <hp@redhat.com>
4761
4762         This is about it on what can be disabled/deleted from libdbus
4763         easily, back below 150K anyhow. Deeper cuts are more work than 
4764         just turning the code off as I've done here.
4765         
4766         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4767         signed int convenience funcs
4768
4769         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4770         verbose mode
4771
4772         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4773         things out of libdbus
4774
4775         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4776         
4777         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4778         tests-enabled-only, though it should probably be deleted)
4779
4780         * dbus/dbus-message-util.c: same stuff
4781
4782         * dbus/dbus-auth-util.c: same stuff
4783
4784 2005-01-16  Havoc Pennington  <hp@redhat.com>
4785
4786         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4787
4788         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4789         way for stripping down dbus-userdb.c stuff included in libdbus.
4790         Rename _dbus_parse_uid for consistency.
4791
4792 2005-01-16  Havoc Pennington  <hp@redhat.com>
4793
4794         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4795         name the assertion failed in
4796
4797         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4798         (_dbus_return_val_if_fail): assert that the name of the function
4799         containing the check doesn't start with '_', since we only want to 
4800         use checks on public functions
4801         
4802         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4803         checks to assertions
4804
4805         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4806         change checks to asserts for private function
4807
4808         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4809         to asserts for private function
4810
4811         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4812         broken assertion that was breaking make check
4813         (_dbus_type_reader_array_is_empty): remove this rather than fix
4814         it, was only used in assertions
4815
4816 2005-01-16  Havoc Pennington  <hp@redhat.com>
4817
4818         * test/unused-code-gc.py: hacky script to find code that's used
4819         only by the bus (not libdbus) or used only by tests or not used at
4820         all. It has some false alarms, but looks like we can clean up a
4821         lot of size from libdbus.
4822
4823         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4824         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4825         
4826 2005-01-16  Havoc Pennington  <hp@redhat.com>
4827
4828         * Add and fix docs according to Doxygen warnings throughout
4829         source.
4830         
4831         * dbus/dbus-marshal-recursive.c
4832         (_dbus_type_reader_array_is_empty): change this to just call
4833         array_reader_get_array_len() and make it static
4834
4835         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4836         from get_array_type
4837         (dbus_message_iter_init_append): rename from append_iter_init
4838
4839         * dbus/dbus-marshal-recursive.c
4840         (_dbus_type_reader_get_element_type): rename from
4841         _dbus_type_reader_get_array_type
4842
4843 2005-01-15  Havoc Pennington  <hp@redhat.com>
4844
4845         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4846
4847         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4848         when DBUS_DISABLE_ASSERT
4849         (_dbus_marshal_set_basic): be sure we align for the string length
4850
4851         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4852         this look faster
4853
4854         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4855         inline macro version
4856         (_dbus_string_set_byte): provide inline macro version
4857
4858 2005-01-15  Havoc Pennington  <hp@redhat.com>
4859
4860         * Land the new message args API and type system.
4861
4862         This patch is huge, but the public API change is not 
4863         really large. The set of D-BUS types has changed somewhat, 
4864         and the arg "getters" are more geared toward language bindings;
4865         they don't make a copy, etc.
4866
4867         There are also some known issues. See these emails for details
4868         on this huge patch:
4869         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4870         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4871         
4872         * dbus/dbus-marshal-*: all the new stuff
4873
4874         * dbus/dbus-message.c: basically rewritten
4875
4876         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4877         freed blocks to be all non-nul bytes so using freed memory is less
4878         likely to work right
4879
4880         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4881         DBUS_FAIL_MALLOC=N environment variable, so you can do
4882         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4883         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4884         thorough.
4885
4886         * qt/message.cpp: port to the new message args API
4887         (operator<<): use str.utf8() rather than str.unicode()
4888         (pretty sure this is right from the Qt docs?)
4889
4890         * glib/dbus-gvalue.c: port to the new message args API
4891
4892         * bus/dispatch.c, bus/driver.c: port to the new message args API
4893
4894         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4895         "locked" flag to TRUE and align_offset to 0; I guess we never
4896         looked at these anyhow, but seems cleaner.
4897
4898         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4899         move allocation padding macro to this header; use it to implement
4900         (_DBUS_STRING_STATIC): ability to declare a static string.
4901
4902         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4903         change to return TRUE if the interface is not set.
4904
4905         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4906         to dbus-marshal-validate.[hc]
4907
4908         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4909         dbus-internals.c
4910
4911         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4912         to dbus-marshal-*.[hc]
4913
4914         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4915         function here from dbus-marshal.c
4916
4917 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4918
4919         * NEWS: Update for 0.23.
4920
4921         * configure.in: Release 0.23.
4922
4923 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4924
4925         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4926         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4927         behind.
4928
4929         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4930         uninstall"
4931
4932         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4933         is an enum, get the enum's underlying type.  Another mono
4934         1.1.3 fix.
4935
4936 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4937
4938         Patch from Sjoerd Simons <sjoerd@luon.net>
4939
4940         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4941         DESTDIR.  It breaks stuff.
4942
4943 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4944
4945         Patch from Tambet Ingo <tambet@ximian.com>
4946
4947         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4948         calling type.GetElementType().  The code previously depended on
4949         broken Mono behavior, which was fixed in Mono 1.1.3.
4950
4951         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4952         Activator.CreateInstance() so that the class's constructor is
4953         called with the right parameters.
4954
4955 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4956
4957         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4958
4959         * dbus/dbus-connection.c
4960         (_dbus_connection_queue_received_message_link): Call
4961         _dbus_connection_remove_timeout() instead of the _locked()
4962         variant, since it's always called from
4963         _dbus_connection_handle_watch(), which handles the locking.
4964         Removed the _locked() variant since it's no longer used.
4965
4966 2005-01-03  Havoc Pennington  <hp@redhat.com>
4967
4968         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4969         return
4970         
4971 2004-12-26  Havoc Pennington  <hp@redhat.com>
4972
4973         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4974
4975 2005-01-03  Havoc Pennington  <hp@redhat.com>
4976
4977         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4978         floating point
4979
4980         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4981
4982 2005-01-02  Havoc Pennington  <hp@redhat.com>
4983
4984         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4985
4986 2005-01-01  Havoc Pennington  <hp@redhat.com>
4987
4988         * configure.in: add -Wfloat-equal
4989
4990 2005-01-01  Havoc Pennington  <hp@redhat.com>
4991
4992         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4993         for a variety of reasons '==' doesn't do this.
4994
4995 2004-12-31  Havoc Pennington  <hp@redhat.com>
4996
4997         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4998         I keep wishing I had
4999
5000 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5001
5002         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5003
5004 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5005
5006         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5007         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5008         dbus-protocol.h.  Because they are defines and not enums they are not
5009         autogenerated.
5010
5011 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5012
5013         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5014         dbus_bus_activate_service
5015
5016         * python/dbus.py (Bus.activate_service): activate a service on the
5017         bus.
5018
5019 2004-12-24  Havoc Pennington  <hp@redhat.com>
5020
5021         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5022         file format has also changed and I haven't adapted to that yet
5023         
5024         * Makefile.am: load .gcno files from latest gcc
5025
5026 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5027         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5028
5029         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5030         lowlevel binding
5031
5032         * python/dbus.py (get_unix_user): Added binding to 
5033         call dbus_bindings.bus_get_unix_user
5034
5035         * python/extract.py: Modified the proto_pat regex to
5036         handle unsigned long
5037
5038 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5039
5040         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5041         better POSIX compliance.
5042
5043 2004-12-19  Havoc Pennington  <hp@redhat.com>
5044
5045         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5046         (_dbus_string_insert_8_aligned): new functions
5047
5048         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5049
5050 2004-12-18  Havoc Pennington  <hp@redhat.com>
5051
5052         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5053         macro
5054
5055         * dbus/dbus-message.c: fix a comment, and add a still-unused
5056         not-implemented function
5057
5058         * dbus/dbus-marshal.h: fix comment
5059
5060         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5061
5062 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5063
5064         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5065         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5066         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5067         Type.UnderlyingSystemType to get the actual system type
5068         underneath.  This code previously depended on the broken Mono
5069         behavior, which was fixed in 1.1.3.
5070
5071 2004-11-27  Havoc Pennington  <hp@redhat.com>
5072
5073         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5074         are disabled
5075         (_dbus_string_get_const_data): inline when asserts are disabled
5076
5077         * dbus/dbus-message.c: record the _dbus_current_generation of
5078         creation so we can complain if dbus_shutdown() is used improperly.
5079         Do this only if checks are enabled.
5080
5081         * dbus/dbus-connection.c: ditto
5082         
5083 2004-11-26  Havoc Pennington  <hp@redhat.com>
5084
5085         * test/glib/test-profile.c: add with_bus mode to profile echoes
5086         that go through the bus.
5087
5088         * test/glib/run-test.sh: add ability to run test-profile
5089
5090         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5091         config file reload.
5092
5093 2004-11-26  Havoc Pennington  <hp@redhat.com>
5094
5095         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5096         thing was implemented
5097
5098 2004-11-26  Havoc Pennington  <hp@redhat.com>
5099
5100         * test/glib/test-profile.c: tweak a bit, add support for some
5101         made-up minimal malloc overhead with plain sockets, since in 
5102         real life some sort of buffers are unavoidable thus we could 
5103         count them in the theoretical best case
5104
5105 2004-11-26  Havoc Pennington  <hp@redhat.com>
5106
5107         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5108         where I was trying to cache one too many messages
5109
5110 2004-11-26  Havoc Pennington  <hp@redhat.com>
5111
5112         * dbus/dbus-message.c: reimplement message cache as an array which 
5113         makes the cache about twice as fast and saves maybe 1.5% overall
5114
5115 2004-11-26  Havoc Pennington  <hp@redhat.com>
5116
5117         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5118         message cache lock here
5119
5120 2004-11-26  Havoc Pennington  <hp@redhat.com>
5121
5122         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5123         the "char byte_order" next to each other to save 4 bytes
5124         (dbus_message_new_empty_header): reduce preallocation, since the
5125         message cache should achieve a similar effect
5126         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5127         message cache that keeps a few DBusMessage around in a pool,
5128         another 8% speedup or so.
5129
5130         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5131
5132 2004-11-25  Havoc Pennington  <hp@redhat.com>
5133
5134         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5135         to write, without reading or blocking, try it before the poll()
5136         and skip the poll() if nothing remains to write. This is about a
5137         3% speedup in the echo client/server
5138
5139 2004-11-25  Havoc Pennington  <hp@redhat.com>
5140
5141         The primary change here is to always write() once before adding
5142         the write watch, which gives us about a 10% performance increase.
5143         
5144         * dbus/dbus-transport-unix.c: a number of modifications to cope
5145         with removing messages_pending
5146         (check_write_watch): properly handle
5147         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5148         messages_pending stuff
5149         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5150         AUTHENTICATED cases
5151         (unix_handle_watch): after writing, see if the write watch can be
5152         removed
5153         (unix_do_iteration): assert that write_watch/read_watch are
5154         non-NULL rather than testing that they aren't, since they 
5155         aren't allowed to be NULL. check_write_watch() at the end so 
5156         we add the watch if we did not finish writing (e.g. got EAGAIN)
5157
5158         * dbus/dbus-transport-protected.h: remove messages_pending call,
5159         since it resulted in too much inefficient watch adding/removing; 
5160         instead we now require that the transport user does an iteration 
5161         after queueing outgoing messages, and after trying the first
5162         write() we add a write watch if we got EAGAIN or exceeded our 
5163         max bytes to write per iteration setting
5164
5165         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5166         function
5167
5168         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5169         freed and then accessed, valgrind flagged this bug, fix it
5170
5171         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5172         as the last valid field plus 1, where really it is equal to the
5173         last valid field. Corrects some message corruption issues.
5174
5175         * dbus/dbus-mainloop.c: verbosity changes
5176
5177         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5178         instead of aborting in one of the test codepaths
5179
5180         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5181         caused not printing the pid ever again if a verbose was missing
5182         the newline at the end
5183         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5184
5185         * dbus/dbus-connection.c: verbosity changes; 
5186         (dbus_connection_has_messages_to_send): new function
5187         (_dbus_connection_message_sent): no longer call transport->messages_pending
5188         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5189         try to write() immediately, so we can avoid the write watch. This
5190         is the core purpose of this patchset
5191         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5192         dump the outgoing message queue, so nobody will get confused
5193         trying to send them or thinking stuff is pending to be sent
5194
5195         * bus/test.c: verbosity changes
5196
5197         * bus/driver.c: verbosity/assertion changes
5198
5199         * bus/dispatch.c: a bunch of little tweaks to get it working again
5200         because this patchset changes when/where you need to block.
5201
5202 2004-11-23  Havoc Pennington  <hp@redhat.com>
5203
5204         * test/glib/test-profile.c: modify to accept a plain_sockets
5205         argument in which case it will bench plain sockets instead of
5206         libdbus, for comparison purposes.
5207
5208 2004-11-22  Havoc Pennington  <hp@redhat.com>
5209
5210         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5211         threads for more time, so sysprof can get a grip on it.
5212
5213         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5214         pointless variable
5215
5216 2004-11-13  Havoc Pennington  <hp@redhat.com>
5217
5218         * test/glib/test-profile.c: fix this thing up a bit
5219
5220         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5221         preallocation sizes by a fair bit; not sure if this will be an
5222         overall performance win or not, but it does reduce reallocs.
5223
5224         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5225         the test hack that forced constant realloc if asserts are
5226         disabled, so we can profile sanely. Sprinkle in some
5227         _DBUS_UNLIKELY() which are probably pointless, but before I
5228         noticed the real performance problem I put them in.
5229         (_dbus_string_validate_utf8): micro-optimize this thing a little
5230         bit, though callgrind says it didn't help; then special-case
5231         ascii, which did help a lot; then be sure we detect nul bytes as
5232         invalid, which is a bugfix.
5233         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5234         superstition; use memset to nul the padding instead of a manual
5235         loop.
5236         (_dbus_string_get_length): inline this as a
5237         macro; it showed up in the profile because it's used for loop
5238         tests and so forth
5239
5240 2004-11-10  Colin Walters  <walters@verbum.org>
5241
5242         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5243         for extra paranoia.
5244
5245 2004-11-09  Colin Walters  <walters@verbum.org>
5246
5247         * dbus/dbus-string.c (_dbus_string_get_length): New
5248         function, writes DBusString to C buffer.
5249
5250         * dbus/dbus-string.h: Prototype it.
5251
5252         * dbus/dbus-message.c (dbus_message_type_to_string): New
5253         function, converts message type into C string.
5254
5255         * dbus/dbus-message.h: Prototype it.
5256
5257         * bus/selinux.c (bus_selinux_check): Take source pid,
5258         target pid, and audit data.  Pass audit data to
5259         avc_has_perm.
5260         (log_audit_callback): New function, appends extra
5261         audit information.
5262         (bus_selinux_allows_acquire_service): Also take
5263         service name, add it to audit data.
5264         (bus_selinux_allows_send): Also take message
5265         type, interface, method member, error name,
5266         and destination, and add them to audit data.
5267         (log_cb): Initialize func_audit.
5268         
5269         * bus/selinux.h (bus_selinux_allows_acquire_service)
5270         (bus_selinux_allows_send): Update prototypes 
5271
5272         * bus/services.c (bus_registry_acquire_service): Pass
5273         service name to bus_selinux_allows_acquire_service.
5274
5275         * bus/bus.c (bus_context_check_security_policy): Pass
5276         additional audit data.  Move assignment of dest
5277         to its own line.
5278
5279 2004-11-07  Colin Walters  <walters@verbum.org>
5280
5281         * dbus/dbus-transport-unix.c (do_authentication): Always
5282         initialize auth_completed.
5283         
5284 2004-11-07  Colin Walters  <walters@verbum.org>
5285
5286         * bus/bus.c (load_config): Break into three
5287         separate functions: process_config_first_time_only,
5288         process_config_every_time, and process_config_postinit.
5289         (process_config_every_time): Move call of
5290         bus_registry_set_service_context_table into
5291         process_config_postinit.
5292         (process_config_postinit): New function, does
5293         any processing that needs to happen late
5294         in initialization (and also on reload).
5295         (bus_context_new): Instead of calling load_config,
5296         open config parser here and call process_config_first_time_only
5297         and process_config_every_time directly.  Later, after
5298         we have forked but before changing UID,
5299         invoke bus_selinux_full_init, and then call
5300         process_config_postinit.
5301         (bus_context_reload_config): As in bus_context_new,
5302         load parse file inside here, and call process_config_every_time
5303         and process_config_postinit.
5304
5305         * bus/services.h, bus/services.c
5306         (bus_registry_set_service_context_table): Rename
5307         from bus_registry_set_sid_table.  Take string hash from config
5308         parser, and convert them here into SIDs.
5309
5310         * bus/config-parser.c (struct BusConfigParser): Have
5311         config parser only store a mapping of service->context
5312         string.
5313         (merge_service_context_hash): New function.
5314         (merge_included): Merge context string hashes instead
5315         of using bus_selinux_id_table_union.
5316         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5317         simply create a new string hash.
5318         (bus_config_parser_unref): Unref it.
5319         (start_selinux_child): Simply insert strings into hash,
5320         don't call bus_selinux_id_table_copy_over.
5321
5322         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5323         (bus_selinux_id_table_copy_over): Delete.
5324
5325 2004-11-03  Colin Walters  <walters@verbum.org>
5326
5327         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5328         variables.
5329         
5330 2004-11-03  Colin Walters  <walters@verbum.org>
5331
5332         * bus/test-main.c (test_pre_hook): Fix test logic,
5333         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5334
5335 2004-11-02  Colin Walters  <walters@redhat.com>
5336
5337         * bus/selinux.c (bus_selinux_init): Split into two functions,
5338         bus_selinux_pre_init and bus_selinux_post_init.
5339         (bus_selinux_pre_init): Just determine whether SELinux is
5340         enabled.
5341         (bus_selinux_post_init): Do everything else.
5342
5343         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5344         config file, and bus_selinux_post_init after.  This ensures that
5345         we don't lose the policyreload notification thread that
5346         bus_selinux_init created before forking previously.
5347         
5348         * bus/test-main.c (test_pre_hook): Update for split.
5349
5350 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5351
5352         Patch from Johan Fischer <linux@fischaz.com>
5353         
5354         * mono/doc/Makefile.am (install-data-local): Added directory
5355         install for DESTDIR
5356
5357 2004-10-29  Colin Walters  <walters@redhat.com>
5358
5359         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5360         parameter for fd to write pid to.       
5361
5362         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5363         
5364         * bus/bus.c (bus_context_new): Pass print_pid_fd
5365         to _dbus_become_daemon (bug #1720)
5366
5367 2004-10-29  Colin Walters  <walters@redhat.com>
5368
5369         Patch from Ed Catmur <ed@catmur.co.uk>
5370
5371         * mono/doc/Makefile.am (install-data-local): Handle
5372         DESTDIR.
5373
5374 2004-10-29  Colin Walters  <walters@redhat.com>
5375
5376         * bus/.cvsignore, qt/.cvsignore: Update.
5377
5378 2004-10-29  Colin Walters  <walters@redhat.com>
5379
5380         Patch from Kristof Vansant <de_lupus@pandora.be>
5381
5382         * configure.in: Detect Slackware.
5383         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5384         * bus/rc.messagebus.in: New file.
5385
5386 2004-10-29  Colin Walters  <walters@redhat.com>
5387
5388         * tools/dbus-monitor.c (filter_func): Return
5389         DBUS_HANDLER_RESULT_HANDLED in filter function
5390         for now.  See:
5391         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5392
5393 2004-10-29  Colin Walters  <walters@redhat.com>
5394
5395         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5396
5397         * bus/services.c (bus_registry_acquire_service): 
5398         Correctly retrieve service name from DBusString
5399         for printing.
5400
5401 2004-10-29  Colin Walters  <walters@redhat.com>
5402
5403         * dbus/dbus-glib.h: Update documentation to not
5404         refer to internal APIs.
5405
5406 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5407
5408         * mono/Arguments.cs (GetDBusTypeConstructor):
5409         type.UnderlyingSystemType will return "System.Byte" if you do it
5410         on "byte[]", which is not what we want.  So check the type.IsArray
5411         property and use System.Array instead.
5412
5413 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5414
5415         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5416         the DBusUserInfo structure since this is passed into the function.
5417         This would cause a double free when the function that allocated
5418         the structure would try to free it when an error occured.
5419
5420         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5421         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5422         for service activation to avoid 32bit/64bit parallel install issues
5423
5424 2004-10-21  Colin Walters  <walters@verbum.org>
5425
5426         * AUTHORS: Fix my email address, the @gnu.org one
5427         has been bouncing for some time.  Also add J5.
5428         
5429 2004-10-21  Colin Walters  <walters@verbum.org>
5430
5431         * dbus/dbus-transport-unix.c (do_authentication): Return
5432         authentication status to callers.
5433         (unix_handle_watch): If we completed authentication this round,
5434         don't do another read.  Instead wait until the next iteration,
5435         after we've read any pending data in the auth buffer.
5436         (unix_do_iteration): Ditto.
5437         (unix_handle_watch): Updated for new do_authentication prototype.
5438
5439 2004-10-18  Colin Walters  <walters@verbum.org>
5440
5441         * bus/selinux.c (bus_selinux_enabled): Handle
5442         --disable-selinux case.
5443         
5444 2004-10-18  Colin Walters  <walters@verbum.org>
5445
5446         * bus/selinux.h: Add bus_selinux_enabled.
5447         
5448         * bus/selinux.c (bus_selinux_enabled): Implement it.
5449         
5450         * bus/config-parser.c (struct include): Add
5451         if_selinux_enabled member.
5452         (start_busconfig_child): Parse if_selinux_enabled
5453         attribute for include.
5454         (bus_config_parser_content): Handle it.
5455
5456         * bus/session.conf.in, bus/system.conf.in: Add
5457         inclusion of context mapping to default config files;
5458         conditional on SELinux being enabled.
5459         
5460         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5461         
5462         * test/data/invalid-config-files/badselinux-1.conf, 
5463         test/data/invalid-config-files/badselinux-2.conf:
5464         Test files for bad syntax.
5465         
5466 2004-10-17  Colin Walters  <walters@verbum.org>
5467
5468         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5469         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5470         format specifier mismatches.
5471
5472 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5473
5474         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5475         format string.
5476
5477         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5478         pointer (bug #1540, Leonardo Boiko).
5479
5480 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5481
5482         * mono/BusDriver.cs: Changed BusDriver struct to remove
5483         the ServiceCreated and ServiceDeleted events and replace them
5484         with the new ServiceOwnerChanged event.
5485
5486         * mono/example/BusListener.cs: Added a new example program,
5487         which listens for and reports any ServiceOwnerChanged events
5488         on the bus driver.
5489
5490         * mono/example/Makefile.am (DESTDIR): Build changes for the
5491         new BusListener.cs example.
5492
5493 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5494
5495         * bus/signals.c (bus_match_rule_parse): validate the components of
5496         match rules (bug #1439).
5497
5498         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5499
5500 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5501
5502         * doc/dbus-specification.xml: document ServiceOwnerChanged
5503         signal.
5504         
5505         * bus/driver.c, bus/driver.h, bus/services.c: Use
5506         ServiceOwnerChanged signal instead of ServiceCreated and
5507         ServiceDeleted.
5508         
5509         * bus/dispatch.c: update testcase for the new signal.
5510
5511 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5512
5513         Patch from Nat Friedman <nat@novell.com>
5514
5515         * mono/Makefile.am: A number of small build fixes to allow "make
5516         distcheck" to succeed.
5517
5518         * mono/example/Makefile.am: "make distcheck" fixes.
5519
5520         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5521         key in @srcdir@.
5522
5523         * test/Makefile.am: "make distcheck" fixes.
5524
5525 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5526
5527         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5528
5529         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5530
5531         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5532         messages after the first one (bug #1389).
5533         
5534         * bus/dispatch.c (check_double_hello_message): add a test case for
5535         the double hello message bug.
5536         (check_existent_service_activation): fix check of spawning error.
5537         
5538 2004-09-16  David Zeuthen  <david@fubar.dk>
5539
5540         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5541
5542 2004-09-12  David Zeuthen  <david@fubar.dk>
5543
5544         Patch from Kay Sievers <kay.sievers@vrfy.org>
5545
5546         * bus/bus.c (bus_context_new):
5547         * bus/bus.h:
5548         * bus/main.c (usage)
5549         (main):
5550         Add commandline option --nofork to override configuration file
5551         setting.
5552
5553 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5554
5555         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5556         compilers don't like it (bug #974).
5557
5558 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5559
5560         * qt/connection.*: Applied patch by Jérôme Lodewyck
5561         <lodewyck@clipper.ens.fr> to integrate an existing
5562         connection into the Qt eventloop
5563
5564 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5565
5566         * mono/BusDriver.cs: Added.  This is a class for interacting with
5567         the org.freedesktop.DBus service.
5568
5569         * mono/Message.cs: Added a mechanism to expose the message that is
5570         currently being dispatched via the static Message.Current
5571         property.  Added Message.Sender and Message.Destination
5572         properties.
5573
5574         * mono/Handler.cs: Expose the dispatched message via
5575         Message.Current when handling method calls.
5576
5577         * mono/Service.cs: Expose the dispatched message via
5578         Message.Current when handling signal emissions.
5579         
5580         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5581         Connection.BaseService property.
5582
5583 2004-08-28  Havoc Pennington  <hp@redhat.com>
5584
5585         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5586
5587         More fixes from Steve Grubb
5588         
5589         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5590         (_dbus_listen_tcp_socket): fix fd leak
5591
5592         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5593         EINTR to a bit lower in the code
5594
5595 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5596
5597         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5598         TRUE if we are inquiring about the existence of the built-in
5599         org.freedesktop.DBus service.
5600
5601 2004-08-25  John Palmieri  <johnp@redhat.com>
5602         * bus/config-parser.c:
5603         (struct PolicyType): Add POLICY_CONSOLE
5604         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5605         (start_busconfig_child): Sets up console element when
5606         <policy at_console=""> is encountered in a policy file
5607         (append_rule_from_element): Convert console elements to console
5608         rules.
5609
5610         * bus/policy.c: 
5611         (bus_policy_create_client_policy): Add console rules to the client
5612         policy based on if the client is at the console
5613         (bus_policy_append_console_rule): New function for adding a
5614         console rule to a policy
5615         (bus_policy_merge): Handle console rule merging
5616
5617         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5618         where we check for console user files
5619         
5620         * dbus/dbus-sysdeps.c:
5621         (_dbus_file_exists): New function which checks if the given
5622         file exists
5623         (_dbus_user_at_console): New function which does the system
5624         specific process of checking if the user is at the console
5625
5626         * dbus/dbus-userdb.c:
5627         (_dbus_is_console_user): New function converts a UID to user name
5628         and then calls the system specific _dbus_user_at_console to 
5629         see if the user is at the console and therefor a console user
5630
5631 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5632
5633         * bus/config-parser.c (set_limit):
5634         * bus/dbus-daemon-1.1.in:
5635         * test/data/valid-config-files/many-rules.conf: set the
5636         max_match_rules_per_connection limt from the config file. 
5637
5638         * doc/busconfig.dtd: update the DTD.
5639
5640         * bus/driver.c: remove some unused variables.
5641
5642 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5643
5644         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5645         it's been replaced by dbus_g_bus_get
5646
5647 2004-08-23  Colin Walters  <walters@redhat.com>
5648
5649         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5650
5651         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5652
5653         * bus/selinux.c: Create a thread for policy reload notification.
5654         (bus_selinux_get_policy_root): Implement.
5655
5656         * bus/config-parser.c (start_busconfig_child)
5657         (bus_config_parser_content): Support SELinux-root relative
5658         inclusion.
5659
5660         * configure.in <HAVE_SELINUX>: Add -lpthread.
5661         
5662         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5663         (test_post_hook): Move memory checking into here.
5664         (test_pre_hook, test_post_hook): Move SELinux checks in
5665         here, but conditional on a DBUS_TEST_SELINUX environment
5666         variable.  Unfortunately we can't run the SELinux checks
5667         as a normal user, since they won't have any permissions
5668         for /selinux.  So this will have to be tested manually
5669         for now, until we have virtualization for most of
5670         libselinux.
5671         
5672 2004-08-23  Havoc Pennington  <hp@redhat.com>
5673
5674         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5675         drop supplementary groups, suggested by Steve Grubb
5676
5677 2004-08-20  Colin Walters  <walters@redhat.com>
5678
5679         * bus/config-parser.c (start_busconfig_child): Remove some unused
5680         variables.
5681         
5682         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5683         warning.
5684
5685 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5686
5687         * configure.in: If --enable-mono is passed in, if we can't find
5688         mono error out.
5689
5690         * mono/Makefile.am: Use /gacutil to install assemblies into the
5691         GAC and not /root.
5692
5693 2004-08-12  Havoc Pennington  <hp@redhat.com>
5694
5695         * NEWS: update for 0.22
5696
5697         * configure.in: release 0.22
5698
5699 2004-08-11  Colin Walters  <walters@redhat.com>
5700
5701         * tools/dbus-send.c (main, usage): Add --reply-timeout
5702         argument.
5703
5704 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5705
5706         * bus/bus.c (process_config_first_time_only): get rid of an unused
5707         DBusError that was causing a memoy leak (bug #989).
5708
5709         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5710         fix compilation on Solaris/Forte C (bug #974)
5711
5712         * bus/main.c (main): plug two minuscule memleaks.
5713
5714 2004-08-10  Havoc Pennington  <hp@redhat.com>
5715
5716         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5717
5718 2004-08-09  Havoc Pennington  <hp@redhat.com>
5719
5720         * COPYING: switch to Academic Free License version 2.1 instead of
5721         2.0, to resolve complaints about patent termination clause.
5722
5723 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5724
5725         * README: added documentation for the --enable-python 
5726         configure switch.
5727
5728 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5729
5730         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5731         _unref in the SELinux support.
5732
5733         * doc/busconfig.dtd: update DTD for SELinux support.
5734
5735         * bus/config-loader-libxml.c: fix error handler and parser
5736         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5737
5738         * configure.in: remove the warning about libxml2.
5739
5740         * dbus/dbus-bus.c: silence doxygen warning.
5741
5742 2004-07-31  Colin Walters  <walters@redhat.com>
5743
5744         * configure.in: Move #error in SELinux check to its own line.
5745
5746 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5747
5748         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5749         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5750         dbus_error_set.
5751
5752         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5753         broken by the change in the _SET_OOM macros.
5754
5755 2004-07-31  Colin Walters  <walters@redhat.com>
5756
5757         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5758         BUS_SET_OOM.
5759
5760 2004-07-31  Colin Walters  <walters@redhat.com>
5761
5762         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5763         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5764         AC_MSG_CHECKING.
5765
5766 2004-07-24  Havoc Pennington  <hp@redhat.com>
5767
5768         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5769
5770         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5771         functionality
5772
5773         * configure.in: add --enable-selinux
5774         
5775         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5776
5777         * bus/main.c (main): initialize and shut down selinux
5778
5779         * bus/connection.c: store SELinux ID on each connection, to avoid 
5780         repeated getting of the string context and converting it into 
5781         an ID
5782
5783         * bus/bus.c (bus_context_get_policy): new accessor, though it
5784         isn't used
5785         (bus_context_check_security_policy): check whether the security
5786         context of sender connection can send to the security context of
5787         recipient connection
5788
5789         * bus/config-parser.c: add parsing for <selinux> and <associate>
5790         
5791         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5792         implement dbus_connection_get_unix_fd()
5793
5794         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5795         function, used by the selinux stuff
5796         
5797 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5798
5799         * bus/config-loader-libxml.c: complete the implementation of
5800         libxml backend for config file loader. Doesn't work with full OOM
5801         test yet. 
5802         
5803         * configure.in: change error when selecting libxml into a warning.
5804         
5805         * test/data/invalid-config-files: add two non-well-formed XML
5806         files. 
5807         
5808         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5809         
5810         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5811         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5812         be necessary to read all the buffer. (bug #894)
5813
5814         * bus/activation.c (bus_activation_activate_service): fix a
5815         potential assertion failure (bug #896). Small optimization in the
5816         case of auto-activation messages.
5817
5818         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5819         add test case for byte-through-vararg bug (#901). patch by Kimmo
5820         Hämäläinen. 
5821
5822 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5823
5824         * python/dbus.py:
5825         * python/dbus_bindings.pyx.in:
5826         Add dbus.init_gthreads (), allow emit_signal to pass
5827         arguments to the signal.
5828         
5829 2004-07-24  Havoc Pennington  <hp@redhat.com>
5830
5831         * AUTHORS: add some people, not really comprehensively, let me
5832         know if I missed you
5833
5834 2004-07-24  Havoc Pennington  <hp@redhat.com>
5835
5836         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5837         Owen
5838
5839         * test/Makefile.am (DIST_SUBDIRS): here also
5840
5841 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5842
5843         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5844         breaking build on Solaris, reported by Farhad Saberi on the ML.
5845
5846         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5847         va_arg invocation to account for integer promotion in the case of
5848         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5849
5850         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5851         _dbus_list_get_first_link, not _dbus_list_get_first.
5852
5853         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5854
5855         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5856         handler functions so that the asserts in _dbus_object_subtree_unref
5857         do not fail.
5858
5859         * dbus/dbus-transport-unix.c (do_reading):
5860         _dbus_transport_queue_messages return value is of type
5861         dbus_bool_t, not DBusDispatchStatus.
5862         
5863 2004-07-19  David Zeuthen  <david@fubar.dk>
5864
5865         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5866
5867         * bus/dispatch.c:
5868         (check_get_connection_unix_user): Debug says GetProperty; but the
5869         method is called GetConnectionUnixUser
5870         (check_get_connection_unix_process_id): New function
5871         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5872         also call check_get_connection_unix_process_id()
5873         
5874         * bus/driver.c:
5875         (bus_driver_handle_get_connection_unix_process_id): New function,
5876         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5877         interface
5878         
5879         * dbus/dbus-auth.c:
5880         (handle_server_data_external_mech): Set pid from the credentials
5881         obtained from the socket
5882         
5883         * dbus/dbus-connection.c:
5884         (dbus_connection_get_unix_process_id): New function
5885         
5886         * dbus/dbus-connection.h: 
5887         Add prototype for dbus_connection_get_unix_process_id
5888         
5889         * dbus/dbus-transport.c:
5890         (_dbus_transport_get_unix_process_id): New function
5891         
5892         * dbus/dbus-transport.h:
5893         Add prototype for _dbus_transport_get_unix_process_id
5894         
5895 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5896
5897         * dbus/dbus-message.c: Message counter fix, patch by Christian
5898         Hammond <chipx86@gnupdate.org>
5899
5900 2004-07-18  Seth Nickell  <seth@gnome.org>
5901
5902         * python/dbus.py:
5903         * python/dbus_bindings.pyx.in:
5904         * python/tests/test-client.py:
5905
5906         Add dbus.ByteArray and dbus_bindings.ByteArray
5907         types so that byte streams can be passed back.
5908
5909         Give jdahlin the heaps of credit that are so
5910         rightfully his.
5911         
5912 2004-07-12  Seth Nickell  <seth@gnome.org>
5913
5914         * python/dbus.py:
5915
5916         Add message argument to the default object_method_handler
5917         function.
5918         
5919         * python/dbus_bindings.pyx.in:
5920
5921         Automatically return NIL when passed an empty list
5922         (we can't pass back a list since lists are typed
5923         and we don't have any idea what type the the client
5924         intended the list to be... :-( )
5925         
5926 2004-07-10  Seth Nickell  <seth@gnome.org>
5927
5928         * python/examples/Makefile.am:
5929
5930         Fix distcheck breakage caused by new examples.
5931
5932 2004-07-10  Seth Nickell  <seth@gnome.org>
5933
5934         * python/dbus.py:
5935
5936         Add "message" argument to service-side dbus.Object
5937         methods. This will break existing services written
5938         using the python bindings, but will allow extraction
5939         of all the message information (e.g. who its from).
5940
5941         Add improved "object oriented" signal handling/emission.
5942         
5943         * python/examples/example-service.py:
5944
5945         Nix this example.
5946         
5947         * python/examples/example-signal-emitter.py:
5948         * python/examples/example-signal-recipient.py:
5949
5950         Two new examples that show how to emit and receive
5951         signals using the new APIs.
5952         
5953         * python/examples/example-signals.py:
5954         * python/examples/gconf-proxy-service.py:
5955         * python/examples/gconf-proxy-service2.py:
5956
5957         Add "message" argument to service methods.
5958
5959 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5960
5961         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5962         * dbus/bus.c (dbus_bus_get_unix_user)
5963         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5964         method of org.freedesktop.DBus interface.
5965
5966         * bus/dispatch.c: test case
5967
5968 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5969
5970         * python/Makefile.am: switched include directory from glib/ to dbus/
5971         since dbus-glib.h moved
5972  
5973 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5974
5975         * configure.in: prevent building the gcj stuff and libxml loader
5976         since they are broken.
5977
5978 2004-06-20  Havoc Pennington  <hp@redhat.com>
5979
5980         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5981         codes from the dbus error names
5982         
5983         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5984         as dbus/dbus-glib.h and that breakage is now visible due to 
5985         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5986         
5987         * glib/dbus-glib.h: s/gproxy/g_proxy/
5988
5989         * dbus/dbus-shared.h: new header to hold stuff shared with
5990         binding APIs
5991         
5992         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5993         than dbus-errors.h
5994
5995         * glib/dbus-glib.h (dbus_set_g_error): move to
5996         dbus-glib-lowlevel.h
5997
5998         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5999         of stuff to enable this
6000
6001         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6002
6003         * a bunch of other changes with the same basic "separate glib 
6004         bindings from dbus.h" theme
6005         
6006 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6007
6008         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6009
6010         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6011
6012 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6013
6014         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6015         the reply value of the ServiceExists message.
6016
6017 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6018
6019         * python/dbus_bindings.pyx.in: No longer need to parse path
6020         elements and pass them as arrays of strings.  The C API now
6021         accepts plain path strings.
6022         (_build_parsed_path): removed 
6023
6024 2004-06-07  Havoc Pennington  <hp@redhat.com>
6025
6026         * doc/TODO: remove auto-activation item since it's done; sort
6027         items by importance/milestone
6028
6029 2004-06-07  Havoc Pennington  <hp@redhat.com>
6030
6031         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6032         random signature when using REQUIRED_FIELDS (this hack won't work
6033         in the long term)
6034
6035         * dbus/dbus-message.c: change the signature to be a header field,
6036         instead of message->signature special-case string. Incremental
6037         step forward. Then we can fix up code to send the signature in the
6038         message, then fix up code to validate said signature, then fix up
6039         code to not put the typecodes inline, etc.
6040         (load_one_message): don't make up the signature after the fact
6041         (decode_header_data): require signature field for the known
6042         message types
6043
6044         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6045
6046         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6047
6048 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6049
6050         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6051
6052         * mono/Handler.cs: Updated to follow new path argument for
6053         (un-)registering objects.
6054
6055         * mono/example/Makefile.am:
6056         * mono/Makefile.am:
6057         * configure.in: Bumped required version for mono and use new -pkg
6058         syntax for deps
6059
6060 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6061
6062         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6063         registration functions take the path argument as char* instead of
6064         char**.
6065
6066         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6067         split off the path decompostion part of
6068         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6069         warnings. 
6070
6071         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6072         
6073 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6074  
6075         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6076         machine approach.  A state is implemented as a function that
6077         handles incoming events as specified for that state.
6078         
6079         * doc/dbus-specification.xml: Update auth protocol state machine
6080         specification to match implementation.  Remove some leftover
6081         base64 examples.
6082
6083 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6084
6085         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6086         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6087         quiet doxygen.
6088
6089         * Doxyfile.in: remove deprecated options.
6090
6091         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6092         glib/test-thread.h, glib/test-thread-client.c,
6093         glib/test-thread-server.c, glib/test-profile.c,
6094         glib/test-dbus-glib.c: remove these unused files.
6095
6096 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6097
6098         * dbus/dbus-object-tree.c
6099         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6100         non-fallback handlers (bug #684).
6101         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6102         (find_subtree_recurse): report wether the returned subtree is an
6103         exact match or a "fallback" match higher up in the tree.
6104         (object_tree_test_iteration): update test case.
6105
6106 2004-06-01  Seth Nickell  <seth@gnome.org>
6107
6108         * python/dbus_bindings.pyx.in:
6109         * python/tests/test-client.py:
6110
6111         Round off basic type support. Add dicts (yay!), and 
6112         remaining array types.
6113
6114         Make MessageIter more general so it works for dicts too.
6115
6116         Mark all loop variables as C integers.
6117         
6118 2004-05-31  Havoc Pennington  <hp@redhat.com>
6119
6120         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6121         "in" before "out"
6122
6123         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6124
6125         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6126         option that runs the tests, and start filling in some code
6127         including for starters just dumping the interfaces to stdout
6128
6129         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6130
6131         * test/data/valid-introspection-files/lots-of-types.xml: test of
6132         an example introspection file
6133
6134         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6135         "node" (I think...)
6136
6137 2004-05-31  Seth Nickell  <seth@gnome.org>
6138
6139         * python/dbus_bindings.pyx.in:
6140         * python/tests/test-client.py:
6141
6142         Test Suite: 1
6143         Python Bindings: 0
6144
6145         Fix string array memory trashing bug... oops...
6146
6147 2004-05-30  Seth Nickell  <seth@gnome.org>
6148
6149         * python/dbus.py:
6150
6151         Add a nicer-but-less-flexible alternate API for handling 
6152         calls to virtual objects in dbus.ObjectTree.
6153
6154         Screw up the argument order to the dbus.Object constructor
6155         for consistency with dbus.ObjectTree (and to make dbus_methods
6156         optional for future extension)
6157         
6158         * python/examples/Makefile.am:
6159         * python/examples/gconf-proxy-service.py:
6160         * python/examples/gconf-proxy-service2.py:
6161
6162         Alternate implementation of gconf-proxy-service using the
6163         nicer dbus.ObjectTree API.
6164         
6165         * python/examples/example-service.py:
6166         * python/tests/test-server.py
6167
6168         Reverse the argument order to deal with dbus.Object constructor
6169         changes.
6170         
6171 2004-05-30  Seth Nickell  <seth@gnome.org>
6172
6173         * python/examples/example-client.py:
6174         * python/examples/example-service.py:
6175
6176         Take it back. Lists seem to work but they're broken
6177         in the test suite. Make the base examples use
6178         lists (works fine).
6179
6180 2004-05-30  Seth Nickell  <seth@gnome.org>
6181
6182         * python/dbus_bindings.pyx.in:
6183         * python/tests/test-client.py:
6184
6185         Add some more tests and fix errors that crop up.
6186         Unfortunately, currently it seems like marshalling
6187         and unmarshalling of lists is completely broken :-(
6188
6189 2004-05-30  Seth Nickell  <seth@gnome.org>
6190
6191         * python/dbus_bindings.pyx.in:
6192
6193         Add support for ObjectPath type.
6194
6195         * python/dbus.py:
6196
6197         Refactor message handling code to a common function.
6198         
6199         * python/tests/test-client.py:
6200         * python/tests/test-server.py:
6201
6202         Add tests that check to make sure values of all types
6203         can be echoed from a service w/o mangling.
6204         
6205 2004-05-29  Seth Nickell  <seth@gnome.org>
6206
6207         * python/dbus.py:
6208
6209         Add ObjectTree class which allows implementation
6210         of trees of "virtual" objects. Basically the python
6211         wrapper for "register_fallback".
6212         
6213         * python/examples/Makefile.am
6214         * python/examples/gconf-proxy-client.py:
6215         * python/examples/gconf-proxy-service.py:
6216
6217         Implement a simple GConf proxy service that supports
6218         get/set on string and int GConf keys using the ObjectTree.
6219         
6220 2004-05-29  Seth Nickell  <seth@gnome.org>
6221
6222         * python/dbus.py:
6223         * python/examples/example-client.py:
6224         * python/examples/example-service.py:
6225         * python/examples/list-system-services.py:
6226
6227         Add SessionBus, SystemBus and ActivationBus classes
6228         so you don't need to know the special little BUS_TYPE
6229         flag.
6230         
6231 2004-05-29  Havoc Pennington  <hp@redhat.com>
6232
6233         * bus/config-parser.c (process_test_valid_subdir): temporarily
6234         stop testing config parser OOM handling, since expat has issues
6235         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6236
6237         * bus/dbus-daemon-1.1.in: change requested_reply to
6238         send_requested_reply/receive_requested_reply so we can send the
6239         replies, not just receive them.
6240
6241         * bus/config-parser.c: parse the new
6242         send_requested_reply/receive_requested_reply
6243
6244         * bus/policy.c (bus_client_policy_check_can_send): add
6245         requested_reply argument and use it
6246
6247         * bus/bus.c (bus_context_check_security_policy): pass through
6248         requested_reply status to message send check
6249
6250         * bus/system.conf.in: adapt to requested_reply change
6251         
6252 2004-05-28  Havoc Pennington  <hp@redhat.com>
6253
6254         * test/glib/test-service-glib.c (main): remove unused variable
6255
6256         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6257
6258         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6259         from the enum, no longer in use.
6260
6261         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6262         works right.
6263
6264         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6265         whether error_name passed in is a valid error name.
6266
6267 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6268
6269         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6270         OBJECT_PATH and OBJECT_PATH_ARRAY
6271
6272 2004-05-28  Seth Nickell  <seth@gnome.org>
6273
6274         * python/examples/Makefile.am:
6275
6276         Forget to add Makefile.am. Do not pass go.
6277
6278 2004-05-28  Michael Meeks  <michael@ximian.com>
6279
6280         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6281         fix no int64 case.
6282
6283         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6284
6285         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6286         (_dbus_message_iter_get_basic_type_array): impl.
6287         drastically simplify ~all relevant _get methods to use these.
6288         (_dbus_message_iter_append_basic_array),
6289         (dbus_message_iter_append_basic): impl
6290         drastically simplify ~all relevant _append methods to use these.
6291
6292         * dbus/dbus-message-builder.c (parse_basic_type) 
6293         (parse_basic_array, lookup_basic_type): impl.
6294         (_dbus_message_data_load): prune scads of duplicate /
6295         cut & paste coding.
6296
6297         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6298         (_dbus_demarshal_basic_type): implement,
6299         (demarshal_and_validate_len/arg): beef up debug.
6300         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6301
6302 2004-05-27  Seth Nickell  <seth@gnome.org>
6303
6304         * configure.in:
6305         * python/Makefile.am:
6306
6307         Include the example python apps in the tarball.
6308         
6309         * python/examples/list-system-services.py
6310
6311         Add a python new example that fetches the list of services
6312         from the system bus.
6313         
6314 2004-05-27  Seth Nickell  <seth@gnome.org>
6315
6316         * python/dbus.py:
6317         * python/dbus_bindings.pyx.in:
6318
6319         Fix failure to notify that a signal was not handled,
6320         resulted in hung functions.
6321         
6322 2004-05-25  Colin Walters  <walters@redhat.com>
6323
6324         * tools/dbus-monitor.c (main): Monitor all types of messages.
6325
6326 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6327
6328         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6329         which unregisters the object path and disposes the handler.
6330
6331 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6332  
6333         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6334          
6335         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6336         operands to && so we call dbus_message_iter_next () for the last
6337         argument also.
6338
6339 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6340
6341         * dbus/dbus-object-tree.c
6342         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6343         children even if the requested path isn't registered.
6344         (object_tree_test_iteration): test object_tree_list_registered.
6345
6346         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6347         it to 0.
6348         
6349 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6350
6351         * doc/TODO: Remove resolved items.
6352
6353         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6354         field.
6355         
6356         * bus/connection.c (bus_connections_expect_reply): Enforce the
6357         per-connection limit on pending replies.
6358         
6359         Patch from Jon Trowbridge <trow@ximian.com>:
6360  
6361         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6362         up a watch that triggers a config reload when one end of the pipe
6363         becomes readable.
6364         (signal_handler): Instead of doing the config reload in our SIGHUP
6365         handler, just write to the reload pipe and let the associated
6366         watch handle the reload when control returns to the main loop.
6367  
6368         * bus/driver.c (bus_driver_handle_reload_config): Added.
6369         Implements a ReloadConfig method for requesting a configuration
6370         file reload via the bus driver.
6371  
6372 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6373
6374         * HACKING: Updated release instructions concerning the wiki page.
6375
6376 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6377
6378         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6379         filter against auth->allowed_mechs; we only add allowed mechs in
6380         record_mechanisms().
6381  
6382         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6383         ALLOWED_MECHS to auth-script format so we can set the list of
6384         allowed mechanisms.
6385  
6386         * data/auth/client-out-of-mechanisms.auth-script: New test to
6387         check client disconnects when it is out of mechanisms to try.
6388  
6389         * dbus/dbus-auth.c (process_command): Remove check for lines
6390         longer that 1 MB; we only buffer up maximum 16 kB.
6391  
6392         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6393         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6394         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6395         assume there might be unused bytes.
6396  
6397         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6398         client-out-of-mechs, it is handled in process_reject(). Move check
6399         for max failures to send_rejected(), as it's a server-only thing.
6400
6401         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6402         send_auth(), send_data(), send_rejected(), send_error(),
6403         send_ok(), send_begin() and send_cancel().
6404
6405 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6406
6407         Remove base64 encoding, replace with hex encoding. Original patch
6408         from trow@ximian.com, added error handling.
6409
6410         * dbus/dbus-string.c (_dbus_string_base64_encode)
6411         (_dbus_string_base64_decode): Remove.
6412         (_dbus_string_hex_decode): Add end_return argument so we can
6413         distinguish between OOM and invalid hex encoding.
6414         (_dbus_string_test): Remove base64 tests and add test case for
6415         invalid hex.
6416
6417         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6418         Replace base64 with hex.
6419
6420         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6421         for invalid hex encoded data in auth protocol.
6422
6423 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6424
6425         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6426         leak.
6427
6428 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6429
6430         * mono/dbus-sharp.dll.config.in: Added for GAC
6431         * mono/dbus-sharp.snk: Added for GAC
6432         * mono/Assembly.cs.in: Added for GAC
6433         * mono/Makefile.am: Changes for GAC installation        
6434         * configure.in: Added refs for dbus-sharp.dll.config.in and
6435         Assembly.cs.in. More fixes for mono testing
6436         * mono/example/Makefile.am: Changed var to CSC
6437         * Makefile.am: Changed flag name to DBUS_USE_CSC
6438
6439 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6440
6441         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6442         * mono/doc/*: Added documentation framework
6443         * configure.in: Added monodoc check
6444         * README: Added description of mono configure flags
6445
6446 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6447
6448         * doc/dbus-specification.xml: Added a "Required" column to the 
6449         header fields table and changed the "zero or more" verbage in
6450         the above paragraph to read "The header must contain the required 
6451         named header fields and zero or more of the optional named header 
6452         fields".
6453         * test/data/invalid-messages/*.message: Added the required PATH 
6454         named header field to the tests so that they don't fail on 
6455         'Missing path field'
6456
6457 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6458
6459         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6460         the stack by implicitly defining variable and parameter types and
6461         removing the hack of defining C pointers as python objects and later
6462         casting them.
6463
6464 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6465
6466         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6467
6468 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6469
6470         * mono/DBusType/Dict.cs: Handle empty dicts
6471         * mono/DBusType/Array.cs: Handle empty arrays
6472         * mono/Arguments.cs: Handle empty arguments
6473
6474 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6475
6476         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6477         field
6478
6479 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6480
6481         * test/data/valid-messages/standard-*.message: Update message
6482         test scripts to new header field names.
6483
6484 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6485
6486         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6487         overflow to times_we_did_each_thing array which would chop off the
6488         first character of the failure_dir string. Increased the size of
6489         the array to 7 to reflect the number of random mutation functions
6490         we have.
6491
6492 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6493
6494         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6495         unix_server->watch here, it is unreffed in disconnect.
6496         (_dbus_server_new_for_tcp_socket): convert NULL host to
6497         "localhost" here so we don't append NULL to address.
6498         
6499         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6500         various addresses, including tcp with no explicit host.
6501
6502 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6503
6504         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6505         fix incorrect setting of .name_offset in the HeaderField (it was
6506         off by two bytes, positioned right after the name and typecode)
6507
6508         * bus/bus.c (bus_context_new, bus_context_unref): test before
6509         calling dbus_server_free_data_slot and _dbus_user_database_unref
6510         in case of an error.
6511
6512         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6513         by libdbus-gtool.
6514
6515 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6516
6517         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6518         _dbus_poll() instead of select().
6519
6520 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6521
6522         * bus/main.c (signal_handler): Reload the configuration files
6523         on SIGHUP.
6524         (main): Set up our SIGHUP handler.
6525
6526         * bus/bus.c (struct BusContext): Store the config file, user and
6527         fork flag in the BusContext.
6528         (process_config_first_time_only): Added.  Contains the code
6529         (previously in bus_context_new) for setting up the BusContext from
6530         the BusConfigParser that should only be run the first time the
6531         config files are read.
6532         (process_config_every_time): Added.  Contains the code (previously
6533         in bus_context_new) for setting up the BusContext from the
6534         BusConfigParser that should be run every time the config files are
6535         read.
6536         (load_config): Added.  Builds a BusConfigParser from the config
6537         files and passes the resulting structure off to
6538         process_config_first_time_only (assuming this is the first time)
6539         and process_config_every_time.
6540         (bus_context_new): All of the config-related code has been moved
6541         to process_config_first_time_only and process_config_every_time.
6542         Now this function just does the non-config-related initializations
6543         and calls load_config.
6544         (bus_context_reload_config): Added.
6545
6546 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6547
6548         * bus/driver.c (bus_driver_handle_get_service_owner):
6549         implement a GetServiceOwner method.
6550         * doc/dbus-specification.xml: document it.
6551         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6552         
6553         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6554         implement, using the bus GetServiceOwner method.
6555
6556         * test/glib/test-dbus-glib.c:
6557         use dbus_gproxy_new_for_service_owner so that we can receive the
6558         signal. 
6559
6560 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6561
6562         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6563         dbus/dbus-message.c, dbus/dbus-protocol.h
6564         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6565
6566         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6567         dbus/dbus-message.c, dbus/dbus-protocol.h
6568         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6569
6570         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6571         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6572         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6573
6574         * doc/dbus-specification.xml (Header Fields Table):
6575         s/SERVICE/DESTINATION
6576         s/SENDER_SERVICE/SENDER
6577
6578
6579 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6580
6581         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6582         a few seconds.
6583
6584 2004-04-13  Michael Meeks  <michael@ximian.com>
6585
6586         * glib/dbus-gobject.c (handle_introspect): split out
6587         (introspect_properties): this.
6588         (handle_introspect): implement this.
6589
6590         * test/glib/Makefile.am: use the absolute path so the bus
6591         daemon's chdir ("/") doesn't kill us dead.
6592
6593         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6594
6595 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6596
6597         * bus/config-parser.c (struct BusConfigParser): Added
6598         included_files field.
6599         (seen_include): Added.  Checks whether or not a file has already
6600         been included by any parent BusConfigParser.
6601         (bus_config_parser_new): Copy the parent's included_files.
6602         (include_file): Track which files have been included, and fail on
6603         circular inclusions.
6604         (process_test_valid_subdir): Changed printf to report if we are
6605         testing valid or invalid conf files.
6606         (all_are_equiv): Changed printf to be a bit clearer about
6607         what we are actually doing.
6608         (bus_config_parser_test): Test invalid configuration files.
6609
6610 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6611
6612         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6613         argument.  If non-null, the newly-constructed BusConfigParser will
6614         be initialized with the parent's BusLimits instead of the default
6615         values.
6616         (include_file): When including a config file, pass in
6617         the current parser as the parent and then copy the BusLimits
6618         from the included BusConfigParser pack to the current parser.
6619         (process_test_valid_subdir): Renamed from process_test_subdir.
6620         (process_test_equiv_subdir): Added.  Walks through a directory,
6621         descending into each subdirectory and loading the config files
6622         it finds there.  If any subdirectory contains two config files
6623         that don't produce identical BusConfigParser structs, fail.
6624         For now, the BusConfigParser's BusPolicies are not compared.
6625         (bus_config_parser_test): Call both process_test_valid_subdir and
6626         process_test_equiv_subdir.
6627
6628         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6629         argument and pass it along to the call to bus_config_parser_new.
6630         Also made a few small changes to allow this code to compile.
6631
6632         * bus/config-loader-expat.c (bus_config_load): Take a parent
6633         argument and pass it along to the call to bus_config_parser_new.
6634
6635         * bus/bus.c (bus_context_new): Load the config file
6636         with a NULL parent argument.
6637
6638 2004-03-29  Michael Meeks  <michael@ximian.com>
6639
6640         * glib/dbus-gobject.c (introspect_properties): split
6641         out, fix mangled 'while' flow control.
6642         (introspect_signals): implement.
6643         (handle_introspect): update.
6644
6645 2004-03-29  Michael Meeks  <michael@ximian.com>
6646
6647         * glib/dbus-gobject.c (set_object_property): split out / 
6648         re-work, use the property type, and not the message type(!)
6649         (get_object_property): ditto.
6650
6651         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6652         (dbus_gvalue_marshal): make this code re-usable, needed
6653         for signals too, also on both proxy and server side.
6654         Re-write for more efficiency / readability.
6655
6656 2004-03-29  Michael Meeks  <michael@ximian.com>
6657
6658         * dbus/dbus-message.c
6659         (dbus_message_new_error_printf): impl.
6660
6661         * dbus/dbus-connection.c
6662         (dbus_connection_unregister_object_path): fix warning.
6663
6664         * configure.in: fix no-mono-installed situation.
6665
6666 2004-03-27  Havoc Pennington  <hp@redhat.com>
6667
6668         Patch from Timo Teräs:
6669         
6670         * tools/dbus-send.c (main): if --print-reply, assume type is
6671         method call; support boolean type args
6672         
6673         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6674         bunch of memleak and logic bugs
6675         
6676 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6677
6678         * mono/Arguments.cs:
6679         * mono/Introspector.cs:
6680         * mono/Handler.cs:
6681         * mono/InterfaceProxy.cs:
6682         * mono/Message.cs
6683         * mono/ProxyBuilder.cs:
6684         * mono/Service.cs:
6685         Added InterfaceProxy class to avoid building proxies for every
6686         object.
6687
6688         * dbus-message.h:
6689         * dbus-message.c (dbus_message_append_args_valist)
6690         (dbus_message_iter_get_object_path)
6691         (dbus_message_iter_get_object_path_array)
6692         (dbus_message_iter_append_object_path)
6693         (dbus_message_iter_append_object_path_array):
6694         Added object_path iter functions to handle OBJECT_PATH arguments
6695         
6696 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6697
6698         First checkin of mono bindings.
6699         * configure.in:
6700         * Makefile.am:
6701         Build stuff for the bindings
6702         * dbus-sharp.pc.in: Added for pkgconfig
6703         
6704 2004-03-21  Havoc Pennington  <hp@redhat.com>
6705
6706         * test/test-service.c (main): remove debug spew
6707
6708 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6709
6710         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6711         arrays
6712
6713         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6714         (dbus_message_iter_init_array_iterator)
6715         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6716         indicate whether the iterator is empty
6717
6718         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6719         warnings
6720
6721 2004-03-19  Havoc Pennington  <hp@redhat.com>
6722
6723         * NEWS: 0.21 updates
6724
6725         * configure.in: 0.21
6726
6727         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6728         
6729         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6730         you don't need pyrex to make dist
6731
6732         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6733         sources; run moc
6734         
6735 2004-03-18  Richard Hult  <richard@imendio.com>
6736
6737         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6738         (dbus_message_set_auto_activation): Add doxygen docs.
6739
6740 2004-03-16  Richard Hult  <richard@imendio.com>
6741
6742         * bus/activation.c: (bus_activation_service_created),
6743         (bus_activation_send_pending_auto_activation_messages),
6744         (bus_activation_activate_service):
6745         * bus/activation.h:
6746         * bus/dispatch.c: (bus_dispatch),
6747         (check_nonexistent_service_auto_activation),
6748         (check_service_auto_activated),
6749         (check_segfault_service_auto_activation),
6750         (check_existent_service_auto_activation), (bus_dispatch_test):
6751         * bus/driver.c: (bus_driver_handle_activate_service):
6752         * bus/services.c: (bus_registry_acquire_service):
6753         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6754         (dbus_message_get_auto_activation):
6755         * dbus/dbus-message.h:
6756         * dbus/dbus-protocol.h: Implement auto-activation.
6757         
6758         * doc/dbus-specification.xml: Add auto-activation to the spec.
6759
6760 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6761
6762         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6763         fix a bug with CUSTOM types.
6764
6765         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6766         a unit test for this bug (used to fail).
6767
6768 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6769
6770         * bus/activation.c:
6771         (babysitter_watch_callback): notify all pending activations waiting for
6772           the same exec that the activation failed.
6773         (bus_activation_activate_service): shortcut the activation if we 
6774           already waiting for the same executable to start up.
6775
6776 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6777
6778         * bus/activation.c: 
6779         - Added service file reloading. 
6780           Each service files directory is kept in an hash table in 
6781           BusActivation and each BusActivationEntry knows what .service-file it
6782           was read from. So when you try to activate a service the bus will 
6783           check if it's been updated, removed or if new .service-files has 
6784           been installed.
6785         - Test code at the bottom for the service file reloading.
6786         * bus/test-main.c: (main):
6787         * bus/test.h:
6788         - added service reloading test.
6789         * dbus/dbus-sysdeps.c: 
6790         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6791
6792 2004-03-08  Michael Meeks  <michael@ximian.com>
6793
6794         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6795         bail immediately if disconnected, to avoid busy loop.
6796
6797         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6798         cleanup cut/paste/inefficiency.
6799
6800 2004-03-01  David Zeuthen  <david@fubar.dk>
6801
6802         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6803         bug where args were used twice. This bug resulted in a segfault
6804         on a Debian/PPC system when starting the messagebus daemon. Include
6805         dbus-sysdeps.h for DBUS_VA_COPY
6806
6807         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6808
6809         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6810         appropriate va_copy implementation. From GLib
6811         
6812 2004-02-24  Joe Shaw  <joe@ximian.com>
6813
6814         * bus/services.c (bus_registry_acquire_service): We need to pass
6815         in the service name to dbus_set_error() to prevent a crash.
6816
6817 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6818
6819         * AUTHORS: Reveal my True identity.
6820
6821 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6822
6823         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6824         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6825
6826 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6827
6828         * doc/TODO: Added not about better error check of configuration files.
6829
6830 2003-12-02  Richard Hult  <richard@imendio.com>
6831
6832         * Update AFL version to 2.0 throughout the source files to reflect
6833         the update that was done a while ago.
6834
6835 2003-12-02  Richard Hult  <richard@imendio.com>
6836
6837         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6838         wrote_dict_key to FALSE on the iter that the dict is appended to,
6839         just like when appending other types. Fixes a bug where a dict
6840         couldn't be put inside a dict.
6841         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6842         (message_iter_test, _dbus_message_test): Add test case for dict
6843         inside dict.
6844
6845 2003-12-01  David Zeuthen  <david@fubar.dk>
6846
6847         * python/dbus.py: Add the actual message when calling the reciever
6848         of a signal such that parameters can be inspected. Add the method
6849         remove_signal_receiver
6850         
6851 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6852
6853         * bus/*.[ch]:
6854         * dbus/*.[ch]:
6855         * glib/*.[ch]: Made ref functions return the pointer
6856
6857 2003-11-25  Zack Rusin  <zack@kde.org>
6858
6859         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6860
6861         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6862         wrappers,
6863
6864         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6865         the Integrator and to better fit with the server,
6866
6867 2003-11-24  Zack Rusin  <zack@kde.org>
6868
6869         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6870         the integrator handles it now
6871
6872         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6873         since QTimer wasn't really meant to be used the way DBusTimeout is
6874
6875 2003-11-24  Zack Rusin  <zack@kde.org>
6876
6877         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6878         Integrator class which integrates D-BUS with the Qt event loop,
6879
6880         * qt/connection.h, qt/connection.cpp: Move all the code which
6881         was dealing with D-BUS integration to the Integrator class,
6882         and start using Integrator,
6883
6884 2003-11-23  Zack Rusin  <zack@kde.org>
6885
6886         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6887         wrapper
6888
6889         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6890         switching namespaces to DBusQt, reworking the class,
6891
6892         * Makefile.cvs: switching dependencies so that it matches KDE 
6893         schematics,
6894         
6895         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6896         the library
6897
6898 2003-11-19  Havoc Pennington  <hp@redhat.com>
6899
6900         * NEWS: update
6901
6902         * configure.in: bump version to 0.20
6903
6904         * configure.in (have_qt): add yet another place to look for qt
6905         (someone hand trolltech a .pc file...)
6906
6907 2003-11-01  Havoc Pennington  <hp@redhat.com>
6908
6909         * doc/dbus-specification.xml: add state machine docs on the auth
6910         protocol; just a first draft, I'm sure it's wrong.      
6911
6912 2003-10-28  David Zeuthen  <david@fubar.dk>
6913
6914         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6915         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6916         
6917 2003-10-28  Havoc Pennington  <hp@redhat.com>
6918
6919         * dbus/dbus-message.c (get_next_field): delete unused function
6920
6921 2003-10-28  Havoc Pennington  <hp@redhat.com>
6922
6923         * bus/expirelist.c (do_expiration_with_current_time): detect
6924         failure of the expire_func due to OOM
6925
6926         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6927
6928         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6929         NoReply error that's now created by the bus when the service exits
6930
6931 2003-10-28  Havoc Pennington  <hp@redhat.com>
6932
6933         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6934         tests for set_path, set_interface, set_member, etc.
6935
6936         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6937
6938         * dbus/dbus-message.c (set_string_field): always just delete and
6939         re-append the field; accept NULL for deletion
6940         (re_align_fields_recurse): reimplement
6941         
6942 2003-10-26  Havoc Pennington  <hp@redhat.com>
6943
6944         * dbus/dbus-connection.c: fix docs to properly describe the
6945         disconnected message
6946         (_dbus_connection_notify_disconnected): remove this function; 
6947         we can't synchronously add the disconnected message, we have to 
6948         do it after we've queued any remaining real messages
6949         (_dbus_connection_get_dispatch_status_unlocked): queue the
6950         disconnect message only if the transport has finished queueing all
6951         its real messages and is disconnected.
6952         (dbus_connection_disconnect): update the dispatch status here
6953
6954 2003-10-22  Havoc Pennington  <hp@redhat.com>
6955
6956         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6957
6958         * bus/connection.c (bus_transaction_send_from_driver): set the
6959         destination to the connection's base service
6960
6961 2003-10-20  Havoc Pennington  <hp@redhat.com>
6962
6963         hmm, make check is currently not passing.
6964         
6965         * doc/dbus-specification.xml: add requirement that custom type
6966         names follow the same rules as interface names.
6967
6968         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6969         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6970         'map'
6971
6972         * doc/dbus-specification.xml: update type codes to match
6973         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6974         CUSTOM. Add type OBJECT_PATH to the spec.
6975
6976 2003-10-17  Havoc Pennington  <hp@redhat.com>
6977
6978         * bus/driver.c (create_unique_client_name): use "." as separator
6979         in base service names instead of '-'
6980
6981         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6982         byte at the end of the string
6983
6984         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6985         optimization macros since string validation seems to be a slow
6986         point.
6987         
6988         * doc/dbus-specification.xml: restrict valid
6989         service/interface/member/error names. Add test suite code for the
6990         name validation.
6991
6992         * dbus/dbus-string.c: limit service/interface/member/error names 
6993         to [0-9][A-Z][a-z]_
6994
6995         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6996         format arg to verbose spew
6997
6998         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6999         memory, return instead of g_error
7000
7001         * test/test-service.c (path_message_func): support emitting a
7002         signal on request
7003
7004         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7005         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7006         assuming the activation bus was the session bus so that services
7007         started manually will still register.
7008         (init_connections_unlocked): fix so that in OOM situation we get
7009         the same semantics when retrying the function
7010         
7011         * test/test-service.c (main): change to use path registration, to
7012         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7013         than DBUS_BUS_SESSION
7014
7015 2003-10-16  Havoc Pennington  <hp@redhat.com>
7016
7017         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7018
7019         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7020         coverage of the tests
7021         (coverage-report.txt): don't move the .da and .bbg files around
7022
7023 2003-10-16  Havoc Pennington  <hp@redhat.com>
7024
7025         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7026         to put there
7027
7028 2003-10-16  Havoc Pennington  <hp@redhat.com>
7029
7030         * bus/connection.c (bus_pending_reply_expired): either cancel or
7031         execute, not both
7032         (bus_connections_check_reply): use unlink, not remove_link, as we
7033         don't want to free the link; fixes double free mess
7034
7035         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7036         where no reply was received
7037
7038         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7039         fix a refcount leak
7040
7041         * bus/signals.c (match_rule_matches): add special cases for the
7042         bus driver, so you can match on sender/destination for it.
7043
7044         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7045         DBUS_PRINT_BACKTRACE is set
7046
7047         * dbus/dbus-internals.c: add pid to assertion failure messages
7048
7049         * dbus/dbus-connection.c: add message type code to the debug spew
7050
7051         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7052         sender=foo not service=foo
7053
7054         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7055         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7056         DBUS_ACTIVATION_ADDRESS instead
7057
7058         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7059         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7060
7061         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7062         context struct
7063
7064         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7065         (dbus_message_iter_get_object_path_array): new function (half
7066         finished, disabled for the moment)
7067         
7068         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7069         DBUS_MESSAGE_TYPE_ERROR
7070
7071         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7072         avoid redirecting stderr to /dev/null
7073         (babysit): close stdin if not doing the "exit_with_session" thing
7074
7075         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7076         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7077         stdout/stdin, so things don't get confused
7078         
7079         * bus/system.conf.in: fix to allow replies, I modified .conf
7080         instead of .conf.in again.
7081
7082 2003-10-14  David Zeuthen  <david@fubar.dk>
7083
7084         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7085         argtype to arg_type when raising unknown arg type exception.
7086         Changed type list to reflect the changes in dbus-protocol.h so 
7087         the bindings actually work.
7088
7089 2003-10-14  Havoc Pennington  <hp@redhat.com>
7090
7091         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7092         to have a bug keeping it from outputting the .da files sometimes
7093         (string_get_string): don't append garbage nul bytes to the string.
7094
7095 2003-10-15  Seth Nickell  <seth@gnome.org>
7096
7097         * python/Makefile.am:
7098
7099         Include dbus_h_wrapper.h in the dist tarball.
7100
7101 2003-10-14  Havoc Pennington  <hp@redhat.com>
7102
7103         * bus/bus.c (bus_context_check_security_policy): revamp this to
7104         work more sanely with new policy-based requested reply setup
7105
7106         * bus/connection.c (bus_transaction_send_from_driver): set bus
7107         driver messages as no reply
7108
7109         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7110         requested_reply attribute on allow/deny rules
7111
7112         * bus/system.conf: add <allow requested_reply="true"/>
7113
7114         * bus/driver.c (bus_driver_handle_message): fix check for replies
7115         sent to the bus driver, which was backward. How did this ever work
7116         at all though? I think I'm missing something.
7117
7118         * dbus/dbus-message.c (decode_header_data): require error and
7119         method return messages to have a reply serial field to be valid
7120         (_dbus_message_loader_queue_messages): break up this function;
7121         validate that reply serial and plain serial are nonzero; 
7122         clean up the OOM/error handling.
7123         (get_uint_field): don't return -1 from this
7124         (dbus_message_create_header): fix signed/unsigned bug
7125
7126         * bus/connection.c (bus_connections_expect_reply): save serial of
7127         the incoming message, not reply serial
7128
7129 2003-10-14  Havoc Pennington  <hp@redhat.com>
7130
7131         * bus/connection.c: implement pending reply tracking using
7132         BusExpireList
7133
7134         * bus/bus.c (bus_context_check_security_policy): verify that a
7135         reply is pending in order to allow a reply to be sent. Deny 
7136         messages of unknown type.
7137
7138         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7139
7140         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7141         (bus_context_get_reply_timeout): new
7142
7143 2003-10-13  Seth Nickell  <seth@gnome.org>
7144
7145         * python/Makefile.am:
7146
7147         Pass "make distcheck": remove a couple files from DIST_FILES
7148         that weren't included in the final version.
7149
7150 2003-10-12  Havoc Pennington  <hp@pobox.com>
7151
7152         Added test code that 1) starts an actual bus daemon and 2) uses
7153         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7154         more testing possible, but this is the basic framework.
7155         
7156         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7157         empty proxy lists from the proxy list hash
7158
7159         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7160         couple of return_if_fail checks
7161
7162         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7163         to allocate, so everything is cleared to NULL as it should be.
7164
7165         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7166         source as data to dbus_connection_set_timeout_functions() as the 
7167         timeout functions expected
7168
7169         * test/glib/run-test.sh: add a little script to start up a message
7170         bus and run tests using it
7171
7172         * tools/dbus-launch.1: updates
7173
7174         * tools/dbus-launch.c (main): add --config-file option
7175
7176         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7177         that could never be reached.
7178
7179         * dbus/dbus-message.c (dbus_message_new_method_return) 
7180         (dbus_message_new_error, dbus_message_new_signal): set the
7181         no-reply-expected flag on all these. Redundant, but may
7182         as well be consistent.
7183
7184 2003-10-11  Havoc Pennington  <hp@pobox.com>
7185
7186         * test/decode-gcov.c (function_solve_graph): make broken block
7187         graph a nonfatal error since it seems to be broken. Need to debug
7188         this.
7189
7190         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7191         can't just check type > INVALID < LAST anymore
7192
7193         * dbus/dbus-message.c (dbus_message_get_signature): new function
7194         (dbus_message_has_signature): new function
7195         (struct DBusMessage): add signature field (right now it isn't sent
7196         over the wire, just generated on the fly)
7197         (dbus_message_copy): copy the signature, and init strings to
7198         proper length to avoid some reallocs
7199         (dbus_message_iter_init_array_iterator): return void, since it
7200         can't fail
7201         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7202         (_dbus_message_loader_queue_messages): add silly temporary hack to
7203         fill in message->signature on load
7204
7205         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7206         characters, so they are relatively human-readable.
7207
7208 2003-10-11  Havoc Pennington  <hp@pobox.com>
7209
7210         * dbus/dbus-message.c (_dbus_message_test): add more test
7211         coverage, but #if 0 for now since they uncover a bug 
7212         not fixed yet; I think in re_align_field_recurse()
7213         (re_align_field_recurse): add FIXME about broken assertion
7214
7215         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7216
7217         * bus/connection.c: share a couple code bits with expirelist.c
7218
7219         * bus/expirelist.h, bus/expirelist.c: implement a generic
7220         expire-items-after-N-seconds facility, was going to share between
7221         expiring connections and replies, decided not to use for expiring
7222         connections for now.
7223
7224         * COPYING: include AFL 2.0 (still need to change all the file headers)
7225
7226 2003-10-09  Havoc Pennington  <hp@redhat.com>
7227
7228         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7229         gcc 3.3. Not that we do anything about it yet.
7230
7231         * bus/signals.c (bus_match_rule_parse): impose max length on the
7232         match rule text
7233
7234         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7235
7236 2003-10-09  Havoc Pennington  <hp@redhat.com>
7237
7238         Make matching rules theoretically work (add parser).
7239         
7240         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7241         the case where destination is explicitly specified as bus driver
7242         and someone else is eavesdropping.
7243         
7244         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7245         definition of eavesdropping and assertion
7246
7247         * tools/dbus-send.c (main): use dbus_message_type_from_string
7248
7249         * bus/signals.c (bus_match_rule_parse): implement
7250
7251         * dbus/dbus-message.c (dbus_message_type_from_string): new
7252
7253         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7254
7255 2003-10-02  Havoc Pennington  <hp@pobox.com>
7256
7257         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7258         dbus_gproxy_oneway_call
7259
7260         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7261         (dbus_server_setup_with_g_main): fix to allow calling them more
7262         than once on the same args
7263         (dbus_bus_get_with_g_main): new function
7264
7265 2003-10-02  Havoc Pennington  <hp@redhat.com>
7266
7267         * doc/dbus-tutorial.xml: write some stuff
7268
7269 2003-09-29  Havoc Pennington  <hp@pobox.com>
7270
7271         * configure.in: split checks for Doxygen from XML docs, check for
7272         xmlto
7273
7274         * doc/Makefile.am: XML-ify all the docs, and add a blank
7275         dbus-tutorial.xml
7276
7277 2003-09-29  Havoc Pennington  <hp@pobox.com>
7278
7279         * Merge dbus-object-names branch. To see the entire patch 
7280         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7281         it's huuuuge though.
7282         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7283         
7284 2003-09-28  Havoc Pennington  <hp@pobox.com>
7285
7286         * HACKING: update to reflect new server
7287
7288 2003-09-26  Seth Nickell  <seth@gnome.org>
7289
7290         * python/dbus.py:
7291         * python/examples/example-signals.py:
7292
7293         Start implementing some notions of signals. The API
7294         is really terrible, but they sort of work (with the
7295         exception of being able to filter by service, and to
7296         transmit signals *as* a particular service). Need to
7297         figure out how to make messages come from the service
7298         we registered :-(
7299         
7300         * python/dbus_bindings.pyx.in:
7301
7302         Removed duplicate message_handler callbacks.
7303         
7304 2003-09-25  Havoc Pennington  <hp@redhat.com>
7305
7306         * bus/session.conf.in: fix my mess
7307
7308 2003-09-25  Havoc Pennington  <hp@pobox.com>
7309
7310         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7311
7312 2003-09-25  Seth Nickell  <seth@gnome.org>
7313
7314         * python/examples/example-service.py:
7315
7316         Johan notices complete wrong code in example-service, but
7317         completely wrong in a way that works exactly the same (!).
7318         Johan is confused, how could this possibly work? Example
7319         code fails to serve purpose of making things clear.
7320         Seth fixes.
7321
7322 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7323
7324         * doc/dbus-specification.sgml: don't require header fields
7325         to be 4-byte aligned and specify that fields should be
7326         distinguished from padding by the fact that zero is not
7327         a valid field name.
7328         
7329         * doc/TODO: remove re-alignment item and add item to doc
7330         the OBJECT_PATH type.
7331         
7332         * dbus/dbus-message.c:
7333         (HeaderField): rename the original member to value_offset
7334         and introduce a name_offset member to keep track of where
7335         the field actually begins.
7336         (adjust_field_offsets): remove.
7337         (append_int_field), (append_uint_field),
7338         (append_string_field): don't align the start of the header
7339         field to a 4-byte boundary.
7340         (get_next_field): impl finding the next marhsalled field
7341         after a given field.
7342         (re_align_field_recurse): impl re-aligning a number of
7343         already marshalled fields.
7344         (delete_field): impl deleting a field of any type and
7345         re-aligning any following fields.
7346         (delete_int_or_uint_field), (delete_string_field): remove.
7347         (set_int_field), (set_uint_field): no need to re-check
7348         that we have the correct type for the field.
7349         (set_string_field): ditto and impl re-aligning any
7350         following fields.
7351         (decode_header_data): update to take into account that
7352         the fields aren't 4-byte aligned any more and the new
7353         way to distinguish padding from header fields. Also,
7354         don't exit when there is too much header padding.
7355         (process_test_subdir): print the directory.
7356         (_dbus_message_test): add test to make sure a following
7357         field is re-aligned correctly after field deletion.
7358         
7359         * dbus/dbus-string.[ch]:
7360         (_dbus_string_insert_bytes): rename from insert_byte and
7361         allow the insert of multiple bytes.
7362         (_dbus_string_test): test inserting multiple bytes.
7363
7364         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7365         warning note to docs about having to re-align any
7366         marshalled values following the string.
7367         
7368         * dbus/dbus-message-builder.c:
7369         (append_string_field), (_dbus_message_data_load):
7370         don't align the header field.
7371         
7372         * dbus/dbus-auth.c: (process_test_subdir): print the
7373         directory.
7374         
7375         * test/break-loader.c: (randomly_add_one_byte): upd. for
7376         insert_byte change.
7377         
7378         * test/data/invalid-messages/bad-header-field-alignment.message:
7379         new test case.
7380         
7381         * test/data/valid-messages/unknown-header-field.message: shove
7382         a dict in the unknown field.
7383
7384 2003-09-25  Seth Nickell  <seth@gnome.org>
7385
7386         * python/dbus.py:
7387         * python/dbus_bindings.pyx.in:
7388
7389         Handle return values.
7390         
7391         * python/examples/example-client.py:
7392         * python/examples/example-service.py:
7393
7394         Pass back return values from the service to the client.
7395         
7396 2003-09-24  Seth Nickell  <seth@gnome.org>
7397
7398         * python/dbus.py:
7399
7400         Connect Object methods (when you are sharing an object) up... pass
7401         in a list of methods to be shared. Sharing all the methods just
7402         worked out too weird. You can now create nice Services over the
7403         DBus in Python. :-)
7404         
7405         * python/dbus_bindings.pyx.in:
7406
7407         Keep references to user_data tuples passed into C functions so 
7408         Python doesn't garbage collect on us.
7409
7410         Implement MethodReturn and Error subclasses of Message for creating
7411         DBusMessage's of those types.
7412         
7413         * python/examples/example-client.py:
7414         * python/examples/example-service.py:
7415
7416         Simple example code showing both how create DBus services and objects,
7417         and how to use them.
7418
7419 2003-09-23  Havoc Pennington  <hp@pobox.com>
7420
7421         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7422
7423 2003-09-23  Havoc Pennington  <hp@redhat.com>
7424
7425         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7426         (dbus_gproxy_disconnect_signal): implement
7427         (dbus_gproxy_manager_remove_signal_match): implement
7428         (dbus_gproxy_manager_add_signal_match): implement
7429         (dbus_gproxy_oneway_call): implement
7430
7431 2003-09-23  Havoc Pennington  <hp@pobox.com>
7432
7433         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7434         subclass. This means dropping the transparent thread safety of the
7435         proxy; you now need a separate proxy per-thread, or your own
7436         locking on the proxy. Probably right anyway.
7437         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7438
7439 2003-09-22  Havoc Pennington  <hp@redhat.com>
7440
7441         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7442
7443 2003-09-21  Seth Nickell  <seth@gnome.org>
7444
7445         First checkin of the Python bindings.
7446         
7447         * python/.cvsignore:
7448         * python/Makefile.am:
7449         * python/dbus_bindings.pyx.in:
7450         * python/dbus_h_wrapper.h:
7451
7452         Pieces for Pyrex to operate on, building a dbus_bindings.so
7453         python module for low-level access to the DBus APIs.
7454         
7455         * python/dbus.py:
7456
7457         High-level Python module for accessing DBus objects.
7458
7459         * configure.in:
7460         * Makefile.am:
7461
7462         Build stuff for the python bindings.
7463
7464         * acinclude.m4:
7465
7466         Extra macro needed for finding the Python C header files.
7467
7468 2003-09-21  Havoc Pennington  <hp@pobox.com>
7469
7470         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7471         implementing the proxy manager, didn't get very far.
7472
7473         * dbus/dbus-bus.c (dbus_bus_add_match): new
7474         (dbus_bus_remove_match): new
7475
7476         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7477         path_name argument; adjust the other not-yet-implemented 
7478         gproxy constructors to be what I think they should be.
7479
7480 2003-09-21  Havoc Pennington  <hp@pobox.com>
7481
7482         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7483         by default for message bus connections.
7484
7485         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7486         exit_on_disconnect flag is set and we process the disconnected
7487         signal.
7488         (dbus_connection_set_exit_on_disconnect): new function
7489
7490 2003-09-21  Havoc Pennington  <hp@pobox.com>
7491
7492         Get matching rules mostly working in the bus; only actually
7493         parsing the rule text remains. However, the client side of
7494         "signal connections" hasn't been started, this patch is only the
7495         bus side.
7496         
7497         * dbus/dispatch.c: fix for the matching rules changes
7498         
7499         * bus/driver.c (bus_driver_handle_remove_match)
7500         (bus_driver_handle_add_match): send an ack reply from these
7501         method calls
7502
7503         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7504         arguments, reported by Seth Nickell
7505
7506         * bus/config-parser.c (append_rule_from_element): support
7507         eavesdrop=true|false attribute on policies so match rules 
7508         can be prevented from snooping on the system bus.
7509
7510         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7511         and "destination" in attribute names; fix some docs bugs; 
7512         add eavesdrop=true|false attribute
7513
7514         * bus/driver.c (bus_driver_handle_add_match)
7515         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7516         messages
7517
7518         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7519         rid of broadcast service concept, signals are just always broadcast
7520
7521         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7522         mostly implement matching rules stuff (currently only exposed as signal
7523         connections)
7524
7525 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7526
7527         * doc/dbus-specification.sgml: Change the header field name
7528         to be an enum and update the rest of the spec to reference
7529         the fields using the conventinal name.
7530
7531         * dbus/dbus-protocol.h: update to reflect the spec.
7532
7533         * doc/TODO: add item to remove the 4 byte alignment requirement.
7534         
7535         * dbus/dbus-message.c: Remove the code to generalise the
7536         header/body length and serial number header fields as named
7537         header fields so we can reference field names using the 
7538         protocol values.
7539         (append_int_field), (append_uint_field), (append_string_field):
7540         Append the field name as a byte rather than four chars.
7541         (delete_int_or_uint_field), (delete_string_field): reflect the
7542         fact that the field name and typecode now occupy 4 bytes instead
7543         of 8.
7544         (decode_string_field), (decode_header_data): update to reflect
7545         protocol changes and move the field specific encoding from
7546         decode_string_field() back into decode_header_data().
7547         
7548         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7549         Add utility to aid debugging.
7550         
7551         * dbus/dbus-message-builder.c:
7552         (append_string_field), (_dbus_message_data_load): Update to
7553         reflect protocol changes; Change the FIELD_NAME directive
7554         to HEADER_FIELD and allow it to take the field's conventional
7555         name rather than the actual value.
7556         
7557         * test/data/*/*.message: Update to use HEADER_FIELD instead
7558         of FIELD_NAME; Always align the header on an 8 byte boundary
7559         *before* updating the header length.
7560
7561 2003-09-15  Havoc Pennington  <hp@pobox.com>
7562
7563         * dbus/dbus-pending-call.c: add the get/set object data
7564         boilerplate as for DBusConnection, etc. Use generic object data
7565         for the notify callback.
7566
7567         * glib/dbus-gparser.c (parse_node): parse child nodes
7568
7569         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7570         
7571         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7572         contain functions shared between the convenience lib and the
7573         installed lib
7574
7575         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7576         -export-symbols-regex to the GLib library
7577
7578         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7579         fix the locking in here, and add a default handler for
7580         Introspect() that just returns sub-nodes.
7581
7582 2003-09-14  Havoc Pennington  <hp@pobox.com>
7583
7584         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7585         rather than gfoo consistent
7586
7587         * glib/dbus-gproxy.h: delete for now, move contents to
7588         dbus-glib.h, because the include files don't work right since we
7589         aren't in the dbus/ subdir.
7590         
7591         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7592         (dbus_gproxy_end_call): finish
7593         (dbus_gproxy_begin_call): finish
7594
7595         * glib/dbus-gmain.c (dbus_set_g_error): new
7596
7597         * glib/dbus-gobject.c (handle_introspect): include information
7598         about child nodes in the introspection
7599
7600         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7601         function to help in implementation of introspection
7602
7603         * dbus/dbus-object-tree.c
7604         (_dbus_object_tree_list_registered_and_unlock): new function
7605
7606 2003-09-12  Havoc Pennington  <hp@pobox.com>
7607
7608         * glib/dbus-gidl.h: add common base class for all the foo_info
7609         types
7610
7611         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7612         similar to kdcop
7613
7614         * test/Makefile.am: try test srcdir -ef . in addition to test
7615         srcdir = ., one of them should work (yeah lame)
7616         
7617         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7618         library
7619         
7620         * glib/dbus-gparser.h: make description_load routines return
7621         NodeInfo* not Parser*
7622
7623         * Makefile.am (SUBDIRS): build test dir after all library dirs
7624
7625         * configure.in: add GTK+ detection
7626
7627 2003-09-07  Havoc Pennington  <hp@pobox.com>
7628
7629         * Make Doxygen contented.
7630
7631 2003-09-07  Havoc Pennington  <hp@pobox.com>
7632
7633         * doc/dbus-specification.sgml: more updates
7634
7635 2003-09-06  Havoc Pennington  <hp@pobox.com>
7636
7637         * doc/dbus-specification.sgml: partial updates
7638
7639         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7640         zillionth time; hopefully I edited the right file this time.
7641
7642         * bus/config-parser.c (append_rule_from_element): support
7643         send_type, send_path, receive_type, receive_path
7644
7645         * bus/policy.c: add message type and path to the list of things
7646         that can be "firewalled"
7647
7648 2003-09-06  Havoc Pennington  <hp@pobox.com>
7649
7650         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7651         (dbus_connection_register_object_path): make this not handle
7652         messages to paths below the given path
7653
7654 2003-09-03  Havoc Pennington  <hp@pobox.com>
7655
7656         * test/glib/Makefile.am: add this with random glib-linked test
7657         programs
7658
7659         * glib/Makefile.am: remove the random test programs from here,
7660         leave only the unit tests
7661
7662         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7663         uscore/javacaps conversion, and fix     
7664         (get_object_property, set_object_property): change to .NET
7665         convention for mapping props to methods, set_FooBar/get_FooBar, 
7666         since one language has such a convention we may as well copy it. 
7667         Plus real methods in either getFooBar or get_foo_bar style won't 
7668         collide with this convention.
7669
7670 2003-09-01  Havoc Pennington  <hp@pobox.com>
7671
7672         * glib/dbus-gparser.c: implement
7673
7674         * glib/dbus-gobject.c: start implementing skeletons support
7675
7676         * configure.in: when disabling checks/assert, also define
7677         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7678
7679 2003-09-01  Havoc Pennington  <hp@pobox.com>
7680
7681         * glib/Makefile.am: rearrange a bunch of files and get "make
7682         check" framework set up
7683
7684 2003-08-31  Havoc Pennington  <hp@pobox.com>
7685
7686         * fix build with --disable-tests
7687
7688 2003-08-30  Havoc Pennington  <hp@pobox.com>
7689
7690         * dbus/dbus-connection.c: purge DBusMessageHandler
7691
7692         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7693         use callbacks everywhere
7694
7695 2003-08-30  Havoc Pennington  <hp@pobox.com>
7696
7697         * test/data/valid-config-files/system.d/test.conf: change to 
7698         root for the user so warnings don't get printed
7699
7700         * dbus/dbus-message.c: add dbus_message_get_path,
7701         dbus_message_set_path
7702         
7703         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7704         dispatching to a path
7705
7706         * dbus/dbus-string.c (_dbus_string_validate_path): add
7707
7708         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7709         (_dbus_marshal_object_path): implement
7710
7711         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7712         to contain the path to the target object
7713         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7714         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7715
7716 2003-08-30  Havoc Pennington  <hp@pobox.com>
7717
7718         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7719
7720 2003-08-29  Havoc Pennington  <hp@pobox.com>
7721
7722         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7723         registered
7724         (struct DBusObjectSubtree): shrink this
7725         a lot, since we may have a lot of them
7726         (_dbus_object_tree_free_all_unlocked): implement
7727         (_dbus_object_tree_dispatch_and_unlock): implement
7728
7729 2003-08-29  Havoc Pennington  <hp@pobox.com>
7730
7731         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7732
7733 2003-08-28  Havoc Pennington  <hp@pobox.com>
7734
7735         purge DBusObjectID
7736         
7737         * dbus/dbus-connection.c: port to no ObjectID, create a
7738         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7739
7740         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7741         everything except UnregisterFunction and MessageFunction
7742         
7743         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7744         add DBUS_TYPE_OBJECT_PATH
7745         
7746         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7747         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7748         path-based object IDs
7749
7750 2003-08-25  Havoc Pennington  <hp@pobox.com>
7751
7752         Just noticed that dbus_message_test is hosed, I wonder when I
7753         broke that. I thought make check was passing earlier...
7754         
7755         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7756         container tree, will replace most of dbus-object-registry
7757
7758         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7759         screwup
7760
7761 2003-08-19  Havoc Pennington  <hp@pobox.com>
7762
7763         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7764         (dbus_message_is_error): fix this function
7765
7766         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7767         match
7768
7769         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7770         reflect clarified man page
7771         (bus_client_policy_check_can_send): ditto
7772         
7773         * bus/session.conf.in: fixup
7774
7775         * bus/system.conf.in: fixup
7776
7777 2003-08-18  Havoc Pennington  <hp@redhat.com>
7778
7779         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7780
7781         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7782         dumb bug created earlier (wrong order of args to
7783         decode_header_data())
7784         
7785         * tools/dbus-send.c: port
7786
7787         * tools/dbus-print-message.c (print_message): port
7788
7789         * test/data/*messages: port all messages over
7790         
7791         * dbus/dbus-message-builder.c: support including 
7792         message type
7793         
7794         * bus/driver.c: port over
7795         
7796         * bus/dispatch.c: port over to new stuff
7797
7798         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7799         rename disconnect signal to "Disconnected"
7800
7801 2003-08-17  Havoc Pennington  <hp@pobox.com>
7802
7803         This doesn't compile yet, but syncing up so I can hack on it from
7804         work. What are branches for if not broken code? ;-)
7805         
7806         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7807         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7808         DBUS_HEADER_FIELD_ERROR_NAME
7809         
7810         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7811         for the interface+member pairs
7812         (string_hash): change to use g_str_hash algorithm
7813         (find_direct_function, find_string_function): refactor these to
7814         share most code.
7815         
7816         * dbus/dbus-message.c: port all of this over to support 
7817         interface/member fields instead of name field
7818
7819         * dbus/dbus-object-registry.c: port over
7820         
7821         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7822         from _dbus_string_validate_name
7823
7824         * bus/dbus-daemon-1.1: change file format for the 
7825         <deny>/<allow> stuff to match new message naming scheme
7826
7827         * bus/policy.c: port over
7828
7829         * bus/config-parser.c: parse new format
7830         
7831 2003-08-16  Havoc Pennington  <hp@pobox.com>
7832
7833         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7834         broken assertion
7835
7836         * glib/dbus-gproxy.c: some hacking
7837
7838 2003-08-15  Havoc Pennington  <hp@redhat.com>
7839
7840         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7841
7842         * dbus/dbus-connection.c
7843         (dbus_connection_send_with_reply_and_block): factor out internals;
7844         change to convert any error replies to DBusError instead of 
7845         returning them as a message
7846
7847 2003-08-15  Havoc Pennington  <hp@pobox.com>
7848
7849         * dbus/dbus-connection.c, 
7850         dbus/dbus-pending-call.c: Finish the pending call stuff
7851
7852 2003-08-14  Havoc Pennington  <hp@redhat.com>
7853
7854         * dbus/dbus-pending-call.c: start on new object that will replace
7855         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7856         replies
7857
7858         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7859         with remote interfaces
7860
7861         * dbus/dbus-gidl.c: do the boring boilerplate in here
7862         
7863 2003-08-12  Havoc Pennington  <hp@pobox.com>
7864
7865         * bus/dispatch.c (bus_dispatch): make this return proper 
7866         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7867
7868         * dbus/dbus-errors.c (dbus_set_error): use
7869         _dbus_string_append_printf_valist
7870
7871         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7872         (_dbus_string_append_printf): new
7873
7874         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7875         UNKNOWN_METHOD
7876
7877         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7878         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7879         message is unhandled.
7880
7881 2003-08-11  Havoc Pennington  <hp@pobox.com>
7882
7883         * bus/test.c (client_disconnect_handler): change to return
7884         HANDLED (would have been REMOVE_MESSAGE)
7885
7886         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7887         HANDLED/NOT_YET_HANDLED instead of
7888         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7889         should be used.
7890
7891 2003-08-10  Havoc Pennington  <hp@pobox.com>
7892
7893         * tools/dbus-send.c (main): add --type argument, for now
7894         supporting only method_call and signal types.
7895
7896         * tools/dbus-print-message.c: print message type
7897
7898         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7899         init connection->objects
7900
7901         * doc/dbus-specification.sgml: fix sgml
7902
7903         * bus/*.c: port over to object-instance API changes
7904
7905         * test/test-service.c: ditto
7906         
7907         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7908         name, we will have to fix up the rest of the code to also handle
7909         this
7910         (dbus_message_new): generic message-creation call
7911         (set_string_field): allow appending name field
7912
7913 2003-08-06  Havoc Pennington  <hp@pobox.com>
7914
7915         * dbus/dbus-object-registry.c: implement signal connection 
7916         and dispatch
7917
7918         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7919
7920         * dbus/dbus-internals.c (_dbus_memdup): new function
7921
7922 2003-08-02  Havoc Pennington  <hp@pobox.com>
7923
7924         * dbus/dbus-message.c (dbus_message_get_no_reply)
7925         (dbus_message_set_no_reply): add these and remove
7926         set_is_error/get_is_error
7927
7928         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7929         remove the ERROR flag, since there's now an ERROR type
7930
7931 2003-08-01  Havoc Pennington  <hp@pobox.com>
7932
7933         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7934         implement
7935
7936         * dbus/dbus-message.c (dbus_message_get_type): new function
7937
7938         * doc/dbus-specification.sgml: add "type" byte to messages
7939
7940 2003-08-01  Havoc Pennington  <hp@pobox.com>
7941
7942         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7943         a message type enum to distinguish kinds of message
7944         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7945         that need not be replied to
7946
7947 2003-08-01  Havoc Pennington  <hp@pobox.com>
7948
7949         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7950         (unpack_8_octets): fix no-64-bit-int bug
7951
7952         * dbus/dbus-object-registry.c (validate_id): validate the 
7953         connection ID bits, not just the instance ID.
7954
7955         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7956         the connection-global 33 bits of the object ID
7957
7958         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7959         object ID in the new way
7960
7961         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7962         define server/client/instance bits.
7963
7964 2003-07-30  Havoc Pennington  <hp@pobox.com>
7965
7966         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7967         build
7968
7969 2003-07-13  Havoc Pennington  <hp@pobox.com>
7970
7971         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7972         fields to DBusObjectVTable and DBusObjectInfo
7973
7974 2003-07-12  Havoc Pennington  <hp@pobox.com>
7975
7976         * dbus/dbus-object-registry.c: implement unit test,
7977         fix bugs discovered in process
7978
7979         * dbus/dbus-connection.c: remove handler_table and
7980         register_handler(), add DBusObjectRegistry usage
7981
7982         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7983         (dbus_object_id_set_null): new functions
7984
7985 2003-07-08  Havoc Pennington  <hp@pobox.com>
7986
7987         * dbus/dbus-object.c: implement some of this
7988
7989         * dbus/dbus-object-registry.c
7990         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7991         param
7992         (_dbus_object_registry_new): handle OOM
7993
7994 2003-07-08  Havoc Pennington  <hp@pobox.com>
7995
7996         * dbus/dbus-object.h: sketch out an API for registering objects
7997         with a connection, that allows us to use as little as 24 bytes
7998         per object and lets application code represent an object in 
7999         any conceivable way.
8000
8001         * dbus/dbus-object-registry.c: implement the hard bits of the
8002         DBusConnection aspect of object API. Not yet wired up.
8003         
8004 2003-07-06  Havoc Pennington  <hp@pobox.com>
8005
8006         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8007         (_dbus_marshal_object_id): new
8008         (_dbus_demarshal_object_id): new
8009         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8010         consolidate identical switch cases. Don't conditionalize handling
8011         of DBUS_TYPE_UINT64, need to handle the type always.
8012         (_dbus_marshal_validate_arg): consolidate identical cases, and
8013         handle DBUS_TYPE_OBJECT_ID
8014
8015         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8016
8017         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8018
8019 2003-09-28  Havoc Pennington  <hp@pobox.com>
8020
8021         * real 0.13 release
8022
8023 2003-09-28  Havoc Pennington  <hp@pobox.com>
8024
8025         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8026         to work with Debian db2html
8027
8028 2003-09-28  Havoc Pennington  <hp@pobox.com>
8029
8030         * configure.in: 0.13
8031
8032         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8033         stylesheet-images for benefit of Debian
8034         
8035         Change back to using filesystem-linked sockets for the system
8036         bus, so only root can create the default system bus address.
8037         
8038         * bus/system.conf.in: change to use
8039         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8040
8041         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8042         from here.
8043
8044         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8045         here, and AC_DEFINE DBUS_SYSTEM_PATH
8046
8047 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8048
8049         * doc/TODO:
8050         * doc/busconfig.dtd:
8051         Add busconfig DTD.
8052         
8053 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8054
8055         * doc/dbus-specification.sgml:
8056         Add activation reply values.
8057         
8058 2003-08-05  Havoc Pennington  <hp@redhat.com>
8059
8060         * configure.in: 0.12
8061
8062 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8063
8064         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8065         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8066         (add_watch), (remove_watch), (create_source):
8067         Refcount fds, fixes some reentrancy issues.
8068         
8069 2003-07-30  Havoc Pennington  <hp@redhat.com>
8070
8071         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8072         bus address to be abstract if we have abstract sockets
8073
8074         * NEWS: update
8075
8076 2003-07-28  Havoc Pennington  <hp@redhat.com>
8077
8078         * bus/messagebus.in: fix to avoid processname/servicename 
8079         confusion, from Michael Kearey
8080         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8081         
8082 2003-07-23  Havoc Pennington  <hp@pobox.com>
8083
8084         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8085         fix from Andy Hanton to remove broken "+1"
8086
8087 2003-07-16  Havoc Pennington  <hp@pobox.com>
8088
8089         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8090         babysitter process, as suggested by Thomas Leonard, so 
8091         an "eval `dbus-launch --exit-with-session`" will actually 
8092         return
8093
8094 2003-07-16  Havoc Pennington  <hp@pobox.com>
8095
8096         * configure.in: print out EXPANDED_* variables in the summary at
8097         the end; clean up the code that computes EXPANDED_ variables and
8098         get the ones using exec_prefix right. Should make things work
8099         when you build without --prefix
8100
8101 2003-06-29  Havoc Pennington  <hp@pobox.com>
8102
8103         * mono/Test.cs (class Test): fire up a main loop and run it
8104
8105         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8106         done once, the app has to do it
8107
8108 2003-06-26  Havoc Pennington  <hp@pobox.com>
8109
8110         * mono/Connection.cs: set up connection with the glib main loop
8111
8112 2003-07-01  Havoc Pennington  <hp@redhat.com>
8113
8114         * doc/dbus-specification.sgml: clarify the format of a type code,
8115         change suggested by Jim Blandy
8116
8117 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8118
8119         * doc/Makefile.am:
8120         * tools/Makefile.am: Don't assume srcdir == builddir.
8121
8122         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8123         the allocated block.
8124         (_dbus_memory_test): New function.
8125         * dbus/dbus-test.h: Add _dbus_memory_test ().
8126         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8127
8128         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8129         of %c%c%c%c.
8130         (dbus_message_new): Remove obsolete @todo.
8131
8132         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8133         (_dbus_marshal_set_uint64): Fix comment.
8134
8135         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8136         hardcode FIELD_REPLY_SERIAL.
8137
8138         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8139         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8140
8141         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8142         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8143
8144 2003-06-24  Havoc Pennington  <hp@pobox.com>
8145
8146         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8147
8148 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8149
8150         * configure.in:
8151         * gcj/.cvsignore:
8152         * gcj/Hello.java:
8153         * gcj/Makefile.am:
8154         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8155         * gcj/org/.cvsignore:
8156         * gcj/org/Makefile.am:
8157         * gcj/org/freedesktop/.cvsignore:
8158         * gcj/org/freedesktop/Makefile.am:
8159         * gcj/org/freedesktop/dbus/.cvsignore:
8160         * gcj/org/freedesktop/dbus/Makefile.am:
8161         * gcj/org/freedesktop/dbus/Message.java: (Message),
8162         (Message.Message):
8163         * gcj/org/freedesktop/dbus/natMessage.cc:
8164         Fix the build system.
8165
8166 2003-06-22  Havoc Pennington  <hp@pobox.com>
8167
8168         * mono/Connection.cs: add more bindings
8169
8170         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8171         more than once.
8172
8173 2003-06-22  Havoc Pennington  <hp@pobox.com>
8174
8175         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8176         Start wrapping more stuff.
8177
8178 2003-06-22  Havoc Pennington  <hp@pobox.com>
8179
8180         * mono/Message.cs: implement Message.Wrap() that ensures we only
8181         have a single C# wrapper per DBusMessage, assuming it works which
8182         it probably doesn't.
8183
8184         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8185         (dbus_message_free_data_slot): new
8186         (dbus_message_set_data): new
8187         (dbus_message_get_data): new
8188
8189 2003-06-22  Havoc Pennington  <hp@pobox.com>
8190
8191         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8192         (_dbus_data_slot_allocator_alloc): rework these to keep a
8193         reference count on each slot and automatically manage a global
8194         slot ID variable passed in by address
8195
8196         * bus/bus.c: convert to new dataslot API
8197
8198         * dbus/dbus-bus.c: convert to new dataslot API
8199
8200         * dbus/dbus-connection.c: convert to new dataslot API
8201
8202         * dbus/dbus-server.c: convert to new dataslot API
8203
8204         * glib/dbus-gmain.c: ditto
8205
8206         * bus/test.c: ditto
8207
8208         * bus/connection.c: ditto
8209
8210 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8211
8212         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8213         after the gcj checks so that the correct configuration tags
8214         will be added to libtool.
8215
8216         * dbus-glib-1.pc.in: No need to specify any includes since
8217         dbus-1.pc.in has those.
8218
8219 2003-06-22  Havoc Pennington  <hp@pobox.com>
8220
8221         * mono/*, gcj/*, configure.in, Makefile.am:
8222         Check in makefiles and subdirs for mono and gcj bindings.
8223         Neither binding actually exists, just trying to get through
8224         all the build and other boring bits.
8225
8226 2003-06-21  Philip Blundell  <philb@gnu.org>
8227
8228         * tools/dbus-monitor.1: Updated.
8229
8230         * tools/dbus-send.1: Likewise.
8231
8232 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8233
8234         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8235         for hangup and error after checking read so we won't discard
8236         pending data if both hangup and read are set.
8237
8238 2003-06-19  Philip Blundell  <philb@gnu.org>
8239
8240         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8241
8242         * tools/dbus-send.c: Accept both --system and --session.
8243
8244         * tools/dbus-monitor.c: Same here.
8245
8246 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8247
8248         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8249         from C++ (Patch by Miloslav Trmac).
8250
8251 2003-06-15  Joe Shaw  <joe@assbarn.com>
8252
8253         * configure.in: Check for socklen_t.
8254
8255         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8256
8257         * test/test-segfault.c: Add #include <sys/time.h>
8258
8259         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8260         dbus-launch needs it.
8261
8262 2003-06-09  Havoc Pennington  <hp@redhat.com>
8263
8264         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8265         SUN_LEN, it breaks abstract socket usage
8266
8267         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8268         starts of lines.
8269
8270 2003-06-04  Havoc Pennington  <hp@pobox.com>
8271
8272         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8273         using unix:abstract=/foo, and when listening in a tmpdir
8274         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8275
8276         * dbus/dbus-transport.c (_dbus_transport_open): support
8277         unix:abstract=/foo
8278
8279         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8280         support abstract sockets
8281
8282         * dbus/dbus-transport-unix.c
8283         (_dbus_transport_new_for_domain_socket): support abstract sockets
8284
8285         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8286         toggle as an argument, implement abstract namespace support
8287         (_dbus_listen_unix_socket): ditto
8288
8289         * configure.in: add --enable-abstract-sockets and implement
8290         a configure check for autodetection of the right value.
8291
8292 2003-06-01  Havoc Pennington  <hp@pobox.com>
8293
8294         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8295         in /tmp (though on Linux this will end up being useless,
8296         when we add abstract namespace support)
8297
8298         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8299         subst'ing it
8300
8301 2003-05-28  Colin Walters  <walters@verbum.org>
8302
8303         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8304
8305 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8306
8307         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8308
8309 2003-05-17  Colin Walters  <walters@gnu.org>
8310
8311         * tools/dbus-send.c: Don't exit with an error code if --help was
8312         passed.  Default to using the session bus instead of the system
8313         one.
8314
8315         * tools/dbus-launch.c: Ditto.
8316
8317         * tools/dbus-monitor.c: Ditto.
8318
8319         * tools/dbus-send.1: Update with new arguments.
8320
8321         * tools/dbus-launch.c: Emit code to export variables.  New
8322         arguments -s and -c to specify shell syntax, and a bit of code to
8323         autodetect syntax.  Also, allow specifying a program to run.
8324
8325         * tools/dbus-launch.1: Update with new arguments.
8326
8327         * tools/dbus-send.1: Ditto.
8328
8329         * tools/dbus-monitor.1: Ditto.
8330
8331 2003-05-17  Havoc Pennington  <hp@pobox.com>
8332
8333         * bus/config-parser.c (merge_included): merge in policies from
8334         child configuration file.
8335
8336         * bus/policy.c (bus_policy_merge): function to merge two policies
8337         together
8338
8339 2003-05-16  Havoc Pennington  <hp@redhat.com>
8340
8341         * dbus/dbus-connection.c: disable verbose lock spew
8342
8343         * tools/dbus-send.c: add --print-reply command line option
8344
8345         * tools/dbus-print-message.h (print_message): new util function
8346         shared by dbus-send and dbus-monitor
8347
8348         * tools/dbus-monitor.c (handler_func): exit on disconnect
8349
8350         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8351         disconnected, don't try to use the read_watch
8352
8353         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8354         so we can find this bug more easily
8355
8356 2003-05-16  Havoc Pennington  <hp@redhat.com>
8357
8358         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8359         NULL as DBusHashTable is annoyingly likely to do.
8360
8361 2003-05-16  Colin Walters  <walters@verbum.org>
8362
8363         * tools/dbus-monitor.c: Add --session argument and usage()
8364         function.
8365
8366         * tools/dbus-monitor.1: Update with new --session arg.
8367
8368         * bus/Makefile.am (install-data-hook): Create
8369         $(libdir)/dbus-1.0/services so that the session bus is happy.
8370
8371 2003-05-15  Havoc Pennington  <hp@redhat.com>
8372
8373         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8374         on non-x86. ifdef's are evil.
8375
8376 2003-05-15  Havoc Pennington  <hp@redhat.com>
8377
8378         * configure.in: 0.11
8379
8380         * NEWS: update
8381
8382         * bus/Makefile.am (initddir): apparently we are supposed to put
8383         init scripts in /etc/rc.d/init.d not /etc/init.d
8384
8385         * bus/Makefile.am: remove the "you must --enable-tests to make
8386         check" as it broke distcheck
8387
8388         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8389
8390 2003-05-13  James Willcox  <jwillcox@gnome.org>
8391
8392         * configure.in:
8393         * bus/activation.c: (bus_activation_service_created),
8394         (bus_activation_activate_service):
8395         * bus/driver.c: (bus_driver_send_service_deleted),
8396         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8397         (bus_driver_send_service_acquired),
8398         (bus_driver_send_welcome_message),
8399         (bus_driver_handle_list_services):
8400         * bus/session.conf.in:
8401         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8402         (dbus_bus_service_exists), (dbus_bus_activate_service):
8403         * dbus/dbus-bus.h:
8404
8405         Add some convenience API which lets you activate a service, and did a
8406         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8407         and dbus_message_get_args()
8408
8409 2003-05-11  Havoc Pennington  <hp@pobox.com>
8410
8411         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8412         calling _dbus_marshal_validate_arg() for every byte in a byte
8413         array, etc.
8414
8415         * dbus/dbus-message-handler.c: use atomic reference counting to
8416         reduce number of locks slightly; the global lock in here sucks
8417
8418         * dbus/dbus-connection.c
8419         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8420         update_dispatch_status that can be called with lock held; then use
8421         in a couple places to reduce locking/unlocking
8422         (dbus_connection_send): hold the lock over the whole function
8423         instead of acquiring it twice.
8424
8425         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8426
8427         * bus/connection.c (bus_connections_setup_connection): fix access
8428         to already-freed memory.
8429
8430         * dbus/dbus-connection.c: keep a little cache of linked list
8431         nodes, to avoid using the global linked list alloc lock in the
8432         normal send-message case. Instead we just use the connection lock
8433         that we already have to take.
8434
8435         * dbus/dbus-list.c (_dbus_list_find_last): new function
8436
8437         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8438         change to use a struct for the atomic type; fix docs,
8439         they return value before increment, not after increment.
8440
8441         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8442         (_dbus_string_append_8_aligned): new functions to try to
8443         microoptimize this operation.
8444         (reallocate_for_length): break this out of set_length(), to
8445         improve profile info, and also so we can consider inlining the
8446         set_length() part.
8447
8448         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8449         strings with some preallocation, cuts down on our calls to realloc
8450         a fair bit. Though if we can get the "move entire string to empty
8451         string" optimization below to kick in here, it would be better.
8452
8453         * dbus/dbus-string.c (_dbus_string_move): just call
8454         _dbus_string_move_len
8455         (_dbus_string_move_len): add a special case for moving
8456         an entire string into an empty string; we can just
8457         swap the string data instead of doing any reallocs.
8458         (_dbus_string_init_preallocated): new function
8459
8460 2003-05-11  Havoc Pennington  <hp@pobox.com>
8461
8462         Write a "test-profile" that does echo client-server with threads;
8463         profile reveals lock contention, memcpy/realloc of buffers, and
8464         UTF-8 validation as hot spots. 20% of lock contention eliminated
8465         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8466         contention is global mempool locks for GList and DBusList.
8467
8468         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8469         x86 implementation
8470
8471         * dbus/dbus-connection.c (struct DBusConnection): use
8472         dbus_atomic_t for the reference count
8473
8474         * dbus/dbus-message.c (struct DBusMessage): declare
8475         dbus_atomic_t values as volatile
8476
8477         * configure.in: code to detect ability to use atomic integer
8478         operations in assembly, from GLib patch
8479
8480         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8481         time, tired of it being wrong in threads and forked processes
8482
8483         * glib/test-profile.c: a little program to bounce messages back
8484         and forth between threads and eat CPU
8485
8486         * dbus/dbus-connection.c: add debug spew macros for debugging
8487         thread locks; include config.h at top; fix deadlock in
8488         dbus_connection_flush()
8489
8490 2003-05-08  Havoc Pennington  <hp@pobox.com>
8491
8492         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8493         data from getting written, and there wasn't a good reason to
8494         use _exit really.
8495
8496         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8497         dbus_verbose lines in test coverage
8498         (main): add list of functions sorted by # of untested blocks
8499         to the coverage report
8500
8501         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8502
8503         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8504
8505         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8506         extend test coverage
8507
8508         * test/data/auth/cancel.auth-script: test canceling an
8509         authentication
8510
8511         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8512         aren't used. in CVS history if we end up needing them.
8513
8514 2003-05-04  Havoc Pennington  <hp@pobox.com>
8515
8516         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8517         unit test
8518
8519         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8520         function, which assumed length was in # of strings, not bytes
8521
8522         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8523         missing coverage
8524
8525         * dbus/dbus-connection.c
8526         (_dbus_connection_queue_received_message): disable function for
8527         now, we are only using it in test mode
8528
8529         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8530         remove a mistaken FIXME
8531
8532 2003-05-04  Havoc Pennington  <hp@pobox.com>
8533
8534         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8535         unlock mutex on successful return, patch from Anders Gustafsson
8536
8537 2003-05-04  Havoc Pennington  <hp@pobox.com>
8538
8539         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8540         Anders Gustafsson
8541
8542 2003-05-04  Havoc Pennington  <hp@pobox.com>
8543
8544         * tools/dbus-launch.c: implement
8545
8546         * bus/main.c (main), bus/bus.c (bus_context_new):
8547         implement --print-pid and --fork
8548
8549 2003-05-03  Havoc Pennington  <hp@redhat.com>
8550
8551         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8552         the address had no value, and add to test suite. Fix and
8553         regression test from Miloslav Trmac
8554
8555 2003-05-03  Havoc Pennington  <hp@pobox.com>
8556
8557         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8558         watch is invalid when handled
8559
8560         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8561         dbus-launch utility to launch the bus from a shell script.  Didn't
8562         actually implement dbus-launch yet, it's just a placeholder still.
8563
8564 2003-05-03  Havoc Pennington  <hp@pobox.com>
8565
8566         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8567         daemon; also documents daemon config file, so replaces
8568         doc/config-file.txt. Corrected some stuff from config-file.txt in
8569         the process of moving it.
8570
8571 2003-05-03  Havoc Pennington  <hp@pobox.com>
8572
8573         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8574         add some man pages
8575
8576 2003-05-03  Colin Walters  <walters@verbum.org>
8577
8578         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8579         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8580
8581         * Makefile.am: Update to use new .pc versioning scheme.
8582
8583 2003-05-02  Havoc Pennington  <hp@redhat.com>
8584
8585         * bus/system.conf.in: allow send/receive to/from message bus
8586         service
8587
8588 2003-04-30  Havoc Pennington  <hp@redhat.com>
8589
8590         * configure.in: print a note when building with unit tests and
8591         without assertions
8592
8593 2003-04-30  Havoc Pennington  <hp@redhat.com>
8594
8595         * Makefile.am: add a check-local that complains if you didn't
8596         configure with --enable-tests
8597
8598 2003-04-29  Havoc Pennington  <hp@redhat.com>
8599
8600         * glib/dbus-gmain.c: docs cleanups
8601
8602         * dbus/dbus-types.h: add docs on int64 types
8603
8604         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8605         public API docs section
8606
8607 2003-04-29  Havoc Pennington  <hp@redhat.com>
8608
8609         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8610         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8611         parallel install API version, not with the D-BUS package version.
8612
8613         * HACKING: move some of README over here
8614
8615         * README: updates, and document API/ABI policy
8616
8617         * configure.in: reindentation
8618
8619 2003-04-29  Havoc Pennington  <hp@redhat.com>
8620
8621         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8622         to use this library" to be sure people have the right
8623         expectations.
8624
8625 2003-04-28  Havoc Pennington  <hp@redhat.com>
8626
8627         * configure.in: add --enable-docs which by default is auto yes if
8628         doxygen and db2html found, no otherwise; but can be forced on/off
8629
8630         * doc/Makefile.am: conditionalize whether to build docs on
8631         --enable-docs
8632
8633 2003-04-28  Havoc Pennington  <hp@redhat.com>
8634
8635         * configure.in: 0.10
8636
8637         * NEWS: update
8638
8639         * bus/system.conf.in: add <includedir>system.d</includedir>
8640
8641         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8642         username was provided but not uid
8643
8644         * bus/config-parser.c (struct BusConfigParser): keep track of
8645         whether the parser is toplevel or was included; change some
8646         of the error handling if it's included.
8647
8648 2003-04-27  Havoc Pennington  <hp@pobox.com>
8649
8650         Unbreak my code...
8651
8652         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8653         report correct status if we finish processing authentication
8654         inside this function.
8655
8656         * bus/activation.c (try_send_activation_failure): use
8657         bus_transaction_send_error_reply
8658
8659         * bus/connection.c (bus_connection_get_groups): return an error
8660         explaining the problem
8661
8662         * bus/bus.c (bus_context_check_security_policy): implement
8663         restriction here that inactive connections can only send the
8664         hello message. Also, allow bus driver to send anything to
8665         any recipient.
8666
8667         * bus/connection.c (bus_connection_complete): create the
8668         BusClientPolicy here instead of on-demand.
8669         (bus_connection_get_policy): don't return an error
8670
8671         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8672         sender field in message being replied to
8673
8674         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8675         causing it to return FALSE always
8676
8677         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8678         we checked sender rather than destination
8679
8680 2003-04-25  Havoc Pennington  <hp@redhat.com>
8681
8682         test suite is slightly hosed at the moment, will fix soon
8683
8684         * bus/connection.c (bus_connections_expire_incomplete): fix to
8685         properly disable the timeout when required
8686         (bus_connection_set_name): check whether we can remove incomplete
8687         connections timeout after we complete each connection.
8688
8689         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8690         probably still broken.
8691
8692         * bus/services.c (bus_registry_acquire_service): implement max
8693         number of services owned, and honor allow/deny rules on which
8694         services a connection can own.
8695
8696         * bus/connection.c (bus_connection_get_policy): report errors here
8697
8698         * bus/activation.c: implement limit on number of pending
8699         activations
8700
8701 2003-04-25  Havoc Pennington  <hp@redhat.com>
8702
8703         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8704         where we used >= 0 instead of != DBUS_UID_UNSET.
8705
8706 2003-04-25  Havoc Pennington  <hp@redhat.com>
8707
8708         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8709         were toggled without add/remove, fix from Anders Gustafsson
8710
8711 2003-04-24  Havoc Pennington  <hp@redhat.com>
8712
8713         * test/data/valid-config-files/basic.conf: add <limit> tags to
8714         this test
8715
8716         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8717         <limit> tag in configuration file.
8718
8719 2003-04-24  Havoc Pennington  <hp@redhat.com>
8720
8721         * bus/dispatch.c: somehow missed some name_is
8722
8723         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8724         (_dbus_timeout_set_interval): new
8725
8726         * bus/connection.c (bus_connections_setup_connection): record time
8727         when each connection is first set up, and expire them after the
8728         auth timeout passes.
8729
8730 2003-04-24  Havoc Pennington  <hp@redhat.com>
8731
8732         * dbus/dbus-message.c (dbus_message_name_is): rename
8733         (dbus_message_service_is): rename
8734         (dbus_message_sender_is): rename
8735         (dbus_message_get_service): rename
8736
8737 2003-04-24  Havoc Pennington  <hp@redhat.com>
8738
8739         * configure.in: add --enable-checks
8740
8741         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8742
8743         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8744         to use thread locks.
8745         (_dbus_connection_handler_destroyed_locked): move some private
8746         functions into proper docs group
8747
8748         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8749         _dbus_return_val_if_fail
8750
8751         Throughout: use dbus_return_if_fail
8752
8753 2003-04-23  James Willcox  <jwillcox@gnome.org>
8754
8755         * glib/dbus-glib.h:
8756         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8757         (dbus_connection_setup_with_g_main),
8758         (dbus_server_setup_with_g_main):
8759         * glib/test-dbus-glib.c: (main):
8760         * glib/test-thread-client.c: (main):
8761         * glib/test-thread-server.c: (new_connection_callback), (main):
8762         * tools/dbus-monitor.c: (main):
8763
8764         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8765         and dbus_server_setup_with_g_main().
8766
8767 2003-04-20  Havoc Pennington  <hp@pobox.com>
8768
8769         * doc/dbus-specification.sgml: document the restrictions on
8770         message and service names
8771
8772 2003-04-22  Havoc Pennington  <hp@redhat.com>
8773
8774         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8775         support, and do some code cleanups to share more code and
8776         speed up array marshal/demarshal.
8777
8778         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8779
8780         * configure.in: generate dbus-arch-deps.h
8781
8782         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8783         64-bit typecodes
8784
8785 2003-04-22  Havoc Pennington  <hp@redhat.com>
8786
8787         * test/data/valid-messages/opposite-endian.message: fix test
8788         to use proper type for rply field
8789
8790         * test/data/invalid-messages: add tests for below validation
8791
8792         * dbus/dbus-message.c (decode_header_data): validate field types,
8793         and validate that named fields are valid names
8794         (decode_name_field): consider messages in the
8795         org.freedesktop.Local. namespace to be invalid.
8796
8797         * dbus/dbus-string.c (_dbus_string_validate_name): new
8798
8799 2003-04-19  Havoc Pennington  <hp@pobox.com>
8800
8801         * bus/driver.c (bus_driver_handle_hello): check limits and
8802         return an error if they are exceeded.
8803
8804         * bus/connection.c: maintain separate lists of active and inactive
8805         connections, and a count of each. Maintain count of completed
8806         connections per user. Implement code to check connection limits.
8807
8808         * dbus/dbus-list.c (_dbus_list_unlink): export
8809
8810         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8811         number of bytes in the message queue for a connection
8812
8813 2003-04-18  Havoc Pennington  <hp@pobox.com>
8814
8815         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8816
8817         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8818         memleaks
8819
8820         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8821         on realloc be sure to update the pointer in the keyring
8822
8823         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8824         offset to avoid writing to unallocated memory
8825
8826         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8827         try the next mechanism, so we properly handle OOM
8828
8829         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8830         on OOM.
8831         (_dbus_keyring_new): fix OOM bug
8832         (_dbus_keyring_new_homedir): always set error; impose a maximum
8833         number of keys we'll load from the file, mostly to speed up the
8834         test suite and make its OOM checks more useful, but also for
8835         general sanity.
8836
8837         * dbus/dbus-auth.c (process_error_server): reject authentication
8838         if we get an error from the client
8839         (process_cancel): on cancel, send REJECTED, per the spec
8840         (process_error_client): send CANCEL if we get an error from the
8841         server.
8842
8843 2003-04-18  Havoc Pennington  <hp@pobox.com>
8844
8845         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8846         debug spew
8847
8848         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8849         handling problem
8850
8851         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8852         about DBUS_TEST_HOMEDIR once
8853
8854         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8855         the environment
8856
8857         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8858         config file so we test the right thing
8859
8860         Throughout: assorted docs improvements
8861
8862 2003-04-18  Havoc Pennington  <hp@pobox.com>
8863
8864         * glib/dbus-gmain.c: adapt to watch changes
8865
8866         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8867
8868         * dbus/dbus-server.h: remove dbus_server_handle_watch
8869
8870         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8871
8872         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8873         like DBusTimeout, so we don't need dbus_connection_handle_watch
8874         etc.
8875
8876 2003-04-17  Havoc Pennington  <hp@redhat.com>
8877
8878         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8879         database usage so it all goes via the DBusUserDatabase cache.
8880
8881 2003-04-17  Havoc Pennington  <hp@redhat.com>
8882
8883         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8884         there was an OOM watch we skipped, we always return TRUE so we
8885         iterate again to have a look at it again. Fixes test suite hang.
8886         Code rearrangement also lets us lose some memset and only iterate
8887         over callbacks once.
8888
8889         * bus/driver.c (bus_driver_handle_message): sense of test for
8890         reply was backward
8891
8892 2003-04-16  Havoc Pennington  <hp@pobox.com>
8893
8894         * doc/dbus-specification.sgml: make spec say serials are unsigned
8895
8896         * dbus/dbus-message.h: change message serials to unsigned
8897
8898         * dbus/dbus-connection.c: adapt to message serials being unsigned
8899
8900 2003-04-15  Havoc Pennington  <hp@pobox.com>
8901
8902         * bus/bus.c: create and keep around a shared DBusUserDatabase
8903         object.
8904
8905         * bus/connection.c (bus_connection_get_groups): don't cache
8906         groups for user in the connection object, since user database
8907         object now does that.
8908
8909 2003-04-16  Havoc Pennington  <hp@redhat.com>
8910
8911         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8912         list of size counters
8913         (_dbus_message_loader_putback_message_link): put back a popped link
8914
8915         * dbus/dbus-connection.c
8916         (dbus_connection_set_max_live_messages_size): rename
8917         max_received_size
8918         (dbus_connection_get_outgoing_size): get size of outgoing
8919         queue
8920         (_dbus_connection_set_connection_counter): remove this cruft
8921
8922 2003-04-14  Havoc Pennington  <hp@redhat.com>
8923
8924         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8925         caching, but at some point we might want to be able to use a
8926         different database.
8927
8928         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8929         SHA1 conf file to test the sha1 auth mechanism, since the regular
8930         test always uses EXTERNAL when available.
8931
8932         * configure.in,
8933         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8934         add conf file that requires use of sha1 auth
8935
8936 2003-04-13  Havoc Pennington  <hp@pobox.com>
8937
8938         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8939         from Philip Blundell to send messages and monitor them.
8940
8941 2003-04-13  Havoc Pennington  <hp@pobox.com>
8942
8943         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8944         callbacks
8945
8946         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8947         users
8948
8949         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8950         fix to only recover unused bytes if we're already authenticated
8951         (_dbus_transport_get_is_authenticated): fix to still mark us
8952         authenticated if there are unused bytes.
8953
8954         * bus/dispatch.c: implement security policy checking
8955
8956         * bus/connection.c (bus_transaction_send_from_driver): new
8957
8958         * bus/bus.c (bus_context_check_security_policy): new
8959
8960         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8961         now we just set the DBusError and it gets converted to an error
8962         reply.
8963
8964         * bus/connection.c (allow_user_function): enable code using actual
8965         data from the config file
8966
8967         * bus/policy.c (list_allows_user): handle wildcard rules for
8968         user/group connection perms
8969
8970 2003-04-13  Havoc Pennington  <hp@pobox.com>
8971
8972         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8973
8974         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8975
8976         * bus/policy.c (bus_policy_append_mandatory_rule)
8977         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8978         (bus_policy_append_group_rule): new functions
8979
8980 2003-04-12  Havoc Pennington  <hp@pobox.com>
8981
8982         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8983
8984         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8985         the pid/gid/uid, just for paranoia.
8986
8987         * test/break-loader.c (randomly_do_n_things): find a byte
8988         containing a type code, and randomly change it to a different
8989         type code.
8990
8991 2003-04-12  Havoc Pennington  <hp@pobox.com>
8992
8993         * bus/policy.h: change BusPolicy to be the thing from the config
8994         file, and rename old BusPolicy to BusClientPolicy
8995
8996         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8997         match change in how policy works
8998
8999         * dbus/dbus-internals.h: mark assert_not_reached as
9000         __attribute((noreturn))__
9001
9002 2003-04-11  Havoc Pennington  <hp@redhat.com>
9003
9004         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9005         the broadcast service. Use boolean return for ServiceExists.
9006
9007 2003-04-11  Havoc Pennington  <hp@redhat.com>
9008
9009         * configure.in: add another directory to look for qt in.
9010
9011 2003-04-11  Havoc Pennington  <hp@redhat.com>
9012
9013         * AUTHORS: add Colin Walters
9014
9015 2003-04-11  Havoc Pennington  <hp@redhat.com>
9016
9017         * NEWS: update
9018
9019         * configure.in: 0.9
9020
9021 2003-04-11  Havoc Pennington  <hp@redhat.com>
9022
9023         * bus/messagebus.in: remove pid file when stopping the
9024         message bus, since the bus won't have privileges to remove it
9025         itself.
9026
9027 2003-04-11  Havoc Pennington  <hp@redhat.com>
9028
9029         * bus/bus.c (bus_context_new): move credentials change after
9030         creating pidfile
9031
9032 2003-04-11  Havoc Pennington  <hp@pobox.com>
9033
9034         * test/decode-gcov.c: add "below average functions" to the
9035         coverage report, and change how some of the code works.
9036
9037         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9038         not in the coverage stats.
9039
9040         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9041         couple places so running the test suite doesn't result in megaspam.
9042
9043 2003-04-11  Havoc Pennington  <hp@pobox.com>
9044
9045         * bus/dispatch.c (check_existent_service_activation): accept a no
9046         memory error in a place we didn't before
9047
9048         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9049         in case the first one failed," since the test suite is less
9050         broken now.
9051
9052 2003-04-10  Havoc Pennington  <hp@pobox.com>
9053
9054         * bus/dispatch.c (check_segfault_service_activation): add test
9055         for launching an executable that just crashes.
9056
9057         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9058         don't leave a million cores. We'll see how portable this is.
9059
9060 2003-04-10  Havoc Pennington  <hp@pobox.com>
9061
9062         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9063         the possible parent failures before we fork, so that we don't
9064         fail to create a babysitter after creating the child.
9065
9066         * bus/activation.c (bus_activation_activate_service): kill child
9067         if we don't successfully complete the activation.
9068
9069 2003-04-10  Havoc Pennington  <hp@redhat.com>
9070
9071         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9072         the connection if it's disconnected
9073
9074         * bus/activation.c (bus_activation_service_created): use new
9075         transaction features to roll back removal of pending activation if
9076         we don't successfully create the service after all. Don't remove
9077         pending activation if the function fails.
9078
9079         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9080         (_dbus_list_insert_after_link): new code to facilitate
9081         services.c fixes
9082
9083         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9084         new functionality, so we can preallocate the ability to insert
9085         into a hash table.
9086
9087         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9088         allowing us to put custom hooks in a transaction to be used for
9089         cancelling said transaction
9090
9091         * doc/dbus-specification.sgml: add some discussion of secondary
9092         service owners, and disallow zero-length service names
9093
9094         * bus/services.c (bus_registry_acquire_service): new function,
9095         splits out part of bus_driver_handle_acquire_service() and fixes
9096         a bug where we didn't remove the service doing the acquiring
9097         from the secondary queue if we failed to remove the current owner
9098         from the front of the queue.
9099
9100 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9101
9102         * doc/dbus-specification.sgml:
9103         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9104
9105 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9106
9107         * bus/.cvsignore:
9108         * glib/.cvsignore:
9109         * test/.cvsignore:
9110         Added files to cvsignore
9111
9112         * dbus/dbus-message.h:
9113         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9114         Make get_named() take two out argument and return a boolean.
9115         (dbus_message_iter_get_args_valist):
9116         Update usage of get_named().
9117         (dbus_message_iter_append_byte):
9118         Fix typo
9119         (dbus_message_iter_append_named)
9120         Fix typo
9121         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9122         More tests.
9123
9124 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9125
9126         * dbus/dbus-marshal.[ch]:
9127         Add array_type_pos argument to _dbus_marshal_validate_arg.
9128         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9129
9130         * dbus/dbus-message.[ch]:
9131         Multi-dimensional arrays have full type specification in the
9132         outermost array. Iter code re-arranged to handle this.
9133         Added some more iter tests.
9134
9135         * doc/dbus-specification.sgml:
9136         Add me to authors.
9137         Remove old FIXME.
9138         Update new array encoding description.
9139         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9140
9141         * test/data/invalid-messages/array-with-mixed-types.message:
9142         * test/data/valid-messages/array-of-array-of-uint32.message:
9143         Change to the new array format.
9144
9145         * test/data/invalid-messages/too-short-dict.message:
9146         Fix bug in test.
9147
9148         * test/data/valid-messages/recursive-types.message:
9149         Fix up and extend test.
9150
9151 2003-04-10  Havoc Pennington  <hp@pobox.com>
9152
9153         * bus/dispatch.c: lots of fixes
9154
9155         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9156         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9157         that was crack, broke the test service.
9158
9159         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9160         handling to avoid piling up errors if we get a failure on the
9161         first address.
9162
9163         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9164         pid in assertion failures.
9165
9166         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9167         to some fixed size of file descriptor array. Don't return TRUE
9168         anytime a timeout exists, that led to lots of busy loop silliness
9169         in the tests.
9170
9171 2003-04-09  Havoc Pennington  <hp@redhat.com>
9172
9173         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9174         I'd checked this in earlier but hadn't.
9175
9176 2003-04-09  Havoc Pennington  <hp@redhat.com>
9177
9178         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9179         the activation test (man this is getting old!)
9180
9181 2003-04-09  Havoc Pennington  <hp@redhat.com>
9182
9183         * test/test-utils.c: use dispatch status function to fix this up
9184
9185         * bus/connection.c (connection_watch_callback): don't dispatch
9186         from here
9187         (connection_timeout_callback): don't dispatch from here
9188         (bus_connections_setup_connection): set the dispatch status function
9189         (bus_connection_disconnected): unset it
9190
9191         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9192         used to add a connection to be dispatched
9193         (_dbus_loop_iterate): do the dispatching at the end of each
9194         iteration
9195
9196         * dbus/dbus-connection.c
9197         (dbus_connection_set_dispatch_status_function): new function
9198         allowing us to fix up main loop usage
9199         (_dbus_connection_last_unref): free all the various function
9200         user data
9201         (dbus_connection_dispatch): call the DispatchStatusFunction
9202         whenever this function returns
9203         (dbus_connection_handle_watch): call DispatchStatusFunction
9204         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9205         (reply_handler_timeout): call DispatchStatusFunction
9206         (dbus_connection_flush): call DispatchStatusFunction
9207
9208 2003-04-09  Havoc Pennington  <hp@redhat.com>
9209
9210         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9211         a memory leak
9212
9213         * bus/dispatch.c (check_service_activated): fix bug in test
9214
9215         * dbus/dbus-mainloop.c (check_timeout): fix this up
9216
9217         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9218         verbose output so we can sort out output from different processes,
9219         e.g. in the activation case.
9220
9221 2003-04-08  Colin Walters  <walters@gnu.org>
9222
9223         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9224         the pid file.
9225         (bus_context_new): Set it.
9226         (bus_context_unref): Use it to delete the pid file.
9227
9228 2003-04-08  Havoc Pennington  <hp@redhat.com>
9229
9230         * test/data/invalid-messages/array-with-mixed-types.message:
9231         regression test that fails for the moment
9232
9233         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9234         tests for convenience
9235
9236         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9237         array of nil, it broke things.
9238
9239         * test/data/invalid-messages/array-of-nil.message: regression test
9240
9241         * test/data/valid-messages/array-of-array-of-uint32.message:
9242         happened to write this so added it to suite
9243
9244 2003-04-08  Havoc Pennington  <hp@redhat.com>
9245
9246         * bus/driver.c (bus_driver_handle_acquire_service): init
9247         retval/reply before checking name
9248
9249         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9250         recursion depth argument
9251
9252         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9253         in the public struct for future extension
9254
9255         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9256         typo
9257
9258         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9259         message
9260
9261         * doc/dbus-specification.sgml: fix typo
9262
9263 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9264
9265         Implemented recursive types, named types and new-style iters
9266
9267         * bus/driver.c:
9268         * glib/test-thread-client.c: (thread_func):
9269         * glib/test-thread-server.c: (handle_test_message):
9270         * test/test-service.c: (handle_echo):
9271         Update to new api
9272
9273         * dbus/Makefile.am:
9274         * dbus/dbus-dict.c:
9275         * dbus/dbus-dict.h:
9276         * dbus/dbus.h
9277         Remove DBusDict
9278
9279         * dbus/dbus-internals.c: (_dbus_type_to_string):
9280         Update for new types.
9281
9282         * dbus/dbus-marshal.[ch]:
9283         Implement recursive types and the new marshalling format.
9284         Remove hardcoded dict marshalling.
9285         Marshal named types.
9286
9287         * dbus/dbus-message-builder.c:
9288         Add BYTE_ARRAY.
9289         Remove references to old types
9290
9291         * dbus/dbus-message.[ch]:
9292         New non-refcounted iter API that supports recursive iters.
9293         Use iters for appending, including support for recursive
9294         iters.
9295         Add byte and named type support.
9296         Update everything to new marshalling formats.
9297         Add tests for new API.
9298
9299         * dbus/dbus-protocol.h:
9300         Remove old array types.
9301         Add types: BYTE, ARRAY, DICT, NAMED
9302
9303         * dbus/dbus-string.c:
9304         * dbus/dbus-sysdeps.c:
9305         Make parse_double locale safe.
9306
9307         * dbus/dbus-test-main.c:
9308         Call setlocale.
9309
9310         * dbus/dbus-test.c:
9311         Kill dict test
9312
9313         * doc/dbus-specification.sgml:
9314         Update spec
9315
9316         * test/data/incomplete-messages/missing-body.message:
9317         * test/data/invalid-messages/bad-boolean.message:
9318         * test/data/invalid-messages/bad-boolean-array.message:
9319         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9320         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9321         * test/data/invalid-messages/too-short-dict.message:
9322         * test/data/valid-messages/dict-simple.message:
9323         * test/data/valid-messages/dict.message:
9324         * test/data/valid-messages/emptiness.message:
9325         * test/data/valid-messages/lots-of-arguments.message:
9326         * test/data/valid-messages/no-padding.message:
9327         * test/data/valid-messages/recursive-types.message:
9328         Add missing NAME fields
9329         Fix up dicts & arrays
9330
9331         * test/data/invalid-messages/dict-with-nil-value.message:
9332         Removed, this is not invalid anymore.
9333
9334         * test/data/valid-messages/recursive-types.message:
9335         Add new test for deeply recursive types.
9336
9337 2003-04-07  Havoc Pennington  <hp@pobox.com>
9338
9339         * bus/driver.c (bus_driver_handle_acquire_service): return an
9340         error if you try to acquire a service that starts with ':'
9341
9342 2003-04-07  Havoc Pennington  <hp@redhat.com>
9343
9344         * doc/dbus-specification.sgml: require that base service names
9345         start with ':' and that the base service is created/deleted
9346         as first and last things a connection does on the bus
9347
9348         * bus/dispatch.c (check_existent_service_activation): lots more
9349         work on the activation test; it doesn't fully pass yet...
9350
9351         * test/test-service.c (main): fix so we don't memleak the
9352         connection to the message bus
9353         (filter_func): accept a message asking us to exit
9354
9355 2003-04-06  Havoc Pennington  <hp@pobox.com>
9356
9357         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9358         from Colin Walters
9359
9360         * configure.in: fixes to Qt detection from Colin Walters
9361
9362         * doc/Makefile.am: Only remove generated docbook dirs if they
9363         exist, from Colin Walters
9364
9365         * dbus/dbus-bus.c: change how we set well-known connections to
9366         NULL, so that it works if a single connection is stored in
9367         two well-known array slots.
9368
9369         * test/Makefile.am: remove a lot of stuff that isn't immediately
9370         useful, it's in CVS history if we want it.
9371
9372         * test/test-service.c: use dbus-mainloop instead of that
9373         watch.[hc] crack
9374
9375 2003-04-06  Havoc Pennington  <hp@pobox.com>
9376
9377         * dbus/Makefile.am: split lists of sources into stuff that goes in
9378         the library, util functions that go in the lib and are also used
9379         elsewhere, and util functions that are used in tests/daemon but
9380         don't go in the lib.
9381
9382         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9383         here so it can be used in test binaries also
9384
9385 2003-04-06  Havoc Pennington  <hp@pobox.com>
9386
9387         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9388         here in the parent process, so we can return an error if it
9389         fails. Also, move some of the code into the child so the parent
9390         is less hosed if we fail midway through.
9391
9392         * bus/bus.c (bus_context_new): move pidfile detection further up
9393         in the function, before we start overwriting sockets and such.
9394
9395         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9396
9397         * configure.in: add --with-system-pid-file and --with-system-socket
9398
9399 2003-04-06  Colin Walters  <walters@verbum.org>
9400
9401         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9402
9403         * bus/system.conf.in: Declare a pidfile.
9404
9405         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9406         create one (if appropriate).
9407
9408         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9409         (struct BusConfigParser) [pidfile]: New.
9410         (element_type_to_name, merge_included, start_busconfig_child)
9411         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9412         (bus_config_parser_unref): Free it.
9413         (bus_config_parser_get_pidfile): New function.
9414
9415         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9416
9417         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9418
9419         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9420
9421         * dbus/dbus-sysdeps.h: Prototype it.
9422
9423 2003-04-06  Havoc Pennington  <hp@pobox.com>
9424
9425         * bus/bus.c (bus_context_new): print the address in here, rather
9426         than in main(), because we need to do it before forking the daemon
9427
9428         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9429         on the service nonexistent error
9430
9431         * bus/driver.c (bus_driver_handle_acquire_service): set the
9432         sender on the AcquireService reply
9433
9434         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9435         server also listen on a UNIX socket so services can connect to it.
9436
9437 2003-04-06  Havoc Pennington  <hp@pobox.com>
9438
9439         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9440         so it detects deadlocks and also we actually init threads when
9441         debugging.
9442
9443 2003-04-06  Havoc Pennington  <hp@pobox.com>
9444
9445         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9446         save the domain socket name, and unlink it when we disconnect the
9447         server. Means that at least when we exit normally, we won't leave
9448         a bunch of junk in /tmp
9449
9450         * dbus/dbus-transport-unix.c
9451         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9452         memory management). (I was making a real change here but then
9453         didn't)
9454
9455 2003-04-06  Havoc Pennington  <hp@pobox.com>
9456
9457         * bus/bus.c (bus_context_new): fix wrong handling of
9458         server_data_slot_unref() in the error case.
9459
9460         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9461         "(condition) != 0" to _dbus_real_assert so that
9462         "_dbus_assert (pointer)" doesn't cause a warning
9463
9464         * bus/main.c (main): accept --print-address option to print out
9465         the message bus address
9466
9467         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9468
9469         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9470         "tmpdir" option to unix: address on client side
9471
9472         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9473         to unix: address
9474
9475         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9476         we can use to create sockets in the test suite.
9477
9478         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9479         cleanly. To be used for testing.
9480
9481         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9482
9483         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9484
9485         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9486         handle trying to call this when there's no servers active
9487
9488 2003-04-05  Havoc Pennington  <hp@pobox.com>
9489
9490         * NEWS: update
9491
9492         * configure.in: 0.8
9493
9494 2003-04-05  Havoc Pennington  <hp@pobox.com>
9495
9496         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9497         crash on startup. Need to get "try starting the daemon"
9498         in the test suite I guess. ;-)
9499
9500         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9501         tracked the number of open connections; it's better done in
9502         application-specific code as you want it to span all servers etc.
9503
9504 2003-04-05  Havoc Pennington  <hp@pobox.com>
9505
9506         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9507         patch from Colin Walters
9508
9509 2003-04-05  Havoc Pennington  <hp@pobox.com>
9510
9511         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9512         reality; in fact multiple mechanisms are allowed.
9513
9514         * dbus/dbus-internals.c (_dbus_real_assert)
9515         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9516         _dbus_assert_not_reached() into functions, so that they don't show
9517         up in basic block counts for test coverage, and don't use up as
9518         much disk space. Does mean slower execution speed though, so
9519         assumes --disable-asserts is the normal production case.
9520
9521 2003-04-05  Havoc Pennington  <hp@pobox.com>
9522
9523         * test/Makefile.am (dist-hook): also dist *.in files
9524
9525         * NEWS: update
9526
9527         * configure.in: 0.7
9528
9529 2003-04-05  Havoc Pennington  <hp@pobox.com>
9530
9531         * dbus/dbus-string.c: docs warning
9532
9533         * dbus/dbus-spawn.c: missing docs
9534
9535         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9536
9537 2003-04-05  Havoc Pennington  <hp@pobox.com>
9538
9539         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9540         magic from GLib
9541
9542         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9543         to -1 once we've reaped the babysitter
9544         (_dbus_babysitter_handle_watch): do as much work as we can, not
9545         just one go of it
9546
9547         * bus/activation.c: add code using DBusBabysitter so that we
9548         handle it when a service fails to start up properly.
9549         (bus_activation_service_created): don't remove the activation
9550         entries as we go, just let them get removed when we free the pending
9551         activation. Unref reply messages after sending them.
9552
9553 2003-04-05  Havoc Pennington  <hp@pobox.com>
9554
9555         * test/decode-gcov.c (main): print per-directory stats in the report
9556
9557         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9558
9559 2003-04-05  Havoc Pennington  <hp@pobox.com>
9560
9561         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9562
9563         * test/decode-gcov.c: hack up a little program to suck data
9564         out of gcov files. Yes this is sort of silly.
9565
9566         * configure.in: define something in config.h and do an
9567         AM_CONDITIONAL when gcov is enabled
9568
9569 2003-04-04  Havoc Pennington  <hp@redhat.com>
9570
9571         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9572         return a "babysitter" object that is used to monitor the status of
9573         the spawned process and reap it when required.
9574
9575         * test/test-segfault.c, test/test-exit.c,
9576         test/test-sleep-forever.c: binaries that do various lame things,
9577         used in the test suite.
9578
9579         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9580
9581 2003-04-03  Havoc Pennington  <hp@pobox.com>
9582
9583         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9584         in preparation for modifying it, dbus-sysdeps is getting
9585         a bit unmanageable.
9586
9587 2003-04-03  Havoc Pennington  <hp@redhat.com>
9588
9589         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9590         have multiple ones
9591
9592         * bus/*.[hc]: adapt to mainloop change
9593
9594 2003-04-03  Havoc Pennington  <hp@redhat.com>
9595
9596         * bus/activation.c (load_directory): fix up memleaks
9597         (bus_activation_entry_free): free the entry
9598
9599         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9600         we get one from the message bus; fix memleaks.
9601
9602         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9603
9604 2003-04-03  Havoc Pennington  <hp@pobox.com>
9605
9606         * bus/config-parser.c (bus_config_parser_unref): free
9607         list of mechanisms, bug discovered by test suite enhancements
9608         (putting system.conf and session.conf into suite)
9609
9610         * test/Makefile.am, test/test-service.c: add placeholder for a
9611         test service that we'll activate as part of test suite. Doesn't
9612         do anything yet.
9613
9614         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9615         setting NULL value, and use system malloc not dbus_malloc()
9616         when we have unavoidable memleakage.
9617
9618         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9619         didn't work, and support DBUS_BUS_ACTIVATION.
9620
9621         * bus/activation.c (child_setup): pass our well-known bus type to
9622         the child
9623
9624         * bus/config-parser.c: support <type> to specify well-known type
9625
9626         * doc/dbus-specification.sgml: document the env variables to
9627         locate well-known buses and find service activator
9628
9629 2003-04-02  Havoc Pennington  <hp@redhat.com>
9630
9631         * test/Makefile.am (all-local): add a rule to copy tests to
9632         builddir, so we can have generated tests. Use this to remove the
9633         silly hack for testing system.conf and session.conf. Will use this
9634         shortly to generate .service files pointing to test binaries.
9635
9636 2003-04-02  Havoc Pennington  <hp@redhat.com>
9637
9638         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9639         current alloc and needed new length, not max of the doubled
9640         allocation and needed new length. Also, when building tests,
9641         don't do the double-allocation stuff, just realloc every time.
9642
9643 2003-04-02  Havoc Pennington  <hp@redhat.com>
9644
9645         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9646         in error messages
9647         (_dbus_string_get_dirname): new
9648         (_dbus_sysdeps_test): new
9649         (_dbus_directory_open): include dirnames in error messages
9650
9651         * bus/config-parser.c: interpret <include> and <includedir> and
9652         <servicedir> relative to config file location if the given
9653         filename is not absolute.
9654
9655         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9656
9657 2003-04-02  Havoc Pennington  <hp@redhat.com>
9658
9659         * bus/connection.c (bus_transaction_send_error_reply): set sender
9660         service for the error, and unref the reply on success
9661
9662         * bus/activation.c: convert to use BusTransaction so OOM can be
9663         handled correctly
9664         (bus_activation_service_created): set sender of the message
9665
9666 2003-04-01  Havoc Pennington  <hp@redhat.com>
9667
9668         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9669         <includedir> (at least mostly)
9670
9671         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9672         first, then the user ID
9673
9674 2003-04-01  Havoc Pennington  <hp@pobox.com>
9675
9676         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9677         function
9678
9679         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9680
9681         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9682
9683         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9684         socket 0777, and unlink any existing socket.
9685
9686         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9687         the configuration file so specifies; set up auth mechanism
9688         restrictions
9689
9690         * bus/config-parser.c (bus_config_parser_content): add support
9691         for <fork> option and fill in code for <auth>
9692
9693         * bus/system.conf.in: add <fork/> to default configuration,
9694         and limit auth mechanisms to EXTERNAL
9695
9696         * doc/config-file.txt (Elements): add <fork>
9697
9698         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9699         (_dbus_change_identity): new function
9700
9701 2003-03-31  Havoc Pennington  <hp@redhat.com>
9702
9703         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9704         (_dbus_listen_unix_socket): fix off-by-one error in null
9705         termination spotted by Nalin
9706
9707 2003-03-31  Havoc Pennington  <hp@redhat.com>
9708
9709         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9710         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9711         having a real home directory available.
9712
9713 2003-03-31  Havoc Pennington  <hp@redhat.com>
9714
9715         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9716
9717         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9718
9719         * configure.in: add support for specifying a style of init script
9720         to install
9721
9722 2003-03-31  Havoc Pennington  <hp@redhat.com>
9723
9724         Fix some annoying DBusString API and fix all affected code.
9725
9726         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9727         max_length argument
9728         (_dbus_string_get_data): change to return string instead of using
9729         an out param
9730         (_dbus_string_get_const_data): ditto
9731         (_dbus_string_get_data_len): ditto
9732         (_dbus_string_get_const_data_len): ditto
9733
9734 2003-03-31  Havoc Pennington  <hp@redhat.com>
9735
9736         * bus/main.c (main): fix up the command line arguments to be nicer
9737
9738 2003-03-31  Havoc Pennington  <hp@redhat.com>
9739
9740         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9741         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9742         final location that lands in the config file
9743
9744         * bus/config-loader-expat.c (bus_config_load): fix type of
9745         XML_Parser variable
9746
9747         * doc/TODO: remove TODO item for dbus_bus_get()
9748
9749         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9750
9751 2003-03-31  Havoc Pennington  <hp@pobox.com>
9752
9753         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9754         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9755         argument since they are always client side
9756
9757         * dbus/dbus-server.c (dbus_server_get_address): new function
9758
9759         * bus/main.c (main): take the configuration file as an argument.
9760
9761         * test/data/valid-config-files/debug-allow-all.conf: new file to
9762         use with dispatch.c tests for example
9763
9764         * bus/test-main.c (main): require test data dir
9765
9766         * bus/bus.c (bus_context_new): change this to take a
9767         configuration file name as argument
9768
9769         * doc/config-file.txt (Elements): add <servicedir>
9770
9771         * bus/system.conf, bus/session.conf: new files
9772
9773         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9774         well-known socket if none set
9775
9776         * configure.in: create system.conf and session.conf
9777
9778 2003-03-30  Havoc Pennington  <hp@pobox.com>
9779
9780         * bus/config-parser.c: hacking
9781
9782         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9783         to shut down, since it could cause weirdness with the DBusList
9784         lock
9785
9786         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9787         link-oriented stack routines
9788         (alloc_link): free the mempool if the first alloc from it fails
9789
9790         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9791
9792         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9793         from GLib
9794         (_dbus_string_skip_white): new
9795
9796         * doc/config-file.txt (Elements): add <includedir>
9797
9798 2003-03-28  Havoc Pennington  <hp@pobox.com>
9799
9800         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9801         (_dbus_string_copy_data): new functions
9802
9803 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9804
9805         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9806         * dbus/dbus-bus.h:
9807         Add dbus_bus_get.
9808
9809         * dbus/dbus-memory.c:
9810         Fix a doc comment.
9811
9812 2003-03-28  Havoc Pennington  <hp@pobox.com>
9813
9814         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9815         I think it may have just been superstition. Not sure.
9816
9817         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9818         failures that were not being handled.
9819
9820         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9821
9822         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9823         row that will fail on out-of-memory.
9824
9825         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9826         function for testing out-of-memory handling.
9827
9828         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9829         allocation functions, they do map exactly to the expat ones.
9830
9831 2003-03-27  Havoc Pennington  <hp@redhat.com>
9832
9833         * bus/config-loader-libxml.c (bus_config_load): add another error
9834         check
9835
9836 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9837
9838         * doc/TODO:
9839         Add note about automatic service activation.
9840
9841         * doc/dbus-specification.sgml:
9842         Rename the specification and clarify a few things.
9843
9844 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9845
9846         * Doxyfile.in:
9847         * dbus/dbus-address.c:
9848         * dbus/dbus-dict.c:
9849         * dbus/dbus-marshal.c:
9850         * dbus/dbus-server-debug-pipe.c:
9851         * dbus/dbus-transport-unix.c:
9852         Fix documentation warnings.
9853
9854 2003-03-26  Havoc Pennington  <hp@pobox.com>
9855
9856         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9857         after every test so it's quick and easy to see which leaked, and
9858         so we test multiple dbus_shutdown() calls
9859
9860         * configure.in: change configure.in XML stuff to also support
9861         expat
9862
9863         * config-loader-libxml.c: some hacking
9864
9865         * config-loader-expat.c: some hacking
9866
9867         * config-parser.c: some hacking, plus tests
9868
9869 2003-03-25  Havoc Pennington  <hp@redhat.com>
9870
9871         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9872
9873         * configure.in: add --with-xml option to specify XML library,
9874         right now only libxml is supported.
9875
9876         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9877         nonworking code between home and work, still just stubs
9878
9879 2003-03-24  Havoc Pennington  <hp@redhat.com>
9880
9881         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9882         file
9883
9884         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9885         NULL argument for "message" if the error is a well-known one,
9886         fill in a generic message in this case.
9887
9888         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9889         favor of DBusError
9890
9891         * bus/test.c (bus_test_flush_bus): add
9892
9893         * bus/policy.c (bus_policy_test): test code stub
9894
9895 2003-03-24  Havoc Pennington  <hp@pobox.com>
9896
9897         * bus/connection.c (bus_connections_setup_connection): set up
9898         the "can this user connect" function, but it always returns
9899         TRUE until we have a config file parser so we can have a config
9900         file that allows connections.
9901
9902 2003-03-23  Havoc Pennington  <hp@pobox.com>
9903
9904         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9905         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9906         the mutex, so we can check for proper memory management
9907         and OOM handling.
9908
9909         * dbus/dbus-dataslot.c: remove the mutex from
9910         DBusDataSlotAllocator and lock it manually when using it,
9911         to simplify fitting it into the global slots framework.
9912
9913         * dbus/dbus-threads.c (init_static_locks): rework how we're
9914         handling global locks so they are easily shut down.
9915
9916         * bus/policy.c (bus_policy_append_rule): fix
9917
9918         * bus/test-main.c (main): check for memleaks
9919
9920         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9921         test suite check for memleaks
9922
9923         * dbus/dbus-memory.c: add support in test mode for tracking
9924         number of outstanding blocks
9925
9926 2003-03-23  Havoc Pennington  <hp@pobox.com>
9927
9928         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9929         policies code
9930
9931         * dbus/dbus-hash.h: add ULONG hash keys
9932
9933         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9934         (_dbus_get_group_id): new function
9935
9936 2003-03-20  Havoc Pennington  <hp@redhat.com>
9937
9938         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9939         new function
9940         (dbus_connection_get_unix_user): new function
9941
9942 2003-03-20  Havoc Pennington  <hp@pobox.com>
9943
9944         * bus/connection.c (bus_connection_send_oom_error): assert that
9945         message has a sender
9946         (connection_execute_transaction): ditto
9947         (bus_connection_preallocate_oom_error): fix to set the sender, and
9948         set recipient to the destination service, not the bus driver
9949
9950         * bus/policy.c: hacking
9951
9952         * dbus/dbus-message.c (dbus_message_service_is): new function
9953         (dbus_message_sender_is): new
9954
9955 2003-03-19  Havoc Pennington  <hp@redhat.com>
9956
9957         * bus/policy.c: start sketching code for policy restrictions on
9958         what connections can do.
9959
9960 2003-03-18  Havoc Pennington  <hp@redhat.com>
9961
9962         * doc/TODO: some notes on high-level todo items. Little nitpick
9963         stuff is all in @todo, so no need to add it here.
9964
9965         * doc/config-file.txt: some notes on how config file might look
9966
9967 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9968
9969         * configure.in: 0.6
9970
9971         * NEWS: Update.
9972
9973 2003-03-17  Havoc Pennington  <hp@redhat.com>
9974
9975         * dbus/dbus-internals.h: add gcc attributes so that
9976         our printf-style functions warn on bad arguments to
9977         format
9978
9979         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9980         format bug
9981
9982         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9983         printf format bug
9984
9985 2003-03-17  Havoc Pennington  <hp@redhat.com>
9986
9987         * bus/test-main.c (main): make it print something as it runs
9988         so make check doesn't look stuck
9989
9990         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9991         from CVS, now obsolete
9992
9993 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9994
9995         * bus/dispatch.c: (bus_dispatch):
9996         Refetch the service name since it may have been reallocated
9997         when dbus_message_set_sender was called.
9998
9999         * dbus/dbus-sysdeps.c: (_dbus_accept):
10000         Add address and address length variables and use them to stop
10001         valgrind from complaining.
10002
10003 2003-03-17  Havoc Pennington  <hp@pobox.com>
10004
10005         All tests pass, no memleaks, no valgrind complaints.
10006
10007         * bus/test.c: refcount handler_slot
10008
10009         * bus/connection.c (bus_connections_new): refcount
10010         connection_data_slot
10011
10012         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10013         bytes so that auth scripts pass.
10014
10015         * bus/dispatch.c: init message_handler_slot so it gets allocated
10016         properly
10017
10018         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10019
10020         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10021         dealloc server_pipe_hash when no longer used for benefit of
10022         leak checking
10023
10024         * dbus/dbus-auth.c (process_command): memleak fix
10025
10026         * bus/dispatch.c (check_hello_message): memleak fix
10027
10028 2003-03-16  Havoc Pennington  <hp@pobox.com>
10029
10030         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10031
10032 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10033
10034         * bus/activation.c (bus_activation_activate_service): Append
10035         the pending activation entry to the list of pending activations.
10036
10037 2003-03-16  Havoc Pennington  <hp@pobox.com>
10038
10039         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10040         connections
10041
10042         * dbus/dbus-address.c (create_entry): fix OOM handling when
10043         failing to alloc entry->method
10044
10045 2003-03-16  Havoc Pennington  <hp@pobox.com>
10046
10047         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10048         the watch
10049
10050         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10051         add some missing dbus_set_result
10052
10053         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10054         alloc the DBusMessageHandler
10055
10056         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10057         the transport here, since we call this from the finalizer; it
10058         resulted in a double-finalize.
10059
10060         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10061         where we tried to use transport->connection that was NULL,
10062         happened when transport was disconnected early on due to OOM
10063
10064         * bus/*.c: adapt to handle OOM for watches/timeouts
10065
10066         * dbus/dbus-transport-unix.c: port to handle OOM during
10067         watch handling
10068
10069         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10070         reference to unused bytes instead of a copy
10071
10072         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10073         out of memory
10074
10075         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10076         FALSE on OOM
10077
10078         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10079         of memory
10080
10081 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10082
10083         * doc/dbus-specification.sgml:
10084         Document reply message for ActivateService.
10085
10086 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10087
10088         * bus/activation.c: (bus_pending_activation_entry_free),
10089         (bus_pending_activation_free), (bus_activation_new),
10090         (bus_activation_unref), (bus_activation_service_created),
10091         (bus_activation_activate_service):
10092         * bus/activation.h:
10093         * bus/bus.c: (bus_context_new):
10094         * bus/desktop-file.c: (new_section):
10095         * bus/driver.c: (bus_driver_send_service_deleted),
10096         (bus_driver_handle_activate_service):
10097         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10098         * bus/services.h:
10099         * dbus/dbus-connection.c:
10100         (dbus_connection_send_with_reply_and_block):
10101         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10102         * dbus/dbus-protocol.h:
10103         Make activation work better. Now pending activations will be queued
10104         and the daemon won't try to activate services that are already registered.
10105
10106 2003-03-16  Havoc Pennington  <hp@pobox.com>
10107
10108         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10109         connection data
10110
10111         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10112         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10113
10114 2003-03-16  Havoc Pennington  <hp@pobox.com>
10115
10116         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10117         this. always run the test suite before commit...
10118
10119         * bus/*: adapt to DBusConnection API changes
10120
10121         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10122         requires renaming stuff to avoid dbus_connection_dispatch name
10123         conflict.
10124
10125         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10126         function
10127
10128         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10129         separate from _dbus_message_loader_return_buffer()
10130
10131         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10132         this, because it's now always broken to use; the number of
10133         messages in queue vs. the number still buffered by the message
10134         loader is undefined/meaningless. Should use
10135         dbus_connection_get_dispatch_state().
10136         (dbus_connection_dispatch): rename from
10137         dbus_connection_dispatch_message
10138
10139 2003-03-16  Havoc Pennington  <hp@pobox.com>
10140
10141         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10142         implementation
10143
10144 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10145
10146         * dbus/dbus-connection.c:
10147         (dbus_connection_send_with_reply_and_block):
10148         Decrease connection->n_incoming when removing an entry
10149         from the list.
10150         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10151         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10152         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10153         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10154         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10155         (dbus_dict_get_byte_array):
10156         Handle NULL arrays and strings. Also add support for byte arrays.
10157
10158         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10159         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10160         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10161         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10162         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10163         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10164         * dbus/dbus-marshal.h:
10165         Add support for marshalling and demarshalling empty arrays and strings.
10166
10167         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10168         (dbus_message_append_string_array),
10169         (dbus_message_iter_get_boolean),
10170         (dbus_message_iter_get_boolean_array),
10171         (dbus_message_iter_get_int32_array),
10172         (dbus_message_iter_get_uint32_array),
10173         (dbus_message_iter_get_double_array),
10174         (dbus_message_iter_get_byte_array),
10175         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10176         (check_message_handling):
10177         Add support for getting empty arrays and dicts.
10178
10179         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10180         Don't do any validation at all for now, that's better than just checking
10181         for ASCII.
10182
10183         * test/data/valid-messages/emptiness.message:
10184         New test message with lots of empty arrays.
10185
10186 2003-03-16  Havoc Pennington  <hp@pobox.com>
10187
10188         * dbus/dbus-connection.c
10189         (_dbus_connection_queue_received_message_link): new function that
10190         can't fail due to OOM
10191
10192         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10193         new function pops a message together with a list link
10194         containing it.
10195
10196         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10197         message queuing functions to avoid needing to alloc memory
10198
10199 2003-03-16  Havoc Pennington  <hp@pobox.com>
10200
10201         Oops - test code was only testing failure of around 30 of the
10202         mallocs in the test path, but it turns out there are 500+
10203         mallocs. I believe this was due to misguided linking setup such
10204         that there was one copy of dbus_malloc etc. in the daemon and one
10205         in the shared lib, and only daemon mallocs were tested. In any
10206         case, the test case now tests all 500+ mallocs, and doesn't pass
10207         yet, though there are lots of fixes in this patch.
10208
10209         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10210         this so that it doesn't need to allocate memory, since it
10211         has no way of indicating failure due to OOM (and would be
10212         annoying if it did).
10213
10214         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10215
10216         * bus/Makefile.am: rearrange to create two self-contained
10217         libraries, to avoid having libraries with overlapping symbols.
10218         that was resulting in weirdness, e.g. I'm pretty sure there
10219         were two copies of global static variables.
10220
10221         * dbus/dbus-internals.c: move the malloc debug stuff to
10222         dbus-memory.c
10223
10224         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10225         empty.
10226
10227         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10228
10229         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10230         on failure.
10231
10232         * bus/dispatch.c (bus_dispatch_add_connection): free
10233         message_handler_slot when no longer using it, so
10234         memory leak checkers are happy for the test suite.
10235
10236         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10237
10238         * bus/bus.c (new_connection_callback): disconnect in here if
10239         bus_connections_setup_connection fails.
10240
10241         * bus/connection.c (bus_connections_unref): fix to free the
10242         connections
10243         (bus_connections_setup_connection): if this fails, don't
10244         disconnect the connection, just be sure there are no side
10245         effects.
10246
10247         * dbus/dbus-string.c (undo_alignment): unbreak this
10248
10249         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10250         leaking
10251         (_dbus_auth_new): fix the order in which we free strings
10252         on OOM failure
10253
10254         * bus/connection.c (bus_connection_disconnected): fix to
10255         not send ServiceDeleted multiple times in case of memory
10256         allocation failure
10257
10258         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10259         get the base service name
10260         (dbus_bus_register_client): don't return base service name,
10261         instead store it on the DBusConnection and have an accessor
10262         function for it.
10263         (dbus_bus_register_client): rename dbus_bus_register()
10264
10265         * bus/dispatch.c (check_hello_message): verify that other
10266         connections on the bus also got the correct results, not
10267         just the one sending hello
10268
10269 2003-03-15  Havoc Pennington  <hp@pobox.com>
10270
10271         Make it pass the Hello handling test including all OOM codepaths.
10272         Now to do other messages...
10273
10274         * bus/services.c (bus_service_remove_owner): fix crash when
10275         removing owner from an empty list of owners
10276         (bus_registry_ensure): don't leave service in the list of
10277         a connection's owned services if we fail to put the service
10278         in the hash table.
10279
10280         * bus/connection.c (bus_connection_preallocate_oom_error): set
10281         error flag on the OOM error.
10282
10283         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10284         handle _dbus_transport_set_connection failure
10285
10286         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10287         to create watches up front and simply enable/disable them as
10288         needed.
10289         (unix_connection_set): this can now fail on OOM
10290
10291         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10292         of enabling/disabling a watch or timeout.
10293
10294         * bus/loop.c (bus_loop_iterate): don't touch disabled
10295         watches/timeouts
10296
10297         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10298
10299 2003-03-15  Havoc Pennington  <hp@pobox.com>
10300
10301         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10302         write useful test code, after all that futzing around ;-)
10303
10304         Test does not yet pass because we can't handle OOM in
10305         _dbus_transport_messages_pending (basically,
10306         dbus_connection_preallocate_send() does not prealloc the write
10307         watch). To fix this, I think we need to add new stuff to
10308         set_watch_functions, namely a SetEnabled function so we can alloc
10309         the watch earlier, then enable it later.
10310
10311         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10312         dbus-memory.c to the convenience lib
10313
10314         * bus/test.c: rename some static functions to keep them clearly
10315         distinct from stuff in connection.c. Handle client disconnection.
10316
10317 2003-03-14  Havoc Pennington  <hp@pobox.com>
10318
10319         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10320         transport, tests more of the real codepath. Set up clients
10321         with bus_setup_debug_client.
10322
10323         * bus/test.c (bus_setup_debug_client): function to set up debug
10324         "clients" on the main loop
10325
10326         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10327         support
10328
10329         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10330         server type
10331
10332         * dbus/dbus-server-debug.c: support a debug server based on pipes
10333
10334         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10335         (_dbus_close): new function
10336
10337         * configure.in: check for socketpair
10338
10339 2003-03-14  Havoc Pennington  <hp@redhat.com>
10340
10341         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10342         cheesy hack
10343
10344         * dbus/dbus-transport-debug.c: rework this a good bit to be
10345         less complicated. hopefully still works.
10346
10347         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10348         manually
10349
10350         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10351         after running it
10352
10353         * dbus/dbus-message.c (dbus_message_copy): rename from
10354         dbus_message_new_from_message, fix it up to copy
10355         all the message fields, add test case
10356
10357         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10358         not quite passing yet
10359
10360 2003-03-14  Havoc Pennington  <hp@pobox.com>
10361
10362         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10363         until no work remains" in test code. (the large diff here
10364         is just code movement, no actual changes)
10365
10366         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10367         1, no point waiting around for test code.
10368         (_dbus_server_debug_accept_transport): unref the timeout
10369         after adding it (right?)
10370
10371         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10372
10373 2003-03-13  Havoc Pennington  <hp@redhat.com>
10374
10375         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10376         out of memory
10377
10378         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10379         of memory
10380
10381         * dbus/dbus-connection.h: Make AddWatchFunction and
10382         AddTimeoutFunction return a bool so they can fail on out-of-memory
10383
10384         * bus/bus.c (bus_context_new): set up timeout handlers
10385
10386         * bus/connection.c (bus_connections_setup_connection): set up
10387         timeout handlers
10388
10389         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10390         can fail
10391
10392         * bus/bus.c (bus_context_new): adapt to changes
10393
10394         * bus/connection.c: adapt to changes
10395
10396         * test/watch.c: adapt to DBusWatch changes
10397
10398         * bus/dispatch.c (bus_dispatch_test): started adding this but
10399         didn't finish
10400
10401 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10402
10403         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10404
10405 2003-03-13  Havoc Pennington  <hp@pobox.com>
10406
10407         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10408         set up a test framework as for the library
10409
10410 2003-03-12  Havoc Pennington  <hp@pobox.com>
10411
10412         Throughout: purge global variables, introduce BusActivation,
10413         BusConnections, BusRegistry, etc. objects instead.
10414
10415         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10416         message bus object
10417
10418         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10419         going to redo this a bit differently I think
10420
10421 2003-03-12  Havoc Pennington  <hp@redhat.com>
10422
10423         Mega-patch that gets the message bus daemon initially handling
10424         out-of-memory. Work still needed. Also lots of random
10425         moving stuff to DBusError instead of ResultCode.
10426
10427         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10428
10429         * dbus/dbus-connection.c
10430         (dbus_connection_send_with_reply_and_block): use DBusError
10431
10432         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10433         DBusResultCode
10434
10435         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10436         code here, as the only failure possible is OOM.
10437
10438         * bus/connection.c (bus_connection_disconnect):
10439         rename bus_connection_disconnected as it's a notification only
10440
10441         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10442         "name" on get_args failure, should be done by get_args;
10443         don't disconnect client for bad args, just return an error.
10444         (bus_driver_handle_service_exists): ditto
10445
10446         * bus/services.c (bus_services_list): NULL-terminate returned array
10447
10448         * bus/driver.c (bus_driver_send_service_lost)
10449         (bus_driver_send_service_acquired): send messages from driver to a
10450         specific client to the client's unique name, not to the broadcast
10451         service.
10452
10453         * dbus/dbus-message.c (decode_header_data): reject messages that
10454         contain no name field
10455         (_dbus_message_get_client_serial): rename to
10456         dbus_message_get_serial and make public
10457         (_dbus_message_set_serial): rename from set_client_serial
10458         (_dbus_message_set_reply_serial): make public
10459         (_dbus_message_get_reply_serial): make public
10460
10461         * bus/connection.c (bus_connection_foreach): allow stopping
10462         iteration by returning FALSE from foreach function.
10463
10464         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10465         (dbus_connection_free_preallocated_send)
10466         (dbus_connection_preallocate_send): new API for sending a message
10467         without possibility of malloc failure.
10468         (dbus_connection_send_message): rename to just
10469         dbus_connection_send (and same for whole function family)
10470
10471         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10472
10473         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10474
10475         * bus/activation.c: handle/return errors
10476
10477         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10478
10479         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10480         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10481         (_dbus_result_from_errno): move to this file
10482
10483 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10484
10485         * dbus/dbus-marshal.c:
10486         (_dbus_marshal_set_string):
10487         Take a length argument so we can marshal the correct string
10488         length.
10489
10490         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10491         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10492         (_dbus_marshal_test):
10493         * dbus/dbus-marshal.h:
10494         Add support for marshalling and demarshalling dicts.
10495
10496         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10497         Add support for TYPE DICT.
10498
10499         * dbus/dbus-message.c: (set_string_field):
10500         Adjust header padding.
10501
10502         (dbus_message_append_args_valist), (dbus_message_append_dict),
10503         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10504         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10505         (check_message_handling), (check_have_valid_message):
10506         * dbus/dbus-message.h:
10507         Add functions for setting and getting dicts.
10508
10509         * dbus/dbus-protocol.h:
10510         Add DBUS_TYPE_DICT.
10511
10512         * dbus/dbus.h:
10513         Add dbus-dict.h
10514
10515         * doc/dbus-specification.sgml:
10516         Add information about how dicts are marshalled.
10517
10518         * test/data/invalid-messages/dict-with-nil-value.message:
10519         * test/data/invalid-messages/too-short-dict.message:
10520         * test/data/valid-messages/dict-simple.message:
10521         * test/data/valid-messages/dict.message:
10522         Add sample messages containing dicts.
10523
10524 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10525
10526         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10527
10528 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10529
10530         * dbus/Makefile.am:
10531         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10532         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10533         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10534         (dbus_dict_set_double), (dbus_dict_set_string),
10535         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10536         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10537         (dbus_dict_set_string_array), (_dbus_dict_test):
10538         * dbus/dbus-dict.h:
10539         Fix according to comments from Havoc.
10540
10541 2003-03-06  Michael Meeks  <michael@server.home>
10542
10543         * configure.in: if we don't have kde-config, disable have_qt.
10544
10545 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10546
10547         * dbus/Makefile.am:
10548         Add dbus-dict.[ch]
10549
10550         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10551         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10552         (dbus_dict_remove), (dbus_dict_get_value_type),
10553         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10554         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10555         (dbus_dict_put_double), (dbus_dict_put_string),
10556         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10557         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10558         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10559         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10560         (dbus_dict_get_double), (dbus_dict_get_string),
10561         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10562         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10563         (dbus_dict_get_string_array), (_dbus_dict_test):
10564         * dbus/dbus-dict.h:
10565         Add DBusDict implementation
10566
10567         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10568         * dbus/dbus-test.h:
10569         Add _dbus_dict_test
10570
10571 2003-03-04  Havoc Pennington  <hp@pobox.com>
10572
10573         * test/data/auth/*: adapt to changes
10574
10575         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10576         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10577         userid
10578
10579         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10580         more stuff from being in a context name, to make the protocol
10581         simpler to deal with
10582
10583         * dbus/dbus-errors.c (dbus_error_has_name): new function
10584         (dbus_error_is_set): new function
10585
10586         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10587         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10588
10589         * dbus/dbus-connection.c (dbus_connection_flush): also read
10590         messages during a flush operation
10591
10592         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10593
10594 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10595
10596         * configure.in: Check for gethostbyname on Solaris.
10597
10598         * dbus/dbus-transport.c: (_dbus_transport_open):
10599         Remove duplicate "tcp" entry.
10600
10601         * doc/dbus-specification.sgml:
10602         Clarify some things.
10603
10604 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10605
10606         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10607         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10608         (_dbus_keyring_test):
10609         * dbus/dbus-md5.c: (_dbus_md5_compute):
10610         * dbus/dbus-sha.c: (_dbus_sha_compute):
10611         Plug memory leaks.
10612
10613 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10614
10615         * README: Add some things.
10616
10617 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10618
10619         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10620         after case DBUS_TYPE_BOOELAN.
10621
10622 2003-03-02  Havoc Pennington  <hp@pobox.com>
10623
10624         * test/break-loader.c (randomly_set_extreme_ints): add test that
10625         sets really huge and small integers
10626
10627         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10628         that length of boolean array fits in the string, and that
10629         string has room for boolean value in single-bool case.
10630
10631         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10632         optional value to "ALIGN" command which is what to fill the
10633         alignment with.
10634
10635         * test/data/valid-messages/no-padding.message: add regression
10636         test for the message padding problem
10637
10638 2003-03-02  Havoc Pennington  <hp@pobox.com>
10639
10640         * dbus/dbus-message.c (decode_header_data): fix to always init
10641         message_padding, from Benjamin Dauvergne
10642
10643 2003-03-02  Havoc Pennington  <hp@pobox.com>
10644
10645         * configure.in: 0.5
10646
10647         * NEWS: Update.
10648
10649 2003-03-01  Joe Shaw  <joe@assbarn.com>
10650
10651         * configure.in: Check for "struct cmsgcred" and try to access its
10652         members for BSD-like unices.
10653
10654         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10655         _dbus_read_credentials_unix_socket().
10656         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10657         read() for reading the credential byte off the unix socket.  Use
10658         struct cmsgcred on systems that support it.
10659
10660 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10661
10662         * glib/Makefile.am:
10663         * configure.in:
10664         Make gthreads-2.0 dependency optional. Don't build thread test if
10665         its not found.
10666
10667 2003-02-27  Havoc Pennington  <hp@pobox.com>
10668
10669         * dbus/dbus-connection.c
10670         (dbus_connection_send_message_with_reply_and_block): fix doh!
10671         doh! doh! bug that resulted in never removing a reply from the
10672         queue, no wonder we called get_reply_serial so much ;-)
10673
10674         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10675         and client serial instead of demarshaling them every time
10676
10677 2003-02-27  Havoc Pennington  <hp@pobox.com>
10678
10679         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10680         more inlined, using dbus-string-private.h, speeds things up
10681         substantially
10682
10683         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10684         when freeing the string
10685         (_dbus_string_steal_data): fix for align offset
10686         (undo_alignment): new function
10687
10688 2003-02-26  Havoc Pennington  <hp@redhat.com>
10689
10690         All kinds of audit fixes from Owen, plus initial attempt to
10691         handle unaligned memory returned from malloc.
10692
10693         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10694         leave room for align_offset and nul byte
10695         (fixup_alignment): function to track an align_offset and
10696         ensure real->str is aligned
10697         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10698         to allow a nul byte plus align offset
10699         (_dbus_string_lock): fix overflow issue
10700         (_dbus_string_init_const_len): add assertions on sanity of len,
10701         assign allocated to be ALLOCATION_PADDING larger than len
10702         (set_length): fixup the overflow handling
10703         (_dbus_string_get_data_len): fix overflow in assertion
10704         (open_gap): detect overflow in size of gap to be opened
10705         (_dbus_string_lengthen): add overflow check
10706         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10707         (_dbus_string_append): add overflow check
10708         (_dbus_string_append_unichar): overflow
10709         (_dbus_string_delete): fix overflow in assertion
10710         (_dbus_string_copy_len): overflow in assertion
10711         (_dbus_string_replace_len): overflows in assertions
10712         (_dbus_string_find): change to implement in terms of
10713         _dbus_string_find_to
10714         (_dbus_string_find_to): assorted fixage
10715         (_dbus_string_equal_c_str): assert c_str != NULL,
10716         fix logic so the function works
10717         (_dbus_string_ends_with_c_str): fix overflow thingy
10718         (_dbus_string_base64_encode): overflow fix
10719         (_dbus_string_validate_ascii): overflow
10720         (_dbus_string_validate_nul): overflow
10721
10722 2003-02-26  Havoc Pennington  <hp@redhat.com>
10723
10724         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10725
10726 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10727
10728         * configure.in:
10729         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10730
10731         * dbus/dbus-connection.c:
10732         * dbus/dbus-connection.h:
10733         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10734         Add dbus_connection_set_wakeup_main_function and use it when queueing
10735         incoming and outgoing messages.
10736
10737
10738         * dbus/dbus-dataslot.c:
10739         Threadsafe usage of DBusDataSlotAllocator
10740
10741         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10742         dbus_new can fail.
10743
10744         * dbus/dbus-server-unix.c:
10745         Add todo comment
10746
10747         * glib/dbus-gmain.c:
10748         Implement the new wakeup functions for glib.
10749
10750         * glib/Makefile.am:
10751         * glib/test-thread-client.c:
10752         * glib/test-thread-server.c:
10753         * glib/test-thread.h:
10754         Initial cut at some thread test code. Not really done yet.
10755
10756 2003-02-26  Havoc Pennington  <hp@pobox.com>
10757
10758         * dbus/dbus-connection.c
10759         (dbus_connection_send_message_with_reply_and_block): fix crash
10760         where we ref'd the outgoing message instead of the returned reply
10761
10762         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10763         at the end of this function, so if we didn't need to read for
10764         authentication, we reinstall it for receiving messages
10765
10766         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10767         a NULL sender for peer-to-peer case
10768
10769         * dbus/dbus-transport-unix.c (check_read_watch): handle
10770         !authenticated case correctly
10771
10772         * glib/dbus-gmain.c: add support for DBusServer
10773
10774         * dbus/dbus-server.c: add data slot support
10775
10776         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10777         return values and handle errors
10778
10779         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10780         DBusConnection
10781
10782         * Doxyfile.in (INPUT): add glib subdir
10783
10784         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10785         setup_with_g_main instead of hookup_with_g_main; write docs
10786
10787 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10788
10789         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10790         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10791         * dbus/dbus-message.c: (dbus_message_append_boolean),
10792         (dbus_message_append_boolean_array),
10793         (dbus_message_get_args_valist), (_dbus_message_test):
10794         * dbus/dbus-message.h:
10795         * doc/dbus-specification.sgml:
10796         Various fixes as pointed out by Havoc.
10797
10798         * test/data/invalid-messages/bad-boolean-array.message:
10799         * test/data/invalid-messages/bad-boolean.message:
10800         Add invalid boolean value test cases.
10801
10802 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10803
10804         * dbus/dbus-internals.c: (_dbus_type_to_string):
10805         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10806         (_dbus_marshal_validate_arg):
10807         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10808         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10809         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10810         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10811         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10812         (dbus_message_iter_get_double),
10813         (dbus_message_iter_get_boolean_array), (message_iter_test):
10814         * dbus/dbus-message.h:
10815         * dbus/dbus-protocol.h:
10816         * doc/dbus-specification.sgml:
10817         * test/data/valid-messages/lots-of-arguments.message:
10818         Add support for boolean and boolean array types.
10819
10820 2003-02-23  Havoc Pennington  <hp@pobox.com>
10821
10822         * dbus/dbus-keyring.c: finish most of this implementation and
10823         simple unit test
10824
10825         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10826         these barf if the error isn't cleared to NULL
10827
10828         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10829         (_dbus_create_directory): new function
10830
10831         * dbus/dbus-errors.c (dbus_set_error): fix warning
10832
10833         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10834         (_dbus_string_hex_decode): new function
10835         (test_hex_roundtrip): test code
10836
10837         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10838
10839         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10840
10841         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10842         the save-to-temp/rename trick to atomically write the new file
10843         (_dbus_string_parse_uint): new function
10844
10845 2003-02-22  Havoc Pennington  <hp@pobox.com>
10846
10847         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10848
10849 2003-02-22  Havoc Pennington  <hp@pobox.com>
10850
10851         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10852         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10853
10854         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10855
10856         * dbus/test/data/sha-1: add US government test suite for SHA-1
10857
10858 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10859
10860         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10861         Make string arrays NULL-terminated.
10862
10863         * dbus/dbus-memory.c: (dbus_free_string_array):
10864         * dbus/dbus-memory.h:
10865         New function for freeing NULL-terminated string arrays.
10866
10867         * dbus/dbus-message-builder.c: (append_quoted_string),
10868         (_dbus_message_data_load):
10869         Add support for array types.
10870
10871         * dbus/dbus-message.c: (check_message_handling):
10872         Add more types as test cases.
10873
10874         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10875         (_dbus_string_parse_double):
10876         Add the start offset to the end offset.
10877
10878         * test/data/valid-messages/lots-of-arguments.message:
10879         New test message with lots of arguments.
10880
10881 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10882
10883         * dbus/dbus-message.c: (dbus_message_append_nil),
10884         (dbus_message_append_int32), (dbus_message_append_uint32),
10885         (dbus_message_append_double), (dbus_message_append_string),
10886         (dbus_message_append_int32_array),
10887         (dbus_message_append_uint32_array),
10888         (dbus_message_append_double_array),
10889         (dbus_message_append_byte_array),
10890         (dbus_message_append_string_array):
10891         Fix all out-of-memory handling in these functions.
10892
10893 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10894
10895         * dbus/dbus-message.c: (dbus_message_append_nil):
10896         Fix a silly.
10897
10898 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10899
10900         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10901         (dbus_message_append_nil), (dbus_message_append_int32_array),
10902         (dbus_message_append_uint32_array),
10903         (dbus_message_append_double_array),
10904         (dbus_message_append_byte_array),
10905         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10906         (dbus_message_iter_get_int32_array),
10907         (dbus_message_iter_get_uint32_array),
10908         (dbus_message_iter_get_double_array),
10909         (dbus_message_iter_get_byte_array),
10910         (dbus_message_iter_get_string_array):
10911
10912         * dbus/dbus-message.h:
10913         Add functions for appending and getting arrays.
10914
10915 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10916
10917         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10918         element size at least 8 bytes, fixes mempool tests on
10919         64-bit machines.
10920
10921 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10922
10923         * dbus/dbus-transport-unix.c (unix_do_iteration):
10924         Unlock the connection mutex during a blocking select call.
10925         Add todo about how we need a way to wake up the select.
10926
10927         * dbus/dbus-connection-internal.h:
10928         * dbus/dbus-connection.c:
10929         Add _dbus_connection_lock and _dbus_connection_unlock.
10930
10931 2003-02-19  Havoc Pennington  <hp@pobox.com>
10932
10933         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10934         Doxyfile.in, not Doxyfile
10935
10936         * dbus/dbus-keyring.c: do some hacking on this
10937
10938         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10939
10940         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10941         dbus_error_init
10942         (dbus_set_error): remove dbus_error_init, check for message ==
10943         NULL *before* we sprintf into it, and add @todo about including
10944         system headers in this file
10945
10946         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10947
10948         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10949
10950         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10951         get various bits of user information based on either username
10952         or user ID
10953         (_dbus_homedir_from_username): new function
10954
10955 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10956
10957         * configure.in:
10958         Add check for nonposix getpwnam_r
10959
10960         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10961         Align the pool element size to a sizeof (void *) boundary.
10962
10963         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10964         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10965         General Solaris fixes.
10966
10967         * test/data/valid-messages/simplest-manual.message:
10968         Explicitly state that we want little-endian packing.
10969
10970 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10971
10972         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10973
10974         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10975         Added to create a transport connecting using a tcp/ip socket.
10976
10977         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10978         to a tcp socket at given host and port.
10979         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10980         hostname and port.
10981
10982         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10983
10984         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10985         Added to create a server listening on a TCP/IP socket.
10986
10987 2003-02-19  Havoc Pennington  <hp@pobox.com>
10988
10989         Throughout: mop up all the Doxygen warnings and undocumented
10990         stuff.
10991
10992         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10993         to search any paths.
10994
10995         * dbus/dbus-threads.c: move global mutex initializers to
10996         dbus-internals.h, multiple prototypes was confusing doxygen
10997         besides being kind of ugly
10998
10999         * Doxyfile (PREDEFINED): have Doxygen define
11000         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11001         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11002         (do not abuse the feature! it's for stuff like the autogenerated
11003         macros in dbus-md5.c, not just for things you don't feel like
11004         documenting...)
11005
11006 2003-02-18  Havoc Pennington  <hp@pobox.com>
11007
11008         * dbus/dbus-string.c (_dbus_string_zero): new function
11009
11010         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11011         wrap it in some dbus-friendly API
11012
11013         * dbus/dbus-types.h: add 16-bit types
11014
11015 2003-02-18  Joe Shaw  <joe@assbarn.com>
11016
11017         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11018         credentials from our currently running process.
11019         (get_word): Fix a buglet where we were copying the entire length
11020         instead of relative to our position.
11021
11022         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11023         keys on the stack... it's 640k of data.
11024
11025         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11026         read the credentials byte off the socket, even if we don't have
11027         SO_PEERCRED.
11028         (_dbus_poll): Implement poll() using select() for systems which
11029         don't have it.
11030
11031         * glib/test-dbus-glib.c (main): Print out an error if no
11032         parameters are given.
11033
11034         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11035         can fallback to a secondary auth mechanism if the first fails.
11036
11037 2003-02-18  Havoc Pennington  <hp@pobox.com>
11038
11039         * AUTHORS: add Alex
11040
11041 2003-02-17  Havoc Pennington  <hp@pobox.com>
11042
11043         * doc/dbus-specification.sgml: lots of cosmetic
11044         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11045         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11046         s/server/bus/ (except in authentication section). Add a section
11047         "Message Bus Message Routing"
11048
11049 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11050
11051         Release 0.4
11052
11053         * NEWS: Update
11054
11055 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11056
11057         * doc/dbus-specification.sgml:
11058         Specification updates.
11059
11060 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11061
11062         * bus/activation.c: (bus_activation_init), (child_setup),
11063         (bus_activation_activate_service):
11064         * bus/activation.h:
11065         * bus/main.c: (main):
11066         Set DBUS_ADDRESS environment variable.
11067
11068         * dbus/dbus-errors.c: (dbus_set_error):
11069         Don't use va_copy since that's a C99 feature.
11070
11071         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11072         (_dbus_spawn_async):
11073         * dbus/dbus-sysdeps.h:
11074         Add child_setup_func to _dbus_spawn_async.
11075
11076         * doc/dbus-specification.sgml:
11077         Update specification.
11078
11079         * test/spawn-test.c: (setup_func), (main):
11080         Fix test.
11081
11082 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11083
11084         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11085         Added todo.
11086
11087 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11088
11089         * doc/.cvsignore:
11090         * doc/Makefile.am:
11091         * doc/dbus-test-plan.sgml:
11092         Add test plan document.
11093
11094         * test/Makefile.am:
11095         Fix distcheck.
11096
11097 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11098
11099         * dbus/dbus-message.c: (decode_header_data),
11100         (_dbus_message_loader_return_buffer):
11101         Set the header padding amount when loading a message.
11102
11103 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11104
11105         * bus/dispatch.c: (send_one_message):
11106         Only send broadcast messages to registered connections.
11107
11108         * dbus/dbus-message.c: (dbus_message_name_is):
11109         * dbus/dbus-message.h:
11110         New convenience function.
11111
11112         * dbus/dbus-transport-debug.c: (do_reading):
11113         Only dispatch one message per run.
11114
11115         * test/Makefile.am:
11116         * test/bus-test.c: (new_connection_callback), (die),
11117         (test_hello_client1_handler), (test_hello_client2_handler),
11118         (test_hello_replies), (main):
11119
11120         * test/bus-test-loop.[ch]:
11121         Add these.
11122
11123 2003-02-16  Havoc Pennington  <hp@pobox.com>
11124
11125         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11126         backward conditional
11127
11128 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11129
11130         * dbus/dbus-connection.c:
11131         Implement sent_message_with_reply. (with_reply_and block is still
11132         busted).
11133         Made dispatch_message not lose message if OOM.
11134
11135         * dbus/dbus-errors.h:
11136         Add NoReply error (for reply timeouts).
11137
11138 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11139
11140         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11141         Actually free keys and values when destroying hashtable.
11142
11143 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11144
11145         * dbus/dbus-auth.c: (client_try_next_mechanism):
11146         Plug a leak.
11147
11148         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11149         Return TRUE if there's no thread implementation around.
11150
11151         * glib/dbus-gmain.c: (free_source),
11152         (dbus_connection_hookup_with_g_main):
11153         Make sure to remove the GSource when the connection is finalized.
11154
11155 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11156
11157         * bus/dispatch.c: (bus_dispatch_message_handler):
11158         * dbus/dbus-errors.h:
11159         Return an error if someone tries to send a message to a service
11160         that doesn't exist.
11161
11162 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11163
11164         * bus/activation.c: (load_directory), (bus_activation_init),
11165         (bus_activation_activate_service):
11166         * bus/activation.h:
11167         * bus/driver.c:
11168         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11169         More work on the activation handling.
11170
11171         * dbus/dbus-errors.h:
11172         Add some error messages
11173
11174         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11175         * dbus/dbus-message.h:
11176         New function that creates an error message.
11177
11178         * dbus/dbus-protocol.h:
11179         Add ACTIVATE_SERVER message.
11180
11181         * dbus/dbus-server-unix.c: (unix_handle_watch),
11182         (_dbus_server_new_for_domain_socket):
11183         Call _dbus_fd_set_close_on_exec.
11184
11185         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11186         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11187         (_dbus_fd_set_close_on_exec):
11188         * dbus/dbus-sysdeps.h:
11189         Add _dbus_fd_set_close_on exec function. Also add function that checks
11190         that all open fds are set to close-on-exec and warns otherwise.
11191
11192         * dbus/dbus-transport-unix.c:
11193         (_dbus_transport_new_for_domain_socket):
11194         Call _dbus_fd_set_close_on_exec.
11195
11196 2003-02-16  Havoc Pennington  <hp@pobox.com>
11197
11198         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11199         allow people to avoid setting SIGPIPE to SIG_IGN
11200         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11201         we've been asked not to
11202
11203 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11204
11205         * dbus/dbus-list.c: (_dbus_list_append_link),
11206         (_dbus_list_prepend_link):
11207         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11208         (dbus_realloc):
11209         Warning fixes.
11210
11211 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11212
11213         * bus/Makefile.am:
11214         * bus/activation.c: (bus_activation_entry_free),
11215         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11216         * bus/activation.h:
11217         * bus/main.c: (main):
11218         Add simple activation support, doesn't work yet though.
11219
11220 2003-02-15   Zack Rusin  <zack@kde.org>
11221
11222         * qt/dbus-qthread.cpp:  small casting fix
11223
11224 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11225
11226         * dbus/dbus-errors.c: (dbus_set_error):
11227         * dbus/dbus-errors.h:
11228         Add a few errors and make dbus_set_error void.
11229
11230         * dbus/dbus-sysdeps.c:
11231         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11232         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11233         * dbus/dbus-sysdeps.h:
11234         Add _dbus_spawn_async.
11235
11236         * test/spawn-test.c: (main):
11237         Test for _dbus_spawn_async.
11238
11239 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11240
11241         * dbus/dbus-internals.h:
11242         Fix build without tests.
11243
11244         * dbus/dbus-list.c: (alloc_link):
11245         Fix a segfault when a malloc fails.
11246
11247         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11248         (dbus_malloc0), (dbus_realloc):
11249         Add support for malloc debugging.
11250
11251 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11252
11253         * dbus/dbus-threads.c:
11254         * dbus/dbus-threads.h:
11255         Add condvars. Remove static mutext from API.
11256         Implement static mutexes by initializing them from threads_init.
11257
11258         * glib/dbus-gthread.c:
11259         * qt/dbus-qthread.cpp:
11260         Update with the thread api changes.
11261
11262
11263         * dbus/dbus-list.c:
11264         * dbus/dbus-list.h:
11265         Turn StaticMutex into normal mutex + init function.
11266         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11267         _dbus_list_append_link, _dbus_list_prepend_link
11268
11269
11270         * dbus/dbus-sysdeps.c:
11271         * dbus/dbus-sysdeps.h:
11272         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11273         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11274
11275         * dbus/dbus-protocol.h:
11276         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11277
11278         * dbus/dbus-message.c:
11279         Make ref/unref atomic.
11280         Fix some docs.
11281
11282         * dbus/dbus-connection-internal.h:
11283         * dbus/dbus-connection.c:
11284         * dbus/dbus-connection.h:
11285         Make threadsafe.
11286         Change _peek to _borrow,_return & _steal_borrowed.
11287         Change disconnect callback to event.
11288         Make dbus_connection_dispatch_messages reentrant.
11289
11290         * dbus/dbus-transport.c:
11291         Don't ref the connection on calls to the transport
11292         implementation.
11293
11294         * dbus/dbus-message-handler.c:
11295         Make threadsafe.
11296
11297         * glib/dbus-gmain.c:
11298         Don't use peek_message anymore
11299
11300         * test/Makefile.am:
11301         * test/debug-thread.c:
11302         * test/debug-thread.h:
11303         Simple thread implementation that asserts() on deadlocks in
11304         single-threaded code.
11305
11306         * test/bus-test.c:
11307         (main) Call debug_threads_init.
11308
11309         * test/watch.c:
11310         Use disconnect message instead of disconnect callback.
11311
11312         * bus/connection.c:
11313         * bus/connection.h:
11314         Don't call dbus_connection_set_disconnect_function. Instead export
11315         bus_connection_disconnect.
11316
11317         * bus/dispatch.c:
11318         Call bus_connection_disconnect when we get a disconnected message.
11319
11320 2003-02-15  Havoc Pennington  <hp@pobox.com>
11321
11322         * dbus/dbus-message.c (dbus_message_new): fool around with the
11323         docs
11324
11325 2003-02-14  Havoc Pennington  <hp@pobox.com>
11326
11327         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11328
11329         * dbus/dbus-memory.c: fail if the debug functions indicate we
11330         should
11331
11332         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11333         (_dbus_decrement_fail_alloc_counter): debug functions to
11334         simulate memory allocation failures
11335
11336 2003-02-14  Havoc Pennington  <hp@pobox.com>
11337
11338         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11339         to DBusError
11340
11341 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11342
11343         * bus/driver.c: (bus_driver_handle_hello):
11344         * bus/driver.h:
11345         * bus/services.c: (bus_service_lookup):
11346         Reorder message sending so we get a more sane order.
11347
11348         * test/bus-test.c: (message_handler):
11349         Fix tyop.
11350
11351 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11352
11353         * bus/driver.c: (bus_driver_send_service_deleted),
11354         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11355         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11356         (bus_driver_send_welcome_message),
11357         (bus_driver_handle_list_services),
11358         (bus_driver_handle_acquire_service),
11359         (bus_driver_handle_service_exists):
11360         * dbus/dbus-bus.c: (dbus_bus_register_client),
11361         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11362         * dbus/dbus-errors.c: (dbus_result_to_string):
11363         * dbus/dbus-errors.h:
11364         * dbus/dbus-message.c: (dbus_message_append_args),
11365         (dbus_message_append_args_valist), (dbus_message_get_args),
11366         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11367         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11368         (dbus_message_iter_get_byte_array),
11369         (dbus_message_iter_get_string_array), (message_iter_test),
11370         (check_message_handling), (_dbus_message_test):
11371         * dbus/dbus-message.h:
11372         * test/bus-test.c: (main):
11373         Change fields to arguments in messages, so that they won't be
11374         confused with header fields.
11375
11376         * glib/test-dbus-glib.c: (main):
11377         Remove append_fields from hello message.
11378
11379 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11380
11381         * dbus/dbus-errors.c:
11382         * dbus/dbus-message.c:
11383         * dbus/dbus-string.c:
11384         Documentation fixes.
11385
11386 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11387
11388         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11389         (remove_timeout):
11390         Implement support for timeouts in dbus-glib.
11391
11392 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11393
11394         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11395         * dbus/dbus-message.c: (process_test_subdir):
11396         * test/break-loader.c: (find_breaks_based_on):
11397         Plug some memory leaks.
11398
11399 2003-02-13  Richard Hult  <rhult@codefactory.se>
11400
11401         * bus/main.c: Fix build.
11402
11403         * dbus/dbus-errors.h:
11404         * dbus/dbus-errors.c: Fix copyright for Anders.
11405
11406 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11407
11408         * bus/Makefile.am:
11409         Add utils.[ch]
11410
11411         * bus/connection.c: (bus_connection_foreach):
11412         Fix a warning.
11413
11414         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11415         (unescape_string), (new_section), (parse_section_start),
11416         (parse_key_value), (report_error), (bus_desktop_file_load),
11417         (bus_desktop_file_get_string):
11418         * bus/desktop-file.h:
11419         Use DBusError for error reporting.
11420
11421         * bus/dispatch.c: (send_one_message),
11422         (bus_dispatch_message_handler):
11423         * bus/driver.c: (bus_driver_send_service_deleted),
11424         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11425         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11426         (bus_driver_send_welcome_message),
11427         (bus_driver_handle_list_services),
11428         (bus_driver_handle_acquire_service),
11429         (bus_driver_handle_service_exists):
11430         * bus/loop.c: (bus_loop_run):
11431         * bus/main.c:
11432         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11433
11434         * bus/utils.c: (bus_wait_for_memory):
11435         * bus/utils.h:
11436         New files with general utility functions.
11437
11438         * dbus/dbus-internals.h:
11439         Remove _DBUS_HANDLE_OOM.
11440
11441 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11442
11443         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11444         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11445         * dbus/dbus-errors.h:
11446         Add DBusError structure.
11447
11448 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11449
11450         * test/data/valid-messages/standard-acquire-service.message:
11451         * test/data/valid-messages/standard-hello.message:
11452         * test/data/valid-messages/standard-list-services.message:
11453         * test/data/valid-messages/standard-service-exists.message:
11454         Add some standard messages.
11455
11456 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11457
11458         * bus/driver.c: (bus_driver_send_welcome_message),
11459         (bus_driver_handle_list_services),
11460         (bus_driver_handle_acquire_service),
11461         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11462         Update for API changes in libdbus.
11463
11464         * dbus/dbus-message.c: (dbus_message_new_reply):
11465         * dbus/dbus-message.h:
11466         Remove the name argument. The spec states that replies shouldn't
11467         have a name.
11468
11469 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11470
11471         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11472         (report_error), (bus_desktop_file_load), (lookup_section),
11473         (lookup_line), (bus_desktop_file_get_raw),
11474         (bus_desktop_file_get_string):
11475         * bus/desktop-file.h:
11476         Some fixes, and new functions for getting a key value from a section.
11477
11478 2003-02-13  Havoc Pennington  <hp@pobox.com>
11479
11480         * test/data/auth/fail-after-n-attempts.auth-script: new test
11481
11482         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11483         reject the client.
11484
11485 2003-02-13  Havoc Pennington  <hp@pobox.com>
11486
11487         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11488         dbus_credentials_match were backward
11489
11490         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11491         NO_CREDENTIALS and ROOT_CREDENTIALS
11492
11493         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11494         into here. Never process more commands after we've reached an
11495         end state; store further data as unused bytes.
11496
11497         * test/data/auth/*: add more auth tests
11498
11499         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11500         command to match exact string and EXPECT_UNUSED to match unused
11501         bytes
11502
11503         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11504
11505 2003-02-12  Havoc Pennington  <hp@pobox.com>
11506
11507         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11508         \r off of popped lines
11509
11510         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11511         scripts
11512
11513         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11514         SEND, append \r\n
11515
11516 2003-02-12  Havoc Pennington  <hp@pobox.com>
11517
11518         * dbus/Makefile.am: remove break-loader from the build, since it
11519         moved.
11520
11521         * configure.in: add --enable-gcov to turn on coverage profiling
11522         flags and disable optimization
11523
11524 2003-02-10  Havoc Pennington  <hp@pobox.com>
11525
11526         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11527         initial cut at test framework for DBusAuth from laptop.
11528         Doesn't quite work yet but it compiles and I need to get
11529         it off the 266mhz laptop. ;-)
11530
11531         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11532         fix a memleak in error case
11533
11534 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11535
11536         * bus/Makefile.am:
11537         * bus/desktop-file.c:
11538         * bus/desktop-file.h:
11539         Add a desktop file parser.
11540
11541 2003-02-11  Zack Rusin  <zack@kde.org>
11542
11543         * qt/message.[h|cpp]: sample implementation
11544         of the KDE wrapper for DBusMessage
11545
11546 2003-02-09  Zack Rusin  <zack@kde.org>
11547
11548         * test/bus-test.c: make_it_compile
11549         * doc/dbus-specification.sgml: minimal semantic fix
11550
11551 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11552
11553         Release 0.3
11554
11555         * NEWS: Update
11556
11557 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11558
11559         * dbus/Makefile.am:
11560         * dbus/dbus-break-loader.c:
11561         * test/Makefile.am:
11562         * test/break-loader.c:
11563         Move dbus-break-loader to test/ and rename it to break-loader.
11564
11565 2003-02-02  Havoc Pennington  <hp@pobox.com>
11566
11567         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11568         for code to manage cookies in your home directory
11569
11570         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11571
11572         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11573         to authenticate, then disconnect the client.
11574
11575 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11576
11577         * dbus/dbus-message.c (dbus_message_append_fields):
11578         Correct docs.
11579
11580 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11581
11582         * doc/dbus-specification.sgml:
11583         Update address format section.
11584
11585 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11586
11587         * test/Makefile.am:
11588         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11589         (message_handler), (new_connection_callback), (loop_quit),
11590         (loop_run), (main):
11591         Add bus test.
11592
11593 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11594
11595         * bus/driver.c: (bus_driver_handle_service_exists):
11596         Simplify the code a bit.
11597
11598         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11599         Fix a silly.
11600
11601 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11602
11603         * bus/Makefile.am:
11604         Add libdbus-daemon.la and link to it.
11605
11606 2003-02-01  James Willcox  <jwillcox@gnome.org>
11607
11608         * bus/driver.c: (bus_driver_handle_own_service):
11609         Actually include the service reply code in the message.
11610
11611 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11612
11613         * bus/driver.c: (bus_driver_handle_service_exists):
11614         Don't unref the incoming message.
11615
11616 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11617
11618         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11619
11620 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11621
11622         * dbus/dbus-server.c: (dbus_server_listen):
11623         * dbus/dbus-transport.c: (_dbus_transport_open):
11624         ifdef out the calls to the debug transport and server.
11625
11626 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11627
11628         * dbus/dbus-watch.c (dbus_watch_get_flags):
11629         Add note in the docs that ERROR or HANGUP won't be returned
11630         and are assumed always on.
11631
11632         * glib/dbus-gmain.c (add_watch):
11633         Always add IO_ERR | IO_HUP
11634
11635         * dbus/dbus-message.h:
11636         Add semicolon after dbus_message_iter_get_string_array().
11637         Makes qt code build again
11638
11639 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11640
11641         * bus/driver.c: (create_unique_client_name),
11642         (bus_driver_handle_hello):
11643         Don't take a name, just use a numeric id to identify
11644         each client.
11645
11646         * dbus/Makefile.am:
11647         * dbus/dbus-bus.c: (dbus_bus_register_client),
11648         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11649         * dbus/dbus-bus.h:
11650         Add new convenience functions for communicating with the bus.
11651
11652         * dbus/dbus-message.h:
11653
11654         * dbus/dbus-protocol.h:
11655         Fix a typo.
11656
11657 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11658
11659         * dbus/dbus-message.c (dbus_message_append_fields):
11660         Add some more doc comments.
11661
11662 2003-02-01  Havoc Pennington  <hp@pobox.com>
11663
11664         * dbus/dbus-break-loader.c (randomly_modify_length): change
11665         a 4-byte value in the message as if it were a length
11666
11667         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11668         execute bit on saved files
11669
11670 2003-02-01  Havoc Pennington  <hp@pobox.com>
11671
11672         * dbus/dbus-break-loader.c (main): new program to find messages
11673         that break the loader.
11674
11675         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11676         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11677
11678         * dbus/dbus-string.c (_dbus_string_set_byte): new
11679
11680 2003-01-31  Havoc Pennington  <hp@pobox.com>
11681
11682         * dbus/dbus-message.c: refactor the test code to be more general,
11683         in preparation for writing a "randomly permute test cases to
11684         try to break the loader" program.
11685
11686 2003-01-31  Havoc Pennington  <hp@pobox.com>
11687
11688         * doc/dbus-specification.sgml: work on the specification
11689
11690         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11691         the protocol version of the message.
11692
11693         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11694         no longer specifies that.
11695         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11696         1/2/3/4)
11697
11698         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11699         "break" for DBUS_TYPE_NIL, remove @todo
11700
11701 2003-01-31  Havoc Pennington  <hp@pobox.com>
11702
11703         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11704         just set_is_error/get_is_error as this is a commonly-used
11705         function, and write docs.
11706
11707 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11708
11709         * dbus/dbus-address.c: (dbus_address_entry_free):
11710         Free key and value lists.
11711
11712         * dbus/dbus-internals.c: (_dbus_type_to_string):
11713         Add the types we didn't have.
11714
11715         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11716         (_dbus_marshal_validate_arg):
11717         Add NIL types.
11718
11719         * dbus/dbus-message.c: (dbus_message_set_sender):
11720         Remove todo about being able to set sender to NULL.
11721
11722         (dbus_message_set_is_error_reply),
11723         (dbus_message_get_is_error_reply):
11724         * dbus/dbus-message.h:
11725         New functions.
11726
11727         * dbus/dbus-protocol.h:
11728         Add error reply flag.
11729
11730         * test/data/valid-messages/opposite-endian.message:
11731         Add NIL type to test.
11732
11733 2003-01-31  Havoc Pennington  <hp@pobox.com>
11734
11735         * doc/dbus-specification.sgml: fully specify the header.  Add
11736         flags and major protocol version, and change header/body len to
11737         unsigned.
11738
11739         * dbus/dbus-message-builder.c (append_saved_length): append length
11740         as uint32
11741
11742         * dbus/dbus-message.c (dbus_message_create_header): change header
11743         length and body length to unsigned. Add the new fields from the
11744         spec
11745         (_dbus_message_loader_return_buffer): unsigned header/body len
11746
11747 2003-01-30  Havoc Pennington  <hp@pobox.com>
11748
11749         * dbus/dbus-auth.c: rework to use only REJECTED, no
11750         MECHANISMS
11751
11752         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11753         use REJECTED, suggested by Mark McLoughlin
11754
11755 2003-01-30  Havoc Pennington  <hp@pobox.com>
11756
11757         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11758         a better way to report errors here. e.g.  "unix address lacks
11759         path" or something. also "no such file" when the path doesn't
11760         exist, etc.
11761
11762         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11763         leaking list nodes
11764         (dbus_parse_address): add @todo about documenting address format,
11765         and allowing , and ; to be escaped
11766
11767 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11768
11769         * dbus/Makefile.am:
11770         Add dbus-address.[ch]
11771
11772         * dbus/dbus-address.c: (dbus_address_entry_free),
11773         (dbus_address_entries_free), (create_entry),
11774         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11775         (dbus_parse_address), (_dbus_address_test):
11776         * dbus/dbus-address.h:
11777         New files for dealing with address parsing.
11778
11779         * dbus/dbus-connection.c:
11780         Document timeout functions.
11781
11782         * dbus/dbus-message.c:
11783         Document dbus_message_new_from_message.
11784
11785         * dbus/dbus-server-debug.c:
11786         Document.
11787
11788         * dbus/dbus-server.c: (dbus_server_listen):
11789         Parse address and use correct server implementation.
11790
11791         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11792         * dbus/dbus-string.h:
11793         New function with test.
11794
11795         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11796         * dbus/dbus-test.h:
11797         Add address tests.
11798
11799         * dbus/dbus-transport-debug.c:
11800         Document.
11801
11802         * dbus/dbus-transport.c: (_dbus_transport_open):
11803         Parse address and use correct transport implementation.
11804
11805 2003-01-30  Havoc Pennington  <hp@pobox.com>
11806
11807         * dbus/dbus-message.c: use message->byte_order instead of
11808         DBUS_COMPILER_BYTE_ORDER throughout.
11809         (dbus_message_create_header): pad header to align the
11810         start of the body of the message to 8-byte boundary
11811
11812         * dbus/dbus-marshal.h: make all the demarshalers take const
11813         DBusString arguments.
11814
11815         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11816         validate message args here, so we don't have to do slow validation
11817         later, and so we catch bad messages as they are incoming. Also add
11818         better checks on header_len and body_len. Also fill in
11819         message->byte_order
11820
11821         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11822         implemented properly)
11823         (_dbus_string_validate_nul): new function to check all-nul
11824
11825         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11826         get_arg_end_pos and remove all validation
11827         (_dbus_marshal_validate_arg): actually do validation here.
11828
11829 2003-01-29  Havoc Pennington  <hp@pobox.com>
11830
11831         * dbus/dbus-message.c (check_message_handling): fix assertion
11832         failure on set_client_serial
11833
11834 2003-01-28  Havoc Pennington  <hp@pobox.com>
11835
11836         * dbus/dbus-server-debug.c: Add doc section comments
11837
11838         * dbus/dbus-transport-debug.c: add doc section comments
11839
11840 2003-01-28  Havoc Pennington  <hp@redhat.com>
11841
11842         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11843         the reverse order from how I had it
11844         (_dbus_string_base64_encode): reverse encoding order. I was
11845         basically byteswapping everything during encoding.
11846
11847 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11848
11849         * dbus/dbus-connection-internal.h:
11850         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11851         (_dbus_connection_remove_timeout):
11852         Add functions for adding and removing timeouts.
11853
11854         * dbus/dbus-message.c: (dbus_message_new_from_message):
11855         Add new function that takes a message and creates an exact
11856         copy of it, but with the refcount set to 1.
11857         (check_message_handling):
11858         Fix build error.
11859
11860         * dbus/dbus-server-protected.h:
11861         * dbus/dbus-server.c: (_dbus_server_init_base),
11862         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11863         (dbus_server_set_timeout_functions):
11864         (_dbus_server_remove_timeout):
11865         New functions so that a server can add and remove timeouts.
11866
11867         (dbus_server_listen):
11868         Add commented out call to dbus_server_debug_new.
11869
11870         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11871         Actually set the handler, doh.
11872
11873         * dbus/dbus-transport.c: (_dbus_transport_open):
11874         Add commented out call to dbus_transport_debug_client_new.
11875
11876         * dbus/Makefile.am:
11877         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11878
11879 2003-01-28  Havoc Pennington  <hp@pobox.com>
11880
11881         * dbus/dbus-message.c (check_message_handling): function to check
11882         on the loaded message, iterates over it etc.
11883
11884 2003-01-28  Havoc Pennington  <hp@pobox.com>
11885
11886         * test/Makefile.am (dist-hook): fix make distdir
11887
11888         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11889
11890 2003-01-27  Havoc Pennington  <hp@pobox.com>
11891
11892         * dbus/dbus-mempool.c (time_for_size): replace printf with
11893         _dbus_verbose
11894
11895         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11896         empty lines; fix the SAVE_LENGTH stuff to be
11897         START_LENGTH/END_LENGTH so it actually works; couple other
11898         bugfixes
11899
11900         * test/Makefile.am (dist-hook): add dist-hook for .message files
11901
11902         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11903         can be constant or locked.
11904         (_dbus_string_free): allow freeing a const string as
11905         documented/intended
11906
11907         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11908
11909         * dbus/dbus-test-main.c (main): take an argument which is the
11910         directory containing test data
11911
11912         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11913         argument to this and load all the messages in test/data/
11914         checking that they can be loaded or not loaded as appropriate.
11915
11916 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11917
11918         * bus/dispatch.c: (bus_dispatch_message_handler):
11919         Dispatch messages sent to services.
11920
11921         * bus/driver.c: (bus_driver_send_service_deleted),
11922         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11923         (bus_driver_send_service_acquired):
11924         Add helper functions for sending service related messages.
11925
11926         (bus_driver_send_welcome_message):
11927         Send HELLO_REPLY instead of WELCOME.
11928
11929         (bus_driver_handle_list_services):
11930         Send LIST_SERVICES_REPLY instead of SERVICES.
11931
11932         (bus_driver_handle_own_service),
11933         (bus_driver_handle_service_exists):
11934         New message handlers.
11935
11936         (bus_driver_handle_message):
11937         Invoke new message handlers.
11938
11939         (bus_driver_remove_connection):
11940         Don't remove any services here since that's done automatically
11941         by bus_service_remove_owner now.
11942
11943         * bus/driver.h:
11944         New function signatures.
11945
11946         * bus/services.c: (bus_service_add_owner):
11947         Send ServiceAcquired message if we're the only primary owner.
11948
11949         (bus_service_remove_owner):
11950         Send ServiceAcquired/ServiceLost messages.
11951
11952         (bus_service_set_prohibit_replacement),
11953         (bus_service_get_prohibit_replacement):
11954         Functions for setting prohibit replacement.
11955
11956         (bus_service_has_owner):
11957         New function that checks if a connection is in the owner queue of
11958         a certain service.
11959
11960         * bus/services.h:
11961         Add new function signatures.
11962
11963         * dbus/dbus-list.c: (_dbus_list_test):
11964         Add tests for _dbus_list_remove_last and traversing the list backwards.
11965
11966         * dbus/dbus-list.h:
11967         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11968         go any further, so return NULL then.
11969
11970         * dbus/dbus-protocol.h:
11971         Add new messages, service flags and service replies.
11972
11973 2003-01-26  Havoc Pennington  <hp@pobox.com>
11974
11975         * dbus/dbus-message-builder.c: implement, completely untested.
11976
11977         * test/data/*: add data to be used in testing.
11978         ".message" files are our simple loadable text format.
11979         ".message-raw" will be binary dumps of messages.
11980
11981         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11982
11983 2003-01-26  Havoc Pennington  <hp@pobox.com>
11984
11985         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11986
11987         * dbus/dbus-errors.c (dbus_result_to_string): add
11988         file errors
11989
11990         * dbus/dbus-message-builder.c: new file, will contain code to load
11991         up messages from files. Not implemented yet.
11992
11993 2003-01-26  Havoc Pennington  <hp@pobox.com>
11994
11995         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11996         the sender by setting to NULL
11997
11998 2003-01-26  Havoc Pennington  <hp@pobox.com>
11999
12000         The unit tests pass, but otherwise untested.  If it breaks, the
12001         tests should have been better. ;-)
12002
12003         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12004         the connection.
12005
12006         * dbus/dbus-message.c: redo everything so we maintain
12007         message->header as the only copy of the various fields.
12008         This avoids the possibility of out-of-memory in some cases,
12009         for example dbus_message_lock() can't run out of memory anymore,
12010         and avoids extra copying. Figured I may as well go ahead and do
12011         this since it was busted for dbus_message_lock to not return
12012         failure on OOM, and dbus_message_write_header was totally
12013         unchecked for OOM. Also fixed some random other bugs.
12014
12015         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12016         that strings are nul-terminated. Also, end_pos can be equal
12017         to string length just not greater than, I think.
12018         (_dbus_marshal_set_int32): new function
12019         (_dbus_marshal_set_uint32): new function
12020         (_dbus_marshal_set_string): new function
12021
12022         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12023         a warning, init timeout_list to NULL
12024         (dbus_connection_send_message): don't use uninitialized variable
12025         "serial"
12026
12027         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12028
12029 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12030
12031         * bus/driver.c: (bus_driver_handle_hello),
12032         (bus_driver_send_welcome_message):
12033         Plug leaks
12034
12035 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12036
12037         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12038         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12039         (dbus_connection_unref):
12040         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12041         * dbus/dbus-message.c: (dbus_message_unref),
12042         Plug memory leaks.
12043
12044         (dbus_message_get_fields):
12045         Remove debugging printout.
12046
12047         (_dbus_message_loader_return_buffer):
12048         Don't store the header string.
12049
12050         (_dbus_message_test):
12051         Plug leaks.
12052
12053 2003-01-26  Richard Hult  <rhult@codefactory.se>
12054
12055         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12056         the file descriptor list, since it can change under us.
12057
12058 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12059
12060         * glib/dbus-gmain.c: (dbus_connection_prepare),
12061         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12062         (remove_watch), (dbus_connection_hookup_with_g_main):
12063         Rewrite the glib handling to use its own GSource instead of a
12064         GIOChannel so we can catch messages put in the queue while waiting
12065         for a reply.
12066
12067 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12068
12069         * bus/Makefile.am:
12070         * bus/connection.c: (connection_disconnect_handler),
12071         (connection_watch_callback), (bus_connection_setup):
12072         * bus/dispatch.c: (send_one_message),
12073         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12074         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12075         * bus/dispatch.h:
12076         * bus/driver.c: (bus_driver_send_service_deleted),
12077         (bus_driver_send_service_created), (bus_driver_handle_hello),
12078         (bus_driver_send_welcome_message),
12079         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12080         (bus_driver_handle_message):
12081         * bus/driver.h:
12082         Refactor code, put the message dispatching in its own file. Use
12083         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12084         is disconnected.
12085
12086 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12087
12088         * dbus/dbus-internals.h:
12089         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12090
12091         * dbus/dbus-message.c: (dbus_message_get_sender):
12092         * dbus/dbus-message.h:
12093         Implement dbus_message_get_sender.
12094
12095         * dbus/dbus-protocol.h:
12096         Add message and service defines.
12097
12098 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12099
12100         * dbus/dbus-connection.c: (dbus_connection_send_message):
12101         * dbus/dbus-message-internal.h:
12102         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12103         (dbus_message_write_header):
12104         Remove _dbus_messag_unlock and don't set the client serial on a
12105         message if one already exists.
12106
12107 2003-01-24  Havoc Pennington  <hp@pobox.com>
12108
12109         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12110         list_pool
12111
12112         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12113         on OOM
12114
12115 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12116
12117         * dbus/dbus-list.c: (alloc_link), (free_link):
12118         Use a memory pool for the links.
12119
12120 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12121
12122         * bus/connection.c: (bus_connection_foreach):
12123         * bus/connection.h:
12124         Add new bus_connection_foreach function.
12125
12126         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12127         Add function that broadcasts a message to all clients.
12128
12129         (bus_driver_send_service_created), (bus_driver_handle_hello),
12130         (bus_driver_send_welcome_message),
12131         (bus_driver_handle_list_services), (bus_driver_message_handler):
12132         Implement functions that take care of listing services, and notifying
12133         clients when new services are created.
12134
12135         * bus/services.c: (bus_services_list):
12136         * bus/services.h:
12137         Add new function that returns an array of strings with the currently
12138         registered services.
12139
12140         * glib/dbus-glib.h:
12141         * glib/dbus-gmain.c:
12142         Update copyright year.
12143
12144 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * dbus/dbus-connection.c: (dbus_connection_send_message):
12147         Unlock the message in case it was sent earlier.
12148
12149         (dbus_connection_send_message_with_reply_and_block):
12150         Remove the reply message from the list.
12151
12152         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12153         Set array_len and new_pos correctly.
12154
12155         (_dbus_marshal_test):
12156         Remove debug output.
12157
12158         * dbus/dbus-message-internal.h:
12159         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12160         New function that returns the reply serial.
12161
12162         (_dbus_message_unlock):
12163         New function that unlocks a message and resets its header.
12164
12165         (dbus_message_append_string_array),
12166         (dbus_message_get_fields_valist),
12167         (dbus_message_iter_get_field_type),
12168         (dbus_message_iter_get_string_array),
12169         (dbus_message_get_fields),
12170         (dbus_message_append_fields_valist):
12171         Handle string arrays.
12172
12173         (dbus_message_set_sender):
12174         Make this function public since the bus daemon needs it.
12175
12176         (decode_header_data):
12177         Set the reply serial to -1 initially.
12178
12179         * dbus/dbus-message.h:
12180         Add dbus_message_set_sender.
12181
12182 2003-01-24  Havoc Pennington  <hp@pobox.com>
12183
12184         * doc/dbus-specification.sgml: add some stuff
12185
12186 2003-01-22  Havoc Pennington  <hp@pobox.com>
12187
12188         * doc/dbus-specification.sgml: Start to document the protocol.
12189
12190 2003-01-22  Havoc Pennington  <hp@pobox.com>
12191
12192         * dbus/dbus-connection.c
12193         (dbus_connection_send_message_with_reply_and_block): add some @todo
12194
12195         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12196
12197 2003-01-21  Havoc Pennington  <hp@pobox.com>
12198
12199         (patch untested because can't compile)
12200
12201         * bus/driver.c (create_unique_client_name): make this function
12202         never recycle client names. Also, caller should initialize
12203         the DBusString.
12204
12205         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12206
12207 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12208
12209         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12210         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12211         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12212         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12213         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12214         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12215         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12216         * dbus/dbus-marshal.h:
12217         * dbus/dbus-protocol.h:
12218         Add support for marshalling and demarshalling integer, double
12219         and string arrays.
12220
12221 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12222
12223         * bus/Makefile.am:
12224         Add driver.[ch]
12225
12226         * bus/connection.c: (connection_disconnect_handler):
12227         Remove the connection from the bus driver's list.
12228
12229         (connection_watch_callback): Dispatch messages.
12230
12231         (free_connection_data): Free connection name.
12232
12233         (bus_connection_setup): Add connection to the bus driver's list.
12234         (bus_connection_remove_owned_service):
12235         (bus_connection_set_name), (bus_connection_get_name):
12236         Add functions for setting and getting the connection's name.
12237
12238         * bus/connection.h:
12239         Add function headers.
12240
12241         * bus/driver.c: (create_unique_client_name),
12242         (bus_driver_handle_hello_message),
12243         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12244         (bus_driver_add_connection), (bus_driver_remove_connection):
12245         * bus/driver.h:
12246         * bus/main.c:
12247         * bus/services.c: (bus_service_free):
12248         * bus/services.h:
12249         New file that handles communication and registreation with the bus
12250         itself.
12251
12252 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12253
12254         * dbus/dbus-connection.c: (dbus_connection_send_message):
12255         Add a new client_serial parameter.
12256
12257         (dbus_connection_send_message_with_reply):
12258         Remove a @todo since we've implemented the blocking function.
12259
12260         (dbus_connection_send_message_with_reply_and_block):
12261         New function that sends a message and waits for a reply and
12262         then returns the reply.
12263
12264         * dbus/dbus-connection.h:
12265         Add new functions.
12266
12267         * dbus/dbus-errors.c: (dbus_result_to_string):
12268         * dbus/dbus-errors.h:
12269         Add new DBUS_RESULT.
12270
12271         * dbus/dbus-message-internal.h:
12272         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12273         (_dbus_message_set_sender), (dbus_message_write_header),
12274         (dbus_message_new_reply), (decode_header_data),
12275         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12276         * dbus/dbus-message.h:
12277         Add new functions that set the reply serial and sender.
12278         Also marshal and demarshal them correctly and add test.
12279
12280         * dbus/dbus-protocol.h:
12281         Add new DBUS_MESSAGE_TYPE_SENDER.
12282
12283         * glib/dbus-glib.h:
12284         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12285         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12286         (dbus_connection_hookup_with_g_main):
12287         * glib/test-dbus-glib.c: (main):
12288         Rewrite to use GIOChannel and remove the GSource crack.
12289
12290         * test/echo-client.c: (main):
12291         * test/watch.c: (check_messages):
12292         Update for changed APIs
12293
12294 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12295
12296         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12297
12298         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12299         Create a DBusTimeoutList.
12300         (dbus_connection_set_timeout_functions): Add new function to
12301         set timeout callbacks
12302
12303         * dbus/dbus-connection.h: Add public DBusTimeout API.
12304
12305         * dbus/dbus-message.c: (dbus_message_get_service):
12306         * dbus/dbus-message.h:  New function.
12307
12308         * dbus/dbus-server.c: Fix small doc typo.
12309
12310         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12311
12312 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12313
12314         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12315         of the string, just as long as specified.
12316
12317 2003-01-19  Havoc Pennington  <hp@pobox.com>
12318
12319         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12320         new function
12321
12322         * dbus/dbus-server.c (dbus_server_set_max_connections)
12323         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12324         keep track of current number of connections, and add API for
12325         setting a max (but haven't implemented enforcing the max yet)
12326
12327 2003-01-18  Havoc Pennington  <hp@pobox.com>
12328
12329         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12330         reading/writing if read_watch != NULL or write_watch != NULL.
12331
12332         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12333         the message loader code to actually load message->header and
12334         message->body into the newly-created message.
12335
12336         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12337         in OOM case
12338
12339         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12340         (dbus_connection_get_max_message_size)
12341         (dbus_connection_set_max_live_messages_size)
12342         (dbus_connection_get_max_live_messages_size): implement some
12343         resource limitation functions
12344
12345         * dbus/dbus-resources.c: new file implementing some of the
12346         resource limits stuff
12347
12348         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12349         missing docs, add @todo to handle OOM etc.
12350
12351         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12352         docs
12353
12354 2003-01-18  Havoc Pennington  <hp@pobox.com>
12355
12356         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12357         connection if it hasn't been already.
12358
12359         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12360         replace with DisconnectFunction.
12361
12362 2003-01-18  Havoc Pennington  <hp@pobox.com>
12363
12364         Building --disable-verbose-mode --disable-asserts --disable-tests
12365         cuts the library from 112K to 45K or so
12366
12367         * configure.in: check for varargs macro support,
12368         add --enable-verbose-mode, --enable-asserts.
12369
12370         * dbus/dbus-internals.h (_dbus_assert): support
12371         DBUS_DISABLE_ASSERT
12372         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12373
12374 2003-01-18  Havoc Pennington  <hp@pobox.com>
12375
12376         * dbus/dbus-test.c: include config.h so that tests actually run
12377
12378         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12379         so the failure mode when that assumption fails will be plenty
12380         obvious.
12381
12382 2003-01-18  Havoc Pennington  <hp@pobox.com>
12383
12384         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12385
12386         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12387         the distribution
12388
12389         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12390         since we don't want to use those in make check
12391
12392 2003-01-15  Havoc Pennington  <hp@redhat.com>
12393
12394         Release 0.2
12395
12396         * NEWS: update
12397
12398 2003-01-15  Havoc Pennington  <hp@redhat.com>
12399
12400         * test/Makefile.am: fix so that test source code ends up in the
12401         distribution on make distcheck
12402
12403 2003-01-15  Havoc Pennington  <hp@redhat.com>
12404
12405         Release 0.1.
12406
12407         * NEWS: update
12408
12409 2003-01-15  Havoc Pennington  <hp@redhat.com>
12410
12411         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12412         fix build when --disable-tests
12413
12414         * Makefile.am (EXTRA_DIST): put HACKING in here
12415
12416         * HACKING: document procedure for making a tarball release.
12417
12418 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12419
12420         * bus/connection.c: (connection_error_handler),
12421         (bus_connection_setup):
12422         * bus/main.c: (main):
12423         Make sure that the DBusConnectionData struct is NULLed
12424         out to prevent a segfault.
12425
12426         * dbus/dbus-errors.c: (dbus_result_to_string):
12427         * dbus/dbus-errors.h:
12428         * dbus/dbus-message.c: (dbus_message_get_fields),
12429         (dbus_message_get_fields_valist), (_dbus_message_test):
12430         * dbus/dbus-message.h:
12431         Make dbus_message_get_fields return a result code so we can
12432         track invalid fields as well as oom.
12433
12434 2003-01-11  Havoc Pennington  <hp@pobox.com>
12435
12436         * configure.in: change --enable-test/--enable-ansi action-if-given
12437         to enable_foo=$enableval instead of enable_foo=yes
12438
12439 2003-01-08  Havoc Pennington  <hp@pobox.com>
12440
12441         * dbus/dbus-string.c (_dbus_string_align_length): new function
12442
12443         * dbus/dbus-test-main.c: move main() for test app here
12444         * dbus/dbus-test.c
12445         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12446         symbol to run tests, because dbus-test isn't in the main
12447         library
12448
12449         Code review nitpicks.
12450
12451         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12452         for people with narrow emacs ;-). Assert client_serial was filled
12453         in. Assert message->name != NULL.
12454         (dbus_message_append_fields): have "first_field_type" arg separate
12455         from va list, needed for C++ binding that also uses varargs IIRC
12456         and helps with type safety
12457         (dbus_message_new): add @todo about using DBusString to store
12458         service/name internally
12459         (dbus_message_new): don't leak ->service and ->name on OOM later
12460         in the function
12461         (dbus_message_unref): free the service name
12462         (dbus_message_get_fields): same change to varargs
12463         i.e. first_field_type
12464         (_dbus_message_loader_return_buffer): assert that the message data
12465         is aligned (if not it's a bug in our code). Put in verbose griping
12466         about why we set corrupted = TRUE.
12467         (decode_header_data): add FIXME that char* is evil.  Was going to
12468         add FIXME about evil locale-specific string.h strncmp, but just
12469         switched to wacky string-as-uint32 optimization. Move check for
12470         "no room for field name" above get_const_data_len() to avoid
12471         assertion failure in get_const_data_len if we have trailing 2
12472         bytes or the like. Check for service and name fields being
12473         provided twice. Don't leak service/name on error. Require field
12474         names to be aligned to 4 bytes.
12475
12476         * dbus/dbus-marshal.c: move byte swap stuff to header
12477         (_dbus_pack_int32): uscore-prefix
12478         (_dbus_unpack_int32): uscore-prefix
12479         (_dbus_unpack_uint32): export
12480         (_dbus_demarshal_string): add @todo complaining about use of
12481         memcpy()
12482         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12483         handling allowing corrupt data to go unchecked
12484
12485 2003-01-08  Havoc Pennington  <hp@redhat.com>
12486
12487         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12488         to the select() as needed for authentication. (should be using
12489         _dbus_poll() not select, but for another day)
12490
12491         * dbus/dbus.h: include dbus/dbus-protocol.h
12492
12493 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12494
12495         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12496         dbus-connection.h
12497
12498 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12499
12500         * dbus/dbus-internals.c: (_dbus_type_to_string):
12501         New function that returns a string describing a type.
12502
12503         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12504         * dbus/dbus-marshal.h:
12505         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12506         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12507         (dbus_message_iter_get_byte_array):
12508         * dbus/dbus-message.h:
12509         Add new convenience functions for appending and getting message fields.
12510         Also add demarshalling routines for byte arrays.
12511
12512 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12513
12514         * dbus/dbus-connection-internal.h:
12515         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12516         (_dbus_connection_get_next_client_serial),
12517         (dbus_connection_send_message):
12518         * dbus/dbus-internals.h:
12519         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12520         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12521         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12522         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12523         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12524         (_dbus_verbose_bytes), (_dbus_marshal_test):
12525         * dbus/dbus-marshal.h:
12526         * dbus/dbus-message-internal.h:
12527         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12528         (dbus_message_write_header), (_dbus_message_lock),
12529         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12530         (dbus_message_get_name), (dbus_message_append_int32),
12531         (dbus_message_append_uint32), (dbus_message_append_double),
12532         (dbus_message_append_string), (dbus_message_append_byte_array),
12533         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12534         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12535         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12536         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12537         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12538         (decode_header_data), (_dbus_message_loader_return_buffer),
12539         (message_iter_test), (_dbus_message_test):
12540         * dbus/dbus-message.h:
12541         * dbus/dbus-protocol.h:
12542         * dbus/dbus-test.c: (main):
12543         * dbus/dbus-test.h:
12544         * glib/test-dbus-glib.c: (message_handler), (main):
12545         * test/echo-client.c: (main):
12546         * test/watch.c: (check_messages):
12547         Make messages sendable and receivable for real.
12548
12549 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12550
12551         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12552         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12553         * dbus/dbus-message.c: (dbus_message_append_int32),
12554         (dbus_message_append_uint32), (dbus_message_append_double),
12555         (dbus_message_append_string), (dbus_message_append_byte_array):
12556         Handle OOM restoration.
12557
12558 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12559
12560         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12561         (_dbus_demarshal_string), (_dbus_marshal_test):
12562         * dbus/dbus-marshal.h:
12563         * dbus/dbus-message.c: (dbus_message_get_name),
12564         Document these functions.
12565
12566         (dbus_message_append_int32), (dbus_message_append_uint32),
12567         (dbus_message_append_double), (dbus_message_append_string),
12568         (dbus_message_append_byte_array):
12569         * dbus/dbus-message.h:
12570         Add functions for adding message fields of different types.
12571
12572         * dbus/dbus-protocol.h:
12573         Add the different types.
12574
12575 2003-01-05  Havoc Pennington  <hp@pobox.com>
12576
12577         * bus/connection.c: implement routines for handling connections,
12578         first thing is keeping a list of owned services on each connection
12579         and setting up watches etc.
12580
12581         * bus/services.c: implement a mapping from service names to lists
12582         of connections
12583
12584         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12585
12586         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12587         to use static mutexes for global data
12588
12589         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12590         collection of functions to set/get application-specific data
12591         on the DBusConnection.
12592
12593 2003-01-04  Havoc Pennington  <hp@pobox.com>
12594
12595         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12596         (_dbus_poll): new function
12597
12598         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12599         copied from GLib
12600
12601         * bus/loop.c: initial code for the daemon main loop
12602
12603 2003-01-04  Havoc Pennington  <hp@pobox.com>
12604
12605         * test/watch.c (error_handler): make it safe if the error handler
12606         is called multiple times (if we s/error handler/disconnect
12607         handler/ we should just guarantee it's called only once)
12608
12609         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12610         error handler on disconnect (it's quite possible we should
12611         just change the error handler to a "disconnect handler," I'm
12612         not sure we have any other meaningful errors)
12613
12614         * configure.in: check for getpwnam_r
12615
12616         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12617         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12618         mechanism as in SASL spec, using socket credentials
12619
12620         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12621         (_dbus_send_credentials_unix_socket): new function
12622
12623         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12624         dbus_accept()
12625         (_dbus_write): only check errno if <0 returned
12626         (_dbus_write_two): ditto
12627
12628 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12629
12630         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12631         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12632         (_dbus_marshal_test):
12633         * dbus/dbus-marshal.h:
12634         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12635         to _dbus_marshal_utf8_string. Also fix some tests.
12636
12637 2002-12-28  Harri Porten  <porten@kde.org>
12638
12639         * configure.in: added check for C++ compiler and a very cheesy
12640         check for the Qt integration
12641
12642         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12643
12644         * qt/Makefile.am: added
12645
12646         * qt/.cvsignore: added
12647
12648         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12649         latter, added #ifdef QT_THREAD_SUPPORT guard.
12650
12651         * dbus/Makefile.am: added missing headers for make dist
12652
12653 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12654
12655         * dbus/Makefile.am: fixup export-symbols-regex.
12656
12657 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12658
12659         * acinclude.m4: Add this file and put the
12660         PKG_CHECK_MODULE macro in it.
12661
12662 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12663
12664         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12665         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12666         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12667         (_dbus_marshal_test):
12668         Make the demarshalling routines align the pos argument.
12669         Add string marshalling tests and fix the obvious bugs
12670         discovered.
12671
12672 2002-12-26  Havoc Pennington  <hp@pobox.com>
12673
12674         * dbus/dbus-auth.c: fixes fixes fixes
12675
12676         * dbus/dbus-transport-unix.c: wire up support for
12677         encoding/decoding data on the wire
12678
12679         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12680         (_dbus_auth_decode_data): append to target string
12681         instead of nuking it.
12682
12683 2002-12-26  Havoc Pennington  <hp@pobox.com>
12684
12685         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12686         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12687         doh
12688
12689         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12690         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12691         now). Main point is because I wanted unpack_uint32 to implement
12692         _dbus_verbose_bytes
12693         (_dbus_verbose_bytes): new function
12694
12695         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12696
12697         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12698         mechanism to handle a corrupt message stream
12699         (_dbus_message_loader_new): fix preallocation to only prealloc,
12700         not prelengthen
12701
12702         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12703         (_dbus_string_test): enhance tests for copy/move and fix the
12704         functions
12705
12706         * dbus/dbus-transport-unix.c: Hold references in more places to
12707         avoid reentrancy problems
12708
12709         * dbus/dbus-transport.c: ditto
12710
12711         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12712         leak reference count in no-message case
12713
12714         * test/watch.c (do_mainloop): handle adding/removing watches
12715         during iteration over the watches. Also, ref the connection/server
12716         stored on a watch, so we don't try to mangle a destroyed one.
12717
12718         * dbus/dbus-transport-unix.c (do_authentication): perform
12719         authentication
12720
12721         * dbus/dbus-auth.c (get_state): add a state
12722         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12723         (_dbus_auth_get_unused_bytes): append the unused bytes
12724         to the passed in string, rather than prepend
12725
12726         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12727         the auth conversation DBusAuth
12728
12729         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12730         (_dbus_transport_new_for_domain_socket): when creating a
12731         transport, pass in whether it's a client-side or server-side
12732         transport so we know which DBusAuth to create
12733
12734 2002-12-03  Havoc Pennington  <hp@pobox.com>
12735
12736         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12737         _after_ finalizing the derived members
12738         (unix_connection_set): unref watch if we fail to add it
12739
12740         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12741         transport first, so that the connection owned by the
12742         transport will be valid as the transport finalizes.
12743
12744         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12745         if necessary, and remove watches from the connection.
12746
12747         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12748
12749 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12750
12751         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12752         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12753         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12754         (_dbus_marshal_test):
12755         * dbus/dbus-marshal.h:
12756         Add string marshal functions and have the demarshal functions
12757         return the new position.
12758
12759 2002-12-25  Havoc Pennington  <hp@pobox.com>
12760
12761         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12762         it is a simple protocol that just maps directly to SASL.
12763
12764         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12765         initial implementation, not actually used yet.
12766
12767         * dbus/dbus-string.c (_dbus_string_find): new function
12768         (_dbus_string_equal): new function
12769         (_dbus_string_base64_encode): new function
12770         (_dbus_string_base64_decode): new function
12771
12772 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12773
12774         * dbus/Makefile.am:
12775         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12776         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12777         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12778         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12779         * dbus/dbus-marshal.h:
12780         * dbus/dbus-protocol.h:
12781         * dbus/dbus-test.c: (main):
12782         * dbus/dbus-test.h:
12783         Add un-optimized marshalling/demarshalling routines.
12784
12785 2002-12-25  Harri Porten  <porten@kde.org>
12786
12787         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12788
12789 2002-12-24  Zack Rusin  <zack@kde.org>
12790
12791         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12792         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12793         main loop stuff
12794
12795 2002-12-24  Havoc Pennington  <hp@pobox.com>
12796
12797         * glib/dbus-gthread.c: fix include
12798
12799         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12800         I think glib API needs to change, though, as you don't
12801         want to use DBusMessageFunction, you want to use the
12802         DBusMessageHandler object. Probably
12803         dbus_connection_open_with_g_main_loop()
12804         and dbus_connection_setup_g_main_loop() or something like that
12805         (but think of better names...) that just create a connection
12806         that has watch/timeout functions etc. already set up.
12807
12808         * dbus/dbus-connection.c
12809         (dbus_connection_send_message_with_reply): new function just to
12810         show how the message handler helps us deal with replies.
12811
12812         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12813
12814         * dbus/dbus-string.c (_dbus_string_test): free a string that
12815         wasn't
12816
12817         * dbus/dbus-hash.c: use memory pools for the hash entries
12818         (rebuild_table): be more paranoid about overflow, and
12819         shrink table when we can
12820         (_dbus_hash_test): reduce number of sprintfs and write
12821         valid C89. Add tests for case where we grow and then
12822         shrink the hash table.
12823
12824         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12825
12826         * dbus/dbus-connection.c (dbus_connection_register_handler)
12827         (dbus_connection_unregister_handler): new functions
12828
12829         * dbus/dbus-message.c (dbus_message_get_name): new
12830
12831         * dbus/dbus-list.c: fix docs typo
12832
12833         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12834         an object representing a handler for messages.
12835
12836 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12837
12838         * glib/dbus-glib.h:
12839         * glib/dbus-gthread.c: (dbus_gthread_init):
12840         Don't use the gdbus prefix for public functions.
12841
12842 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * Makefile.am:
12845         * configure.in:
12846         Add GLib checks and fixup .pc files
12847
12848         * glib/Makefile.am:
12849         * glib/dbus-glib.h:
12850         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12851         (gdbus_connection_check), (gdbus_connection_dispatch),
12852         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12853         (dbus_connection_gsource_new):
12854         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12855         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12856         * glib/test-dbus-glib.c: (message_handler), (main):
12857         Add GLib support.
12858
12859 2002-12-15  Harri Porten  <porten@kde.org>
12860
12861         * autogen.sh: check for libtoolize before attempting to use it
12862
12863         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12864         struct.
12865
12866         * .cvsignore: ignore more stamp files
12867
12868         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12869
12870         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12871         without make install.
12872
12873 2002-12-15  Havoc Pennington  <hp@pobox.com>
12874
12875         * dbus/dbus-threads.c: add thread stubs that a higher library
12876         layer can fill in. e.g. the GLib wrapper might fill them in with
12877         GThread stuff. We still need to use this thread API to
12878         thread-safe-ize the library.
12879
12880 2002-12-12  Havoc Pennington  <hp@pobox.com>
12881
12882         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12883         below new interfaces and include fewer system headers.
12884
12885         * dbus/dbus-sysdeps.c (_dbus_read): new function
12886         (_dbus_write): new function
12887         (_dbus_write_two): new function
12888         (_dbus_connect_unix_socket): new function
12889         (_dbus_listen_unix_socket): new function
12890
12891         * dbus/dbus-message-internal.h: change interfaces to use
12892         DBusString
12893
12894 2002-12-11  Havoc Pennington  <hp@pobox.com>
12895
12896         * dbus/dbus-types.h: add dbus_unichar
12897
12898         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12899
12900         * dbus/dbus-connection.c (dbus_connection_send_message): return
12901         TRUE on success
12902
12903         * dbus/dbus-transport.c: include dbus-watch.h
12904
12905         * dbus/dbus-connection.c: include dbus-message-internal.h
12906
12907         * HACKING: add file with coding guidelines stuff.
12908
12909         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12910         handling here, for security purposes (as in vsftpd). Not actually
12911         using this class yet.
12912
12913         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12914         system/libc usage here, as in vsftpd, for ease of auditing (and
12915         should also simplify portability). Haven't actually moved all the
12916         system/libc usage into here yet.
12917
12918 2002-11-25  Havoc Pennington  <hp@pobox.com>
12919
12920         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12921         always print the first verbose message.
12922
12923 2002-11-24  Havoc Pennington  <hp@pobox.com>
12924
12925         * test/echo-client.c, test/echo-server.c: cheesy test
12926         clients.
12927
12928         * configure.in (AC_CHECK_FUNCS): check for writev
12929
12930         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12931         function
12932
12933         * dbus/dbus-list.c (_dbus_list_foreach): new function
12934
12935         * dbus/dbus-internals.c (_dbus_verbose): new function
12936
12937         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12938         representing a server that listens for connections.
12939
12940         * dbus/.cvsignore: create
12941
12942         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12943         public API for reporting errors
12944
12945         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12946         public object representing a connection that
12947         sends/receives messages. (Same object used for
12948         both client and server.)
12949
12950         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12951         Basic abstraction for different kinds of stream
12952         that we might read/write messages from.
12953
12954 2002-11-23  Havoc Pennington  <hp@pobox.com>
12955
12956         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12957         _DBUS_INT_MAX
12958
12959         * dbus/dbus-test.c (main): add list test, and include
12960         dbus-test.h as intended
12961
12962         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12963         (_dbus_hash_table_remove_int): return value indicates
12964         whether the entry existed to remove
12965
12966         * dbus/dbus-list.c: add linked list utility class,
12967         with docs and tests
12968
12969         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12970         array sometimes.
12971
12972 2002-11-23  Havoc Pennington  <hp@pobox.com>
12973
12974         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12975         DBUS_END_DECLS to nothing, that should fix this once and for all
12976
12977         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12978
12979         * dbus/dbus-message.c, dbus/dbus-hash.c:
12980         add some missing @brief
12981
12982 2002-11-23  Havoc Pennington  <hp@pobox.com>
12983
12984         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12985         to avoid confusing Doxygen
12986
12987         * dbus/dbus-hash.c: @} not }@
12988
12989         * dbus/dbus-message.c (struct DBusMessage): split out
12990         internals docs
12991
12992 2002-11-23  Havoc Pennington  <hp@pobox.com>
12993
12994         * configure.in: pile on more warning flags if using gcc
12995
12996         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12997         to document static functions
12998
12999         * configure.in: add summary to end of configure so it
13000         looks nice and attractive
13001
13002         * dbus/dbus-hash.c: finish implementation and write unit
13003         tests and docs
13004
13005         * configure.in: add --enable-tests to enable unit tests
13006
13007         * dbus/dbus-test.c: test program to run unit tests
13008         for all files in dbus/*, initially runs a test for
13009         dbus-hash.c
13010
13011         * dbus/dbus-internals.h: file to hold some internal utility stuff
13012
13013 2002-11-22  Havoc Pennington  <hp@redhat.com>
13014
13015         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13016         "ported" away from Tcl
13017
13018         * dbus/dbus-types.h: header for types such as dbus_bool_t
13019
13020 2002-11-22  Havoc Pennington  <hp@redhat.com>
13021
13022         * dbus/dbus.h: fixups for doc warnings
13023
13024         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13025         macros
13026         (QUIET): make it quiet so we can see warnings
13027
13028         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13029
13030 2002-11-22  Havoc Pennington  <hp@redhat.com>
13031
13032         * Makefile.am: include "Doxyfile" target in all-local
13033
13034         * configure.in: generate the Doxyfile
13035
13036         * Doxyfile.in: move Doxyfile here, so we can use
13037         configure to generate a Doxyfile with the right
13038         version number etc.
13039
13040 2002-11-22  Havoc Pennington  <hp@redhat.com>
13041
13042         * dbus/dbus-message.c: move inline docs into .c file
13043
13044         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13045         so all docs are under doc/
13046         (MAN_EXTENSION): generate man pages. Use extension
13047         ".3dbus" which matches ".3qt" on my system,
13048         I guess this is OK, I don't know really.
13049         (FILE_PATTERNS): look for .c files not .h, makes sense
13050         for plain C I think
13051
13052 2002-11-22  Havoc Pennington  <hp@pobox.com>
13053
13054         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13055         because any app can be a server, and any app can be a client,
13056         the bus is a special kind of server.
13057
13058 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13059
13060         * Doxyfile : adding. Still needs Makefile rules to be generated
13061         automatically (just run "doxygen" in the toplevel dir for now to
13062         generate docs)
13063
13064         * dbus/dbus-message.h : Adding sample docs (javadoc since
13065         resembles gtk-doc a little more)
13066
13067         * dbus/dbus.h : Adding sample docs
13068
13069 2002-11-21  Havoc Pennington  <hp@redhat.com>
13070
13071         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13072         so we can allow ourselves to include files directly,
13073         instead of having to use dbus.h
13074
13075         * dbus/dbus.h: fill in
13076
13077         * dbus/dbus-message.h: sketch out a sample header file.
13078         Include griping if you include it directly instead of
13079         via dbus.h
13080
13081         * dbus/dbus-macros.h: new file with macros for extern "C",
13082         TRUE/FALSE, NULL, etc.
13083
13084         * doc/file-boilerplate.c: put include guards in here
13085
13086 2002-11-21  Havoc Pennington  <hp@redhat.com>
13087
13088         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13089
13090         * COPYING: include the GPL as well, and license code
13091         under both AFL and GPL.
13092
13093 2002-11-21  Havoc Pennington  <hp@redhat.com>
13094
13095         * acconfig.h: get rid of this
13096
13097         * autogen.sh (run_configure): add --no-configure option
13098
13099         * configure.in: remove AC_ARG_PROGRAM to make
13100         autoconf complain less. add AC_PREREQ.
13101         add AC_DEFINE third arg.
13102
13103 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13104
13105         * doc/Makefile.am:
13106         Fix references so we can distcheck.
13107
13108 2002-11-21  Havoc Pennington  <hp@redhat.com>
13109
13110         * Initial module creation
13111