* INSTALL: fine-tune the requirements for the Qt4 binding.
[platform/upstream/dbus.git] / ChangeLog
1 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2
3         * INSTALL: fine-tune the requirements for the Qt4 binding.
4
5 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
6
7         * tools/dbus-print-message.c: Added support for printing of all 
8           remaining data types. Fixed logic for indentation of compound
9           data types.
10         
11 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
12
13         * INSTALL: fill out content of file providing DBus specific
14           build installations, followed by generic Auto* INSTALL file
15           content
16         
17 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
18
19         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
20           Patch by Stefan Eilers. (r529537)
21
22 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
23
24         * qt/qdbusinternalfilters.cpp: Don't show the parent's
25           contents (r528208)
26
27 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
28
29         * qt/Makefile.am: fix the dependency for
30           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
31           not in qdbusconnection.cpp.
32           Thanks to Jakub Stachowski <stachowski@hypair.net> for
33           spotting this.
34
35 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
36
37         * qt/examples/listnames.cpp:
38         * qt/examples/Makefile.am: Three ways to list the names on the
39           bus.
40
41 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
42
43         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
44           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
45
46 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
47
48         Merge from Subversion:
49         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
50           something that exists (r526315)
51         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
52           slots/signals (r526316)
53         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
54           also return an unknown-method error if the parameters don't
55           match for org.freedesktop.DBus.Properties. (r526842)
56         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
57         * qt/qdbusintegrator.cpp: Restore the proper order of
58           delivery: don't make method returns be delivered on priority
59           (r528150)
60
61 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
62
63         * configure.in qt/Makefile.am: add qt/examples
64         * qt/examples: Add QtDBus example programs:
65           - hello: Hello, World
66           - ping: Simple method-calling program
67           - pong: Simple object-exporting program (not using adaptors)
68           - complexping: Interactive method-calling program 
69                 (also gets and sets properties).
70           - complexpong: Sample program exporting methods, signals and
71                 properties, using adaptors.
72           - dbus: Simple implementation of a generic method-calling
73                 program, similar to 'dbus-send', but with semantics
74                 similar to 'dcop'.
75           - chat: Simplistic chat program, implemented using signals
76                 and the system bus. Looks like IRC.
77
78 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
79
80         * configure.in: Detect QtGui (necessary for one of the
81           example programs). Note: this increases the minimum required
82           version of Qt to 4.1.3.
83
84 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
85
86         * test/qt/*: Sync with KDE Subversion revision 523647.
87         Update the testcases to the new API. Remove testcases for
88         classes that are no longer public or have been removed.
89
90 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
91
92         * qt/*: 
93         * dbus/qdbus.h: Sync with KDE Subversion revision
94         523647. Hopefully, this will be the last of the
95         source-incompatible changes. Documentation has been improved;
96         support for QList<basic-types> has been added; QDBusObject is
97         gone; QDBus(Abstract)Interface is now a QObject with
98         auto-generated meta-object; QDBusIntrospection is marked
99         private, since QMetaObject can be used now; lots of bugfixes.
100
101 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
102
103         Patch from Milosz Derezynski <internalerror at gmail.com>
104         
105         * configure.in:
106         Output the service directory in the configure summary
107
108         * dbus-1.pc.in:
109         Add session_bus_services_dir
110
111 2006-03-10  Ross Burton  <ross@openedhand.com>
112
113         * tools/dbus-print-message.c:
114         Add support for object paths and signatures.
115
116 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
117
118         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
119         config reload.
120         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
121         information caches
122         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
123         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
124         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
125         * dbus/dbus-userdb.h: Add function to flush all user/group information
126         caches.
127
128 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
129
130         * qt/dbusidl2cpp.cpp:
131         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
132         for dcopidl2cpp, found in the KDE installations (or the more
133         modern kalyptus): generate Qt4 C++ code for the input XML
134         introspection. Currently no IDL parsing.
135
136 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
137
138         * test/qt/*: Update the self-tests.
139
140 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
141
142         * qt/*: 
143         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
144         represents the first feature-complete version of the Qt4
145         bindings since I took ove maintainership.
146
147 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
148
149         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
150         dir. This is C++, so we can't use the DBus ones.
151
152 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
153
154         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
155         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
156
157 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
158
159         * dbus/dbus-connection.c: 
160         (_dbus_connection_block_pending_call):
161         Check to see if our data has already been read off the connection
162         by another blocking pending call before we block in poll.
163         (check_for_reply_and_update_dispatch_unlocked):
164         Code taken from _dbus_connection_block_pending_call - checks for
165         an already read reply and updates the dispatch if there is one.
166
167         * test/name-test/test-pending-call-dispatch.c:
168         New test for making sure we don't get stuck polling a 
169         dbus connection which has no data on the socket when
170         blocking out of order on two or more pending calls.
171
172 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
173
174         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
175         make/automake don't detect that we're talking about the same
176         .lo file if I specify the full path to the source files.
177
178 2006-02-26  Havoc Pennington  <hp@redhat.com>
179
180         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
181
182         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
183         session bus variable is unset, suggest "man dbus-launch" and "man
184         dbus-daemon" to figure out how to fix the problem
185
186 2006-02-25  Havoc Pennington  <hp@redhat.com>
187
188         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
189         should make this thing use the new glib options parser
190
191 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
192
193         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
194         .lo files taking moc sources.
195
196 2006-02-25  Havoc Pennington  <hp@redhat.com>
197
198         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
199         and install it as a public header
200
201 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
202
203         * Released 0.61
204
205 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
206         
207         * proxies.py: Fix the callchain
208
209 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
210         
211         * patch from Sjoerd Simons <sjoerd at debian.org>:      
212
213         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
214         dbus/dbus-sysdeps.c
215
216         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
217         call _dbus_group_info_free_allocated which causes infinite loop,
218         correctly call _dbus_group_info_free
219
220 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
221
222         * qt/qdbusinterface_p.h:
223         * qt/qdbusinterface.cpp: Use the standard
224         org.freedesktop.DBus.Method.NoReply annotation for the "async"
225         calls instead of creating one for us.
226
227         * qt/qdbusconnection_p.h:
228         * qt/qdbusintegrator.cpp: Remove debugging code.
229
230         * qt/qdbusintegrator.cpp:
231         * qt/qdbusmessage.cpp:
232         * qt/qdbusmessage_p.h:
233         * qt/qdbusmessage.h: Change the behaviour of automatic
234         reply-sending: now a reply is always sent, unless the caller
235         didn't request one or if the user slot has already sent one.
236
237 2006-02-16  Robert McQueen  <robot101@debian.org>
238
239         * configure.in: Patch from Debian packages by Sjoerd Simons
240         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
241         arguments so it's possible to build both bindings in the
242         same tree.
243
244         * qt/Makefile.am: Fix truncated value so that make dist works.
245
246 2006-02-16  Robert McQueen  <robot101@debian.org>
247
248         * acinclude.m4, configure.in: Patch from Brad Hards
249         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
250         improving quoting, re-ordering a few checks, and a few other
251         aesthetic tidy-ups.
252
253 2006-02-16  Robert McQueen  <robot101@debian.org>
254
255         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
256         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
257         assertion that the next element to read from the iter is fixed in
258         size. This is not the case when you are at the end of the iter,
259         because the next element type is INVALID.
260
261         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
262         a bogus assert which means that you may not initialise a 0-length
263         string unless you provide a non-NULL pointer. This prevented
264         you from marshalling messages containing zero-length arrays in
265         some cases.
266
267         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
268         from Rob to correct bogus asserts when trying to demarshal an
269         array and get_fixed_array got you 0 elements. Append nothing to
270         the GArray in this case.
271
272         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
273         an empty array via the glib bindings. Without all of the above
274         patches, this new test fails.
275
276 2006-02-16  Robert McQueen  <robot101@debian.org>
277
278         * glib/dbus-gmain.c: Make the previous commit compile.
279
280         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
281         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
282         specify sender_keyword="foo", path_keyword="bar" when adding
283         a signal listener, so that you can bind to signals generically
284         but still do something useful in your callback.
285
286         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
287         chars so that they're not cast to chars and made negative. Thanks
288         to Jakub Stachowski for reporting this and testing the fix.
289
290 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
291
292         * dbus/dbus-glib.h:
293         * glib/dbus-gmain.h:
294         (dbus_g_connection_open): new method for openning
295         a connection to an arbitrary address in the glib bindings
296
297         * ChangeLog: checkin last entry which doesn't seem to be commited
298
299 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
300
301         * tools/dbus-launch.c: Fixed sh syntax output
302
303 2006-02-13  Robert McQueen  <robot101@debian.org>
304
305         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
306         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
307         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
308         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
309         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
310         missing piece of the glib bindings jigsaw puzzle. This modifies
311         the existing specialised types to have N type parameters (rather
312         than the current 1 or 2 for arrays and dictionaries respectively).
313         You can then use this to get a glib type to represent any arbitrary
314         D-Bus struct type using dbus_g_type_get_struct. The only
315         implementation of these types is with GValueArrays as before,
316         but it's now possible to store these in arrays, emit them in
317         signals, etc.
318
319 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
320
321         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
322         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
323         <thiago.macieira at trolltech.com>
324
325 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
326
327         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
328         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
329
330 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
331
332         * bus/connection.c (bus_connections_expect_reply): Make
333         pending reply limit not common to all connections (Bug #5416)
334         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
335
336 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
337
338         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
339
340 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
341
342         * gcj/Makefile.am: point to correct jar command (Bug #4529)
343         patch from Doug Goldstein <cardoe at gentoo.org>
344
345 2006-02-09  Joe Shaw  <joeshaw@novell.com>
346
347         * mono/Arguments.cs: Fix a magic number in the mono bindings
348         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
349
350 2006-01-27  Robert McQueen  <robot101@debian.org>
351
352         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
353         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
354         when generating the client-side methods, instead of overloading
355         CSymbol which broke everything horribly. My apologies.
356
357 2006-01-27  Robert McQueen  <robot101@debian.org>
358
359         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
360         by me and Rob Taylor to add a simple_free function to D-Bus map
361         and collection types, which allows those types which can be freed
362         with a GDestroyNotify (such as GHashTables and GArrays, but not
363         GPtrArrays) to be stored as the values in hashtables.
364
365         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
366         Patch by Rob Taylor to add nested dicts to the glib tests to check
367         the above code works, and appears not to leak when called repeatedly.
368
369 2006-01-27  Robert McQueen  <robot101@debian.org>
370
371         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
372         to free a D-Bus allocated string with dbus_free () instead of
373         g_free ().
374
375 2006-01-27  Iain Holmes  <iain@openedhand.com>
376
377         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
378         method from being called multiple times.
379
380 2006-01-19  Robert McQueen  <robot101@debian.org>
381
382         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
383         <rob.taylor@collabora.co.uk> to add support for generating bindings
384         to arrays that are represented as GPtrArrays rather than GArrays (ie
385         size-variable things, such as strings, objects, structs, etc).
386
387 2006-01-05  Robert McQueen  <robot101@debian.org>
388
389         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
390         <ricardo.kekki@movial.fi> to make it possible to inherit from
391         DBusGProxy, by splitting the DBusGProxy struct into a public part and
392         a private part, and moving the setting of the DBusGProxyManager into a
393         connection property, allowing proper GObject construction.
394
395 2006-01-05  Robert McQueen  <robot101@debian.org>
396
397         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
398         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
399         annotations when generating glib client bindings.
400
401 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
402
403         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
404
405         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
406
407 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
408
409         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
410
411 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
412
413         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
414
415 2005-12-19  Ross Burton  <ross@openedhand.com>
416
417         * doc/dbus-tutorial.xml:
418         Document the Glib client-side bindings, and list all possible annotations.
419
420 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
421
422         * dbus/bus.c (dbus_bus_release_name): Add documentation
423
424 2005-12-06  Robert McQueen  <robot101@debian.org>
425
426         * python/service.py: s/sucessful/successful/ so we're allocating to
427         and reading from the same variable. Oops.
428
429 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
430
431         * Released 0.60
432
433 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
434
435         * test/qt/Makefile.am: build from srcdir
436
437         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
438         Note - this code is wrong and needs to be fixed by the Qt binding
439         developers.  The flags should be treated as bitfields and not enums.
440
441         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
442
443 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
444
445         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
446           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
447           in production code
448
449 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
450
451         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
452         method for getting messages off the bus in the absence of a
453         mainloop.  This method is much like 
454         dbus_connection_read_write_dispatch except it does not dispatch
455         the messages to a registered filter function.  Instead it
456         allows a developer to process messages by directly popping
457         them off the bus.
458
459 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
460
461         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
462         the parser to continue instead of returning error
463         (bus_desktop_file_load): Do not free parser data when
464         parse_section_start or parse_key_value fails because it was 
465         already freed by parser_free (patch from Carlos Garcia Campos  
466         <carlosgc at gnome.org>)
467
468 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
469
470         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
471         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
472         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
473         test/test-segfault.c, test/test-utils.c,
474         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
475         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
476         Various cleanup of dead code and compiler warnings (patch from
477         Kjartan Maraas <kmaraas at gnome.org>) 
478
479 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
480
481         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
482         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
483
484 2005-11-27  Robert McQueen  <robot101@debian.org>
485
486         * python/dbus_bindings.pyx: Repair my previous commit which reverted
487         part of the preceding one. Oops. Merge patch by Johan Hedberg
488         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
489         on big-endian platforms.
490
491         * test/python/test-client.py: Add some 16-bit integers to the test
492         values.
493
494 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
495
496         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
497         method return message for property getters
498
499 2005-11-27  Robert McQueen  <robot101@debian.org>
500
501         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
502         with type v of an instance of dbus.Variant(foo, type='x') caused
503         it to be boxed twice before sending over the bus.
504
505         * python/dbus_bindings.pyx, python/service.py,
506         test/python/test-client.py: Update the constants for the new
507         request_name flags, and update comments/test cases now that queueing
508         is the default action.
509
510 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
511
512         * configure.in:
513         - Change version to 0.60 for impending release
514         - upped the sonames because of ABI and API breakage
515
516 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
517
518         * configure.in: Add test/name-test/Makefile to the generated
519         Makefile list
520
521         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
522         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
523         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
524         not to queue an ower if it can't be the primary owner
525
526         * bus/bus.h: Add new internal BusOwner struct
527
528         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
529         to bus_registry_ensure and don't set the prohibit_replacement flag
530         since they are now set per BusOwner and not per name.
531         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
532         that returns the list of connections in a name's connection queue
533         
534         * bus/services.c (struct BusService): remove prohibit_replacement field
535         (struct BusOwner): new struct for keeping track of queued connections
536         and their associated flags for the queue
537         (struct BusRegistry): add a BusOwner memory pool
538         (bus_registry_new): initialize the BusOwner memory pool
539         (bus_registry_unref): free the BusOwner memory pool
540         (_bus_service_find_owner_link): new internal method for
541         searching the queue for a specific connection
542         (bus_owner_set_flags): new method for adding setting the flags on a
543         bus owner
544         (bus_owner_new): new method that creates a BusOwner object from the
545         pool and sets its flags
546         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
547         (bus_registry_ensure): Add the flags parameter
548         (bus_registry_acquire_service): Switch from using raw connections to
549         using the BusOwner struct
550         Add new state machine for dealing with the new set of flags
551         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
552         cancel_ownership, free_ownership_cancel_data, 
553         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
554         restore_ownership, free_ownership_restore_data, 
555         add_restore_ownership_to_transaction): Switch to using BusOwner 
556         instead of raw connections
557         (bus_service_add_owner): Add flags parameter
558         Switch to using BusOwner instead of raw connections
559         Add state machine for dealing with the new set of flags
560         (bus_service_swap_owner): Swaps the first and second owners in the
561         queue.  Used to make sure proper signals are sent when a service looses 
562         or gains primary ownership.  We never insert an owner at the top of the
563         queue.  Instead we insert it in the second position and then swap.
564         (bus_service_remove_owner): Remove the owner from the queue sending
565         out the NameLost and NameOwnerChanged signals if the we were the 
566         primary owner
567         (bus_service_get_primary_owners_connection): New method that extracts
568         the connection from the primary owner
569         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
570         connection
571         (bus_service_get_allow_replacement): Changed from the old 
572         bus_service_get_prohibit_replacement method.  Checks the flags of the 
573         primary owner and returns if it can be replaced or not
574         (bus_service_set_prohibit_replacement): removed
575         (bus_service_has_owner): returns TRUE if and owner with
576         the specified connection exists in the queue
577         
578         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
579         method that only compiles if tests are enabled.  Allows us to get the 
580         unique name of a connection so we can check it against the queue when
581         doing regression tests
582
583         * bus/activation.c (bus_activation_send_pending_auto_activate),
584         bus/dispatch.c (bus_dispatch),  
585         bus/driver.c (bus_driver_handle_get_service_owner, 
586         bus_driver_handle_get_connection_unix_user, 
587         bus_driver_handle_get_connection_unix_process_id,
588         bus_driver_handle_get_connection_selinux_security_context),
589         bus/signals.c (connection_is_primary_owner): 
590         use bus_service_get_primary_owners_connection instead of
591         bus_service_get_primary_owner
592
593         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
594         _dbus_listen_unix_socket): Calculate the length of the socket
595         path and use that instead of using a fixed length which was
596         causing socket names to contain many trailing Nul bytes.
597
598         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
599         (dbus_g_method_get_sender): New method for extracting the sender 
600         from a DBusGMethodInvocation
601         (dbus_g_method_return_get_reply): changed name to 
602         dbus_g_method_get_reply
603         (dbus_g_method_return_send_reply): changed name to
604         dbus_g_method_send reply
605
606         * doc/dbus-specification.xml: New docs that describe how the new
607         queueing system works and talks about the changes to the how
608         we specify socket names
609
610         * glib/examples/example-service.c, 
611         glib/examples/example-signal-emitter.c,
612         glib/examples/statemachine/statemachine-server.c:
613         Changed the RequestName flags to the new system
614
615         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
616         regression test suite for testing various states of the new
617         queueing system
618         
619 2005-11-15  Robert McQueen  <robot101@debian.org>
620
621         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
622         Taylor to add two methods, dbus_g_method_return_get_reply and
623         dbus_g_method_return_send_reply, to allow you to get the reply
624         message from a DBusGMethodInvocation, append arbitrary stuff to it,
625         and send it. The GLib bindings can't marshal a return value of
626         something like a(s) if the array is empty - ultimately they should be
627         made to heed the signature of the out arguments as the Python bindings
628         now can, but this is a workable interim solution which might have
629         other applications.
630
631 2005-11-15  Robert McQueen  <robot101@debian.org>
632
633         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
634         method to org.freedesktop.DBus to release a bus name or give up
635         waiting in the queue for it.
636
637         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
638         dbus_bus_release_name method to send the ReleaseName method calls.
639         Add constants for the return values to dbus/dbus-shared.h.
640
641         * doc/dbus-specification.xml: Document the new ReleaseName method
642         in the specification.
643
644         * python/dbus_bindings.pyx: Add a low-level python binding for the
645         release name method.
646
647         * python/exceptions.py, python/service.py: Make freeing BusName
648         objects release the name. Add a NameExistsException, and fix a
649         bug with creating UnknownMethodException.
650
651         * test/python/test-client.py: Add tests for freeing BusName
652         objects causing names to be released.
653
654 2005-11-14  Robert McQueen  <robot101@debian.org>
655
656         * python/service.py: Include the traceback in the error reply when we
657         send an exception over the bus. _BEST_ _PATCH_ _EVER_
658
659 2005-11-14  David Zeuthen  <davidz@redhat.com>
660
661         Patch from Timo Hoenig <thoenig@suse.de>.
662
663         * bus/bus.c: I've recently investigated why the automatic reload
664         of configuration files does not work as expected.
665
666         Currently, reloading configuration files does only work when
667         running dbus-daemon with --nodaemon.  If we are running as daemon
668         we're hitting a dnotify bug once we fork the process.
669
670         We're initializing the dnotify fds before calling fork().  Once
671         the child process forked it does still have the fds (and they
672         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
673         getting SIGIO as changes are made to the configuration files.
674
675         The attached patch moves the initialization of the dnotify fds to
676         process_config_postinit().  This is safe for all current code
677         paths and solves the dnotify disfunction.  If we're running
678         dbus-daemon as daemon the fds for dnotify are now being
679         initialized after fork() for the child process.
680
681         * configure.in: The current configure.in check for dnotify probes
682         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
683         match for 'xlinux', too. Additionally I have adapted the configure
684         option's style to match with the others.
685
686 2005-11-14  Robert McQueen  <robot101@debian.org>
687
688         * python/decorators.py, python/service.py: Add a new argument to the
689         dbus.service.method decorator called sender_keyword, which if set,
690         specifies the name of an argument which will be provided the bus
691         name of the method caller.
692
693         * test/python/test-client.py, test/python/test-service.py: Add a
694         method and test to check the sender_keyword functionality.
695
696 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
697
698         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
699         empty reply so blocking calls don't block forever (Patch from Sjoerd 
700         Simons <sjoerd at luon.net>)
701
702         * AUTHORS: Add Robert McQueen for his work on the Python
703         Bindings and other parts of D-Bus
704
705 2005-11-07  Robert McQueen  <robot101@debian.org>
706
707         * python/decorators.py: Change emit_signal function to use the
708         signature annotation of the signal when marhsalling the arguments from
709         the service. Fix a bug where the code checking signature length
710         against argument length referenced the wrong variable.
711
712         * python/introspect_parser.py: Avoid adding the type signature of
713         signal arguments to any methods which occur after them in the
714         introspection data (!) by making the parser a little more careful
715         about its current state.
716
717         * python/service.py: Remove debug prints from last commit (again :D).
718
719         * test/python/test-client.py, test/python/test-service.py: Add test
720         signals with signature decorators to test the strict marshalling code
721         gives errors at the right time. Could do with checking the signals
722         actually get emitted too, given that the test does nothing with
723         signals at the moment...
724
725 2005-11-07  Robert McQueen  <robot101@debian.org>
726
727         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
728         instances to stop madness of creating new instances representing
729         the same bus connection all the time, rendering any tracking of
730         match rules and bus names quite meaningless. Caught a bug where
731         the private argument to SessionBus() and friends was being passed
732         in as use_default_mainloop by mistake. Still some problems with
733         multiple dbus_binding.Connection instances representing the same
734         low-level connection (eg when you use both SessionBus() and
735         StarterBus() in same process), but it's a lot better now than it
736         was.
737
738         * python/dbus_bindings.pyx: Add constants with the return values
739         for bus_request_name().
740
741         * python/service.py: Store bus name instances in a per-dbus.Bus cache
742         and retrieve the same instances for the same name, so deletion can be
743         done with refcounting. Also now throws some kind of error if you
744         don't actually get the name you requested, unlike previously...
745
746         * test/python/test-client.py: Add tests for instance caching of buses
747         and bus name objects.
748
749 2005-11-04  Robert McQueen  <robot101@debian.org>
750
751         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
752         marshalling of boolean values. Add some booleans to the values in
753         the test client.
754
755         * python/decorators.py, python/service.py: Add an 'async_callbacks'
756         argument to the dbus.service.method decorator, which allows you to
757         name arguments to take two callback functions for replying with
758         return values or an exception.
759
760         * test/python/test-client.py, test/python/test-service.py: Add test
761         case using asynchronous method reply functions, both return values and
762         errors, and from within both the function itself and from a mainloop
763         callback.
764
765         * python/decorators.py, python/service.py: Perform checking that the
766         number of method/signal arguments matches the number of types in the
767         signature at class loading time, not when you first introspect the
768         class.
769
770         * python/service.py: Remove debug print left by the last commit.
771
772 2005-11-03  Robert McQueen  <robot101@debian.org>
773
774         * python/service.py: Heavy refactoring of method invocation, with
775         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
776         in favour of a new _message_cb that uses seperate functions for
777         looking up the method to call, marshalling the return values, and
778         sending exceptions as errors, and is easier to follow as a
779         consequence.  Fixes some corner cases about returning things that
780         don't match your declared out_signature, allows exceptions to define
781         _dbus_error_name and have it be sent over the bus as the error name,
782         and paves the way for cool stuff like heeding the message no reply
783         flag, asynchronous method implementations, informing the method of the
784         sender, and including backtraces in the error messages.
785
786         * test/python/test-client.py: Catch and print exceptions thrown in the
787         async callback tests, rather than passing them to the low-level
788         bindings to be ignored in a noisy and frustrating manner.
789
790 2005-11-03  Robert McQueen  <robot101@debian.org>
791
792         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
793         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
794         tweak others to be consistent.
795
796         * test/python/test-client.py: Tweak output of testInheritance.
797
798 2005-10-29  Robert McQueen  <robot101@debian.org>
799
800         * python/service.py: Major changes to allow multiple inheritance
801         from classes that define D-Bus interfaces:
802         
803          1. Create a new Interface class which is the parent class of
804             Object, and make the ObjectType metaclass into InterfaceType.
805         
806          2. Patch written with Rob Taylor to replace use of method_vtable
807             with code that walks the class's __MRO__ (method resolution order)
808             to behave like Python does when invoking methods and allow
809             overriding as you'd expect. Code is quite tricky because
810             we have to find two methods, the one to invoke which has the
811             right name and isn't decorated with the /wrong/ interface,
812             and the one to pick up the signatures from which is decorated
813             with the right interface.
814         
815             The same caveats apply as to normal multiple inheritance -
816             this has undefined behaviour if you try and inherit from two
817             classes that define a method with the same name but are
818             decorated with different interfaces. You should decorate
819             your overriding method with the interface you want.
820         
821          3. Replace grungy introspection XML generation code in the metaclass
822             with dictionaries that cope correctly with multiple inheritance
823             and the overriding of methods. This also uses the signature
824             decorations to provide correct introspection data, including
825             the debut appearance of the types of your return values. :D
826
827         * test/python/test-client.py, test/python/test-service.py: Add a test
828         case to try invoking an method that overrides one inherited from a
829         D-Bus interface class.
830
831 2005-10-29  Robert McQueen  <robot101@debian.org>
832
833         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
834         Add checking for the end of struct character when marshalling a
835         struct in MessageIter.append_strict.
836
837         * python/examples/example-service.py,
838         python/examples/gconf-proxy-service.py,
839         python/examples/gconf-proxy-service2.py: Update to use gobject
840         mainloop directly rather than appearing to depend on gtk.
841
842         * python/test/test-client.py, python/test/test-server.py: Remove
843         obsolete and broken test scripts for old bindings. We have up to date
844         and working tests in test/python/.
845
846 2005-10-29  Robert McQueen  <robot101@debian.org>
847
848         * python/decorators.py: Add optional arguments to the method and
849         signal decorators to allow you to specify the signature of arguments
850         and return values. Preserve the doc strings of signal functions in the
851         decorated version, for pydoc and friends.
852
853         * python/dbus_bindings.pyx, python/proxies.py: Replace the
854         parse_signature_block function with an iterable dbus.Signature()
855         type. Fix a bug in MessageIter.append_strict where you could append
856         anything by claiming it was a string.
857
858         * python/service.py: Use the out_signature decoration on methods to
859         marshal return values, meaning you no longer require dbus.Array()
860         or dbus.Dictionary() to indicate the type when returning empty
861         arrays or dictionaries. Fix a bug where exceptions which are defined
862         in __main__ are not turned into error replies.
863
864         * test/python/test-client.py, test/python/test-service.py: Add test
865         for correct marshalling of return values according to out_signature.
866         Fix a bug in the async call test where the error_handler is missing a
867         self argument.
868
869 2005-10-29  Robert McQueen  <robot101@debian.org>
870
871         * glib/Makefile.am, glib/examples/Makefile.am,
872         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
873         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
874
875         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
876
877         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
878         from Ubuntu by Daniel Silverstone to allow specifying match rules on
879         the command line.
880
881 2005-10-27  Ross Burton  <ross@openedhand.com>
882
883         * dbus/dbus-marshal-header.c:
884         Remove dead code.
885
886         * glib/dbus-gobject.c:
887         Stop compiler warning.
888
889 2005-10-25  Ross Burton  <ross@openedhand.com>
890
891         * dbus/dbus-auth.c:
892         * dbus/dbus-server-unix.c:
893         * dbus/dbus-transport-unix.c:
894         * glib/dbus-gmain.c:
895         * glib/dbus-gobject.c:
896         Add some const keywords.
897
898 2005-10-25  Ross Burton  <ross@openedhand.com>
899
900         * doc/dbus-specification.xml:
901         Document the NoReply annotation.
902
903         * glib/dbus-binding-tool-glib.h:
904         * glib/dbus-binding-tool-glib.c:
905         Respect the NoReply annotation.
906
907 2005-10-24  Robert McQueen <robot101@debian.org>
908
909         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
910         derive from unicode instead of str, and encode/decode UTF-8 when
911         marshalling/unmarshalling bus messages
912
913         * python/introspect_parser.py: encode introspection data as UTF-8
914         before passing the buffer into libxml2
915
916         * test/python/test-client.py: add unicode test strings
917
918         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
919         ignore generated python test files
920
921 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
922
923         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
924         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
925         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
926
927         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
928         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
929         when constructing struct signatures
930
931         * python/_dbus.py (Bus): handle private connections using the
932         private keyword in the constructor. defaults to private=False
933         (Bus::close): new method to close a connection to the bus
934
935         * python/dbus_bindings.pyx (Connection::close): renamed method
936         was previously called disconnect
937         (bus_get): now supports getting a private connection
938
939         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
940         keyword is set to True.  if it is, execute the method without waiting
941         for a reply
942         (ProxyObject::_introspect_execute_queue): new method for executing
943         all the pending methods that were waiting for the introspect to
944         finish.  this is called when introspect either succeeds or fails
945         (ProxyObject::_introspect_error_handler): call queued methods
946
947 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
948
949         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
950         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
951
952         * python/service.py (Object::_message_cb): handle exceptions correctly
953         by sending them over the wire to the calling app.  This makes sure
954         the client returns immediately instead of waiting the 15 seconds to
955         timeout.
956
957         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
958         Add a test to benchmark how long it takes to introspect a service and 
959         call a method which returns a large element (pretty fast)
960
961         * test/python/test-service.py (TestObject::GetComplexArray): new test 
962         method which pushes a lot of data
963
964 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
965
966         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
967         reclaim memory outside of the loop and use del istead of just setting
968         the key to None
969
970 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
971
972         * python/service.py (ObjectType::_reflect_on_signal): Always close
973         signal tag even when there are no arguments
974
975 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
976
977         * configure.in: Set mono, mono-docs and Qt3 to default
978         to no instead of auto when building.  These bindings do not
979         have full time maintainers and will not be supported for the
980         1.0 release.
981
982 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
983
984         patches from Michael Krivoruchko <misha at sun.com>: 
985         
986         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
987         _dbus_connection_message_sent, 
988         _dbus_connection_send_preallocated_unlocked_no_update, 
989         _dbus_connection_pop_message_link_unlocked): handle the case when path 
990         is NULL when calling _dbus_verbose
991
992         * configure.in: check for functions getpeerucred and getpeereid
993
994         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
995         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
996         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
997         Patch was only tested on Solaris 10 x86 so it might be issues
998         with other platforms (i.e. BSDs and MacOSX)
999         
1000
1001 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1004         instead of marshal basic so we can handle recursive types in a variant
1005
1006         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1007         in variants
1008
1009         * test/glib/test-service-glib.c, test-service-glib.xml
1010         (my_object_echo_variant [EchoVariant], 
1011         my_object_process_variant_of_array_of_ints123
1012         [ProcessVariantOfArrayOfInts123]): 
1013         Add two test methods
1014
1015         * python/introspect_parser.py: New module for parsing introspect
1016         data.
1017
1018         * python/dbus_bindings.pyx:
1019         (various places): when throwing errors fix to use errormsg instead 
1020         of message local variable because Pyrex can get confused with other 
1021         message variables (initial patch by Robert McQueen 
1022         <robert.mcqueen at collabora.co.uk>)
1023         (MessageIter::parse_signature_block): new method for getting the next
1024         block in a signiture.
1025         (MessageIter::append_strict): new method for appending values strictly
1026         using the passed in signature instead of guessing at the type
1027         (MessageItter:: append_dict, append_struct, append_array): use 
1028         signatures to marshal children if the signature is available
1029         
1030         * python/exceptions.py (IntrospectionParserException): new exception
1031
1032         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1033         introspected signatures if available, else we fall back to the
1034         old way of doing things.
1035         (ProxyObject::_introspect_reply_handler ): parse introspection data
1036         
1037         * python/service.py (ObjectType::_reflect_on_method): Properly
1038         terminate <method> if there are no args in the reflection data
1039
1040         * test/python/test-client.py: add tests for talking with the GLib
1041         test server.  This gives us better coverage for introspection since
1042         python to python will always generate arguments as variants.  It also
1043         allows us to test the robustness of the GLib bindings and interlanguage
1044         communications.
1045
1046         
1047 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1048
1049         * bus/driver.c (bus_driver_handle_introspect): Add signals
1050         to the introspect data. (patch from Daniel P. Berrange 
1051         <dan at berrange.com>)
1052
1053         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1054         
1055         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1056         _dbus_connection_run_builtin_filters): Changed these to
1057         be unlock_no_update functions and call 
1058         _dbus_connection_send_unlocked_no_update instead of
1059         dbus_connection_send to avoid locking errors.
1060         
1061         * doc/TODO: Removed the make Ping test TODO
1062         
1063 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1064
1065         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1066         We now copy the message from a DBusError and then free 
1067         the error object befor throwing the error
1068
1069         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1070         DBusBindingOutputMode enum which was causing a warning.
1071         #include <time.h> so using time_t is explicitly defined
1072
1073 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1076         - dbus/dbus-bus.c
1077         (internal_bus_get): new method that take over the heavy lifting
1078         of dbus_bus_get and adds the ability to get a private connection
1079         to the bus
1080         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1081         interface as in previous versions
1082         (dbus_bus_get_private): new method that is a wrapper to 
1083         internal_bus_get to get a private connection to the bus
1084
1085         - dbus/dbus-bus.h
1086         (dbus_bus_get_private): add as a public libdbus interface
1087
1088         - dbus-1.pc.in: output system_bus_default_address and 
1089         sysconfdir variables so apps can use them when compiling
1090
1091 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1092         * dbus/qt: New Qt bindings
1093
1094 2005-09-12  Waldo Bastian  <bastian@kde.org>
1095
1096         * dbus/dbus-marshal-validate.c,
1097         doc/dbus-specification.xml, test/Makefile.am,
1098         test/test-names.c: allow hyphens in bus names.
1099
1100 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1101
1102         * test/data/auth/fallback.auth-script: we don't
1103         retry the EXTERNAL method when we know its going
1104         to fail anymore.
1105
1106 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1107
1108         * dbus/dbus-connection-internal.h: rename
1109         (add|remove|toggle)_(watch|timeout) to unlocked()
1110         
1111         * dbus/dbus-connection.c: ditto.
1112         
1113         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1114         Update some callers for the renaming.
1115
1116 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1117
1118         * dbus/dbus-auth.c: (record_mechanisms): don't
1119         retry the first auth mechanism because we know
1120         we're just going to get rejected again.
1121         
1122         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1123         Fix thinko ... and what a nasty little bugger to
1124         track down you were ...
1125
1126         * dbus/dbus-connection.c:
1127         (_dbus_connection_add_watch),
1128         (_dbus_connection_remove_watch): add note about
1129         these needing the connection to be locked.
1130         (_dbus_connection_get_dispatch_status_unlocked):
1131         set status to DATA_REMAINS when we queue the
1132         disconnected message.
1133         
1134         * bus/dispatch.c:
1135         (bus_dispatch): fix warning.
1136         (check_existent_service_no_auto_start):
1137         Expect ChildSignaled error too.
1138         (check_existent_hello_from_self): fix another
1139         couple of warnings.
1140         
1141 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1142
1143         Patches from James Willcox <snorp@snorp.net>
1144
1145         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1146
1147         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1148         support array "out" parameters.
1149
1150         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1151         for 16-bit int support.
1152
1153 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1154
1155         * Released 0.50
1156
1157         * Patch from Steve Grubb:
1158         - bus/activation.c (bus_activation_service_reload_test): clean up
1159         some indentation
1160         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1161         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1162         buffer overflows in the test suite.  This is non critical because
1163         it can not be exploited and this code is only run when doing a 
1164         make check.
1165
1166         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1167         - configure.in: Don't check and link against kdecore, only qt headers
1168         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1169         - gcj/org/freedesktop/dbus/Makefile.am:
1170         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1171         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1172         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1173         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1174         - tools/Makefile.am: Add platform extentions to binaries 
1175         (i.e. .exe on windows)
1176
1177         * configure.in: 
1178         - Make it so if no suitable version of python is found we only 
1179         disable building python instead of exiting the configure script
1180         - Require version 2.4 of glib for glib bindings
1181         - Up version to 0.50
1182
1183         * python/__init__.py: Sync version with libdbus to (0,50,0)
1184         
1185 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1186
1187         * dbus/dbus-object-tree.c (find_subtree_recurse):
1188         a couple of optimizations (bug #710):
1189         - do a binary search in the tree
1190         - insert a new child at the right place directly, no need for
1191           qsort anymore
1192         - do the "double alloc" thing when allocating children
1193
1194 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1195
1196         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1197
1198         * python/dbus_bindings.pyx: Memory management foo
1199         (global): remove hacky _user_data_references global list
1200         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1201         tuples. Unref user_data
1202         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1203         (Connection::__del__): Remove and replace with __dealloc__ method
1204         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1205         to keep tuple from being deallocated instead of the global var hack
1206         (Connection::register_object_path): Stuff user_data into a tuple.
1207         Use Py_INCREF to keep tuple from being deallocated instead of the 
1208         global var hack
1209         (Connection::register_fallback): Stuff user_data into a tuple.
1210         Use Py_INCREF to keep tuple from being deallocated instead of the 
1211         global var hack
1212         (GIL_safe_pending_call_notification): Don't unref the message
1213         because it gets unreffed when going out of scope.  Py_XDECREF
1214         the user_data
1215         (PendingCall::__del__): Remove and replace with __dealloc__ method
1216         (PendingCall::set_notify): ref the pending call because we will
1217         need it to stick around for when the notify callback gets called
1218         (Message::__del__): Remove and replace with __dealloc__ method
1219
1220         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1221         gthreads_init to match up with the dbus call
1222
1223         * python/glib.py (init_threads): Changed to threads_init to match
1224         up with gobject.threads_init().  init_threads is kept for backwards
1225         compat but will most likely be deprecated in the future
1226
1227         * test/python/test-client.py: 
1228         - revamp to use Python's unittest functionality
1229         - add async call tests
1230         - setup threads in glib and dbus so we make sure locks are working
1231         
1232 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1233
1234         * python/dbus_bindings.pyx 
1235         (_pending_call_notification, cunregister_function_handler, 
1236         cmessage_function_handler): All callback functions have been rearranged 
1237         to workaround a bug in Pyrex when working with the GIL which is Python's 
1238         global lock when dealing with threads.  They have been split into
1239         a wrapper function (which assumes the name of the old function) and
1240         a _GIL_safe_<function name> function which contains the functionality
1241         of the old function.  This ensures that Pyrex does not write code
1242         the lock is released.
1243         
1244
1245 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1246
1247         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1248         GIL global lock when calling back into Python
1249
1250 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1251
1252         * Release 0.36.2
1253
1254         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1255
1256         * bus/policy.c (bus_policy_allow_user): change default "user is
1257         allowed" to be "user has same uid as the bus itself"; any
1258         allow/deny rules will override.
1259
1260         * bus/session.conf.in: don't allow all users, since now by default
1261         the user that ran the bus can connect.
1262
1263 2005-08-26  Colin Walters  <walters@verbum.org>
1264
1265         * tools/dbus-print-message.c (print_message): Flush stdout
1266         after printing a message, so that redirecting to a file, then
1267         hitting Ctrl-C works.
1268
1269 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1270
1271         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1272         (EmptyMessage): new class that subclasses Message.  This is a workaround
1273         to a Pyrex bug that fails to call __del__ when the Message object goes out
1274         of scope.  For some reason subclassing Message fixes this bug
1275         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1276         - s/Message(_create=0)/EmptyMessage everywhere else
1277         
1278         * test/python/test-{server|client}.py: add the python/.libs directory
1279         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1280         get picked up from the system
1281
1282 2005-08-25  Colin Walters  <walters@verbum.org>
1283
1284         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1285         to Ryan Lortie for the suggestion.
1286
1287 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * test/python: Add python regression test
1290
1291         * configure.in: Add test/python/Makefile
1292
1293         * test/Makefile.am: Add the python directory to SUBDIRS
1294
1295 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1296
1297         * Release 0.36.1
1298
1299         * python/_dbus.py: 
1300         (Interface::connect_to_signal): propigate keywords for match on args
1301         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1302
1303         * python/proxies.py (ProxyObject::connect_to_signal):
1304         propigate keywords for match on args
1305
1306         * Makefile.am: point everything to pyexecdir since python borks
1307         on multilib
1308
1309 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1310
1311         * Release 0.36
1312
1313 2005-08-23  Colin Walters  <walters@verbum.org>
1314
1315         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1316
1317 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1320         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1321         of defining DBusConnection ourselves.
1322
1323 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * python/dbus.pth: New path file to fix up problems when installing
1326         c libraries to lib64 and python files to lib.
1327
1328         * python/Makefile.am: install dbus.pth in the correct spot
1329
1330 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1331         * ChangeLog: clean up my last entry a bit
1332
1333         * doc/introspect.xsl: New stylesheet for converting introspection data
1334         into browser renderable xhtml. Contributed by Lennart Poettering.
1335
1336         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1337         Poettering.
1338
1339         * doc/dbus-tutorial.xml: 
1340         - Add Colin Walter to the Authors section for authoring the GLib
1341         section
1342         - Add descriptions of the new signature and type functionality
1343         in the Python complex type mapping section
1344         - Add a sidenote on the new args matching functionality in 
1345         the Python bindings
1346         - Fixed up some of the examples to use the gobject.MainLoop
1347         instead of gtk.main
1348         
1349         * python/_dbus.py:
1350         (Bus::_create_args_dict): New. Converts a hash of arg matches
1351         to a more useable format
1352         (Bus::add_signal_receiver): add a **keywords parameter for catching
1353         arg match parameters
1354         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1355         arg match parameters
1356         
1357         * python/matchrules.py:
1358         (MatchTree::exec_matches): Check for arg matches
1359         (SignalMatchRule::add_args_match): New method
1360         (SignalMatchRule::execute): Added args_list parameter as an optimization
1361         so we don't have to marshal the args more than once
1362         (SignalMatchRule::match_args_from_list): New method that checks to see
1363         if the rule's arg matches match an argument list.  Only arguments
1364         set in the rule are checked.
1365         (SignalMatchRule::match_args_from_rule): New method that checks to see
1366         if the rule's arg matches match another rule's.  All args have to match
1367         in order for this method to return true.  If either rule has more args
1368         then it is not a match.
1369         (SignalMatchRule::is_match): Add args match
1370         (SignalMatchRule::repr): Add args to the final output if they exist
1371
1372 2005-08-17  Ross Burton  <ross@burtonini.com>
1373
1374         * glib/dbus-gproxy.c:
1375         (dbus_g_proxy_call_no_reply): unref the message once sent.
1376         (dbus_g_proxy_call): protect against NULL proxy.
1377
1378 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1379
1380         * python/__init__.py: Version updated (0, 43, 0)
1381         
1382         * python/dbus_bindings.pyx: 
1383         - Fixed type objects to have self passed into __init__
1384         - Added the Variant type
1385         - Add the ability to specify types or signatures for Array, Variant 
1386         and Dictionary
1387         (Connection::send_with_reply_handlers): return a PendingCall object
1388         (_pending_call_notification): handle the case when an error is returned 
1389         without an error message in the body
1390         (MessageIter::get_boolean): return True or False instead of an integer
1391         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1392         and add checks for objects with embeded signatures or types (Array, 
1393         Variant and Dictionary)
1394         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1395         (MessageIter::append_dict): handle embeded types or signatures
1396         (MessageIter::append_array): handle embeded types or signatures
1397         (MessageIter::append_variant): new method
1398         
1399         * python/proxies.py:
1400         (DeferedMethod): New. Dummy executable object used when queuing calls 
1401         blocking on introspection data
1402         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1403         or shorter timeouts for method calls
1404         (ProxyObject): Add first pass at an introspection state machine
1405         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1406         introspection. 
1407         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1408         the usual mechanisms for sending messages.  This is to avoid a deadlock
1409         where the Intospect call would be queued waiting for the Introspect 
1410         call to finish ;-)
1411         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1412         when introspection returns with no error
1413         (ProxyObject::_introspect_error_handler): New.  This method is called 
1414         when introspection encounters an error
1415         (ProxyObject::__getattr__): Code to handle different introspection 
1416         states.  Queue async calls or block blocking calls if we are 
1417         introspecting.  Pass through as normal if we are not or are done with 
1418         introspecting.
1419         
1420         * python/service.py: Import signal and method from decorators.py
1421
1422         * python/types.py: Add Variant type
1423
1424 2005-08-16  Colin Walters  <walters@verbum.org>
1425
1426         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1427         DBusError message is NULL.
1428
1429 2005-08-09  Havoc Pennington  <hp@redhat.com>
1430
1431         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1432         malloc'd copy of the name parameter
1433
1434 2005-08-09  Havoc Pennington  <hp@redhat.com>
1435
1436         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1437         warning if the reply serial is set to 0
1438
1439 2005-08-04  Colin Walters  <walters@verbum.org>
1440
1441         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1442         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1443         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1444         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1445         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1446         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1447         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1448         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1449         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1450         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1451         
1452         Prefix name with _ to ensure they're not exported.  All callers
1453         updated.
1454
1455         * glib/dbus-gvalue.c (typecode_to_gtype)
1456         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1457         (signature_iter_to_g_type_dict)
1458         (signature_iter_to_g_type_array)
1459         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1460         (dbus_gtypes_from_arg_signature):
1461         Move to dbus-gsignature.c.
1462
1463         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1464         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1465         (dbus_binding_tool_output_glib_client): Ditto.
1466
1467         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1468         and dbus-gsignature.h
1469
1470         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1471         unused variable.
1472
1473 2005-08-03  Colin Walters  <walters@verbum.org>
1474
1475         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1476         catch any incompatible changes accidentally made.
1477
1478 2005-08-03  Havoc Pennington  <hp@redhat.com>
1479
1480         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1481         typo, from Julien Puydt
1482
1483         * bus/connection.c (bus_connection_disconnected): we were always
1484         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1485
1486 2005-08-01  Colin Walters  <walters@verbum.org>
1487
1488         Patch from Joe Markus Clarke:   
1489         
1490         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1491         use-after-free.
1492
1493 2005-08-01  Colin Walters  <walters@verbum.org>
1494         
1495         Patch from Joe Markus Clarke:   
1496         
1497         * tools/dbus-send.c (main): 
1498         
1499         Don't use C99 style initializers (bug #3933).
1500         
1501 2005-08-01  Colin Walters  <walters@verbum.org>
1502
1503         Patch from Joe Markus Clarke:   
1504
1505         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1506         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1507         * glib/dbus-gobject.c (write_interface):
1508
1509         Don't use C99 style initializers (bug #3933).
1510
1511 2005-07-31  Havoc Pennington  <hp@redhat.com>
1512
1513         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1514         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1515
1516 2005-07-30  Havoc Pennington  <hp@redhat.com>
1517
1518         * fix a bunch of Doxygen warnings and mistakes
1519
1520 2005-07-30  Havoc Pennington  <hp@redhat.com>
1521
1522         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1523         DBUS_BUILD_TESTS since it's now used in production code
1524
1525 2005-07-29  Havoc Pennington  <hp@redhat.com>
1526
1527         * test/glib/test-profile.c (write_junk): initialize the junk
1528         buffer so valgrind doesn't have a breakdown
1529
1530 2005-07-29  Havoc Pennington  <hp@redhat.com>
1531
1532         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1533         (match_rule_matches): remove unused arg
1534         (test_matching): add tests for match_rule_matches()
1535
1536         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1537         do arg0='foo' arg5='bar' in the match rules
1538         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1539
1540         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1541
1542 2005-07-29  Ross Burton  <ross@openedhand.com>
1543
1544         * dbus/dbus-connection.c:
1545         Don't create a DBusCondVar which is never used.
1546
1547 2005-07-27  Ross Burton  <ross@openedhand.com>
1548
1549         * dbus/dbus-message.c:
1550         Reduce the size of the maximum cached message to 10K.
1551
1552 2005-07-25  Ross Burton  <ross@openedhand.com>
1553
1554         * glib/dbus-gproxy.c:
1555         Remove matches when all proxies are unregistered.
1556
1557 2005-07-24  Colin Walters  <walters@verbum.org>
1558
1559         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1560         typedata; recursive arrays won't have it.
1561
1562         * test/glib/test-dbus-glib.c:
1563         * test/glib/test-service-glib.c:
1564         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1565         
1566 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1567
1568         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1569         proxies.py, service.py: Cleanup of code after running it through the
1570         pyflakes code checker mostly dealing with undefined names.  
1571         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1572
1573 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * NEWS: Update to 0.35.2
1576
1577 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1578
1579         * python/_dbus.py: Remove import of the dbus.services
1580         module as it no longer exists (patch from Dimitur Kirov)
1581
1582         * python/service.py (Object::__init__): Fixed typo
1583         s/name/bus_name (patch from Dimitur Kirov)
1584
1585         * python/examples/example-signal-emitter.py: import dbus.glib
1586         to get the main loop and use glib mainloop instead of gtk so
1587         X doesn't have to be running.
1588
1589         * python/examples/example-signal-recipient.py: import dbus.glib
1590         to get the main loop and use glib mainloop instead of gtk so
1591         X doesn't have to be running. Import the decorators module
1592         directly.
1593
1594         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1595         didn't pick up on but are needed to build
1596
1597         * configure.in: upped version to 0.35.2
1598
1599         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1600         added Colin Walters' SELinux API rename patch from head 
1601         s/unix sercurity context/selinux security context/
1602
1603 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1604
1605         * python/Makefile.am: dbus_binding.pxd.in should be included 
1606         in EXTRA_DIST not dbus_binding.pxd
1607         fix up $(srcdir) hopefully for the last time
1608
1609         * NEWS: Update to 0.35.1
1610
1611 2005-07-16  Colin Walters  <walters@verbum.org>
1612
1613         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1614         from bus_driver_handle_get_connection_unix_security_context.  Update for
1615         error usage.
1616         (message_handlers): Update for renames.
1617
1618         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1619         _dbus_string_init failure correctly.
1620         (bus_selinux_append_context): Convert SID to context.  Append it
1621         as a byte array.
1622         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1623         hasn't been called.
1624
1625         * bus/selinux.h: Update prototype.
1626
1627         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1628         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1629
1630 2005-07-15  Colin Walters  <walters@verbum.org>
1631
1632         * doc/TODO: Add note about convenience wrappers.
1633
1634 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1635
1636         * NEWS: Update to 0.35
1637
1638 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1639
1640         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1641         so distcheck doesn't fail
1642
1643         * glib/examples/Makefile.am: Add example-service.xml and 
1644         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1645
1646         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1647         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1648
1649         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1650         compiler looks in the right places during distcheck
1651
1652 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1653
1654         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1655         to fail
1656
1657 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1658
1659         * python/examples/example-service.py,
1660         python/examples/example-signal-emitter.py: Fixed up examples
1661         for API changes
1662
1663 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1664
1665         * python/__init__.py: Upped to version (0,42,0) because of
1666         the API change
1667
1668 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1669
1670         * ChangeLog: fix date in last entry
1671
1672         * configure.in, bus/system.conf.in: add the ability to configure 
1673         the system bus user at compiletime with the --with-dbus-user flag
1674         (patch from Kristof Vansant)
1675
1676 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1677
1678         * bus/dispatch.c, test/test-service.c: Add testcase
1679         for sending messages to oneself (TODO item).
1680
1681         * python/service.py (class Object): Swap ordering of bus_name 
1682         and object_path parameters to better support inheritance.
1683
1684         * doc/dbus-tutorial.xml: change Python docs to reflect change
1685         in parameter ordering and fix the inheritance section.
1686
1687         * doc/TODO: remove sending message to oneself TODO item
1688
1689 2005-07-15  Ross Burton  <ross@openedhand.com>
1690
1691         * glib/dbus-gproxy.c:
1692         Fix a leak when calling methods via the proxy.
1693
1694 2005-07-15  Colin Walters  <walters@verbum.org>
1695
1696         * bus/selinux.c (bus_selinux_append_context): Wrap in
1697         HAVE_SELINUX.
1698
1699 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1700
1701         * python/_dbus.py (Bus::remove_signal_receiver):
1702         don't add a callback to the match if none has been passed in
1703         
1704         * python/matchrules.py (SignalMatchTree::remove): if the rule
1705         being matched does not have a callback treat it as a wildcard
1706         fix matching logic
1707
1708         * doc/dbus-tutorial.xml: Add Python tutorial
1709
1710 2005-07-14  Colin Walters  <walters@verbum.org>
1711
1712         * bus/driver.c
1713         (bus_driver_handle_get_connection_unix_security_context): New function.
1714         (message_handlers): Add.
1715
1716         * bus/selinux.c (bus_selinux_append_context): New function; appends
1717         security context to message.
1718
1719         * bus/selinux.h: Prototype.
1720
1721         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1722
1723 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1724
1725         * bus/activation.c: clean up all tabs to be 8 spaces 
1726         (bus_activation_activate_service): make sure we clean up
1727         if activation fails
1728
1729         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1730         (check_shell_fail_service_auto_start): New function
1731         tests to make sure we get fail properly when trying to auto start a service
1732         with a faulty command line
1733         (check_shell_service_success_auto_start): New function tests to make sure
1734         auto started services get the arguments on the command line
1735
1736         * test/test-shell-service.c: Added service for testing auto-starting with 
1737         command line arguments
1738
1739         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1740         test/data/valid-service-files/debug-shell-echo-success.service.in:
1741         Added service files for testing auto-starting with command line arguments
1742
1743         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1744
1745 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1746
1747         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1748         
1749         * dbus/Makefile.am: added new files to build.
1750
1751         * bus/activation.c (bus_activation_activate_service): support
1752         activation commands with parameters.
1753
1754         * test/shell-test.c: added test program for the shell parsing
1755         code.
1756
1757 2005-07-13  David Zeuthen  <davidz@redhat.com>
1758
1759         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1760         64 bit signed and unsigned parameters
1761
1762 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1763
1764         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1765
1766         * python/service.py (class Name): renamed BusName to make it clearer
1767         what the object is for (a name on the bus)
1768
1769         * python/examples/example-service.py,
1770         python/examples/example-signal-emitter.py: change the Name object to
1771         BusName
1772
1773 2005-07-12  Colin Walters  <walters@verbum.org>
1774
1775         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1776
1777         * tools/dbus-launch.c: Include sys/select.h.
1778
1779 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1780         * python/dbus_bindings.pyx.in: removed
1781
1782         * python/dbus_bindings.pyx: Added.
1783         - Fixed some memleaks (patch from 
1784         Sean Meiners <sean.meiners@linspireinc.com>)
1785         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1786         own pxd file (Pyrex definition)
1787         - Broke out glib dependancies into its own pyx module
1788         
1789         * python/dbus_bindings.pdx: Added.
1790         - Defines C class Connection for exporting to other modules
1791
1792         * python/dbus_glib_bindings.pyx: Added.
1793         - New module to handle lowlevel dbus-glib mainloop integration
1794
1795         * python/glib.py: Added.
1796         - Registers the glib mainloop when you import this module
1797
1798         * python/services.py: Removed (renamed to service.py)
1799         
1800         * python/service.py: Added.
1801         - (class Server): renamed Name
1802
1803         * python/__init__.py: Bump ro version (0,41,0)
1804         -don't import the decorators or service module
1805         by default.  These now reside in the dbus.service namespace
1806
1807         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1808         setup function on creation 
1809
1810         * python/examples/example-service.py,
1811         python/examples/example-signal-emitter.py: update examples
1812
1813         * python/examples/gconf-proxy-service.py,
1814         python/examples/gconf-proxy-service2.py: TODO fix these up
1815
1816         * doc/TODO: Addition
1817         - Added a Python Bindings 1.0 section
1818         - added "Add match on args or match on details to match rules"
1819
1820
1821 2005-07-12  Colin Walters  <walters@verbum.org>
1822
1823         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1824         (statemachine-glue.h): 
1825         * glib/examples/Makefile.am (example-service-glue.h) 
1826         (example-signal-emitter-glue.h): 
1827         * glib/Makefile.am (dbus-glib-error-switch.h): 
1828         Add libtool --mode=execute so we use the built library instead
1829         of any installed one.
1830
1831 2005-07-11  Colin Walters  <walters@verbum.org>
1832
1833         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1834         (dbus_g_value_types_init): Remove assertion.
1835         (dbus_g_value_get_g_type, dbus_g_value_open)
1836         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1837         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1838         functions related to DBusGValue.  Now we marshal/demarshal
1839         structures as GValueArray.
1840         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1841         structures.
1842         (signature_iter_to_g_type_array): Don't call
1843         signature_iter_to_g_type_struct.
1844         (signature_iter_to_g_type_struct): Delete.
1845         (dbus_gvalue_to_signature): Delete.
1846         (dbus_gvalue_to_signature): New function with same name as other
1847         one; we can convert structures to signatures.
1848         (demarshal_valuearray): New function.
1849         (get_type_demarshaller): Use it.
1850         (demarshal_recurse): Delete.
1851         (marshal_proxy): New function.
1852         (marshal_map): Warn if we can't determine signature from type.
1853         (marshal_collection_ptrarray): Ditto.
1854         (marshal_collection_array): Ditto.
1855         (get_type_marshaller): Use marshal_valuearray.
1856         (marshal_recurse): Delete.
1857         (_dbus_gvalue_test): Add some tests.
1858
1859         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1860         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1861         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1862         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1863         (dbus_g_value_free): Remove prototypes.
1864
1865         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1866         G_TYPE_VALUE_ARRAY.
1867
1868         * glib/examples/example-service.c:
1869         * glib/examples/example-client.c: Implement GetTuple.
1870
1871         * test/glib/test-dbus-glib.c:
1872         * test/glib/test-service-glib.c:
1873         * test/glib/test-service-glib.xml: Add structure tests.
1874
1875 2005-07-10  Colin Walters  <walters@verbum.org>
1876
1877         * doc/TODO: Knock off some GLib items with this patch.
1878
1879         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1880         (_dbus_gvalue_signals_error): New functions.
1881
1882         * glib/dbus-gvalue-utils.h: Prototype them.
1883
1884         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1885         and change to not output const/retval flags for input args.  All
1886         callers updated.
1887         (invoke_object_method): Refactor to handle return values.  Add
1888         some more comments in various places.  Remove debug g_print.
1889
1890         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1891
1892         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1893         Handle G_TYPE_NONE.
1894         (compute_gsignature): New function; refactored from code from
1895         compute_marshaller and compute_marshaller_name.  Enhance to
1896         handle return values and async ops more cleanly.  Update for
1897         async ops returning NONE instead of BOOLEAN.
1898         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1899         and output appropriate string.
1900         (generate_glue): Handle return value annotation.  Also don't dump
1901         constness flag for input arguments.
1902
1903         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1904         files shared between installed library and utilities.
1905         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1906         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1907         binding tool can access gtype utility functions.
1908
1909         * test/glib/test-service-glib.c: 
1910         * test/glib/test-service-glib.xml: 
1911         * test/glib/test-dbus-glib.c: Add some tests for return values.
1912
1913 2005-07-09  Colin Walters  <walters@verbum.org>
1914
1915         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1916         argument if available, not method.
1917
1918         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1919         (invoke_object_method): First, remove some redundant
1920         GValues (object_value, error_value) in favor of working on
1921         array directly.  Second, rework constness to be less buggy.
1922         Now we iterate directly over the argument metadata instead
1923         of parallel iterating over output signature and metadata.
1924
1925         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1926
1927         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1928         annotation on input args.
1929         
1930 2005-07-09  Colin Walters  <walters@verbum.org>
1931
1932         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1933         Define.
1934
1935         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1936         annotation.
1937
1938         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1939         (method_dir_signature_from_object_info): Handle arg_iterate change.
1940         (write_interface): Ditto.
1941         (lookup_object_info): Don't barf if format_version is > 0.
1942         (invoke_object_method): Handle arg constness.
1943
1944         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1945         (arg_info_new): Create.
1946         (arg_info_unref): Destroy.
1947         (arg_info_get_annotations, arg_info_get_annotation) 
1948         (arg_info_add_annotation): New functions.
1949
1950         * glib/dbus-gidl.h: Prototype them.
1951
1952         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1953         args, disallow them in properties.
1954         (parse_annotation): Handle arg annotations.
1955
1956         * test/glib/test-service-glib.xml: 
1957         * test/glib/test-service-glib.c: Update to make some methods
1958         const.
1959
1960 2005-07-08  Colin Walters  <walters@verbum.org>
1961
1962         * test/glib/test-service-glib.xml: 
1963         * test/glib/test-service-glib.c:
1964         * test/glib/test-dbus-glib.c: Test a{sv}.
1965
1966         * glib/examples/statemachine/statemachine.c:
1967         * glib/examples/statemachine/statemachine-server.c:
1968         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1969         add progress bar, etc.
1970
1971         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1972         needed anymore due to generic array/map marshalling.
1973         (dbus_g_value_types_init): Don't register basic arrays or the
1974         string/string hash.
1975         (dbus_gtype_from_signature_iter): Don't try to recurse into
1976         variants.
1977         (dbus_gtype_to_signature): Check collection/map before type
1978         metadata.
1979         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1980         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1981         generic map creation/append functions instead of hash table
1982         specifically.
1983         (get_type_demarshaller): Handle maps.
1984         (demarshal_collection): Dispatch on collection type to either
1985         demarshal_collection_ptrarray or demarshal_collection_array.
1986         (get_type_marshaller): Handle maps.
1987         (marshal_collection): Dispatch collection type to either
1988         marshal_collection_ptrarray or marshal_collection_array.
1989         (_dbus_gvalue_test): New test.
1990
1991         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1992         (hash_free_from_gtype): Use it to free GValues.
1993         (hashtable_append): New function.
1994         (ptrarray_append): Fix prototype.
1995         (slist_append): Ditto.
1996         (_dbus_gvalue_utils_test): Extend tests.
1997
1998         * glib/dbus-gtype-specialized.c
1999         (dbus_g_type_specialized_init_append): Renamed from
2000         dbus_g_type_specialized_collection_init_append.  Remove const from
2001         value, since we steal it.
2002         (dbus_g_type_specialized_map_append): New function.
2003
2004         * glib/dbus-gtype-specialized.h: Update prototypes.
2005         Add DBusGTypeSpecializedMapAppendFunc.
2006
2007         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2008         _dbus_gvalue_test.
2009         
2010         * glib/dbus-gtest.h: Prototype it.
2011
2012 2005-07-08  Ross Burton  <ross@openedhand.com>
2013
2014         * dbus/dbus-glib.h:
2015         Add DBysGAsyncData for the async bindings.
2016
2017         * glib/dbus-binding-tool-glib.c:
2018         Re-enable the async bindings.
2019
2020         * test/glib/test-dbus-glib.c:
2021         Add a test for the generated async bindings.
2022
2023 2005-07-08  Colin Walters  <walters@verbum.org>
2024
2025         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2026         connection concept.
2027         
2028 2005-07-08  Colin Walters  <walters@verbum.org>
2029         
2030         * tools/Makefile.am: Kill of print-introspect in favor of using
2031         dbus-send --print-reply=literal.
2032
2033         * test/glib/test-service-glib.xml: 
2034         * test/glib/test-service-glib.c (my_object_get_objs): New test
2035         for "ao".
2036
2037         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2038         (main): Test GetObjs.
2039
2040         * glib/examples/statemachine/Makefile.am:
2041         * glib/examples/statemachine/sm-marshal.list:
2042         * glib/examples/statemachine/statemachine-client.c:
2043         * glib/examples/statemachine/statemachine-server.c:
2044         * glib/examples/statemachine/statemachine-server.xml:
2045         * glib/examples/statemachine/statemachine.c:
2046         * glib/examples/statemachine/statemachine.h:
2047         * glib/examples/statemachine/statemachine.xml:
2048
2049         New example.
2050
2051         * glib/examples/example-service.c (main): Move invocation
2052         of dbus_g_object_type_install_info earlier, to emphasize it
2053         should only be done once.
2054
2055         * glib/examples/example-signal-emitter.c (main): Ditto.
2056
2057         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2058
2059         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2060         (dbus_gvalue_marshal): Update prototypes.
2061
2062         * glib/dbus-gvalue.c: Update all marshalling functions to take
2063         const GValue instead of GValue.
2064         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2065         types.
2066         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2067         change.
2068         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2069         Return a newly-allocated string.
2070         (demarshal_proxy, demarshal_object_path, demarshal_object)
2071         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2072         we get the wrong types from message.
2073         (get_type_demarshaller): New function, extracted from
2074         dbus_gvalue_demarshal.
2075         (demarshal_collection): New function, demarshals generic
2076         collection.
2077         (dbus_gvalue_demarshal): Just invoke result of
2078         get_type_demarshaller.  Throw error if we don't have one.
2079         (marshal_garray_basic): Abort on OOM.
2080         (get_type_marshaller): New function, extracted from
2081         dbus_gvalue_marshal.
2082         (collection_marshal_iterator, marshal_collection): New functions;
2083         implements generic marshalling for an iteratable specialized
2084         collection.
2085         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2086
2087         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2088         G_TYPE_STRING.
2089         (ptrarray_value_from_gvalue): Ditto.
2090         (ptrarray_append, ptrarray_free): New functions.
2091         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2092         (slist_append, slist_end_append, slist_free): New functions.
2093         (dbus_g_type_specialized_builtins_init): Add append fuctions
2094         for GPtrArray and GSList.  Register GSList.
2095         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2096
2097         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2098         New.
2099         (dbus_g_type_specialized_collection_init_append)
2100         (dbus_g_type_specialized_collection_append)
2101         (dbus_g_type_specialized_collection_end_append): Prototype.
2102         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2103         end_append_func.
2104
2105         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2106         (dbus_g_type_specialized_collection_append) 
2107         (dbus_g_type_specialized_collection_end_append): New functions.
2108         (dbus_g_type_map_value_iterate): Take const GValue.
2109         (dbus_g_type_collection_value_iterate): Ditto.
2110
2111         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2112         _dbus_gvalue_utils_test.
2113         
2114         * glib/dbus-gtest.h: Prototype it.
2115
2116         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2117         using uninitialized owner_list.
2118         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2119         public API.
2120         (dbus_g_proxy_end_call_internal): Update to use error set
2121         from dbus_gvalue_demarshal instead of setting it here.
2122         (dbus_g_proxy_begin_call): Move return_if_fail here.
2123
2124         * glib/dbus-gobject.c (write_interface): Update for
2125         dbus_gtype_to_signature returning new string.
2126
2127         * configure.in: Add glib/examples/statemachine.
2128
2129 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2130
2131         * configure.in: Add a configure option, --with-console-auth-dir
2132         
2133         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2134         new setting.  Patch from Kay Sievers.
2135
2136 2005-07-06  Colin Walters  <walters@verbum.org>
2137
2138         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2139         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2140         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2141         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2142         Delete in favor of dbus_g_proxy_begin_call and
2143         dbus_g_proxy_cancel_call.
2144         (DBusGProxyCall, DBusGProxyCallNotify): New.
2145         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2146         data, and destroy function.  This replaces
2147         dbus_g_pending_call_set_notify.
2148         (dbus_g_proxy_cancel_call): Prototype.
2149         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2150
2151         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2152         pending_calls map.
2153         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2154         internal proxy for calls to the bus. Remove
2155         pending_nameowner_calls, now the internal proxy keeps track.
2156         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2157         pending_nameowner_calls.
2158         (got_name_owner_cb): Update prototype, and use
2159         dbus_g_proxy_end_call.
2160         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2161         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2162         favor of using internal proxy.
2163         (dbus_g_proxy_manager_unregister): Update to use
2164         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2165         (dbus_g_proxy_init): Initialize pending calls map.
2166         (dbus_g_proxy_constructor): New.
2167         (dbus_g_proxy_class_init): Add get/set property functions,
2168         constructor, and add NAME, PATH, and INTERFACE properties.
2169         (cancel_pending_call): New function.
2170         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2171         cancel them.
2172         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2173         (GPendingNotifyClosure): New structure.
2174         (d_pending_call_notify, d_pending_call_free): Moved here from
2175         dbus-glib.c.
2176         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2177         ordering.
2178         (manager_begin_bus_call): New internal function for talking to
2179         internal bus proxy.
2180         (dbus_g_proxy_new): Construct object using GObjet properties.
2181         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2182         Create closure of same, and insert call into map of pending calls.
2183         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2184         call.  Look up pending call in current set.  Remove it when we've
2185         completed.
2186         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2187         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2188         and destroy function directly.
2189         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2190         (dbus_g_proxy_call): Invoke with NULL callback.
2191         (dbus_g_proxy_cancel_call): New function, replaces
2192         dbus_g_pending_call_cancel.
2193
2194         * glib/dbus-gparser.c (validate_signature): Fix call to
2195         dbus_set_g_error.
2196
2197         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2198         New quark for attaching metadata to GType.
2199         (info_hash): Delete.
2200         (lookup_object_info): Look up using quark.
2201         (dbus_g_object_type_install_info): Check that a type is classed,
2202         not that it's an object.  Also just install type data using quark
2203         instead of using global hash.
2204
2205         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2206         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2207         (GPendingNotifyClosure): Delete.
2208         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2209         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2210
2211         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2212         client method generation until we can fix it...
2213         
2214         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2215         (load_from_service_thread_func): Ditto.
2216
2217         * tools/dbus-names-model.c (struct NamesModel): Hold
2218         DBusGProxyCall.
2219         (have_names_notify): Update prototype, use
2220         dbus_g_proxy_cancel_call.
2221         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2222
2223         * tools/dbus-monitor.c (filter_func): Update for print_message
2224         API change.
2225
2226         * test/glib/test-dbus-glib.c: Add more tests for async
2227         invocations.  Update many begin_call/end_call pairs to just use
2228         dbus_g_proxy_call.
2229
2230         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2231         allows us to dump print-introspect.c.
2232
2233         * tools/dbus-print-message.h (print_message): Add literal argument
2234         to print_message which is intended to allow printing arguments without
2235         metadata like "string=".
2236
2237         * tools/dbus-print-message.c (print_iter): Add literal argument.
2238         (print_message): Allow printing string messages literally.
2239
2240 2005-07-05  Colin Walters  <walters@verbum.org>
2241
2242         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2243         Remove value refcount leak, original patch from Jorn Baayen
2244         <jorn@openedhand.com>.  Also remove useless extra value in favor
2245         of prepending to value array directly.
2246
2247 2005-07-02  Colin Walters  <walters@verbum.org>
2248
2249         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2250
2251 2005-07-01  Colin Walters  <walters@verbum.org>
2252
2253         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2254         
2255         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2256         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2257         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2258         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2259
2260 2005-06-30  Colin Walters  <walters@verbum.org>
2261
2262         * test/glib/test-dbus-glib.c:
2263         * test/glib/test-service-glib.c:
2264         * test/glib/test-service-glib.xml: Update tests for new error
2265         setting bits, also add async tests (patch from Ross Burton).
2266
2267         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2268         DBUS_GLIB_THREADS_LIBS.
2269
2270         * glib/dbus-gproxy.c (get_name_owner)
2271         (dbus_g_pending_call_end_valist): Ditto.
2272
2273         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2274         domain (GQuark) to DBusGErrorInfo.  
2275         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2276         quark in error_metadata.  Take message interface as default
2277         error message interface.
2278         (gerror_to_dbus_error_message): Pass message interface.
2279         (dbus_set_g_error): Resurrected.
2280         (dbus_g_error_info_free): New function.
2281         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2282         of _peek to actually create the object class if it hasn't been
2283         created yet.
2284         (dbus_g_error_domain_register): New function.
2285
2286         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2287
2288         * glib/dbus-gparser.c (validate_signature): Ditto.
2289
2290         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2291         (dbus_g_error_domain_register): Prototype.
2292
2293         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2294         Update tests.
2295
2296 2005-06-29  Colin Walters  <walters@verbum.org>
2297
2298         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2299         DBUS_TYPE_G_OBJECT_PATH.
2300
2301         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2302         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2303         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2304         (dbus_g_object_path_get_g_type): New function.
2305         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2306         to DBUS_TYPE_G_OBJECT_PATH by default.
2307         (demarshal_proxy): Remove unused name variable.
2308         (demarshal_object_path, marshal_object_path): New functions.
2309         (demarshal_proxy_array, marshal_proxy_array): Delete.
2310         
2311         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2312         DBUS_TYPE_G_OBJECT_PATH to char *.
2313         (dbus_g_type_get_lookup_function): Map builtin
2314         DBUS_TYPE_G_OBJECT_PATH.
2315
2316         * test/glib/test-dbus-glib.c
2317         * test/glib/test-service-glib.c (my_object_objpath): 
2318         Adapt tests to new object path marshalling.
2319
2320 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2321
2322         * configure.in: force check for Python >= 2.4
2323
2324 2005-06-29  Colin Walters  <walters@verbum.org>
2325         
2326         Patch from Ross Burton <ross@openedhand.com>
2327         
2328         * glib/dbus-gobject.c (invoke_object_method): Unset object
2329         value in all cases, not only in async case.
2330
2331 2005-06-29  Colin Walters  <walters@verbum.org>
2332
2333         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2334         name_call for keeping track of any outgoing GetNameOwner call.
2335         Also add for_owner and associated.
2336         (struct _DBusGProxyManager): Add owner_names, which is hash table
2337         that maps a base name to a list of names it owns (that we're
2338         interested in).  Add pending_nameowner_calls which is a list of
2339         all outstanding GetNameOwner; avoids us having to iterate over
2340         every proxy.  Add unassociated_proxies which keeps track of name
2341         proxies with no associated name owner.
2342         (dbus_g_proxy_manager_unref): Destroy owner_names.
2343         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2344         name refcounts.
2345         (find_name_in_info, name_owner_foreach)
2346         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2347         (dbus_g_proxy_manager_monitor_name_owner)
2348         (dbus_g_proxy_manager_unmonitor_name_owner)
2349         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2350         New functions; they manipulate the owner_names mapping.
2351         (got_name_owner_cb): New function.
2352         (get_name_owner): New function, extracted from
2353         dbus_g_proxy_new_for_name_owner.
2354         (dbus_g_proxy_manager_register): For now we need to keep track of
2355         all NameOwnerChanged.  Also if the proxy is for a name, if we
2356         don't already know the name owner, queue a new GetNameOwner
2357         request and add it to our list of unassociated proxies.  Otherwise
2358         inc the refcount.
2359         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2360         cancel any pending GetNameOwner call, etc.
2361         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2362         the owner_names mapping to look up the current names for the
2363         signal source, and dispatch to any proxies for that name.
2364         (dbus_g_proxy_new): Initialize new members.
2365         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2366         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2367         (dbus_g_pending_call_end_valist): New function, extracted from
2368         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2369         but want to use the GLib infrastructure.  Also note how many
2370         arguments in reply were over.
2371         (dbus_g_pending_call_end): New function, just call
2372         dbus_g_pending_call_end_valist.
2373         (dbus_g_proxy_end_call_internal): Just call
2374         dbus_g_pending_call_end_valist.
2375
2376         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2377         of builtin marshaller for STRING_STRING_STRING.
2378
2379         * test/glib/test-dbus-glib.c: 
2380         * test/glib/test-service-glib.c:
2381         * test/glib/test-service-glib.xml:
2382         Extend tests to cover name proxies, destruction of owner proxies,
2383         etc.
2384         
2385         * glib/examples/example-signal-recipient.c
2386         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2387         
2388         * tools/dbus-send.c (main): Print D-BUS error name in addition
2389         to message.
2390
2391 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2392
2393         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2394         cmessage_function_handler): Patch from 
2395         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2396         by using the Py_GILState_Ensure/Release to synchronize with the
2397         python runtime.
2398         
2399 2005-06-28  Ray Strode  <rstrode@redhat.com>
2400
2401         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2402         babysitter helper process on last unref, bug #2813.
2403
2404 2005-06-27  Colin Walters  <walters@verbum.org>
2405
2406         * test/glib/test-dbus-glib.c: 
2407         * test/glib/test-service-glib.c:
2408         * test/glib/test-service-glib.xml:
2409         Test hash table signal emitting.
2410
2411         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2412         types to their fundamental basis types, since this is what
2413         marshallers operate on.  Also add an entry for VOID__BOXED.
2414         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2415
2416 2005-06-26  Havoc Pennington  <hp@redhat.com>
2417
2418         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2419         from Don Park
2420
2421 2005-06-26  Colin Walters  <walters@verbum.org>
2422
2423         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2424         (dbus_g_error_set): New public function from its ashes; used by
2425         both service-side method implementation and GLib bindings
2426         internals.
2427         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2428         (_dbus_glib_test): Add some tests.
2429
2430         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2431
2432         * test/glib/test-service-glib.c (my_object_throw_error): Use
2433         dbus_g_error_set.
2434
2435         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2436         errors thrown by dbus_g_error_set.
2437
2438         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2439
2440         * glib/dbus-gparser.c (validate_signature): Ditto.
2441
2442         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2443         (dbus_g_proxy_end_call_internal): Ditto.
2444
2445         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2446         converts DBUS_ERROR_x to DBUS_GERROR_x.
2447         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2448
2449         * doc/TODO: Remove error TODO.
2450
2451         * doc/dbus-tutorial.xml: Update with documentation about error
2452         handling.
2453
2454         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2455         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2456         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2457
2458 2005-06-22  Colin Walters  <walters@verbum.org>
2459         
2460         Patch from Ross Burton <ross@openedhand.com>
2461
2462         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2463
2464 2005-06-20  Colin Walters  <walters@verbum.org>
2465
2466         * configure.in: Add glib/examples.
2467
2468         * glib/Makefile.am: Add examples/
2469
2470         * glib/examples/.cvsignore
2471         * glib/examples/Makefile.am
2472         * glib/examples/example-client.c
2473         * glib/examples/example-service.c
2474         * glib/examples/example-service.xml
2475         * glib/examples/example-signal-emitter.c
2476         * glib/examples/example-signal-emitter.xml
2477         * glib/examples/example-signal-recipient.c:
2478         New files; GLib binding examples, ported from
2479         python/examples.
2480
2481 2005-06-20  Colin Walters  <walters@verbum.org>
2482
2483         * dbus/dbus-glib.h: 
2484         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2485         dbus_g_proxy_call.
2486
2487         * glib/dbus-binding-tool-glib.c: 
2488         * doc/dbus-tutorial.xml: 
2489         * test/glib/test-dbus-glib.c: Update for rename.
2490         
2491 2005-06-20  Colin Walters  <walters@verbum.org>
2492
2493         Patch suggested by Ross Burton <ross@openedhand.com>
2494
2495         * glib/dbus-gobject.c (export_signals): Free signal name.
2496         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2497         memory leak.  Add a bit of documentation.
2498         (dbus_g_method_return_error): Free context, and note we do
2499         so.
2500
2501 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2502
2503         * dbus/dbus-glib.h:
2504         * glib/dbus-gobject.c:
2505         * glib/dbus-gproxy.c:
2506         * glib/dbus-gvalue.c: Predeclare structs as 
2507         typedef struct _Something Something instead of 
2508         typedef struct Something Something, so we can 
2509         redeclare the prototypes. Other GNOME libraries 
2510         do this already.
2511
2512 2005-06-17  Colin Walters  <walters@verbum.org>
2513
2514         * tools/dbus-names-model.c (have_names_notify): Fix call
2515         to dbus_g_proxy_end_call.
2516         
2517 2005-06-17  Colin Walters  <walters@verbum.org>
2518
2519         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2520         spew warnings if we get malformed remote signals.
2521
2522         * glib/dbus-gobject.c (propsig_iterate): New function.
2523         (lookup_object_info): New function, extracted from
2524         lookup_object_and_method.
2525         (introspect_properties, introspect_signals): Delete; these
2526         are merged into write_interface.
2527         (write_interface): Write out signals and properties here;
2528         dump the org.gtk.object stuff and use the interface given
2529         in the introspection data blob.  Also fix up property XML.
2530         (lookup_values): New function.
2531         (introspect_interfaces): Gather a mapping from interface to a
2532         list of its methods, signals, and properties, then write out
2533         each interface.
2534         (lookup_object_and_method): Use lookup_object_info.
2535         (struct DBusGSignalClosure): Add interface.
2536         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2537         we can just use the constant data.
2538         (dbus_g_signal_closure_finalize): Don't free signal name.
2539         (signal_emitter_marshaller): Use interface from signal closure.
2540         (export_signals): Only export signals mentioned in introspection
2541         blob.
2542         (dbus_g_connection_register_g_object): Warn if we have no
2543         introspection data for an object.
2544         (funcsig_equal): Remove unused variable.
2545         (dbus_g_object_register_marshaller): Take varargs instead of
2546         list.
2547         (dbus_g_object_register_marshaller_array): New function,
2548         extracted from old dbus_g_object_register_marshaller.
2549
2550         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2551         signals and property data.
2552         (write_quoted_string): New function, extracted from generate_glue.
2553         (generate_glue): Write signals and properties to introspection
2554         blob.
2555
2556         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2557         exported_signals and exported_properties.
2558         (dbus_g_object_register_marshaller): Update prototype.
2559         (dbus_g_object_register_marshaller_array): Prototype.
2560         
2561         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2562
2563         * test/glib/test-service-glib.c: Add new test signals and method
2564         to emit them.
2565
2566         * test/glib/test-service-glib.xml: Add some test signals.
2567
2568         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2569         and my-object-marshal.h
2570         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2571         my-object-marshal.c.
2572         (my-object-marshal.c, my-object-marshal.h): Implement.
2573
2574         * test/glib/.cvsignore: Update.
2575
2576         * doc/TODO: Remove two GLib TODO items fixed by this
2577         patch.
2578
2579 2005-06-16  Colin Walters  <walters@verbum.org>
2580
2581         * doc/TODO: Update for GLib bindings.
2582         
2583 2005-06-16  Colin Walters  <walters@verbum.org>
2584
2585         * glib/dbus-binding-tool-glib.c:
2586         * glib/dbus-gobject.c:
2587         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2588         from Ross Burton, for his GLib bindings work.
2589
2590 2005-06-16  Colin Walters  <walters@verbum.org>
2591
2592         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2593         to iterate instead of walking to G_TYPE_INVALID.
2594
2595         Patch based on a patch from Ryan Gammon.
2596
2597 2005-06-16  Colin Walters  <walters@verbum.org>
2598
2599         * bus/bus.c (bus_context_new): Set parser to NULL
2600         after we unref it (Patch from Chris Boscolo, #2174).
2601         
2602 2005-06-16  Colin Walters  <walters@verbum.org>
2603
2604         * python/dbus_bindings.pyx.in: Import size_t,
2605         __int64_t, __uint64_t, and __signed.
2606
2607         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2608         Define cmsg struct, output it.
2609         (_dbus_read_credentials_unix_socket):
2610         Use cmsg struct.
2611         
2612         Patch from Joe Markus Clarke for FreeBSD support.
2613         
2614 2005-06-16  Colin Walters  <walters@verbum.org>
2615
2616         * tools/dbus-send.c (append_array): Use strtok.
2617         (append_dict): New function.
2618         (type_from_name): New function, extracted from main.
2619         (main): Handle sending dicts.
2620
2621         * tools/dbus-print-message.c (print_iter): Print dict
2622         entries.
2623         
2624 2005-06-16  Colin Walters  <walters@verbum.org>
2625
2626         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2627         values as the empty string (#2948).
2628         
2629 2005-06-16  Colin Walters  <walters@verbum.org>
2630
2631         * dbus/Makefile.am:
2632         * mono/doc/Makefile.am:
2633         * test/glib/Makefile.am:
2634
2635         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2636
2637 2005-06-16  Colin Walters  <walters@verbum.org>
2638
2639         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2640         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2641
2642         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2643         Increment pointer after swapping fixed array.  Add assertion
2644         for array length.
2645                 
2646 2005-06-15  Colin Walters  <walters@verbum.org>
2647
2648         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2649         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2650         
2651 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2652
2653         * NEWS: Update to 0.34
2654
2655 2005-06-15  David Zeuthen  <davidz@redhat.com>
2656
2657         * configure.in (LT_CURRENT): Revert back to 1 as the library
2658         hasn't changed and we've certainly not committed to protocol
2659         stability yet.  All this does is to break ABI. See commit note
2660         from hp@redhat.com 2005-05-05 for details.
2661         
2662 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2663
2664         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2665         (_dbus_connection_run_builtin_filters): New method
2666         (dbus_connection_dispatch): Run the builtin filters which in turn
2667         runs the peer filter which handles Ping messages.
2668
2669         * doc/TODO: 
2670          - Ping isn't handled: This patch fixes it
2671          
2672          - Add a test case for the Ping message: added TODO item
2673
2674 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2675
2676         * dbus/dbus-message.c:
2677         (dbus_message_has_path): New method
2678         (dbus_message_has_interface): New method
2679         (dbus_message_has_member): New method
2680
2681         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2682         New method
2683
2684         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2685         the keyring directory is private to the user
2686
2687         * doc/TODO:
2688          - The convenience functions in dbus-bus.h should perhaps have
2689          the signatures that they would have if they were autogenerated
2690          stubs. e.g. the acquire service function. We should also evaluate
2691          which of these functions to include, in light of the fact that
2692          GLib/Qt native stubs will probably also exist.: Punted
2693
2694          - add dbus_message_has_path(), maybe has_member/interface:
2695          fixed in this patch
2696
2697          - in dbus-keyring.c, enforce that the keyring dir is not
2698          world readable/writable: Fixed in this patch
2699
2700 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2701
2702         * dbus/dbus-marshal-validate.h: Added a new validation
2703         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2704         out of memory errors when validating signitures
2705
2706         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2707         in places where we previously used DBUS_VALID and a FALSE return 
2708         value to indicate OOM
2709         
2710         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2711         Use a stack to track the number of elements inside containers.  The 
2712         stack values are then used to validate that dict entries have only two
2713         elements within them.
2714         (validate_body_helper): check the reason for failure when validating
2715         varients
2716         
2717         * dbus/dbus-message.c (load_message): use 
2718         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2719         DBUS_VALID and a FALSE return value to indicate OOM
2720
2721         * doc/TODO: remove "- validate dict entry number of fields" as this
2722         patch fixes it
2723
2724 2005-06-14  David Zeuthen  <davidz@redhat.com>
2725
2726         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2727         watches (if applicable) and add new watches
2728
2729         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2730         (main): Setup SIGIO signal handler if using D_NOTIFY
2731
2732         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2733
2734         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2735         (merge_included): Also merge conf_dirs list
2736         (bus_config_parser_unref): Clear conf_dirs list
2737         (include_dir): Add directory to conf_dirs list
2738         (bus_config_parser_get_conf_dirs): New function
2739
2740         * bus/dir-watch.[ch]: New files
2741
2742         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2743
2744         * configure.in: Add checks for D_NOTIFY on Linux
2745
2746 2005-06-14  Colin Walters  <walters@verbum.org>
2747
2748         * glib/dbus-binding-tool-glib.c:
2749         * glib/dbus-gobject.c:
2750         * glib/dbus-gvalue.c: Fix indentation and brace style.
2751         
2752 2005-06-14  Ross Burton <ross@openedhand.com>.
2753
2754         * glib/dbus-glib.h: Make DBusGMethodInvocation
2755         a private structure.  Rearrange prototypes a bit.
2756         
2757         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2758         documentation for first_arg_type.
2759         
2760         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2761         here, add documentation.  Move dbus_g_method_return
2762         and dbus_g_method_return_error into public API
2763         section.
2764
2765 2005-06-14  Colin Walters  <walters@verbum.org>
2766
2767         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2768         Add missing return statements, noticed by Ross Burton.
2769         
2770 2005-06-13  Ross Burton <ross@openedhand.com>.
2771
2772         * glib/dbus-gobject.c: Handle errors on message
2773         demarshalling by sending error message back.
2774         * glib/dbus-gvalue.c: Initialize return variables.
2775
2776 2005-06-13  Colin Walters  <walters@verbum.org>
2777
2778         * glib/Makefile.am: Fix thinko in last patch.
2779
2780 2005-06-13  Colin Walters  <walters@verbum.org>
2781
2782         * glib/Makefile.am: Move dbus-gtype-specialized.c
2783         and dbus-gtype-specialized.h into a _HEADERS variable,
2784         install them.
2785
2786 2005-06-12  Colin Walters  <walters@verbum.org>
2787
2788         Async signals and various bugfixes and testing by
2789         Ross Burton <ross@openedhand.com>.
2790
2791         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2792         (dbus_gvalue_genmarshal_name_from_type)
2793         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2794         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2795         (dbus_g_value_types_init, dbus_gtype_from_signature)
2796         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2797         (dbus_gtypes_from_arg_signature): New function prototypes.
2798         (dbus_gvalue_demarshal): Take context and error arguments.
2799         (dbus_gvalue_demarshal_variant): New function.
2800         (dbus_gvalue_demarshal_message): New function.
2801         (dbus_gvalue_store): Delete.
2802
2803         * glib/dbus-gvalue.c:
2804
2805         File has been almost entirely rewritten; now we special-case
2806         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2807         hash tables correctly, etc.  Full support for recursive values
2808         is not yet complete.
2809
2810         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2811         argument of signal to G_TYPE_POINTER since we now pass a
2812         structure.
2813         (lookup_g_marshaller): Delete in favor of
2814         _dbus_gobject_lookup_marshaller.
2815         (marshal_dbus_message_to_g_marshaller): Use
2816         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2817         to handle remote signal callbacks.
2818         (dbus_g_proxy_new_from_proxy): New function; creates a new
2819         DBusGProxy by copying an existing one.
2820         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2821         (dbus_g_proxy_get_path): New functions.
2822         (dbus_g_proxy_marshal_args_to_message): New function;
2823         factored out of existing code.
2824         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2825         from a varargs array.
2826         (dbus_g_proxy_begin_call_internal): New function.
2827         (dbus_g_proxy_end_call_internal): New function.
2828         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2829         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2830         after collecting args into value array.
2831         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2832         invoke dbus_g_proxy_end_call_internal.
2833         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2834         end_call_internal.
2835         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2836         types.
2837         (array_free_all): New function.
2838         (dbus_g_proxy_add_signal): Take GTypes.
2839
2840         * glib/dbus-gobject.h:
2841         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2842         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2843         Prototype.
2844
2845         * glib/dbus-gobject.c: Add a global marshal_table hash which
2846         stores mappings from type signatures to marshallers.  Change lots
2847         of invocations of dbus_gtype_to_dbus_type to
2848         dbus_gtype_to_signature.
2849         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2850         (introspect_signals): Fix test for query.return_type.
2851         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2852         (invoke_object_method): Many changes.  Handle asynchronous
2853         invocations.  Convert arguments with
2854         dbus_gvalue_demarshal_message.  Handle errors.  Use
2855         DBusSignatureIter instead of strlen on args. Handle all arguments
2856         generically.  Special-case variants.
2857         (dbus_g_method_return, dbus_g_method_return_error): New function.
2858         (DBusGSignalClosure): New structure, closes over signal
2859         information.
2860         (dbus_g_signal_closure_new): New function.
2861         (dbus_g_signal_closure_finalize): New function.
2862         (signal_emitter_marshaller): New function; is special marshaller
2863         which emits signals on bus.
2864         (export_signals): New function; introspects object signals and
2865         connects to them.
2866         (dbus_g_object_type_install_info): Take GType instead of
2867         GObjectClass.
2868         (dbus_g_connection_register_g_object): Invoke export_signals.
2869         (dbus_g_connection_lookup_g_object): New function.
2870         (DBusGFuncSignature) New structure; used for mapping type
2871         signatures to marshallers.
2872         (funcsig_hash): New function; hashes DBusGFuncSignature.
2873         (funcsig_equal): New function; compares DBusGFuncSignature.
2874         (_dbus_gobject_lookup_marshaller): New function.
2875         (dbus_g_object_register_marshaller): New function; used to
2876         register a marshaller at runtime for a particular signature.
2877
2878         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2879
2880         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2881         which notes a server method implementation should be
2882         asynchronous.
2883
2884         * glib/dbus-binding-tool-glib.c
2885         (dbus_binding_tool_output_glib_server): Call
2886         dbus_g_value_types_init.
2887         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2888         variants specially.
2889         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2890         of a lookup function.
2891         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2892         (write_untyped_out_args): New method; write output arguments.
2893         (write_formal_declarations_for_direction): Function for
2894         writing prototypes.
2895         (write_formal_parameters_for_direction): Function for
2896         writing implementations.
2897         (write_typed_args_for_direction): Function for writing
2898         arguments prefixed with GTypes.
2899         (write_async_method_client): Write out async version
2900         of method.
2901
2902         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2903         (dbus_g_type_get_marshal_name): Move mapping from GType
2904         to marshal name into here.
2905         (dbus_g_type_get_c_name): Move into here.
2906         (compute_marshaller): Convert signature to type with
2907         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2908         (compute_marshaller_name): Ditto.
2909         (compute_marshaller): Handle async signal annotations.
2910         (gather_marshallers): Return if we don't have a known
2911         prefix.
2912         (generate_glue): Collect introspection blob here, and
2913         write all of the blob at the end.  This allows an object
2914         with multiple interfaces to work.
2915         Mark async methods in introspection blob.
2916
2917         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2918         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2919         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2920
2921         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2922         avoids people accidentally using DBUS_TYPE_* which should
2923         not be necessary anymore.
2924         Do include dbus-gtype-specialized.h, which are utilities
2925         for GLib container types.
2926         Add various #defines for types such as
2927         DBUS_TYPE_G_BOOLEAN_ARRAY.
2928         (DBusGValueIterator, DBusGValue): Define, not fully used
2929         yet.
2930         (dbus_g_value_get_g_type): Type for recursive value.
2931         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2932         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2933         (dbus_g_value_free): Prototypes.
2934         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2935         (dbus_g_proxy_set_interface): Prototype.
2936         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2937         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2938         types.
2939         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2940         Accessors.
2941         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2942         doing async invocations.
2943         (dbus_g_method_return, dbus_g_method_return_error):
2944         Prototypes.
2945         * doc/dbus-tutorial.xml: Update GLib section.
2946         
2947         * tools/dbus-viewer.c (load_child_nodes): Update
2948         for new invocation type of dbus_g_proxy_end_call.
2949         (load_from_service_thread_func): Ditto.
2950
2951         * tools/print-introspect.c (main): Ditto.
2952
2953         * tools/dbus-names-model.c (have_names_notify)
2954         (names_model_reload, names_model_set_connection)
2955         Use GTypes.
2956
2957         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2958         needed since Python bindings use GLib bindings.
2959
2960         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2961         Add --prefix argument.
2962
2963         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2964         unneeded --ignore-unsupported arg.
2965         
2966         * test/glib/test-service-glib.c: 
2967         * test/glib/test-service-glib.xml:
2968         * test/glib/test-dbus-glib.c: Add many more tests.
2969
2970 2005-06-06  David Zeuthen  <davidz@redhat.com>
2971
2972         * doc/TODO: Add item about need to remove deprecated functions.
2973
2974         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2975
2976         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2977         to repair the ABI which was broken with the last commit.
2978
2979 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2980
2981         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2982         (dbus_connection_disconnect): renamed to dbus_connection_close 
2983         for API symmetry with dbus_connection_open
2984         (_dbus_connection_open_internal): 
2985         s/dbus_connection_disconnect/dbus_connection_close
2986
2987         * dbus/dbus-bus.c (dbus_bus_get):
2988         s/dbus_connection_disconnect/dbus_connection_close
2989
2990         * bus/connection.c (bus_connections_unref, 
2991         bus_connections_setup_connection, bus_connections_expire_incomplete):
2992         s/dbus_connection_disconnect/dbus_connection_close
2993
2994         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2995         kill_client_connection_unchecked, check_hello_connection):
2996         s/dbus_connection_disconnect/dbus_connection_close
2997
2998         * bus/bus.c (new_connection_callback):
2999         s/dbus_connection_disconnect/dbus_connection_close
3000
3001         * tools/dbus-send.c (main):
3002         s/dbus_connection_disconnect/dbus_connection_close
3003
3004         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3005         s/dbus_connection_disconnect/dbus_connection_close
3006         
3007         * test/test-service.c (path_message_func, filter_func):
3008         s/dbus_connection_disconnect/dbus_connection_close
3009         
3010         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3011         
3012 2005-05-25  Colin Walters  <walters@verbum.org>
3013
3014         * dbus/dbus-protocol.h: Move various bus service #defines such
3015           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3016           dbus/dbus-shared.h.
3017         * dbus/dbus-shared.h: Various defines moved here.
3018         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3019
3020 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3021
3022         * python/__init__.py: Python bindings deserve a minor version
3023         update.  Upped to (0, 40, 2)
3024
3025 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3026
3027         * python/decorators.py: add explicitly_pass_message decorator
3028         for passing in the dbus message as keyword for edge case signal
3029         handling
3030
3031         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3032         to conform with what dbus expects for match rules
3033         (SignalMatchRule.execute): add the dbus message as a keyword
3034         if the signal handler has requested it
3035
3036         * python/examples/example/signal-recipient.py: added some more
3037         examples on how to hook up to signals
3038
3039 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3040
3041         * python/decorators.py: import dbus_bindings
3042
3043         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3044         SignalMatchNode): new classes that implement wildcard signal
3045         callback matching using a tree lookup. Heavily modified from a
3046         patch sent by Celso Pinto (fd.o bug #3241)
3047
3048         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3049         use new match classes to handle signals.
3050
3051 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3052         
3053         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3054
3055 2005-05-18  Havoc Pennington  <hp@redhat.com>
3056
3057         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3058         gettext. Not really worth requiring yet perhaps, but any
3059         production quality 1.0 would require it so we should go ahead and
3060         get things set up. We do have a couple token calls to
3061         bindtextdomain in the code already.
3062
3063 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3064
3065         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3066         when using recursive g_main_loops
3067
3068         * python/_dbus.py (class Bus): add the ProxyObjectClass
3069         alias for ProxyObject to make it easier for the Twisted 
3070         networking framework to integrate dbus.
3071
3072         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3073         alias for ProxyMethod to make it easier for the Twisted 
3074         networking framework to integrate dbus. 
3075
3076 2005-05-11  Ross Burton  <ross@openedhand.com>
3077
3078         * glib/dbus-glib-tool.c: Add --prefix argument.
3079         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3080         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3081         Add prefix argument.
3082         (generate_glue): Pass prefix argument down.
3083         (dbus_binding_tool_output_glib_server): Pass prefix to
3084         glib-genmarshal.
3085         
3086 2005-05-11  Colin Walters  <walters@verbum.org>
3087
3088         * tools/dbus-send.c (append_array): New function.
3089         (append_arg): Broken out from main.
3090         (main): Add cheesy hack to send arrays and variants.
3091         (usage): Update.
3092         * tools/dbus-print-message.c (print_iter): Broken out
3093         from main.
3094
3095 2005-05-11  Colin Walters  <walters@verbum.org>
3096
3097         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3098         New function, returns signature string for signature iter.
3099         * dbus/dbus-signature.h: Prototype it.
3100         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3101         New function, returns signature string for message iter.
3102         (dbus_message_iter_get_array_len): New function, returns
3103         length of array.
3104         (dbus_message_iter_get_fixed_array): Fix assertion; this
3105         function should be used when the iter is pointing to the
3106         contents of an array
3107         * dbus/dbus-message.h: Prototypes.
3108         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3109         New function; returns length of an array.
3110         * dbus/dbus-marshal-recursive.h: Prototype it.
3111         
3112 2005-05-11  Colin Walters  <walters@verbum.org>
3113
3114         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3115         compilation error.
3116         
3117 2005-05-08  Havoc Pennington  <hp@redhat.com>
3118
3119         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3120         daemon's pid, not the parent's pid, to the file descriptor.
3121         Reported by Taj Morton.
3122
3123 2005-05-05  Havoc Pennington  <hp@redhat.com>
3124
3125         * configure.in (LT_*): add notes on how the libtool versioning
3126         works to save thinking. Increment soname to indicate protocol
3127         breakage (though really the library interface hasn't changed I
3128         guess)
3129
3130         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3131         verify the GUID received from server matches what we were
3132         expecting, if we had an expectation
3133
3134         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3135         (_dbus_auth_get_guid_from_server): new function
3136         (send_begin): parse the OK args
3137
3138         * doc/dbus-specification.xml: add GUID to the auth protocol
3139
3140 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3141
3142         * Fix my name in previous changelog ;)
3143
3144         * python/proxies.py (ProxyObject.__getattr__): add further patch
3145         from Anthony Baxter to throw an AttributeError when python 
3146         __special__ functions are called instead of marshling them over 
3147         the bus (Bug#1685 comment 3).
3148
3149 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3150
3151         * python/Makefile.am: changed to use pyexecdir for the binding
3152         shared libraries (Bug#2494)
3153
3154         * python/exceptions.py: bring exceptions over from the bindings
3155         so they can be used in applications (Bug#2036)
3156         Make all exceptions derive from DBusException
3157
3158         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3159         of classes so that print obj doesn't throw an exception (Bug #1685)
3160
3161 2005-05-03  Ross Burton  <ross@openedhand.com>
3162
3163         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3164         Return if we get an error during registration.  Set up a
3165         weak reference on object to unregister if object is destroyed.
3166         (unregister_gobject): New function.
3167         
3168 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * python/dbus_bindings.pyx.in: 
3171         - added new type classes for hinting to the marashaler what type 
3172         to send over the wire
3173         - added int16 and uint16 marshalers
3174         - Fixed a bug in the type constants that caused int32 to go out
3175         as uint16 over the wire
3176         * python/dbus.py: split up into different files and renamed _dbus.py
3177         * python/__init__.py, python/_util.py, python/decorators.py, 
3178         python/exceptions.py, python/proxies.py, python/services.py,
3179         python/types.py: new files split off from dbus.py
3180         * python/Makefile.am: Add new files, remove dbus.py and 
3181         install all python files to <python module dir>/dbus
3182         * python/examples/*: Added #!/usr/bin/env python to the top of
3183         every example.  Patch provided by Tatavarty Kalyan
3184
3185 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3186
3187         * NEWS: Update to 0.33
3188
3189 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3190
3191         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3192         method for doing async calls
3193         (_pending_call_notification): New C function for handling pendning call
3194         callbacks
3195         (set_notify): New method for setting pending call notification
3196         
3197         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3198         Async capabilities added to remote method calls
3199         (Sender): class removed
3200         (RemoteService): class removed
3201         (ObjectTree): class removed for now
3202         (RemoteObject): Renamed to ProxyObject
3203         (RemoteMethod): Renamed to ProxyMethod
3204         (method): Decorator added for decorating python methods as dbus methods
3205         (signal): Decorator added for decorating python methods as signal emitters
3206         (ObjectType): Metaclass added for generating introspection data and the
3207         method callback vtable
3208         (Interface): Wrapper class added to wrap objects in a dbus interface
3209         (Object): Uses ObjectType as its metaclass and exports Introspect
3210         of the org.freedesktop.DBus.Introspectable interface
3211         (ValidationException, UnknownMethodException): new exceptions
3212
3213         * python/examples/*: Modified to fit with the new bindings
3214
3215 2005-04-23  Havoc Pennington  <hp@redhat.com>
3216
3217         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3218         reported by Tony Houghton
3219
3220         * test/test-service.c (main): test
3221         dbus_connection_get_object_path_data()
3222
3223         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3224         the exact_match
3225         (_dbus_object_tree_get_user_data_unlocked): new function used by
3226         dbus_connection_get_object_path_data()
3227         (do_register): add assertion test for get_user_data_unlocked
3228         (object_tree_test_iteration): more tests
3229
3230         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3231         new function from Dan Reed to let you get the user data from 
3232         dbus_connection_register_object_path()
3233
3234 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3235
3236         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3237         in numerous places that did not account for the NULL terminator
3238         (signature_from_seed): changed the manual string copy loop to 
3239         just use strcpy instead
3240         make check should now pass
3241
3242 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3243
3244         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3245         so that it allows messages that are not signals to pass in 
3246         NULL as the interface.
3247
3248 2005-04-18  David Zeuthen  <davidz@redhat.com>
3249
3250         * glib/dbus-gmain.c (io_handler_destroy_source): 
3251         (timeout_handler_destroy_source, connection_setup_free): 
3252         Also unref the source to avoid memory leaks.
3253
3254 2005-04-13  David Zeuthen  <davidz@redhat.com>
3255
3256         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3257         more reasonable, yet still totally arbitrary, value :-). 
3258
3259 2005-04-13  David Zeuthen  <davidz@redhat.com>
3260
3261         * doc/TODO: Added an "important for 1.0" item about selinux
3262         allow/deny messages
3263
3264 2005-04-13  David Zeuthen  <davidz@redhat.com>
3265
3266         * bus/selinux.c: Add c-file-style to top of file
3267         (log_audit_callback): Don't free the data here anymore
3268         (bus_selinux_check): Don't take spid and tpid since appending
3269         that to auxdata may OOM.
3270         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3271         to the caller if we are OOM by taking an error object.
3272         (bus_selinux_allows_send): -do-
3273
3274         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3275         and bus_selinux_allows_send
3276
3277         * bus/bus.c (bus_context_check_security_policy): Pass error and
3278         pass on OOM thrown by bus_selinux_allows_send()
3279
3280         * bus/services.c (bus_registry_acquire_service): Pass error and
3281         pass on OOM thrown by bus_selinux_allows_acquire_service()
3282
3283 2005-04-13  Havoc Pennington  <hp@redhat.com>
3284
3285         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3286         message at a time to avoid monopolizing the main loop, bug 
3287         #2953 from Benjamin Otte
3288
3289 2005-04-09  Havoc Pennington  <hp@redhat.com>
3290
3291         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3292         possible overlap, fix from Daniel Reed
3293         (fixup_alignment): fix signedness warnings
3294         (_dbus_string_append_unichar): ditto
3295
3296 2005-04-09  Havoc Pennington  <hp@redhat.com>
3297
3298         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3299
3300         * glib/dbus-glib-tool.c (main): fix warning
3301
3302         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3303
3304         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3305         add a new function that can be used in simple applications that
3306         don't have a main loop and are willing to block
3307
3308 2005-04-05  David Zeuthen  <davidz@redhat.com>
3309
3310         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3311
3312         * glib/dbus-gmain.c:
3313         (io_handler_destroy_source): Remove from list of IO handlers
3314         of the ConnectionSetup object
3315         (timeout_handler_destroy_source): -do- for timeout handlers
3316         (io_handler_source_finalized): Don't remove from list since
3317         we now do that in io_handler_destroy_source(). Renamed from
3318         io_handler_source_destroyed
3319         (timeout_handler_source_destroyed): -do- for timeout handlers
3320         (connection_setup_free): It is now safe to iterate over all
3321         IO and timeout handlers as the _destroy_source removes them
3322         from the list synchronously
3323
3324 2005-03-30  Havoc Pennington  <hp@redhat.com>
3325
3326         * configure.in: change check to gtk 2.4
3327
3328         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3329         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3330         to 2.4
3331
3332 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3333
3334         * News: Update 0.32
3335
3336         * HACKING: Fixed realease instructions.  configure.in should be updated to
3337           the next release by the person who made the last release.
3338
3339 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3340
3341         * python/lvalue_cast_post_process.py - removed.  Patch has been
3342           submitted to Pyrex maintainers that fixes gcc4.0 errors
3343
3344         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3345
3346 2005-03-24  Daniel Reed  <n@ml.org>
3347
3348         * tools/Makefile.am: Make print-introspect and
3349         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3350
3351 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3352
3353         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3354
3355         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3356           had in Red Hat packages for a while but for some reason never 
3357           got merged upstream
3358           (_dbus_is_a_number): New checks if a string
3359           can be converted to a number and does the conversion if it can
3360           (_dbus_user_database_lookup): Add check to see if the given username
3361           is a udi.  This allows udi's to be used instead of usernames in the
3362           config file.
3363           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3364           is a gdi.  This allows gdi's to be used instead of groupnames in the
3365           config file.
3366
3367 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3368
3369         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3370           code so that it compiles with gcc4.0
3371
3372         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3373           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3374           results back to dbus_binding.c
3375
3376 2005-03-20  Colin Walters  <walters@verbum.org>
3377
3378         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3379
3380         * configure.in: Require GTK+ 2.6.
3381         
3382 2005-03-20  Colin Walters  <walters@verbum.org>
3383
3384         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3385
3386 2005-03-17  Tom Parker  <palfrey@tevp.net>
3387
3388         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3389         print DBUS_UID_UNSET; instead print passed username.  Also
3390         be sure to actually use gid looked up in cache.
3391         
3392         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3393         for DBUS_GID_UNSET and groupname.
3394
3395 2005-03-17  Colin Walters  <walters@verbum.org>
3396
3397         * bus/print-introspect.c: Move to tools/.
3398         * bus/run-with-tmp-session-bus.sh: Ditto.
3399         
3400         * glib/Makefile.am (dbus-glib-bindings.h): Move
3401         generation to tools/Makefile.am.
3402
3403         * test/glib/run-test.sh: Update to handle move
3404         of run-with-tmp-session-bus.sh.
3405
3406         * test/glib/test-service-glib.c: Update to handle
3407         move of dbus-glib-bindings.h.
3408
3409         * tools/print-introspect.c: Moved here
3410         from bus/, and ported to GLib bindings.
3411
3412         * tools/run-with-tmp-session-bus.sh: Moved here
3413         from bus/.
3414
3415         * tools/Makefile.am: Generate dbus-glib-bindings.h
3416         and dbus-bus-introspect.xml here.
3417
3418         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3419         Update.
3420
3421 2005-03-17  Colin Walters  <walters@verbum.org>
3422
3423         * bus/driver.c (write_args_for_direction): Use
3424         _dbus_string_get_const_data to retrieve string;
3425         _dbus_string_get_const_data_len doesn't actually return
3426         a NULL-terminated substring.
3427
3428         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3429         (main): Change to use org_freedesktop_DBus_request_name
3430         instead of using g_proxy_begin_call/end_call.
3431
3432 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3433
3434         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3435         generating the finalizer.  Fixes from Ben Maurer.
3436
3437 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3438
3439         * mono/BusDriver.cs: Update method names: ListServices
3440         becomes ListNames; GetOwner becomes GetNameOwner.
3441
3442         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3443         onto the eval stack when removing the delegate.
3444
3445 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3446
3447         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3448         LT_CURRENT.  Set it to the autoconf variable.
3449                                                                                 
3450         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3451         classes that disconnects the signal handler delegate from the
3452         service object.  Fixes a big leak of proxy objects on the
3453         client side of things.  Patch from Ben Maurer
3454         <bmaurer@ximian.com>
3455
3456 2005-03-12  Colin Walters  <walters@verbum.org>
3457
3458         * bus/driver.c (write_args_for_direction): New function,
3459         parses a type signature into arguments and outputs to
3460         XML.
3461         (bus_driver_handle_introspect): Use it instead of
3462         hardcoding XML for certain signatures.
3463         
3464         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3465         dependency on dbus-daemon.
3466
3467         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3468         argument, pass it to dbus_binding_tool_output_glib_client.
3469
3470         * glib/dbus-binding-tool-glib.c
3471         (generate_client_glue): Protect against multiple inclusion.
3472         (dbus_binding_tool_output_glib_client): Add
3473         G_BEGIN_DECLS/G_END_DECLS.
3474
3475         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3476         Change to just take iface prefix directly.
3477         (write_formal_parameters): Clarify error message.
3478         (check_supported_parameters): New function; checks to see type
3479         signatures of method parameters are supported.
3480         (generate_client_glue): Handle ignore_unsupported flag.
3481         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3482         parameter.
3483
3484         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3485         --ignore-unsupported by default until glib bindings
3486         support arrays.
3487
3488 2005-03-11  Colin Walters  <walters@verbum.org>
3489
3490         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3491         install it.
3492
3493         * bus/print-introspect.c: New file; prints introspection
3494         data for a given name and object path.
3495
3496         * bus/run-with-tmp-session-bus.sh: New file, refactored
3497         from test/glib/run-test.sh.  Creates a temporary session
3498         bus and runs another program.
3499
3500         * test/glib/run-test.sh: Refactor to invoke
3501         run-with-tmp-session-bus.sh.
3502
3503         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3504         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3505         macros instead of hardcoding.
3506
3507         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3508
3509 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3510
3511         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3512         this unref; it doesn't match up evenly in some codepaths.
3513         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3514         this evenly matches with the ref near the top of this function.
3515
3516 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3517
3518         * dbus/dbus-object-tree.c
3519         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3520         and we try to unregister a path that's not registered, still go
3521         through the process of unlocking and don't just return.
3522
3523 2005-03-09  Colin Walters  <walters@verbum.org>
3524
3525         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3526         to this are generated for client-side wrappers.  Invokes a
3527         D-BUS method and returns reply values.  
3528
3529         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3530         function; writes signature string for argument direction.
3531         (write_args_for_direction): Change to pass input values directly
3532         instead of via address, and fix indentation.
3533         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3534         make generated wrappers inlineable.
3535
3536         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3537         note about using dbus_type_is_fixed.
3538
3539         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3540         dbus/dbus-signature.c as dbus_type_is_fixed.
3541
3542         All callers updated.
3543
3544         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3545         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3546
3547         * dbus/dbus-signature.h: Prototype.
3548
3549         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3550         error printf code.
3551
3552         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3553         appropriate instead of just freeing it.
3554         (main): Free returned strings using g_free.
3555
3556         * test/glib/Makefile.am (test-service-glib-glue.h)
3557         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3558
3559         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3560         simply maps a simple D-BUS type to GType.
3561         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3562         GType.
3563         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3564         initialize the value with it.
3565         (dbus_gvalue_binding_type_from_type): Unused, delete.
3566         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3567         various types instead of unmarshalling to value data directly.
3568         Remove can_convert boolean.
3569         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3570         returning directly instead of using can_convert boolean.
3571         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3572         Stores a GValue in a pointer to a value of its corresponding C
3573         type.
3574
3575         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3576         add dbus_gvalue_store.
3577
3578 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3579
3580         Fix a bunch of lifecycle and memory management problems
3581         in the mono bindings.
3582
3583         * mono/Arguments.cs (Arguments): Implement IDisposable
3584
3585         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3586         strictly a static class.
3587
3588         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3589         delegates into this file.
3590         (Connection): Implement IDisposable.
3591         (Dispose): Disconnect the connection and set the raw connection
3592         pointer to IntPtr.Zero.
3593         (~Connection): Call Dispose().
3594         (RegisterObjectPath): Added.  Manages the registration of object
3595         paths so we can cleanly disconnect them at dispose/finalize time.
3596         (UnregisterObjectPath): Ditto.
3597         (set_RawConnection): Unregister all of the object paths when
3598         changing the underlying DBusConnection.  Add them back onto the
3599         new connection, if any.
3600
3601         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3602         more unmanaged resources anymore, so it's not necessary.  Move all
3603         the DBusObjectPathVTable stuff out of here.
3604         (Handler): Save references to our delegates so that they don't get
3605         finalized.  Call Connection.RegisterObjectPath() instead of
3606         dbus_connection_register_object_path() directly.
3607         (Message_Called): Dispose the message after we're finished with
3608         it.
3609
3610         * mono/Message.cs (Message): Implement IDisposable.
3611         (Dispose): Dispose the Arguments, and set the RawMessage to
3612         IntPtr.Zero.
3613         (SendWithReplyAndBlock): We own the ref to the reply that comes
3614         back from dbus_connection_send_with_reply_and_block() so add a
3615         comment about that and unref it after we've constructed a managed
3616         MethodReturn class around it.  Fixes a big, big leak.
3617
3618         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3619         method.
3620         (BuildSignalHandler): After we've sent the Signal message, dispose
3621         of it.
3622         (BuildMethod): Dispose of the method call and reply messages after
3623         we've sent the message and extracted the data we want from the
3624         reply.
3625
3626         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3627         anymore.
3628         (Service_FilterCalled): Dispose of the message after we're
3629         finished with it.
3630
3631 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3632
3633         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3634         After we attach our pending call to the connection, unref
3635         it.  Fixes a leak.
3636  
3637         * mono/Connection.cs (set_RawConnection): Disconnect our
3638         filter and match callbacks from the old connection and
3639         reconnect them to the new connection, if any.
3640
3641         * mono/DBusType/Array.cs: "Code" is a static member, so
3642         don't use "this" to refer to it.  Fix for stricter checking
3643         in Mono 1.1.4.
3644  
3645         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3646         object path that we pass into unmanaged code.
3647  
3648         * mono/DBusType/String.cs (Append): Don't leak the string
3649         that we pass into unmanged code.
3650
3651 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3652         * NEWS: Update for 0.31
3653
3654         * configure.in: Release 0.31
3655         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3656
3657         * qt/Makefile.am: fixed build
3658
3659         * dbus/Makefile.am: soname bump for libdbus
3660
3661         * glib/Makefile.am: soname bump for libdbus-glib
3662
3663 2005-03-05  Havoc Pennington  <hp@redhat.com>
3664
3665         * dbus/dbus-sysdeps.c:
3666         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3667         value
3668         (_dbus_generate_random_bytes_buffer): fix return value
3669
3670         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3671         checks actually work, from Tom Parker <fdo@tevp.net>
3672
3673 2005-03-01  Colin Walters  <walters@verbum.org>
3674
3675         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3676         functions copied from dbus-glib-tool.c.
3677         (main): Convert lots of error code to use them.
3678         Also add some testing for introspection bits.
3679
3680 2005-03-01  Colin Walters  <walters@verbum.org>
3681         
3682         * doc/TODO: Remove introspection signature TODO.
3683
3684 2005-02-27  Colin Walters  <walters@verbum.org>
3685
3686         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3687         Change return value to const char * instead of int so we can do
3688         full signatures.
3689         (struct PropertyInfo, struct ArgInfo): Store char *.
3690         (property_info_new, arg_info_new): Update parameters, strdup.
3691         (property_info_unref, arg_info_unref): Free.
3692
3693         * glib/dbus-gidl.h: Update prototypes.
3694
3695         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3696         (validate_signature): New function, just validates signature and
3697         sets GError.
3698         (parse_property, parse_arg): Invoke validate_signature.  Store
3699         signature instead of just type code.
3700
3701         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3702         function to return a primary type for a signature, dropping
3703         information about types in container types.
3704         (dbus_gvalue_genmarshal_name_from_type)
3705         (dbus_gvalue_binding_type_from_type)
3706         (dbus_gvalue_ctype_from_type): Update to take full signature
3707          instead of type code.
3708         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3709
3710         * glib/dbus-gvalue.h: Update prototypes for above.
3711
3712         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3713         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3714         (introspect_properties, introspect_signals, write_interface):
3715         Update to handle signatures, and remove usage of
3716         _dbus_gutils_type_to_string.
3717         (handle_introspect): Print out type codes instead of e.g. "string"
3718         in hardcoded introspection XML; also use x_AS_STRING constants
3719         instead of hardcoding in string.
3720
3721         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3722         to string.  Remove usage of _dbus_gutils_type_to_string.
3723
3724         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3725
3726         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3727         deletion.
3728         
3729         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3730         (compute_marshaller_name, generate_glue): Handle signature change
3731         to string.
3732         (write_formal_parameters, write_args_for_direction): Ditto, and
3733         remove FIXME.
3734
3735         * tools/dbus-tree-view.c (type_to_string): Delete.
3736         (info_set_func_text): Update to print full signatures.
3737
3738         * test/glib/test-service-glib.xml: Change types to new
3739         introspection format.
3740
3741 2005-02-26  Havoc Pennington  <hp@redhat.com>
3742
3743         * doc/TODO: remove the "guid" item
3744
3745         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3746         (with_bus_thread_func): use open_private
3747
3748         * dbus/dbus-connection.c (dbus_connection_open_private): new
3749         function that works like the old dbus_connection_open()
3750         (dbus_connection_open): now returns an existing connection if
3751         possible
3752
3753         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3754         through the GUID to the transport
3755
3756         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3757         GUID in hex-encoded form.
3758
3759         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3760         pass GUID argument in to the transport
3761
3762         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3763         guid argument
3764
3765         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3766
3767         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3768
3769 2005-02-25  Havoc Pennington  <hp@redhat.com>
3770
3771         * doc/dbus-specification.xml: document the GUID thing
3772
3773         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3774         globally unique ID for the server, and put a "guid=hexencoded"
3775         field in the address
3776
3777         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3778
3779         * dbus/dbus-message.c: ditto
3780
3781         * dbus/dbus-dataslot.c: ditto
3782
3783         * dbus/dbus-list.c: ditto
3784
3785         * dbus/dbus-internals.h: wait, just include
3786         dbus-threads-internal.h here
3787         
3788         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3789         use in main library
3790
3791         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3792
3793 2005-02-24  Colin Walters  <walters@verbum.org>
3794
3795         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3796
3797 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3798
3799         * glib/Makefile.am: added dbus-gobject.h to sources list
3800         so distcheck doesn't fail
3801         
3802 2005-02-24  Havoc Pennington  <hp@redhat.com>
3803
3804         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3805         you must disconnect before unref, since locking and other things
3806         are screwed up otherwise. Fix assorted other locking stuff.
3807
3808         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3809         fix compilation
3810
3811         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3812         into a private header and don't export from the library
3813
3814         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3815
3816 2005-02-24  Colin Walters  <walters@verbum.org>
3817         
3818         * dbus/dbus-signature.c: New file; implements various functions
3819         related to type signatures.  Includes an interator for parsing,
3820         validation functions.
3821         (dbus_type_is_basic): Moved here from
3822         dbus-marshal-basic.c:_dbus_type_is_basic.
3823         (dbus_type_is_container): Moved here from
3824         dbus-marshal-basic.c:_dbus_type_is_container.
3825
3826         All callers of _dbus_type_is_container and _dbus_type_is_basic
3827         updated, and include dbus-signature.h.
3828
3829         * dbus/dbus-signature.h: New file; prototypes for the above.
3830
3831         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3832         dbus-signature.h.
3833
3834         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3835         function factored out of _dbus_first_type_in_signature.
3836         (_dbus_first_type_in_signature_c_str): New function; returns first
3837         type code for a type signature character.
3838
3839         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3840         handle function moves.
3841
3842         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3843
3844         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3845         function; skips to next complete type in type signature.
3846         Implemented using previous skip_one_complete_type.  Now
3847         skip_one_complete_type just delegates to
3848         _dbus_type_signature_next.
3849
3850         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3851         to dbus-signature.c
3852         (_dbus_type_is_container): Ditto.
3853
3854         * doc/dbus-specification.xml: Update introspection sample to
3855         use real type signatures.
3856
3857         * dbus/dbus-test.h: Prototype signature test.
3858
3859         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3860         signature tests.
3861
3862         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3863
3864 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3865
3866         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3867         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3868
3869 2005-02-21  Colin Walters  <walters@verbum.org>
3870
3871         * dbus/dbus-test-main.c (main): Take optional specific test
3872         argument.
3873
3874         * dbus/dbus-test.c (run_test): New function, runs a test function
3875         with no data directory.
3876         (run_data_test): Like above, but takes data directory.
3877         (dbus_internal_do_not_use_run_tests): Take
3878         specific test argument.  Replace lots of cut n' paste code
3879         with run_test and run_data_test.
3880
3881         * dbus/dbus-test.h: Update prototype for
3882         dbus_internal_do_not_use_run_tests.
3883
3884 2005-02-20  Havoc Pennington  <hp@redhat.com>
3885
3886         Fix bugs reported by Daniel P. Berrange
3887         
3888         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3889         (protected_change_watch): new function
3890         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3891         (_dbus_server_add_watch): change to work like the
3892         dbus-connection.c equivalents; like those, probably kind of
3893         busted, but should at least mostly work for now
3894         (dbus_server_disconnect): drop the lock if we were already
3895         disconnected, patch from Daniel P. Berrange
3896
3897         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3898         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3899         same stuff
3900
3901         * doc/TODO: todo about unscrewing this mess
3902
3903 2005-02-19  Colin Walters  <walters@verbum.org>
3904
3905         * glib/dbus-binding-tool-glib.c
3906         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3907
3908         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3909         as errno.h and sys/stat.h.
3910         (lose): New function, prints error with
3911         newline and exits.
3912         (lose_gerror): Similar, but takes GError for message.
3913         (main): Add --output argument to specify output file to write to,
3914         instead of always printing to stdout.  In this mode, determine
3915         timestamps on source files to see whether any are newer than the
3916         target file.  If not, exit.  Also convert a number of error
3917         messages to use lose (since it's shorter), and switch to using
3918         g_io_channel_shutdown.
3919
3920 2005-02-19  Havoc Pennington  <hp@redhat.com>
3921
3922         * glib/dbus-gobject.c
3923         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3924
3925         * glib/dbus-glib.c: fix doxygen warnings
3926
3927         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3928         is found on an <arg>
3929
3930 2005-02-17  Colin Walters  <walters@verbum.org>
3931
3932         * glib/dbus-gobject.h: Don't export
3933         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3934         
3935         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3936         (invoke_object_method): Handle it.
3937
3938         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3939         Handle rename.
3940         
3941 2005-02-17  Colin Walters  <walters@verbum.org>
3942
3943         * bus/.cvsignore, doc/.cvsignore
3944         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3945         Update.
3946
3947 2005-02-17  Colin Walters  <walters@verbum.org>
3948         
3949         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3950         Rename to DBUS_SERVICE_DBUS.
3951         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3952         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3953         Change the value from "org.freedesktop.Local"
3954         to "org.freedesktop.DBus.Local".
3955         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3956         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3957         DBUS_INTERFACE_INTROSPECTABLE.
3958         Change the value from "org.freedesktop.Introspectable"
3959         to "org.freedesktop.DBus.Introspectable".
3960         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3961         DBUS_INTERFACE_PROPERTIES.
3962         Change the value from "org.freedesktop.Properties"
3963         to "org.freedesktop.DBus.Properties".
3964         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3965         DBUS_INTERFACE_PEER.
3966         Change the value from "org.freedesktop.Peer"
3967         to "org.freedesktop.DBus.Peer".
3968         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3969         DBUS_INTERFACE_LOCAL.
3970         Change the value from "org.freedesktop.Local"
3971         to "org.freedesktop.DBus.Local".
3972
3973         All other users of those constants have been changed.
3974
3975         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3976
3977         * glib/dbus-gobject.c (handle_introspect): Use constants.
3978
3979         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3980
3981 2005-02-17  Colin Walters  <walters@verbum.org>
3982
3983         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3984         (parse_node, parse_interface, parse_method, parse_signal)
3985         (parse_property, parse_annotation): Lose if we're currently in an
3986         annotation.
3987         (parse_annotation): New function.
3988         (parser_start_element, parser_end_element): Handle annotation.
3989         (parse_method, parse_interface): Remove support for c_name attribute,
3990         switch to annotations.
3991
3992         * glib/dbus-gidl.h (interface_info_get_binding_names)
3993         (method_info_get_binding_names)
3994         (interface_info_get_binding_name, method_info_get_binding_name)
3995         (interface_info_set_binding_name, method_info_set_binding_name):
3996         Remove.
3997         (interface_info_get_annotations, method_info_get_annotations)
3998         (interface_info_get_annotation, method_info_get_annotation)
3999         (interface_info_add_annotation, method_info_add_annotation):
4000         Prototype.
4001
4002         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4003         for "bindings".
4004         (struct MethodInfo): Ditto.
4005         Straightfoward conversion of binding methods into annotation methods
4006         as prototyped.
4007
4008         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4009
4010         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4011
4012         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4013         Use new annotation API.
4014
4015         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4016         annotation element.
4017         
4018         * doc/dbus-specification.xml: Discuss introspection annotations,
4019         include list of well-known annotations.
4020
4021         * test/glib/test-service-glib.xml: Make validate against new DTD.
4022
4023 2005-02-17  Colin Walters  <walters@verbum.org>
4024
4025         This patch is based on initial work from
4026         Paul Kuliniewicz <kuliniew@purdue.edu>.
4027
4028         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4029         initialization of GValue from dbus type to here.
4030         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4031         for the "glib-genmarshal" program from a DBus type.
4032         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4033         into the C name for it we use in the glib bindings.
4034         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4035         glib C type (not GValue).
4036         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4037
4038         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4039         from dbus-gobject.c.
4040
4041         * glib/dbus-gutils.h: Prototype it.
4042
4043         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4044         (marshal_dbus_message_to_g_marshaller): Use new shared function
4045         dbus_glib_marshal_dbus_message_to_gvalue_array.
4046
4047         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4048         Will be changed once we have annotations.
4049
4050         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4051         GStaticRWLock.  Callers updated.
4052         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4053         (string_table_next): New function for iterating over zero-terminated
4054         string value array.
4055         (string_table_lookup): New function; retrieves specific entry in
4056         array.
4057         (get_method_data): New function; look up method data in object data chunk.
4058         (object_error_domain_prefix_from_object_info)
4059         (object_error_code_from_object_info): New functions, but not implemented yet.
4060         (method_interface_from_object_info): New function; retrieve interface name.
4061         (method_name_from_object_info): New function; retrieve method name.
4062         (method_arg_info_from_object_info): New function; retrieve argument data.
4063         (arg_iterate): New function; iterates over serialized argument data.
4064         (method_dir_signature_from_object_info): New function; returns a
4065         GString holding type signature for arguments for just one
4066         direction (input or output).
4067         (method_input_signature_from_object_info)
4068         (method_output_signature_from_object_info): New functions.
4069         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4070         converts dbus message arguments into a GValue array.  Used for both
4071         signal handling and method invocation.
4072         (struct DBusGlibWriteIterfaceData): New utility structure.
4073         (write_interface): New function; generate introspection XML for
4074         an interface.
4075         (introspect_interfaces): New function; gathers all interface->methods,
4076         generates introspection XML for them.
4077         (handle_introspect): Invoke introspect_interfaces.
4078         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4079         (lookup_object_and_method): New function; examines an incoming message
4080         and attempts to match it up (via interface, method name, and argument
4081         signature) with a known object and method.
4082         (gerror_domaincode_to_dbus_error_name): New function; converts a
4083         GError domain and code into a DBus error name.  Needs GError data
4084         added to object introspection to work well.
4085         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4086         GError.
4087         (invoke_object_method): New function to invoke an object method
4088         looked up via lookup_object_and_method.  Parses the incoming
4089         message, turns it into a GValue array, then invokes the marshaller
4090         specified in the DBusGMethodInfo.  Creates a new message with
4091         either return values or error message as appropriate.
4092         (gobject_message_function): Invoke lookup_object_and_method and
4093         invoke_object_method.
4094
4095         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4096         (enum DBusBindingOutputMode): New enum for binding output modes.
4097         (pretty_print): Print binding names.
4098         (dbus_binding_tool_error_quark): GError bits.
4099         (version): Fix typo.
4100         (main): Create GIOChannel for output.  Parse new --mode argument,
4101         possible values are "pretty-print", "glib-server", "glib-client".
4102         Use mode to invoke appropriate function.
4103         
4104         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4105
4106         * glib/dbus-glib-tool.h: New header, just includes GError bits
4107         for now.
4108
4109         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4110         maps binding style to name.
4111         (struct MethodInfo): Ditto.
4112         (get_hash_keys, get_hash_key): Utility function, returns keys for
4113         a GHashTable.
4114         (interface_info_new, method_info_new): Initialize bindings.
4115         (interface_info_unref, method_info_unref): Destroy bindings.
4116         (method_info_get_binding_names, method_info_get_binding_name)
4117         (interface_info_get_binding_names, interface_info_get_binding_name):
4118         Functions for retrieving binding names.
4119         (method_info_set_binding_name, interface_info_set_binding_name):
4120         Functions for setting binding names.
4121
4122         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4123         for glib binding generation.
4124
4125         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4126         and client-side glib glue generation.
4127
4128         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4129         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4130         dbus-glib-tool.h.
4131
4132         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4133         of using GClosureMarshal directly.
4134         (struct DBusGObjectInfo): Add n_infos member.
4135
4136         * test/glib/test-service-glib.xml: New file; contains introspection data
4137         for MyTestObject used in test-service-glib.c.
4138
4139         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4140         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4141         (my_object_uppercase, my_object_many_args): New test methods.
4142         (main): Use dbus_g_object_class_install_info to include generated object
4143         info.
4144
4145         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4146         as well as client-side bindings.
4147
4148         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4149         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4150         using both the dbus_gproxy stuff directly as well as the generated bindings.
4151
4152 2005-02-15  Havoc Pennington  <hp@redhat.com>
4153
4154         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4155         complete a pending call, don't run filters first.
4156
4157         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4158         dbus_pending_call_steal_reply
4159
4160         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4161         _dbus_connection_block_pending_call
4162         (dbus_pending_call_get_reply): change to steal_reply and return a
4163         ref
4164
4165         * dbus/dbus-connection.c
4166         (dbus_connection_send_with_reply_and_block): port to work in terms
4167         of DBusPendingCall
4168         (_dbus_connection_block_pending_call): replace block_for_reply
4169         with this
4170
4171 2005-02-14  Havoc Pennington  <hp@redhat.com>
4172
4173         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4174         properly handle looking up group information by name; fix 
4175         from j@bootlab.org
4176
4177 2005-02-13  Havoc Pennington  <hp@redhat.com>
4178
4179         * dbus/dbus-connection.c (dbus_connection_return_message) 
4180         (dbus_connection_borrow_message): hold dispatch lock while message
4181         is outstanding
4182         (_dbus_connection_block_for_reply): hold dispatch lock while we
4183         block for the reply, so nobody steals our reply
4184         (dbus_connection_pop_message): hold the dispatch lock while we
4185         pluck the message
4186
4187 2005-02-13  Havoc Pennington  <hp@redhat.com>
4188
4189         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4190         (_dbus_connection_release_dispatch)
4191         (_dbus_connection_acquire_io_path)
4192         (_dbus_connection_release_io_path): make the mutex and condvar
4193         control access to the "acquired" flag. Drop the connection lock
4194         while waiting on the condvar. Hopefully these are baby steps in
4195         roughly the right direction.
4196
4197 2005-02-13  Havoc Pennington  <hp@redhat.com>
4198
4199         * dbus/dbus-connection.c: use separate mutexes for the condition
4200         variables; this is some kind of baseline for sanity, but the
4201         condition variables still aren't used correctly afaict
4202
4203 2005-02-13  Havoc Pennington  <hp@redhat.com>
4204
4205         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4206         fix a double-unlock
4207
4208         * dbus/dbus-connection.c
4209         (_dbus_connection_detach_pending_call_unlocked): add this
4210
4211         Initial semi-correct pass through to fix thread locking; there are
4212         still some issues with the condition variable paths I'm pretty
4213         sure
4214         
4215         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4216         lock/unlock calls
4217
4218         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4219         rename to add _unlocked
4220         (struct DBusConnection): move "dispatch_acquired" and
4221         "io_path_acquired" to use only one bit each.
4222         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4223         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4224         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4225         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4226         (_dbus_connection_remove_timeout) 
4227         (_dbus_connection_toggle_timeout): drop lock when calling out to
4228         user functions; done in a hacky/bad way.
4229         (_dbus_connection_send_and_unlock): add a missing unlock
4230         (_dbus_connection_block_for_reply): add a missing unlock
4231
4232         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4233         drop lock in a hacky probably unsafe way to call out to user
4234         function
4235
4236 2005-02-12  Havoc Pennington  <hp@redhat.com>
4237
4238         * tools/dbus-tree-view.c (info_set_func_text): display more
4239         details on args
4240
4241         * bus/driver.c (bus_driver_handle_list_services): list the bus
4242         driver
4243
4244         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4245
4246         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4247         (method_info_get_n_args): new function
4248
4249 2005-02-12  Havoc Pennington  <hp@redhat.com>
4250
4251         * bus/driver.c (bus_driver_handle_introspect): add introspection
4252         for bus driver
4253
4254 2005-02-12  Havoc Pennington  <hp@redhat.com>
4255
4256         * bus/driver.c: put the signature of each bus driver method in the
4257         table of handlers and check it on incoming calls; this isn't
4258         really useful, but going to add introspect support in a minute.
4259
4260 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4261
4262         * mono/Connection.cs: The unpredictability of finalizers in mono
4263         prevents us from deterministically disconnecting the filters from
4264         the Service class's finalizer, so move tracking of filters and
4265         matches here.  Add API for that.
4266
4267         * mono/Service.cs: Remove the code, add code which calls the
4268         methods now on the Connection class.
4269
4270 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4271
4272         * python/dbus.py (class Sender): added to support dbus signals better
4273         (Bus::add_signal_receiver): added expand_args parameter which defaults
4274         to True.  When expand args is True the signal handler will pass the 
4275         message arguments as parameters to the signal handler.  If False
4276         revert to previous behavior where the signal handler must get the
4277         argument list from the message.  This is to help port applications
4278         like HAL that have a tendancy to send variable length argument lists.
4279         self._match_rule_to_receivers is now a dict of dicts.
4280         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4281         removing it from a list
4282         (Bus::_signal_func): change signal handlers so that interface,
4283         signal_name, service, path and message are packed into a Sender
4284         object and that is passed to the handler.  If expand_args is True
4285         extract the args list from the message and append it to the parameter
4286         list
4287         
4288         * python/dbus_bindings.pyx.in (class Signature): added to support 
4289         signiature types
4290         (MessageIter::__init__): changed iteration limit to match D-BUS
4291         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4292         STRUCT and VARIENT type support
4293         (MessageIter::python_value_to_dbus_sig): made recursive to support
4294         recursive types
4295         (MessageIter::append*): added Signature, dict, tuple 
4296         support
4297
4298         * python/examples/example-client.py: added examples of getting tuples
4299         and dicts
4300
4301         * python/examples/example-service.py: added examples of sending tuples
4302         and dicts
4303
4304         * python/examples/example-signal-recipient.py: Fixed to handle new
4305         signal callback format
4306
4307 2005-02-10  Havoc Pennington  <hp@redhat.com>
4308
4309         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4310         (call dbus_g_proxy_add_signal)
4311
4312         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4313         escape the hostname
4314         (_dbus_server_new_for_domain_socket): escape the path
4315
4316         * dbus/dbus-address.c (dbus_address_escape_value): new
4317         (dbus_address_unescape_value): new
4318         (dbus_parse_address): unescape values
4319
4320         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4321
4322         * doc/dbus-specification.xml: explain how to escape values in
4323         addresses
4324
4325 2005-02-10  Havoc Pennington  <hp@redhat.com>
4326
4327         * dbus/dbus-message-factory.c (generate_special): modify test to
4328         avoid using a non-basic dict key
4329
4330         * dbus/dbus-marshal-validate-util.c: add test for the below
4331
4332         * doc/dbus-specification.xml: require that dict keys are a basic
4333         type
4334
4335         * dbus/dbus-marshal-validate.c
4336         (_dbus_validate_signature_with_reason): require that dict key is a
4337         basic type
4338
4339 2005-02-10  Havoc Pennington  <hp@redhat.com>
4340
4341         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4342         change to be _and_unlock instead of _unlocked
4343
4344         * dbus/dbus-connection.c
4345         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4346         have no_update so we can find this bug quickly in future
4347
4348 2005-02-10  Havoc Pennington  <hp@redhat.com>
4349
4350         * dbus/dbus-message-util.c (verify_test_message): tests for string
4351         array
4352
4353         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4354         support for arrays of string/signature/path
4355
4356 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4357
4358         * dbus/dbus-connection.c
4359         (_dbus_connection_queue_received_message_link,
4360         _dbus_connection_message_sent): Add the path to
4361         the verbose output.
4362         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4363         _dbus_connection_send_preallocated_unlocked(), updated the
4364         dispatch status, and unlocks.  Fixes a bug where certain
4365         situations (like a broken pipe) could cause a Disconnect message
4366         to not be sent, tricking the bus into thinking a service was still
4367         there when the process had quit.
4368         (_dbus_connection_send_preallocated): Call
4369         _dbus_connection_send_preallocated_and_unlock().
4370         (_dbus_connection_send_and_unlock): Added.  Calls
4371         _dbus_connection_send_preallocated_and_unlock().
4372         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4373         (dbus_connection_send_with_reply): Update the dispatch status and
4374         unlock.
4375
4376         * mono/Service.cs (~Service): Added.  Removes the filter so that
4377         we don't get unmanaged code calling back into a GCed delegate.
4378         (RemoveFilter); Added.
4379
4380 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4381
4382         * dbus/dbus-message.c (dbus_message_iter_open_container):
4383         - Removed check for iterator type being an array because
4384         get_arg_type does not work with writer iterators
4385         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4386
4387 2005-02-07  Havoc Pennington  <hp@redhat.com>
4388
4389         * doc/dbus-specification.xml: some more language cleanups; add
4390         stuff about how to deal with invalid protocol and extension
4391         points; add _ to allowed chars in auth commands; add EXTENSION_
4392         auth command prefix
4393
4394 2005-02-06  Havoc Pennington  <hp@redhat.com>
4395
4396         * s/expected/required/ in a couple places for clarity
4397
4398 2005-02-07  Colin Walters  <walters@verbum.org>
4399
4400         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4401         sender or proposed_recipient.
4402
4403 2005-02-06  Havoc Pennington  <hp@redhat.com>
4404
4405         * dbus/dbus-message-factory.c (generate_special): more tests
4406
4407         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4408         array length that exceeds the maximum
4409
4410 2005-02-05  Havoc Pennington  <hp@redhat.com>
4411
4412         * dbus/dbus-message-factory.c (generate_special): more test cases,
4413         increasing coverage
4414
4415         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4416         reason why a signature was invalid
4417
4418         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4419         skip the length of the string before we look at it in validation
4420
4421         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4422         equal_substring
4423
4424         * dbus/dbus-message.c (_dbus_message_loader_new): default
4425         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4426
4427 2005-02-05  Havoc Pennington  <hp@redhat.com>
4428
4429         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4430         if the signature of a variant was empty
4431         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4432         struct with no element type)
4433
4434         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4435         mangled messages to break things
4436
4437 2005-02-04  Havoc Pennington  <hp@redhat.com>
4438
4439         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4440         g_quark_try_string() so it actually can return 0
4441         (dbus_g_proxy_connect_signal): ditto
4442
4443 2005-02-04  Havoc Pennington  <hp@redhat.com>
4444
4445         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4446         bogus warning
4447         (tristring_from_message): assert cleanly on null path/interface
4448         (should not be possible though I decided later)
4449         (dbus_g_proxy_dispose): move proxy manager unregistration here
4450         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4451         g_return_if_fail() checks
4452
4453 2005-02-04  Havoc Pennington  <hp@redhat.com>
4454
4455         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4456
4457         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4458         (with some minor changes)
4459
4460         * doc/dbus-specification.xml: add deprecated attribute to
4461         introspection format
4462
4463 2005-01-31  Havoc Pennington  <hp@redhat.com>
4464
4465         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4466         think it's sort of right
4467
4468 2005-01-30  Havoc Pennington  <hp@redhat.com>
4469
4470         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4471
4472 2005-01-30  Havoc Pennington  <hp@redhat.com>
4473
4474         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4475
4476         * autogen.sh: change to autotools 1.9
4477
4478         * glib/dbus-gproxy.c: completely change how signals work
4479         (dbus_g_proxy_add_signal): new function to specify signature of a
4480         signal
4481         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4482         and g_warning if the incoming message has the wrong signature.
4483
4484 2005-01-30  Havoc Pennington  <hp@redhat.com>
4485
4486         * tools/dbus-names-model.c (have_names_notify): fix this
4487
4488         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4489         up the string array handling a bit 
4490
4491 2005-01-30  Havoc Pennington  <hp@redhat.com>
4492
4493         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4494         (dbus_g_pending_call_cancel): new function
4495
4496         * dbus/dbus-glib.h: move GType decls for connection/message here;
4497         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4498         here, just kind of rationalizing how we handle all that
4499
4500         * tools/dbus-names-model.c: new file for a tree model listing the
4501         services on a bus
4502
4503         * tools/dbus-tree-view.c (model_new): use proper typing on the
4504         model rows
4505
4506 2005-01-30  Havoc Pennington  <hp@redhat.com>
4507
4508         * glib/dbus-gmain.c: add a custom GSource back that just checks
4509         whether the message queue has anything in it; otherwise, there are 
4510         cases where we won't see messages in the queue since there was no 
4511         IO visible to the glib main loop
4512
4513         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4514         increase default message timeout to 25 seconds
4515
4516 2005-01-30  Havoc Pennington  <hp@redhat.com>
4517
4518         * test/glib/test-profile.c (no_bus_stop_server): remove the
4519         warning about the g_warning that I just fixed
4520
4521         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4522         custom source, seems to be a lot easier to understand and work
4523         better.
4524
4525 2005-01-30  Havoc Pennington  <hp@redhat.com>
4526
4527         I think this main loop thing is conceptually broken, but here are 
4528         some band aids. I'll maybe rewrite it in a minute.
4529         
4530         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4531         custom GSource, so don't pass it in; confusing
4532         (gsource_server_finalize, gsource_connection_finalize): add
4533         finalize handlers that remove all the watches.  
4534
4535 2005-01-30  Havoc Pennington  <hp@redhat.com>
4536
4537         * glib/dbus-gobject.c (introspect_properties): fix the XML
4538         generated
4539
4540         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4541         which effectively detects the use of freed messages
4542
4543         * glib/dbus-gobject.c (handle_introspect): modify and return the
4544         reply message instead of the incoming message
4545
4546         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4547         gee, maybe it should SEND THE XML instead of just making a string
4548         and freeing it again ;-)
4549
4550         * tools/dbus-print-message.c (print_message): improve printing of
4551         messages
4552
4553         * configure.in: add debug-glib.service to the output
4554
4555 2005-01-30  Havoc Pennington  <hp@redhat.com>
4556
4557         dbus-viewer introspected and displayed the bus driver
4558         
4559         * dbus/dbus-object-tree.c 
4560         (object_tree_test_iteration): add tests for a handler registered on "/"
4561
4562         * dbus/dbus-object-tree.c
4563         (_dbus_decompose_path): fix to handle path "/" properly
4564         (run_decompose_tests): add tests for path decomposition
4565         
4566         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4567         properly
4568
4569         * glib/dbus-gobject.c (handle_introspect): fix quotes
4570
4571         * test/glib/run-test.sh: support launching the bus, then running
4572         dbus-viewer
4573
4574         * test/glib/test-service-glib.c (main): put in a trivial gobject
4575         subclass and register it on the connection
4576
4577         * bus/driver.c (bus_driver_handle_introspect): implement
4578         introspection of the bus driver service
4579
4580         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4581         identifiers, doctype decl
4582
4583         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4584         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4585         returning the service unchanged.
4586         (bus_driver_handle_message): remove old check for reply_serial in
4587         method calls, now the message type deals with that
4588         (bus_driver_handle_message): handle NULL interface
4589
4590         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4591
4592         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4593         -1 for len
4594
4595         * tools/dbus-viewer.c: add support for introspecting a service on
4596         a bus
4597
4598         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4599         (dbus_g_pending_call_unref): add
4600
4601 2005-01-29  Havoc Pennington  <hp@redhat.com>
4602
4603         * tools/dbus-tree-view.c: add support for displaying properties.
4604         (run dbus-viewer with an introspect xml file as arg, then resize
4605         the window so the tree elements show up, not sure what that is)
4606
4607         * glib/dbus-gobject.c (handle_introspect): return
4608         org.freedesktop.Properties and org.freedesktop.Introspectable
4609         interfaces when we are introspected.
4610
4611         * doc/dbus-specification.xml: allow empty interface name when 
4612         Get/Set a property
4613
4614 2005-01-29  Havoc Pennington  <hp@redhat.com>
4615
4616         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4617         though it uses glib, it could be extended for any binding in
4618         principle
4619
4620         * glib/dbus-gobject.c (gobject_message_function): change to the
4621         new way properties work
4622
4623         * dbus/dbus-protocol.h: add the new interfaces
4624
4625         * doc/dbus-specification.xml: document the introspection format,
4626         Introspectable interface, and add an org.freedesktop.Properties
4627         interface.
4628
4629         * glib/dbus-gparser.c: add support for a <property> element
4630
4631         * glib/dbus-gidl.c: add PropertyInfo
4632
4633         * glib/dbus-gobject.c (handle_introspect): put the outermost
4634         <node> outside the signal and property descriptions.
4635         (introspect_properties): export properties as <property> rather
4636         than as method calls
4637
4638 2005-01-28  Havoc Pennington  <hp@redhat.com>
4639
4640         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4641         related to authentication protocol
4642
4643 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4644
4645         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4646                 - BUS_ACTIVATION -> BUS_STARTER
4647                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4648                 - class MessageIter (__init__): Added recursion checking 
4649                 so we throw a nice error instead of just disconnecting from the
4650                 bus.
4651                 (get): Added arg_type parameter for recursion.
4652                 Removed the nil type
4653                 Added signiture type placeholder (not implemented)
4654                 Added struct type placeholder (not implemented)
4655                 Added varient type placeholder (not implemented)
4656                 Commented out dict type for now     
4657                 (get_element_type): renamed from get_array_type
4658                 (get_*): changed to use the dbus_message_iter_get_basic API
4659                 (get_*_array): removed in favor of recursive get_array method
4660                 (get_array): new recursive method which calls get to marshal
4661                 the elements of the array
4662                 (value_to_dbus_sig): New method returns the corrasponding
4663                 dbus signiture to a python value
4664                 (append): Comment out dict handling for now
4665                 Handle lists with the new recursive API
4666                 Comment out None handling for now
4667                 (append_nil): removed
4668                 (append_*): changed to use dbus_message_iter_append_basic API
4669                 (append_*_array): removed in favor of recursive append_array 
4670                 method
4671                 (__str__): Make it easier to print out recursive iterators
4672                 for debugging
4673                 - class Message (__str__): moved type inspection to the
4674                 MessageIter class' __str__ method
4675                 (get_iter): Added an append parameter wich defaults to False
4676                 If True use the new API's to create an append iterator
4677
4678         * python/dbus.py: Update to use new bindings API
4679                 - TYPE_ACTIVATION -> TYPE_STARTER
4680                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4681                 - class ActivationBus -> class StarterBus
4682                 - class RemoteObject (__call__): get an append iterator
4683                 - (_dispatch_dbus_method_call): get an append iterator
4684                 - class Object (emit_signal): get an append iterator
4685
4686         * python/examples/: Fixed up the examples to work with the new API
4687                 
4688 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4689
4690         * configure.in: Bump version up to 0.30.
4691
4692         * HACKING: Add a release item to bump the version number up after 
4693         a release.
4694
4695 2005-01-28  Havoc Pennington  <hp@redhat.com>
4696
4697         * doc/dbus-specification.xml: update to describe 16-bit types and
4698         dict entries
4699
4700         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4701         assertion
4702
4703         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4704         type
4705
4706         * dbus/dbus-marshal-recursive.c: implement
4707
4708 2005-01-27  Havoc Pennington  <hp@redhat.com>
4709
4710         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4711
4712         * configure.in: find the right type for 16 and 32 bit ints as well
4713         as 64
4714
4715         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4716         the 16-bit types so people don't have to stuff them in 32-bit or
4717         byte arrays.
4718
4719 2005-01-27  Havoc Pennington  <hp@redhat.com>
4720
4721         * dbus/dbus-message.c: byteswap the message if you init an
4722         iterator to read/write from it
4723         
4724         * dbus/dbus-marshal-byteswap.c: new file implementing 
4725         _dbus_marshal_byteswap()
4726
4727         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4728
4729 2005-01-26  Havoc Pennington  <hp@redhat.com>
4730         
4731         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4732         build, apparently - nobody noticed?)
4733         
4734 2005-01-26  Havoc Pennington  <hp@redhat.com>
4735
4736         * dbus/dbus-marshal-recursive.h: remove todo comment
4737
4738 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4739
4740         * Land the mono binding changes to conform to the new APIs.
4741
4742         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4743         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4744
4745         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4746         type code as a string.
4747         (InitAppending): Rename dbus_message_append_iter_init() to
4748         dbus_message_iter_init_append().
4749
4750         * mono/BusDriver.cs: Rename ServiceEventHandler to
4751         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4752         Rename ServiceOwnerChanged to NameOwnerChanged.
4753
4754         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4755         underlying C call.
4756
4757         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4758
4759         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4760         dbus_bus_acquire_service() to dbus_bus_request_name().
4761
4762         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4763         of Type.UnderlyingSystemType to get the correct element type for
4764         the array.
4765         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4766         dbus_message_get_{element|arg}_type() instead of
4767         dbus_message_iter_init_array_iterator().
4768         (Append): Replace dbus_message_iter_append_array() with
4769         dbus_message_iter_open_container() and
4770         dbus_message_iter_close_container().
4771
4772         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4773         types have been removed.
4774         
4775         * mono/DBusType/*.cs: Replace calls of
4776         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4777         but specify the type in the DllImport extern declaration.  Ditto
4778         for dbus_message_iter_append_[type]() ->
4779         dbus_message_iter_append_basic().
4780
4781         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4782         NameOwnerChangedHandler.
4783
4784 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4785
4786         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4787                 - get_base_service -> get_unique_name
4788                 - bus_get_base_service -> bus_get_unique_name
4789                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4790                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4791                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4792                 - bus_activate_service -> bus_start_service_by_name
4793                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4794                 - bus_acquire_service -> bus_request_name
4795                 - dbus_bus_acquire_service -> dbus_bus_request_name
4796                 - bus_service_exists -> bus_name_has_owner
4797                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4798
4799         * python/dbus.py: Rename of methods
4800                 - activate_service -> start_service_by_name
4801                 - bus_acquire_service -> bus_request_name
4802                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4803                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4804
4805         
4806 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4807
4808         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4809         signature for the method that can't be found.
4810
4811         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4812         the message has any arguments, we need to call
4813         _dbus_type_reader_get_current_type(), not
4814         _dbus_type_reader_has_next().
4815
4816 2005-01-24  Havoc Pennington  <hp@redhat.com>
4817
4818         * dbus/dbus-message-factory.c: more testing of message validation
4819
4820         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4821         header
4822
4823 2005-01-23  Havoc Pennington  <hp@redhat.com>
4824
4825         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4826         get this all working, not many tests in the framework yet though
4827
4828 2005-01-22  Havoc Pennington  <hp@redhat.com>
4829
4830         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4831         tutorial, based on work from David Wheeler.
4832
4833 2005-01-21  Havoc Pennington  <hp@redhat.com>
4834
4835         * dbus/dbus-bus.c: add more return_if_fail checks
4836
4837         * dbus/dbus-message.c (load_message): have the "no validation"
4838         mode (have to edit the code to toggle the mode for now though)
4839
4840         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4841         skips all validation; I want to use this at least for benchmark
4842         baseline, I'm not sure if it should be a publicly-available switch.
4843
4844 2005-01-21  Havoc Pennington  <hp@redhat.com>
4845
4846         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4847         toplevel doxygen group as the low-level API stuff
4848
4849         * dbus/dbus.h: note that libdbus is the low-level API
4850
4851 2005-01-20  Havoc Pennington  <hp@redhat.com>
4852
4853         * update-dbus-docs.sh: script to update docs on the web site, only
4854         works for me though. neener.
4855
4856 2005-01-20  Havoc Pennington  <hp@redhat.com>
4857
4858         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4859         code can reveal bugs in it
4860
4861 2005-01-20  Havoc Pennington  <hp@redhat.com>
4862
4863         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4864         select() version, patches from Tor Lillqvist
4865
4866 2005-01-20  Havoc Pennington  <hp@redhat.com>
4867
4868         * doc/dbus-tutorial.xml: replace > with &gt;
4869
4870         * bus/services.c (bus_registry_acquire_service): validate the name
4871         and return a better error if it's no good.
4872
4873         * doc/dbus-specification.xml: note NO_AUTO_START change
4874
4875         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4876         from AUTO_START, we're toggling the default
4877
4878         * bus/dispatch.c: adapt the tests to change of auto-start default
4879
4880 2005-01-18  Havoc Pennington  <hp@redhat.com>
4881
4882         * rename dbus-daemon-1 to dbus-daemon throughout
4883
4884 2005-01-18  Havoc Pennington  <hp@redhat.com>
4885
4886         * Throughout, grand renaming to strip out the use of "service",
4887         just say "name" instead (or "bus name" when ambiguous).  Did not
4888         change the internal code of the message bus itself, only the
4889         programmer-facing API and messages.
4890         
4891         * doc/dbus-specification.xml: further update the message bus section
4892         
4893         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4894         in error case
4895
4896 2005-01-17  Havoc Pennington  <hp@redhat.com>
4897
4898         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4899         ever
4900
4901         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4902         "invalid name character" not only non-ASCII
4903
4904         * doc/dbus-specification.xml: further update spec, message bus 
4905         parts are still out-of-date but the marshaling etc. stuff is now
4906         accurate-ish
4907
4908 2005-01-17  Havoc Pennington  <hp@redhat.com>
4909
4910         * doc/dbus-specification.xml: partially update spec
4911
4912 2005-01-17  Havoc Pennington  <hp@redhat.com>
4913
4914         * Throughout, align variant bodies according to the contained
4915         type, rather than always to 8. Should save a fair bit of space in
4916         message headers.
4917         
4918         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4919         fix handling of case where p == end
4920
4921         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4922
4923 2005-01-17  Havoc Pennington  <hp@redhat.com>
4924
4925         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4926
4927         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4928         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4929         are marshaling/unmarshaling a boolean.
4930
4931 2005-01-16  Havoc Pennington  <hp@redhat.com>
4932
4933         This is about it on what can be disabled/deleted from libdbus
4934         easily, back below 150K anyhow. Deeper cuts are more work than 
4935         just turning the code off as I've done here.
4936         
4937         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4938         signed int convenience funcs
4939
4940         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4941         verbose mode
4942
4943         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4944         things out of libdbus
4945
4946         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4947         
4948         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4949         tests-enabled-only, though it should probably be deleted)
4950
4951         * dbus/dbus-message-util.c: same stuff
4952
4953         * dbus/dbus-auth-util.c: same stuff
4954
4955 2005-01-16  Havoc Pennington  <hp@redhat.com>
4956
4957         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4958
4959         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4960         way for stripping down dbus-userdb.c stuff included in libdbus.
4961         Rename _dbus_parse_uid for consistency.
4962
4963 2005-01-16  Havoc Pennington  <hp@redhat.com>
4964
4965         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4966         name the assertion failed in
4967
4968         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4969         (_dbus_return_val_if_fail): assert that the name of the function
4970         containing the check doesn't start with '_', since we only want to 
4971         use checks on public functions
4972         
4973         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4974         checks to assertions
4975
4976         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4977         change checks to asserts for private function
4978
4979         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4980         to asserts for private function
4981
4982         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4983         broken assertion that was breaking make check
4984         (_dbus_type_reader_array_is_empty): remove this rather than fix
4985         it, was only used in assertions
4986
4987 2005-01-16  Havoc Pennington  <hp@redhat.com>
4988
4989         * test/unused-code-gc.py: hacky script to find code that's used
4990         only by the bus (not libdbus) or used only by tests or not used at
4991         all. It has some false alarms, but looks like we can clean up a
4992         lot of size from libdbus.
4993
4994         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4995         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4996         
4997 2005-01-16  Havoc Pennington  <hp@redhat.com>
4998
4999         * Add and fix docs according to Doxygen warnings throughout
5000         source.
5001         
5002         * dbus/dbus-marshal-recursive.c
5003         (_dbus_type_reader_array_is_empty): change this to just call
5004         array_reader_get_array_len() and make it static
5005
5006         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5007         from get_array_type
5008         (dbus_message_iter_init_append): rename from append_iter_init
5009
5010         * dbus/dbus-marshal-recursive.c
5011         (_dbus_type_reader_get_element_type): rename from
5012         _dbus_type_reader_get_array_type
5013
5014 2005-01-15  Havoc Pennington  <hp@redhat.com>
5015
5016         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5017
5018         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5019         when DBUS_DISABLE_ASSERT
5020         (_dbus_marshal_set_basic): be sure we align for the string length
5021
5022         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5023         this look faster
5024
5025         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5026         inline macro version
5027         (_dbus_string_set_byte): provide inline macro version
5028
5029 2005-01-15  Havoc Pennington  <hp@redhat.com>
5030
5031         * Land the new message args API and type system.
5032
5033         This patch is huge, but the public API change is not 
5034         really large. The set of D-BUS types has changed somewhat, 
5035         and the arg "getters" are more geared toward language bindings;
5036         they don't make a copy, etc.
5037
5038         There are also some known issues. See these emails for details
5039         on this huge patch:
5040         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5041         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5042         
5043         * dbus/dbus-marshal-*: all the new stuff
5044
5045         * dbus/dbus-message.c: basically rewritten
5046
5047         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5048         freed blocks to be all non-nul bytes so using freed memory is less
5049         likely to work right
5050
5051         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5052         DBUS_FAIL_MALLOC=N environment variable, so you can do
5053         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5054         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5055         thorough.
5056
5057         * qt/message.cpp: port to the new message args API
5058         (operator<<): use str.utf8() rather than str.unicode()
5059         (pretty sure this is right from the Qt docs?)
5060
5061         * glib/dbus-gvalue.c: port to the new message args API
5062
5063         * bus/dispatch.c, bus/driver.c: port to the new message args API
5064
5065         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5066         "locked" flag to TRUE and align_offset to 0; I guess we never
5067         looked at these anyhow, but seems cleaner.
5068
5069         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5070         move allocation padding macro to this header; use it to implement
5071         (_DBUS_STRING_STATIC): ability to declare a static string.
5072
5073         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5074         change to return TRUE if the interface is not set.
5075
5076         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5077         to dbus-marshal-validate.[hc]
5078
5079         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5080         dbus-internals.c
5081
5082         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5083         to dbus-marshal-*.[hc]
5084
5085         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5086         function here from dbus-marshal.c
5087
5088 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5089
5090         * NEWS: Update for 0.23.
5091
5092         * configure.in: Release 0.23.
5093
5094 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5095
5096         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5097         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5098         behind.
5099
5100         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5101         uninstall"
5102
5103         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5104         is an enum, get the enum's underlying type.  Another mono
5105         1.1.3 fix.
5106
5107 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5108
5109         Patch from Sjoerd Simons <sjoerd@luon.net>
5110
5111         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5112         DESTDIR.  It breaks stuff.
5113
5114 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5115
5116         Patch from Tambet Ingo <tambet@ximian.com>
5117
5118         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5119         calling type.GetElementType().  The code previously depended on
5120         broken Mono behavior, which was fixed in Mono 1.1.3.
5121
5122         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5123         Activator.CreateInstance() so that the class's constructor is
5124         called with the right parameters.
5125
5126 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5127
5128         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5129
5130         * dbus/dbus-connection.c
5131         (_dbus_connection_queue_received_message_link): Call
5132         _dbus_connection_remove_timeout() instead of the _locked()
5133         variant, since it's always called from
5134         _dbus_connection_handle_watch(), which handles the locking.
5135         Removed the _locked() variant since it's no longer used.
5136
5137 2005-01-03  Havoc Pennington  <hp@redhat.com>
5138
5139         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5140         return
5141         
5142 2004-12-26  Havoc Pennington  <hp@redhat.com>
5143
5144         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5145
5146 2005-01-03  Havoc Pennington  <hp@redhat.com>
5147
5148         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5149         floating point
5150
5151         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5152
5153 2005-01-02  Havoc Pennington  <hp@redhat.com>
5154
5155         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5156
5157 2005-01-01  Havoc Pennington  <hp@redhat.com>
5158
5159         * configure.in: add -Wfloat-equal
5160
5161 2005-01-01  Havoc Pennington  <hp@redhat.com>
5162
5163         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5164         for a variety of reasons '==' doesn't do this.
5165
5166 2004-12-31  Havoc Pennington  <hp@redhat.com>
5167
5168         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5169         I keep wishing I had
5170
5171 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5172
5173         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5174
5175 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5176
5177         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5178         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5179         dbus-protocol.h.  Because they are defines and not enums they are not
5180         autogenerated.
5181
5182 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5183
5184         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5185         dbus_bus_activate_service
5186
5187         * python/dbus.py (Bus.activate_service): activate a service on the
5188         bus.
5189
5190 2004-12-24  Havoc Pennington  <hp@redhat.com>
5191
5192         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5193         file format has also changed and I haven't adapted to that yet
5194         
5195         * Makefile.am: load .gcno files from latest gcc
5196
5197 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5198         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5199
5200         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5201         lowlevel binding
5202
5203         * python/dbus.py (get_unix_user): Added binding to 
5204         call dbus_bindings.bus_get_unix_user
5205
5206         * python/extract.py: Modified the proto_pat regex to
5207         handle unsigned long
5208
5209 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5210
5211         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5212         better POSIX compliance.
5213
5214 2004-12-19  Havoc Pennington  <hp@redhat.com>
5215
5216         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5217         (_dbus_string_insert_8_aligned): new functions
5218
5219         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5220
5221 2004-12-18  Havoc Pennington  <hp@redhat.com>
5222
5223         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5224         macro
5225
5226         * dbus/dbus-message.c: fix a comment, and add a still-unused
5227         not-implemented function
5228
5229         * dbus/dbus-marshal.h: fix comment
5230
5231         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5232
5233 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5234
5235         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5236         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5237         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5238         Type.UnderlyingSystemType to get the actual system type
5239         underneath.  This code previously depended on the broken Mono
5240         behavior, which was fixed in 1.1.3.
5241
5242 2004-11-27  Havoc Pennington  <hp@redhat.com>
5243
5244         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5245         are disabled
5246         (_dbus_string_get_const_data): inline when asserts are disabled
5247
5248         * dbus/dbus-message.c: record the _dbus_current_generation of
5249         creation so we can complain if dbus_shutdown() is used improperly.
5250         Do this only if checks are enabled.
5251
5252         * dbus/dbus-connection.c: ditto
5253         
5254 2004-11-26  Havoc Pennington  <hp@redhat.com>
5255
5256         * test/glib/test-profile.c: add with_bus mode to profile echoes
5257         that go through the bus.
5258
5259         * test/glib/run-test.sh: add ability to run test-profile
5260
5261         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5262         config file reload.
5263
5264 2004-11-26  Havoc Pennington  <hp@redhat.com>
5265
5266         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5267         thing was implemented
5268
5269 2004-11-26  Havoc Pennington  <hp@redhat.com>
5270
5271         * test/glib/test-profile.c: tweak a bit, add support for some
5272         made-up minimal malloc overhead with plain sockets, since in 
5273         real life some sort of buffers are unavoidable thus we could 
5274         count them in the theoretical best case
5275
5276 2004-11-26  Havoc Pennington  <hp@redhat.com>
5277
5278         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5279         where I was trying to cache one too many messages
5280
5281 2004-11-26  Havoc Pennington  <hp@redhat.com>
5282
5283         * dbus/dbus-message.c: reimplement message cache as an array which 
5284         makes the cache about twice as fast and saves maybe 1.5% overall
5285
5286 2004-11-26  Havoc Pennington  <hp@redhat.com>
5287
5288         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5289         message cache lock here
5290
5291 2004-11-26  Havoc Pennington  <hp@redhat.com>
5292
5293         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5294         the "char byte_order" next to each other to save 4 bytes
5295         (dbus_message_new_empty_header): reduce preallocation, since the
5296         message cache should achieve a similar effect
5297         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5298         message cache that keeps a few DBusMessage around in a pool,
5299         another 8% speedup or so.
5300
5301         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5302
5303 2004-11-25  Havoc Pennington  <hp@redhat.com>
5304
5305         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5306         to write, without reading or blocking, try it before the poll()
5307         and skip the poll() if nothing remains to write. This is about a
5308         3% speedup in the echo client/server
5309
5310 2004-11-25  Havoc Pennington  <hp@redhat.com>
5311
5312         The primary change here is to always write() once before adding
5313         the write watch, which gives us about a 10% performance increase.
5314         
5315         * dbus/dbus-transport-unix.c: a number of modifications to cope
5316         with removing messages_pending
5317         (check_write_watch): properly handle
5318         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5319         messages_pending stuff
5320         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5321         AUTHENTICATED cases
5322         (unix_handle_watch): after writing, see if the write watch can be
5323         removed
5324         (unix_do_iteration): assert that write_watch/read_watch are
5325         non-NULL rather than testing that they aren't, since they 
5326         aren't allowed to be NULL. check_write_watch() at the end so 
5327         we add the watch if we did not finish writing (e.g. got EAGAIN)
5328
5329         * dbus/dbus-transport-protected.h: remove messages_pending call,
5330         since it resulted in too much inefficient watch adding/removing; 
5331         instead we now require that the transport user does an iteration 
5332         after queueing outgoing messages, and after trying the first
5333         write() we add a write watch if we got EAGAIN or exceeded our 
5334         max bytes to write per iteration setting
5335
5336         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5337         function
5338
5339         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5340         freed and then accessed, valgrind flagged this bug, fix it
5341
5342         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5343         as the last valid field plus 1, where really it is equal to the
5344         last valid field. Corrects some message corruption issues.
5345
5346         * dbus/dbus-mainloop.c: verbosity changes
5347
5348         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5349         instead of aborting in one of the test codepaths
5350
5351         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5352         caused not printing the pid ever again if a verbose was missing
5353         the newline at the end
5354         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5355
5356         * dbus/dbus-connection.c: verbosity changes; 
5357         (dbus_connection_has_messages_to_send): new function
5358         (_dbus_connection_message_sent): no longer call transport->messages_pending
5359         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5360         try to write() immediately, so we can avoid the write watch. This
5361         is the core purpose of this patchset
5362         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5363         dump the outgoing message queue, so nobody will get confused
5364         trying to send them or thinking stuff is pending to be sent
5365
5366         * bus/test.c: verbosity changes
5367
5368         * bus/driver.c: verbosity/assertion changes
5369
5370         * bus/dispatch.c: a bunch of little tweaks to get it working again
5371         because this patchset changes when/where you need to block.
5372
5373 2004-11-23  Havoc Pennington  <hp@redhat.com>
5374
5375         * test/glib/test-profile.c: modify to accept a plain_sockets
5376         argument in which case it will bench plain sockets instead of
5377         libdbus, for comparison purposes.
5378
5379 2004-11-22  Havoc Pennington  <hp@redhat.com>
5380
5381         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5382         threads for more time, so sysprof can get a grip on it.
5383
5384         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5385         pointless variable
5386
5387 2004-11-13  Havoc Pennington  <hp@redhat.com>
5388
5389         * test/glib/test-profile.c: fix this thing up a bit
5390
5391         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5392         preallocation sizes by a fair bit; not sure if this will be an
5393         overall performance win or not, but it does reduce reallocs.
5394
5395         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5396         the test hack that forced constant realloc if asserts are
5397         disabled, so we can profile sanely. Sprinkle in some
5398         _DBUS_UNLIKELY() which are probably pointless, but before I
5399         noticed the real performance problem I put them in.
5400         (_dbus_string_validate_utf8): micro-optimize this thing a little
5401         bit, though callgrind says it didn't help; then special-case
5402         ascii, which did help a lot; then be sure we detect nul bytes as
5403         invalid, which is a bugfix.
5404         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5405         superstition; use memset to nul the padding instead of a manual
5406         loop.
5407         (_dbus_string_get_length): inline this as a
5408         macro; it showed up in the profile because it's used for loop
5409         tests and so forth
5410
5411 2004-11-10  Colin Walters  <walters@verbum.org>
5412
5413         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5414         for extra paranoia.
5415
5416 2004-11-09  Colin Walters  <walters@verbum.org>
5417
5418         * dbus/dbus-string.c (_dbus_string_get_length): New
5419         function, writes DBusString to C buffer.
5420
5421         * dbus/dbus-string.h: Prototype it.
5422
5423         * dbus/dbus-message.c (dbus_message_type_to_string): New
5424         function, converts message type into C string.
5425
5426         * dbus/dbus-message.h: Prototype it.
5427
5428         * bus/selinux.c (bus_selinux_check): Take source pid,
5429         target pid, and audit data.  Pass audit data to
5430         avc_has_perm.
5431         (log_audit_callback): New function, appends extra
5432         audit information.
5433         (bus_selinux_allows_acquire_service): Also take
5434         service name, add it to audit data.
5435         (bus_selinux_allows_send): Also take message
5436         type, interface, method member, error name,
5437         and destination, and add them to audit data.
5438         (log_cb): Initialize func_audit.
5439         
5440         * bus/selinux.h (bus_selinux_allows_acquire_service)
5441         (bus_selinux_allows_send): Update prototypes 
5442
5443         * bus/services.c (bus_registry_acquire_service): Pass
5444         service name to bus_selinux_allows_acquire_service.
5445
5446         * bus/bus.c (bus_context_check_security_policy): Pass
5447         additional audit data.  Move assignment of dest
5448         to its own line.
5449
5450 2004-11-07  Colin Walters  <walters@verbum.org>
5451
5452         * dbus/dbus-transport-unix.c (do_authentication): Always
5453         initialize auth_completed.
5454         
5455 2004-11-07  Colin Walters  <walters@verbum.org>
5456
5457         * bus/bus.c (load_config): Break into three
5458         separate functions: process_config_first_time_only,
5459         process_config_every_time, and process_config_postinit.
5460         (process_config_every_time): Move call of
5461         bus_registry_set_service_context_table into
5462         process_config_postinit.
5463         (process_config_postinit): New function, does
5464         any processing that needs to happen late
5465         in initialization (and also on reload).
5466         (bus_context_new): Instead of calling load_config,
5467         open config parser here and call process_config_first_time_only
5468         and process_config_every_time directly.  Later, after
5469         we have forked but before changing UID,
5470         invoke bus_selinux_full_init, and then call
5471         process_config_postinit.
5472         (bus_context_reload_config): As in bus_context_new,
5473         load parse file inside here, and call process_config_every_time
5474         and process_config_postinit.
5475
5476         * bus/services.h, bus/services.c
5477         (bus_registry_set_service_context_table): Rename
5478         from bus_registry_set_sid_table.  Take string hash from config
5479         parser, and convert them here into SIDs.
5480
5481         * bus/config-parser.c (struct BusConfigParser): Have
5482         config parser only store a mapping of service->context
5483         string.
5484         (merge_service_context_hash): New function.
5485         (merge_included): Merge context string hashes instead
5486         of using bus_selinux_id_table_union.
5487         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5488         simply create a new string hash.
5489         (bus_config_parser_unref): Unref it.
5490         (start_selinux_child): Simply insert strings into hash,
5491         don't call bus_selinux_id_table_copy_over.
5492
5493         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5494         (bus_selinux_id_table_copy_over): Delete.
5495
5496 2004-11-03  Colin Walters  <walters@verbum.org>
5497
5498         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5499         variables.
5500         
5501 2004-11-03  Colin Walters  <walters@verbum.org>
5502
5503         * bus/test-main.c (test_pre_hook): Fix test logic,
5504         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5505
5506 2004-11-02  Colin Walters  <walters@redhat.com>
5507
5508         * bus/selinux.c (bus_selinux_init): Split into two functions,
5509         bus_selinux_pre_init and bus_selinux_post_init.
5510         (bus_selinux_pre_init): Just determine whether SELinux is
5511         enabled.
5512         (bus_selinux_post_init): Do everything else.
5513
5514         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5515         config file, and bus_selinux_post_init after.  This ensures that
5516         we don't lose the policyreload notification thread that
5517         bus_selinux_init created before forking previously.
5518         
5519         * bus/test-main.c (test_pre_hook): Update for split.
5520
5521 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5522
5523         Patch from Johan Fischer <linux@fischaz.com>
5524         
5525         * mono/doc/Makefile.am (install-data-local): Added directory
5526         install for DESTDIR
5527
5528 2004-10-29  Colin Walters  <walters@redhat.com>
5529
5530         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5531         parameter for fd to write pid to.       
5532
5533         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5534         
5535         * bus/bus.c (bus_context_new): Pass print_pid_fd
5536         to _dbus_become_daemon (bug #1720)
5537
5538 2004-10-29  Colin Walters  <walters@redhat.com>
5539
5540         Patch from Ed Catmur <ed@catmur.co.uk>
5541
5542         * mono/doc/Makefile.am (install-data-local): Handle
5543         DESTDIR.
5544
5545 2004-10-29  Colin Walters  <walters@redhat.com>
5546
5547         * bus/.cvsignore, qt/.cvsignore: Update.
5548
5549 2004-10-29  Colin Walters  <walters@redhat.com>
5550
5551         Patch from Kristof Vansant <de_lupus@pandora.be>
5552
5553         * configure.in: Detect Slackware.
5554         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5555         * bus/rc.messagebus.in: New file.
5556
5557 2004-10-29  Colin Walters  <walters@redhat.com>
5558
5559         * tools/dbus-monitor.c (filter_func): Return
5560         DBUS_HANDLER_RESULT_HANDLED in filter function
5561         for now.  See:
5562         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5563
5564 2004-10-29  Colin Walters  <walters@redhat.com>
5565
5566         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5567
5568         * bus/services.c (bus_registry_acquire_service): 
5569         Correctly retrieve service name from DBusString
5570         for printing.
5571
5572 2004-10-29  Colin Walters  <walters@redhat.com>
5573
5574         * dbus/dbus-glib.h: Update documentation to not
5575         refer to internal APIs.
5576
5577 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5578
5579         * mono/Arguments.cs (GetDBusTypeConstructor):
5580         type.UnderlyingSystemType will return "System.Byte" if you do it
5581         on "byte[]", which is not what we want.  So check the type.IsArray
5582         property and use System.Array instead.
5583
5584 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5585
5586         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5587         the DBusUserInfo structure since this is passed into the function.
5588         This would cause a double free when the function that allocated
5589         the structure would try to free it when an error occured.
5590
5591         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5592         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5593         for service activation to avoid 32bit/64bit parallel install issues
5594
5595 2004-10-21  Colin Walters  <walters@verbum.org>
5596
5597         * AUTHORS: Fix my email address, the @gnu.org one
5598         has been bouncing for some time.  Also add J5.
5599         
5600 2004-10-21  Colin Walters  <walters@verbum.org>
5601
5602         * dbus/dbus-transport-unix.c (do_authentication): Return
5603         authentication status to callers.
5604         (unix_handle_watch): If we completed authentication this round,
5605         don't do another read.  Instead wait until the next iteration,
5606         after we've read any pending data in the auth buffer.
5607         (unix_do_iteration): Ditto.
5608         (unix_handle_watch): Updated for new do_authentication prototype.
5609
5610 2004-10-18  Colin Walters  <walters@verbum.org>
5611
5612         * bus/selinux.c (bus_selinux_enabled): Handle
5613         --disable-selinux case.
5614         
5615 2004-10-18  Colin Walters  <walters@verbum.org>
5616
5617         * bus/selinux.h: Add bus_selinux_enabled.
5618         
5619         * bus/selinux.c (bus_selinux_enabled): Implement it.
5620         
5621         * bus/config-parser.c (struct include): Add
5622         if_selinux_enabled member.
5623         (start_busconfig_child): Parse if_selinux_enabled
5624         attribute for include.
5625         (bus_config_parser_content): Handle it.
5626
5627         * bus/session.conf.in, bus/system.conf.in: Add
5628         inclusion of context mapping to default config files;
5629         conditional on SELinux being enabled.
5630         
5631         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5632         
5633         * test/data/invalid-config-files/badselinux-1.conf, 
5634         test/data/invalid-config-files/badselinux-2.conf:
5635         Test files for bad syntax.
5636         
5637 2004-10-17  Colin Walters  <walters@verbum.org>
5638
5639         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5640         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5641         format specifier mismatches.
5642
5643 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5644
5645         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5646         format string.
5647
5648         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5649         pointer (bug #1540, Leonardo Boiko).
5650
5651 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5652
5653         * mono/BusDriver.cs: Changed BusDriver struct to remove
5654         the ServiceCreated and ServiceDeleted events and replace them
5655         with the new ServiceOwnerChanged event.
5656
5657         * mono/example/BusListener.cs: Added a new example program,
5658         which listens for and reports any ServiceOwnerChanged events
5659         on the bus driver.
5660
5661         * mono/example/Makefile.am (DESTDIR): Build changes for the
5662         new BusListener.cs example.
5663
5664 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5665
5666         * bus/signals.c (bus_match_rule_parse): validate the components of
5667         match rules (bug #1439).
5668
5669         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5670
5671 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5672
5673         * doc/dbus-specification.xml: document ServiceOwnerChanged
5674         signal.
5675         
5676         * bus/driver.c, bus/driver.h, bus/services.c: Use
5677         ServiceOwnerChanged signal instead of ServiceCreated and
5678         ServiceDeleted.
5679         
5680         * bus/dispatch.c: update testcase for the new signal.
5681
5682 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5683
5684         Patch from Nat Friedman <nat@novell.com>
5685
5686         * mono/Makefile.am: A number of small build fixes to allow "make
5687         distcheck" to succeed.
5688
5689         * mono/example/Makefile.am: "make distcheck" fixes.
5690
5691         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5692         key in @srcdir@.
5693
5694         * test/Makefile.am: "make distcheck" fixes.
5695
5696 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5697
5698         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5699
5700         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5701
5702         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5703         messages after the first one (bug #1389).
5704         
5705         * bus/dispatch.c (check_double_hello_message): add a test case for
5706         the double hello message bug.
5707         (check_existent_service_activation): fix check of spawning error.
5708         
5709 2004-09-16  David Zeuthen  <david@fubar.dk>
5710
5711         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5712
5713 2004-09-12  David Zeuthen  <david@fubar.dk>
5714
5715         Patch from Kay Sievers <kay.sievers@vrfy.org>
5716
5717         * bus/bus.c (bus_context_new):
5718         * bus/bus.h:
5719         * bus/main.c (usage)
5720         (main):
5721         Add commandline option --nofork to override configuration file
5722         setting.
5723
5724 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5725
5726         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5727         compilers don't like it (bug #974).
5728
5729 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5730
5731         * qt/connection.*: Applied patch by Jérôme Lodewyck
5732         <lodewyck@clipper.ens.fr> to integrate an existing
5733         connection into the Qt eventloop
5734
5735 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5736
5737         * mono/BusDriver.cs: Added.  This is a class for interacting with
5738         the org.freedesktop.DBus service.
5739
5740         * mono/Message.cs: Added a mechanism to expose the message that is
5741         currently being dispatched via the static Message.Current
5742         property.  Added Message.Sender and Message.Destination
5743         properties.
5744
5745         * mono/Handler.cs: Expose the dispatched message via
5746         Message.Current when handling method calls.
5747
5748         * mono/Service.cs: Expose the dispatched message via
5749         Message.Current when handling signal emissions.
5750         
5751         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5752         Connection.BaseService property.
5753
5754 2004-08-28  Havoc Pennington  <hp@redhat.com>
5755
5756         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5757
5758         More fixes from Steve Grubb
5759         
5760         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5761         (_dbus_listen_tcp_socket): fix fd leak
5762
5763         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5764         EINTR to a bit lower in the code
5765
5766 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5767
5768         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5769         TRUE if we are inquiring about the existence of the built-in
5770         org.freedesktop.DBus service.
5771
5772 2004-08-25  John Palmieri  <johnp@redhat.com>
5773         * bus/config-parser.c:
5774         (struct PolicyType): Add POLICY_CONSOLE
5775         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5776         (start_busconfig_child): Sets up console element when
5777         <policy at_console=""> is encountered in a policy file
5778         (append_rule_from_element): Convert console elements to console
5779         rules.
5780
5781         * bus/policy.c: 
5782         (bus_policy_create_client_policy): Add console rules to the client
5783         policy based on if the client is at the console
5784         (bus_policy_append_console_rule): New function for adding a
5785         console rule to a policy
5786         (bus_policy_merge): Handle console rule merging
5787
5788         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5789         where we check for console user files
5790         
5791         * dbus/dbus-sysdeps.c:
5792         (_dbus_file_exists): New function which checks if the given
5793         file exists
5794         (_dbus_user_at_console): New function which does the system
5795         specific process of checking if the user is at the console
5796
5797         * dbus/dbus-userdb.c:
5798         (_dbus_is_console_user): New function converts a UID to user name
5799         and then calls the system specific _dbus_user_at_console to 
5800         see if the user is at the console and therefor a console user
5801
5802 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5803
5804         * bus/config-parser.c (set_limit):
5805         * bus/dbus-daemon-1.1.in:
5806         * test/data/valid-config-files/many-rules.conf: set the
5807         max_match_rules_per_connection limt from the config file. 
5808
5809         * doc/busconfig.dtd: update the DTD.
5810
5811         * bus/driver.c: remove some unused variables.
5812
5813 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5814
5815         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5816         it's been replaced by dbus_g_bus_get
5817
5818 2004-08-23  Colin Walters  <walters@redhat.com>
5819
5820         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5821
5822         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5823
5824         * bus/selinux.c: Create a thread for policy reload notification.
5825         (bus_selinux_get_policy_root): Implement.
5826
5827         * bus/config-parser.c (start_busconfig_child)
5828         (bus_config_parser_content): Support SELinux-root relative
5829         inclusion.
5830
5831         * configure.in <HAVE_SELINUX>: Add -lpthread.
5832         
5833         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5834         (test_post_hook): Move memory checking into here.
5835         (test_pre_hook, test_post_hook): Move SELinux checks in
5836         here, but conditional on a DBUS_TEST_SELINUX environment
5837         variable.  Unfortunately we can't run the SELinux checks
5838         as a normal user, since they won't have any permissions
5839         for /selinux.  So this will have to be tested manually
5840         for now, until we have virtualization for most of
5841         libselinux.
5842         
5843 2004-08-23  Havoc Pennington  <hp@redhat.com>
5844
5845         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5846         drop supplementary groups, suggested by Steve Grubb
5847
5848 2004-08-20  Colin Walters  <walters@redhat.com>
5849
5850         * bus/config-parser.c (start_busconfig_child): Remove some unused
5851         variables.
5852         
5853         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5854         warning.
5855
5856 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5857
5858         * configure.in: If --enable-mono is passed in, if we can't find
5859         mono error out.
5860
5861         * mono/Makefile.am: Use /gacutil to install assemblies into the
5862         GAC and not /root.
5863
5864 2004-08-12  Havoc Pennington  <hp@redhat.com>
5865
5866         * NEWS: update for 0.22
5867
5868         * configure.in: release 0.22
5869
5870 2004-08-11  Colin Walters  <walters@redhat.com>
5871
5872         * tools/dbus-send.c (main, usage): Add --reply-timeout
5873         argument.
5874
5875 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5876
5877         * bus/bus.c (process_config_first_time_only): get rid of an unused
5878         DBusError that was causing a memoy leak (bug #989).
5879
5880         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5881         fix compilation on Solaris/Forte C (bug #974)
5882
5883         * bus/main.c (main): plug two minuscule memleaks.
5884
5885 2004-08-10  Havoc Pennington  <hp@redhat.com>
5886
5887         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5888
5889 2004-08-09  Havoc Pennington  <hp@redhat.com>
5890
5891         * COPYING: switch to Academic Free License version 2.1 instead of
5892         2.0, to resolve complaints about patent termination clause.
5893
5894 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5895
5896         * README: added documentation for the --enable-python 
5897         configure switch.
5898
5899 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5900
5901         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5902         _unref in the SELinux support.
5903
5904         * doc/busconfig.dtd: update DTD for SELinux support.
5905
5906         * bus/config-loader-libxml.c: fix error handler and parser
5907         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5908
5909         * configure.in: remove the warning about libxml2.
5910
5911         * dbus/dbus-bus.c: silence doxygen warning.
5912
5913 2004-07-31  Colin Walters  <walters@redhat.com>
5914
5915         * configure.in: Move #error in SELinux check to its own line.
5916
5917 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5918
5919         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5920         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5921         dbus_error_set.
5922
5923         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5924         broken by the change in the _SET_OOM macros.
5925
5926 2004-07-31  Colin Walters  <walters@redhat.com>
5927
5928         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5929         BUS_SET_OOM.
5930
5931 2004-07-31  Colin Walters  <walters@redhat.com>
5932
5933         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5934         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5935         AC_MSG_CHECKING.
5936
5937 2004-07-24  Havoc Pennington  <hp@redhat.com>
5938
5939         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5940
5941         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5942         functionality
5943
5944         * configure.in: add --enable-selinux
5945         
5946         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5947
5948         * bus/main.c (main): initialize and shut down selinux
5949
5950         * bus/connection.c: store SELinux ID on each connection, to avoid 
5951         repeated getting of the string context and converting it into 
5952         an ID
5953
5954         * bus/bus.c (bus_context_get_policy): new accessor, though it
5955         isn't used
5956         (bus_context_check_security_policy): check whether the security
5957         context of sender connection can send to the security context of
5958         recipient connection
5959
5960         * bus/config-parser.c: add parsing for <selinux> and <associate>
5961         
5962         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5963         implement dbus_connection_get_unix_fd()
5964
5965         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5966         function, used by the selinux stuff
5967         
5968 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5969
5970         * bus/config-loader-libxml.c: complete the implementation of
5971         libxml backend for config file loader. Doesn't work with full OOM
5972         test yet. 
5973         
5974         * configure.in: change error when selecting libxml into a warning.
5975         
5976         * test/data/invalid-config-files: add two non-well-formed XML
5977         files. 
5978         
5979         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5980         
5981         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5982         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5983         be necessary to read all the buffer. (bug #894)
5984
5985         * bus/activation.c (bus_activation_activate_service): fix a
5986         potential assertion failure (bug #896). Small optimization in the
5987         case of auto-activation messages.
5988
5989         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5990         add test case for byte-through-vararg bug (#901). patch by Kimmo
5991         Hämäläinen. 
5992
5993 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5994
5995         * python/dbus.py:
5996         * python/dbus_bindings.pyx.in:
5997         Add dbus.init_gthreads (), allow emit_signal to pass
5998         arguments to the signal.
5999         
6000 2004-07-24  Havoc Pennington  <hp@redhat.com>
6001
6002         * AUTHORS: add some people, not really comprehensively, let me
6003         know if I missed you
6004
6005 2004-07-24  Havoc Pennington  <hp@redhat.com>
6006
6007         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6008         Owen
6009
6010         * test/Makefile.am (DIST_SUBDIRS): here also
6011
6012 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6013
6014         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6015         breaking build on Solaris, reported by Farhad Saberi on the ML.
6016
6017         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6018         va_arg invocation to account for integer promotion in the case of
6019         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6020
6021         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6022         _dbus_list_get_first_link, not _dbus_list_get_first.
6023
6024         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6025
6026         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6027         handler functions so that the asserts in _dbus_object_subtree_unref
6028         do not fail.
6029
6030         * dbus/dbus-transport-unix.c (do_reading):
6031         _dbus_transport_queue_messages return value is of type
6032         dbus_bool_t, not DBusDispatchStatus.
6033         
6034 2004-07-19  David Zeuthen  <david@fubar.dk>
6035
6036         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6037
6038         * bus/dispatch.c:
6039         (check_get_connection_unix_user): Debug says GetProperty; but the
6040         method is called GetConnectionUnixUser
6041         (check_get_connection_unix_process_id): New function
6042         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6043         also call check_get_connection_unix_process_id()
6044         
6045         * bus/driver.c:
6046         (bus_driver_handle_get_connection_unix_process_id): New function,
6047         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6048         interface
6049         
6050         * dbus/dbus-auth.c:
6051         (handle_server_data_external_mech): Set pid from the credentials
6052         obtained from the socket
6053         
6054         * dbus/dbus-connection.c:
6055         (dbus_connection_get_unix_process_id): New function
6056         
6057         * dbus/dbus-connection.h: 
6058         Add prototype for dbus_connection_get_unix_process_id
6059         
6060         * dbus/dbus-transport.c:
6061         (_dbus_transport_get_unix_process_id): New function
6062         
6063         * dbus/dbus-transport.h:
6064         Add prototype for _dbus_transport_get_unix_process_id
6065         
6066 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6067
6068         * dbus/dbus-message.c: Message counter fix, patch by Christian
6069         Hammond <chipx86@gnupdate.org>
6070
6071 2004-07-18  Seth Nickell  <seth@gnome.org>
6072
6073         * python/dbus.py:
6074         * python/dbus_bindings.pyx.in:
6075         * python/tests/test-client.py:
6076
6077         Add dbus.ByteArray and dbus_bindings.ByteArray
6078         types so that byte streams can be passed back.
6079
6080         Give jdahlin the heaps of credit that are so
6081         rightfully his.
6082         
6083 2004-07-12  Seth Nickell  <seth@gnome.org>
6084
6085         * python/dbus.py:
6086
6087         Add message argument to the default object_method_handler
6088         function.
6089         
6090         * python/dbus_bindings.pyx.in:
6091
6092         Automatically return NIL when passed an empty list
6093         (we can't pass back a list since lists are typed
6094         and we don't have any idea what type the the client
6095         intended the list to be... :-( )
6096         
6097 2004-07-10  Seth Nickell  <seth@gnome.org>
6098
6099         * python/examples/Makefile.am:
6100
6101         Fix distcheck breakage caused by new examples.
6102
6103 2004-07-10  Seth Nickell  <seth@gnome.org>
6104
6105         * python/dbus.py:
6106
6107         Add "message" argument to service-side dbus.Object
6108         methods. This will break existing services written
6109         using the python bindings, but will allow extraction
6110         of all the message information (e.g. who its from).
6111
6112         Add improved "object oriented" signal handling/emission.
6113         
6114         * python/examples/example-service.py:
6115
6116         Nix this example.
6117         
6118         * python/examples/example-signal-emitter.py:
6119         * python/examples/example-signal-recipient.py:
6120
6121         Two new examples that show how to emit and receive
6122         signals using the new APIs.
6123         
6124         * python/examples/example-signals.py:
6125         * python/examples/gconf-proxy-service.py:
6126         * python/examples/gconf-proxy-service2.py:
6127
6128         Add "message" argument to service methods.
6129
6130 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6131
6132         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6133         * dbus/bus.c (dbus_bus_get_unix_user)
6134         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6135         method of org.freedesktop.DBus interface.
6136
6137         * bus/dispatch.c: test case
6138
6139 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6140
6141         * python/Makefile.am: switched include directory from glib/ to dbus/
6142         since dbus-glib.h moved
6143  
6144 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6145
6146         * configure.in: prevent building the gcj stuff and libxml loader
6147         since they are broken.
6148
6149 2004-06-20  Havoc Pennington  <hp@redhat.com>
6150
6151         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6152         codes from the dbus error names
6153         
6154         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6155         as dbus/dbus-glib.h and that breakage is now visible due to 
6156         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6157         
6158         * glib/dbus-glib.h: s/gproxy/g_proxy/
6159
6160         * dbus/dbus-shared.h: new header to hold stuff shared with
6161         binding APIs
6162         
6163         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6164         than dbus-errors.h
6165
6166         * glib/dbus-glib.h (dbus_set_g_error): move to
6167         dbus-glib-lowlevel.h
6168
6169         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6170         of stuff to enable this
6171
6172         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6173
6174         * a bunch of other changes with the same basic "separate glib 
6175         bindings from dbus.h" theme
6176         
6177 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6178
6179         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6180
6181         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6182
6183 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6184
6185         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6186         the reply value of the ServiceExists message.
6187
6188 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6189
6190         * python/dbus_bindings.pyx.in: No longer need to parse path
6191         elements and pass them as arrays of strings.  The C API now
6192         accepts plain path strings.
6193         (_build_parsed_path): removed 
6194
6195 2004-06-07  Havoc Pennington  <hp@redhat.com>
6196
6197         * doc/TODO: remove auto-activation item since it's done; sort
6198         items by importance/milestone
6199
6200 2004-06-07  Havoc Pennington  <hp@redhat.com>
6201
6202         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6203         random signature when using REQUIRED_FIELDS (this hack won't work
6204         in the long term)
6205
6206         * dbus/dbus-message.c: change the signature to be a header field,
6207         instead of message->signature special-case string. Incremental
6208         step forward. Then we can fix up code to send the signature in the
6209         message, then fix up code to validate said signature, then fix up
6210         code to not put the typecodes inline, etc.
6211         (load_one_message): don't make up the signature after the fact
6212         (decode_header_data): require signature field for the known
6213         message types
6214
6215         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6216
6217         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6218
6219 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6220
6221         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6222
6223         * mono/Handler.cs: Updated to follow new path argument for
6224         (un-)registering objects.
6225
6226         * mono/example/Makefile.am:
6227         * mono/Makefile.am:
6228         * configure.in: Bumped required version for mono and use new -pkg
6229         syntax for deps
6230
6231 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6232
6233         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6234         registration functions take the path argument as char* instead of
6235         char**.
6236
6237         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6238         split off the path decompostion part of
6239         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6240         warnings. 
6241
6242         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6243         
6244 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6245  
6246         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6247         machine approach.  A state is implemented as a function that
6248         handles incoming events as specified for that state.
6249         
6250         * doc/dbus-specification.xml: Update auth protocol state machine
6251         specification to match implementation.  Remove some leftover
6252         base64 examples.
6253
6254 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6255
6256         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6257         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6258         quiet doxygen.
6259
6260         * Doxyfile.in: remove deprecated options.
6261
6262         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6263         glib/test-thread.h, glib/test-thread-client.c,
6264         glib/test-thread-server.c, glib/test-profile.c,
6265         glib/test-dbus-glib.c: remove these unused files.
6266
6267 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6268
6269         * dbus/dbus-object-tree.c
6270         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6271         non-fallback handlers (bug #684).
6272         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6273         (find_subtree_recurse): report wether the returned subtree is an
6274         exact match or a "fallback" match higher up in the tree.
6275         (object_tree_test_iteration): update test case.
6276
6277 2004-06-01  Seth Nickell  <seth@gnome.org>
6278
6279         * python/dbus_bindings.pyx.in:
6280         * python/tests/test-client.py:
6281
6282         Round off basic type support. Add dicts (yay!), and 
6283         remaining array types.
6284
6285         Make MessageIter more general so it works for dicts too.
6286
6287         Mark all loop variables as C integers.
6288         
6289 2004-05-31  Havoc Pennington  <hp@redhat.com>
6290
6291         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6292         "in" before "out"
6293
6294         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6295
6296         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6297         option that runs the tests, and start filling in some code
6298         including for starters just dumping the interfaces to stdout
6299
6300         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6301
6302         * test/data/valid-introspection-files/lots-of-types.xml: test of
6303         an example introspection file
6304
6305         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6306         "node" (I think...)
6307
6308 2004-05-31  Seth Nickell  <seth@gnome.org>
6309
6310         * python/dbus_bindings.pyx.in:
6311         * python/tests/test-client.py:
6312
6313         Test Suite: 1
6314         Python Bindings: 0
6315
6316         Fix string array memory trashing bug... oops...
6317
6318 2004-05-30  Seth Nickell  <seth@gnome.org>
6319
6320         * python/dbus.py:
6321
6322         Add a nicer-but-less-flexible alternate API for handling 
6323         calls to virtual objects in dbus.ObjectTree.
6324
6325         Screw up the argument order to the dbus.Object constructor
6326         for consistency with dbus.ObjectTree (and to make dbus_methods
6327         optional for future extension)
6328         
6329         * python/examples/Makefile.am:
6330         * python/examples/gconf-proxy-service.py:
6331         * python/examples/gconf-proxy-service2.py:
6332
6333         Alternate implementation of gconf-proxy-service using the
6334         nicer dbus.ObjectTree API.
6335         
6336         * python/examples/example-service.py:
6337         * python/tests/test-server.py
6338
6339         Reverse the argument order to deal with dbus.Object constructor
6340         changes.
6341         
6342 2004-05-30  Seth Nickell  <seth@gnome.org>
6343
6344         * python/examples/example-client.py:
6345         * python/examples/example-service.py:
6346
6347         Take it back. Lists seem to work but they're broken
6348         in the test suite. Make the base examples use
6349         lists (works fine).
6350
6351 2004-05-30  Seth Nickell  <seth@gnome.org>
6352
6353         * python/dbus_bindings.pyx.in:
6354         * python/tests/test-client.py:
6355
6356         Add some more tests and fix errors that crop up.
6357         Unfortunately, currently it seems like marshalling
6358         and unmarshalling of lists is completely broken :-(
6359
6360 2004-05-30  Seth Nickell  <seth@gnome.org>
6361
6362         * python/dbus_bindings.pyx.in:
6363
6364         Add support for ObjectPath type.
6365
6366         * python/dbus.py:
6367
6368         Refactor message handling code to a common function.
6369         
6370         * python/tests/test-client.py:
6371         * python/tests/test-server.py:
6372
6373         Add tests that check to make sure values of all types
6374         can be echoed from a service w/o mangling.
6375         
6376 2004-05-29  Seth Nickell  <seth@gnome.org>
6377
6378         * python/dbus.py:
6379
6380         Add ObjectTree class which allows implementation
6381         of trees of "virtual" objects. Basically the python
6382         wrapper for "register_fallback".
6383         
6384         * python/examples/Makefile.am
6385         * python/examples/gconf-proxy-client.py:
6386         * python/examples/gconf-proxy-service.py:
6387
6388         Implement a simple GConf proxy service that supports
6389         get/set on string and int GConf keys using the ObjectTree.
6390         
6391 2004-05-29  Seth Nickell  <seth@gnome.org>
6392
6393         * python/dbus.py:
6394         * python/examples/example-client.py:
6395         * python/examples/example-service.py:
6396         * python/examples/list-system-services.py:
6397
6398         Add SessionBus, SystemBus and ActivationBus classes
6399         so you don't need to know the special little BUS_TYPE
6400         flag.
6401         
6402 2004-05-29  Havoc Pennington  <hp@redhat.com>
6403
6404         * bus/config-parser.c (process_test_valid_subdir): temporarily
6405         stop testing config parser OOM handling, since expat has issues
6406         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6407
6408         * bus/dbus-daemon-1.1.in: change requested_reply to
6409         send_requested_reply/receive_requested_reply so we can send the
6410         replies, not just receive them.
6411
6412         * bus/config-parser.c: parse the new
6413         send_requested_reply/receive_requested_reply
6414
6415         * bus/policy.c (bus_client_policy_check_can_send): add
6416         requested_reply argument and use it
6417
6418         * bus/bus.c (bus_context_check_security_policy): pass through
6419         requested_reply status to message send check
6420
6421         * bus/system.conf.in: adapt to requested_reply change
6422         
6423 2004-05-28  Havoc Pennington  <hp@redhat.com>
6424
6425         * test/glib/test-service-glib.c (main): remove unused variable
6426
6427         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6428
6429         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6430         from the enum, no longer in use.
6431
6432         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6433         works right.
6434
6435         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6436         whether error_name passed in is a valid error name.
6437
6438 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6439
6440         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6441         OBJECT_PATH and OBJECT_PATH_ARRAY
6442
6443 2004-05-28  Seth Nickell  <seth@gnome.org>
6444
6445         * python/examples/Makefile.am:
6446
6447         Forget to add Makefile.am. Do not pass go.
6448
6449 2004-05-28  Michael Meeks  <michael@ximian.com>
6450
6451         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6452         fix no int64 case.
6453
6454         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6455
6456         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6457         (_dbus_message_iter_get_basic_type_array): impl.
6458         drastically simplify ~all relevant _get methods to use these.
6459         (_dbus_message_iter_append_basic_array),
6460         (dbus_message_iter_append_basic): impl
6461         drastically simplify ~all relevant _append methods to use these.
6462
6463         * dbus/dbus-message-builder.c (parse_basic_type) 
6464         (parse_basic_array, lookup_basic_type): impl.
6465         (_dbus_message_data_load): prune scads of duplicate /
6466         cut & paste coding.
6467
6468         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6469         (_dbus_demarshal_basic_type): implement,
6470         (demarshal_and_validate_len/arg): beef up debug.
6471         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6472
6473 2004-05-27  Seth Nickell  <seth@gnome.org>
6474
6475         * configure.in:
6476         * python/Makefile.am:
6477
6478         Include the example python apps in the tarball.
6479         
6480         * python/examples/list-system-services.py
6481
6482         Add a python new example that fetches the list of services
6483         from the system bus.
6484         
6485 2004-05-27  Seth Nickell  <seth@gnome.org>
6486
6487         * python/dbus.py:
6488         * python/dbus_bindings.pyx.in:
6489
6490         Fix failure to notify that a signal was not handled,
6491         resulted in hung functions.
6492         
6493 2004-05-25  Colin Walters  <walters@redhat.com>
6494
6495         * tools/dbus-monitor.c (main): Monitor all types of messages.
6496
6497 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6498
6499         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6500         which unregisters the object path and disposes the handler.
6501
6502 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6503  
6504         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6505          
6506         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6507         operands to && so we call dbus_message_iter_next () for the last
6508         argument also.
6509
6510 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6511
6512         * dbus/dbus-object-tree.c
6513         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6514         children even if the requested path isn't registered.
6515         (object_tree_test_iteration): test object_tree_list_registered.
6516
6517         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6518         it to 0.
6519         
6520 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6521
6522         * doc/TODO: Remove resolved items.
6523
6524         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6525         field.
6526         
6527         * bus/connection.c (bus_connections_expect_reply): Enforce the
6528         per-connection limit on pending replies.
6529         
6530         Patch from Jon Trowbridge <trow@ximian.com>:
6531  
6532         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6533         up a watch that triggers a config reload when one end of the pipe
6534         becomes readable.
6535         (signal_handler): Instead of doing the config reload in our SIGHUP
6536         handler, just write to the reload pipe and let the associated
6537         watch handle the reload when control returns to the main loop.
6538  
6539         * bus/driver.c (bus_driver_handle_reload_config): Added.
6540         Implements a ReloadConfig method for requesting a configuration
6541         file reload via the bus driver.
6542  
6543 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6544
6545         * HACKING: Updated release instructions concerning the wiki page.
6546
6547 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6548
6549         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6550         filter against auth->allowed_mechs; we only add allowed mechs in
6551         record_mechanisms().
6552  
6553         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6554         ALLOWED_MECHS to auth-script format so we can set the list of
6555         allowed mechanisms.
6556  
6557         * data/auth/client-out-of-mechanisms.auth-script: New test to
6558         check client disconnects when it is out of mechanisms to try.
6559  
6560         * dbus/dbus-auth.c (process_command): Remove check for lines
6561         longer that 1 MB; we only buffer up maximum 16 kB.
6562  
6563         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6564         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6565         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6566         assume there might be unused bytes.
6567  
6568         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6569         client-out-of-mechs, it is handled in process_reject(). Move check
6570         for max failures to send_rejected(), as it's a server-only thing.
6571
6572         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6573         send_auth(), send_data(), send_rejected(), send_error(),
6574         send_ok(), send_begin() and send_cancel().
6575
6576 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6577
6578         Remove base64 encoding, replace with hex encoding. Original patch
6579         from trow@ximian.com, added error handling.
6580
6581         * dbus/dbus-string.c (_dbus_string_base64_encode)
6582         (_dbus_string_base64_decode): Remove.
6583         (_dbus_string_hex_decode): Add end_return argument so we can
6584         distinguish between OOM and invalid hex encoding.
6585         (_dbus_string_test): Remove base64 tests and add test case for
6586         invalid hex.
6587
6588         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6589         Replace base64 with hex.
6590
6591         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6592         for invalid hex encoded data in auth protocol.
6593
6594 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6595
6596         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6597         leak.
6598
6599 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6600
6601         * mono/dbus-sharp.dll.config.in: Added for GAC
6602         * mono/dbus-sharp.snk: Added for GAC
6603         * mono/Assembly.cs.in: Added for GAC
6604         * mono/Makefile.am: Changes for GAC installation        
6605         * configure.in: Added refs for dbus-sharp.dll.config.in and
6606         Assembly.cs.in. More fixes for mono testing
6607         * mono/example/Makefile.am: Changed var to CSC
6608         * Makefile.am: Changed flag name to DBUS_USE_CSC
6609
6610 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6611
6612         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6613         * mono/doc/*: Added documentation framework
6614         * configure.in: Added monodoc check
6615         * README: Added description of mono configure flags
6616
6617 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6618
6619         * doc/dbus-specification.xml: Added a "Required" column to the 
6620         header fields table and changed the "zero or more" verbage in
6621         the above paragraph to read "The header must contain the required 
6622         named header fields and zero or more of the optional named header 
6623         fields".
6624         * test/data/invalid-messages/*.message: Added the required PATH 
6625         named header field to the tests so that they don't fail on 
6626         'Missing path field'
6627
6628 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6629
6630         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6631         the stack by implicitly defining variable and parameter types and
6632         removing the hack of defining C pointers as python objects and later
6633         casting them.
6634
6635 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6636
6637         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6638
6639 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6640
6641         * mono/DBusType/Dict.cs: Handle empty dicts
6642         * mono/DBusType/Array.cs: Handle empty arrays
6643         * mono/Arguments.cs: Handle empty arguments
6644
6645 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6646
6647         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6648         field
6649
6650 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6651
6652         * test/data/valid-messages/standard-*.message: Update message
6653         test scripts to new header field names.
6654
6655 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6656
6657         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6658         overflow to times_we_did_each_thing array which would chop off the
6659         first character of the failure_dir string. Increased the size of
6660         the array to 7 to reflect the number of random mutation functions
6661         we have.
6662
6663 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6664
6665         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6666         unix_server->watch here, it is unreffed in disconnect.
6667         (_dbus_server_new_for_tcp_socket): convert NULL host to
6668         "localhost" here so we don't append NULL to address.
6669         
6670         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6671         various addresses, including tcp with no explicit host.
6672
6673 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6674
6675         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6676         fix incorrect setting of .name_offset in the HeaderField (it was
6677         off by two bytes, positioned right after the name and typecode)
6678
6679         * bus/bus.c (bus_context_new, bus_context_unref): test before
6680         calling dbus_server_free_data_slot and _dbus_user_database_unref
6681         in case of an error.
6682
6683         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6684         by libdbus-gtool.
6685
6686 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6687
6688         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6689         _dbus_poll() instead of select().
6690
6691 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6692
6693         * bus/main.c (signal_handler): Reload the configuration files
6694         on SIGHUP.
6695         (main): Set up our SIGHUP handler.
6696
6697         * bus/bus.c (struct BusContext): Store the config file, user and
6698         fork flag in the BusContext.
6699         (process_config_first_time_only): Added.  Contains the code
6700         (previously in bus_context_new) for setting up the BusContext from
6701         the BusConfigParser that should only be run the first time the
6702         config files are read.
6703         (process_config_every_time): Added.  Contains the code (previously
6704         in bus_context_new) for setting up the BusContext from the
6705         BusConfigParser that should be run every time the config files are
6706         read.
6707         (load_config): Added.  Builds a BusConfigParser from the config
6708         files and passes the resulting structure off to
6709         process_config_first_time_only (assuming this is the first time)
6710         and process_config_every_time.
6711         (bus_context_new): All of the config-related code has been moved
6712         to process_config_first_time_only and process_config_every_time.
6713         Now this function just does the non-config-related initializations
6714         and calls load_config.
6715         (bus_context_reload_config): Added.
6716
6717 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6718
6719         * bus/driver.c (bus_driver_handle_get_service_owner):
6720         implement a GetServiceOwner method.
6721         * doc/dbus-specification.xml: document it.
6722         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6723         
6724         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6725         implement, using the bus GetServiceOwner method.
6726
6727         * test/glib/test-dbus-glib.c:
6728         use dbus_gproxy_new_for_service_owner so that we can receive the
6729         signal. 
6730
6731 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6732
6733         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6734         dbus/dbus-message.c, dbus/dbus-protocol.h
6735         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6736
6737         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6738         dbus/dbus-message.c, dbus/dbus-protocol.h
6739         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6740
6741         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6742         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6743         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6744
6745         * doc/dbus-specification.xml (Header Fields Table):
6746         s/SERVICE/DESTINATION
6747         s/SENDER_SERVICE/SENDER
6748
6749
6750 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6751
6752         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6753         a few seconds.
6754
6755 2004-04-13  Michael Meeks  <michael@ximian.com>
6756
6757         * glib/dbus-gobject.c (handle_introspect): split out
6758         (introspect_properties): this.
6759         (handle_introspect): implement this.
6760
6761         * test/glib/Makefile.am: use the absolute path so the bus
6762         daemon's chdir ("/") doesn't kill us dead.
6763
6764         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6765
6766 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6767
6768         * bus/config-parser.c (struct BusConfigParser): Added
6769         included_files field.
6770         (seen_include): Added.  Checks whether or not a file has already
6771         been included by any parent BusConfigParser.
6772         (bus_config_parser_new): Copy the parent's included_files.
6773         (include_file): Track which files have been included, and fail on
6774         circular inclusions.
6775         (process_test_valid_subdir): Changed printf to report if we are
6776         testing valid or invalid conf files.
6777         (all_are_equiv): Changed printf to be a bit clearer about
6778         what we are actually doing.
6779         (bus_config_parser_test): Test invalid configuration files.
6780
6781 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6782
6783         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6784         argument.  If non-null, the newly-constructed BusConfigParser will
6785         be initialized with the parent's BusLimits instead of the default
6786         values.
6787         (include_file): When including a config file, pass in
6788         the current parser as the parent and then copy the BusLimits
6789         from the included BusConfigParser pack to the current parser.
6790         (process_test_valid_subdir): Renamed from process_test_subdir.
6791         (process_test_equiv_subdir): Added.  Walks through a directory,
6792         descending into each subdirectory and loading the config files
6793         it finds there.  If any subdirectory contains two config files
6794         that don't produce identical BusConfigParser structs, fail.
6795         For now, the BusConfigParser's BusPolicies are not compared.
6796         (bus_config_parser_test): Call both process_test_valid_subdir and
6797         process_test_equiv_subdir.
6798
6799         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6800         argument and pass it along to the call to bus_config_parser_new.
6801         Also made a few small changes to allow this code to compile.
6802
6803         * bus/config-loader-expat.c (bus_config_load): Take a parent
6804         argument and pass it along to the call to bus_config_parser_new.
6805
6806         * bus/bus.c (bus_context_new): Load the config file
6807         with a NULL parent argument.
6808
6809 2004-03-29  Michael Meeks  <michael@ximian.com>
6810
6811         * glib/dbus-gobject.c (introspect_properties): split
6812         out, fix mangled 'while' flow control.
6813         (introspect_signals): implement.
6814         (handle_introspect): update.
6815
6816 2004-03-29  Michael Meeks  <michael@ximian.com>
6817
6818         * glib/dbus-gobject.c (set_object_property): split out / 
6819         re-work, use the property type, and not the message type(!)
6820         (get_object_property): ditto.
6821
6822         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6823         (dbus_gvalue_marshal): make this code re-usable, needed
6824         for signals too, also on both proxy and server side.
6825         Re-write for more efficiency / readability.
6826
6827 2004-03-29  Michael Meeks  <michael@ximian.com>
6828
6829         * dbus/dbus-message.c
6830         (dbus_message_new_error_printf): impl.
6831
6832         * dbus/dbus-connection.c
6833         (dbus_connection_unregister_object_path): fix warning.
6834
6835         * configure.in: fix no-mono-installed situation.
6836
6837 2004-03-27  Havoc Pennington  <hp@redhat.com>
6838
6839         Patch from Timo Teräs:
6840         
6841         * tools/dbus-send.c (main): if --print-reply, assume type is
6842         method call; support boolean type args
6843         
6844         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6845         bunch of memleak and logic bugs
6846         
6847 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6848
6849         * mono/Arguments.cs:
6850         * mono/Introspector.cs:
6851         * mono/Handler.cs:
6852         * mono/InterfaceProxy.cs:
6853         * mono/Message.cs
6854         * mono/ProxyBuilder.cs:
6855         * mono/Service.cs:
6856         Added InterfaceProxy class to avoid building proxies for every
6857         object.
6858
6859         * dbus-message.h:
6860         * dbus-message.c (dbus_message_append_args_valist)
6861         (dbus_message_iter_get_object_path)
6862         (dbus_message_iter_get_object_path_array)
6863         (dbus_message_iter_append_object_path)
6864         (dbus_message_iter_append_object_path_array):
6865         Added object_path iter functions to handle OBJECT_PATH arguments
6866         
6867 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6868
6869         First checkin of mono bindings.
6870         * configure.in:
6871         * Makefile.am:
6872         Build stuff for the bindings
6873         * dbus-sharp.pc.in: Added for pkgconfig
6874         
6875 2004-03-21  Havoc Pennington  <hp@redhat.com>
6876
6877         * test/test-service.c (main): remove debug spew
6878
6879 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6880
6881         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6882         arrays
6883
6884         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6885         (dbus_message_iter_init_array_iterator)
6886         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6887         indicate whether the iterator is empty
6888
6889         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6890         warnings
6891
6892 2004-03-19  Havoc Pennington  <hp@redhat.com>
6893
6894         * NEWS: 0.21 updates
6895
6896         * configure.in: 0.21
6897
6898         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6899         
6900         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6901         you don't need pyrex to make dist
6902
6903         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6904         sources; run moc
6905         
6906 2004-03-18  Richard Hult  <richard@imendio.com>
6907
6908         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6909         (dbus_message_set_auto_activation): Add doxygen docs.
6910
6911 2004-03-16  Richard Hult  <richard@imendio.com>
6912
6913         * bus/activation.c: (bus_activation_service_created),
6914         (bus_activation_send_pending_auto_activation_messages),
6915         (bus_activation_activate_service):
6916         * bus/activation.h:
6917         * bus/dispatch.c: (bus_dispatch),
6918         (check_nonexistent_service_auto_activation),
6919         (check_service_auto_activated),
6920         (check_segfault_service_auto_activation),
6921         (check_existent_service_auto_activation), (bus_dispatch_test):
6922         * bus/driver.c: (bus_driver_handle_activate_service):
6923         * bus/services.c: (bus_registry_acquire_service):
6924         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6925         (dbus_message_get_auto_activation):
6926         * dbus/dbus-message.h:
6927         * dbus/dbus-protocol.h: Implement auto-activation.
6928         
6929         * doc/dbus-specification.xml: Add auto-activation to the spec.
6930
6931 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6932
6933         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6934         fix a bug with CUSTOM types.
6935
6936         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6937         a unit test for this bug (used to fail).
6938
6939 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6940
6941         * bus/activation.c:
6942         (babysitter_watch_callback): notify all pending activations waiting for
6943           the same exec that the activation failed.
6944         (bus_activation_activate_service): shortcut the activation if we 
6945           already waiting for the same executable to start up.
6946
6947 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6948
6949         * bus/activation.c: 
6950         - Added service file reloading. 
6951           Each service files directory is kept in an hash table in 
6952           BusActivation and each BusActivationEntry knows what .service-file it
6953           was read from. So when you try to activate a service the bus will 
6954           check if it's been updated, removed or if new .service-files has 
6955           been installed.
6956         - Test code at the bottom for the service file reloading.
6957         * bus/test-main.c: (main):
6958         * bus/test.h:
6959         - added service reloading test.
6960         * dbus/dbus-sysdeps.c: 
6961         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6962
6963 2004-03-08  Michael Meeks  <michael@ximian.com>
6964
6965         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6966         bail immediately if disconnected, to avoid busy loop.
6967
6968         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6969         cleanup cut/paste/inefficiency.
6970
6971 2004-03-01  David Zeuthen  <david@fubar.dk>
6972
6973         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6974         bug where args were used twice. This bug resulted in a segfault
6975         on a Debian/PPC system when starting the messagebus daemon. Include
6976         dbus-sysdeps.h for DBUS_VA_COPY
6977
6978         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6979
6980         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6981         appropriate va_copy implementation. From GLib
6982         
6983 2004-02-24  Joe Shaw  <joe@ximian.com>
6984
6985         * bus/services.c (bus_registry_acquire_service): We need to pass
6986         in the service name to dbus_set_error() to prevent a crash.
6987
6988 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6989
6990         * AUTHORS: Reveal my True identity.
6991
6992 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6993
6994         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6995         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6996
6997 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6998
6999         * doc/TODO: Added not about better error check of configuration files.
7000
7001 2003-12-02  Richard Hult  <richard@imendio.com>
7002
7003         * Update AFL version to 2.0 throughout the source files to reflect
7004         the update that was done a while ago.
7005
7006 2003-12-02  Richard Hult  <richard@imendio.com>
7007
7008         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7009         wrote_dict_key to FALSE on the iter that the dict is appended to,
7010         just like when appending other types. Fixes a bug where a dict
7011         couldn't be put inside a dict.
7012         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7013         (message_iter_test, _dbus_message_test): Add test case for dict
7014         inside dict.
7015
7016 2003-12-01  David Zeuthen  <david@fubar.dk>
7017
7018         * python/dbus.py: Add the actual message when calling the reciever
7019         of a signal such that parameters can be inspected. Add the method
7020         remove_signal_receiver
7021         
7022 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7023
7024         * bus/*.[ch]:
7025         * dbus/*.[ch]:
7026         * glib/*.[ch]: Made ref functions return the pointer
7027
7028 2003-11-25  Zack Rusin  <zack@kde.org>
7029
7030         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7031
7032         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7033         wrappers,
7034
7035         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7036         the Integrator and to better fit with the server,
7037
7038 2003-11-24  Zack Rusin  <zack@kde.org>
7039
7040         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7041         the integrator handles it now
7042
7043         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7044         since QTimer wasn't really meant to be used the way DBusTimeout is
7045
7046 2003-11-24  Zack Rusin  <zack@kde.org>
7047
7048         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7049         Integrator class which integrates D-BUS with the Qt event loop,
7050
7051         * qt/connection.h, qt/connection.cpp: Move all the code which
7052         was dealing with D-BUS integration to the Integrator class,
7053         and start using Integrator,
7054
7055 2003-11-23  Zack Rusin  <zack@kde.org>
7056
7057         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7058         wrapper
7059
7060         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7061         switching namespaces to DBusQt, reworking the class,
7062
7063         * Makefile.cvs: switching dependencies so that it matches KDE 
7064         schematics,
7065         
7066         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7067         the library
7068
7069 2003-11-19  Havoc Pennington  <hp@redhat.com>
7070
7071         * NEWS: update
7072
7073         * configure.in: bump version to 0.20
7074
7075         * configure.in (have_qt): add yet another place to look for qt
7076         (someone hand trolltech a .pc file...)
7077
7078 2003-11-01  Havoc Pennington  <hp@redhat.com>
7079
7080         * doc/dbus-specification.xml: add state machine docs on the auth
7081         protocol; just a first draft, I'm sure it's wrong.      
7082
7083 2003-10-28  David Zeuthen  <david@fubar.dk>
7084
7085         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7086         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7087         
7088 2003-10-28  Havoc Pennington  <hp@redhat.com>
7089
7090         * dbus/dbus-message.c (get_next_field): delete unused function
7091
7092 2003-10-28  Havoc Pennington  <hp@redhat.com>
7093
7094         * bus/expirelist.c (do_expiration_with_current_time): detect
7095         failure of the expire_func due to OOM
7096
7097         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7098
7099         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7100         NoReply error that's now created by the bus when the service exits
7101
7102 2003-10-28  Havoc Pennington  <hp@redhat.com>
7103
7104         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7105         tests for set_path, set_interface, set_member, etc.
7106
7107         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7108
7109         * dbus/dbus-message.c (set_string_field): always just delete and
7110         re-append the field; accept NULL for deletion
7111         (re_align_fields_recurse): reimplement
7112         
7113 2003-10-26  Havoc Pennington  <hp@redhat.com>
7114
7115         * dbus/dbus-connection.c: fix docs to properly describe the
7116         disconnected message
7117         (_dbus_connection_notify_disconnected): remove this function; 
7118         we can't synchronously add the disconnected message, we have to 
7119         do it after we've queued any remaining real messages
7120         (_dbus_connection_get_dispatch_status_unlocked): queue the
7121         disconnect message only if the transport has finished queueing all
7122         its real messages and is disconnected.
7123         (dbus_connection_disconnect): update the dispatch status here
7124
7125 2003-10-22  Havoc Pennington  <hp@redhat.com>
7126
7127         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7128
7129         * bus/connection.c (bus_transaction_send_from_driver): set the
7130         destination to the connection's base service
7131
7132 2003-10-20  Havoc Pennington  <hp@redhat.com>
7133
7134         hmm, make check is currently not passing.
7135         
7136         * doc/dbus-specification.xml: add requirement that custom type
7137         names follow the same rules as interface names.
7138
7139         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7140         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7141         'map'
7142
7143         * doc/dbus-specification.xml: update type codes to match
7144         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7145         CUSTOM. Add type OBJECT_PATH to the spec.
7146
7147 2003-10-17  Havoc Pennington  <hp@redhat.com>
7148
7149         * bus/driver.c (create_unique_client_name): use "." as separator
7150         in base service names instead of '-'
7151
7152         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7153         byte at the end of the string
7154
7155         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7156         optimization macros since string validation seems to be a slow
7157         point.
7158         
7159         * doc/dbus-specification.xml: restrict valid
7160         service/interface/member/error names. Add test suite code for the
7161         name validation.
7162
7163         * dbus/dbus-string.c: limit service/interface/member/error names 
7164         to [0-9][A-Z][a-z]_
7165
7166         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7167         format arg to verbose spew
7168
7169         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7170         memory, return instead of g_error
7171
7172         * test/test-service.c (path_message_func): support emitting a
7173         signal on request
7174
7175         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7176         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7177         assuming the activation bus was the session bus so that services
7178         started manually will still register.
7179         (init_connections_unlocked): fix so that in OOM situation we get
7180         the same semantics when retrying the function
7181         
7182         * test/test-service.c (main): change to use path registration, to
7183         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7184         than DBUS_BUS_SESSION
7185
7186 2003-10-16  Havoc Pennington  <hp@redhat.com>
7187
7188         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7189
7190         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7191         coverage of the tests
7192         (coverage-report.txt): don't move the .da and .bbg files around
7193
7194 2003-10-16  Havoc Pennington  <hp@redhat.com>
7195
7196         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7197         to put there
7198
7199 2003-10-16  Havoc Pennington  <hp@redhat.com>
7200
7201         * bus/connection.c (bus_pending_reply_expired): either cancel or
7202         execute, not both
7203         (bus_connections_check_reply): use unlink, not remove_link, as we
7204         don't want to free the link; fixes double free mess
7205
7206         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7207         where no reply was received
7208
7209         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7210         fix a refcount leak
7211
7212         * bus/signals.c (match_rule_matches): add special cases for the
7213         bus driver, so you can match on sender/destination for it.
7214
7215         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7216         DBUS_PRINT_BACKTRACE is set
7217
7218         * dbus/dbus-internals.c: add pid to assertion failure messages
7219
7220         * dbus/dbus-connection.c: add message type code to the debug spew
7221
7222         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7223         sender=foo not service=foo
7224
7225         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7226         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7227         DBUS_ACTIVATION_ADDRESS instead
7228
7229         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7230         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7231
7232         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7233         context struct
7234
7235         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7236         (dbus_message_iter_get_object_path_array): new function (half
7237         finished, disabled for the moment)
7238         
7239         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7240         DBUS_MESSAGE_TYPE_ERROR
7241
7242         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7243         avoid redirecting stderr to /dev/null
7244         (babysit): close stdin if not doing the "exit_with_session" thing
7245
7246         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7247         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7248         stdout/stdin, so things don't get confused
7249         
7250         * bus/system.conf.in: fix to allow replies, I modified .conf
7251         instead of .conf.in again.
7252
7253 2003-10-14  David Zeuthen  <david@fubar.dk>
7254
7255         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7256         argtype to arg_type when raising unknown arg type exception.
7257         Changed type list to reflect the changes in dbus-protocol.h so 
7258         the bindings actually work.
7259
7260 2003-10-14  Havoc Pennington  <hp@redhat.com>
7261
7262         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7263         to have a bug keeping it from outputting the .da files sometimes
7264         (string_get_string): don't append garbage nul bytes to the string.
7265
7266 2003-10-15  Seth Nickell  <seth@gnome.org>
7267
7268         * python/Makefile.am:
7269
7270         Include dbus_h_wrapper.h in the dist tarball.
7271
7272 2003-10-14  Havoc Pennington  <hp@redhat.com>
7273
7274         * bus/bus.c (bus_context_check_security_policy): revamp this to
7275         work more sanely with new policy-based requested reply setup
7276
7277         * bus/connection.c (bus_transaction_send_from_driver): set bus
7278         driver messages as no reply
7279
7280         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7281         requested_reply attribute on allow/deny rules
7282
7283         * bus/system.conf: add <allow requested_reply="true"/>
7284
7285         * bus/driver.c (bus_driver_handle_message): fix check for replies
7286         sent to the bus driver, which was backward. How did this ever work
7287         at all though? I think I'm missing something.
7288
7289         * dbus/dbus-message.c (decode_header_data): require error and
7290         method return messages to have a reply serial field to be valid
7291         (_dbus_message_loader_queue_messages): break up this function;
7292         validate that reply serial and plain serial are nonzero; 
7293         clean up the OOM/error handling.
7294         (get_uint_field): don't return -1 from this
7295         (dbus_message_create_header): fix signed/unsigned bug
7296
7297         * bus/connection.c (bus_connections_expect_reply): save serial of
7298         the incoming message, not reply serial
7299
7300 2003-10-14  Havoc Pennington  <hp@redhat.com>
7301
7302         * bus/connection.c: implement pending reply tracking using
7303         BusExpireList
7304
7305         * bus/bus.c (bus_context_check_security_policy): verify that a
7306         reply is pending in order to allow a reply to be sent. Deny 
7307         messages of unknown type.
7308
7309         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7310
7311         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7312         (bus_context_get_reply_timeout): new
7313
7314 2003-10-13  Seth Nickell  <seth@gnome.org>
7315
7316         * python/Makefile.am:
7317
7318         Pass "make distcheck": remove a couple files from DIST_FILES
7319         that weren't included in the final version.
7320
7321 2003-10-12  Havoc Pennington  <hp@pobox.com>
7322
7323         Added test code that 1) starts an actual bus daemon and 2) uses
7324         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7325         more testing possible, but this is the basic framework.
7326         
7327         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7328         empty proxy lists from the proxy list hash
7329
7330         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7331         couple of return_if_fail checks
7332
7333         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7334         to allocate, so everything is cleared to NULL as it should be.
7335
7336         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7337         source as data to dbus_connection_set_timeout_functions() as the 
7338         timeout functions expected
7339
7340         * test/glib/run-test.sh: add a little script to start up a message
7341         bus and run tests using it
7342
7343         * tools/dbus-launch.1: updates
7344
7345         * tools/dbus-launch.c (main): add --config-file option
7346
7347         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7348         that could never be reached.
7349
7350         * dbus/dbus-message.c (dbus_message_new_method_return) 
7351         (dbus_message_new_error, dbus_message_new_signal): set the
7352         no-reply-expected flag on all these. Redundant, but may
7353         as well be consistent.
7354
7355 2003-10-11  Havoc Pennington  <hp@pobox.com>
7356
7357         * test/decode-gcov.c (function_solve_graph): make broken block
7358         graph a nonfatal error since it seems to be broken. Need to debug
7359         this.
7360
7361         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7362         can't just check type > INVALID < LAST anymore
7363
7364         * dbus/dbus-message.c (dbus_message_get_signature): new function
7365         (dbus_message_has_signature): new function
7366         (struct DBusMessage): add signature field (right now it isn't sent
7367         over the wire, just generated on the fly)
7368         (dbus_message_copy): copy the signature, and init strings to
7369         proper length to avoid some reallocs
7370         (dbus_message_iter_init_array_iterator): return void, since it
7371         can't fail
7372         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7373         (_dbus_message_loader_queue_messages): add silly temporary hack to
7374         fill in message->signature on load
7375
7376         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7377         characters, so they are relatively human-readable.
7378
7379 2003-10-11  Havoc Pennington  <hp@pobox.com>
7380
7381         * dbus/dbus-message.c (_dbus_message_test): add more test
7382         coverage, but #if 0 for now since they uncover a bug 
7383         not fixed yet; I think in re_align_field_recurse()
7384         (re_align_field_recurse): add FIXME about broken assertion
7385
7386         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7387
7388         * bus/connection.c: share a couple code bits with expirelist.c
7389
7390         * bus/expirelist.h, bus/expirelist.c: implement a generic
7391         expire-items-after-N-seconds facility, was going to share between
7392         expiring connections and replies, decided not to use for expiring
7393         connections for now.
7394
7395         * COPYING: include AFL 2.0 (still need to change all the file headers)
7396
7397 2003-10-09  Havoc Pennington  <hp@redhat.com>
7398
7399         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7400         gcc 3.3. Not that we do anything about it yet.
7401
7402         * bus/signals.c (bus_match_rule_parse): impose max length on the
7403         match rule text
7404
7405         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7406
7407 2003-10-09  Havoc Pennington  <hp@redhat.com>
7408
7409         Make matching rules theoretically work (add parser).
7410         
7411         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7412         the case where destination is explicitly specified as bus driver
7413         and someone else is eavesdropping.
7414         
7415         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7416         definition of eavesdropping and assertion
7417
7418         * tools/dbus-send.c (main): use dbus_message_type_from_string
7419
7420         * bus/signals.c (bus_match_rule_parse): implement
7421
7422         * dbus/dbus-message.c (dbus_message_type_from_string): new
7423
7424         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7425
7426 2003-10-02  Havoc Pennington  <hp@pobox.com>
7427
7428         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7429         dbus_gproxy_oneway_call
7430
7431         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7432         (dbus_server_setup_with_g_main): fix to allow calling them more
7433         than once on the same args
7434         (dbus_bus_get_with_g_main): new function
7435
7436 2003-10-02  Havoc Pennington  <hp@redhat.com>
7437
7438         * doc/dbus-tutorial.xml: write some stuff
7439
7440 2003-09-29  Havoc Pennington  <hp@pobox.com>
7441
7442         * configure.in: split checks for Doxygen from XML docs, check for
7443         xmlto
7444
7445         * doc/Makefile.am: XML-ify all the docs, and add a blank
7446         dbus-tutorial.xml
7447
7448 2003-09-29  Havoc Pennington  <hp@pobox.com>
7449
7450         * Merge dbus-object-names branch. To see the entire patch 
7451         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7452         it's huuuuge though.
7453         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7454         
7455 2003-09-28  Havoc Pennington  <hp@pobox.com>
7456
7457         * HACKING: update to reflect new server
7458
7459 2003-09-26  Seth Nickell  <seth@gnome.org>
7460
7461         * python/dbus.py:
7462         * python/examples/example-signals.py:
7463
7464         Start implementing some notions of signals. The API
7465         is really terrible, but they sort of work (with the
7466         exception of being able to filter by service, and to
7467         transmit signals *as* a particular service). Need to
7468         figure out how to make messages come from the service
7469         we registered :-(
7470         
7471         * python/dbus_bindings.pyx.in:
7472
7473         Removed duplicate message_handler callbacks.
7474         
7475 2003-09-25  Havoc Pennington  <hp@redhat.com>
7476
7477         * bus/session.conf.in: fix my mess
7478
7479 2003-09-25  Havoc Pennington  <hp@pobox.com>
7480
7481         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7482
7483 2003-09-25  Seth Nickell  <seth@gnome.org>
7484
7485         * python/examples/example-service.py:
7486
7487         Johan notices complete wrong code in example-service, but
7488         completely wrong in a way that works exactly the same (!).
7489         Johan is confused, how could this possibly work? Example
7490         code fails to serve purpose of making things clear.
7491         Seth fixes.
7492
7493 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7494
7495         * doc/dbus-specification.sgml: don't require header fields
7496         to be 4-byte aligned and specify that fields should be
7497         distinguished from padding by the fact that zero is not
7498         a valid field name.
7499         
7500         * doc/TODO: remove re-alignment item and add item to doc
7501         the OBJECT_PATH type.
7502         
7503         * dbus/dbus-message.c:
7504         (HeaderField): rename the original member to value_offset
7505         and introduce a name_offset member to keep track of where
7506         the field actually begins.
7507         (adjust_field_offsets): remove.
7508         (append_int_field), (append_uint_field),
7509         (append_string_field): don't align the start of the header
7510         field to a 4-byte boundary.
7511         (get_next_field): impl finding the next marhsalled field
7512         after a given field.
7513         (re_align_field_recurse): impl re-aligning a number of
7514         already marshalled fields.
7515         (delete_field): impl deleting a field of any type and
7516         re-aligning any following fields.
7517         (delete_int_or_uint_field), (delete_string_field): remove.
7518         (set_int_field), (set_uint_field): no need to re-check
7519         that we have the correct type for the field.
7520         (set_string_field): ditto and impl re-aligning any
7521         following fields.
7522         (decode_header_data): update to take into account that
7523         the fields aren't 4-byte aligned any more and the new
7524         way to distinguish padding from header fields. Also,
7525         don't exit when there is too much header padding.
7526         (process_test_subdir): print the directory.
7527         (_dbus_message_test): add test to make sure a following
7528         field is re-aligned correctly after field deletion.
7529         
7530         * dbus/dbus-string.[ch]:
7531         (_dbus_string_insert_bytes): rename from insert_byte and
7532         allow the insert of multiple bytes.
7533         (_dbus_string_test): test inserting multiple bytes.
7534
7535         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7536         warning note to docs about having to re-align any
7537         marshalled values following the string.
7538         
7539         * dbus/dbus-message-builder.c:
7540         (append_string_field), (_dbus_message_data_load):
7541         don't align the header field.
7542         
7543         * dbus/dbus-auth.c: (process_test_subdir): print the
7544         directory.
7545         
7546         * test/break-loader.c: (randomly_add_one_byte): upd. for
7547         insert_byte change.
7548         
7549         * test/data/invalid-messages/bad-header-field-alignment.message:
7550         new test case.
7551         
7552         * test/data/valid-messages/unknown-header-field.message: shove
7553         a dict in the unknown field.
7554
7555 2003-09-25  Seth Nickell  <seth@gnome.org>
7556
7557         * python/dbus.py:
7558         * python/dbus_bindings.pyx.in:
7559
7560         Handle return values.
7561         
7562         * python/examples/example-client.py:
7563         * python/examples/example-service.py:
7564
7565         Pass back return values from the service to the client.
7566         
7567 2003-09-24  Seth Nickell  <seth@gnome.org>
7568
7569         * python/dbus.py:
7570
7571         Connect Object methods (when you are sharing an object) up... pass
7572         in a list of methods to be shared. Sharing all the methods just
7573         worked out too weird. You can now create nice Services over the
7574         DBus in Python. :-)
7575         
7576         * python/dbus_bindings.pyx.in:
7577
7578         Keep references to user_data tuples passed into C functions so 
7579         Python doesn't garbage collect on us.
7580
7581         Implement MethodReturn and Error subclasses of Message for creating
7582         DBusMessage's of those types.
7583         
7584         * python/examples/example-client.py:
7585         * python/examples/example-service.py:
7586
7587         Simple example code showing both how create DBus services and objects,
7588         and how to use them.
7589
7590 2003-09-23  Havoc Pennington  <hp@pobox.com>
7591
7592         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7593
7594 2003-09-23  Havoc Pennington  <hp@redhat.com>
7595
7596         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7597         (dbus_gproxy_disconnect_signal): implement
7598         (dbus_gproxy_manager_remove_signal_match): implement
7599         (dbus_gproxy_manager_add_signal_match): implement
7600         (dbus_gproxy_oneway_call): implement
7601
7602 2003-09-23  Havoc Pennington  <hp@pobox.com>
7603
7604         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7605         subclass. This means dropping the transparent thread safety of the
7606         proxy; you now need a separate proxy per-thread, or your own
7607         locking on the proxy. Probably right anyway.
7608         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7609
7610 2003-09-22  Havoc Pennington  <hp@redhat.com>
7611
7612         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7613
7614 2003-09-21  Seth Nickell  <seth@gnome.org>
7615
7616         First checkin of the Python bindings.
7617         
7618         * python/.cvsignore:
7619         * python/Makefile.am:
7620         * python/dbus_bindings.pyx.in:
7621         * python/dbus_h_wrapper.h:
7622
7623         Pieces for Pyrex to operate on, building a dbus_bindings.so
7624         python module for low-level access to the DBus APIs.
7625         
7626         * python/dbus.py:
7627
7628         High-level Python module for accessing DBus objects.
7629
7630         * configure.in:
7631         * Makefile.am:
7632
7633         Build stuff for the python bindings.
7634
7635         * acinclude.m4:
7636
7637         Extra macro needed for finding the Python C header files.
7638
7639 2003-09-21  Havoc Pennington  <hp@pobox.com>
7640
7641         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7642         implementing the proxy manager, didn't get very far.
7643
7644         * dbus/dbus-bus.c (dbus_bus_add_match): new
7645         (dbus_bus_remove_match): new
7646
7647         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7648         path_name argument; adjust the other not-yet-implemented 
7649         gproxy constructors to be what I think they should be.
7650
7651 2003-09-21  Havoc Pennington  <hp@pobox.com>
7652
7653         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7654         by default for message bus connections.
7655
7656         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7657         exit_on_disconnect flag is set and we process the disconnected
7658         signal.
7659         (dbus_connection_set_exit_on_disconnect): new function
7660
7661 2003-09-21  Havoc Pennington  <hp@pobox.com>
7662
7663         Get matching rules mostly working in the bus; only actually
7664         parsing the rule text remains. However, the client side of
7665         "signal connections" hasn't been started, this patch is only the
7666         bus side.
7667         
7668         * dbus/dispatch.c: fix for the matching rules changes
7669         
7670         * bus/driver.c (bus_driver_handle_remove_match)
7671         (bus_driver_handle_add_match): send an ack reply from these
7672         method calls
7673
7674         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7675         arguments, reported by Seth Nickell
7676
7677         * bus/config-parser.c (append_rule_from_element): support
7678         eavesdrop=true|false attribute on policies so match rules 
7679         can be prevented from snooping on the system bus.
7680
7681         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7682         and "destination" in attribute names; fix some docs bugs; 
7683         add eavesdrop=true|false attribute
7684
7685         * bus/driver.c (bus_driver_handle_add_match)
7686         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7687         messages
7688
7689         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7690         rid of broadcast service concept, signals are just always broadcast
7691
7692         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7693         mostly implement matching rules stuff (currently only exposed as signal
7694         connections)
7695
7696 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7697
7698         * doc/dbus-specification.sgml: Change the header field name
7699         to be an enum and update the rest of the spec to reference
7700         the fields using the conventinal name.
7701
7702         * dbus/dbus-protocol.h: update to reflect the spec.
7703
7704         * doc/TODO: add item to remove the 4 byte alignment requirement.
7705         
7706         * dbus/dbus-message.c: Remove the code to generalise the
7707         header/body length and serial number header fields as named
7708         header fields so we can reference field names using the 
7709         protocol values.
7710         (append_int_field), (append_uint_field), (append_string_field):
7711         Append the field name as a byte rather than four chars.
7712         (delete_int_or_uint_field), (delete_string_field): reflect the
7713         fact that the field name and typecode now occupy 4 bytes instead
7714         of 8.
7715         (decode_string_field), (decode_header_data): update to reflect
7716         protocol changes and move the field specific encoding from
7717         decode_string_field() back into decode_header_data().
7718         
7719         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7720         Add utility to aid debugging.
7721         
7722         * dbus/dbus-message-builder.c:
7723         (append_string_field), (_dbus_message_data_load): Update to
7724         reflect protocol changes; Change the FIELD_NAME directive
7725         to HEADER_FIELD and allow it to take the field's conventional
7726         name rather than the actual value.
7727         
7728         * test/data/*/*.message: Update to use HEADER_FIELD instead
7729         of FIELD_NAME; Always align the header on an 8 byte boundary
7730         *before* updating the header length.
7731
7732 2003-09-15  Havoc Pennington  <hp@pobox.com>
7733
7734         * dbus/dbus-pending-call.c: add the get/set object data
7735         boilerplate as for DBusConnection, etc. Use generic object data
7736         for the notify callback.
7737
7738         * glib/dbus-gparser.c (parse_node): parse child nodes
7739
7740         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7741         
7742         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7743         contain functions shared between the convenience lib and the
7744         installed lib
7745
7746         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7747         -export-symbols-regex to the GLib library
7748
7749         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7750         fix the locking in here, and add a default handler for
7751         Introspect() that just returns sub-nodes.
7752
7753 2003-09-14  Havoc Pennington  <hp@pobox.com>
7754
7755         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7756         rather than gfoo consistent
7757
7758         * glib/dbus-gproxy.h: delete for now, move contents to
7759         dbus-glib.h, because the include files don't work right since we
7760         aren't in the dbus/ subdir.
7761         
7762         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7763         (dbus_gproxy_end_call): finish
7764         (dbus_gproxy_begin_call): finish
7765
7766         * glib/dbus-gmain.c (dbus_set_g_error): new
7767
7768         * glib/dbus-gobject.c (handle_introspect): include information
7769         about child nodes in the introspection
7770
7771         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7772         function to help in implementation of introspection
7773
7774         * dbus/dbus-object-tree.c
7775         (_dbus_object_tree_list_registered_and_unlock): new function
7776
7777 2003-09-12  Havoc Pennington  <hp@pobox.com>
7778
7779         * glib/dbus-gidl.h: add common base class for all the foo_info
7780         types
7781
7782         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7783         similar to kdcop
7784
7785         * test/Makefile.am: try test srcdir -ef . in addition to test
7786         srcdir = ., one of them should work (yeah lame)
7787         
7788         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7789         library
7790         
7791         * glib/dbus-gparser.h: make description_load routines return
7792         NodeInfo* not Parser*
7793
7794         * Makefile.am (SUBDIRS): build test dir after all library dirs
7795
7796         * configure.in: add GTK+ detection
7797
7798 2003-09-07  Havoc Pennington  <hp@pobox.com>
7799
7800         * Make Doxygen contented.
7801
7802 2003-09-07  Havoc Pennington  <hp@pobox.com>
7803
7804         * doc/dbus-specification.sgml: more updates
7805
7806 2003-09-06  Havoc Pennington  <hp@pobox.com>
7807
7808         * doc/dbus-specification.sgml: partial updates
7809
7810         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7811         zillionth time; hopefully I edited the right file this time.
7812
7813         * bus/config-parser.c (append_rule_from_element): support
7814         send_type, send_path, receive_type, receive_path
7815
7816         * bus/policy.c: add message type and path to the list of things
7817         that can be "firewalled"
7818
7819 2003-09-06  Havoc Pennington  <hp@pobox.com>
7820
7821         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7822         (dbus_connection_register_object_path): make this not handle
7823         messages to paths below the given path
7824
7825 2003-09-03  Havoc Pennington  <hp@pobox.com>
7826
7827         * test/glib/Makefile.am: add this with random glib-linked test
7828         programs
7829
7830         * glib/Makefile.am: remove the random test programs from here,
7831         leave only the unit tests
7832
7833         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7834         uscore/javacaps conversion, and fix     
7835         (get_object_property, set_object_property): change to .NET
7836         convention for mapping props to methods, set_FooBar/get_FooBar, 
7837         since one language has such a convention we may as well copy it. 
7838         Plus real methods in either getFooBar or get_foo_bar style won't 
7839         collide with this convention.
7840
7841 2003-09-01  Havoc Pennington  <hp@pobox.com>
7842
7843         * glib/dbus-gparser.c: implement
7844
7845         * glib/dbus-gobject.c: start implementing skeletons support
7846
7847         * configure.in: when disabling checks/assert, also define
7848         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7849
7850 2003-09-01  Havoc Pennington  <hp@pobox.com>
7851
7852         * glib/Makefile.am: rearrange a bunch of files and get "make
7853         check" framework set up
7854
7855 2003-08-31  Havoc Pennington  <hp@pobox.com>
7856
7857         * fix build with --disable-tests
7858
7859 2003-08-30  Havoc Pennington  <hp@pobox.com>
7860
7861         * dbus/dbus-connection.c: purge DBusMessageHandler
7862
7863         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7864         use callbacks everywhere
7865
7866 2003-08-30  Havoc Pennington  <hp@pobox.com>
7867
7868         * test/data/valid-config-files/system.d/test.conf: change to 
7869         root for the user so warnings don't get printed
7870
7871         * dbus/dbus-message.c: add dbus_message_get_path,
7872         dbus_message_set_path
7873         
7874         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7875         dispatching to a path
7876
7877         * dbus/dbus-string.c (_dbus_string_validate_path): add
7878
7879         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7880         (_dbus_marshal_object_path): implement
7881
7882         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7883         to contain the path to the target object
7884         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7885         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7886
7887 2003-08-30  Havoc Pennington  <hp@pobox.com>
7888
7889         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7890
7891 2003-08-29  Havoc Pennington  <hp@pobox.com>
7892
7893         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7894         registered
7895         (struct DBusObjectSubtree): shrink this
7896         a lot, since we may have a lot of them
7897         (_dbus_object_tree_free_all_unlocked): implement
7898         (_dbus_object_tree_dispatch_and_unlock): implement
7899
7900 2003-08-29  Havoc Pennington  <hp@pobox.com>
7901
7902         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7903
7904 2003-08-28  Havoc Pennington  <hp@pobox.com>
7905
7906         purge DBusObjectID
7907         
7908         * dbus/dbus-connection.c: port to no ObjectID, create a
7909         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7910
7911         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7912         everything except UnregisterFunction and MessageFunction
7913         
7914         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7915         add DBUS_TYPE_OBJECT_PATH
7916         
7917         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7918         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7919         path-based object IDs
7920
7921 2003-08-25  Havoc Pennington  <hp@pobox.com>
7922
7923         Just noticed that dbus_message_test is hosed, I wonder when I
7924         broke that. I thought make check was passing earlier...
7925         
7926         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7927         container tree, will replace most of dbus-object-registry
7928
7929         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7930         screwup
7931
7932 2003-08-19  Havoc Pennington  <hp@pobox.com>
7933
7934         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7935         (dbus_message_is_error): fix this function
7936
7937         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7938         match
7939
7940         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7941         reflect clarified man page
7942         (bus_client_policy_check_can_send): ditto
7943         
7944         * bus/session.conf.in: fixup
7945
7946         * bus/system.conf.in: fixup
7947
7948 2003-08-18  Havoc Pennington  <hp@redhat.com>
7949
7950         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7951
7952         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7953         dumb bug created earlier (wrong order of args to
7954         decode_header_data())
7955         
7956         * tools/dbus-send.c: port
7957
7958         * tools/dbus-print-message.c (print_message): port
7959
7960         * test/data/*messages: port all messages over
7961         
7962         * dbus/dbus-message-builder.c: support including 
7963         message type
7964         
7965         * bus/driver.c: port over
7966         
7967         * bus/dispatch.c: port over to new stuff
7968
7969         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7970         rename disconnect signal to "Disconnected"
7971
7972 2003-08-17  Havoc Pennington  <hp@pobox.com>
7973
7974         This doesn't compile yet, but syncing up so I can hack on it from
7975         work. What are branches for if not broken code? ;-)
7976         
7977         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7978         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7979         DBUS_HEADER_FIELD_ERROR_NAME
7980         
7981         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7982         for the interface+member pairs
7983         (string_hash): change to use g_str_hash algorithm
7984         (find_direct_function, find_string_function): refactor these to
7985         share most code.
7986         
7987         * dbus/dbus-message.c: port all of this over to support 
7988         interface/member fields instead of name field
7989
7990         * dbus/dbus-object-registry.c: port over
7991         
7992         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7993         from _dbus_string_validate_name
7994
7995         * bus/dbus-daemon-1.1: change file format for the 
7996         <deny>/<allow> stuff to match new message naming scheme
7997
7998         * bus/policy.c: port over
7999
8000         * bus/config-parser.c: parse new format
8001         
8002 2003-08-16  Havoc Pennington  <hp@pobox.com>
8003
8004         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8005         broken assertion
8006
8007         * glib/dbus-gproxy.c: some hacking
8008
8009 2003-08-15  Havoc Pennington  <hp@redhat.com>
8010
8011         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8012
8013         * dbus/dbus-connection.c
8014         (dbus_connection_send_with_reply_and_block): factor out internals;
8015         change to convert any error replies to DBusError instead of 
8016         returning them as a message
8017
8018 2003-08-15  Havoc Pennington  <hp@pobox.com>
8019
8020         * dbus/dbus-connection.c, 
8021         dbus/dbus-pending-call.c: Finish the pending call stuff
8022
8023 2003-08-14  Havoc Pennington  <hp@redhat.com>
8024
8025         * dbus/dbus-pending-call.c: start on new object that will replace
8026         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8027         replies
8028
8029         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8030         with remote interfaces
8031
8032         * dbus/dbus-gidl.c: do the boring boilerplate in here
8033         
8034 2003-08-12  Havoc Pennington  <hp@pobox.com>
8035
8036         * bus/dispatch.c (bus_dispatch): make this return proper 
8037         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8038
8039         * dbus/dbus-errors.c (dbus_set_error): use
8040         _dbus_string_append_printf_valist
8041
8042         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8043         (_dbus_string_append_printf): new
8044
8045         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8046         UNKNOWN_METHOD
8047
8048         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8049         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8050         message is unhandled.
8051
8052 2003-08-11  Havoc Pennington  <hp@pobox.com>
8053
8054         * bus/test.c (client_disconnect_handler): change to return
8055         HANDLED (would have been REMOVE_MESSAGE)
8056
8057         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8058         HANDLED/NOT_YET_HANDLED instead of
8059         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8060         should be used.
8061
8062 2003-08-10  Havoc Pennington  <hp@pobox.com>
8063
8064         * tools/dbus-send.c (main): add --type argument, for now
8065         supporting only method_call and signal types.
8066
8067         * tools/dbus-print-message.c: print message type
8068
8069         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8070         init connection->objects
8071
8072         * doc/dbus-specification.sgml: fix sgml
8073
8074         * bus/*.c: port over to object-instance API changes
8075
8076         * test/test-service.c: ditto
8077         
8078         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8079         name, we will have to fix up the rest of the code to also handle
8080         this
8081         (dbus_message_new): generic message-creation call
8082         (set_string_field): allow appending name field
8083
8084 2003-08-06  Havoc Pennington  <hp@pobox.com>
8085
8086         * dbus/dbus-object-registry.c: implement signal connection 
8087         and dispatch
8088
8089         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8090
8091         * dbus/dbus-internals.c (_dbus_memdup): new function
8092
8093 2003-08-02  Havoc Pennington  <hp@pobox.com>
8094
8095         * dbus/dbus-message.c (dbus_message_get_no_reply)
8096         (dbus_message_set_no_reply): add these and remove
8097         set_is_error/get_is_error
8098
8099         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8100         remove the ERROR flag, since there's now an ERROR type
8101
8102 2003-08-01  Havoc Pennington  <hp@pobox.com>
8103
8104         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8105         implement
8106
8107         * dbus/dbus-message.c (dbus_message_get_type): new function
8108
8109         * doc/dbus-specification.sgml: add "type" byte to messages
8110
8111 2003-08-01  Havoc Pennington  <hp@pobox.com>
8112
8113         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8114         a message type enum to distinguish kinds of message
8115         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8116         that need not be replied to
8117
8118 2003-08-01  Havoc Pennington  <hp@pobox.com>
8119
8120         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8121         (unpack_8_octets): fix no-64-bit-int bug
8122
8123         * dbus/dbus-object-registry.c (validate_id): validate the 
8124         connection ID bits, not just the instance ID.
8125
8126         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8127         the connection-global 33 bits of the object ID
8128
8129         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8130         object ID in the new way
8131
8132         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8133         define server/client/instance bits.
8134
8135 2003-07-30  Havoc Pennington  <hp@pobox.com>
8136
8137         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8138         build
8139
8140 2003-07-13  Havoc Pennington  <hp@pobox.com>
8141
8142         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8143         fields to DBusObjectVTable and DBusObjectInfo
8144
8145 2003-07-12  Havoc Pennington  <hp@pobox.com>
8146
8147         * dbus/dbus-object-registry.c: implement unit test,
8148         fix bugs discovered in process
8149
8150         * dbus/dbus-connection.c: remove handler_table and
8151         register_handler(), add DBusObjectRegistry usage
8152
8153         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8154         (dbus_object_id_set_null): new functions
8155
8156 2003-07-08  Havoc Pennington  <hp@pobox.com>
8157
8158         * dbus/dbus-object.c: implement some of this
8159
8160         * dbus/dbus-object-registry.c
8161         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8162         param
8163         (_dbus_object_registry_new): handle OOM
8164
8165 2003-07-08  Havoc Pennington  <hp@pobox.com>
8166
8167         * dbus/dbus-object.h: sketch out an API for registering objects
8168         with a connection, that allows us to use as little as 24 bytes
8169         per object and lets application code represent an object in 
8170         any conceivable way.
8171
8172         * dbus/dbus-object-registry.c: implement the hard bits of the
8173         DBusConnection aspect of object API. Not yet wired up.
8174         
8175 2003-07-06  Havoc Pennington  <hp@pobox.com>
8176
8177         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8178         (_dbus_marshal_object_id): new
8179         (_dbus_demarshal_object_id): new
8180         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8181         consolidate identical switch cases. Don't conditionalize handling
8182         of DBUS_TYPE_UINT64, need to handle the type always.
8183         (_dbus_marshal_validate_arg): consolidate identical cases, and
8184         handle DBUS_TYPE_OBJECT_ID
8185
8186         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8187
8188         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8189
8190 2003-09-28  Havoc Pennington  <hp@pobox.com>
8191
8192         * real 0.13 release
8193
8194 2003-09-28  Havoc Pennington  <hp@pobox.com>
8195
8196         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8197         to work with Debian db2html
8198
8199 2003-09-28  Havoc Pennington  <hp@pobox.com>
8200
8201         * configure.in: 0.13
8202
8203         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8204         stylesheet-images for benefit of Debian
8205         
8206         Change back to using filesystem-linked sockets for the system
8207         bus, so only root can create the default system bus address.
8208         
8209         * bus/system.conf.in: change to use
8210         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8211
8212         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8213         from here.
8214
8215         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8216         here, and AC_DEFINE DBUS_SYSTEM_PATH
8217
8218 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8219
8220         * doc/TODO:
8221         * doc/busconfig.dtd:
8222         Add busconfig DTD.
8223         
8224 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8225
8226         * doc/dbus-specification.sgml:
8227         Add activation reply values.
8228         
8229 2003-08-05  Havoc Pennington  <hp@redhat.com>
8230
8231         * configure.in: 0.12
8232
8233 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8234
8235         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8236         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8237         (add_watch), (remove_watch), (create_source):
8238         Refcount fds, fixes some reentrancy issues.
8239         
8240 2003-07-30  Havoc Pennington  <hp@redhat.com>
8241
8242         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8243         bus address to be abstract if we have abstract sockets
8244
8245         * NEWS: update
8246
8247 2003-07-28  Havoc Pennington  <hp@redhat.com>
8248
8249         * bus/messagebus.in: fix to avoid processname/servicename 
8250         confusion, from Michael Kearey
8251         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8252         
8253 2003-07-23  Havoc Pennington  <hp@pobox.com>
8254
8255         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8256         fix from Andy Hanton to remove broken "+1"
8257
8258 2003-07-16  Havoc Pennington  <hp@pobox.com>
8259
8260         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8261         babysitter process, as suggested by Thomas Leonard, so 
8262         an "eval `dbus-launch --exit-with-session`" will actually 
8263         return
8264
8265 2003-07-16  Havoc Pennington  <hp@pobox.com>
8266
8267         * configure.in: print out EXPANDED_* variables in the summary at
8268         the end; clean up the code that computes EXPANDED_ variables and
8269         get the ones using exec_prefix right. Should make things work
8270         when you build without --prefix
8271
8272 2003-06-29  Havoc Pennington  <hp@pobox.com>
8273
8274         * mono/Test.cs (class Test): fire up a main loop and run it
8275
8276         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8277         done once, the app has to do it
8278
8279 2003-06-26  Havoc Pennington  <hp@pobox.com>
8280
8281         * mono/Connection.cs: set up connection with the glib main loop
8282
8283 2003-07-01  Havoc Pennington  <hp@redhat.com>
8284
8285         * doc/dbus-specification.sgml: clarify the format of a type code,
8286         change suggested by Jim Blandy
8287
8288 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8289
8290         * doc/Makefile.am:
8291         * tools/Makefile.am: Don't assume srcdir == builddir.
8292
8293         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8294         the allocated block.
8295         (_dbus_memory_test): New function.
8296         * dbus/dbus-test.h: Add _dbus_memory_test ().
8297         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8298
8299         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8300         of %c%c%c%c.
8301         (dbus_message_new): Remove obsolete @todo.
8302
8303         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8304         (_dbus_marshal_set_uint64): Fix comment.
8305
8306         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8307         hardcode FIELD_REPLY_SERIAL.
8308
8309         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8310         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8311
8312         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8313         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8314
8315 2003-06-24  Havoc Pennington  <hp@pobox.com>
8316
8317         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8318
8319 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8320
8321         * configure.in:
8322         * gcj/.cvsignore:
8323         * gcj/Hello.java:
8324         * gcj/Makefile.am:
8325         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8326         * gcj/org/.cvsignore:
8327         * gcj/org/Makefile.am:
8328         * gcj/org/freedesktop/.cvsignore:
8329         * gcj/org/freedesktop/Makefile.am:
8330         * gcj/org/freedesktop/dbus/.cvsignore:
8331         * gcj/org/freedesktop/dbus/Makefile.am:
8332         * gcj/org/freedesktop/dbus/Message.java: (Message),
8333         (Message.Message):
8334         * gcj/org/freedesktop/dbus/natMessage.cc:
8335         Fix the build system.
8336
8337 2003-06-22  Havoc Pennington  <hp@pobox.com>
8338
8339         * mono/Connection.cs: add more bindings
8340
8341         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8342         more than once.
8343
8344 2003-06-22  Havoc Pennington  <hp@pobox.com>
8345
8346         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8347         Start wrapping more stuff.
8348
8349 2003-06-22  Havoc Pennington  <hp@pobox.com>
8350
8351         * mono/Message.cs: implement Message.Wrap() that ensures we only
8352         have a single C# wrapper per DBusMessage, assuming it works which
8353         it probably doesn't.
8354
8355         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8356         (dbus_message_free_data_slot): new
8357         (dbus_message_set_data): new
8358         (dbus_message_get_data): new
8359
8360 2003-06-22  Havoc Pennington  <hp@pobox.com>
8361
8362         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8363         (_dbus_data_slot_allocator_alloc): rework these to keep a
8364         reference count on each slot and automatically manage a global
8365         slot ID variable passed in by address
8366
8367         * bus/bus.c: convert to new dataslot API
8368
8369         * dbus/dbus-bus.c: convert to new dataslot API
8370
8371         * dbus/dbus-connection.c: convert to new dataslot API
8372
8373         * dbus/dbus-server.c: convert to new dataslot API
8374
8375         * glib/dbus-gmain.c: ditto
8376
8377         * bus/test.c: ditto
8378
8379         * bus/connection.c: ditto
8380
8381 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8382
8383         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8384         after the gcj checks so that the correct configuration tags
8385         will be added to libtool.
8386
8387         * dbus-glib-1.pc.in: No need to specify any includes since
8388         dbus-1.pc.in has those.
8389
8390 2003-06-22  Havoc Pennington  <hp@pobox.com>
8391
8392         * mono/*, gcj/*, configure.in, Makefile.am:
8393         Check in makefiles and subdirs for mono and gcj bindings.
8394         Neither binding actually exists, just trying to get through
8395         all the build and other boring bits.
8396
8397 2003-06-21  Philip Blundell  <philb@gnu.org>
8398
8399         * tools/dbus-monitor.1: Updated.
8400
8401         * tools/dbus-send.1: Likewise.
8402
8403 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8404
8405         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8406         for hangup and error after checking read so we won't discard
8407         pending data if both hangup and read are set.
8408
8409 2003-06-19  Philip Blundell  <philb@gnu.org>
8410
8411         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8412
8413         * tools/dbus-send.c: Accept both --system and --session.
8414
8415         * tools/dbus-monitor.c: Same here.
8416
8417 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8418
8419         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8420         from C++ (Patch by Miloslav Trmac).
8421
8422 2003-06-15  Joe Shaw  <joe@assbarn.com>
8423
8424         * configure.in: Check for socklen_t.
8425
8426         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8427
8428         * test/test-segfault.c: Add #include <sys/time.h>
8429
8430         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8431         dbus-launch needs it.
8432
8433 2003-06-09  Havoc Pennington  <hp@redhat.com>
8434
8435         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8436         SUN_LEN, it breaks abstract socket usage
8437
8438         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8439         starts of lines.
8440
8441 2003-06-04  Havoc Pennington  <hp@pobox.com>
8442
8443         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8444         using unix:abstract=/foo, and when listening in a tmpdir
8445         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8446
8447         * dbus/dbus-transport.c (_dbus_transport_open): support
8448         unix:abstract=/foo
8449
8450         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8451         support abstract sockets
8452
8453         * dbus/dbus-transport-unix.c
8454         (_dbus_transport_new_for_domain_socket): support abstract sockets
8455
8456         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8457         toggle as an argument, implement abstract namespace support
8458         (_dbus_listen_unix_socket): ditto
8459
8460         * configure.in: add --enable-abstract-sockets and implement
8461         a configure check for autodetection of the right value.
8462
8463 2003-06-01  Havoc Pennington  <hp@pobox.com>
8464
8465         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8466         in /tmp (though on Linux this will end up being useless,
8467         when we add abstract namespace support)
8468
8469         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8470         subst'ing it
8471
8472 2003-05-28  Colin Walters  <walters@verbum.org>
8473
8474         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8475
8476 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8477
8478         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8479
8480 2003-05-17  Colin Walters  <walters@gnu.org>
8481
8482         * tools/dbus-send.c: Don't exit with an error code if --help was
8483         passed.  Default to using the session bus instead of the system
8484         one.
8485
8486         * tools/dbus-launch.c: Ditto.
8487
8488         * tools/dbus-monitor.c: Ditto.
8489
8490         * tools/dbus-send.1: Update with new arguments.
8491
8492         * tools/dbus-launch.c: Emit code to export variables.  New
8493         arguments -s and -c to specify shell syntax, and a bit of code to
8494         autodetect syntax.  Also, allow specifying a program to run.
8495
8496         * tools/dbus-launch.1: Update with new arguments.
8497
8498         * tools/dbus-send.1: Ditto.
8499
8500         * tools/dbus-monitor.1: Ditto.
8501
8502 2003-05-17  Havoc Pennington  <hp@pobox.com>
8503
8504         * bus/config-parser.c (merge_included): merge in policies from
8505         child configuration file.
8506
8507         * bus/policy.c (bus_policy_merge): function to merge two policies
8508         together
8509
8510 2003-05-16  Havoc Pennington  <hp@redhat.com>
8511
8512         * dbus/dbus-connection.c: disable verbose lock spew
8513
8514         * tools/dbus-send.c: add --print-reply command line option
8515
8516         * tools/dbus-print-message.h (print_message): new util function
8517         shared by dbus-send and dbus-monitor
8518
8519         * tools/dbus-monitor.c (handler_func): exit on disconnect
8520
8521         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8522         disconnected, don't try to use the read_watch
8523
8524         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8525         so we can find this bug more easily
8526
8527 2003-05-16  Havoc Pennington  <hp@redhat.com>
8528
8529         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8530         NULL as DBusHashTable is annoyingly likely to do.
8531
8532 2003-05-16  Colin Walters  <walters@verbum.org>
8533
8534         * tools/dbus-monitor.c: Add --session argument and usage()
8535         function.
8536
8537         * tools/dbus-monitor.1: Update with new --session arg.
8538
8539         * bus/Makefile.am (install-data-hook): Create
8540         $(libdir)/dbus-1.0/services so that the session bus is happy.
8541
8542 2003-05-15  Havoc Pennington  <hp@redhat.com>
8543
8544         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8545         on non-x86. ifdef's are evil.
8546
8547 2003-05-15  Havoc Pennington  <hp@redhat.com>
8548
8549         * configure.in: 0.11
8550
8551         * NEWS: update
8552
8553         * bus/Makefile.am (initddir): apparently we are supposed to put
8554         init scripts in /etc/rc.d/init.d not /etc/init.d
8555
8556         * bus/Makefile.am: remove the "you must --enable-tests to make
8557         check" as it broke distcheck
8558
8559         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8560
8561 2003-05-13  James Willcox  <jwillcox@gnome.org>
8562
8563         * configure.in:
8564         * bus/activation.c: (bus_activation_service_created),
8565         (bus_activation_activate_service):
8566         * bus/driver.c: (bus_driver_send_service_deleted),
8567         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8568         (bus_driver_send_service_acquired),
8569         (bus_driver_send_welcome_message),
8570         (bus_driver_handle_list_services):
8571         * bus/session.conf.in:
8572         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8573         (dbus_bus_service_exists), (dbus_bus_activate_service):
8574         * dbus/dbus-bus.h:
8575
8576         Add some convenience API which lets you activate a service, and did a
8577         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8578         and dbus_message_get_args()
8579
8580 2003-05-11  Havoc Pennington  <hp@pobox.com>
8581
8582         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8583         calling _dbus_marshal_validate_arg() for every byte in a byte
8584         array, etc.
8585
8586         * dbus/dbus-message-handler.c: use atomic reference counting to
8587         reduce number of locks slightly; the global lock in here sucks
8588
8589         * dbus/dbus-connection.c
8590         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8591         update_dispatch_status that can be called with lock held; then use
8592         in a couple places to reduce locking/unlocking
8593         (dbus_connection_send): hold the lock over the whole function
8594         instead of acquiring it twice.
8595
8596         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8597
8598         * bus/connection.c (bus_connections_setup_connection): fix access
8599         to already-freed memory.
8600
8601         * dbus/dbus-connection.c: keep a little cache of linked list
8602         nodes, to avoid using the global linked list alloc lock in the
8603         normal send-message case. Instead we just use the connection lock
8604         that we already have to take.
8605
8606         * dbus/dbus-list.c (_dbus_list_find_last): new function
8607
8608         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8609         change to use a struct for the atomic type; fix docs,
8610         they return value before increment, not after increment.
8611
8612         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8613         (_dbus_string_append_8_aligned): new functions to try to
8614         microoptimize this operation.
8615         (reallocate_for_length): break this out of set_length(), to
8616         improve profile info, and also so we can consider inlining the
8617         set_length() part.
8618
8619         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8620         strings with some preallocation, cuts down on our calls to realloc
8621         a fair bit. Though if we can get the "move entire string to empty
8622         string" optimization below to kick in here, it would be better.
8623
8624         * dbus/dbus-string.c (_dbus_string_move): just call
8625         _dbus_string_move_len
8626         (_dbus_string_move_len): add a special case for moving
8627         an entire string into an empty string; we can just
8628         swap the string data instead of doing any reallocs.
8629         (_dbus_string_init_preallocated): new function
8630
8631 2003-05-11  Havoc Pennington  <hp@pobox.com>
8632
8633         Write a "test-profile" that does echo client-server with threads;
8634         profile reveals lock contention, memcpy/realloc of buffers, and
8635         UTF-8 validation as hot spots. 20% of lock contention eliminated
8636         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8637         contention is global mempool locks for GList and DBusList.
8638
8639         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8640         x86 implementation
8641
8642         * dbus/dbus-connection.c (struct DBusConnection): use
8643         dbus_atomic_t for the reference count
8644
8645         * dbus/dbus-message.c (struct DBusMessage): declare
8646         dbus_atomic_t values as volatile
8647
8648         * configure.in: code to detect ability to use atomic integer
8649         operations in assembly, from GLib patch
8650
8651         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8652         time, tired of it being wrong in threads and forked processes
8653
8654         * glib/test-profile.c: a little program to bounce messages back
8655         and forth between threads and eat CPU
8656
8657         * dbus/dbus-connection.c: add debug spew macros for debugging
8658         thread locks; include config.h at top; fix deadlock in
8659         dbus_connection_flush()
8660
8661 2003-05-08  Havoc Pennington  <hp@pobox.com>
8662
8663         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8664         data from getting written, and there wasn't a good reason to
8665         use _exit really.
8666
8667         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8668         dbus_verbose lines in test coverage
8669         (main): add list of functions sorted by # of untested blocks
8670         to the coverage report
8671
8672         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8673
8674         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8675
8676         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8677         extend test coverage
8678
8679         * test/data/auth/cancel.auth-script: test canceling an
8680         authentication
8681
8682         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8683         aren't used. in CVS history if we end up needing them.
8684
8685 2003-05-04  Havoc Pennington  <hp@pobox.com>
8686
8687         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8688         unit test
8689
8690         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8691         function, which assumed length was in # of strings, not bytes
8692
8693         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8694         missing coverage
8695
8696         * dbus/dbus-connection.c
8697         (_dbus_connection_queue_received_message): disable function for
8698         now, we are only using it in test mode
8699
8700         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8701         remove a mistaken FIXME
8702
8703 2003-05-04  Havoc Pennington  <hp@pobox.com>
8704
8705         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8706         unlock mutex on successful return, patch from Anders Gustafsson
8707
8708 2003-05-04  Havoc Pennington  <hp@pobox.com>
8709
8710         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8711         Anders Gustafsson
8712
8713 2003-05-04  Havoc Pennington  <hp@pobox.com>
8714
8715         * tools/dbus-launch.c: implement
8716
8717         * bus/main.c (main), bus/bus.c (bus_context_new):
8718         implement --print-pid and --fork
8719
8720 2003-05-03  Havoc Pennington  <hp@redhat.com>
8721
8722         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8723         the address had no value, and add to test suite. Fix and
8724         regression test from Miloslav Trmac
8725
8726 2003-05-03  Havoc Pennington  <hp@pobox.com>
8727
8728         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8729         watch is invalid when handled
8730
8731         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8732         dbus-launch utility to launch the bus from a shell script.  Didn't
8733         actually implement dbus-launch yet, it's just a placeholder still.
8734
8735 2003-05-03  Havoc Pennington  <hp@pobox.com>
8736
8737         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8738         daemon; also documents daemon config file, so replaces
8739         doc/config-file.txt. Corrected some stuff from config-file.txt in
8740         the process of moving it.
8741
8742 2003-05-03  Havoc Pennington  <hp@pobox.com>
8743
8744         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8745         add some man pages
8746
8747 2003-05-03  Colin Walters  <walters@verbum.org>
8748
8749         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8750         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8751
8752         * Makefile.am: Update to use new .pc versioning scheme.
8753
8754 2003-05-02  Havoc Pennington  <hp@redhat.com>
8755
8756         * bus/system.conf.in: allow send/receive to/from message bus
8757         service
8758
8759 2003-04-30  Havoc Pennington  <hp@redhat.com>
8760
8761         * configure.in: print a note when building with unit tests and
8762         without assertions
8763
8764 2003-04-30  Havoc Pennington  <hp@redhat.com>
8765
8766         * Makefile.am: add a check-local that complains if you didn't
8767         configure with --enable-tests
8768
8769 2003-04-29  Havoc Pennington  <hp@redhat.com>
8770
8771         * glib/dbus-gmain.c: docs cleanups
8772
8773         * dbus/dbus-types.h: add docs on int64 types
8774
8775         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8776         public API docs section
8777
8778 2003-04-29  Havoc Pennington  <hp@redhat.com>
8779
8780         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8781         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8782         parallel install API version, not with the D-BUS package version.
8783
8784         * HACKING: move some of README over here
8785
8786         * README: updates, and document API/ABI policy
8787
8788         * configure.in: reindentation
8789
8790 2003-04-29  Havoc Pennington  <hp@redhat.com>
8791
8792         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8793         to use this library" to be sure people have the right
8794         expectations.
8795
8796 2003-04-28  Havoc Pennington  <hp@redhat.com>
8797
8798         * configure.in: add --enable-docs which by default is auto yes if
8799         doxygen and db2html found, no otherwise; but can be forced on/off
8800
8801         * doc/Makefile.am: conditionalize whether to build docs on
8802         --enable-docs
8803
8804 2003-04-28  Havoc Pennington  <hp@redhat.com>
8805
8806         * configure.in: 0.10
8807
8808         * NEWS: update
8809
8810         * bus/system.conf.in: add <includedir>system.d</includedir>
8811
8812         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8813         username was provided but not uid
8814
8815         * bus/config-parser.c (struct BusConfigParser): keep track of
8816         whether the parser is toplevel or was included; change some
8817         of the error handling if it's included.
8818
8819 2003-04-27  Havoc Pennington  <hp@pobox.com>
8820
8821         Unbreak my code...
8822
8823         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8824         report correct status if we finish processing authentication
8825         inside this function.
8826
8827         * bus/activation.c (try_send_activation_failure): use
8828         bus_transaction_send_error_reply
8829
8830         * bus/connection.c (bus_connection_get_groups): return an error
8831         explaining the problem
8832
8833         * bus/bus.c (bus_context_check_security_policy): implement
8834         restriction here that inactive connections can only send the
8835         hello message. Also, allow bus driver to send anything to
8836         any recipient.
8837
8838         * bus/connection.c (bus_connection_complete): create the
8839         BusClientPolicy here instead of on-demand.
8840         (bus_connection_get_policy): don't return an error
8841
8842         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8843         sender field in message being replied to
8844
8845         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8846         causing it to return FALSE always
8847
8848         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8849         we checked sender rather than destination
8850
8851 2003-04-25  Havoc Pennington  <hp@redhat.com>
8852
8853         test suite is slightly hosed at the moment, will fix soon
8854
8855         * bus/connection.c (bus_connections_expire_incomplete): fix to
8856         properly disable the timeout when required
8857         (bus_connection_set_name): check whether we can remove incomplete
8858         connections timeout after we complete each connection.
8859
8860         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8861         probably still broken.
8862
8863         * bus/services.c (bus_registry_acquire_service): implement max
8864         number of services owned, and honor allow/deny rules on which
8865         services a connection can own.
8866
8867         * bus/connection.c (bus_connection_get_policy): report errors here
8868
8869         * bus/activation.c: implement limit on number of pending
8870         activations
8871
8872 2003-04-25  Havoc Pennington  <hp@redhat.com>
8873
8874         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8875         where we used >= 0 instead of != DBUS_UID_UNSET.
8876
8877 2003-04-25  Havoc Pennington  <hp@redhat.com>
8878
8879         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8880         were toggled without add/remove, fix from Anders Gustafsson
8881
8882 2003-04-24  Havoc Pennington  <hp@redhat.com>
8883
8884         * test/data/valid-config-files/basic.conf: add <limit> tags to
8885         this test
8886
8887         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8888         <limit> tag in configuration file.
8889
8890 2003-04-24  Havoc Pennington  <hp@redhat.com>
8891
8892         * bus/dispatch.c: somehow missed some name_is
8893
8894         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8895         (_dbus_timeout_set_interval): new
8896
8897         * bus/connection.c (bus_connections_setup_connection): record time
8898         when each connection is first set up, and expire them after the
8899         auth timeout passes.
8900
8901 2003-04-24  Havoc Pennington  <hp@redhat.com>
8902
8903         * dbus/dbus-message.c (dbus_message_name_is): rename
8904         (dbus_message_service_is): rename
8905         (dbus_message_sender_is): rename
8906         (dbus_message_get_service): rename
8907
8908 2003-04-24  Havoc Pennington  <hp@redhat.com>
8909
8910         * configure.in: add --enable-checks
8911
8912         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8913
8914         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8915         to use thread locks.
8916         (_dbus_connection_handler_destroyed_locked): move some private
8917         functions into proper docs group
8918
8919         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8920         _dbus_return_val_if_fail
8921
8922         Throughout: use dbus_return_if_fail
8923
8924 2003-04-23  James Willcox  <jwillcox@gnome.org>
8925
8926         * glib/dbus-glib.h:
8927         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8928         (dbus_connection_setup_with_g_main),
8929         (dbus_server_setup_with_g_main):
8930         * glib/test-dbus-glib.c: (main):
8931         * glib/test-thread-client.c: (main):
8932         * glib/test-thread-server.c: (new_connection_callback), (main):
8933         * tools/dbus-monitor.c: (main):
8934
8935         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8936         and dbus_server_setup_with_g_main().
8937
8938 2003-04-20  Havoc Pennington  <hp@pobox.com>
8939
8940         * doc/dbus-specification.sgml: document the restrictions on
8941         message and service names
8942
8943 2003-04-22  Havoc Pennington  <hp@redhat.com>
8944
8945         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8946         support, and do some code cleanups to share more code and
8947         speed up array marshal/demarshal.
8948
8949         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8950
8951         * configure.in: generate dbus-arch-deps.h
8952
8953         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8954         64-bit typecodes
8955
8956 2003-04-22  Havoc Pennington  <hp@redhat.com>
8957
8958         * test/data/valid-messages/opposite-endian.message: fix test
8959         to use proper type for rply field
8960
8961         * test/data/invalid-messages: add tests for below validation
8962
8963         * dbus/dbus-message.c (decode_header_data): validate field types,
8964         and validate that named fields are valid names
8965         (decode_name_field): consider messages in the
8966         org.freedesktop.Local. namespace to be invalid.
8967
8968         * dbus/dbus-string.c (_dbus_string_validate_name): new
8969
8970 2003-04-19  Havoc Pennington  <hp@pobox.com>
8971
8972         * bus/driver.c (bus_driver_handle_hello): check limits and
8973         return an error if they are exceeded.
8974
8975         * bus/connection.c: maintain separate lists of active and inactive
8976         connections, and a count of each. Maintain count of completed
8977         connections per user. Implement code to check connection limits.
8978
8979         * dbus/dbus-list.c (_dbus_list_unlink): export
8980
8981         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8982         number of bytes in the message queue for a connection
8983
8984 2003-04-18  Havoc Pennington  <hp@pobox.com>
8985
8986         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8987
8988         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8989         memleaks
8990
8991         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8992         on realloc be sure to update the pointer in the keyring
8993
8994         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8995         offset to avoid writing to unallocated memory
8996
8997         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8998         try the next mechanism, so we properly handle OOM
8999
9000         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9001         on OOM.
9002         (_dbus_keyring_new): fix OOM bug
9003         (_dbus_keyring_new_homedir): always set error; impose a maximum
9004         number of keys we'll load from the file, mostly to speed up the
9005         test suite and make its OOM checks more useful, but also for
9006         general sanity.
9007
9008         * dbus/dbus-auth.c (process_error_server): reject authentication
9009         if we get an error from the client
9010         (process_cancel): on cancel, send REJECTED, per the spec
9011         (process_error_client): send CANCEL if we get an error from the
9012         server.
9013
9014 2003-04-18  Havoc Pennington  <hp@pobox.com>
9015
9016         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9017         debug spew
9018
9019         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9020         handling problem
9021
9022         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9023         about DBUS_TEST_HOMEDIR once
9024
9025         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9026         the environment
9027
9028         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9029         config file so we test the right thing
9030
9031         Throughout: assorted docs improvements
9032
9033 2003-04-18  Havoc Pennington  <hp@pobox.com>
9034
9035         * glib/dbus-gmain.c: adapt to watch changes
9036
9037         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9038
9039         * dbus/dbus-server.h: remove dbus_server_handle_watch
9040
9041         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9042
9043         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9044         like DBusTimeout, so we don't need dbus_connection_handle_watch
9045         etc.
9046
9047 2003-04-17  Havoc Pennington  <hp@redhat.com>
9048
9049         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9050         database usage so it all goes via the DBusUserDatabase cache.
9051
9052 2003-04-17  Havoc Pennington  <hp@redhat.com>
9053
9054         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9055         there was an OOM watch we skipped, we always return TRUE so we
9056         iterate again to have a look at it again. Fixes test suite hang.
9057         Code rearrangement also lets us lose some memset and only iterate
9058         over callbacks once.
9059
9060         * bus/driver.c (bus_driver_handle_message): sense of test for
9061         reply was backward
9062
9063 2003-04-16  Havoc Pennington  <hp@pobox.com>
9064
9065         * doc/dbus-specification.sgml: make spec say serials are unsigned
9066
9067         * dbus/dbus-message.h: change message serials to unsigned
9068
9069         * dbus/dbus-connection.c: adapt to message serials being unsigned
9070
9071 2003-04-15  Havoc Pennington  <hp@pobox.com>
9072
9073         * bus/bus.c: create and keep around a shared DBusUserDatabase
9074         object.
9075
9076         * bus/connection.c (bus_connection_get_groups): don't cache
9077         groups for user in the connection object, since user database
9078         object now does that.
9079
9080 2003-04-16  Havoc Pennington  <hp@redhat.com>
9081
9082         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9083         list of size counters
9084         (_dbus_message_loader_putback_message_link): put back a popped link
9085
9086         * dbus/dbus-connection.c
9087         (dbus_connection_set_max_live_messages_size): rename
9088         max_received_size
9089         (dbus_connection_get_outgoing_size): get size of outgoing
9090         queue
9091         (_dbus_connection_set_connection_counter): remove this cruft
9092
9093 2003-04-14  Havoc Pennington  <hp@redhat.com>
9094
9095         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9096         caching, but at some point we might want to be able to use a
9097         different database.
9098
9099         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9100         SHA1 conf file to test the sha1 auth mechanism, since the regular
9101         test always uses EXTERNAL when available.
9102
9103         * configure.in,
9104         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9105         add conf file that requires use of sha1 auth
9106
9107 2003-04-13  Havoc Pennington  <hp@pobox.com>
9108
9109         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9110         from Philip Blundell to send messages and monitor them.
9111
9112 2003-04-13  Havoc Pennington  <hp@pobox.com>
9113
9114         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9115         callbacks
9116
9117         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9118         users
9119
9120         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9121         fix to only recover unused bytes if we're already authenticated
9122         (_dbus_transport_get_is_authenticated): fix to still mark us
9123         authenticated if there are unused bytes.
9124
9125         * bus/dispatch.c: implement security policy checking
9126
9127         * bus/connection.c (bus_transaction_send_from_driver): new
9128
9129         * bus/bus.c (bus_context_check_security_policy): new
9130
9131         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9132         now we just set the DBusError and it gets converted to an error
9133         reply.
9134
9135         * bus/connection.c (allow_user_function): enable code using actual
9136         data from the config file
9137
9138         * bus/policy.c (list_allows_user): handle wildcard rules for
9139         user/group connection perms
9140
9141 2003-04-13  Havoc Pennington  <hp@pobox.com>
9142
9143         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9144
9145         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9146
9147         * bus/policy.c (bus_policy_append_mandatory_rule)
9148         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9149         (bus_policy_append_group_rule): new functions
9150
9151 2003-04-12  Havoc Pennington  <hp@pobox.com>
9152
9153         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9154
9155         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9156         the pid/gid/uid, just for paranoia.
9157
9158         * test/break-loader.c (randomly_do_n_things): find a byte
9159         containing a type code, and randomly change it to a different
9160         type code.
9161
9162 2003-04-12  Havoc Pennington  <hp@pobox.com>
9163
9164         * bus/policy.h: change BusPolicy to be the thing from the config
9165         file, and rename old BusPolicy to BusClientPolicy
9166
9167         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9168         match change in how policy works
9169
9170         * dbus/dbus-internals.h: mark assert_not_reached as
9171         __attribute((noreturn))__
9172
9173 2003-04-11  Havoc Pennington  <hp@redhat.com>
9174
9175         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9176         the broadcast service. Use boolean return for ServiceExists.
9177
9178 2003-04-11  Havoc Pennington  <hp@redhat.com>
9179
9180         * configure.in: add another directory to look for qt in.
9181
9182 2003-04-11  Havoc Pennington  <hp@redhat.com>
9183
9184         * AUTHORS: add Colin Walters
9185
9186 2003-04-11  Havoc Pennington  <hp@redhat.com>
9187
9188         * NEWS: update
9189
9190         * configure.in: 0.9
9191
9192 2003-04-11  Havoc Pennington  <hp@redhat.com>
9193
9194         * bus/messagebus.in: remove pid file when stopping the
9195         message bus, since the bus won't have privileges to remove it
9196         itself.
9197
9198 2003-04-11  Havoc Pennington  <hp@redhat.com>
9199
9200         * bus/bus.c (bus_context_new): move credentials change after
9201         creating pidfile
9202
9203 2003-04-11  Havoc Pennington  <hp@pobox.com>
9204
9205         * test/decode-gcov.c: add "below average functions" to the
9206         coverage report, and change how some of the code works.
9207
9208         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9209         not in the coverage stats.
9210
9211         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9212         couple places so running the test suite doesn't result in megaspam.
9213
9214 2003-04-11  Havoc Pennington  <hp@pobox.com>
9215
9216         * bus/dispatch.c (check_existent_service_activation): accept a no
9217         memory error in a place we didn't before
9218
9219         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9220         in case the first one failed," since the test suite is less
9221         broken now.
9222
9223 2003-04-10  Havoc Pennington  <hp@pobox.com>
9224
9225         * bus/dispatch.c (check_segfault_service_activation): add test
9226         for launching an executable that just crashes.
9227
9228         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9229         don't leave a million cores. We'll see how portable this is.
9230
9231 2003-04-10  Havoc Pennington  <hp@pobox.com>
9232
9233         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9234         the possible parent failures before we fork, so that we don't
9235         fail to create a babysitter after creating the child.
9236
9237         * bus/activation.c (bus_activation_activate_service): kill child
9238         if we don't successfully complete the activation.
9239
9240 2003-04-10  Havoc Pennington  <hp@redhat.com>
9241
9242         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9243         the connection if it's disconnected
9244
9245         * bus/activation.c (bus_activation_service_created): use new
9246         transaction features to roll back removal of pending activation if
9247         we don't successfully create the service after all. Don't remove
9248         pending activation if the function fails.
9249
9250         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9251         (_dbus_list_insert_after_link): new code to facilitate
9252         services.c fixes
9253
9254         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9255         new functionality, so we can preallocate the ability to insert
9256         into a hash table.
9257
9258         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9259         allowing us to put custom hooks in a transaction to be used for
9260         cancelling said transaction
9261
9262         * doc/dbus-specification.sgml: add some discussion of secondary
9263         service owners, and disallow zero-length service names
9264
9265         * bus/services.c (bus_registry_acquire_service): new function,
9266         splits out part of bus_driver_handle_acquire_service() and fixes
9267         a bug where we didn't remove the service doing the acquiring
9268         from the secondary queue if we failed to remove the current owner
9269         from the front of the queue.
9270
9271 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9272
9273         * doc/dbus-specification.sgml:
9274         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9275
9276 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9277
9278         * bus/.cvsignore:
9279         * glib/.cvsignore:
9280         * test/.cvsignore:
9281         Added files to cvsignore
9282
9283         * dbus/dbus-message.h:
9284         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9285         Make get_named() take two out argument and return a boolean.
9286         (dbus_message_iter_get_args_valist):
9287         Update usage of get_named().
9288         (dbus_message_iter_append_byte):
9289         Fix typo
9290         (dbus_message_iter_append_named)
9291         Fix typo
9292         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9293         More tests.
9294
9295 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9296
9297         * dbus/dbus-marshal.[ch]:
9298         Add array_type_pos argument to _dbus_marshal_validate_arg.
9299         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9300
9301         * dbus/dbus-message.[ch]:
9302         Multi-dimensional arrays have full type specification in the
9303         outermost array. Iter code re-arranged to handle this.
9304         Added some more iter tests.
9305
9306         * doc/dbus-specification.sgml:
9307         Add me to authors.
9308         Remove old FIXME.
9309         Update new array encoding description.
9310         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9311
9312         * test/data/invalid-messages/array-with-mixed-types.message:
9313         * test/data/valid-messages/array-of-array-of-uint32.message:
9314         Change to the new array format.
9315
9316         * test/data/invalid-messages/too-short-dict.message:
9317         Fix bug in test.
9318
9319         * test/data/valid-messages/recursive-types.message:
9320         Fix up and extend test.
9321
9322 2003-04-10  Havoc Pennington  <hp@pobox.com>
9323
9324         * bus/dispatch.c: lots of fixes
9325
9326         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9327         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9328         that was crack, broke the test service.
9329
9330         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9331         handling to avoid piling up errors if we get a failure on the
9332         first address.
9333
9334         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9335         pid in assertion failures.
9336
9337         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9338         to some fixed size of file descriptor array. Don't return TRUE
9339         anytime a timeout exists, that led to lots of busy loop silliness
9340         in the tests.
9341
9342 2003-04-09  Havoc Pennington  <hp@redhat.com>
9343
9344         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9345         I'd checked this in earlier but hadn't.
9346
9347 2003-04-09  Havoc Pennington  <hp@redhat.com>
9348
9349         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9350         the activation test (man this is getting old!)
9351
9352 2003-04-09  Havoc Pennington  <hp@redhat.com>
9353
9354         * test/test-utils.c: use dispatch status function to fix this up
9355
9356         * bus/connection.c (connection_watch_callback): don't dispatch
9357         from here
9358         (connection_timeout_callback): don't dispatch from here
9359         (bus_connections_setup_connection): set the dispatch status function
9360         (bus_connection_disconnected): unset it
9361
9362         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9363         used to add a connection to be dispatched
9364         (_dbus_loop_iterate): do the dispatching at the end of each
9365         iteration
9366
9367         * dbus/dbus-connection.c
9368         (dbus_connection_set_dispatch_status_function): new function
9369         allowing us to fix up main loop usage
9370         (_dbus_connection_last_unref): free all the various function
9371         user data
9372         (dbus_connection_dispatch): call the DispatchStatusFunction
9373         whenever this function returns
9374         (dbus_connection_handle_watch): call DispatchStatusFunction
9375         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9376         (reply_handler_timeout): call DispatchStatusFunction
9377         (dbus_connection_flush): call DispatchStatusFunction
9378
9379 2003-04-09  Havoc Pennington  <hp@redhat.com>
9380
9381         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9382         a memory leak
9383
9384         * bus/dispatch.c (check_service_activated): fix bug in test
9385
9386         * dbus/dbus-mainloop.c (check_timeout): fix this up
9387
9388         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9389         verbose output so we can sort out output from different processes,
9390         e.g. in the activation case.
9391
9392 2003-04-08  Colin Walters  <walters@gnu.org>
9393
9394         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9395         the pid file.
9396         (bus_context_new): Set it.
9397         (bus_context_unref): Use it to delete the pid file.
9398
9399 2003-04-08  Havoc Pennington  <hp@redhat.com>
9400
9401         * test/data/invalid-messages/array-with-mixed-types.message:
9402         regression test that fails for the moment
9403
9404         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9405         tests for convenience
9406
9407         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9408         array of nil, it broke things.
9409
9410         * test/data/invalid-messages/array-of-nil.message: regression test
9411
9412         * test/data/valid-messages/array-of-array-of-uint32.message:
9413         happened to write this so added it to suite
9414
9415 2003-04-08  Havoc Pennington  <hp@redhat.com>
9416
9417         * bus/driver.c (bus_driver_handle_acquire_service): init
9418         retval/reply before checking name
9419
9420         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9421         recursion depth argument
9422
9423         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9424         in the public struct for future extension
9425
9426         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9427         typo
9428
9429         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9430         message
9431
9432         * doc/dbus-specification.sgml: fix typo
9433
9434 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9435
9436         Implemented recursive types, named types and new-style iters
9437
9438         * bus/driver.c:
9439         * glib/test-thread-client.c: (thread_func):
9440         * glib/test-thread-server.c: (handle_test_message):
9441         * test/test-service.c: (handle_echo):
9442         Update to new api
9443
9444         * dbus/Makefile.am:
9445         * dbus/dbus-dict.c:
9446         * dbus/dbus-dict.h:
9447         * dbus/dbus.h
9448         Remove DBusDict
9449
9450         * dbus/dbus-internals.c: (_dbus_type_to_string):
9451         Update for new types.
9452
9453         * dbus/dbus-marshal.[ch]:
9454         Implement recursive types and the new marshalling format.
9455         Remove hardcoded dict marshalling.
9456         Marshal named types.
9457
9458         * dbus/dbus-message-builder.c:
9459         Add BYTE_ARRAY.
9460         Remove references to old types
9461
9462         * dbus/dbus-message.[ch]:
9463         New non-refcounted iter API that supports recursive iters.
9464         Use iters for appending, including support for recursive
9465         iters.
9466         Add byte and named type support.
9467         Update everything to new marshalling formats.
9468         Add tests for new API.
9469
9470         * dbus/dbus-protocol.h:
9471         Remove old array types.
9472         Add types: BYTE, ARRAY, DICT, NAMED
9473
9474         * dbus/dbus-string.c:
9475         * dbus/dbus-sysdeps.c:
9476         Make parse_double locale safe.
9477
9478         * dbus/dbus-test-main.c:
9479         Call setlocale.
9480
9481         * dbus/dbus-test.c:
9482         Kill dict test
9483
9484         * doc/dbus-specification.sgml:
9485         Update spec
9486
9487         * test/data/incomplete-messages/missing-body.message:
9488         * test/data/invalid-messages/bad-boolean.message:
9489         * test/data/invalid-messages/bad-boolean-array.message:
9490         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9491         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9492         * test/data/invalid-messages/too-short-dict.message:
9493         * test/data/valid-messages/dict-simple.message:
9494         * test/data/valid-messages/dict.message:
9495         * test/data/valid-messages/emptiness.message:
9496         * test/data/valid-messages/lots-of-arguments.message:
9497         * test/data/valid-messages/no-padding.message:
9498         * test/data/valid-messages/recursive-types.message:
9499         Add missing NAME fields
9500         Fix up dicts & arrays
9501
9502         * test/data/invalid-messages/dict-with-nil-value.message:
9503         Removed, this is not invalid anymore.
9504
9505         * test/data/valid-messages/recursive-types.message:
9506         Add new test for deeply recursive types.
9507
9508 2003-04-07  Havoc Pennington  <hp@pobox.com>
9509
9510         * bus/driver.c (bus_driver_handle_acquire_service): return an
9511         error if you try to acquire a service that starts with ':'
9512
9513 2003-04-07  Havoc Pennington  <hp@redhat.com>
9514
9515         * doc/dbus-specification.sgml: require that base service names
9516         start with ':' and that the base service is created/deleted
9517         as first and last things a connection does on the bus
9518
9519         * bus/dispatch.c (check_existent_service_activation): lots more
9520         work on the activation test; it doesn't fully pass yet...
9521
9522         * test/test-service.c (main): fix so we don't memleak the
9523         connection to the message bus
9524         (filter_func): accept a message asking us to exit
9525
9526 2003-04-06  Havoc Pennington  <hp@pobox.com>
9527
9528         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9529         from Colin Walters
9530
9531         * configure.in: fixes to Qt detection from Colin Walters
9532
9533         * doc/Makefile.am: Only remove generated docbook dirs if they
9534         exist, from Colin Walters
9535
9536         * dbus/dbus-bus.c: change how we set well-known connections to
9537         NULL, so that it works if a single connection is stored in
9538         two well-known array slots.
9539
9540         * test/Makefile.am: remove a lot of stuff that isn't immediately
9541         useful, it's in CVS history if we want it.
9542
9543         * test/test-service.c: use dbus-mainloop instead of that
9544         watch.[hc] crack
9545
9546 2003-04-06  Havoc Pennington  <hp@pobox.com>
9547
9548         * dbus/Makefile.am: split lists of sources into stuff that goes in
9549         the library, util functions that go in the lib and are also used
9550         elsewhere, and util functions that are used in tests/daemon but
9551         don't go in the lib.
9552
9553         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9554         here so it can be used in test binaries also
9555
9556 2003-04-06  Havoc Pennington  <hp@pobox.com>
9557
9558         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9559         here in the parent process, so we can return an error if it
9560         fails. Also, move some of the code into the child so the parent
9561         is less hosed if we fail midway through.
9562
9563         * bus/bus.c (bus_context_new): move pidfile detection further up
9564         in the function, before we start overwriting sockets and such.
9565
9566         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9567
9568         * configure.in: add --with-system-pid-file and --with-system-socket
9569
9570 2003-04-06  Colin Walters  <walters@verbum.org>
9571
9572         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9573
9574         * bus/system.conf.in: Declare a pidfile.
9575
9576         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9577         create one (if appropriate).
9578
9579         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9580         (struct BusConfigParser) [pidfile]: New.
9581         (element_type_to_name, merge_included, start_busconfig_child)
9582         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9583         (bus_config_parser_unref): Free it.
9584         (bus_config_parser_get_pidfile): New function.
9585
9586         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9587
9588         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9589
9590         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9591
9592         * dbus/dbus-sysdeps.h: Prototype it.
9593
9594 2003-04-06  Havoc Pennington  <hp@pobox.com>
9595
9596         * bus/bus.c (bus_context_new): print the address in here, rather
9597         than in main(), because we need to do it before forking the daemon
9598
9599         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9600         on the service nonexistent error
9601
9602         * bus/driver.c (bus_driver_handle_acquire_service): set the
9603         sender on the AcquireService reply
9604
9605         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9606         server also listen on a UNIX socket so services can connect to it.
9607
9608 2003-04-06  Havoc Pennington  <hp@pobox.com>
9609
9610         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9611         so it detects deadlocks and also we actually init threads when
9612         debugging.
9613
9614 2003-04-06  Havoc Pennington  <hp@pobox.com>
9615
9616         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9617         save the domain socket name, and unlink it when we disconnect the
9618         server. Means that at least when we exit normally, we won't leave
9619         a bunch of junk in /tmp
9620
9621         * dbus/dbus-transport-unix.c
9622         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9623         memory management). (I was making a real change here but then
9624         didn't)
9625
9626 2003-04-06  Havoc Pennington  <hp@pobox.com>
9627
9628         * bus/bus.c (bus_context_new): fix wrong handling of
9629         server_data_slot_unref() in the error case.
9630
9631         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9632         "(condition) != 0" to _dbus_real_assert so that
9633         "_dbus_assert (pointer)" doesn't cause a warning
9634
9635         * bus/main.c (main): accept --print-address option to print out
9636         the message bus address
9637
9638         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9639
9640         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9641         "tmpdir" option to unix: address on client side
9642
9643         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9644         to unix: address
9645
9646         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9647         we can use to create sockets in the test suite.
9648
9649         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9650         cleanly. To be used for testing.
9651
9652         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9653
9654         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9655
9656         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9657         handle trying to call this when there's no servers active
9658
9659 2003-04-05  Havoc Pennington  <hp@pobox.com>
9660
9661         * NEWS: update
9662
9663         * configure.in: 0.8
9664
9665 2003-04-05  Havoc Pennington  <hp@pobox.com>
9666
9667         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9668         crash on startup. Need to get "try starting the daemon"
9669         in the test suite I guess. ;-)
9670
9671         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9672         tracked the number of open connections; it's better done in
9673         application-specific code as you want it to span all servers etc.
9674
9675 2003-04-05  Havoc Pennington  <hp@pobox.com>
9676
9677         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9678         patch from Colin Walters
9679
9680 2003-04-05  Havoc Pennington  <hp@pobox.com>
9681
9682         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9683         reality; in fact multiple mechanisms are allowed.
9684
9685         * dbus/dbus-internals.c (_dbus_real_assert)
9686         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9687         _dbus_assert_not_reached() into functions, so that they don't show
9688         up in basic block counts for test coverage, and don't use up as
9689         much disk space. Does mean slower execution speed though, so
9690         assumes --disable-asserts is the normal production case.
9691
9692 2003-04-05  Havoc Pennington  <hp@pobox.com>
9693
9694         * test/Makefile.am (dist-hook): also dist *.in files
9695
9696         * NEWS: update
9697
9698         * configure.in: 0.7
9699
9700 2003-04-05  Havoc Pennington  <hp@pobox.com>
9701
9702         * dbus/dbus-string.c: docs warning
9703
9704         * dbus/dbus-spawn.c: missing docs
9705
9706         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9707
9708 2003-04-05  Havoc Pennington  <hp@pobox.com>
9709
9710         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9711         magic from GLib
9712
9713         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9714         to -1 once we've reaped the babysitter
9715         (_dbus_babysitter_handle_watch): do as much work as we can, not
9716         just one go of it
9717
9718         * bus/activation.c: add code using DBusBabysitter so that we
9719         handle it when a service fails to start up properly.
9720         (bus_activation_service_created): don't remove the activation
9721         entries as we go, just let them get removed when we free the pending
9722         activation. Unref reply messages after sending them.
9723
9724 2003-04-05  Havoc Pennington  <hp@pobox.com>
9725
9726         * test/decode-gcov.c (main): print per-directory stats in the report
9727
9728         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9729
9730 2003-04-05  Havoc Pennington  <hp@pobox.com>
9731
9732         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9733
9734         * test/decode-gcov.c: hack up a little program to suck data
9735         out of gcov files. Yes this is sort of silly.
9736
9737         * configure.in: define something in config.h and do an
9738         AM_CONDITIONAL when gcov is enabled
9739
9740 2003-04-04  Havoc Pennington  <hp@redhat.com>
9741
9742         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9743         return a "babysitter" object that is used to monitor the status of
9744         the spawned process and reap it when required.
9745
9746         * test/test-segfault.c, test/test-exit.c,
9747         test/test-sleep-forever.c: binaries that do various lame things,
9748         used in the test suite.
9749
9750         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9751
9752 2003-04-03  Havoc Pennington  <hp@pobox.com>
9753
9754         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9755         in preparation for modifying it, dbus-sysdeps is getting
9756         a bit unmanageable.
9757
9758 2003-04-03  Havoc Pennington  <hp@redhat.com>
9759
9760         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9761         have multiple ones
9762
9763         * bus/*.[hc]: adapt to mainloop change
9764
9765 2003-04-03  Havoc Pennington  <hp@redhat.com>
9766
9767         * bus/activation.c (load_directory): fix up memleaks
9768         (bus_activation_entry_free): free the entry
9769
9770         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9771         we get one from the message bus; fix memleaks.
9772
9773         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9774
9775 2003-04-03  Havoc Pennington  <hp@pobox.com>
9776
9777         * bus/config-parser.c (bus_config_parser_unref): free
9778         list of mechanisms, bug discovered by test suite enhancements
9779         (putting system.conf and session.conf into suite)
9780
9781         * test/Makefile.am, test/test-service.c: add placeholder for a
9782         test service that we'll activate as part of test suite. Doesn't
9783         do anything yet.
9784
9785         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9786         setting NULL value, and use system malloc not dbus_malloc()
9787         when we have unavoidable memleakage.
9788
9789         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9790         didn't work, and support DBUS_BUS_ACTIVATION.
9791
9792         * bus/activation.c (child_setup): pass our well-known bus type to
9793         the child
9794
9795         * bus/config-parser.c: support <type> to specify well-known type
9796
9797         * doc/dbus-specification.sgml: document the env variables to
9798         locate well-known buses and find service activator
9799
9800 2003-04-02  Havoc Pennington  <hp@redhat.com>
9801
9802         * test/Makefile.am (all-local): add a rule to copy tests to
9803         builddir, so we can have generated tests. Use this to remove the
9804         silly hack for testing system.conf and session.conf. Will use this
9805         shortly to generate .service files pointing to test binaries.
9806
9807 2003-04-02  Havoc Pennington  <hp@redhat.com>
9808
9809         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9810         current alloc and needed new length, not max of the doubled
9811         allocation and needed new length. Also, when building tests,
9812         don't do the double-allocation stuff, just realloc every time.
9813
9814 2003-04-02  Havoc Pennington  <hp@redhat.com>
9815
9816         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9817         in error messages
9818         (_dbus_string_get_dirname): new
9819         (_dbus_sysdeps_test): new
9820         (_dbus_directory_open): include dirnames in error messages
9821
9822         * bus/config-parser.c: interpret <include> and <includedir> and
9823         <servicedir> relative to config file location if the given
9824         filename is not absolute.
9825
9826         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9827
9828 2003-04-02  Havoc Pennington  <hp@redhat.com>
9829
9830         * bus/connection.c (bus_transaction_send_error_reply): set sender
9831         service for the error, and unref the reply on success
9832
9833         * bus/activation.c: convert to use BusTransaction so OOM can be
9834         handled correctly
9835         (bus_activation_service_created): set sender of the message
9836
9837 2003-04-01  Havoc Pennington  <hp@redhat.com>
9838
9839         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9840         <includedir> (at least mostly)
9841
9842         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9843         first, then the user ID
9844
9845 2003-04-01  Havoc Pennington  <hp@pobox.com>
9846
9847         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9848         function
9849
9850         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9851
9852         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9853
9854         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9855         socket 0777, and unlink any existing socket.
9856
9857         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9858         the configuration file so specifies; set up auth mechanism
9859         restrictions
9860
9861         * bus/config-parser.c (bus_config_parser_content): add support
9862         for <fork> option and fill in code for <auth>
9863
9864         * bus/system.conf.in: add <fork/> to default configuration,
9865         and limit auth mechanisms to EXTERNAL
9866
9867         * doc/config-file.txt (Elements): add <fork>
9868
9869         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9870         (_dbus_change_identity): new function
9871
9872 2003-03-31  Havoc Pennington  <hp@redhat.com>
9873
9874         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9875         (_dbus_listen_unix_socket): fix off-by-one error in null
9876         termination spotted by Nalin
9877
9878 2003-03-31  Havoc Pennington  <hp@redhat.com>
9879
9880         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9881         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9882         having a real home directory available.
9883
9884 2003-03-31  Havoc Pennington  <hp@redhat.com>
9885
9886         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9887
9888         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9889
9890         * configure.in: add support for specifying a style of init script
9891         to install
9892
9893 2003-03-31  Havoc Pennington  <hp@redhat.com>
9894
9895         Fix some annoying DBusString API and fix all affected code.
9896
9897         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9898         max_length argument
9899         (_dbus_string_get_data): change to return string instead of using
9900         an out param
9901         (_dbus_string_get_const_data): ditto
9902         (_dbus_string_get_data_len): ditto
9903         (_dbus_string_get_const_data_len): ditto
9904
9905 2003-03-31  Havoc Pennington  <hp@redhat.com>
9906
9907         * bus/main.c (main): fix up the command line arguments to be nicer
9908
9909 2003-03-31  Havoc Pennington  <hp@redhat.com>
9910
9911         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9912         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9913         final location that lands in the config file
9914
9915         * bus/config-loader-expat.c (bus_config_load): fix type of
9916         XML_Parser variable
9917
9918         * doc/TODO: remove TODO item for dbus_bus_get()
9919
9920         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9921
9922 2003-03-31  Havoc Pennington  <hp@pobox.com>
9923
9924         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9925         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9926         argument since they are always client side
9927
9928         * dbus/dbus-server.c (dbus_server_get_address): new function
9929
9930         * bus/main.c (main): take the configuration file as an argument.
9931
9932         * test/data/valid-config-files/debug-allow-all.conf: new file to
9933         use with dispatch.c tests for example
9934
9935         * bus/test-main.c (main): require test data dir
9936
9937         * bus/bus.c (bus_context_new): change this to take a
9938         configuration file name as argument
9939
9940         * doc/config-file.txt (Elements): add <servicedir>
9941
9942         * bus/system.conf, bus/session.conf: new files
9943
9944         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9945         well-known socket if none set
9946
9947         * configure.in: create system.conf and session.conf
9948
9949 2003-03-30  Havoc Pennington  <hp@pobox.com>
9950
9951         * bus/config-parser.c: hacking
9952
9953         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9954         to shut down, since it could cause weirdness with the DBusList
9955         lock
9956
9957         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9958         link-oriented stack routines
9959         (alloc_link): free the mempool if the first alloc from it fails
9960
9961         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9962
9963         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9964         from GLib
9965         (_dbus_string_skip_white): new
9966
9967         * doc/config-file.txt (Elements): add <includedir>
9968
9969 2003-03-28  Havoc Pennington  <hp@pobox.com>
9970
9971         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9972         (_dbus_string_copy_data): new functions
9973
9974 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9975
9976         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9977         * dbus/dbus-bus.h:
9978         Add dbus_bus_get.
9979
9980         * dbus/dbus-memory.c:
9981         Fix a doc comment.
9982
9983 2003-03-28  Havoc Pennington  <hp@pobox.com>
9984
9985         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9986         I think it may have just been superstition. Not sure.
9987
9988         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9989         failures that were not being handled.
9990
9991         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9992
9993         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9994         row that will fail on out-of-memory.
9995
9996         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9997         function for testing out-of-memory handling.
9998
9999         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10000         allocation functions, they do map exactly to the expat ones.
10001
10002 2003-03-27  Havoc Pennington  <hp@redhat.com>
10003
10004         * bus/config-loader-libxml.c (bus_config_load): add another error
10005         check
10006
10007 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10008
10009         * doc/TODO:
10010         Add note about automatic service activation.
10011
10012         * doc/dbus-specification.sgml:
10013         Rename the specification and clarify a few things.
10014
10015 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10016
10017         * Doxyfile.in:
10018         * dbus/dbus-address.c:
10019         * dbus/dbus-dict.c:
10020         * dbus/dbus-marshal.c:
10021         * dbus/dbus-server-debug-pipe.c:
10022         * dbus/dbus-transport-unix.c:
10023         Fix documentation warnings.
10024
10025 2003-03-26  Havoc Pennington  <hp@pobox.com>
10026
10027         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10028         after every test so it's quick and easy to see which leaked, and
10029         so we test multiple dbus_shutdown() calls
10030
10031         * configure.in: change configure.in XML stuff to also support
10032         expat
10033
10034         * config-loader-libxml.c: some hacking
10035
10036         * config-loader-expat.c: some hacking
10037
10038         * config-parser.c: some hacking, plus tests
10039
10040 2003-03-25  Havoc Pennington  <hp@redhat.com>
10041
10042         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10043
10044         * configure.in: add --with-xml option to specify XML library,
10045         right now only libxml is supported.
10046
10047         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10048         nonworking code between home and work, still just stubs
10049
10050 2003-03-24  Havoc Pennington  <hp@redhat.com>
10051
10052         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10053         file
10054
10055         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10056         NULL argument for "message" if the error is a well-known one,
10057         fill in a generic message in this case.
10058
10059         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10060         favor of DBusError
10061
10062         * bus/test.c (bus_test_flush_bus): add
10063
10064         * bus/policy.c (bus_policy_test): test code stub
10065
10066 2003-03-24  Havoc Pennington  <hp@pobox.com>
10067
10068         * bus/connection.c (bus_connections_setup_connection): set up
10069         the "can this user connect" function, but it always returns
10070         TRUE until we have a config file parser so we can have a config
10071         file that allows connections.
10072
10073 2003-03-23  Havoc Pennington  <hp@pobox.com>
10074
10075         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10076         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10077         the mutex, so we can check for proper memory management
10078         and OOM handling.
10079
10080         * dbus/dbus-dataslot.c: remove the mutex from
10081         DBusDataSlotAllocator and lock it manually when using it,
10082         to simplify fitting it into the global slots framework.
10083
10084         * dbus/dbus-threads.c (init_static_locks): rework how we're
10085         handling global locks so they are easily shut down.
10086
10087         * bus/policy.c (bus_policy_append_rule): fix
10088
10089         * bus/test-main.c (main): check for memleaks
10090
10091         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10092         test suite check for memleaks
10093
10094         * dbus/dbus-memory.c: add support in test mode for tracking
10095         number of outstanding blocks
10096
10097 2003-03-23  Havoc Pennington  <hp@pobox.com>
10098
10099         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10100         policies code
10101
10102         * dbus/dbus-hash.h: add ULONG hash keys
10103
10104         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10105         (_dbus_get_group_id): new function
10106
10107 2003-03-20  Havoc Pennington  <hp@redhat.com>
10108
10109         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10110         new function
10111         (dbus_connection_get_unix_user): new function
10112
10113 2003-03-20  Havoc Pennington  <hp@pobox.com>
10114
10115         * bus/connection.c (bus_connection_send_oom_error): assert that
10116         message has a sender
10117         (connection_execute_transaction): ditto
10118         (bus_connection_preallocate_oom_error): fix to set the sender, and
10119         set recipient to the destination service, not the bus driver
10120
10121         * bus/policy.c: hacking
10122
10123         * dbus/dbus-message.c (dbus_message_service_is): new function
10124         (dbus_message_sender_is): new
10125
10126 2003-03-19  Havoc Pennington  <hp@redhat.com>
10127
10128         * bus/policy.c: start sketching code for policy restrictions on
10129         what connections can do.
10130
10131 2003-03-18  Havoc Pennington  <hp@redhat.com>
10132
10133         * doc/TODO: some notes on high-level todo items. Little nitpick
10134         stuff is all in @todo, so no need to add it here.
10135
10136         * doc/config-file.txt: some notes on how config file might look
10137
10138 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10139
10140         * configure.in: 0.6
10141
10142         * NEWS: Update.
10143
10144 2003-03-17  Havoc Pennington  <hp@redhat.com>
10145
10146         * dbus/dbus-internals.h: add gcc attributes so that
10147         our printf-style functions warn on bad arguments to
10148         format
10149
10150         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10151         format bug
10152
10153         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10154         printf format bug
10155
10156 2003-03-17  Havoc Pennington  <hp@redhat.com>
10157
10158         * bus/test-main.c (main): make it print something as it runs
10159         so make check doesn't look stuck
10160
10161         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10162         from CVS, now obsolete
10163
10164 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10165
10166         * bus/dispatch.c: (bus_dispatch):
10167         Refetch the service name since it may have been reallocated
10168         when dbus_message_set_sender was called.
10169
10170         * dbus/dbus-sysdeps.c: (_dbus_accept):
10171         Add address and address length variables and use them to stop
10172         valgrind from complaining.
10173
10174 2003-03-17  Havoc Pennington  <hp@pobox.com>
10175
10176         All tests pass, no memleaks, no valgrind complaints.
10177
10178         * bus/test.c: refcount handler_slot
10179
10180         * bus/connection.c (bus_connections_new): refcount
10181         connection_data_slot
10182
10183         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10184         bytes so that auth scripts pass.
10185
10186         * bus/dispatch.c: init message_handler_slot so it gets allocated
10187         properly
10188
10189         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10190
10191         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10192         dealloc server_pipe_hash when no longer used for benefit of
10193         leak checking
10194
10195         * dbus/dbus-auth.c (process_command): memleak fix
10196
10197         * bus/dispatch.c (check_hello_message): memleak fix
10198
10199 2003-03-16  Havoc Pennington  <hp@pobox.com>
10200
10201         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10202
10203 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10204
10205         * bus/activation.c (bus_activation_activate_service): Append
10206         the pending activation entry to the list of pending activations.
10207
10208 2003-03-16  Havoc Pennington  <hp@pobox.com>
10209
10210         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10211         connections
10212
10213         * dbus/dbus-address.c (create_entry): fix OOM handling when
10214         failing to alloc entry->method
10215
10216 2003-03-16  Havoc Pennington  <hp@pobox.com>
10217
10218         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10219         the watch
10220
10221         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10222         add some missing dbus_set_result
10223
10224         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10225         alloc the DBusMessageHandler
10226
10227         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10228         the transport here, since we call this from the finalizer; it
10229         resulted in a double-finalize.
10230
10231         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10232         where we tried to use transport->connection that was NULL,
10233         happened when transport was disconnected early on due to OOM
10234
10235         * bus/*.c: adapt to handle OOM for watches/timeouts
10236
10237         * dbus/dbus-transport-unix.c: port to handle OOM during
10238         watch handling
10239
10240         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10241         reference to unused bytes instead of a copy
10242
10243         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10244         out of memory
10245
10246         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10247         FALSE on OOM
10248
10249         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10250         of memory
10251
10252 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10253
10254         * doc/dbus-specification.sgml:
10255         Document reply message for ActivateService.
10256
10257 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10258
10259         * bus/activation.c: (bus_pending_activation_entry_free),
10260         (bus_pending_activation_free), (bus_activation_new),
10261         (bus_activation_unref), (bus_activation_service_created),
10262         (bus_activation_activate_service):
10263         * bus/activation.h:
10264         * bus/bus.c: (bus_context_new):
10265         * bus/desktop-file.c: (new_section):
10266         * bus/driver.c: (bus_driver_send_service_deleted),
10267         (bus_driver_handle_activate_service):
10268         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10269         * bus/services.h:
10270         * dbus/dbus-connection.c:
10271         (dbus_connection_send_with_reply_and_block):
10272         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10273         * dbus/dbus-protocol.h:
10274         Make activation work better. Now pending activations will be queued
10275         and the daemon won't try to activate services that are already registered.
10276
10277 2003-03-16  Havoc Pennington  <hp@pobox.com>
10278
10279         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10280         connection data
10281
10282         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10283         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10284
10285 2003-03-16  Havoc Pennington  <hp@pobox.com>
10286
10287         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10288         this. always run the test suite before commit...
10289
10290         * bus/*: adapt to DBusConnection API changes
10291
10292         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10293         requires renaming stuff to avoid dbus_connection_dispatch name
10294         conflict.
10295
10296         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10297         function
10298
10299         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10300         separate from _dbus_message_loader_return_buffer()
10301
10302         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10303         this, because it's now always broken to use; the number of
10304         messages in queue vs. the number still buffered by the message
10305         loader is undefined/meaningless. Should use
10306         dbus_connection_get_dispatch_state().
10307         (dbus_connection_dispatch): rename from
10308         dbus_connection_dispatch_message
10309
10310 2003-03-16  Havoc Pennington  <hp@pobox.com>
10311
10312         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10313         implementation
10314
10315 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10316
10317         * dbus/dbus-connection.c:
10318         (dbus_connection_send_with_reply_and_block):
10319         Decrease connection->n_incoming when removing an entry
10320         from the list.
10321         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10322         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10323         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10324         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10325         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10326         (dbus_dict_get_byte_array):
10327         Handle NULL arrays and strings. Also add support for byte arrays.
10328
10329         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10330         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10331         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10332         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10333         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10334         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10335         * dbus/dbus-marshal.h:
10336         Add support for marshalling and demarshalling empty arrays and strings.
10337
10338         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10339         (dbus_message_append_string_array),
10340         (dbus_message_iter_get_boolean),
10341         (dbus_message_iter_get_boolean_array),
10342         (dbus_message_iter_get_int32_array),
10343         (dbus_message_iter_get_uint32_array),
10344         (dbus_message_iter_get_double_array),
10345         (dbus_message_iter_get_byte_array),
10346         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10347         (check_message_handling):
10348         Add support for getting empty arrays and dicts.
10349
10350         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10351         Don't do any validation at all for now, that's better than just checking
10352         for ASCII.
10353
10354         * test/data/valid-messages/emptiness.message:
10355         New test message with lots of empty arrays.
10356
10357 2003-03-16  Havoc Pennington  <hp@pobox.com>
10358
10359         * dbus/dbus-connection.c
10360         (_dbus_connection_queue_received_message_link): new function that
10361         can't fail due to OOM
10362
10363         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10364         new function pops a message together with a list link
10365         containing it.
10366
10367         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10368         message queuing functions to avoid needing to alloc memory
10369
10370 2003-03-16  Havoc Pennington  <hp@pobox.com>
10371
10372         Oops - test code was only testing failure of around 30 of the
10373         mallocs in the test path, but it turns out there are 500+
10374         mallocs. I believe this was due to misguided linking setup such
10375         that there was one copy of dbus_malloc etc. in the daemon and one
10376         in the shared lib, and only daemon mallocs were tested. In any
10377         case, the test case now tests all 500+ mallocs, and doesn't pass
10378         yet, though there are lots of fixes in this patch.
10379
10380         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10381         this so that it doesn't need to allocate memory, since it
10382         has no way of indicating failure due to OOM (and would be
10383         annoying if it did).
10384
10385         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10386
10387         * bus/Makefile.am: rearrange to create two self-contained
10388         libraries, to avoid having libraries with overlapping symbols.
10389         that was resulting in weirdness, e.g. I'm pretty sure there
10390         were two copies of global static variables.
10391
10392         * dbus/dbus-internals.c: move the malloc debug stuff to
10393         dbus-memory.c
10394
10395         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10396         empty.
10397
10398         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10399
10400         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10401         on failure.
10402
10403         * bus/dispatch.c (bus_dispatch_add_connection): free
10404         message_handler_slot when no longer using it, so
10405         memory leak checkers are happy for the test suite.
10406
10407         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10408
10409         * bus/bus.c (new_connection_callback): disconnect in here if
10410         bus_connections_setup_connection fails.
10411
10412         * bus/connection.c (bus_connections_unref): fix to free the
10413         connections
10414         (bus_connections_setup_connection): if this fails, don't
10415         disconnect the connection, just be sure there are no side
10416         effects.
10417
10418         * dbus/dbus-string.c (undo_alignment): unbreak this
10419
10420         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10421         leaking
10422         (_dbus_auth_new): fix the order in which we free strings
10423         on OOM failure
10424
10425         * bus/connection.c (bus_connection_disconnected): fix to
10426         not send ServiceDeleted multiple times in case of memory
10427         allocation failure
10428
10429         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10430         get the base service name
10431         (dbus_bus_register_client): don't return base service name,
10432         instead store it on the DBusConnection and have an accessor
10433         function for it.
10434         (dbus_bus_register_client): rename dbus_bus_register()
10435
10436         * bus/dispatch.c (check_hello_message): verify that other
10437         connections on the bus also got the correct results, not
10438         just the one sending hello
10439
10440 2003-03-15  Havoc Pennington  <hp@pobox.com>
10441
10442         Make it pass the Hello handling test including all OOM codepaths.
10443         Now to do other messages...
10444
10445         * bus/services.c (bus_service_remove_owner): fix crash when
10446         removing owner from an empty list of owners
10447         (bus_registry_ensure): don't leave service in the list of
10448         a connection's owned services if we fail to put the service
10449         in the hash table.
10450
10451         * bus/connection.c (bus_connection_preallocate_oom_error): set
10452         error flag on the OOM error.
10453
10454         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10455         handle _dbus_transport_set_connection failure
10456
10457         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10458         to create watches up front and simply enable/disable them as
10459         needed.
10460         (unix_connection_set): this can now fail on OOM
10461
10462         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10463         of enabling/disabling a watch or timeout.
10464
10465         * bus/loop.c (bus_loop_iterate): don't touch disabled
10466         watches/timeouts
10467
10468         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10469
10470 2003-03-15  Havoc Pennington  <hp@pobox.com>
10471
10472         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10473         write useful test code, after all that futzing around ;-)
10474
10475         Test does not yet pass because we can't handle OOM in
10476         _dbus_transport_messages_pending (basically,
10477         dbus_connection_preallocate_send() does not prealloc the write
10478         watch). To fix this, I think we need to add new stuff to
10479         set_watch_functions, namely a SetEnabled function so we can alloc
10480         the watch earlier, then enable it later.
10481
10482         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10483         dbus-memory.c to the convenience lib
10484
10485         * bus/test.c: rename some static functions to keep them clearly
10486         distinct from stuff in connection.c. Handle client disconnection.
10487
10488 2003-03-14  Havoc Pennington  <hp@pobox.com>
10489
10490         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10491         transport, tests more of the real codepath. Set up clients
10492         with bus_setup_debug_client.
10493
10494         * bus/test.c (bus_setup_debug_client): function to set up debug
10495         "clients" on the main loop
10496
10497         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10498         support
10499
10500         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10501         server type
10502
10503         * dbus/dbus-server-debug.c: support a debug server based on pipes
10504
10505         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10506         (_dbus_close): new function
10507
10508         * configure.in: check for socketpair
10509
10510 2003-03-14  Havoc Pennington  <hp@redhat.com>
10511
10512         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10513         cheesy hack
10514
10515         * dbus/dbus-transport-debug.c: rework this a good bit to be
10516         less complicated. hopefully still works.
10517
10518         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10519         manually
10520
10521         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10522         after running it
10523
10524         * dbus/dbus-message.c (dbus_message_copy): rename from
10525         dbus_message_new_from_message, fix it up to copy
10526         all the message fields, add test case
10527
10528         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10529         not quite passing yet
10530
10531 2003-03-14  Havoc Pennington  <hp@pobox.com>
10532
10533         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10534         until no work remains" in test code. (the large diff here
10535         is just code movement, no actual changes)
10536
10537         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10538         1, no point waiting around for test code.
10539         (_dbus_server_debug_accept_transport): unref the timeout
10540         after adding it (right?)
10541
10542         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10543
10544 2003-03-13  Havoc Pennington  <hp@redhat.com>
10545
10546         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10547         out of memory
10548
10549         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10550         of memory
10551
10552         * dbus/dbus-connection.h: Make AddWatchFunction and
10553         AddTimeoutFunction return a bool so they can fail on out-of-memory
10554
10555         * bus/bus.c (bus_context_new): set up timeout handlers
10556
10557         * bus/connection.c (bus_connections_setup_connection): set up
10558         timeout handlers
10559
10560         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10561         can fail
10562
10563         * bus/bus.c (bus_context_new): adapt to changes
10564
10565         * bus/connection.c: adapt to changes
10566
10567         * test/watch.c: adapt to DBusWatch changes
10568
10569         * bus/dispatch.c (bus_dispatch_test): started adding this but
10570         didn't finish
10571
10572 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10573
10574         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10575
10576 2003-03-13  Havoc Pennington  <hp@pobox.com>
10577
10578         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10579         set up a test framework as for the library
10580
10581 2003-03-12  Havoc Pennington  <hp@pobox.com>
10582
10583         Throughout: purge global variables, introduce BusActivation,
10584         BusConnections, BusRegistry, etc. objects instead.
10585
10586         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10587         message bus object
10588
10589         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10590         going to redo this a bit differently I think
10591
10592 2003-03-12  Havoc Pennington  <hp@redhat.com>
10593
10594         Mega-patch that gets the message bus daemon initially handling
10595         out-of-memory. Work still needed. Also lots of random
10596         moving stuff to DBusError instead of ResultCode.
10597
10598         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10599
10600         * dbus/dbus-connection.c
10601         (dbus_connection_send_with_reply_and_block): use DBusError
10602
10603         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10604         DBusResultCode
10605
10606         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10607         code here, as the only failure possible is OOM.
10608
10609         * bus/connection.c (bus_connection_disconnect):
10610         rename bus_connection_disconnected as it's a notification only
10611
10612         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10613         "name" on get_args failure, should be done by get_args;
10614         don't disconnect client for bad args, just return an error.
10615         (bus_driver_handle_service_exists): ditto
10616
10617         * bus/services.c (bus_services_list): NULL-terminate returned array
10618
10619         * bus/driver.c (bus_driver_send_service_lost)
10620         (bus_driver_send_service_acquired): send messages from driver to a
10621         specific client to the client's unique name, not to the broadcast
10622         service.
10623
10624         * dbus/dbus-message.c (decode_header_data): reject messages that
10625         contain no name field
10626         (_dbus_message_get_client_serial): rename to
10627         dbus_message_get_serial and make public
10628         (_dbus_message_set_serial): rename from set_client_serial
10629         (_dbus_message_set_reply_serial): make public
10630         (_dbus_message_get_reply_serial): make public
10631
10632         * bus/connection.c (bus_connection_foreach): allow stopping
10633         iteration by returning FALSE from foreach function.
10634
10635         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10636         (dbus_connection_free_preallocated_send)
10637         (dbus_connection_preallocate_send): new API for sending a message
10638         without possibility of malloc failure.
10639         (dbus_connection_send_message): rename to just
10640         dbus_connection_send (and same for whole function family)
10641
10642         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10643
10644         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10645
10646         * bus/activation.c: handle/return errors
10647
10648         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10649
10650         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10651         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10652         (_dbus_result_from_errno): move to this file
10653
10654 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10655
10656         * dbus/dbus-marshal.c:
10657         (_dbus_marshal_set_string):
10658         Take a length argument so we can marshal the correct string
10659         length.
10660
10661         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10662         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10663         (_dbus_marshal_test):
10664         * dbus/dbus-marshal.h:
10665         Add support for marshalling and demarshalling dicts.
10666
10667         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10668         Add support for TYPE DICT.
10669
10670         * dbus/dbus-message.c: (set_string_field):
10671         Adjust header padding.
10672
10673         (dbus_message_append_args_valist), (dbus_message_append_dict),
10674         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10675         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10676         (check_message_handling), (check_have_valid_message):
10677         * dbus/dbus-message.h:
10678         Add functions for setting and getting dicts.
10679
10680         * dbus/dbus-protocol.h:
10681         Add DBUS_TYPE_DICT.
10682
10683         * dbus/dbus.h:
10684         Add dbus-dict.h
10685
10686         * doc/dbus-specification.sgml:
10687         Add information about how dicts are marshalled.
10688
10689         * test/data/invalid-messages/dict-with-nil-value.message:
10690         * test/data/invalid-messages/too-short-dict.message:
10691         * test/data/valid-messages/dict-simple.message:
10692         * test/data/valid-messages/dict.message:
10693         Add sample messages containing dicts.
10694
10695 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10696
10697         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10698
10699 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10700
10701         * dbus/Makefile.am:
10702         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10703         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10704         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10705         (dbus_dict_set_double), (dbus_dict_set_string),
10706         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10707         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10708         (dbus_dict_set_string_array), (_dbus_dict_test):
10709         * dbus/dbus-dict.h:
10710         Fix according to comments from Havoc.
10711
10712 2003-03-06  Michael Meeks  <michael@server.home>
10713
10714         * configure.in: if we don't have kde-config, disable have_qt.
10715
10716 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10717
10718         * dbus/Makefile.am:
10719         Add dbus-dict.[ch]
10720
10721         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10722         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10723         (dbus_dict_remove), (dbus_dict_get_value_type),
10724         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10725         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10726         (dbus_dict_put_double), (dbus_dict_put_string),
10727         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10728         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10729         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10730         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10731         (dbus_dict_get_double), (dbus_dict_get_string),
10732         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10733         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10734         (dbus_dict_get_string_array), (_dbus_dict_test):
10735         * dbus/dbus-dict.h:
10736         Add DBusDict implementation
10737
10738         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10739         * dbus/dbus-test.h:
10740         Add _dbus_dict_test
10741
10742 2003-03-04  Havoc Pennington  <hp@pobox.com>
10743
10744         * test/data/auth/*: adapt to changes
10745
10746         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10747         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10748         userid
10749
10750         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10751         more stuff from being in a context name, to make the protocol
10752         simpler to deal with
10753
10754         * dbus/dbus-errors.c (dbus_error_has_name): new function
10755         (dbus_error_is_set): new function
10756
10757         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10758         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10759
10760         * dbus/dbus-connection.c (dbus_connection_flush): also read
10761         messages during a flush operation
10762
10763         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10764
10765 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10766
10767         * configure.in: Check for gethostbyname on Solaris.
10768
10769         * dbus/dbus-transport.c: (_dbus_transport_open):
10770         Remove duplicate "tcp" entry.
10771
10772         * doc/dbus-specification.sgml:
10773         Clarify some things.
10774
10775 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10776
10777         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10778         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10779         (_dbus_keyring_test):
10780         * dbus/dbus-md5.c: (_dbus_md5_compute):
10781         * dbus/dbus-sha.c: (_dbus_sha_compute):
10782         Plug memory leaks.
10783
10784 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10785
10786         * README: Add some things.
10787
10788 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10789
10790         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10791         after case DBUS_TYPE_BOOELAN.
10792
10793 2003-03-02  Havoc Pennington  <hp@pobox.com>
10794
10795         * test/break-loader.c (randomly_set_extreme_ints): add test that
10796         sets really huge and small integers
10797
10798         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10799         that length of boolean array fits in the string, and that
10800         string has room for boolean value in single-bool case.
10801
10802         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10803         optional value to "ALIGN" command which is what to fill the
10804         alignment with.
10805
10806         * test/data/valid-messages/no-padding.message: add regression
10807         test for the message padding problem
10808
10809 2003-03-02  Havoc Pennington  <hp@pobox.com>
10810
10811         * dbus/dbus-message.c (decode_header_data): fix to always init
10812         message_padding, from Benjamin Dauvergne
10813
10814 2003-03-02  Havoc Pennington  <hp@pobox.com>
10815
10816         * configure.in: 0.5
10817
10818         * NEWS: Update.
10819
10820 2003-03-01  Joe Shaw  <joe@assbarn.com>
10821
10822         * configure.in: Check for "struct cmsgcred" and try to access its
10823         members for BSD-like unices.
10824
10825         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10826         _dbus_read_credentials_unix_socket().
10827         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10828         read() for reading the credential byte off the unix socket.  Use
10829         struct cmsgcred on systems that support it.
10830
10831 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10832
10833         * glib/Makefile.am:
10834         * configure.in:
10835         Make gthreads-2.0 dependency optional. Don't build thread test if
10836         its not found.
10837
10838 2003-02-27  Havoc Pennington  <hp@pobox.com>
10839
10840         * dbus/dbus-connection.c
10841         (dbus_connection_send_message_with_reply_and_block): fix doh!
10842         doh! doh! bug that resulted in never removing a reply from the
10843         queue, no wonder we called get_reply_serial so much ;-)
10844
10845         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10846         and client serial instead of demarshaling them every time
10847
10848 2003-02-27  Havoc Pennington  <hp@pobox.com>
10849
10850         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10851         more inlined, using dbus-string-private.h, speeds things up
10852         substantially
10853
10854         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10855         when freeing the string
10856         (_dbus_string_steal_data): fix for align offset
10857         (undo_alignment): new function
10858
10859 2003-02-26  Havoc Pennington  <hp@redhat.com>
10860
10861         All kinds of audit fixes from Owen, plus initial attempt to
10862         handle unaligned memory returned from malloc.
10863
10864         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10865         leave room for align_offset and nul byte
10866         (fixup_alignment): function to track an align_offset and
10867         ensure real->str is aligned
10868         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10869         to allow a nul byte plus align offset
10870         (_dbus_string_lock): fix overflow issue
10871         (_dbus_string_init_const_len): add assertions on sanity of len,
10872         assign allocated to be ALLOCATION_PADDING larger than len
10873         (set_length): fixup the overflow handling
10874         (_dbus_string_get_data_len): fix overflow in assertion
10875         (open_gap): detect overflow in size of gap to be opened
10876         (_dbus_string_lengthen): add overflow check
10877         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10878         (_dbus_string_append): add overflow check
10879         (_dbus_string_append_unichar): overflow
10880         (_dbus_string_delete): fix overflow in assertion
10881         (_dbus_string_copy_len): overflow in assertion
10882         (_dbus_string_replace_len): overflows in assertions
10883         (_dbus_string_find): change to implement in terms of
10884         _dbus_string_find_to
10885         (_dbus_string_find_to): assorted fixage
10886         (_dbus_string_equal_c_str): assert c_str != NULL,
10887         fix logic so the function works
10888         (_dbus_string_ends_with_c_str): fix overflow thingy
10889         (_dbus_string_base64_encode): overflow fix
10890         (_dbus_string_validate_ascii): overflow
10891         (_dbus_string_validate_nul): overflow
10892
10893 2003-02-26  Havoc Pennington  <hp@redhat.com>
10894
10895         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10896
10897 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10898
10899         * configure.in:
10900         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10901
10902         * dbus/dbus-connection.c:
10903         * dbus/dbus-connection.h:
10904         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10905         Add dbus_connection_set_wakeup_main_function and use it when queueing
10906         incoming and outgoing messages.
10907
10908
10909         * dbus/dbus-dataslot.c:
10910         Threadsafe usage of DBusDataSlotAllocator
10911
10912         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10913         dbus_new can fail.
10914
10915         * dbus/dbus-server-unix.c:
10916         Add todo comment
10917
10918         * glib/dbus-gmain.c:
10919         Implement the new wakeup functions for glib.
10920
10921         * glib/Makefile.am:
10922         * glib/test-thread-client.c:
10923         * glib/test-thread-server.c:
10924         * glib/test-thread.h:
10925         Initial cut at some thread test code. Not really done yet.
10926
10927 2003-02-26  Havoc Pennington  <hp@pobox.com>
10928
10929         * dbus/dbus-connection.c
10930         (dbus_connection_send_message_with_reply_and_block): fix crash
10931         where we ref'd the outgoing message instead of the returned reply
10932
10933         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10934         at the end of this function, so if we didn't need to read for
10935         authentication, we reinstall it for receiving messages
10936
10937         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10938         a NULL sender for peer-to-peer case
10939
10940         * dbus/dbus-transport-unix.c (check_read_watch): handle
10941         !authenticated case correctly
10942
10943         * glib/dbus-gmain.c: add support for DBusServer
10944
10945         * dbus/dbus-server.c: add data slot support
10946
10947         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10948         return values and handle errors
10949
10950         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10951         DBusConnection
10952
10953         * Doxyfile.in (INPUT): add glib subdir
10954
10955         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10956         setup_with_g_main instead of hookup_with_g_main; write docs
10957
10958 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10959
10960         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10961         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10962         * dbus/dbus-message.c: (dbus_message_append_boolean),
10963         (dbus_message_append_boolean_array),
10964         (dbus_message_get_args_valist), (_dbus_message_test):
10965         * dbus/dbus-message.h:
10966         * doc/dbus-specification.sgml:
10967         Various fixes as pointed out by Havoc.
10968
10969         * test/data/invalid-messages/bad-boolean-array.message:
10970         * test/data/invalid-messages/bad-boolean.message:
10971         Add invalid boolean value test cases.
10972
10973 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10974
10975         * dbus/dbus-internals.c: (_dbus_type_to_string):
10976         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10977         (_dbus_marshal_validate_arg):
10978         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10979         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10980         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10981         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10982         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10983         (dbus_message_iter_get_double),
10984         (dbus_message_iter_get_boolean_array), (message_iter_test):
10985         * dbus/dbus-message.h:
10986         * dbus/dbus-protocol.h:
10987         * doc/dbus-specification.sgml:
10988         * test/data/valid-messages/lots-of-arguments.message:
10989         Add support for boolean and boolean array types.
10990
10991 2003-02-23  Havoc Pennington  <hp@pobox.com>
10992
10993         * dbus/dbus-keyring.c: finish most of this implementation and
10994         simple unit test
10995
10996         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10997         these barf if the error isn't cleared to NULL
10998
10999         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11000         (_dbus_create_directory): new function
11001
11002         * dbus/dbus-errors.c (dbus_set_error): fix warning
11003
11004         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11005         (_dbus_string_hex_decode): new function
11006         (test_hex_roundtrip): test code
11007
11008         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11009
11010         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11011
11012         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11013         the save-to-temp/rename trick to atomically write the new file
11014         (_dbus_string_parse_uint): new function
11015
11016 2003-02-22  Havoc Pennington  <hp@pobox.com>
11017
11018         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11019
11020 2003-02-22  Havoc Pennington  <hp@pobox.com>
11021
11022         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11023         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11024
11025         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11026
11027         * dbus/test/data/sha-1: add US government test suite for SHA-1
11028
11029 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11030
11031         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11032         Make string arrays NULL-terminated.
11033
11034         * dbus/dbus-memory.c: (dbus_free_string_array):
11035         * dbus/dbus-memory.h:
11036         New function for freeing NULL-terminated string arrays.
11037
11038         * dbus/dbus-message-builder.c: (append_quoted_string),
11039         (_dbus_message_data_load):
11040         Add support for array types.
11041
11042         * dbus/dbus-message.c: (check_message_handling):
11043         Add more types as test cases.
11044
11045         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11046         (_dbus_string_parse_double):
11047         Add the start offset to the end offset.
11048
11049         * test/data/valid-messages/lots-of-arguments.message:
11050         New test message with lots of arguments.
11051
11052 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11053
11054         * dbus/dbus-message.c: (dbus_message_append_nil),
11055         (dbus_message_append_int32), (dbus_message_append_uint32),
11056         (dbus_message_append_double), (dbus_message_append_string),
11057         (dbus_message_append_int32_array),
11058         (dbus_message_append_uint32_array),
11059         (dbus_message_append_double_array),
11060         (dbus_message_append_byte_array),
11061         (dbus_message_append_string_array):
11062         Fix all out-of-memory handling in these functions.
11063
11064 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11065
11066         * dbus/dbus-message.c: (dbus_message_append_nil):
11067         Fix a silly.
11068
11069 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11070
11071         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11072         (dbus_message_append_nil), (dbus_message_append_int32_array),
11073         (dbus_message_append_uint32_array),
11074         (dbus_message_append_double_array),
11075         (dbus_message_append_byte_array),
11076         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11077         (dbus_message_iter_get_int32_array),
11078         (dbus_message_iter_get_uint32_array),
11079         (dbus_message_iter_get_double_array),
11080         (dbus_message_iter_get_byte_array),
11081         (dbus_message_iter_get_string_array):
11082
11083         * dbus/dbus-message.h:
11084         Add functions for appending and getting arrays.
11085
11086 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11087
11088         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11089         element size at least 8 bytes, fixes mempool tests on
11090         64-bit machines.
11091
11092 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11093
11094         * dbus/dbus-transport-unix.c (unix_do_iteration):
11095         Unlock the connection mutex during a blocking select call.
11096         Add todo about how we need a way to wake up the select.
11097
11098         * dbus/dbus-connection-internal.h:
11099         * dbus/dbus-connection.c:
11100         Add _dbus_connection_lock and _dbus_connection_unlock.
11101
11102 2003-02-19  Havoc Pennington  <hp@pobox.com>
11103
11104         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11105         Doxyfile.in, not Doxyfile
11106
11107         * dbus/dbus-keyring.c: do some hacking on this
11108
11109         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11110
11111         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11112         dbus_error_init
11113         (dbus_set_error): remove dbus_error_init, check for message ==
11114         NULL *before* we sprintf into it, and add @todo about including
11115         system headers in this file
11116
11117         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11118
11119         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11120
11121         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11122         get various bits of user information based on either username
11123         or user ID
11124         (_dbus_homedir_from_username): new function
11125
11126 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11127
11128         * configure.in:
11129         Add check for nonposix getpwnam_r
11130
11131         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11132         Align the pool element size to a sizeof (void *) boundary.
11133
11134         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11135         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11136         General Solaris fixes.
11137
11138         * test/data/valid-messages/simplest-manual.message:
11139         Explicitly state that we want little-endian packing.
11140
11141 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11142
11143         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11144
11145         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11146         Added to create a transport connecting using a tcp/ip socket.
11147
11148         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11149         to a tcp socket at given host and port.
11150         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11151         hostname and port.
11152
11153         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11154
11155         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11156         Added to create a server listening on a TCP/IP socket.
11157
11158 2003-02-19  Havoc Pennington  <hp@pobox.com>
11159
11160         Throughout: mop up all the Doxygen warnings and undocumented
11161         stuff.
11162
11163         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11164         to search any paths.
11165
11166         * dbus/dbus-threads.c: move global mutex initializers to
11167         dbus-internals.h, multiple prototypes was confusing doxygen
11168         besides being kind of ugly
11169
11170         * Doxyfile (PREDEFINED): have Doxygen define
11171         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11172         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11173         (do not abuse the feature! it's for stuff like the autogenerated
11174         macros in dbus-md5.c, not just for things you don't feel like
11175         documenting...)
11176
11177 2003-02-18  Havoc Pennington  <hp@pobox.com>
11178
11179         * dbus/dbus-string.c (_dbus_string_zero): new function
11180
11181         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11182         wrap it in some dbus-friendly API
11183
11184         * dbus/dbus-types.h: add 16-bit types
11185
11186 2003-02-18  Joe Shaw  <joe@assbarn.com>
11187
11188         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11189         credentials from our currently running process.
11190         (get_word): Fix a buglet where we were copying the entire length
11191         instead of relative to our position.
11192
11193         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11194         keys on the stack... it's 640k of data.
11195
11196         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11197         read the credentials byte off the socket, even if we don't have
11198         SO_PEERCRED.
11199         (_dbus_poll): Implement poll() using select() for systems which
11200         don't have it.
11201
11202         * glib/test-dbus-glib.c (main): Print out an error if no
11203         parameters are given.
11204
11205         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11206         can fallback to a secondary auth mechanism if the first fails.
11207
11208 2003-02-18  Havoc Pennington  <hp@pobox.com>
11209
11210         * AUTHORS: add Alex
11211
11212 2003-02-17  Havoc Pennington  <hp@pobox.com>
11213
11214         * doc/dbus-specification.sgml: lots of cosmetic
11215         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11216         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11217         s/server/bus/ (except in authentication section). Add a section
11218         "Message Bus Message Routing"
11219
11220 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11221
11222         Release 0.4
11223
11224         * NEWS: Update
11225
11226 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11227
11228         * doc/dbus-specification.sgml:
11229         Specification updates.
11230
11231 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11232
11233         * bus/activation.c: (bus_activation_init), (child_setup),
11234         (bus_activation_activate_service):
11235         * bus/activation.h:
11236         * bus/main.c: (main):
11237         Set DBUS_ADDRESS environment variable.
11238
11239         * dbus/dbus-errors.c: (dbus_set_error):
11240         Don't use va_copy since that's a C99 feature.
11241
11242         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11243         (_dbus_spawn_async):
11244         * dbus/dbus-sysdeps.h:
11245         Add child_setup_func to _dbus_spawn_async.
11246
11247         * doc/dbus-specification.sgml:
11248         Update specification.
11249
11250         * test/spawn-test.c: (setup_func), (main):
11251         Fix test.
11252
11253 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11254
11255         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11256         Added todo.
11257
11258 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11259
11260         * doc/.cvsignore:
11261         * doc/Makefile.am:
11262         * doc/dbus-test-plan.sgml:
11263         Add test plan document.
11264
11265         * test/Makefile.am:
11266         Fix distcheck.
11267
11268 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11269
11270         * dbus/dbus-message.c: (decode_header_data),
11271         (_dbus_message_loader_return_buffer):
11272         Set the header padding amount when loading a message.
11273
11274 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11275
11276         * bus/dispatch.c: (send_one_message):
11277         Only send broadcast messages to registered connections.
11278
11279         * dbus/dbus-message.c: (dbus_message_name_is):
11280         * dbus/dbus-message.h:
11281         New convenience function.
11282
11283         * dbus/dbus-transport-debug.c: (do_reading):
11284         Only dispatch one message per run.
11285
11286         * test/Makefile.am:
11287         * test/bus-test.c: (new_connection_callback), (die),
11288         (test_hello_client1_handler), (test_hello_client2_handler),
11289         (test_hello_replies), (main):
11290
11291         * test/bus-test-loop.[ch]:
11292         Add these.
11293
11294 2003-02-16  Havoc Pennington  <hp@pobox.com>
11295
11296         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11297         backward conditional
11298
11299 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11300
11301         * dbus/dbus-connection.c:
11302         Implement sent_message_with_reply. (with_reply_and block is still
11303         busted).
11304         Made dispatch_message not lose message if OOM.
11305
11306         * dbus/dbus-errors.h:
11307         Add NoReply error (for reply timeouts).
11308
11309 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11310
11311         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11312         Actually free keys and values when destroying hashtable.
11313
11314 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11315
11316         * dbus/dbus-auth.c: (client_try_next_mechanism):
11317         Plug a leak.
11318
11319         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11320         Return TRUE if there's no thread implementation around.
11321
11322         * glib/dbus-gmain.c: (free_source),
11323         (dbus_connection_hookup_with_g_main):
11324         Make sure to remove the GSource when the connection is finalized.
11325
11326 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11327
11328         * bus/dispatch.c: (bus_dispatch_message_handler):
11329         * dbus/dbus-errors.h:
11330         Return an error if someone tries to send a message to a service
11331         that doesn't exist.
11332
11333 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11334
11335         * bus/activation.c: (load_directory), (bus_activation_init),
11336         (bus_activation_activate_service):
11337         * bus/activation.h:
11338         * bus/driver.c:
11339         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11340         More work on the activation handling.
11341
11342         * dbus/dbus-errors.h:
11343         Add some error messages
11344
11345         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11346         * dbus/dbus-message.h:
11347         New function that creates an error message.
11348
11349         * dbus/dbus-protocol.h:
11350         Add ACTIVATE_SERVER message.
11351
11352         * dbus/dbus-server-unix.c: (unix_handle_watch),
11353         (_dbus_server_new_for_domain_socket):
11354         Call _dbus_fd_set_close_on_exec.
11355
11356         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11357         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11358         (_dbus_fd_set_close_on_exec):
11359         * dbus/dbus-sysdeps.h:
11360         Add _dbus_fd_set_close_on exec function. Also add function that checks
11361         that all open fds are set to close-on-exec and warns otherwise.
11362
11363         * dbus/dbus-transport-unix.c:
11364         (_dbus_transport_new_for_domain_socket):
11365         Call _dbus_fd_set_close_on_exec.
11366
11367 2003-02-16  Havoc Pennington  <hp@pobox.com>
11368
11369         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11370         allow people to avoid setting SIGPIPE to SIG_IGN
11371         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11372         we've been asked not to
11373
11374 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11375
11376         * dbus/dbus-list.c: (_dbus_list_append_link),
11377         (_dbus_list_prepend_link):
11378         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11379         (dbus_realloc):
11380         Warning fixes.
11381
11382 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11383
11384         * bus/Makefile.am:
11385         * bus/activation.c: (bus_activation_entry_free),
11386         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11387         * bus/activation.h:
11388         * bus/main.c: (main):
11389         Add simple activation support, doesn't work yet though.
11390
11391 2003-02-15   Zack Rusin  <zack@kde.org>
11392
11393         * qt/dbus-qthread.cpp:  small casting fix
11394
11395 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11396
11397         * dbus/dbus-errors.c: (dbus_set_error):
11398         * dbus/dbus-errors.h:
11399         Add a few errors and make dbus_set_error void.
11400
11401         * dbus/dbus-sysdeps.c:
11402         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11403         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11404         * dbus/dbus-sysdeps.h:
11405         Add _dbus_spawn_async.
11406
11407         * test/spawn-test.c: (main):
11408         Test for _dbus_spawn_async.
11409
11410 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11411
11412         * dbus/dbus-internals.h:
11413         Fix build without tests.
11414
11415         * dbus/dbus-list.c: (alloc_link):
11416         Fix a segfault when a malloc fails.
11417
11418         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11419         (dbus_malloc0), (dbus_realloc):
11420         Add support for malloc debugging.
11421
11422 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11423
11424         * dbus/dbus-threads.c:
11425         * dbus/dbus-threads.h:
11426         Add condvars. Remove static mutext from API.
11427         Implement static mutexes by initializing them from threads_init.
11428
11429         * glib/dbus-gthread.c:
11430         * qt/dbus-qthread.cpp:
11431         Update with the thread api changes.
11432
11433
11434         * dbus/dbus-list.c:
11435         * dbus/dbus-list.h:
11436         Turn StaticMutex into normal mutex + init function.
11437         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11438         _dbus_list_append_link, _dbus_list_prepend_link
11439
11440
11441         * dbus/dbus-sysdeps.c:
11442         * dbus/dbus-sysdeps.h:
11443         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11444         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11445
11446         * dbus/dbus-protocol.h:
11447         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11448
11449         * dbus/dbus-message.c:
11450         Make ref/unref atomic.
11451         Fix some docs.
11452
11453         * dbus/dbus-connection-internal.h:
11454         * dbus/dbus-connection.c:
11455         * dbus/dbus-connection.h:
11456         Make threadsafe.
11457         Change _peek to _borrow,_return & _steal_borrowed.
11458         Change disconnect callback to event.
11459         Make dbus_connection_dispatch_messages reentrant.
11460
11461         * dbus/dbus-transport.c:
11462         Don't ref the connection on calls to the transport
11463         implementation.
11464
11465         * dbus/dbus-message-handler.c:
11466         Make threadsafe.
11467
11468         * glib/dbus-gmain.c:
11469         Don't use peek_message anymore
11470
11471         * test/Makefile.am:
11472         * test/debug-thread.c:
11473         * test/debug-thread.h:
11474         Simple thread implementation that asserts() on deadlocks in
11475         single-threaded code.
11476
11477         * test/bus-test.c:
11478         (main) Call debug_threads_init.
11479
11480         * test/watch.c:
11481         Use disconnect message instead of disconnect callback.
11482
11483         * bus/connection.c:
11484         * bus/connection.h:
11485         Don't call dbus_connection_set_disconnect_function. Instead export
11486         bus_connection_disconnect.
11487
11488         * bus/dispatch.c:
11489         Call bus_connection_disconnect when we get a disconnected message.
11490
11491 2003-02-15  Havoc Pennington  <hp@pobox.com>
11492
11493         * dbus/dbus-message.c (dbus_message_new): fool around with the
11494         docs
11495
11496 2003-02-14  Havoc Pennington  <hp@pobox.com>
11497
11498         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11499
11500         * dbus/dbus-memory.c: fail if the debug functions indicate we
11501         should
11502
11503         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11504         (_dbus_decrement_fail_alloc_counter): debug functions to
11505         simulate memory allocation failures
11506
11507 2003-02-14  Havoc Pennington  <hp@pobox.com>
11508
11509         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11510         to DBusError
11511
11512 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11513
11514         * bus/driver.c: (bus_driver_handle_hello):
11515         * bus/driver.h:
11516         * bus/services.c: (bus_service_lookup):
11517         Reorder message sending so we get a more sane order.
11518
11519         * test/bus-test.c: (message_handler):
11520         Fix tyop.
11521
11522 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11523
11524         * bus/driver.c: (bus_driver_send_service_deleted),
11525         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11526         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11527         (bus_driver_send_welcome_message),
11528         (bus_driver_handle_list_services),
11529         (bus_driver_handle_acquire_service),
11530         (bus_driver_handle_service_exists):
11531         * dbus/dbus-bus.c: (dbus_bus_register_client),
11532         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11533         * dbus/dbus-errors.c: (dbus_result_to_string):
11534         * dbus/dbus-errors.h:
11535         * dbus/dbus-message.c: (dbus_message_append_args),
11536         (dbus_message_append_args_valist), (dbus_message_get_args),
11537         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11538         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11539         (dbus_message_iter_get_byte_array),
11540         (dbus_message_iter_get_string_array), (message_iter_test),
11541         (check_message_handling), (_dbus_message_test):
11542         * dbus/dbus-message.h:
11543         * test/bus-test.c: (main):
11544         Change fields to arguments in messages, so that they won't be
11545         confused with header fields.
11546
11547         * glib/test-dbus-glib.c: (main):
11548         Remove append_fields from hello message.
11549
11550 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11551
11552         * dbus/dbus-errors.c:
11553         * dbus/dbus-message.c:
11554         * dbus/dbus-string.c:
11555         Documentation fixes.
11556
11557 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11558
11559         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11560         (remove_timeout):
11561         Implement support for timeouts in dbus-glib.
11562
11563 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11564
11565         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11566         * dbus/dbus-message.c: (process_test_subdir):
11567         * test/break-loader.c: (find_breaks_based_on):
11568         Plug some memory leaks.
11569
11570 2003-02-13  Richard Hult  <rhult@codefactory.se>
11571
11572         * bus/main.c: Fix build.
11573
11574         * dbus/dbus-errors.h:
11575         * dbus/dbus-errors.c: Fix copyright for Anders.
11576
11577 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11578
11579         * bus/Makefile.am:
11580         Add utils.[ch]
11581
11582         * bus/connection.c: (bus_connection_foreach):
11583         Fix a warning.
11584
11585         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11586         (unescape_string), (new_section), (parse_section_start),
11587         (parse_key_value), (report_error), (bus_desktop_file_load),
11588         (bus_desktop_file_get_string):
11589         * bus/desktop-file.h:
11590         Use DBusError for error reporting.
11591
11592         * bus/dispatch.c: (send_one_message),
11593         (bus_dispatch_message_handler):
11594         * bus/driver.c: (bus_driver_send_service_deleted),
11595         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11596         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11597         (bus_driver_send_welcome_message),
11598         (bus_driver_handle_list_services),
11599         (bus_driver_handle_acquire_service),
11600         (bus_driver_handle_service_exists):
11601         * bus/loop.c: (bus_loop_run):
11602         * bus/main.c:
11603         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11604
11605         * bus/utils.c: (bus_wait_for_memory):
11606         * bus/utils.h:
11607         New files with general utility functions.
11608
11609         * dbus/dbus-internals.h:
11610         Remove _DBUS_HANDLE_OOM.
11611
11612 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11613
11614         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11615         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11616         * dbus/dbus-errors.h:
11617         Add DBusError structure.
11618
11619 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11620
11621         * test/data/valid-messages/standard-acquire-service.message:
11622         * test/data/valid-messages/standard-hello.message:
11623         * test/data/valid-messages/standard-list-services.message:
11624         * test/data/valid-messages/standard-service-exists.message:
11625         Add some standard messages.
11626
11627 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11628
11629         * bus/driver.c: (bus_driver_send_welcome_message),
11630         (bus_driver_handle_list_services),
11631         (bus_driver_handle_acquire_service),
11632         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11633         Update for API changes in libdbus.
11634
11635         * dbus/dbus-message.c: (dbus_message_new_reply):
11636         * dbus/dbus-message.h:
11637         Remove the name argument. The spec states that replies shouldn't
11638         have a name.
11639
11640 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11641
11642         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11643         (report_error), (bus_desktop_file_load), (lookup_section),
11644         (lookup_line), (bus_desktop_file_get_raw),
11645         (bus_desktop_file_get_string):
11646         * bus/desktop-file.h:
11647         Some fixes, and new functions for getting a key value from a section.
11648
11649 2003-02-13  Havoc Pennington  <hp@pobox.com>
11650
11651         * test/data/auth/fail-after-n-attempts.auth-script: new test
11652
11653         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11654         reject the client.
11655
11656 2003-02-13  Havoc Pennington  <hp@pobox.com>
11657
11658         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11659         dbus_credentials_match were backward
11660
11661         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11662         NO_CREDENTIALS and ROOT_CREDENTIALS
11663
11664         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11665         into here. Never process more commands after we've reached an
11666         end state; store further data as unused bytes.
11667
11668         * test/data/auth/*: add more auth tests
11669
11670         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11671         command to match exact string and EXPECT_UNUSED to match unused
11672         bytes
11673
11674         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11675
11676 2003-02-12  Havoc Pennington  <hp@pobox.com>
11677
11678         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11679         \r off of popped lines
11680
11681         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11682         scripts
11683
11684         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11685         SEND, append \r\n
11686
11687 2003-02-12  Havoc Pennington  <hp@pobox.com>
11688
11689         * dbus/Makefile.am: remove break-loader from the build, since it
11690         moved.
11691
11692         * configure.in: add --enable-gcov to turn on coverage profiling
11693         flags and disable optimization
11694
11695 2003-02-10  Havoc Pennington  <hp@pobox.com>
11696
11697         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11698         initial cut at test framework for DBusAuth from laptop.
11699         Doesn't quite work yet but it compiles and I need to get
11700         it off the 266mhz laptop. ;-)
11701
11702         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11703         fix a memleak in error case
11704
11705 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11706
11707         * bus/Makefile.am:
11708         * bus/desktop-file.c:
11709         * bus/desktop-file.h:
11710         Add a desktop file parser.
11711
11712 2003-02-11  Zack Rusin  <zack@kde.org>
11713
11714         * qt/message.[h|cpp]: sample implementation
11715         of the KDE wrapper for DBusMessage
11716
11717 2003-02-09  Zack Rusin  <zack@kde.org>
11718
11719         * test/bus-test.c: make_it_compile
11720         * doc/dbus-specification.sgml: minimal semantic fix
11721
11722 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11723
11724         Release 0.3
11725
11726         * NEWS: Update
11727
11728 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11729
11730         * dbus/Makefile.am:
11731         * dbus/dbus-break-loader.c:
11732         * test/Makefile.am:
11733         * test/break-loader.c:
11734         Move dbus-break-loader to test/ and rename it to break-loader.
11735
11736 2003-02-02  Havoc Pennington  <hp@pobox.com>
11737
11738         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11739         for code to manage cookies in your home directory
11740
11741         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11742
11743         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11744         to authenticate, then disconnect the client.
11745
11746 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11747
11748         * dbus/dbus-message.c (dbus_message_append_fields):
11749         Correct docs.
11750
11751 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11752
11753         * doc/dbus-specification.sgml:
11754         Update address format section.
11755
11756 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11757
11758         * test/Makefile.am:
11759         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11760         (message_handler), (new_connection_callback), (loop_quit),
11761         (loop_run), (main):
11762         Add bus test.
11763
11764 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11765
11766         * bus/driver.c: (bus_driver_handle_service_exists):
11767         Simplify the code a bit.
11768
11769         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11770         Fix a silly.
11771
11772 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11773
11774         * bus/Makefile.am:
11775         Add libdbus-daemon.la and link to it.
11776
11777 2003-02-01  James Willcox  <jwillcox@gnome.org>
11778
11779         * bus/driver.c: (bus_driver_handle_own_service):
11780         Actually include the service reply code in the message.
11781
11782 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11783
11784         * bus/driver.c: (bus_driver_handle_service_exists):
11785         Don't unref the incoming message.
11786
11787 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11788
11789         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11790
11791 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11792
11793         * dbus/dbus-server.c: (dbus_server_listen):
11794         * dbus/dbus-transport.c: (_dbus_transport_open):
11795         ifdef out the calls to the debug transport and server.
11796
11797 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11798
11799         * dbus/dbus-watch.c (dbus_watch_get_flags):
11800         Add note in the docs that ERROR or HANGUP won't be returned
11801         and are assumed always on.
11802
11803         * glib/dbus-gmain.c (add_watch):
11804         Always add IO_ERR | IO_HUP
11805
11806         * dbus/dbus-message.h:
11807         Add semicolon after dbus_message_iter_get_string_array().
11808         Makes qt code build again
11809
11810 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11811
11812         * bus/driver.c: (create_unique_client_name),
11813         (bus_driver_handle_hello):
11814         Don't take a name, just use a numeric id to identify
11815         each client.
11816
11817         * dbus/Makefile.am:
11818         * dbus/dbus-bus.c: (dbus_bus_register_client),
11819         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11820         * dbus/dbus-bus.h:
11821         Add new convenience functions for communicating with the bus.
11822
11823         * dbus/dbus-message.h:
11824
11825         * dbus/dbus-protocol.h:
11826         Fix a typo.
11827
11828 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11829
11830         * dbus/dbus-message.c (dbus_message_append_fields):
11831         Add some more doc comments.
11832
11833 2003-02-01  Havoc Pennington  <hp@pobox.com>
11834
11835         * dbus/dbus-break-loader.c (randomly_modify_length): change
11836         a 4-byte value in the message as if it were a length
11837
11838         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11839         execute bit on saved files
11840
11841 2003-02-01  Havoc Pennington  <hp@pobox.com>
11842
11843         * dbus/dbus-break-loader.c (main): new program to find messages
11844         that break the loader.
11845
11846         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11847         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11848
11849         * dbus/dbus-string.c (_dbus_string_set_byte): new
11850
11851 2003-01-31  Havoc Pennington  <hp@pobox.com>
11852
11853         * dbus/dbus-message.c: refactor the test code to be more general,
11854         in preparation for writing a "randomly permute test cases to
11855         try to break the loader" program.
11856
11857 2003-01-31  Havoc Pennington  <hp@pobox.com>
11858
11859         * doc/dbus-specification.sgml: work on the specification
11860
11861         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11862         the protocol version of the message.
11863
11864         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11865         no longer specifies that.
11866         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11867         1/2/3/4)
11868
11869         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11870         "break" for DBUS_TYPE_NIL, remove @todo
11871
11872 2003-01-31  Havoc Pennington  <hp@pobox.com>
11873
11874         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11875         just set_is_error/get_is_error as this is a commonly-used
11876         function, and write docs.
11877
11878 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11879
11880         * dbus/dbus-address.c: (dbus_address_entry_free):
11881         Free key and value lists.
11882
11883         * dbus/dbus-internals.c: (_dbus_type_to_string):
11884         Add the types we didn't have.
11885
11886         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11887         (_dbus_marshal_validate_arg):
11888         Add NIL types.
11889
11890         * dbus/dbus-message.c: (dbus_message_set_sender):
11891         Remove todo about being able to set sender to NULL.
11892
11893         (dbus_message_set_is_error_reply),
11894         (dbus_message_get_is_error_reply):
11895         * dbus/dbus-message.h:
11896         New functions.
11897
11898         * dbus/dbus-protocol.h:
11899         Add error reply flag.
11900
11901         * test/data/valid-messages/opposite-endian.message:
11902         Add NIL type to test.
11903
11904 2003-01-31  Havoc Pennington  <hp@pobox.com>
11905
11906         * doc/dbus-specification.sgml: fully specify the header.  Add
11907         flags and major protocol version, and change header/body len to
11908         unsigned.
11909
11910         * dbus/dbus-message-builder.c (append_saved_length): append length
11911         as uint32
11912
11913         * dbus/dbus-message.c (dbus_message_create_header): change header
11914         length and body length to unsigned. Add the new fields from the
11915         spec
11916         (_dbus_message_loader_return_buffer): unsigned header/body len
11917
11918 2003-01-30  Havoc Pennington  <hp@pobox.com>
11919
11920         * dbus/dbus-auth.c: rework to use only REJECTED, no
11921         MECHANISMS
11922
11923         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11924         use REJECTED, suggested by Mark McLoughlin
11925
11926 2003-01-30  Havoc Pennington  <hp@pobox.com>
11927
11928         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11929         a better way to report errors here. e.g.  "unix address lacks
11930         path" or something. also "no such file" when the path doesn't
11931         exist, etc.
11932
11933         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11934         leaking list nodes
11935         (dbus_parse_address): add @todo about documenting address format,
11936         and allowing , and ; to be escaped
11937
11938 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11939
11940         * dbus/Makefile.am:
11941         Add dbus-address.[ch]
11942
11943         * dbus/dbus-address.c: (dbus_address_entry_free),
11944         (dbus_address_entries_free), (create_entry),
11945         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11946         (dbus_parse_address), (_dbus_address_test):
11947         * dbus/dbus-address.h:
11948         New files for dealing with address parsing.
11949
11950         * dbus/dbus-connection.c:
11951         Document timeout functions.
11952
11953         * dbus/dbus-message.c:
11954         Document dbus_message_new_from_message.
11955
11956         * dbus/dbus-server-debug.c:
11957         Document.
11958
11959         * dbus/dbus-server.c: (dbus_server_listen):
11960         Parse address and use correct server implementation.
11961
11962         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11963         * dbus/dbus-string.h:
11964         New function with test.
11965
11966         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11967         * dbus/dbus-test.h:
11968         Add address tests.
11969
11970         * dbus/dbus-transport-debug.c:
11971         Document.
11972
11973         * dbus/dbus-transport.c: (_dbus_transport_open):
11974         Parse address and use correct transport implementation.
11975
11976 2003-01-30  Havoc Pennington  <hp@pobox.com>
11977
11978         * dbus/dbus-message.c: use message->byte_order instead of
11979         DBUS_COMPILER_BYTE_ORDER throughout.
11980         (dbus_message_create_header): pad header to align the
11981         start of the body of the message to 8-byte boundary
11982
11983         * dbus/dbus-marshal.h: make all the demarshalers take const
11984         DBusString arguments.
11985
11986         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11987         validate message args here, so we don't have to do slow validation
11988         later, and so we catch bad messages as they are incoming. Also add
11989         better checks on header_len and body_len. Also fill in
11990         message->byte_order
11991
11992         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11993         implemented properly)
11994         (_dbus_string_validate_nul): new function to check all-nul
11995
11996         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11997         get_arg_end_pos and remove all validation
11998         (_dbus_marshal_validate_arg): actually do validation here.
11999
12000 2003-01-29  Havoc Pennington  <hp@pobox.com>
12001
12002         * dbus/dbus-message.c (check_message_handling): fix assertion
12003         failure on set_client_serial
12004
12005 2003-01-28  Havoc Pennington  <hp@pobox.com>
12006
12007         * dbus/dbus-server-debug.c: Add doc section comments
12008
12009         * dbus/dbus-transport-debug.c: add doc section comments
12010
12011 2003-01-28  Havoc Pennington  <hp@redhat.com>
12012
12013         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12014         the reverse order from how I had it
12015         (_dbus_string_base64_encode): reverse encoding order. I was
12016         basically byteswapping everything during encoding.
12017
12018 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12019
12020         * dbus/dbus-connection-internal.h:
12021         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12022         (_dbus_connection_remove_timeout):
12023         Add functions for adding and removing timeouts.
12024
12025         * dbus/dbus-message.c: (dbus_message_new_from_message):
12026         Add new function that takes a message and creates an exact
12027         copy of it, but with the refcount set to 1.
12028         (check_message_handling):
12029         Fix build error.
12030
12031         * dbus/dbus-server-protected.h:
12032         * dbus/dbus-server.c: (_dbus_server_init_base),
12033         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12034         (dbus_server_set_timeout_functions):
12035         (_dbus_server_remove_timeout):
12036         New functions so that a server can add and remove timeouts.
12037
12038         (dbus_server_listen):
12039         Add commented out call to dbus_server_debug_new.
12040
12041         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12042         Actually set the handler, doh.
12043
12044         * dbus/dbus-transport.c: (_dbus_transport_open):
12045         Add commented out call to dbus_transport_debug_client_new.
12046
12047         * dbus/Makefile.am:
12048         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12049
12050 2003-01-28  Havoc Pennington  <hp@pobox.com>
12051
12052         * dbus/dbus-message.c (check_message_handling): function to check
12053         on the loaded message, iterates over it etc.
12054
12055 2003-01-28  Havoc Pennington  <hp@pobox.com>
12056
12057         * test/Makefile.am (dist-hook): fix make distdir
12058
12059         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12060
12061 2003-01-27  Havoc Pennington  <hp@pobox.com>
12062
12063         * dbus/dbus-mempool.c (time_for_size): replace printf with
12064         _dbus_verbose
12065
12066         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12067         empty lines; fix the SAVE_LENGTH stuff to be
12068         START_LENGTH/END_LENGTH so it actually works; couple other
12069         bugfixes
12070
12071         * test/Makefile.am (dist-hook): add dist-hook for .message files
12072
12073         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12074         can be constant or locked.
12075         (_dbus_string_free): allow freeing a const string as
12076         documented/intended
12077
12078         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12079
12080         * dbus/dbus-test-main.c (main): take an argument which is the
12081         directory containing test data
12082
12083         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12084         argument to this and load all the messages in test/data/
12085         checking that they can be loaded or not loaded as appropriate.
12086
12087 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12088
12089         * bus/dispatch.c: (bus_dispatch_message_handler):
12090         Dispatch messages sent to services.
12091
12092         * bus/driver.c: (bus_driver_send_service_deleted),
12093         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12094         (bus_driver_send_service_acquired):
12095         Add helper functions for sending service related messages.
12096
12097         (bus_driver_send_welcome_message):
12098         Send HELLO_REPLY instead of WELCOME.
12099
12100         (bus_driver_handle_list_services):
12101         Send LIST_SERVICES_REPLY instead of SERVICES.
12102
12103         (bus_driver_handle_own_service),
12104         (bus_driver_handle_service_exists):
12105         New message handlers.
12106
12107         (bus_driver_handle_message):
12108         Invoke new message handlers.
12109
12110         (bus_driver_remove_connection):
12111         Don't remove any services here since that's done automatically
12112         by bus_service_remove_owner now.
12113
12114         * bus/driver.h:
12115         New function signatures.
12116
12117         * bus/services.c: (bus_service_add_owner):
12118         Send ServiceAcquired message if we're the only primary owner.
12119
12120         (bus_service_remove_owner):
12121         Send ServiceAcquired/ServiceLost messages.
12122
12123         (bus_service_set_prohibit_replacement),
12124         (bus_service_get_prohibit_replacement):
12125         Functions for setting prohibit replacement.
12126
12127         (bus_service_has_owner):
12128         New function that checks if a connection is in the owner queue of
12129         a certain service.
12130
12131         * bus/services.h:
12132         Add new function signatures.
12133
12134         * dbus/dbus-list.c: (_dbus_list_test):
12135         Add tests for _dbus_list_remove_last and traversing the list backwards.
12136
12137         * dbus/dbus-list.h:
12138         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12139         go any further, so return NULL then.
12140
12141         * dbus/dbus-protocol.h:
12142         Add new messages, service flags and service replies.
12143
12144 2003-01-26  Havoc Pennington  <hp@pobox.com>
12145
12146         * dbus/dbus-message-builder.c: implement, completely untested.
12147
12148         * test/data/*: add data to be used in testing.
12149         ".message" files are our simple loadable text format.
12150         ".message-raw" will be binary dumps of messages.
12151
12152         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12153
12154 2003-01-26  Havoc Pennington  <hp@pobox.com>
12155
12156         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12157
12158         * dbus/dbus-errors.c (dbus_result_to_string): add
12159         file errors
12160
12161         * dbus/dbus-message-builder.c: new file, will contain code to load
12162         up messages from files. Not implemented yet.
12163
12164 2003-01-26  Havoc Pennington  <hp@pobox.com>
12165
12166         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12167         the sender by setting to NULL
12168
12169 2003-01-26  Havoc Pennington  <hp@pobox.com>
12170
12171         The unit tests pass, but otherwise untested.  If it breaks, the
12172         tests should have been better. ;-)
12173
12174         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12175         the connection.
12176
12177         * dbus/dbus-message.c: redo everything so we maintain
12178         message->header as the only copy of the various fields.
12179         This avoids the possibility of out-of-memory in some cases,
12180         for example dbus_message_lock() can't run out of memory anymore,
12181         and avoids extra copying. Figured I may as well go ahead and do
12182         this since it was busted for dbus_message_lock to not return
12183         failure on OOM, and dbus_message_write_header was totally
12184         unchecked for OOM. Also fixed some random other bugs.
12185
12186         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12187         that strings are nul-terminated. Also, end_pos can be equal
12188         to string length just not greater than, I think.
12189         (_dbus_marshal_set_int32): new function
12190         (_dbus_marshal_set_uint32): new function
12191         (_dbus_marshal_set_string): new function
12192
12193         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12194         a warning, init timeout_list to NULL
12195         (dbus_connection_send_message): don't use uninitialized variable
12196         "serial"
12197
12198         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12199
12200 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12201
12202         * bus/driver.c: (bus_driver_handle_hello),
12203         (bus_driver_send_welcome_message):
12204         Plug leaks
12205
12206 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12207
12208         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12209         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12210         (dbus_connection_unref):
12211         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12212         * dbus/dbus-message.c: (dbus_message_unref),
12213         Plug memory leaks.
12214
12215         (dbus_message_get_fields):
12216         Remove debugging printout.
12217
12218         (_dbus_message_loader_return_buffer):
12219         Don't store the header string.
12220
12221         (_dbus_message_test):
12222         Plug leaks.
12223
12224 2003-01-26  Richard Hult  <rhult@codefactory.se>
12225
12226         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12227         the file descriptor list, since it can change under us.
12228
12229 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12230
12231         * glib/dbus-gmain.c: (dbus_connection_prepare),
12232         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12233         (remove_watch), (dbus_connection_hookup_with_g_main):
12234         Rewrite the glib handling to use its own GSource instead of a
12235         GIOChannel so we can catch messages put in the queue while waiting
12236         for a reply.
12237
12238 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12239
12240         * bus/Makefile.am:
12241         * bus/connection.c: (connection_disconnect_handler),
12242         (connection_watch_callback), (bus_connection_setup):
12243         * bus/dispatch.c: (send_one_message),
12244         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12245         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12246         * bus/dispatch.h:
12247         * bus/driver.c: (bus_driver_send_service_deleted),
12248         (bus_driver_send_service_created), (bus_driver_handle_hello),
12249         (bus_driver_send_welcome_message),
12250         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12251         (bus_driver_handle_message):
12252         * bus/driver.h:
12253         Refactor code, put the message dispatching in its own file. Use
12254         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12255         is disconnected.
12256
12257 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12258
12259         * dbus/dbus-internals.h:
12260         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12261
12262         * dbus/dbus-message.c: (dbus_message_get_sender):
12263         * dbus/dbus-message.h:
12264         Implement dbus_message_get_sender.
12265
12266         * dbus/dbus-protocol.h:
12267         Add message and service defines.
12268
12269 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12270
12271         * dbus/dbus-connection.c: (dbus_connection_send_message):
12272         * dbus/dbus-message-internal.h:
12273         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12274         (dbus_message_write_header):
12275         Remove _dbus_messag_unlock and don't set the client serial on a
12276         message if one already exists.
12277
12278 2003-01-24  Havoc Pennington  <hp@pobox.com>
12279
12280         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12281         list_pool
12282
12283         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12284         on OOM
12285
12286 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12287
12288         * dbus/dbus-list.c: (alloc_link), (free_link):
12289         Use a memory pool for the links.
12290
12291 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12292
12293         * bus/connection.c: (bus_connection_foreach):
12294         * bus/connection.h:
12295         Add new bus_connection_foreach function.
12296
12297         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12298         Add function that broadcasts a message to all clients.
12299
12300         (bus_driver_send_service_created), (bus_driver_handle_hello),
12301         (bus_driver_send_welcome_message),
12302         (bus_driver_handle_list_services), (bus_driver_message_handler):
12303         Implement functions that take care of listing services, and notifying
12304         clients when new services are created.
12305
12306         * bus/services.c: (bus_services_list):
12307         * bus/services.h:
12308         Add new function that returns an array of strings with the currently
12309         registered services.
12310
12311         * glib/dbus-glib.h:
12312         * glib/dbus-gmain.c:
12313         Update copyright year.
12314
12315 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12316
12317         * dbus/dbus-connection.c: (dbus_connection_send_message):
12318         Unlock the message in case it was sent earlier.
12319
12320         (dbus_connection_send_message_with_reply_and_block):
12321         Remove the reply message from the list.
12322
12323         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12324         Set array_len and new_pos correctly.
12325
12326         (_dbus_marshal_test):
12327         Remove debug output.
12328
12329         * dbus/dbus-message-internal.h:
12330         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12331         New function that returns the reply serial.
12332
12333         (_dbus_message_unlock):
12334         New function that unlocks a message and resets its header.
12335
12336         (dbus_message_append_string_array),
12337         (dbus_message_get_fields_valist),
12338         (dbus_message_iter_get_field_type),
12339         (dbus_message_iter_get_string_array),
12340         (dbus_message_get_fields),
12341         (dbus_message_append_fields_valist):
12342         Handle string arrays.
12343
12344         (dbus_message_set_sender):
12345         Make this function public since the bus daemon needs it.
12346
12347         (decode_header_data):
12348         Set the reply serial to -1 initially.
12349
12350         * dbus/dbus-message.h:
12351         Add dbus_message_set_sender.
12352
12353 2003-01-24  Havoc Pennington  <hp@pobox.com>
12354
12355         * doc/dbus-specification.sgml: add some stuff
12356
12357 2003-01-22  Havoc Pennington  <hp@pobox.com>
12358
12359         * doc/dbus-specification.sgml: Start to document the protocol.
12360
12361 2003-01-22  Havoc Pennington  <hp@pobox.com>
12362
12363         * dbus/dbus-connection.c
12364         (dbus_connection_send_message_with_reply_and_block): add some @todo
12365
12366         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12367
12368 2003-01-21  Havoc Pennington  <hp@pobox.com>
12369
12370         (patch untested because can't compile)
12371
12372         * bus/driver.c (create_unique_client_name): make this function
12373         never recycle client names. Also, caller should initialize
12374         the DBusString.
12375
12376         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12377
12378 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12379
12380         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12381         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12382         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12383         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12384         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12385         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12386         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12387         * dbus/dbus-marshal.h:
12388         * dbus/dbus-protocol.h:
12389         Add support for marshalling and demarshalling integer, double
12390         and string arrays.
12391
12392 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12393
12394         * bus/Makefile.am:
12395         Add driver.[ch]
12396
12397         * bus/connection.c: (connection_disconnect_handler):
12398         Remove the connection from the bus driver's list.
12399
12400         (connection_watch_callback): Dispatch messages.
12401
12402         (free_connection_data): Free connection name.
12403
12404         (bus_connection_setup): Add connection to the bus driver's list.
12405         (bus_connection_remove_owned_service):
12406         (bus_connection_set_name), (bus_connection_get_name):
12407         Add functions for setting and getting the connection's name.
12408
12409         * bus/connection.h:
12410         Add function headers.
12411
12412         * bus/driver.c: (create_unique_client_name),
12413         (bus_driver_handle_hello_message),
12414         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12415         (bus_driver_add_connection), (bus_driver_remove_connection):
12416         * bus/driver.h:
12417         * bus/main.c:
12418         * bus/services.c: (bus_service_free):
12419         * bus/services.h:
12420         New file that handles communication and registreation with the bus
12421         itself.
12422
12423 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12424
12425         * dbus/dbus-connection.c: (dbus_connection_send_message):
12426         Add a new client_serial parameter.
12427
12428         (dbus_connection_send_message_with_reply):
12429         Remove a @todo since we've implemented the blocking function.
12430
12431         (dbus_connection_send_message_with_reply_and_block):
12432         New function that sends a message and waits for a reply and
12433         then returns the reply.
12434
12435         * dbus/dbus-connection.h:
12436         Add new functions.
12437
12438         * dbus/dbus-errors.c: (dbus_result_to_string):
12439         * dbus/dbus-errors.h:
12440         Add new DBUS_RESULT.
12441
12442         * dbus/dbus-message-internal.h:
12443         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12444         (_dbus_message_set_sender), (dbus_message_write_header),
12445         (dbus_message_new_reply), (decode_header_data),
12446         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12447         * dbus/dbus-message.h:
12448         Add new functions that set the reply serial and sender.
12449         Also marshal and demarshal them correctly and add test.
12450
12451         * dbus/dbus-protocol.h:
12452         Add new DBUS_MESSAGE_TYPE_SENDER.
12453
12454         * glib/dbus-glib.h:
12455         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12456         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12457         (dbus_connection_hookup_with_g_main):
12458         * glib/test-dbus-glib.c: (main):
12459         Rewrite to use GIOChannel and remove the GSource crack.
12460
12461         * test/echo-client.c: (main):
12462         * test/watch.c: (check_messages):
12463         Update for changed APIs
12464
12465 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12466
12467         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12468
12469         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12470         Create a DBusTimeoutList.
12471         (dbus_connection_set_timeout_functions): Add new function to
12472         set timeout callbacks
12473
12474         * dbus/dbus-connection.h: Add public DBusTimeout API.
12475
12476         * dbus/dbus-message.c: (dbus_message_get_service):
12477         * dbus/dbus-message.h:  New function.
12478
12479         * dbus/dbus-server.c: Fix small doc typo.
12480
12481         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12482
12483 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12484
12485         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12486         of the string, just as long as specified.
12487
12488 2003-01-19  Havoc Pennington  <hp@pobox.com>
12489
12490         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12491         new function
12492
12493         * dbus/dbus-server.c (dbus_server_set_max_connections)
12494         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12495         keep track of current number of connections, and add API for
12496         setting a max (but haven't implemented enforcing the max yet)
12497
12498 2003-01-18  Havoc Pennington  <hp@pobox.com>
12499
12500         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12501         reading/writing if read_watch != NULL or write_watch != NULL.
12502
12503         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12504         the message loader code to actually load message->header and
12505         message->body into the newly-created message.
12506
12507         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12508         in OOM case
12509
12510         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12511         (dbus_connection_get_max_message_size)
12512         (dbus_connection_set_max_live_messages_size)
12513         (dbus_connection_get_max_live_messages_size): implement some
12514         resource limitation functions
12515
12516         * dbus/dbus-resources.c: new file implementing some of the
12517         resource limits stuff
12518
12519         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12520         missing docs, add @todo to handle OOM etc.
12521
12522         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12523         docs
12524
12525 2003-01-18  Havoc Pennington  <hp@pobox.com>
12526
12527         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12528         connection if it hasn't been already.
12529
12530         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12531         replace with DisconnectFunction.
12532
12533 2003-01-18  Havoc Pennington  <hp@pobox.com>
12534
12535         Building --disable-verbose-mode --disable-asserts --disable-tests
12536         cuts the library from 112K to 45K or so
12537
12538         * configure.in: check for varargs macro support,
12539         add --enable-verbose-mode, --enable-asserts.
12540
12541         * dbus/dbus-internals.h (_dbus_assert): support
12542         DBUS_DISABLE_ASSERT
12543         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12544
12545 2003-01-18  Havoc Pennington  <hp@pobox.com>
12546
12547         * dbus/dbus-test.c: include config.h so that tests actually run
12548
12549         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12550         so the failure mode when that assumption fails will be plenty
12551         obvious.
12552
12553 2003-01-18  Havoc Pennington  <hp@pobox.com>
12554
12555         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12556
12557         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12558         the distribution
12559
12560         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12561         since we don't want to use those in make check
12562
12563 2003-01-15  Havoc Pennington  <hp@redhat.com>
12564
12565         Release 0.2
12566
12567         * NEWS: update
12568
12569 2003-01-15  Havoc Pennington  <hp@redhat.com>
12570
12571         * test/Makefile.am: fix so that test source code ends up in the
12572         distribution on make distcheck
12573
12574 2003-01-15  Havoc Pennington  <hp@redhat.com>
12575
12576         Release 0.1.
12577
12578         * NEWS: update
12579
12580 2003-01-15  Havoc Pennington  <hp@redhat.com>
12581
12582         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12583         fix build when --disable-tests
12584
12585         * Makefile.am (EXTRA_DIST): put HACKING in here
12586
12587         * HACKING: document procedure for making a tarball release.
12588
12589 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12590
12591         * bus/connection.c: (connection_error_handler),
12592         (bus_connection_setup):
12593         * bus/main.c: (main):
12594         Make sure that the DBusConnectionData struct is NULLed
12595         out to prevent a segfault.
12596
12597         * dbus/dbus-errors.c: (dbus_result_to_string):
12598         * dbus/dbus-errors.h:
12599         * dbus/dbus-message.c: (dbus_message_get_fields),
12600         (dbus_message_get_fields_valist), (_dbus_message_test):
12601         * dbus/dbus-message.h:
12602         Make dbus_message_get_fields return a result code so we can
12603         track invalid fields as well as oom.
12604
12605 2003-01-11  Havoc Pennington  <hp@pobox.com>
12606
12607         * configure.in: change --enable-test/--enable-ansi action-if-given
12608         to enable_foo=$enableval instead of enable_foo=yes
12609
12610 2003-01-08  Havoc Pennington  <hp@pobox.com>
12611
12612         * dbus/dbus-string.c (_dbus_string_align_length): new function
12613
12614         * dbus/dbus-test-main.c: move main() for test app here
12615         * dbus/dbus-test.c
12616         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12617         symbol to run tests, because dbus-test isn't in the main
12618         library
12619
12620         Code review nitpicks.
12621
12622         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12623         for people with narrow emacs ;-). Assert client_serial was filled
12624         in. Assert message->name != NULL.
12625         (dbus_message_append_fields): have "first_field_type" arg separate
12626         from va list, needed for C++ binding that also uses varargs IIRC
12627         and helps with type safety
12628         (dbus_message_new): add @todo about using DBusString to store
12629         service/name internally
12630         (dbus_message_new): don't leak ->service and ->name on OOM later
12631         in the function
12632         (dbus_message_unref): free the service name
12633         (dbus_message_get_fields): same change to varargs
12634         i.e. first_field_type
12635         (_dbus_message_loader_return_buffer): assert that the message data
12636         is aligned (if not it's a bug in our code). Put in verbose griping
12637         about why we set corrupted = TRUE.
12638         (decode_header_data): add FIXME that char* is evil.  Was going to
12639         add FIXME about evil locale-specific string.h strncmp, but just
12640         switched to wacky string-as-uint32 optimization. Move check for
12641         "no room for field name" above get_const_data_len() to avoid
12642         assertion failure in get_const_data_len if we have trailing 2
12643         bytes or the like. Check for service and name fields being
12644         provided twice. Don't leak service/name on error. Require field
12645         names to be aligned to 4 bytes.
12646
12647         * dbus/dbus-marshal.c: move byte swap stuff to header
12648         (_dbus_pack_int32): uscore-prefix
12649         (_dbus_unpack_int32): uscore-prefix
12650         (_dbus_unpack_uint32): export
12651         (_dbus_demarshal_string): add @todo complaining about use of
12652         memcpy()
12653         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12654         handling allowing corrupt data to go unchecked
12655
12656 2003-01-08  Havoc Pennington  <hp@redhat.com>
12657
12658         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12659         to the select() as needed for authentication. (should be using
12660         _dbus_poll() not select, but for another day)
12661
12662         * dbus/dbus.h: include dbus/dbus-protocol.h
12663
12664 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12665
12666         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12667         dbus-connection.h
12668
12669 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12670
12671         * dbus/dbus-internals.c: (_dbus_type_to_string):
12672         New function that returns a string describing a type.
12673
12674         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12675         * dbus/dbus-marshal.h:
12676         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12677         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12678         (dbus_message_iter_get_byte_array):
12679         * dbus/dbus-message.h:
12680         Add new convenience functions for appending and getting message fields.
12681         Also add demarshalling routines for byte arrays.
12682
12683 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12684
12685         * dbus/dbus-connection-internal.h:
12686         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12687         (_dbus_connection_get_next_client_serial),
12688         (dbus_connection_send_message):
12689         * dbus/dbus-internals.h:
12690         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12691         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12692         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12693         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12694         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12695         (_dbus_verbose_bytes), (_dbus_marshal_test):
12696         * dbus/dbus-marshal.h:
12697         * dbus/dbus-message-internal.h:
12698         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12699         (dbus_message_write_header), (_dbus_message_lock),
12700         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12701         (dbus_message_get_name), (dbus_message_append_int32),
12702         (dbus_message_append_uint32), (dbus_message_append_double),
12703         (dbus_message_append_string), (dbus_message_append_byte_array),
12704         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12705         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12706         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12707         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12708         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12709         (decode_header_data), (_dbus_message_loader_return_buffer),
12710         (message_iter_test), (_dbus_message_test):
12711         * dbus/dbus-message.h:
12712         * dbus/dbus-protocol.h:
12713         * dbus/dbus-test.c: (main):
12714         * dbus/dbus-test.h:
12715         * glib/test-dbus-glib.c: (message_handler), (main):
12716         * test/echo-client.c: (main):
12717         * test/watch.c: (check_messages):
12718         Make messages sendable and receivable for real.
12719
12720 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12721
12722         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12723         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12724         * dbus/dbus-message.c: (dbus_message_append_int32),
12725         (dbus_message_append_uint32), (dbus_message_append_double),
12726         (dbus_message_append_string), (dbus_message_append_byte_array):
12727         Handle OOM restoration.
12728
12729 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12730
12731         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12732         (_dbus_demarshal_string), (_dbus_marshal_test):
12733         * dbus/dbus-marshal.h:
12734         * dbus/dbus-message.c: (dbus_message_get_name),
12735         Document these functions.
12736
12737         (dbus_message_append_int32), (dbus_message_append_uint32),
12738         (dbus_message_append_double), (dbus_message_append_string),
12739         (dbus_message_append_byte_array):
12740         * dbus/dbus-message.h:
12741         Add functions for adding message fields of different types.
12742
12743         * dbus/dbus-protocol.h:
12744         Add the different types.
12745
12746 2003-01-05  Havoc Pennington  <hp@pobox.com>
12747
12748         * bus/connection.c: implement routines for handling connections,
12749         first thing is keeping a list of owned services on each connection
12750         and setting up watches etc.
12751
12752         * bus/services.c: implement a mapping from service names to lists
12753         of connections
12754
12755         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12756
12757         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12758         to use static mutexes for global data
12759
12760         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12761         collection of functions to set/get application-specific data
12762         on the DBusConnection.
12763
12764 2003-01-04  Havoc Pennington  <hp@pobox.com>
12765
12766         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12767         (_dbus_poll): new function
12768
12769         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12770         copied from GLib
12771
12772         * bus/loop.c: initial code for the daemon main loop
12773
12774 2003-01-04  Havoc Pennington  <hp@pobox.com>
12775
12776         * test/watch.c (error_handler): make it safe if the error handler
12777         is called multiple times (if we s/error handler/disconnect
12778         handler/ we should just guarantee it's called only once)
12779
12780         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12781         error handler on disconnect (it's quite possible we should
12782         just change the error handler to a "disconnect handler," I'm
12783         not sure we have any other meaningful errors)
12784
12785         * configure.in: check for getpwnam_r
12786
12787         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12788         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12789         mechanism as in SASL spec, using socket credentials
12790
12791         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12792         (_dbus_send_credentials_unix_socket): new function
12793
12794         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12795         dbus_accept()
12796         (_dbus_write): only check errno if <0 returned
12797         (_dbus_write_two): ditto
12798
12799 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12800
12801         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12802         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12803         (_dbus_marshal_test):
12804         * dbus/dbus-marshal.h:
12805         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12806         to _dbus_marshal_utf8_string. Also fix some tests.
12807
12808 2002-12-28  Harri Porten  <porten@kde.org>
12809
12810         * configure.in: added check for C++ compiler and a very cheesy
12811         check for the Qt integration
12812
12813         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12814
12815         * qt/Makefile.am: added
12816
12817         * qt/.cvsignore: added
12818
12819         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12820         latter, added #ifdef QT_THREAD_SUPPORT guard.
12821
12822         * dbus/Makefile.am: added missing headers for make dist
12823
12824 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12825
12826         * dbus/Makefile.am: fixup export-symbols-regex.
12827
12828 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12829
12830         * acinclude.m4: Add this file and put the
12831         PKG_CHECK_MODULE macro in it.
12832
12833 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12834
12835         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12836         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12837         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12838         (_dbus_marshal_test):
12839         Make the demarshalling routines align the pos argument.
12840         Add string marshalling tests and fix the obvious bugs
12841         discovered.
12842
12843 2002-12-26  Havoc Pennington  <hp@pobox.com>
12844
12845         * dbus/dbus-auth.c: fixes fixes fixes
12846
12847         * dbus/dbus-transport-unix.c: wire up support for
12848         encoding/decoding data on the wire
12849
12850         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12851         (_dbus_auth_decode_data): append to target string
12852         instead of nuking it.
12853
12854 2002-12-26  Havoc Pennington  <hp@pobox.com>
12855
12856         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12857         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12858         doh
12859
12860         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12861         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12862         now). Main point is because I wanted unpack_uint32 to implement
12863         _dbus_verbose_bytes
12864         (_dbus_verbose_bytes): new function
12865
12866         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12867
12868         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12869         mechanism to handle a corrupt message stream
12870         (_dbus_message_loader_new): fix preallocation to only prealloc,
12871         not prelengthen
12872
12873         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12874         (_dbus_string_test): enhance tests for copy/move and fix the
12875         functions
12876
12877         * dbus/dbus-transport-unix.c: Hold references in more places to
12878         avoid reentrancy problems
12879
12880         * dbus/dbus-transport.c: ditto
12881
12882         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12883         leak reference count in no-message case
12884
12885         * test/watch.c (do_mainloop): handle adding/removing watches
12886         during iteration over the watches. Also, ref the connection/server
12887         stored on a watch, so we don't try to mangle a destroyed one.
12888
12889         * dbus/dbus-transport-unix.c (do_authentication): perform
12890         authentication
12891
12892         * dbus/dbus-auth.c (get_state): add a state
12893         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12894         (_dbus_auth_get_unused_bytes): append the unused bytes
12895         to the passed in string, rather than prepend
12896
12897         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12898         the auth conversation DBusAuth
12899
12900         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12901         (_dbus_transport_new_for_domain_socket): when creating a
12902         transport, pass in whether it's a client-side or server-side
12903         transport so we know which DBusAuth to create
12904
12905 2002-12-03  Havoc Pennington  <hp@pobox.com>
12906
12907         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12908         _after_ finalizing the derived members
12909         (unix_connection_set): unref watch if we fail to add it
12910
12911         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12912         transport first, so that the connection owned by the
12913         transport will be valid as the transport finalizes.
12914
12915         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12916         if necessary, and remove watches from the connection.
12917
12918         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12919
12920 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12921
12922         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12923         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12924         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12925         (_dbus_marshal_test):
12926         * dbus/dbus-marshal.h:
12927         Add string marshal functions and have the demarshal functions
12928         return the new position.
12929
12930 2002-12-25  Havoc Pennington  <hp@pobox.com>
12931
12932         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12933         it is a simple protocol that just maps directly to SASL.
12934
12935         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12936         initial implementation, not actually used yet.
12937
12938         * dbus/dbus-string.c (_dbus_string_find): new function
12939         (_dbus_string_equal): new function
12940         (_dbus_string_base64_encode): new function
12941         (_dbus_string_base64_decode): new function
12942
12943 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12944
12945         * dbus/Makefile.am:
12946         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12947         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12948         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12949         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12950         * dbus/dbus-marshal.h:
12951         * dbus/dbus-protocol.h:
12952         * dbus/dbus-test.c: (main):
12953         * dbus/dbus-test.h:
12954         Add un-optimized marshalling/demarshalling routines.
12955
12956 2002-12-25  Harri Porten  <porten@kde.org>
12957
12958         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12959
12960 2002-12-24  Zack Rusin  <zack@kde.org>
12961
12962         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12963         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12964         main loop stuff
12965
12966 2002-12-24  Havoc Pennington  <hp@pobox.com>
12967
12968         * glib/dbus-gthread.c: fix include
12969
12970         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12971         I think glib API needs to change, though, as you don't
12972         want to use DBusMessageFunction, you want to use the
12973         DBusMessageHandler object. Probably
12974         dbus_connection_open_with_g_main_loop()
12975         and dbus_connection_setup_g_main_loop() or something like that
12976         (but think of better names...) that just create a connection
12977         that has watch/timeout functions etc. already set up.
12978
12979         * dbus/dbus-connection.c
12980         (dbus_connection_send_message_with_reply): new function just to
12981         show how the message handler helps us deal with replies.
12982
12983         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12984
12985         * dbus/dbus-string.c (_dbus_string_test): free a string that
12986         wasn't
12987
12988         * dbus/dbus-hash.c: use memory pools for the hash entries
12989         (rebuild_table): be more paranoid about overflow, and
12990         shrink table when we can
12991         (_dbus_hash_test): reduce number of sprintfs and write
12992         valid C89. Add tests for case where we grow and then
12993         shrink the hash table.
12994
12995         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12996
12997         * dbus/dbus-connection.c (dbus_connection_register_handler)
12998         (dbus_connection_unregister_handler): new functions
12999
13000         * dbus/dbus-message.c (dbus_message_get_name): new
13001
13002         * dbus/dbus-list.c: fix docs typo
13003
13004         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13005         an object representing a handler for messages.
13006
13007 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13008
13009         * glib/dbus-glib.h:
13010         * glib/dbus-gthread.c: (dbus_gthread_init):
13011         Don't use the gdbus prefix for public functions.
13012
13013 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13014
13015         * Makefile.am:
13016         * configure.in:
13017         Add GLib checks and fixup .pc files
13018
13019         * glib/Makefile.am:
13020         * glib/dbus-glib.h:
13021         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13022         (gdbus_connection_check), (gdbus_connection_dispatch),
13023         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13024         (dbus_connection_gsource_new):
13025         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13026         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13027         * glib/test-dbus-glib.c: (message_handler), (main):
13028         Add GLib support.
13029
13030 2002-12-15  Harri Porten  <porten@kde.org>
13031
13032         * autogen.sh: check for libtoolize before attempting to use it
13033
13034         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13035         struct.
13036
13037         * .cvsignore: ignore more stamp files
13038
13039         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13040
13041         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13042         without make install.
13043
13044 2002-12-15  Havoc Pennington  <hp@pobox.com>
13045
13046         * dbus/dbus-threads.c: add thread stubs that a higher library
13047         layer can fill in. e.g. the GLib wrapper might fill them in with
13048         GThread stuff. We still need to use this thread API to
13049         thread-safe-ize the library.
13050
13051 2002-12-12  Havoc Pennington  <hp@pobox.com>
13052
13053         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13054         below new interfaces and include fewer system headers.
13055
13056         * dbus/dbus-sysdeps.c (_dbus_read): new function
13057         (_dbus_write): new function
13058         (_dbus_write_two): new function
13059         (_dbus_connect_unix_socket): new function
13060         (_dbus_listen_unix_socket): new function
13061
13062         * dbus/dbus-message-internal.h: change interfaces to use
13063         DBusString
13064
13065 2002-12-11  Havoc Pennington  <hp@pobox.com>
13066
13067         * dbus/dbus-types.h: add dbus_unichar
13068
13069         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13070
13071         * dbus/dbus-connection.c (dbus_connection_send_message): return
13072         TRUE on success
13073
13074         * dbus/dbus-transport.c: include dbus-watch.h
13075
13076         * dbus/dbus-connection.c: include dbus-message-internal.h
13077
13078         * HACKING: add file with coding guidelines stuff.
13079
13080         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13081         handling here, for security purposes (as in vsftpd). Not actually
13082         using this class yet.
13083
13084         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13085         system/libc usage here, as in vsftpd, for ease of auditing (and
13086         should also simplify portability). Haven't actually moved all the
13087         system/libc usage into here yet.
13088
13089 2002-11-25  Havoc Pennington  <hp@pobox.com>
13090
13091         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13092         always print the first verbose message.
13093
13094 2002-11-24  Havoc Pennington  <hp@pobox.com>
13095
13096         * test/echo-client.c, test/echo-server.c: cheesy test
13097         clients.
13098
13099         * configure.in (AC_CHECK_FUNCS): check for writev
13100
13101         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13102         function
13103
13104         * dbus/dbus-list.c (_dbus_list_foreach): new function
13105
13106         * dbus/dbus-internals.c (_dbus_verbose): new function
13107
13108         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13109         representing a server that listens for connections.
13110
13111         * dbus/.cvsignore: create
13112
13113         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13114         public API for reporting errors
13115
13116         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13117         public object representing a connection that
13118         sends/receives messages. (Same object used for
13119         both client and server.)
13120
13121         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13122         Basic abstraction for different kinds of stream
13123         that we might read/write messages from.
13124
13125 2002-11-23  Havoc Pennington  <hp@pobox.com>
13126
13127         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13128         _DBUS_INT_MAX
13129
13130         * dbus/dbus-test.c (main): add list test, and include
13131         dbus-test.h as intended
13132
13133         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13134         (_dbus_hash_table_remove_int): return value indicates
13135         whether the entry existed to remove
13136
13137         * dbus/dbus-list.c: add linked list utility class,
13138         with docs and tests
13139
13140         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13141         array sometimes.
13142
13143 2002-11-23  Havoc Pennington  <hp@pobox.com>
13144
13145         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13146         DBUS_END_DECLS to nothing, that should fix this once and for all
13147
13148         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13149
13150         * dbus/dbus-message.c, dbus/dbus-hash.c:
13151         add some missing @brief
13152
13153 2002-11-23  Havoc Pennington  <hp@pobox.com>
13154
13155         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13156         to avoid confusing Doxygen
13157
13158         * dbus/dbus-hash.c: @} not }@
13159
13160         * dbus/dbus-message.c (struct DBusMessage): split out
13161         internals docs
13162
13163 2002-11-23  Havoc Pennington  <hp@pobox.com>
13164
13165         * configure.in: pile on more warning flags if using gcc
13166
13167         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13168         to document static functions
13169
13170         * configure.in: add summary to end of configure so it
13171         looks nice and attractive
13172
13173         * dbus/dbus-hash.c: finish implementation and write unit
13174         tests and docs
13175
13176         * configure.in: add --enable-tests to enable unit tests
13177
13178         * dbus/dbus-test.c: test program to run unit tests
13179         for all files in dbus/*, initially runs a test for
13180         dbus-hash.c
13181
13182         * dbus/dbus-internals.h: file to hold some internal utility stuff
13183
13184 2002-11-22  Havoc Pennington  <hp@redhat.com>
13185
13186         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13187         "ported" away from Tcl
13188
13189         * dbus/dbus-types.h: header for types such as dbus_bool_t
13190
13191 2002-11-22  Havoc Pennington  <hp@redhat.com>
13192
13193         * dbus/dbus.h: fixups for doc warnings
13194
13195         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13196         macros
13197         (QUIET): make it quiet so we can see warnings
13198
13199         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13200
13201 2002-11-22  Havoc Pennington  <hp@redhat.com>
13202
13203         * Makefile.am: include "Doxyfile" target in all-local
13204
13205         * configure.in: generate the Doxyfile
13206
13207         * Doxyfile.in: move Doxyfile here, so we can use
13208         configure to generate a Doxyfile with the right
13209         version number etc.
13210
13211 2002-11-22  Havoc Pennington  <hp@redhat.com>
13212
13213         * dbus/dbus-message.c: move inline docs into .c file
13214
13215         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13216         so all docs are under doc/
13217         (MAN_EXTENSION): generate man pages. Use extension
13218         ".3dbus" which matches ".3qt" on my system,
13219         I guess this is OK, I don't know really.
13220         (FILE_PATTERNS): look for .c files not .h, makes sense
13221         for plain C I think
13222
13223 2002-11-22  Havoc Pennington  <hp@pobox.com>
13224
13225         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13226         because any app can be a server, and any app can be a client,
13227         the bus is a special kind of server.
13228
13229 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13230
13231         * Doxyfile : adding. Still needs Makefile rules to be generated
13232         automatically (just run "doxygen" in the toplevel dir for now to
13233         generate docs)
13234
13235         * dbus/dbus-message.h : Adding sample docs (javadoc since
13236         resembles gtk-doc a little more)
13237
13238         * dbus/dbus.h : Adding sample docs
13239
13240 2002-11-21  Havoc Pennington  <hp@redhat.com>
13241
13242         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13243         so we can allow ourselves to include files directly,
13244         instead of having to use dbus.h
13245
13246         * dbus/dbus.h: fill in
13247
13248         * dbus/dbus-message.h: sketch out a sample header file.
13249         Include griping if you include it directly instead of
13250         via dbus.h
13251
13252         * dbus/dbus-macros.h: new file with macros for extern "C",
13253         TRUE/FALSE, NULL, etc.
13254
13255         * doc/file-boilerplate.c: put include guards in here
13256
13257 2002-11-21  Havoc Pennington  <hp@redhat.com>
13258
13259         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13260
13261         * COPYING: include the GPL as well, and license code
13262         under both AFL and GPL.
13263
13264 2002-11-21  Havoc Pennington  <hp@redhat.com>
13265
13266         * acconfig.h: get rid of this
13267
13268         * autogen.sh (run_configure): add --no-configure option
13269
13270         * configure.in: remove AC_ARG_PROGRAM to make
13271         autoconf complain less. add AC_PREREQ.
13272         add AC_DEFINE third arg.
13273
13274 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13275
13276         * doc/Makefile.am:
13277         Fix references so we can distcheck.
13278
13279 2002-11-21  Havoc Pennington  <hp@redhat.com>
13280
13281         * Initial module creation
13282