2005-01-30 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2005-01-30  Havoc Pennington  <hp@redhat.com>
2
3         * test/glib/test-profile.c (no_bus_stop_server): remove the
4         warning about the g_warning that I just fixed
5
6         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
7         custom source, seems to be a lot easier to understand and work
8         better.
9
10 2005-01-30  Havoc Pennington  <hp@redhat.com>
11
12         I think this main loop thing is conceptually broken, but here are 
13         some band aids. I'll maybe rewrite it in a minute.
14         
15         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
16         custom GSource, so don't pass it in; confusing
17         (gsource_server_finalize, gsource_connection_finalize): add
18         finalize handlers that remove all the watches.  
19
20 2005-01-30  Havoc Pennington  <hp@redhat.com>
21
22         * glib/dbus-gobject.c (introspect_properties): fix the XML
23         generated
24
25         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
26         which effectively detects the use of freed messages
27
28         * glib/dbus-gobject.c (handle_introspect): modify and return the
29         reply message instead of the incoming message
30
31         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
32         gee, maybe it should SEND THE XML instead of just making a string
33         and freeing it again ;-)
34
35         * tools/dbus-print-message.c (print_message): improve printing of
36         messages
37
38         * configure.in: add debug-glib.service to the output
39
40 2005-01-30  Havoc Pennington  <hp@redhat.com>
41
42         dbus-viewer introspected and displayed the bus driver
43         
44         * dbus/dbus-object-tree.c 
45         (object_tree_test_iteration): add tests for a handler registered on "/"
46
47         * dbus/dbus-object-tree.c
48         (_dbus_decompose_path): fix to handle path "/" properly
49         (run_decompose_tests): add tests for path decomposition
50         
51         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
52         properly
53
54         * glib/dbus-gobject.c (handle_introspect): fix quotes
55
56         * test/glib/run-test.sh: support launching the bus, then running
57         dbus-viewer
58
59         * test/glib/test-service-glib.c (main): put in a trivial gobject
60         subclass and register it on the connection
61
62         * bus/driver.c (bus_driver_handle_introspect): implement
63         introspection of the bus driver service
64
65         * dbus/dbus-protocol.h: add #defines for the XML namespace,
66         identifiers, doctype decl
67
68         * bus/driver.c (bus_driver_handle_get_service_owner): handle
69         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
70         returning the service unchanged.
71         (bus_driver_handle_message): remove old check for reply_serial in
72         method calls, now the message type deals with that
73         (bus_driver_handle_message): handle NULL interface
74
75         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
76
77         * glib/dbus-gloader-expat.c (description_load_from_string): allow
78         -1 for len
79
80         * tools/dbus-viewer.c: add support for introspecting a service on
81         a bus
82
83         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
84         (dbus_g_pending_call_unref): add
85
86 2005-01-29  Havoc Pennington  <hp@redhat.com>
87
88         * tools/dbus-tree-view.c: add support for displaying properties.
89         (run dbus-viewer with an introspect xml file as arg, then resize
90         the window so the tree elements show up, not sure what that is)
91
92         * glib/dbus-gobject.c (handle_introspect): return
93         org.freedesktop.Properties and org.freedesktop.Introspectable
94         interfaces when we are introspected.
95
96         * doc/dbus-specification.xml: allow empty interface name when 
97         Get/Set a property
98
99 2005-01-29  Havoc Pennington  <hp@redhat.com>
100
101         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
102         though it uses glib, it could be extended for any binding in
103         principle
104
105         * glib/dbus-gobject.c (gobject_message_function): change to the
106         new way properties work
107
108         * dbus/dbus-protocol.h: add the new interfaces
109
110         * doc/dbus-specification.xml: document the introspection format,
111         Introspectable interface, and add an org.freedesktop.Properties
112         interface.
113
114         * glib/dbus-gparser.c: add support for a <property> element
115
116         * glib/dbus-gidl.c: add PropertyInfo
117
118         * glib/dbus-gobject.c (handle_introspect): put the outermost
119         <node> outside the signal and property descriptions.
120         (introspect_properties): export properties as <property> rather
121         than as method calls
122
123 2005-01-28  Havoc Pennington  <hp@redhat.com>
124
125         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
126         related to authentication protocol
127
128 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
129
130         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
131                 - BUS_ACTIVATION -> BUS_STARTER
132                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
133                 - class MessageIter (__init__): Added recursion checking 
134                 so we throw a nice error instead of just disconnecting from the
135                 bus.
136                 (get): Added arg_type parameter for recursion.
137                 Removed the nil type
138                 Added signiture type placeholder (not implemented)
139                 Added struct type placeholder (not implemented)
140                 Added varient type placeholder (not implemented)
141                 Commented out dict type for now     
142                 (get_element_type): renamed from get_array_type
143                 (get_*): changed to use the dbus_message_iter_get_basic API
144                 (get_*_array): removed in favor of recursive get_array method
145                 (get_array): new recursive method which calls get to marshal
146                 the elements of the array
147                 (value_to_dbus_sig): New method returns the corrasponding
148                 dbus signiture to a python value
149                 (append): Comment out dict handling for now
150                 Handle lists with the new recursive API
151                 Comment out None handling for now
152                 (append_nil): removed
153                 (append_*): changed to use dbus_message_iter_append_basic API
154                 (append_*_array): removed in favor of recursive append_array 
155                 method
156                 (__str__): Make it easier to print out recursive iterators
157                 for debugging
158                 - class Message (__str__): moved type inspection to the
159                 MessageIter class' __str__ method
160                 (get_iter): Added an append parameter wich defaults to False
161                 If True use the new API's to create an append iterator
162
163         * python/dbus.py: Update to use new bindings API
164                 - TYPE_ACTIVATION -> TYPE_STARTER
165                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
166                 - class ActivationBus -> class StarterBus
167                 - class RemoteObject (__call__): get an append iterator
168                 - (_dispatch_dbus_method_call): get an append iterator
169                 - class Object (emit_signal): get an append iterator
170
171         * python/examples/: Fixed up the examples to work with the new API
172                 
173 2005-01-28  Joe Shaw  <joeshaw@novell.com>
174
175         * configure.in: Bump version up to 0.30.
176
177         * HACKING: Add a release item to bump the version number up after 
178         a release.
179
180 2005-01-28  Havoc Pennington  <hp@redhat.com>
181
182         * doc/dbus-specification.xml: update to describe 16-bit types and
183         dict entries
184
185         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
186         assertion
187
188         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
189         type
190
191         * dbus/dbus-marshal-recursive.c: implement
192
193 2005-01-27  Havoc Pennington  <hp@redhat.com>
194
195         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
196
197         * configure.in: find the right type for 16 and 32 bit ints as well
198         as 64
199
200         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
201         the 16-bit types so people don't have to stuff them in 32-bit or
202         byte arrays.
203
204 2005-01-27  Havoc Pennington  <hp@redhat.com>
205
206         * dbus/dbus-message.c: byteswap the message if you init an
207         iterator to read/write from it
208         
209         * dbus/dbus-marshal-byteswap.c: new file implementing 
210         _dbus_marshal_byteswap()
211
212         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
213
214 2005-01-26  Havoc Pennington  <hp@redhat.com>
215         
216         * dbus/dbus-marshal-validate-util.c: break this out (and fix
217         build, apparently - nobody noticed?)
218         
219 2005-01-26  Havoc Pennington  <hp@redhat.com>
220
221         * dbus/dbus-marshal-recursive.h: remove todo comment
222
223 2005-01-25  Joe Shaw  <joeshaw@novell.com>
224
225         * Land the mono binding changes to conform to the new APIs.
226
227         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
228         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
229
230         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
231         type code as a string.
232         (InitAppending): Rename dbus_message_append_iter_init() to
233         dbus_message_iter_init_append().
234
235         * mono/BusDriver.cs: Rename ServiceEventHandler to
236         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
237         Rename ServiceOwnerChanged to NameOwnerChanged.
238
239         * mono/Connection.cs: Rename BaseService to UniqueName, and the
240         underlying C call.
241
242         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
243
244         * mono/Service.cs: Rename Exists to HasOwner, internally rename
245         dbus_bus_acquire_service() to dbus_bus_request_name().
246
247         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
248         of Type.UnderlyingSystemType to get the correct element type for
249         the array.
250         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
251         dbus_message_get_{element|arg}_type() instead of
252         dbus_message_iter_init_array_iterator().
253         (Append): Replace dbus_message_iter_append_array() with
254         dbus_message_iter_open_container() and
255         dbus_message_iter_close_container().
256
257         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
258         types have been removed.
259         
260         * mono/DBusType/*.cs: Replace calls of
261         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
262         but specify the type in the DllImport extern declaration.  Ditto
263         for dbus_message_iter_append_[type]() ->
264         dbus_message_iter_append_basic().
265
266         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
267         NameOwnerChangedHandler.
268
269 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
270
271         * python/dbus_bindings.pyx.in: Rename of methods and bindings
272                 - get_base_service -> get_unique_name
273                 - bus_get_base_service -> bus_get_unique_name
274                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
275                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
276                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
277                 - bus_activate_service -> bus_start_service_by_name
278                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
279                 - bus_acquire_service -> bus_request_name
280                 - dbus_bus_acquire_service -> dbus_bus_request_name
281                 - bus_service_exists -> bus_name_has_owner
282                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
283
284         * python/dbus.py: Rename of methods
285                 - activate_service -> start_service_by_name
286                 - bus_acquire_service -> bus_request_name
287                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
288                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
289
290         
291 2005-01-24  Joe Shaw  <joeshaw@novell.com>
292
293         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
294         signature for the method that can't be found.
295
296         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
297         the message has any arguments, we need to call
298         _dbus_type_reader_get_current_type(), not
299         _dbus_type_reader_has_next().
300
301 2005-01-24  Havoc Pennington  <hp@redhat.com>
302
303         * dbus/dbus-message-factory.c: more testing of message validation
304
305         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
306         header
307
308 2005-01-23  Havoc Pennington  <hp@redhat.com>
309
310         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
311         get this all working, not many tests in the framework yet though
312
313 2005-01-22  Havoc Pennington  <hp@redhat.com>
314
315         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
316         tutorial, based on work from David Wheeler.
317
318 2005-01-21  Havoc Pennington  <hp@redhat.com>
319
320         * dbus/dbus-bus.c: add more return_if_fail checks
321
322         * dbus/dbus-message.c (load_message): have the "no validation"
323         mode (have to edit the code to toggle the mode for now though)
324
325         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
326         skips all validation; I want to use this at least for benchmark
327         baseline, I'm not sure if it should be a publicly-available switch.
328
329 2005-01-21  Havoc Pennington  <hp@redhat.com>
330
331         * glib/dbus-gmain.c: don't put the GLib bindings in the same
332         toplevel doxygen group as the low-level API stuff
333
334         * dbus/dbus.h: note that libdbus is the low-level API
335
336 2005-01-20  Havoc Pennington  <hp@redhat.com>
337
338         * update-dbus-docs.sh: script to update docs on the web site, only
339         works for me though. neener.
340
341 2005-01-20  Havoc Pennington  <hp@redhat.com>
342
343         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
344         code can reveal bugs in it
345
346 2005-01-20  Havoc Pennington  <hp@redhat.com>
347
348         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
349         select() version, patches from Tor Lillqvist
350
351 2005-01-20  Havoc Pennington  <hp@redhat.com>
352
353         * doc/dbus-tutorial.xml: replace > with &gt;
354
355         * bus/services.c (bus_registry_acquire_service): validate the name
356         and return a better error if it's no good.
357
358         * doc/dbus-specification.xml: note NO_AUTO_START change
359
360         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
361         from AUTO_START, we're toggling the default
362
363         * bus/dispatch.c: adapt the tests to change of auto-start default
364
365 2005-01-18  Havoc Pennington  <hp@redhat.com>
366
367         * rename dbus-daemon-1 to dbus-daemon throughout
368
369 2005-01-18  Havoc Pennington  <hp@redhat.com>
370
371         * Throughout, grand renaming to strip out the use of "service",
372         just say "name" instead (or "bus name" when ambiguous).  Did not
373         change the internal code of the message bus itself, only the
374         programmer-facing API and messages.
375         
376         * doc/dbus-specification.xml: further update the message bus section
377         
378         * bus/config-parser.c (all_are_equiv): fix bug using freed string
379         in error case
380
381 2005-01-17  Havoc Pennington  <hp@redhat.com>
382
383         * dbus/dbus-types.h: remove 16-bit types since we don't use them
384         ever
385
386         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
387         "invalid name character" not only non-ASCII
388
389         * doc/dbus-specification.xml: further update spec, message bus 
390         parts are still out-of-date but the marshaling etc. stuff is now
391         accurate-ish
392
393 2005-01-17  Havoc Pennington  <hp@redhat.com>
394
395         * doc/dbus-specification.xml: partially update spec
396
397 2005-01-17  Havoc Pennington  <hp@redhat.com>
398
399         * Throughout, align variant bodies according to the contained
400         type, rather than always to 8. Should save a fair bit of space in
401         message headers.
402         
403         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
404         fix handling of case where p == end
405
406         * doc/TODO: remove the dbus_bool_t item and variant alignment items
407
408 2005-01-17  Havoc Pennington  <hp@redhat.com>
409
410         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
411
412         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
413         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
414         are marshaling/unmarshaling a boolean.
415
416 2005-01-16  Havoc Pennington  <hp@redhat.com>
417
418         This is about it on what can be disabled/deleted from libdbus
419         easily, back below 150K anyhow. Deeper cuts are more work than 
420         just turning the code off as I've done here.
421         
422         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
423         signed int convenience funcs
424
425         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
426         verbose mode
427
428         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
429         things out of libdbus
430
431         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
432         
433         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
434         tests-enabled-only, though it should probably be deleted)
435
436         * dbus/dbus-message-util.c: same stuff
437
438         * dbus/dbus-auth-util.c: same stuff
439
440 2005-01-16  Havoc Pennington  <hp@redhat.com>
441
442         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
443
444         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
445         way for stripping down dbus-userdb.c stuff included in libdbus.
446         Rename _dbus_parse_uid for consistency.
447
448 2005-01-16  Havoc Pennington  <hp@redhat.com>
449
450         * dbus/dbus-internals.c (_dbus_real_assert): print the function
451         name the assertion failed in
452
453         * dbus/dbus-internals.h (_dbus_return_if_fail) 
454         (_dbus_return_val_if_fail): assert that the name of the function
455         containing the check doesn't start with '_', since we only want to 
456         use checks on public functions
457         
458         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
459         checks to assertions
460
461         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
462         change checks to asserts for private function
463
464         * dbus/dbus-message.c (_dbus_message_set_serial): checks
465         to asserts for private function
466
467         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
468         broken assertion that was breaking make check
469         (_dbus_type_reader_array_is_empty): remove this rather than fix
470         it, was only used in assertions
471
472 2005-01-16  Havoc Pennington  <hp@redhat.com>
473
474         * test/unused-code-gc.py: hacky script to find code that's used
475         only by the bus (not libdbus) or used only by tests or not used at
476         all. It has some false alarms, but looks like we can clean up a
477         lot of size from libdbus.
478
479         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
480         dbus/Makefile.am: initially move 10K of binary size out of libdbus
481         
482 2005-01-16  Havoc Pennington  <hp@redhat.com>
483
484         * Add and fix docs according to Doxygen warnings throughout
485         source.
486         
487         * dbus/dbus-marshal-recursive.c
488         (_dbus_type_reader_array_is_empty): change this to just call
489         array_reader_get_array_len() and make it static
490
491         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
492         from get_array_type
493         (dbus_message_iter_init_append): rename from append_iter_init
494
495         * dbus/dbus-marshal-recursive.c
496         (_dbus_type_reader_get_element_type): rename from
497         _dbus_type_reader_get_array_type
498
499 2005-01-15  Havoc Pennington  <hp@redhat.com>
500
501         * test/glib/test-profile.c (with_bus_server_filter): fix crash
502
503         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
504         when DBUS_DISABLE_ASSERT
505         (_dbus_marshal_set_basic): be sure we align for the string length
506
507         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
508         this look faster
509
510         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
511         inline macro version
512         (_dbus_string_set_byte): provide inline macro version
513
514 2005-01-15  Havoc Pennington  <hp@redhat.com>
515
516         * Land the new message args API and type system.
517
518         This patch is huge, but the public API change is not 
519         really large. The set of D-BUS types has changed somewhat, 
520         and the arg "getters" are more geared toward language bindings;
521         they don't make a copy, etc.
522
523         There are also some known issues. See these emails for details
524         on this huge patch:
525         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
526         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
527         
528         * dbus/dbus-marshal-*: all the new stuff
529
530         * dbus/dbus-message.c: basically rewritten
531
532         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
533         freed blocks to be all non-nul bytes so using freed memory is less
534         likely to work right
535
536         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
537         DBUS_FAIL_MALLOC=N environment variable, so you can do
538         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
539         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
540         thorough.
541
542         * qt/message.cpp: port to the new message args API
543         (operator<<): use str.utf8() rather than str.unicode()
544         (pretty sure this is right from the Qt docs?)
545
546         * glib/dbus-gvalue.c: port to the new message args API
547
548         * bus/dispatch.c, bus/driver.c: port to the new message args API
549
550         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
551         "locked" flag to TRUE and align_offset to 0; I guess we never
552         looked at these anyhow, but seems cleaner.
553
554         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
555         move allocation padding macro to this header; use it to implement
556         (_DBUS_STRING_STATIC): ability to declare a static string.
557
558         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
559         change to return TRUE if the interface is not set.
560
561         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
562         to dbus-marshal-validate.[hc]
563
564         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
565         dbus-internals.c
566
567         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
568         to dbus-marshal-*.[hc]
569
570         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
571         function here from dbus-marshal.c
572
573 2005-01-12  Joe Shaw  <joeshaw@novell.com>
574
575         * NEWS: Update for 0.23.
576
577         * configure.in: Release 0.23.
578
579 2005-01-12  Joe Shaw  <joeshaw@novell.com>
580
581         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
582         dbus DLL with --debug.  Clean up after the .mdb files this leaves
583         behind.
584
585         * mono/doc/Makefile.am: Need to uninstall the docs on "make
586         uninstall"
587
588         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
589         is an enum, get the enum's underlying type.  Another mono
590         1.1.3 fix.
591
592 2005-01-11  Joe Shaw  <joeshaw@novell.com>
593
594         Patch from Sjoerd Simons <sjoerd@luon.net>
595
596         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
597         DESTDIR.  It breaks stuff.
598
599 2005-01-11  Joe Shaw  <joeshaw@novell.com>
600
601         Patch from Tambet Ingo <tambet@ximian.com>
602
603         * mono/DBusType/Array.cs (Get): Get the underlying element type by
604         calling type.GetElementType().  The code previously depended on
605         broken Mono behavior, which was fixed in Mono 1.1.3.
606
607         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
608         Activator.CreateInstance() so that the class's constructor is
609         called with the right parameters.
610
611 2005-01-11  Joe Shaw  <joeshaw@novell.com>
612
613         Patch from Timo Teräs <ext-timo.teras@nokia.com>
614
615         * dbus/dbus-connection.c
616         (_dbus_connection_queue_received_message_link): Call
617         _dbus_connection_remove_timeout() instead of the _locked()
618         variant, since it's always called from
619         _dbus_connection_handle_watch(), which handles the locking.
620         Removed the _locked() variant since it's no longer used.
621
622 2005-01-03  Havoc Pennington  <hp@redhat.com>
623
624         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
625         return
626         
627 2004-12-26  Havoc Pennington  <hp@redhat.com>
628
629         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
630
631 2005-01-03  Havoc Pennington  <hp@redhat.com>
632
633         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
634         floating point
635
636         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
637
638 2005-01-02  Havoc Pennington  <hp@redhat.com>
639
640         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
641
642 2005-01-01  Havoc Pennington  <hp@redhat.com>
643
644         * configure.in: add -Wfloat-equal
645
646 2005-01-01  Havoc Pennington  <hp@redhat.com>
647
648         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
649         for a variety of reasons '==' doesn't do this.
650
651 2004-12-31  Havoc Pennington  <hp@redhat.com>
652
653         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
654         I keep wishing I had
655
656 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
657
658         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
659
660 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
661
662         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
663         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
664         dbus-protocol.h.  Because they are defines and not enums they are not
665         autogenerated.
666
667 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
668
669         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
670         dbus_bus_activate_service
671
672         * python/dbus.py (Bus.activate_service): activate a service on the
673         bus.
674
675 2004-12-24  Havoc Pennington  <hp@redhat.com>
676
677         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
678         file format has also changed and I haven't adapted to that yet
679         
680         * Makefile.am: load .gcno files from latest gcc
681
682 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
683         * Patch from Rob Taylor <robtaylor@fastmail.fm>
684
685         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
686         lowlevel binding
687
688         * python/dbus.py (get_unix_user): Added binding to 
689         call dbus_bindings.bus_get_unix_user
690
691         * python/extract.py: Modified the proto_pat regex to
692         handle unsigned long
693
694 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
695
696         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
697         better POSIX compliance.
698
699 2004-12-19  Havoc Pennington  <hp@redhat.com>
700
701         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
702         (_dbus_string_insert_8_aligned): new functions
703
704         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
705
706 2004-12-18  Havoc Pennington  <hp@redhat.com>
707
708         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
709         macro
710
711         * dbus/dbus-message.c: fix a comment, and add a still-unused
712         not-implemented function
713
714         * dbus/dbus-marshal.h: fix comment
715
716         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
717
718 2004-12-17  Joe Shaw  <joeshaw@novell.com>
719
720         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
721         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
722         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
723         Type.UnderlyingSystemType to get the actual system type
724         underneath.  This code previously depended on the broken Mono
725         behavior, which was fixed in 1.1.3.
726
727 2004-11-27  Havoc Pennington  <hp@redhat.com>
728
729         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
730         are disabled
731         (_dbus_string_get_const_data): inline when asserts are disabled
732
733         * dbus/dbus-message.c: record the _dbus_current_generation of
734         creation so we can complain if dbus_shutdown() is used improperly.
735         Do this only if checks are enabled.
736
737         * dbus/dbus-connection.c: ditto
738         
739 2004-11-26  Havoc Pennington  <hp@redhat.com>
740
741         * test/glib/test-profile.c: add with_bus mode to profile echoes
742         that go through the bus.
743
744         * test/glib/run-test.sh: add ability to run test-profile
745
746         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
747         config file reload.
748
749 2004-11-26  Havoc Pennington  <hp@redhat.com>
750
751         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
752         thing was implemented
753
754 2004-11-26  Havoc Pennington  <hp@redhat.com>
755
756         * test/glib/test-profile.c: tweak a bit, add support for some
757         made-up minimal malloc overhead with plain sockets, since in 
758         real life some sort of buffers are unavoidable thus we could 
759         count them in the theoretical best case
760
761 2004-11-26  Havoc Pennington  <hp@redhat.com>
762
763         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
764         where I was trying to cache one too many messages
765
766 2004-11-26  Havoc Pennington  <hp@redhat.com>
767
768         * dbus/dbus-message.c: reimplement message cache as an array which 
769         makes the cache about twice as fast and saves maybe 1.5% overall
770
771 2004-11-26  Havoc Pennington  <hp@redhat.com>
772
773         * dbus/dbus-threads.c (init_global_locks): forgot to put the
774         message cache lock here
775
776 2004-11-26  Havoc Pennington  <hp@redhat.com>
777
778         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
779         the "char byte_order" next to each other to save 4 bytes
780         (dbus_message_new_empty_header): reduce preallocation, since the
781         message cache should achieve a similar effect
782         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
783         message cache that keeps a few DBusMessage around in a pool,
784         another 8% speedup or so.
785
786         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
787
788 2004-11-25  Havoc Pennington  <hp@redhat.com>
789
790         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
791         to write, without reading or blocking, try it before the poll()
792         and skip the poll() if nothing remains to write. This is about a
793         3% speedup in the echo client/server
794
795 2004-11-25  Havoc Pennington  <hp@redhat.com>
796
797         The primary change here is to always write() once before adding
798         the write watch, which gives us about a 10% performance increase.
799         
800         * dbus/dbus-transport-unix.c: a number of modifications to cope
801         with removing messages_pending
802         (check_write_watch): properly handle
803         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
804         messages_pending stuff
805         (check_read_watch): properly handle WAITING_FOR_MEMORY and
806         AUTHENTICATED cases
807         (unix_handle_watch): after writing, see if the write watch can be
808         removed
809         (unix_do_iteration): assert that write_watch/read_watch are
810         non-NULL rather than testing that they aren't, since they 
811         aren't allowed to be NULL. check_write_watch() at the end so 
812         we add the watch if we did not finish writing (e.g. got EAGAIN)
813
814         * dbus/dbus-transport-protected.h: remove messages_pending call,
815         since it resulted in too much inefficient watch adding/removing; 
816         instead we now require that the transport user does an iteration 
817         after queueing outgoing messages, and after trying the first
818         write() we add a write watch if we got EAGAIN or exceeded our 
819         max bytes to write per iteration setting
820
821         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
822         function
823
824         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
825         freed and then accessed, valgrind flagged this bug, fix it
826
827         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
828         as the last valid field plus 1, where really it is equal to the
829         last valid field. Corrects some message corruption issues.
830
831         * dbus/dbus-mainloop.c: verbosity changes
832
833         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
834         instead of aborting in one of the test codepaths
835
836         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
837         caused not printing the pid ever again if a verbose was missing
838         the newline at the end
839         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
840
841         * dbus/dbus-connection.c: verbosity changes; 
842         (dbus_connection_has_messages_to_send): new function
843         (_dbus_connection_message_sent): no longer call transport->messages_pending
844         (_dbus_connection_send_preallocated_unlocked): do one iteration to
845         try to write() immediately, so we can avoid the write watch. This
846         is the core purpose of this patchset
847         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
848         dump the outgoing message queue, so nobody will get confused
849         trying to send them or thinking stuff is pending to be sent
850
851         * bus/test.c: verbosity changes
852
853         * bus/driver.c: verbosity/assertion changes
854
855         * bus/dispatch.c: a bunch of little tweaks to get it working again
856         because this patchset changes when/where you need to block.
857
858 2004-11-23  Havoc Pennington  <hp@redhat.com>
859
860         * test/glib/test-profile.c: modify to accept a plain_sockets
861         argument in which case it will bench plain sockets instead of
862         libdbus, for comparison purposes.
863
864 2004-11-22  Havoc Pennington  <hp@redhat.com>
865
866         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
867         threads for more time, so sysprof can get a grip on it.
868
869         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
870         pointless variable
871
872 2004-11-13  Havoc Pennington  <hp@redhat.com>
873
874         * test/glib/test-profile.c: fix this thing up a bit
875
876         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
877         preallocation sizes by a fair bit; not sure if this will be an
878         overall performance win or not, but it does reduce reallocs.
879
880         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
881         the test hack that forced constant realloc if asserts are
882         disabled, so we can profile sanely. Sprinkle in some
883         _DBUS_UNLIKELY() which are probably pointless, but before I
884         noticed the real performance problem I put them in.
885         (_dbus_string_validate_utf8): micro-optimize this thing a little
886         bit, though callgrind says it didn't help; then special-case
887         ascii, which did help a lot; then be sure we detect nul bytes as
888         invalid, which is a bugfix.
889         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
890         superstition; use memset to nul the padding instead of a manual
891         loop.
892         (_dbus_string_get_length): inline this as a
893         macro; it showed up in the profile because it's used for loop
894         tests and so forth
895
896 2004-11-10  Colin Walters  <walters@verbum.org>
897
898         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
899         for extra paranoia.
900
901 2004-11-09  Colin Walters  <walters@verbum.org>
902
903         * dbus/dbus-string.c (_dbus_string_get_length): New
904         function, writes DBusString to C buffer.
905
906         * dbus/dbus-string.h: Prototype it.
907
908         * dbus/dbus-message.c (dbus_message_type_to_string): New
909         function, converts message type into C string.
910
911         * dbus/dbus-message.h: Prototype it.
912
913         * bus/selinux.c (bus_selinux_check): Take source pid,
914         target pid, and audit data.  Pass audit data to
915         avc_has_perm.
916         (log_audit_callback): New function, appends extra
917         audit information.
918         (bus_selinux_allows_acquire_service): Also take
919         service name, add it to audit data.
920         (bus_selinux_allows_send): Also take message
921         type, interface, method member, error name,
922         and destination, and add them to audit data.
923         (log_cb): Initialize func_audit.
924         
925         * bus/selinux.h (bus_selinux_allows_acquire_service)
926         (bus_selinux_allows_send): Update prototypes 
927
928         * bus/services.c (bus_registry_acquire_service): Pass
929         service name to bus_selinux_allows_acquire_service.
930
931         * bus/bus.c (bus_context_check_security_policy): Pass
932         additional audit data.  Move assignment of dest
933         to its own line.
934
935 2004-11-07  Colin Walters  <walters@verbum.org>
936
937         * dbus/dbus-transport-unix.c (do_authentication): Always
938         initialize auth_completed.
939         
940 2004-11-07  Colin Walters  <walters@verbum.org>
941
942         * bus/bus.c (load_config): Break into three
943         separate functions: process_config_first_time_only,
944         process_config_every_time, and process_config_postinit.
945         (process_config_every_time): Move call of
946         bus_registry_set_service_context_table into
947         process_config_postinit.
948         (process_config_postinit): New function, does
949         any processing that needs to happen late
950         in initialization (and also on reload).
951         (bus_context_new): Instead of calling load_config,
952         open config parser here and call process_config_first_time_only
953         and process_config_every_time directly.  Later, after
954         we have forked but before changing UID,
955         invoke bus_selinux_full_init, and then call
956         process_config_postinit.
957         (bus_context_reload_config): As in bus_context_new,
958         load parse file inside here, and call process_config_every_time
959         and process_config_postinit.
960
961         * bus/services.h, bus/services.c
962         (bus_registry_set_service_context_table): Rename
963         from bus_registry_set_sid_table.  Take string hash from config
964         parser, and convert them here into SIDs.
965
966         * bus/config-parser.c (struct BusConfigParser): Have
967         config parser only store a mapping of service->context
968         string.
969         (merge_service_context_hash): New function.
970         (merge_included): Merge context string hashes instead
971         of using bus_selinux_id_table_union.
972         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
973         simply create a new string hash.
974         (bus_config_parser_unref): Unref it.
975         (start_selinux_child): Simply insert strings into hash,
976         don't call bus_selinux_id_table_copy_over.
977
978         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
979         (bus_selinux_id_table_copy_over): Delete.
980
981 2004-11-03  Colin Walters  <walters@verbum.org>
982
983         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
984         variables.
985         
986 2004-11-03  Colin Walters  <walters@verbum.org>
987
988         * bus/test-main.c (test_pre_hook): Fix test logic,
989         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
990
991 2004-11-02  Colin Walters  <walters@redhat.com>
992
993         * bus/selinux.c (bus_selinux_init): Split into two functions,
994         bus_selinux_pre_init and bus_selinux_post_init.
995         (bus_selinux_pre_init): Just determine whether SELinux is
996         enabled.
997         (bus_selinux_post_init): Do everything else.
998
999         * bus/main.c (main): Call bus_selinux_pre_init before parsing
1000         config file, and bus_selinux_post_init after.  This ensures that
1001         we don't lose the policyreload notification thread that
1002         bus_selinux_init created before forking previously.
1003         
1004         * bus/test-main.c (test_pre_hook): Update for split.
1005
1006 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
1007
1008         Patch from Johan Fischer <linux@fischaz.com>
1009         
1010         * mono/doc/Makefile.am (install-data-local): Added directory
1011         install for DESTDIR
1012
1013 2004-10-29  Colin Walters  <walters@redhat.com>
1014
1015         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
1016         parameter for fd to write pid to.       
1017
1018         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
1019         
1020         * bus/bus.c (bus_context_new): Pass print_pid_fd
1021         to _dbus_become_daemon (bug #1720)
1022
1023 2004-10-29  Colin Walters  <walters@redhat.com>
1024
1025         Patch from Ed Catmur <ed@catmur.co.uk>
1026
1027         * mono/doc/Makefile.am (install-data-local): Handle
1028         DESTDIR.
1029
1030 2004-10-29  Colin Walters  <walters@redhat.com>
1031
1032         * bus/.cvsignore, qt/.cvsignore: Update.
1033
1034 2004-10-29  Colin Walters  <walters@redhat.com>
1035
1036         Patch from Kristof Vansant <de_lupus@pandora.be>
1037
1038         * configure.in: Detect Slackware.
1039         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
1040         * bus/rc.messagebus.in: New file.
1041
1042 2004-10-29  Colin Walters  <walters@redhat.com>
1043
1044         * tools/dbus-monitor.c (filter_func): Return
1045         DBUS_HANDLER_RESULT_HANDLED in filter function
1046         for now.  See:
1047         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
1048
1049 2004-10-29  Colin Walters  <walters@redhat.com>
1050
1051         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
1052
1053         * bus/services.c (bus_registry_acquire_service): 
1054         Correctly retrieve service name from DBusString
1055         for printing.
1056
1057 2004-10-29  Colin Walters  <walters@redhat.com>
1058
1059         * dbus/dbus-glib.h: Update documentation to not
1060         refer to internal APIs.
1061
1062 2004-10-27  Joe Shaw  <joeshaw@novell.com>
1063
1064         * mono/Arguments.cs (GetDBusTypeConstructor):
1065         type.UnderlyingSystemType will return "System.Byte" if you do it
1066         on "byte[]", which is not what we want.  So check the type.IsArray
1067         property and use System.Array instead.
1068
1069 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
1070
1071         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
1072         the DBusUserInfo structure since this is passed into the function.
1073         This would cause a double free when the function that allocated
1074         the structure would try to free it when an error occured.
1075
1076         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
1077         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
1078         for service activation to avoid 32bit/64bit parallel install issues
1079
1080 2004-10-21  Colin Walters  <walters@verbum.org>
1081
1082         * AUTHORS: Fix my email address, the @gnu.org one
1083         has been bouncing for some time.  Also add J5.
1084         
1085 2004-10-21  Colin Walters  <walters@verbum.org>
1086
1087         * dbus/dbus-transport-unix.c (do_authentication): Return
1088         authentication status to callers.
1089         (unix_handle_watch): If we completed authentication this round,
1090         don't do another read.  Instead wait until the next iteration,
1091         after we've read any pending data in the auth buffer.
1092         (unix_do_iteration): Ditto.
1093         (unix_handle_watch): Updated for new do_authentication prototype.
1094
1095 2004-10-18  Colin Walters  <walters@verbum.org>
1096
1097         * bus/selinux.c (bus_selinux_enabled): Handle
1098         --disable-selinux case.
1099         
1100 2004-10-18  Colin Walters  <walters@verbum.org>
1101
1102         * bus/selinux.h: Add bus_selinux_enabled.
1103         
1104         * bus/selinux.c (bus_selinux_enabled): Implement it.
1105         
1106         * bus/config-parser.c (struct include): Add
1107         if_selinux_enabled member.
1108         (start_busconfig_child): Parse if_selinux_enabled
1109         attribute for include.
1110         (bus_config_parser_content): Handle it.
1111
1112         * bus/session.conf.in, bus/system.conf.in: Add
1113         inclusion of context mapping to default config files;
1114         conditional on SELinux being enabled.
1115         
1116         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
1117         
1118         * test/data/invalid-config-files/badselinux-1.conf, 
1119         test/data/invalid-config-files/badselinux-2.conf:
1120         Test files for bad syntax.
1121         
1122 2004-10-17  Colin Walters  <walters@verbum.org>
1123
1124         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
1125         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
1126         format specifier mismatches.
1127
1128 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1129
1130         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
1131         format string.
1132
1133         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
1134         pointer (bug #1540, Leonardo Boiko).
1135
1136 2004-09-28  Jon Trowbridge  <trow@ximian.com>
1137
1138         * mono/BusDriver.cs: Changed BusDriver struct to remove
1139         the ServiceCreated and ServiceDeleted events and replace them
1140         with the new ServiceOwnerChanged event.
1141
1142         * mono/example/BusListener.cs: Added a new example program,
1143         which listens for and reports any ServiceOwnerChanged events
1144         on the bus driver.
1145
1146         * mono/example/Makefile.am (DESTDIR): Build changes for the
1147         new BusListener.cs example.
1148
1149 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1150
1151         * bus/signals.c (bus_match_rule_parse): validate the components of
1152         match rules (bug #1439).
1153
1154         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
1155
1156 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1157
1158         * doc/dbus-specification.xml: document ServiceOwnerChanged
1159         signal.
1160         
1161         * bus/driver.c, bus/driver.h, bus/services.c: Use
1162         ServiceOwnerChanged signal instead of ServiceCreated and
1163         ServiceDeleted.
1164         
1165         * bus/dispatch.c: update testcase for the new signal.
1166
1167 2004-09-20  Jon Trowbridge  <trow@ximian.com>
1168
1169         Patch from Nat Friedman <nat@novell.com>
1170
1171         * mono/Makefile.am: A number of small build fixes to allow "make
1172         distcheck" to succeed.
1173
1174         * mono/example/Makefile.am: "make distcheck" fixes.
1175
1176         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
1177         key in @srcdir@.
1178
1179         * test/Makefile.am: "make distcheck" fixes.
1180
1181 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1182
1183         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
1184
1185         * doc/busconfig.dtd: update the DTD for the at_console attribute.
1186
1187         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
1188         messages after the first one (bug #1389).
1189         
1190         * bus/dispatch.c (check_double_hello_message): add a test case for
1191         the double hello message bug.
1192         (check_existent_service_activation): fix check of spawning error.
1193         
1194 2004-09-16  David Zeuthen  <david@fubar.dk>
1195
1196         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
1197
1198 2004-09-12  David Zeuthen  <david@fubar.dk>
1199
1200         Patch from Kay Sievers <kay.sievers@vrfy.org>
1201
1202         * bus/bus.c (bus_context_new):
1203         * bus/bus.h:
1204         * bus/main.c (usage)
1205         (main):
1206         Add commandline option --nofork to override configuration file
1207         setting.
1208
1209 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1210
1211         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
1212         compilers don't like it (bug #974).
1213
1214 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
1215
1216         * qt/connection.*: Applied patch by Jérôme Lodewyck
1217         <lodewyck@clipper.ens.fr> to integrate an existing
1218         connection into the Qt eventloop
1219
1220 2004-08-30  Jon Trowbridge  <trow@ximian.com>
1221
1222         * mono/BusDriver.cs: Added.  This is a class for interacting with
1223         the org.freedesktop.DBus service.
1224
1225         * mono/Message.cs: Added a mechanism to expose the message that is
1226         currently being dispatched via the static Message.Current
1227         property.  Added Message.Sender and Message.Destination
1228         properties.
1229
1230         * mono/Handler.cs: Expose the dispatched message via
1231         Message.Current when handling method calls.
1232
1233         * mono/Service.cs: Expose the dispatched message via
1234         Message.Current when handling signal emissions.
1235         
1236         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
1237         Connection.BaseService property.
1238
1239 2004-08-28  Havoc Pennington  <hp@redhat.com>
1240
1241         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
1242
1243         More fixes from Steve Grubb
1244         
1245         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
1246         (_dbus_listen_tcp_socket): fix fd leak
1247
1248         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
1249         EINTR to a bit lower in the code
1250
1251 2004-08-26  Jon Trowbridge  <trow@ximian.com>
1252
1253         * bus/driver.c (bus_driver_handle_service_exists): Respond with
1254         TRUE if we are inquiring about the existence of the built-in
1255         org.freedesktop.DBus service.
1256
1257 2004-08-25  John Palmieri  <johnp@redhat.com>
1258         * bus/config-parser.c:
1259         (struct PolicyType): Add POLICY_CONSOLE
1260         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
1261         (start_busconfig_child): Sets up console element when
1262         <policy at_console=""> is encountered in a policy file
1263         (append_rule_from_element): Convert console elements to console
1264         rules.
1265
1266         * bus/policy.c: 
1267         (bus_policy_create_client_policy): Add console rules to the client
1268         policy based on if the client is at the console
1269         (bus_policy_append_console_rule): New function for adding a
1270         console rule to a policy
1271         (bus_policy_merge): Handle console rule merging
1272
1273         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
1274         where we check for console user files
1275         
1276         * dbus/dbus-sysdeps.c:
1277         (_dbus_file_exists): New function which checks if the given
1278         file exists
1279         (_dbus_user_at_console): New function which does the system
1280         specific process of checking if the user is at the console
1281
1282         * dbus/dbus-userdb.c:
1283         (_dbus_is_console_user): New function converts a UID to user name
1284         and then calls the system specific _dbus_user_at_console to 
1285         see if the user is at the console and therefor a console user
1286
1287 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1288
1289         * bus/config-parser.c (set_limit):
1290         * bus/dbus-daemon-1.1.in:
1291         * test/data/valid-config-files/many-rules.conf: set the
1292         max_match_rules_per_connection limt from the config file. 
1293
1294         * doc/busconfig.dtd: update the DTD.
1295
1296         * bus/driver.c: remove some unused variables.
1297
1298 2004-08-24  Mikael Hallendal  <micke@imendio.com>
1299
1300         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
1301         it's been replaced by dbus_g_bus_get
1302
1303 2004-08-23  Colin Walters  <walters@redhat.com>
1304
1305         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1306
1307         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
1308
1309         * bus/selinux.c: Create a thread for policy reload notification.
1310         (bus_selinux_get_policy_root): Implement.
1311
1312         * bus/config-parser.c (start_busconfig_child)
1313         (bus_config_parser_content): Support SELinux-root relative
1314         inclusion.
1315
1316         * configure.in <HAVE_SELINUX>: Add -lpthread.
1317         
1318         * bus/test-main.c (test_pre_hook, test_post_hook): New.
1319         (test_post_hook): Move memory checking into here.
1320         (test_pre_hook, test_post_hook): Move SELinux checks in
1321         here, but conditional on a DBUS_TEST_SELINUX environment
1322         variable.  Unfortunately we can't run the SELinux checks
1323         as a normal user, since they won't have any permissions
1324         for /selinux.  So this will have to be tested manually
1325         for now, until we have virtualization for most of
1326         libselinux.
1327         
1328 2004-08-23  Havoc Pennington  <hp@redhat.com>
1329
1330         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
1331         drop supplementary groups, suggested by Steve Grubb
1332
1333 2004-08-20  Colin Walters  <walters@redhat.com>
1334
1335         * bus/config-parser.c (start_busconfig_child): Remove some unused
1336         variables.
1337         
1338         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
1339         warning.
1340
1341 2004-08-17  Joe Shaw  <joeshaw@novell.com>
1342
1343         * configure.in: If --enable-mono is passed in, if we can't find
1344         mono error out.
1345
1346         * mono/Makefile.am: Use /gacutil to install assemblies into the
1347         GAC and not /root.
1348
1349 2004-08-12  Havoc Pennington  <hp@redhat.com>
1350
1351         * NEWS: update for 0.22
1352
1353         * configure.in: release 0.22
1354
1355 2004-08-11  Colin Walters  <walters@redhat.com>
1356
1357         * tools/dbus-send.c (main, usage): Add --reply-timeout
1358         argument.
1359
1360 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1361
1362         * bus/bus.c (process_config_first_time_only): get rid of an unused
1363         DBusError that was causing a memoy leak (bug #989).
1364
1365         * dbus/dbus-keyring.c, dbus/dbus-message.c:
1366         fix compilation on Solaris/Forte C (bug #974)
1367
1368         * bus/main.c (main): plug two minuscule memleaks.
1369
1370 2004-08-10  Havoc Pennington  <hp@redhat.com>
1371
1372         * doc/dbus-tutorial.xml: add some more info on GLib bindings
1373
1374 2004-08-09  Havoc Pennington  <hp@redhat.com>
1375
1376         * COPYING: switch to Academic Free License version 2.1 instead of
1377         2.0, to resolve complaints about patent termination clause.
1378
1379 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * README: added documentation for the --enable-python 
1382         configure switch.
1383
1384 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1385
1386         * bus/config-parser.c (bus_config_parser_new): fix an invalid
1387         _unref in the SELinux support.
1388
1389         * doc/busconfig.dtd: update DTD for SELinux support.
1390
1391         * bus/config-loader-libxml.c: fix error handler and parser
1392         initialisation/cleanup. OOM test now works with libxml2 HEAD.
1393
1394         * configure.in: remove the warning about libxml2.
1395
1396         * dbus/dbus-bus.c: silence doxygen warning.
1397
1398 2004-07-31  Colin Walters  <walters@redhat.com>
1399
1400         * configure.in: Move #error in SELinux check to its own line.
1401
1402 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1403
1404         * dbus/dbus-internals.h (_DBUS_SET_OOM):
1405         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
1406         dbus_error_set.
1407
1408         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
1409         broken by the change in the _SET_OOM macros.
1410
1411 2004-07-31  Colin Walters  <walters@redhat.com>
1412
1413         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
1414         BUS_SET_OOM.
1415
1416 2004-07-31  Colin Walters  <walters@redhat.com>
1417
1418         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
1419         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
1420         AC_MSG_CHECKING.
1421
1422 2004-07-24  Havoc Pennington  <hp@redhat.com>
1423
1424         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1425
1426         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
1427         functionality
1428
1429         * configure.in: add --enable-selinux
1430         
1431         * bus/policy.c (bus_policy_merge): add FIXME to a comment
1432
1433         * bus/main.c (main): initialize and shut down selinux
1434
1435         * bus/connection.c: store SELinux ID on each connection, to avoid 
1436         repeated getting of the string context and converting it into 
1437         an ID
1438
1439         * bus/bus.c (bus_context_get_policy): new accessor, though it
1440         isn't used
1441         (bus_context_check_security_policy): check whether the security
1442         context of sender connection can send to the security context of
1443         recipient connection
1444
1445         * bus/config-parser.c: add parsing for <selinux> and <associate>
1446         
1447         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
1448         implement dbus_connection_get_unix_fd()
1449
1450         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
1451         function, used by the selinux stuff
1452         
1453 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1454
1455         * bus/config-loader-libxml.c: complete the implementation of
1456         libxml backend for config file loader. Doesn't work with full OOM
1457         test yet. 
1458         
1459         * configure.in: change error when selecting libxml into a warning.
1460         
1461         * test/data/invalid-config-files: add two non-well-formed XML
1462         files. 
1463         
1464         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
1465         
1466         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
1467         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
1468         be necessary to read all the buffer. (bug #894)
1469
1470         * bus/activation.c (bus_activation_activate_service): fix a
1471         potential assertion failure (bug #896). Small optimization in the
1472         case of auto-activation messages.
1473
1474         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
1475         add test case for byte-through-vararg bug (#901). patch by Kimmo
1476         Hämäläinen. 
1477
1478 2004-07-28  Anders Carlsson  <andersca@gnome.org>
1479
1480         * python/dbus.py:
1481         * python/dbus_bindings.pyx.in:
1482         Add dbus.init_gthreads (), allow emit_signal to pass
1483         arguments to the signal.
1484         
1485 2004-07-24  Havoc Pennington  <hp@redhat.com>
1486
1487         * AUTHORS: add some people, not really comprehensively, let me
1488         know if I missed you
1489
1490 2004-07-24  Havoc Pennington  <hp@redhat.com>
1491
1492         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
1493         Owen
1494
1495         * test/Makefile.am (DIST_SUBDIRS): here also
1496
1497 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1498
1499         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
1500         breaking build on Solaris, reported by Farhad Saberi on the ML.
1501
1502         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
1503         va_arg invocation to account for integer promotion in the case of
1504         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
1505
1506         * bus/services.c (bus_service_remove_owner): fix bug #902, use
1507         _dbus_list_get_first_link, not _dbus_list_get_first.
1508
1509         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
1510
1511         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
1512         handler functions so that the asserts in _dbus_object_subtree_unref
1513         do not fail.
1514
1515         * dbus/dbus-transport-unix.c (do_reading):
1516         _dbus_transport_queue_messages return value is of type
1517         dbus_bool_t, not DBusDispatchStatus.
1518         
1519 2004-07-19  David Zeuthen  <david@fubar.dk>
1520
1521         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
1522
1523         * bus/dispatch.c:
1524         (check_get_connection_unix_user): Debug says GetProperty; but the
1525         method is called GetConnectionUnixUser
1526         (check_get_connection_unix_process_id): New function
1527         (bus_dispatch_test): Actually call check_get_connection_unix_user();
1528         also call check_get_connection_unix_process_id()
1529         
1530         * bus/driver.c:
1531         (bus_driver_handle_get_connection_unix_process_id): New function,
1532         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
1533         interface
1534         
1535         * dbus/dbus-auth.c:
1536         (handle_server_data_external_mech): Set pid from the credentials
1537         obtained from the socket
1538         
1539         * dbus/dbus-connection.c:
1540         (dbus_connection_get_unix_process_id): New function
1541         
1542         * dbus/dbus-connection.h: 
1543         Add prototype for dbus_connection_get_unix_process_id
1544         
1545         * dbus/dbus-transport.c:
1546         (_dbus_transport_get_unix_process_id): New function
1547         
1548         * dbus/dbus-transport.h:
1549         Add prototype for _dbus_transport_get_unix_process_id
1550         
1551 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1552
1553         * dbus/dbus-message.c: Message counter fix, patch by Christian
1554         Hammond <chipx86@gnupdate.org>
1555
1556 2004-07-18  Seth Nickell  <seth@gnome.org>
1557
1558         * python/dbus.py:
1559         * python/dbus_bindings.pyx.in:
1560         * python/tests/test-client.py:
1561
1562         Add dbus.ByteArray and dbus_bindings.ByteArray
1563         types so that byte streams can be passed back.
1564
1565         Give jdahlin the heaps of credit that are so
1566         rightfully his.
1567         
1568 2004-07-12  Seth Nickell  <seth@gnome.org>
1569
1570         * python/dbus.py:
1571
1572         Add message argument to the default object_method_handler
1573         function.
1574         
1575         * python/dbus_bindings.pyx.in:
1576
1577         Automatically return NIL when passed an empty list
1578         (we can't pass back a list since lists are typed
1579         and we don't have any idea what type the the client
1580         intended the list to be... :-( )
1581         
1582 2004-07-10  Seth Nickell  <seth@gnome.org>
1583
1584         * python/examples/Makefile.am:
1585
1586         Fix distcheck breakage caused by new examples.
1587
1588 2004-07-10  Seth Nickell  <seth@gnome.org>
1589
1590         * python/dbus.py:
1591
1592         Add "message" argument to service-side dbus.Object
1593         methods. This will break existing services written
1594         using the python bindings, but will allow extraction
1595         of all the message information (e.g. who its from).
1596
1597         Add improved "object oriented" signal handling/emission.
1598         
1599         * python/examples/example-service.py:
1600
1601         Nix this example.
1602         
1603         * python/examples/example-signal-emitter.py:
1604         * python/examples/example-signal-recipient.py:
1605
1606         Two new examples that show how to emit and receive
1607         signals using the new APIs.
1608         
1609         * python/examples/example-signals.py:
1610         * python/examples/gconf-proxy-service.py:
1611         * python/examples/gconf-proxy-service2.py:
1612
1613         Add "message" argument to service methods.
1614
1615 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
1616
1617         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
1618         * dbus/bus.c (dbus_bus_get_unix_user)
1619         * doc/dbus-specification.xml: implement GetConnectionUnixUser
1620         method of org.freedesktop.DBus interface.
1621
1622         * bus/dispatch.c: test case
1623
1624 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
1625
1626         * python/Makefile.am: switched include directory from glib/ to dbus/
1627         since dbus-glib.h moved
1628  
1629 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1630
1631         * configure.in: prevent building the gcj stuff and libxml loader
1632         since they are broken.
1633
1634 2004-06-20  Havoc Pennington  <hp@redhat.com>
1635
1636         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
1637         codes from the dbus error names
1638         
1639         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
1640         as dbus/dbus-glib.h and that breakage is now visible due to 
1641         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
1642         
1643         * glib/dbus-glib.h: s/gproxy/g_proxy/
1644
1645         * dbus/dbus-shared.h: new header to hold stuff shared with
1646         binding APIs
1647         
1648         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1649         than dbus-errors.h
1650
1651         * glib/dbus-glib.h (dbus_set_g_error): move to
1652         dbus-glib-lowlevel.h
1653
1654         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1655         of stuff to enable this
1656
1657         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1658
1659         * a bunch of other changes with the same basic "separate glib 
1660         bindings from dbus.h" theme
1661         
1662 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
1663
1664         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1665
1666         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1667
1668 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1669
1670         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1671         the reply value of the ServiceExists message.
1672
1673 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * python/dbus_bindings.pyx.in: No longer need to parse path
1676         elements and pass them as arrays of strings.  The C API now
1677         accepts plain path strings.
1678         (_build_parsed_path): removed 
1679
1680 2004-06-07  Havoc Pennington  <hp@redhat.com>
1681
1682         * doc/TODO: remove auto-activation item since it's done; sort
1683         items by importance/milestone
1684
1685 2004-06-07  Havoc Pennington  <hp@redhat.com>
1686
1687         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1688         random signature when using REQUIRED_FIELDS (this hack won't work
1689         in the long term)
1690
1691         * dbus/dbus-message.c: change the signature to be a header field,
1692         instead of message->signature special-case string. Incremental
1693         step forward. Then we can fix up code to send the signature in the
1694         message, then fix up code to validate said signature, then fix up
1695         code to not put the typecodes inline, etc.
1696         (load_one_message): don't make up the signature after the fact
1697         (decode_header_data): require signature field for the known
1698         message types
1699
1700         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1701
1702         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1703
1704 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
1705
1706         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1707
1708         * mono/Handler.cs: Updated to follow new path argument for
1709         (un-)registering objects.
1710
1711         * mono/example/Makefile.am:
1712         * mono/Makefile.am:
1713         * configure.in: Bumped required version for mono and use new -pkg
1714         syntax for deps
1715
1716 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1717
1718         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1719         registration functions take the path argument as char* instead of
1720         char**.
1721
1722         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1723         split off the path decompostion part of
1724         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1725         warnings. 
1726
1727         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1728         
1729 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
1730  
1731         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1732         machine approach.  A state is implemented as a function that
1733         handles incoming events as specified for that state.
1734         
1735         * doc/dbus-specification.xml: Update auth protocol state machine
1736         specification to match implementation.  Remove some leftover
1737         base64 examples.
1738
1739 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
1740
1741         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1742         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1743         quiet doxygen.
1744
1745         * Doxyfile.in: remove deprecated options.
1746
1747         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1748         glib/test-thread.h, glib/test-thread-client.c,
1749         glib/test-thread-server.c, glib/test-profile.c,
1750         glib/test-dbus-glib.c: remove these unused files.
1751
1752 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1753
1754         * dbus/dbus-object-tree.c
1755         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1756         non-fallback handlers (bug #684).
1757         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1758         (find_subtree_recurse): report wether the returned subtree is an
1759         exact match or a "fallback" match higher up in the tree.
1760         (object_tree_test_iteration): update test case.
1761
1762 2004-06-01  Seth Nickell  <seth@gnome.org>
1763
1764         * python/dbus_bindings.pyx.in:
1765         * python/tests/test-client.py:
1766
1767         Round off basic type support. Add dicts (yay!), and 
1768         remaining array types.
1769
1770         Make MessageIter more general so it works for dicts too.
1771
1772         Mark all loop variables as C integers.
1773         
1774 2004-05-31  Havoc Pennington  <hp@redhat.com>
1775
1776         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1777         "in" before "out"
1778
1779         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1780
1781         * glib/dbus-glib-tool.c (main): set up to have a --self-test
1782         option that runs the tests, and start filling in some code
1783         including for starters just dumping the interfaces to stdout
1784
1785         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1786
1787         * test/data/valid-introspection-files/lots-of-types.xml: test of
1788         an example introspection file
1789
1790         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1791         "node" (I think...)
1792
1793 2004-05-31  Seth Nickell  <seth@gnome.org>
1794
1795         * python/dbus_bindings.pyx.in:
1796         * python/tests/test-client.py:
1797
1798         Test Suite: 1
1799         Python Bindings: 0
1800
1801         Fix string array memory trashing bug... oops...
1802
1803 2004-05-30  Seth Nickell  <seth@gnome.org>
1804
1805         * python/dbus.py:
1806
1807         Add a nicer-but-less-flexible alternate API for handling 
1808         calls to virtual objects in dbus.ObjectTree.
1809
1810         Screw up the argument order to the dbus.Object constructor
1811         for consistency with dbus.ObjectTree (and to make dbus_methods
1812         optional for future extension)
1813         
1814         * python/examples/Makefile.am:
1815         * python/examples/gconf-proxy-service.py:
1816         * python/examples/gconf-proxy-service2.py:
1817
1818         Alternate implementation of gconf-proxy-service using the
1819         nicer dbus.ObjectTree API.
1820         
1821         * python/examples/example-service.py:
1822         * python/tests/test-server.py
1823
1824         Reverse the argument order to deal with dbus.Object constructor
1825         changes.
1826         
1827 2004-05-30  Seth Nickell  <seth@gnome.org>
1828
1829         * python/examples/example-client.py:
1830         * python/examples/example-service.py:
1831
1832         Take it back. Lists seem to work but they're broken
1833         in the test suite. Make the base examples use
1834         lists (works fine).
1835
1836 2004-05-30  Seth Nickell  <seth@gnome.org>
1837
1838         * python/dbus_bindings.pyx.in:
1839         * python/tests/test-client.py:
1840
1841         Add some more tests and fix errors that crop up.
1842         Unfortunately, currently it seems like marshalling
1843         and unmarshalling of lists is completely broken :-(
1844
1845 2004-05-30  Seth Nickell  <seth@gnome.org>
1846
1847         * python/dbus_bindings.pyx.in:
1848
1849         Add support for ObjectPath type.
1850
1851         * python/dbus.py:
1852
1853         Refactor message handling code to a common function.
1854         
1855         * python/tests/test-client.py:
1856         * python/tests/test-server.py:
1857
1858         Add tests that check to make sure values of all types
1859         can be echoed from a service w/o mangling.
1860         
1861 2004-05-29  Seth Nickell  <seth@gnome.org>
1862
1863         * python/dbus.py:
1864
1865         Add ObjectTree class which allows implementation
1866         of trees of "virtual" objects. Basically the python
1867         wrapper for "register_fallback".
1868         
1869         * python/examples/Makefile.am
1870         * python/examples/gconf-proxy-client.py:
1871         * python/examples/gconf-proxy-service.py:
1872
1873         Implement a simple GConf proxy service that supports
1874         get/set on string and int GConf keys using the ObjectTree.
1875         
1876 2004-05-29  Seth Nickell  <seth@gnome.org>
1877
1878         * python/dbus.py:
1879         * python/examples/example-client.py:
1880         * python/examples/example-service.py:
1881         * python/examples/list-system-services.py:
1882
1883         Add SessionBus, SystemBus and ActivationBus classes
1884         so you don't need to know the special little BUS_TYPE
1885         flag.
1886         
1887 2004-05-29  Havoc Pennington  <hp@redhat.com>
1888
1889         * bus/config-parser.c (process_test_valid_subdir): temporarily
1890         stop testing config parser OOM handling, since expat has issues
1891         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1892
1893         * bus/dbus-daemon-1.1.in: change requested_reply to
1894         send_requested_reply/receive_requested_reply so we can send the
1895         replies, not just receive them.
1896
1897         * bus/config-parser.c: parse the new
1898         send_requested_reply/receive_requested_reply
1899
1900         * bus/policy.c (bus_client_policy_check_can_send): add
1901         requested_reply argument and use it
1902
1903         * bus/bus.c (bus_context_check_security_policy): pass through
1904         requested_reply status to message send check
1905
1906         * bus/system.conf.in: adapt to requested_reply change
1907         
1908 2004-05-28  Havoc Pennington  <hp@redhat.com>
1909
1910         * test/glib/test-service-glib.c (main): remove unused variable
1911
1912         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1913
1914         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1915         from the enum, no longer in use.
1916
1917         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1918         works right.
1919
1920         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1921         whether error_name passed in is a valid error name.
1922
1923 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
1924
1925         * dbus/dbus-message.c (dbus_message_get_args): Added support for
1926         OBJECT_PATH and OBJECT_PATH_ARRAY
1927
1928 2004-05-28  Seth Nickell  <seth@gnome.org>
1929
1930         * python/examples/Makefile.am:
1931
1932         Forget to add Makefile.am. Do not pass go.
1933
1934 2004-05-28  Michael Meeks  <michael@ximian.com>
1935
1936         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
1937         fix no int64 case.
1938
1939         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1940
1941         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1942         (_dbus_message_iter_get_basic_type_array): impl.
1943         drastically simplify ~all relevant _get methods to use these.
1944         (_dbus_message_iter_append_basic_array),
1945         (dbus_message_iter_append_basic): impl
1946         drastically simplify ~all relevant _append methods to use these.
1947
1948         * dbus/dbus-message-builder.c (parse_basic_type) 
1949         (parse_basic_array, lookup_basic_type): impl.
1950         (_dbus_message_data_load): prune scads of duplicate /
1951         cut & paste coding.
1952
1953         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
1954         (_dbus_demarshal_basic_type): implement,
1955         (demarshal_and_validate_len/arg): beef up debug.
1956         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1957
1958 2004-05-27  Seth Nickell  <seth@gnome.org>
1959
1960         * configure.in:
1961         * python/Makefile.am:
1962
1963         Include the example python apps in the tarball.
1964         
1965         * python/examples/list-system-services.py
1966
1967         Add a python new example that fetches the list of services
1968         from the system bus.
1969         
1970 2004-05-27  Seth Nickell  <seth@gnome.org>
1971
1972         * python/dbus.py:
1973         * python/dbus_bindings.pyx.in:
1974
1975         Fix failure to notify that a signal was not handled,
1976         resulted in hung functions.
1977         
1978 2004-05-25  Colin Walters  <walters@redhat.com>
1979
1980         * tools/dbus-monitor.c (main): Monitor all types of messages.
1981
1982 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
1983
1984         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1985         which unregisters the object path and disposes the handler.
1986
1987 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
1988  
1989         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1990          
1991         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1992         operands to && so we call dbus_message_iter_next () for the last
1993         argument also.
1994
1995 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1996
1997         * dbus/dbus-object-tree.c
1998         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1999         children even if the requested path isn't registered.
2000         (object_tree_test_iteration): test object_tree_list_registered.
2001
2002         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
2003         it to 0.
2004         
2005 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
2006
2007         * doc/TODO: Remove resolved items.
2008
2009         * bus/expirelist.h (struct BusExpireList): remove unused n_items
2010         field.
2011         
2012         * bus/connection.c (bus_connections_expect_reply): Enforce the
2013         per-connection limit on pending replies.
2014         
2015         Patch from Jon Trowbridge <trow@ximian.com>:
2016  
2017         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
2018         up a watch that triggers a config reload when one end of the pipe
2019         becomes readable.
2020         (signal_handler): Instead of doing the config reload in our SIGHUP
2021         handler, just write to the reload pipe and let the associated
2022         watch handle the reload when control returns to the main loop.
2023  
2024         * bus/driver.c (bus_driver_handle_reload_config): Added.
2025         Implements a ReloadConfig method for requesting a configuration
2026         file reload via the bus driver.
2027  
2028 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
2029
2030         * HACKING: Updated release instructions concerning the wiki page.
2031
2032 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
2033
2034         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
2035         filter against auth->allowed_mechs; we only add allowed mechs in
2036         record_mechanisms().
2037  
2038         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
2039         ALLOWED_MECHS to auth-script format so we can set the list of
2040         allowed mechanisms.
2041  
2042         * data/auth/client-out-of-mechanisms.auth-script: New test to
2043         check client disconnects when it is out of mechanisms to try.
2044  
2045         * dbus/dbus-auth.c (process_command): Remove check for lines
2046         longer that 1 MB; we only buffer up maximum 16 kB.
2047  
2048         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
2049         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
2050         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
2051         assume there might be unused bytes.
2052  
2053         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
2054         client-out-of-mechs, it is handled in process_reject(). Move check
2055         for max failures to send_rejected(), as it's a server-only thing.
2056
2057         * dbus/dbus-auth.c: Factor out protocol reply code into functions
2058         send_auth(), send_data(), send_rejected(), send_error(),
2059         send_ok(), send_begin() and send_cancel().
2060
2061 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
2062
2063         Remove base64 encoding, replace with hex encoding. Original patch
2064         from trow@ximian.com, added error handling.
2065
2066         * dbus/dbus-string.c (_dbus_string_base64_encode)
2067         (_dbus_string_base64_decode): Remove.
2068         (_dbus_string_hex_decode): Add end_return argument so we can
2069         distinguish between OOM and invalid hex encoding.
2070         (_dbus_string_test): Remove base64 tests and add test case for
2071         invalid hex.
2072
2073         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
2074         Replace base64 with hex.
2075
2076         * test/data/auth/invalid-hex-encoding.auth-script: New test case
2077         for invalid hex encoded data in auth protocol.
2078
2079 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2080
2081         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
2082         leak.
2083
2084 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
2085
2086         * mono/dbus-sharp.dll.config.in: Added for GAC
2087         * mono/dbus-sharp.snk: Added for GAC
2088         * mono/Assembly.cs.in: Added for GAC
2089         * mono/Makefile.am: Changes for GAC installation        
2090         * configure.in: Added refs for dbus-sharp.dll.config.in and
2091         Assembly.cs.in. More fixes for mono testing
2092         * mono/example/Makefile.am: Changed var to CSC
2093         * Makefile.am: Changed flag name to DBUS_USE_CSC
2094
2095 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
2096
2097         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
2098         * mono/doc/*: Added documentation framework
2099         * configure.in: Added monodoc check
2100         * README: Added description of mono configure flags
2101
2102 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
2103
2104         * doc/dbus-specification.xml: Added a "Required" column to the 
2105         header fields table and changed the "zero or more" verbage in
2106         the above paragraph to read "The header must contain the required 
2107         named header fields and zero or more of the optional named header 
2108         fields".
2109         * test/data/invalid-messages/*.message: Added the required PATH 
2110         named header field to the tests so that they don't fail on 
2111         'Missing path field'
2112
2113 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
2114
2115         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
2116         the stack by implicitly defining variable and parameter types and
2117         removing the hack of defining C pointers as python objects and later
2118         casting them.
2119
2120 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
2121
2122         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
2123
2124 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
2125
2126         * mono/DBusType/Dict.cs: Handle empty dicts
2127         * mono/DBusType/Array.cs: Handle empty arrays
2128         * mono/Arguments.cs: Handle empty arguments
2129
2130 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
2131
2132         * dbus-sharp.pc.in: Modified to include include Libs and Requires
2133         field
2134
2135 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
2136
2137         * test/data/valid-messages/standard-*.message: Update message
2138         test scripts to new header field names.
2139
2140 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
2141
2142         * test/break-loader.c (randomly_do_n_things): tracked down buffer
2143         overflow to times_we_did_each_thing array which would chop off the
2144         first character of the failure_dir string. Increased the size of
2145         the array to 7 to reflect the number of random mutation functions
2146         we have.
2147
2148 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
2149
2150         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
2151         unix_server->watch here, it is unreffed in disconnect.
2152         (_dbus_server_new_for_tcp_socket): convert NULL host to
2153         "localhost" here so we don't append NULL to address.
2154         
2155         * dbus/dbus-server.c (_dbus_server_test): Add test case for
2156         various addresses, including tcp with no explicit host.
2157
2158 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2159
2160         * dbus/dbus-message.c (decode_header_data, decode_string_field):
2161         fix incorrect setting of .name_offset in the HeaderField (it was
2162         off by two bytes, positioned right after the name and typecode)
2163
2164         * bus/bus.c (bus_context_new, bus_context_unref): test before
2165         calling dbus_server_free_data_slot and _dbus_user_database_unref
2166         in case of an error.
2167
2168         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
2169         by libdbus-gtool.
2170
2171 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
2172
2173         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
2174         _dbus_poll() instead of select().
2175
2176 2004-04-15  Jon Trowbridge  <trow@ximian.com>
2177
2178         * bus/main.c (signal_handler): Reload the configuration files
2179         on SIGHUP.
2180         (main): Set up our SIGHUP handler.
2181
2182         * bus/bus.c (struct BusContext): Store the config file, user and
2183         fork flag in the BusContext.
2184         (process_config_first_time_only): Added.  Contains the code
2185         (previously in bus_context_new) for setting up the BusContext from
2186         the BusConfigParser that should only be run the first time the
2187         config files are read.
2188         (process_config_every_time): Added.  Contains the code (previously
2189         in bus_context_new) for setting up the BusContext from the
2190         BusConfigParser that should be run every time the config files are
2191         read.
2192         (load_config): Added.  Builds a BusConfigParser from the config
2193         files and passes the resulting structure off to
2194         process_config_first_time_only (assuming this is the first time)
2195         and process_config_every_time.
2196         (bus_context_new): All of the config-related code has been moved
2197         to process_config_first_time_only and process_config_every_time.
2198         Now this function just does the non-config-related initializations
2199         and calls load_config.
2200         (bus_context_reload_config): Added.
2201
2202 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2203
2204         * bus/driver.c (bus_driver_handle_get_service_owner):
2205         implement a GetServiceOwner method.
2206         * doc/dbus-specification.xml: document it.
2207         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
2208         
2209         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
2210         implement, using the bus GetServiceOwner method.
2211
2212         * test/glib/test-dbus-glib.c:
2213         use dbus_gproxy_new_for_service_owner so that we can receive the
2214         signal. 
2215
2216 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
2217
2218         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2219         dbus/dbus-message.c, dbus/dbus-protocol.h
2220         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
2221
2222         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2223         dbus/dbus-message.c, dbus/dbus-protocol.h
2224         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
2225
2226         * dbus/dbus-internals.c (_dbus_header_field_to_string):
2227         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
2228         DBUS_HEADER_FIELD_SENDER resolves to "sender"
2229
2230         * doc/dbus-specification.xml (Header Fields Table):
2231         s/SERVICE/DESTINATION
2232         s/SENDER_SERVICE/SENDER
2233
2234
2235 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2236
2237         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
2238         a few seconds.
2239
2240 2004-04-13  Michael Meeks  <michael@ximian.com>
2241
2242         * glib/dbus-gobject.c (handle_introspect): split out
2243         (introspect_properties): this.
2244         (handle_introspect): implement this.
2245
2246         * test/glib/Makefile.am: use the absolute path so the bus
2247         daemon's chdir ("/") doesn't kill us dead.
2248
2249         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
2250
2251 2004-04-12  Jon Trowbridge  <trow@ximian.com>
2252
2253         * bus/config-parser.c (struct BusConfigParser): Added
2254         included_files field.
2255         (seen_include): Added.  Checks whether or not a file has already
2256         been included by any parent BusConfigParser.
2257         (bus_config_parser_new): Copy the parent's included_files.
2258         (include_file): Track which files have been included, and fail on
2259         circular inclusions.
2260         (process_test_valid_subdir): Changed printf to report if we are
2261         testing valid or invalid conf files.
2262         (all_are_equiv): Changed printf to be a bit clearer about
2263         what we are actually doing.
2264         (bus_config_parser_test): Test invalid configuration files.
2265
2266 2004-04-09  Jon Trowbridge  <trow@ximian.com>
2267
2268         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
2269         argument.  If non-null, the newly-constructed BusConfigParser will
2270         be initialized with the parent's BusLimits instead of the default
2271         values.
2272         (include_file): When including a config file, pass in
2273         the current parser as the parent and then copy the BusLimits
2274         from the included BusConfigParser pack to the current parser.
2275         (process_test_valid_subdir): Renamed from process_test_subdir.
2276         (process_test_equiv_subdir): Added.  Walks through a directory,
2277         descending into each subdirectory and loading the config files
2278         it finds there.  If any subdirectory contains two config files
2279         that don't produce identical BusConfigParser structs, fail.
2280         For now, the BusConfigParser's BusPolicies are not compared.
2281         (bus_config_parser_test): Call both process_test_valid_subdir and
2282         process_test_equiv_subdir.
2283
2284         * bus/config-loader-libxml.c (bus_config_load): Take a parent
2285         argument and pass it along to the call to bus_config_parser_new.
2286         Also made a few small changes to allow this code to compile.
2287
2288         * bus/config-loader-expat.c (bus_config_load): Take a parent
2289         argument and pass it along to the call to bus_config_parser_new.
2290
2291         * bus/bus.c (bus_context_new): Load the config file
2292         with a NULL parent argument.
2293
2294 2004-03-29  Michael Meeks  <michael@ximian.com>
2295
2296         * glib/dbus-gobject.c (introspect_properties): split
2297         out, fix mangled 'while' flow control.
2298         (introspect_signals): implement.
2299         (handle_introspect): update.
2300
2301 2004-03-29  Michael Meeks  <michael@ximian.com>
2302
2303         * glib/dbus-gobject.c (set_object_property): split out / 
2304         re-work, use the property type, and not the message type(!)
2305         (get_object_property): ditto.
2306
2307         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
2308         (dbus_gvalue_marshal): make this code re-usable, needed
2309         for signals too, also on both proxy and server side.
2310         Re-write for more efficiency / readability.
2311
2312 2004-03-29  Michael Meeks  <michael@ximian.com>
2313
2314         * dbus/dbus-message.c
2315         (dbus_message_new_error_printf): impl.
2316
2317         * dbus/dbus-connection.c
2318         (dbus_connection_unregister_object_path): fix warning.
2319
2320         * configure.in: fix no-mono-installed situation.
2321
2322 2004-03-27  Havoc Pennington  <hp@redhat.com>
2323
2324         Patch from Timo Teräs:
2325         
2326         * tools/dbus-send.c (main): if --print-reply, assume type is
2327         method call; support boolean type args
2328         
2329         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
2330         bunch of memleak and logic bugs
2331         
2332 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
2333
2334         * mono/Arguments.cs:
2335         * mono/Introspector.cs:
2336         * mono/Handler.cs:
2337         * mono/InterfaceProxy.cs:
2338         * mono/Message.cs
2339         * mono/ProxyBuilder.cs:
2340         * mono/Service.cs:
2341         Added InterfaceProxy class to avoid building proxies for every
2342         object.
2343
2344         * dbus-message.h:
2345         * dbus-message.c (dbus_message_append_args_valist)
2346         (dbus_message_iter_get_object_path)
2347         (dbus_message_iter_get_object_path_array)
2348         (dbus_message_iter_append_object_path)
2349         (dbus_message_iter_append_object_path_array):
2350         Added object_path iter functions to handle OBJECT_PATH arguments
2351         
2352 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
2353
2354         First checkin of mono bindings.
2355         * configure.in:
2356         * Makefile.am:
2357         Build stuff for the bindings
2358         * dbus-sharp.pc.in: Added for pkgconfig
2359         
2360 2004-03-21  Havoc Pennington  <hp@redhat.com>
2361
2362         * test/test-service.c (main): remove debug spew
2363
2364 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2365
2366         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
2367         arrays
2368
2369         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
2370         (dbus_message_iter_init_array_iterator)
2371         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
2372         indicate whether the iterator is empty
2373
2374         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
2375         warnings
2376
2377 2004-03-19  Havoc Pennington  <hp@redhat.com>
2378
2379         * NEWS: 0.21 updates
2380
2381         * configure.in: 0.21
2382
2383         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
2384         
2385         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
2386         you don't need pyrex to make dist
2387
2388         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
2389         sources; run moc
2390         
2391 2004-03-18  Richard Hult  <richard@imendio.com>
2392
2393         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
2394         (dbus_message_set_auto_activation): Add doxygen docs.
2395
2396 2004-03-16  Richard Hult  <richard@imendio.com>
2397
2398         * bus/activation.c: (bus_activation_service_created),
2399         (bus_activation_send_pending_auto_activation_messages),
2400         (bus_activation_activate_service):
2401         * bus/activation.h:
2402         * bus/dispatch.c: (bus_dispatch),
2403         (check_nonexistent_service_auto_activation),
2404         (check_service_auto_activated),
2405         (check_segfault_service_auto_activation),
2406         (check_existent_service_auto_activation), (bus_dispatch_test):
2407         * bus/driver.c: (bus_driver_handle_activate_service):
2408         * bus/services.c: (bus_registry_acquire_service):
2409         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
2410         (dbus_message_get_auto_activation):
2411         * dbus/dbus-message.h:
2412         * dbus/dbus-protocol.h: Implement auto-activation.
2413         
2414         * doc/dbus-specification.xml: Add auto-activation to the spec.
2415
2416 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2417
2418         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
2419         fix a bug with CUSTOM types.
2420
2421         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
2422         a unit test for this bug (used to fail).
2423
2424 2004-03-12  Mikael Hallendal  <micke@imendio.com>
2425
2426         * bus/activation.c:
2427         (babysitter_watch_callback): notify all pending activations waiting for
2428           the same exec that the activation failed.
2429         (bus_activation_activate_service): shortcut the activation if we 
2430           already waiting for the same executable to start up.
2431
2432 2004-03-12  Mikael Hallendal  <micke@imendio.com>
2433
2434         * bus/activation.c: 
2435         - Added service file reloading. 
2436           Each service files directory is kept in an hash table in 
2437           BusActivation and each BusActivationEntry knows what .service-file it
2438           was read from. So when you try to activate a service the bus will 
2439           check if it's been updated, removed or if new .service-files has 
2440           been installed.
2441         - Test code at the bottom for the service file reloading.
2442         * bus/test-main.c: (main):
2443         * bus/test.h:
2444         - added service reloading test.
2445         * dbus/dbus-sysdeps.c: 
2446         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
2447
2448 2004-03-08  Michael Meeks  <michael@ximian.com>
2449
2450         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
2451         bail immediately if disconnected, to avoid busy loop.
2452
2453         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
2454         cleanup cut/paste/inefficiency.
2455
2456 2004-03-01  David Zeuthen  <david@fubar.dk>
2457
2458         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
2459         bug where args were used twice. This bug resulted in a segfault
2460         on a Debian/PPC system when starting the messagebus daemon. Include
2461         dbus-sysdeps.h for DBUS_VA_COPY
2462
2463         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
2464
2465         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
2466         appropriate va_copy implementation. From GLib
2467         
2468 2004-02-24  Joe Shaw  <joe@ximian.com>
2469
2470         * bus/services.c (bus_registry_acquire_service): We need to pass
2471         in the service name to dbus_set_error() to prevent a crash.
2472
2473 2003-12-26  Anders Carlsson  <andersca@gnome.org>
2474
2475         * AUTHORS: Reveal my True identity.
2476
2477 2003-12-17  Mikael Hallendal  <micke@imendio.com>
2478
2479         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
2480         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
2481
2482 2003-12-13  Mikael Hallendal  <micke@imendio.com>
2483
2484         * doc/TODO: Added not about better error check of configuration files.
2485
2486 2003-12-02  Richard Hult  <richard@imendio.com>
2487
2488         * Update AFL version to 2.0 throughout the source files to reflect
2489         the update that was done a while ago.
2490
2491 2003-12-02  Richard Hult  <richard@imendio.com>
2492
2493         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
2494         wrote_dict_key to FALSE on the iter that the dict is appended to,
2495         just like when appending other types. Fixes a bug where a dict
2496         couldn't be put inside a dict.
2497         (dbus_message_iter_append_dict_key): Fix typo in warning message.
2498         (message_iter_test, _dbus_message_test): Add test case for dict
2499         inside dict.
2500
2501 2003-12-01  David Zeuthen  <david@fubar.dk>
2502
2503         * python/dbus.py: Add the actual message when calling the reciever
2504         of a signal such that parameters can be inspected. Add the method
2505         remove_signal_receiver
2506         
2507 2003-11-26  Mikael Hallendal  <micke@imendio.com>
2508
2509         * bus/*.[ch]:
2510         * dbus/*.[ch]:
2511         * glib/*.[ch]: Made ref functions return the pointer
2512
2513 2003-11-25  Zack Rusin  <zack@kde.org>
2514
2515         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
2516
2517         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
2518         wrappers,
2519
2520         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
2521         the Integrator and to better fit with the server,
2522
2523 2003-11-24  Zack Rusin  <zack@kde.org>
2524
2525         * qt/connection.h, qt/connection.cpp: removing initDbus method since
2526         the integrator handles it now
2527
2528         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
2529         since QTimer wasn't really meant to be used the way DBusTimeout is
2530
2531 2003-11-24  Zack Rusin  <zack@kde.org>
2532
2533         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
2534         Integrator class which integrates D-BUS with the Qt event loop,
2535
2536         * qt/connection.h, qt/connection.cpp: Move all the code which
2537         was dealing with D-BUS integration to the Integrator class,
2538         and start using Integrator,
2539
2540 2003-11-23  Zack Rusin  <zack@kde.org>
2541
2542         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
2543         wrapper
2544
2545         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
2546         switching namespaces to DBusQt, reworking the class,
2547
2548         * Makefile.cvs: switching dependencies so that it matches KDE 
2549         schematics,
2550         
2551         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
2552         the library
2553
2554 2003-11-19  Havoc Pennington  <hp@redhat.com>
2555
2556         * NEWS: update
2557
2558         * configure.in: bump version to 0.20
2559
2560         * configure.in (have_qt): add yet another place to look for qt
2561         (someone hand trolltech a .pc file...)
2562
2563 2003-11-01  Havoc Pennington  <hp@redhat.com>
2564
2565         * doc/dbus-specification.xml: add state machine docs on the auth
2566         protocol; just a first draft, I'm sure it's wrong.      
2567
2568 2003-10-28  David Zeuthen  <david@fubar.dk>
2569
2570         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
2571         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
2572         
2573 2003-10-28  Havoc Pennington  <hp@redhat.com>
2574
2575         * dbus/dbus-message.c (get_next_field): delete unused function
2576
2577 2003-10-28  Havoc Pennington  <hp@redhat.com>
2578
2579         * bus/expirelist.c (do_expiration_with_current_time): detect
2580         failure of the expire_func due to OOM
2581
2582         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
2583
2584         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
2585         NoReply error that's now created by the bus when the service exits
2586
2587 2003-10-28  Havoc Pennington  <hp@redhat.com>
2588
2589         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
2590         tests for set_path, set_interface, set_member, etc.
2591
2592         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
2593
2594         * dbus/dbus-message.c (set_string_field): always just delete and
2595         re-append the field; accept NULL for deletion
2596         (re_align_fields_recurse): reimplement
2597         
2598 2003-10-26  Havoc Pennington  <hp@redhat.com>
2599
2600         * dbus/dbus-connection.c: fix docs to properly describe the
2601         disconnected message
2602         (_dbus_connection_notify_disconnected): remove this function; 
2603         we can't synchronously add the disconnected message, we have to 
2604         do it after we've queued any remaining real messages
2605         (_dbus_connection_get_dispatch_status_unlocked): queue the
2606         disconnect message only if the transport has finished queueing all
2607         its real messages and is disconnected.
2608         (dbus_connection_disconnect): update the dispatch status here
2609
2610 2003-10-22  Havoc Pennington  <hp@redhat.com>
2611
2612         * bus/bus.c (bus_context_check_security_policy): fix up assertion
2613
2614         * bus/connection.c (bus_transaction_send_from_driver): set the
2615         destination to the connection's base service
2616
2617 2003-10-20  Havoc Pennington  <hp@redhat.com>
2618
2619         hmm, make check is currently not passing.
2620         
2621         * doc/dbus-specification.xml: add requirement that custom type
2622         names follow the same rules as interface names.
2623
2624         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
2625         duplication and allow 'c' to be 'custom'; dict is now 'm' for
2626         'map'
2627
2628         * doc/dbus-specification.xml: update type codes to match
2629         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
2630         CUSTOM. Add type OBJECT_PATH to the spec.
2631
2632 2003-10-17  Havoc Pennington  <hp@redhat.com>
2633
2634         * bus/driver.c (create_unique_client_name): use "." as separator
2635         in base service names instead of '-'
2636
2637         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
2638         byte at the end of the string
2639
2640         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
2641         optimization macros since string validation seems to be a slow
2642         point.
2643         
2644         * doc/dbus-specification.xml: restrict valid
2645         service/interface/member/error names. Add test suite code for the
2646         name validation.
2647
2648         * dbus/dbus-string.c: limit service/interface/member/error names 
2649         to [0-9][A-Z][a-z]_
2650
2651         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2652         format arg to verbose spew
2653
2654         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2655         memory, return instead of g_error
2656
2657         * test/test-service.c (path_message_func): support emitting a
2658         signal on request
2659
2660         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2661         activation bus type if DBUS_BUS_ACTIVATION was set; default to
2662         assuming the activation bus was the session bus so that services
2663         started manually will still register.
2664         (init_connections_unlocked): fix so that in OOM situation we get
2665         the same semantics when retrying the function
2666         
2667         * test/test-service.c (main): change to use path registration, to
2668         test those codepaths; register with DBUS_BUS_ACTIVATION rather
2669         than DBUS_BUS_SESSION
2670
2671 2003-10-16  Havoc Pennington  <hp@redhat.com>
2672
2673         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2674
2675         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2676         coverage of the tests
2677         (coverage-report.txt): don't move the .da and .bbg files around
2678
2679 2003-10-16  Havoc Pennington  <hp@redhat.com>
2680
2681         * bus/bus.c (struct BusContext): remove struct field I didn't mean
2682         to put there
2683
2684 2003-10-16  Havoc Pennington  <hp@redhat.com>
2685
2686         * bus/connection.c (bus_pending_reply_expired): either cancel or
2687         execute, not both
2688         (bus_connections_check_reply): use unlink, not remove_link, as we
2689         don't want to free the link; fixes double free mess
2690
2691         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2692         where no reply was received
2693
2694         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2695         fix a refcount leak
2696
2697         * bus/signals.c (match_rule_matches): add special cases for the
2698         bus driver, so you can match on sender/destination for it.
2699
2700         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2701         DBUS_PRINT_BACKTRACE is set
2702
2703         * dbus/dbus-internals.c: add pid to assertion failure messages
2704
2705         * dbus/dbus-connection.c: add message type code to the debug spew
2706
2707         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2708         sender=foo not service=foo
2709
2710         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2711         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
2712         DBUS_ACTIVATION_ADDRESS instead
2713
2714         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2715         DBUS_SYSTEM_BUS_ADDRESS if appropriate
2716
2717         * bus/bus.c (bus_context_new): handle OOM copying bus type into
2718         context struct
2719
2720         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2721         (dbus_message_iter_get_object_path_array): new function (half
2722         finished, disabled for the moment)
2723         
2724         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2725         DBUS_MESSAGE_TYPE_ERROR
2726
2727         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2728         avoid redirecting stderr to /dev/null
2729         (babysit): close stdin if not doing the "exit_with_session" thing
2730
2731         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2732         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2733         stdout/stdin, so things don't get confused
2734         
2735         * bus/system.conf.in: fix to allow replies, I modified .conf
2736         instead of .conf.in again.
2737
2738 2003-10-14  David Zeuthen  <david@fubar.dk>
2739
2740         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2741         argtype to arg_type when raising unknown arg type exception.
2742         Changed type list to reflect the changes in dbus-protocol.h so 
2743         the bindings actually work.
2744
2745 2003-10-14  Havoc Pennington  <hp@redhat.com>
2746
2747         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2748         to have a bug keeping it from outputting the .da files sometimes
2749         (string_get_string): don't append garbage nul bytes to the string.
2750
2751 2003-10-15  Seth Nickell  <seth@gnome.org>
2752
2753         * python/Makefile.am:
2754
2755         Include dbus_h_wrapper.h in the dist tarball.
2756
2757 2003-10-14  Havoc Pennington  <hp@redhat.com>
2758
2759         * bus/bus.c (bus_context_check_security_policy): revamp this to
2760         work more sanely with new policy-based requested reply setup
2761
2762         * bus/connection.c (bus_transaction_send_from_driver): set bus
2763         driver messages as no reply
2764
2765         * bus/policy.c (bus_client_policy_check_can_receive): handle a
2766         requested_reply attribute on allow/deny rules
2767
2768         * bus/system.conf: add <allow requested_reply="true"/>
2769
2770         * bus/driver.c (bus_driver_handle_message): fix check for replies
2771         sent to the bus driver, which was backward. How did this ever work
2772         at all though? I think I'm missing something.
2773
2774         * dbus/dbus-message.c (decode_header_data): require error and
2775         method return messages to have a reply serial field to be valid
2776         (_dbus_message_loader_queue_messages): break up this function;
2777         validate that reply serial and plain serial are nonzero; 
2778         clean up the OOM/error handling.
2779         (get_uint_field): don't return -1 from this
2780         (dbus_message_create_header): fix signed/unsigned bug
2781
2782         * bus/connection.c (bus_connections_expect_reply): save serial of
2783         the incoming message, not reply serial
2784
2785 2003-10-14  Havoc Pennington  <hp@redhat.com>
2786
2787         * bus/connection.c: implement pending reply tracking using
2788         BusExpireList
2789
2790         * bus/bus.c (bus_context_check_security_policy): verify that a
2791         reply is pending in order to allow a reply to be sent. Deny 
2792         messages of unknown type.
2793
2794         * bus/dbus-daemon-1.1.in: update to mention new resource limits
2795
2796         * bus/bus.c (bus_context_get_max_replies_per_connection): new
2797         (bus_context_get_reply_timeout): new
2798
2799 2003-10-13  Seth Nickell  <seth@gnome.org>
2800
2801         * python/Makefile.am:
2802
2803         Pass "make distcheck": remove a couple files from DIST_FILES
2804         that weren't included in the final version.
2805
2806 2003-10-12  Havoc Pennington  <hp@pobox.com>
2807
2808         Added test code that 1) starts an actual bus daemon and 2) uses
2809         DBusGProxy; fixed bugs that were revealed by the test. Lots 
2810         more testing possible, but this is the basic framework.
2811         
2812         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2813         empty proxy lists from the proxy list hash
2814
2815         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2816         couple of return_if_fail checks
2817
2818         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2819         to allocate, so everything is cleared to NULL as it should be.
2820
2821         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2822         source as data to dbus_connection_set_timeout_functions() as the 
2823         timeout functions expected
2824
2825         * test/glib/run-test.sh: add a little script to start up a message
2826         bus and run tests using it
2827
2828         * tools/dbus-launch.1: updates
2829
2830         * tools/dbus-launch.c (main): add --config-file option
2831
2832         * tools/dbus-launch.c (main): remove confusing else if (runprog)
2833         that could never be reached.
2834
2835         * dbus/dbus-message.c (dbus_message_new_method_return) 
2836         (dbus_message_new_error, dbus_message_new_signal): set the
2837         no-reply-expected flag on all these. Redundant, but may
2838         as well be consistent.
2839
2840 2003-10-11  Havoc Pennington  <hp@pobox.com>
2841
2842         * test/decode-gcov.c (function_solve_graph): make broken block
2843         graph a nonfatal error since it seems to be broken. Need to debug
2844         this.
2845
2846         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2847         can't just check type > INVALID < LAST anymore
2848
2849         * dbus/dbus-message.c (dbus_message_get_signature): new function
2850         (dbus_message_has_signature): new function
2851         (struct DBusMessage): add signature field (right now it isn't sent
2852         over the wire, just generated on the fly)
2853         (dbus_message_copy): copy the signature, and init strings to
2854         proper length to avoid some reallocs
2855         (dbus_message_iter_init_array_iterator): return void, since it
2856         can't fail
2857         (dbus_message_iter_init_dict_iterator): return void since it can't fail
2858         (_dbus_message_loader_queue_messages): add silly temporary hack to
2859         fill in message->signature on load
2860
2861         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2862         characters, so they are relatively human-readable.
2863
2864 2003-10-11  Havoc Pennington  <hp@pobox.com>
2865
2866         * dbus/dbus-message.c (_dbus_message_test): add more test
2867         coverage, but #if 0 for now since they uncover a bug 
2868         not fixed yet; I think in re_align_field_recurse()
2869         (re_align_field_recurse): add FIXME about broken assertion
2870
2871         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2872
2873         * bus/connection.c: share a couple code bits with expirelist.c
2874
2875         * bus/expirelist.h, bus/expirelist.c: implement a generic
2876         expire-items-after-N-seconds facility, was going to share between
2877         expiring connections and replies, decided not to use for expiring
2878         connections for now.
2879
2880         * COPYING: include AFL 2.0 (still need to change all the file headers)
2881
2882 2003-10-09  Havoc Pennington  <hp@redhat.com>
2883
2884         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2885         gcc 3.3. Not that we do anything about it yet.
2886
2887         * bus/signals.c (bus_match_rule_parse): impose max length on the
2888         match rule text
2889
2890         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2891
2892 2003-10-09  Havoc Pennington  <hp@redhat.com>
2893
2894         Make matching rules theoretically work (add parser).
2895         
2896         * bus/bus.c (bus_context_check_security_policy): fix up to handle
2897         the case where destination is explicitly specified as bus driver
2898         and someone else is eavesdropping.
2899         
2900         * bus/policy.c (bus_client_policy_check_can_receive): fix up
2901         definition of eavesdropping and assertion
2902
2903         * tools/dbus-send.c (main): use dbus_message_type_from_string
2904
2905         * bus/signals.c (bus_match_rule_parse): implement
2906
2907         * dbus/dbus-message.c (dbus_message_type_from_string): new
2908
2909         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2910
2911 2003-10-02  Havoc Pennington  <hp@pobox.com>
2912
2913         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2914         dbus_gproxy_oneway_call
2915
2916         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
2917         (dbus_server_setup_with_g_main): fix to allow calling them more
2918         than once on the same args
2919         (dbus_bus_get_with_g_main): new function
2920
2921 2003-10-02  Havoc Pennington  <hp@redhat.com>
2922
2923         * doc/dbus-tutorial.xml: write some stuff
2924
2925 2003-09-29  Havoc Pennington  <hp@pobox.com>
2926
2927         * configure.in: split checks for Doxygen from XML docs, check for
2928         xmlto
2929
2930         * doc/Makefile.am: XML-ify all the docs, and add a blank
2931         dbus-tutorial.xml
2932
2933 2003-09-29  Havoc Pennington  <hp@pobox.com>
2934
2935         * Merge dbus-object-names branch. To see the entire patch 
2936         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2937         it's huuuuge though.
2938         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2939         
2940 2003-09-28  Havoc Pennington  <hp@pobox.com>
2941
2942         * HACKING: update to reflect new server
2943
2944 2003-09-26  Seth Nickell  <seth@gnome.org>
2945
2946         * python/dbus.py:
2947         * python/examples/example-signals.py:
2948
2949         Start implementing some notions of signals. The API
2950         is really terrible, but they sort of work (with the
2951         exception of being able to filter by service, and to
2952         transmit signals *as* a particular service). Need to
2953         figure out how to make messages come from the service
2954         we registered :-(
2955         
2956         * python/dbus_bindings.pyx.in:
2957
2958         Removed duplicate message_handler callbacks.
2959         
2960 2003-09-25  Havoc Pennington  <hp@redhat.com>
2961
2962         * bus/session.conf.in: fix my mess
2963
2964 2003-09-25  Havoc Pennington  <hp@pobox.com>
2965
2966         * bus/session.conf.in: fix security policy, reported by Seth Nickell
2967
2968 2003-09-25  Seth Nickell  <seth@gnome.org>
2969
2970         * python/examples/example-service.py:
2971
2972         Johan notices complete wrong code in example-service, but
2973         completely wrong in a way that works exactly the same (!).
2974         Johan is confused, how could this possibly work? Example
2975         code fails to serve purpose of making things clear.
2976         Seth fixes.
2977
2978 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
2979
2980         * doc/dbus-specification.sgml: don't require header fields
2981         to be 4-byte aligned and specify that fields should be
2982         distinguished from padding by the fact that zero is not
2983         a valid field name.
2984         
2985         * doc/TODO: remove re-alignment item and add item to doc
2986         the OBJECT_PATH type.
2987         
2988         * dbus/dbus-message.c:
2989         (HeaderField): rename the original member to value_offset
2990         and introduce a name_offset member to keep track of where
2991         the field actually begins.
2992         (adjust_field_offsets): remove.
2993         (append_int_field), (append_uint_field),
2994         (append_string_field): don't align the start of the header
2995         field to a 4-byte boundary.
2996         (get_next_field): impl finding the next marhsalled field
2997         after a given field.
2998         (re_align_field_recurse): impl re-aligning a number of
2999         already marshalled fields.
3000         (delete_field): impl deleting a field of any type and
3001         re-aligning any following fields.
3002         (delete_int_or_uint_field), (delete_string_field): remove.
3003         (set_int_field), (set_uint_field): no need to re-check
3004         that we have the correct type for the field.
3005         (set_string_field): ditto and impl re-aligning any
3006         following fields.
3007         (decode_header_data): update to take into account that
3008         the fields aren't 4-byte aligned any more and the new
3009         way to distinguish padding from header fields. Also,
3010         don't exit when there is too much header padding.
3011         (process_test_subdir): print the directory.
3012         (_dbus_message_test): add test to make sure a following
3013         field is re-aligned correctly after field deletion.
3014         
3015         * dbus/dbus-string.[ch]:
3016         (_dbus_string_insert_bytes): rename from insert_byte and
3017         allow the insert of multiple bytes.
3018         (_dbus_string_test): test inserting multiple bytes.
3019
3020         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
3021         warning note to docs about having to re-align any
3022         marshalled values following the string.
3023         
3024         * dbus/dbus-message-builder.c:
3025         (append_string_field), (_dbus_message_data_load):
3026         don't align the header field.
3027         
3028         * dbus/dbus-auth.c: (process_test_subdir): print the
3029         directory.
3030         
3031         * test/break-loader.c: (randomly_add_one_byte): upd. for
3032         insert_byte change.
3033         
3034         * test/data/invalid-messages/bad-header-field-alignment.message:
3035         new test case.
3036         
3037         * test/data/valid-messages/unknown-header-field.message: shove
3038         a dict in the unknown field.
3039
3040 2003-09-25  Seth Nickell  <seth@gnome.org>
3041
3042         * python/dbus.py:
3043         * python/dbus_bindings.pyx.in:
3044
3045         Handle return values.
3046         
3047         * python/examples/example-client.py:
3048         * python/examples/example-service.py:
3049
3050         Pass back return values from the service to the client.
3051         
3052 2003-09-24  Seth Nickell  <seth@gnome.org>
3053
3054         * python/dbus.py:
3055
3056         Connect Object methods (when you are sharing an object) up... pass
3057         in a list of methods to be shared. Sharing all the methods just
3058         worked out too weird. You can now create nice Services over the
3059         DBus in Python. :-)
3060         
3061         * python/dbus_bindings.pyx.in:
3062
3063         Keep references to user_data tuples passed into C functions so 
3064         Python doesn't garbage collect on us.
3065
3066         Implement MethodReturn and Error subclasses of Message for creating
3067         DBusMessage's of those types.
3068         
3069         * python/examples/example-client.py:
3070         * python/examples/example-service.py:
3071
3072         Simple example code showing both how create DBus services and objects,
3073         and how to use them.
3074
3075 2003-09-23  Havoc Pennington  <hp@pobox.com>
3076
3077         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
3078
3079 2003-09-23  Havoc Pennington  <hp@redhat.com>
3080
3081         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
3082         (dbus_gproxy_disconnect_signal): implement
3083         (dbus_gproxy_manager_remove_signal_match): implement
3084         (dbus_gproxy_manager_add_signal_match): implement
3085         (dbus_gproxy_oneway_call): implement
3086
3087 2003-09-23  Havoc Pennington  <hp@pobox.com>
3088
3089         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
3090         subclass. This means dropping the transparent thread safety of the
3091         proxy; you now need a separate proxy per-thread, or your own
3092         locking on the proxy. Probably right anyway.
3093         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
3094
3095 2003-09-22  Havoc Pennington  <hp@redhat.com>
3096
3097         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
3098
3099 2003-09-21  Seth Nickell  <seth@gnome.org>
3100
3101         First checkin of the Python bindings.
3102         
3103         * python/.cvsignore:
3104         * python/Makefile.am:
3105         * python/dbus_bindings.pyx.in:
3106         * python/dbus_h_wrapper.h:
3107
3108         Pieces for Pyrex to operate on, building a dbus_bindings.so
3109         python module for low-level access to the DBus APIs.
3110         
3111         * python/dbus.py:
3112
3113         High-level Python module for accessing DBus objects.
3114
3115         * configure.in:
3116         * Makefile.am:
3117
3118         Build stuff for the python bindings.
3119
3120         * acinclude.m4:
3121
3122         Extra macro needed for finding the Python C header files.
3123
3124 2003-09-21  Havoc Pennington  <hp@pobox.com>
3125
3126         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
3127         implementing the proxy manager, didn't get very far.
3128
3129         * dbus/dbus-bus.c (dbus_bus_add_match): new
3130         (dbus_bus_remove_match): new
3131
3132         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
3133         path_name argument; adjust the other not-yet-implemented 
3134         gproxy constructors to be what I think they should be.
3135
3136 2003-09-21  Havoc Pennington  <hp@pobox.com>
3137
3138         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
3139         by default for message bus connections.
3140
3141         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
3142         exit_on_disconnect flag is set and we process the disconnected
3143         signal.
3144         (dbus_connection_set_exit_on_disconnect): new function
3145
3146 2003-09-21  Havoc Pennington  <hp@pobox.com>
3147
3148         Get matching rules mostly working in the bus; only actually
3149         parsing the rule text remains. However, the client side of
3150         "signal connections" hasn't been started, this patch is only the
3151         bus side.
3152         
3153         * dbus/dispatch.c: fix for the matching rules changes
3154         
3155         * bus/driver.c (bus_driver_handle_remove_match)
3156         (bus_driver_handle_add_match): send an ack reply from these
3157         method calls
3158
3159         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
3160         arguments, reported by Seth Nickell
3161
3162         * bus/config-parser.c (append_rule_from_element): support
3163         eavesdrop=true|false attribute on policies so match rules 
3164         can be prevented from snooping on the system bus.
3165
3166         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
3167         and "destination" in attribute names; fix some docs bugs; 
3168         add eavesdrop=true|false attribute
3169
3170         * bus/driver.c (bus_driver_handle_add_match)
3171         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
3172         messages
3173
3174         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
3175         rid of broadcast service concept, signals are just always broadcast
3176
3177         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
3178         mostly implement matching rules stuff (currently only exposed as signal
3179         connections)
3180
3181 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
3182
3183         * doc/dbus-specification.sgml: Change the header field name
3184         to be an enum and update the rest of the spec to reference
3185         the fields using the conventinal name.
3186
3187         * dbus/dbus-protocol.h: update to reflect the spec.
3188
3189         * doc/TODO: add item to remove the 4 byte alignment requirement.
3190         
3191         * dbus/dbus-message.c: Remove the code to generalise the
3192         header/body length and serial number header fields as named
3193         header fields so we can reference field names using the 
3194         protocol values.
3195         (append_int_field), (append_uint_field), (append_string_field):
3196         Append the field name as a byte rather than four chars.
3197         (delete_int_or_uint_field), (delete_string_field): reflect the
3198         fact that the field name and typecode now occupy 4 bytes instead
3199         of 8.
3200         (decode_string_field), (decode_header_data): update to reflect
3201         protocol changes and move the field specific encoding from
3202         decode_string_field() back into decode_header_data().
3203         
3204         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
3205         Add utility to aid debugging.
3206         
3207         * dbus/dbus-message-builder.c:
3208         (append_string_field), (_dbus_message_data_load): Update to
3209         reflect protocol changes; Change the FIELD_NAME directive
3210         to HEADER_FIELD and allow it to take the field's conventional
3211         name rather than the actual value.
3212         
3213         * test/data/*/*.message: Update to use HEADER_FIELD instead
3214         of FIELD_NAME; Always align the header on an 8 byte boundary
3215         *before* updating the header length.
3216
3217 2003-09-15  Havoc Pennington  <hp@pobox.com>
3218
3219         * dbus/dbus-pending-call.c: add the get/set object data
3220         boilerplate as for DBusConnection, etc. Use generic object data
3221         for the notify callback.
3222
3223         * glib/dbus-gparser.c (parse_node): parse child nodes
3224
3225         * tools/dbus-viewer.c: more hacking on the dbus-viewer
3226         
3227         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
3228         contain functions shared between the convenience lib and the
3229         installed lib
3230
3231         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
3232         -export-symbols-regex to the GLib library
3233
3234         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
3235         fix the locking in here, and add a default handler for
3236         Introspect() that just returns sub-nodes.
3237
3238 2003-09-14  Havoc Pennington  <hp@pobox.com>
3239
3240         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
3241         rather than gfoo consistent
3242
3243         * glib/dbus-gproxy.h: delete for now, move contents to
3244         dbus-glib.h, because the include files don't work right since we
3245         aren't in the dbus/ subdir.
3246         
3247         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
3248         (dbus_gproxy_end_call): finish
3249         (dbus_gproxy_begin_call): finish
3250
3251         * glib/dbus-gmain.c (dbus_set_g_error): new
3252
3253         * glib/dbus-gobject.c (handle_introspect): include information
3254         about child nodes in the introspection
3255
3256         * dbus/dbus-connection.c (dbus_connection_list_registered): new
3257         function to help in implementation of introspection
3258
3259         * dbus/dbus-object-tree.c
3260         (_dbus_object_tree_list_registered_and_unlock): new function
3261
3262 2003-09-12  Havoc Pennington  <hp@pobox.com>
3263
3264         * glib/dbus-gidl.h: add common base class for all the foo_info
3265         types
3266
3267         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
3268         similar to kdcop
3269
3270         * test/Makefile.am: try test srcdir -ef . in addition to test
3271         srcdir = ., one of them should work (yeah lame)
3272         
3273         * glib/Makefile.am: build the "idl" parser stuff as a convenience
3274         library
3275         
3276         * glib/dbus-gparser.h: make description_load routines return
3277         NodeInfo* not Parser*
3278
3279         * Makefile.am (SUBDIRS): build test dir after all library dirs
3280
3281         * configure.in: add GTK+ detection
3282
3283 2003-09-07  Havoc Pennington  <hp@pobox.com>
3284
3285         * Make Doxygen contented.
3286
3287 2003-09-07  Havoc Pennington  <hp@pobox.com>
3288
3289         * doc/dbus-specification.sgml: more updates
3290
3291 2003-09-06  Havoc Pennington  <hp@pobox.com>
3292
3293         * doc/dbus-specification.sgml: partial updates
3294
3295         * bus/dbus-daemon-1.1.in: fix the config file docs for the
3296         zillionth time; hopefully I edited the right file this time.
3297
3298         * bus/config-parser.c (append_rule_from_element): support
3299         send_type, send_path, receive_type, receive_path
3300
3301         * bus/policy.c: add message type and path to the list of things
3302         that can be "firewalled"
3303
3304 2003-09-06  Havoc Pennington  <hp@pobox.com>
3305
3306         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
3307         (dbus_connection_register_object_path): make this not handle
3308         messages to paths below the given path
3309
3310 2003-09-03  Havoc Pennington  <hp@pobox.com>
3311
3312         * test/glib/Makefile.am: add this with random glib-linked test
3313         programs
3314
3315         * glib/Makefile.am: remove the random test programs from here,
3316         leave only the unit tests
3317
3318         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
3319         uscore/javacaps conversion, and fix     
3320         (get_object_property, set_object_property): change to .NET
3321         convention for mapping props to methods, set_FooBar/get_FooBar, 
3322         since one language has such a convention we may as well copy it. 
3323         Plus real methods in either getFooBar or get_foo_bar style won't 
3324         collide with this convention.
3325
3326 2003-09-01  Havoc Pennington  <hp@pobox.com>
3327
3328         * glib/dbus-gparser.c: implement
3329
3330         * glib/dbus-gobject.c: start implementing skeletons support
3331
3332         * configure.in: when disabling checks/assert, also define
3333         G_DISABLE_ASSERT and G_DISABLE_CHECKS
3334
3335 2003-09-01  Havoc Pennington  <hp@pobox.com>
3336
3337         * glib/Makefile.am: rearrange a bunch of files and get "make
3338         check" framework set up
3339
3340 2003-08-31  Havoc Pennington  <hp@pobox.com>
3341
3342         * fix build with --disable-tests
3343
3344 2003-08-30  Havoc Pennington  <hp@pobox.com>
3345
3346         * dbus/dbus-connection.c: purge DBusMessageHandler
3347
3348         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
3349         use callbacks everywhere
3350
3351 2003-08-30  Havoc Pennington  <hp@pobox.com>
3352
3353         * test/data/valid-config-files/system.d/test.conf: change to 
3354         root for the user so warnings don't get printed
3355
3356         * dbus/dbus-message.c: add dbus_message_get_path,
3357         dbus_message_set_path
3358         
3359         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
3360         dispatching to a path
3361
3362         * dbus/dbus-string.c (_dbus_string_validate_path): add
3363
3364         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
3365         (_dbus_marshal_object_path): implement
3366
3367         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
3368         to contain the path to the target object
3369         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
3370         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
3371
3372 2003-08-30  Havoc Pennington  <hp@pobox.com>
3373
3374         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
3375
3376 2003-08-29  Havoc Pennington  <hp@pobox.com>
3377
3378         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
3379         registered
3380         (struct DBusObjectSubtree): shrink this
3381         a lot, since we may have a lot of them
3382         (_dbus_object_tree_free_all_unlocked): implement
3383         (_dbus_object_tree_dispatch_and_unlock): implement
3384
3385 2003-08-29  Havoc Pennington  <hp@pobox.com>
3386
3387         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
3388
3389 2003-08-28  Havoc Pennington  <hp@pobox.com>
3390
3391         purge DBusObjectID
3392         
3393         * dbus/dbus-connection.c: port to no ObjectID, create a
3394         DBusObjectTree, rename ObjectTree to ObjectPath in public API
3395
3396         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
3397         everything except UnregisterFunction and MessageFunction
3398         
3399         * dbus/dbus-marshal.c: port away from DBusObjectID, 
3400         add DBUS_TYPE_OBJECT_PATH
3401         
3402         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
3403         dbus/dbus-objectid.[hc]: remove these, we are moving to 
3404         path-based object IDs
3405
3406 2003-08-25  Havoc Pennington  <hp@pobox.com>
3407
3408         Just noticed that dbus_message_test is hosed, I wonder when I
3409         broke that. I thought make check was passing earlier...
3410         
3411         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
3412         container tree, will replace most of dbus-object-registry
3413
3414         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
3415         screwup
3416
3417 2003-08-19  Havoc Pennington  <hp@pobox.com>
3418
3419         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
3420         (dbus_message_is_error): fix this function
3421
3422         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
3423         match
3424
3425         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
3426         reflect clarified man page
3427         (bus_client_policy_check_can_send): ditto
3428         
3429         * bus/session.conf.in: fixup
3430
3431         * bus/system.conf.in: fixup
3432
3433 2003-08-18  Havoc Pennington  <hp@redhat.com>
3434
3435         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
3436
3437         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3438         dumb bug created earlier (wrong order of args to
3439         decode_header_data())
3440         
3441         * tools/dbus-send.c: port
3442
3443         * tools/dbus-print-message.c (print_message): port
3444
3445         * test/data/*messages: port all messages over
3446         
3447         * dbus/dbus-message-builder.c: support including 
3448         message type
3449         
3450         * bus/driver.c: port over
3451         
3452         * bus/dispatch.c: port over to new stuff
3453
3454         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3455         rename disconnect signal to "Disconnected"
3456
3457 2003-08-17  Havoc Pennington  <hp@pobox.com>
3458
3459         This doesn't compile yet, but syncing up so I can hack on it from
3460         work. What are branches for if not broken code? ;-)
3461         
3462         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
3463         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
3464         DBUS_HEADER_FIELD_ERROR_NAME
3465         
3466         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
3467         for the interface+member pairs
3468         (string_hash): change to use g_str_hash algorithm
3469         (find_direct_function, find_string_function): refactor these to
3470         share most code.
3471         
3472         * dbus/dbus-message.c: port all of this over to support 
3473         interface/member fields instead of name field
3474
3475         * dbus/dbus-object-registry.c: port over
3476         
3477         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
3478         from _dbus_string_validate_name
3479
3480         * bus/dbus-daemon-1.1: change file format for the 
3481         <deny>/<allow> stuff to match new message naming scheme
3482
3483         * bus/policy.c: port over
3484
3485         * bus/config-parser.c: parse new format
3486         
3487 2003-08-16  Havoc Pennington  <hp@pobox.com>
3488
3489         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
3490         broken assertion
3491
3492         * glib/dbus-gproxy.c: some hacking
3493
3494 2003-08-15  Havoc Pennington  <hp@redhat.com>
3495
3496         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
3497
3498         * dbus/dbus-connection.c
3499         (dbus_connection_send_with_reply_and_block): factor out internals;
3500         change to convert any error replies to DBusError instead of 
3501         returning them as a message
3502
3503 2003-08-15  Havoc Pennington  <hp@pobox.com>
3504
3505         * dbus/dbus-connection.c, 
3506         dbus/dbus-pending-call.c: Finish the pending call stuff
3507
3508 2003-08-14  Havoc Pennington  <hp@redhat.com>
3509
3510         * dbus/dbus-pending-call.c: start on new object that will replace
3511         DBusMessageHandler and ReplyHandlerData for tracking outstanding
3512         replies
3513
3514         * dbus/dbus-gproxy.c: start on proxy object used to communicate
3515         with remote interfaces
3516
3517         * dbus/dbus-gidl.c: do the boring boilerplate in here
3518         
3519 2003-08-12  Havoc Pennington  <hp@pobox.com>
3520
3521         * bus/dispatch.c (bus_dispatch): make this return proper 
3522         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
3523
3524         * dbus/dbus-errors.c (dbus_set_error): use
3525         _dbus_string_append_printf_valist
3526
3527         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
3528         (_dbus_string_append_printf): new
3529
3530         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
3531         UNKNOWN_METHOD
3532
3533         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
3534         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
3535         message is unhandled.
3536
3537 2003-08-11  Havoc Pennington  <hp@pobox.com>
3538
3539         * bus/test.c (client_disconnect_handler): change to return
3540         HANDLED (would have been REMOVE_MESSAGE)
3541
3542         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
3543         HANDLED/NOT_YET_HANDLED instead of
3544         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
3545         should be used.
3546
3547 2003-08-10  Havoc Pennington  <hp@pobox.com>
3548
3549         * tools/dbus-send.c (main): add --type argument, for now
3550         supporting only method_call and signal types.
3551
3552         * tools/dbus-print-message.c: print message type
3553
3554         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3555         init connection->objects
3556
3557         * doc/dbus-specification.sgml: fix sgml
3558
3559         * bus/*.c: port over to object-instance API changes
3560
3561         * test/test-service.c: ditto
3562         
3563         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
3564         name, we will have to fix up the rest of the code to also handle
3565         this
3566         (dbus_message_new): generic message-creation call
3567         (set_string_field): allow appending name field
3568
3569 2003-08-06  Havoc Pennington  <hp@pobox.com>
3570
3571         * dbus/dbus-object-registry.c: implement signal connection 
3572         and dispatch
3573
3574         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
3575
3576         * dbus/dbus-internals.c (_dbus_memdup): new function
3577
3578 2003-08-02  Havoc Pennington  <hp@pobox.com>
3579
3580         * dbus/dbus-message.c (dbus_message_get_no_reply)
3581         (dbus_message_set_no_reply): add these and remove
3582         set_is_error/get_is_error
3583
3584         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
3585         remove the ERROR flag, since there's now an ERROR type
3586
3587 2003-08-01  Havoc Pennington  <hp@pobox.com>
3588
3589         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
3590         implement
3591
3592         * dbus/dbus-message.c (dbus_message_get_type): new function
3593
3594         * doc/dbus-specification.sgml: add "type" byte to messages
3595
3596 2003-08-01  Havoc Pennington  <hp@pobox.com>
3597
3598         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
3599         a message type enum to distinguish kinds of message
3600         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
3601         that need not be replied to
3602
3603 2003-08-01  Havoc Pennington  <hp@pobox.com>
3604
3605         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
3606         (unpack_8_octets): fix no-64-bit-int bug
3607
3608         * dbus/dbus-object-registry.c (validate_id): validate the 
3609         connection ID bits, not just the instance ID.
3610
3611         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
3612         the connection-global 33 bits of the object ID
3613
3614         * dbus/dbus-object-registry.c (info_from_entry): fill in 
3615         object ID in the new way
3616
3617         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
3618         define server/client/instance bits.
3619
3620 2003-07-30  Havoc Pennington  <hp@pobox.com>
3621
3622         * dbus/dbus-connection.c (dbus_connection_register_object): fix
3623         build
3624
3625 2003-07-13  Havoc Pennington  <hp@pobox.com>
3626
3627         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
3628         fields to DBusObjectVTable and DBusObjectInfo
3629
3630 2003-07-12  Havoc Pennington  <hp@pobox.com>
3631
3632         * dbus/dbus-object-registry.c: implement unit test,
3633         fix bugs discovered in process
3634
3635         * dbus/dbus-connection.c: remove handler_table and
3636         register_handler(), add DBusObjectRegistry usage
3637
3638         * dbus/dbus-objectid.c (dbus_object_id_is_null)
3639         (dbus_object_id_set_null): new functions
3640
3641 2003-07-08  Havoc Pennington  <hp@pobox.com>
3642
3643         * dbus/dbus-object.c: implement some of this
3644
3645         * dbus/dbus-object-registry.c
3646         (_dbus_object_registry_add_and_unlock): fill in the object_id out
3647         param
3648         (_dbus_object_registry_new): handle OOM
3649
3650 2003-07-08  Havoc Pennington  <hp@pobox.com>
3651
3652         * dbus/dbus-object.h: sketch out an API for registering objects
3653         with a connection, that allows us to use as little as 24 bytes
3654         per object and lets application code represent an object in 
3655         any conceivable way.
3656
3657         * dbus/dbus-object-registry.c: implement the hard bits of the
3658         DBusConnection aspect of object API. Not yet wired up.
3659         
3660 2003-07-06  Havoc Pennington  <hp@pobox.com>
3661
3662         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3663         (_dbus_marshal_object_id): new
3664         (_dbus_demarshal_object_id): new
3665         (_dbus_marshal_get_arg_end_pos): support object ID type, and
3666         consolidate identical switch cases. Don't conditionalize handling
3667         of DBUS_TYPE_UINT64, need to handle the type always.
3668         (_dbus_marshal_validate_arg): consolidate identical cases, and
3669         handle DBUS_TYPE_OBJECT_ID
3670
3671         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3672
3673         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3674
3675 2003-09-28  Havoc Pennington  <hp@pobox.com>
3676
3677         * real 0.13 release
3678
3679 2003-09-28  Havoc Pennington  <hp@pobox.com>
3680
3681         * doc/Makefile.am (dbus-specification.html): testing a funky hack
3682         to work with Debian db2html
3683
3684 2003-09-28  Havoc Pennington  <hp@pobox.com>
3685
3686         * configure.in: 0.13
3687
3688         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3689         stylesheet-images for benefit of Debian
3690         
3691         Change back to using filesystem-linked sockets for the system
3692         bus, so only root can create the default system bus address.
3693         
3694         * bus/system.conf.in: change to use
3695         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3696
3697         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3698         from here.
3699
3700         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3701         here, and AC_DEFINE DBUS_SYSTEM_PATH
3702
3703 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
3704
3705         * doc/TODO:
3706         * doc/busconfig.dtd:
3707         Add busconfig DTD.
3708         
3709 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
3710
3711         * doc/dbus-specification.sgml:
3712         Add activation reply values.
3713         
3714 2003-08-05  Havoc Pennington  <hp@redhat.com>
3715
3716         * configure.in: 0.12
3717
3718 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
3719
3720         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3721         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3722         (add_watch), (remove_watch), (create_source):
3723         Refcount fds, fixes some reentrancy issues.
3724         
3725 2003-07-30  Havoc Pennington  <hp@redhat.com>
3726
3727         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3728         bus address to be abstract if we have abstract sockets
3729
3730         * NEWS: update
3731
3732 2003-07-28  Havoc Pennington  <hp@redhat.com>
3733
3734         * bus/messagebus.in: fix to avoid processname/servicename 
3735         confusion, from Michael Kearey
3736         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3737         
3738 2003-07-23  Havoc Pennington  <hp@pobox.com>
3739
3740         * dbus/dbus-message.c (dbus_message_iter_get_named): 
3741         fix from Andy Hanton to remove broken "+1"
3742
3743 2003-07-16  Havoc Pennington  <hp@pobox.com>
3744
3745         * tools/dbus-launch.c (babysit): close stdout/stderr in the
3746         babysitter process, as suggested by Thomas Leonard, so 
3747         an "eval `dbus-launch --exit-with-session`" will actually 
3748         return
3749
3750 2003-07-16  Havoc Pennington  <hp@pobox.com>
3751
3752         * configure.in: print out EXPANDED_* variables in the summary at
3753         the end; clean up the code that computes EXPANDED_ variables and
3754         get the ones using exec_prefix right. Should make things work
3755         when you build without --prefix
3756
3757 2003-06-29  Havoc Pennington  <hp@pobox.com>
3758
3759         * mono/Test.cs (class Test): fire up a main loop and run it
3760
3761         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3762         done once, the app has to do it
3763
3764 2003-06-26  Havoc Pennington  <hp@pobox.com>
3765
3766         * mono/Connection.cs: set up connection with the glib main loop
3767
3768 2003-07-01  Havoc Pennington  <hp@redhat.com>
3769
3770         * doc/dbus-specification.sgml: clarify the format of a type code,
3771         change suggested by Jim Blandy
3772
3773 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
3774
3775         * doc/Makefile.am:
3776         * tools/Makefile.am: Don't assume srcdir == builddir.
3777
3778         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3779         the allocated block.
3780         (_dbus_memory_test): New function.
3781         * dbus/dbus-test.h: Add _dbus_memory_test ().
3782         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3783
3784         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3785         of %c%c%c%c.
3786         (dbus_message_new): Remove obsolete @todo.
3787
3788         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3789         (_dbus_marshal_set_uint64): Fix comment.
3790
3791         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3792         hardcode FIELD_REPLY_SERIAL.
3793
3794         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3795         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3796
3797         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3798         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3799
3800 2003-06-24  Havoc Pennington  <hp@pobox.com>
3801
3802         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3803
3804 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
3805
3806         * configure.in:
3807         * gcj/.cvsignore:
3808         * gcj/Hello.java:
3809         * gcj/Makefile.am:
3810         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3811         * gcj/org/.cvsignore:
3812         * gcj/org/Makefile.am:
3813         * gcj/org/freedesktop/.cvsignore:
3814         * gcj/org/freedesktop/Makefile.am:
3815         * gcj/org/freedesktop/dbus/.cvsignore:
3816         * gcj/org/freedesktop/dbus/Makefile.am:
3817         * gcj/org/freedesktop/dbus/Message.java: (Message),
3818         (Message.Message):
3819         * gcj/org/freedesktop/dbus/natMessage.cc:
3820         Fix the build system.
3821
3822 2003-06-22  Havoc Pennington  <hp@pobox.com>
3823
3824         * mono/Connection.cs: add more bindings
3825
3826         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3827         more than once.
3828
3829 2003-06-22  Havoc Pennington  <hp@pobox.com>
3830
3831         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3832         Start wrapping more stuff.
3833
3834 2003-06-22  Havoc Pennington  <hp@pobox.com>
3835
3836         * mono/Message.cs: implement Message.Wrap() that ensures we only
3837         have a single C# wrapper per DBusMessage, assuming it works which
3838         it probably doesn't.
3839
3840         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3841         (dbus_message_free_data_slot): new
3842         (dbus_message_set_data): new
3843         (dbus_message_get_data): new
3844
3845 2003-06-22  Havoc Pennington  <hp@pobox.com>
3846
3847         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3848         (_dbus_data_slot_allocator_alloc): rework these to keep a
3849         reference count on each slot and automatically manage a global
3850         slot ID variable passed in by address
3851
3852         * bus/bus.c: convert to new dataslot API
3853
3854         * dbus/dbus-bus.c: convert to new dataslot API
3855
3856         * dbus/dbus-connection.c: convert to new dataslot API
3857
3858         * dbus/dbus-server.c: convert to new dataslot API
3859
3860         * glib/dbus-gmain.c: ditto
3861
3862         * bus/test.c: ditto
3863
3864         * bus/connection.c: ditto
3865
3866 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
3867
3868         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3869         after the gcj checks so that the correct configuration tags
3870         will be added to libtool.
3871
3872         * dbus-glib-1.pc.in: No need to specify any includes since
3873         dbus-1.pc.in has those.
3874
3875 2003-06-22  Havoc Pennington  <hp@pobox.com>
3876
3877         * mono/*, gcj/*, configure.in, Makefile.am:
3878         Check in makefiles and subdirs for mono and gcj bindings.
3879         Neither binding actually exists, just trying to get through
3880         all the build and other boring bits.
3881
3882 2003-06-21  Philip Blundell  <philb@gnu.org>
3883
3884         * tools/dbus-monitor.1: Updated.
3885
3886         * tools/dbus-send.1: Likewise.
3887
3888 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
3889
3890         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3891         for hangup and error after checking read so we won't discard
3892         pending data if both hangup and read are set.
3893
3894 2003-06-19  Philip Blundell  <philb@gnu.org>
3895
3896         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3897
3898         * tools/dbus-send.c: Accept both --system and --session.
3899
3900         * tools/dbus-monitor.c: Same here.
3901
3902 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
3903
3904         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3905         from C++ (Patch by Miloslav Trmac).
3906
3907 2003-06-15  Joe Shaw  <joe@assbarn.com>
3908
3909         * configure.in: Check for socklen_t.
3910
3911         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3912
3913         * test/test-segfault.c: Add #include <sys/time.h>
3914
3915         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3916         dbus-launch needs it.
3917
3918 2003-06-09  Havoc Pennington  <hp@redhat.com>
3919
3920         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3921         SUN_LEN, it breaks abstract socket usage
3922
3923         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3924         starts of lines.
3925
3926 2003-06-04  Havoc Pennington  <hp@pobox.com>
3927
3928         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3929         using unix:abstract=/foo, and when listening in a tmpdir
3930         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3931
3932         * dbus/dbus-transport.c (_dbus_transport_open): support
3933         unix:abstract=/foo
3934
3935         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3936         support abstract sockets
3937
3938         * dbus/dbus-transport-unix.c
3939         (_dbus_transport_new_for_domain_socket): support abstract sockets
3940
3941         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3942         toggle as an argument, implement abstract namespace support
3943         (_dbus_listen_unix_socket): ditto
3944
3945         * configure.in: add --enable-abstract-sockets and implement
3946         a configure check for autodetection of the right value.
3947
3948 2003-06-01  Havoc Pennington  <hp@pobox.com>
3949
3950         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3951         in /tmp (though on Linux this will end up being useless,
3952         when we add abstract namespace support)
3953
3954         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3955         subst'ing it
3956
3957 2003-05-28  Colin Walters  <walters@verbum.org>
3958
3959         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3960
3961 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
3962
3963         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3964
3965 2003-05-17  Colin Walters  <walters@gnu.org>
3966
3967         * tools/dbus-send.c: Don't exit with an error code if --help was
3968         passed.  Default to using the session bus instead of the system
3969         one.
3970
3971         * tools/dbus-launch.c: Ditto.
3972
3973         * tools/dbus-monitor.c: Ditto.
3974
3975         * tools/dbus-send.1: Update with new arguments.
3976
3977         * tools/dbus-launch.c: Emit code to export variables.  New
3978         arguments -s and -c to specify shell syntax, and a bit of code to
3979         autodetect syntax.  Also, allow specifying a program to run.
3980
3981         * tools/dbus-launch.1: Update with new arguments.
3982
3983         * tools/dbus-send.1: Ditto.
3984
3985         * tools/dbus-monitor.1: Ditto.
3986
3987 2003-05-17  Havoc Pennington  <hp@pobox.com>
3988
3989         * bus/config-parser.c (merge_included): merge in policies from
3990         child configuration file.
3991
3992         * bus/policy.c (bus_policy_merge): function to merge two policies
3993         together
3994
3995 2003-05-16  Havoc Pennington  <hp@redhat.com>
3996
3997         * dbus/dbus-connection.c: disable verbose lock spew
3998
3999         * tools/dbus-send.c: add --print-reply command line option
4000
4001         * tools/dbus-print-message.h (print_message): new util function
4002         shared by dbus-send and dbus-monitor
4003
4004         * tools/dbus-monitor.c (handler_func): exit on disconnect
4005
4006         * dbus/dbus-transport-unix.c (do_reading): if the transport is
4007         disconnected, don't try to use the read_watch
4008
4009         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
4010         so we can find this bug more easily
4011
4012 2003-05-16  Havoc Pennington  <hp@redhat.com>
4013
4014         * bus/policy.c (free_rule_list_func): avoid a crash when passed
4015         NULL as DBusHashTable is annoyingly likely to do.
4016
4017 2003-05-16  Colin Walters  <walters@verbum.org>
4018
4019         * tools/dbus-monitor.c: Add --session argument and usage()
4020         function.
4021
4022         * tools/dbus-monitor.1: Update with new --session arg.
4023
4024         * bus/Makefile.am (install-data-hook): Create
4025         $(libdir)/dbus-1.0/services so that the session bus is happy.
4026
4027 2003-05-15  Havoc Pennington  <hp@redhat.com>
4028
4029         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
4030         on non-x86. ifdef's are evil.
4031
4032 2003-05-15  Havoc Pennington  <hp@redhat.com>
4033
4034         * configure.in: 0.11
4035
4036         * NEWS: update
4037
4038         * bus/Makefile.am (initddir): apparently we are supposed to put
4039         init scripts in /etc/rc.d/init.d not /etc/init.d
4040
4041         * bus/Makefile.am: remove the "you must --enable-tests to make
4042         check" as it broke distcheck
4043
4044         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
4045
4046 2003-05-13  James Willcox  <jwillcox@gnome.org>
4047
4048         * configure.in:
4049         * bus/activation.c: (bus_activation_service_created),
4050         (bus_activation_activate_service):
4051         * bus/driver.c: (bus_driver_send_service_deleted),
4052         (bus_driver_send_service_created), (bus_driver_send_service_lost),
4053         (bus_driver_send_service_acquired),
4054         (bus_driver_send_welcome_message),
4055         (bus_driver_handle_list_services):
4056         * bus/session.conf.in:
4057         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
4058         (dbus_bus_service_exists), (dbus_bus_activate_service):
4059         * dbus/dbus-bus.h:
4060
4061         Add some convenience API which lets you activate a service, and did a
4062         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
4063         and dbus_message_get_args()
4064
4065 2003-05-11  Havoc Pennington  <hp@pobox.com>
4066
4067         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
4068         calling _dbus_marshal_validate_arg() for every byte in a byte
4069         array, etc.
4070
4071         * dbus/dbus-message-handler.c: use atomic reference counting to
4072         reduce number of locks slightly; the global lock in here sucks
4073
4074         * dbus/dbus-connection.c
4075         (_dbus_connection_update_dispatch_status_and_unlock): variant of
4076         update_dispatch_status that can be called with lock held; then use
4077         in a couple places to reduce locking/unlocking
4078         (dbus_connection_send): hold the lock over the whole function
4079         instead of acquiring it twice.
4080
4081         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
4082
4083         * bus/connection.c (bus_connections_setup_connection): fix access
4084         to already-freed memory.
4085
4086         * dbus/dbus-connection.c: keep a little cache of linked list
4087         nodes, to avoid using the global linked list alloc lock in the
4088         normal send-message case. Instead we just use the connection lock
4089         that we already have to take.
4090
4091         * dbus/dbus-list.c (_dbus_list_find_last): new function
4092
4093         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
4094         change to use a struct for the atomic type; fix docs,
4095         they return value before increment, not after increment.
4096
4097         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
4098         (_dbus_string_append_8_aligned): new functions to try to
4099         microoptimize this operation.
4100         (reallocate_for_length): break this out of set_length(), to
4101         improve profile info, and also so we can consider inlining the
4102         set_length() part.
4103
4104         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
4105         strings with some preallocation, cuts down on our calls to realloc
4106         a fair bit. Though if we can get the "move entire string to empty
4107         string" optimization below to kick in here, it would be better.
4108
4109         * dbus/dbus-string.c (_dbus_string_move): just call
4110         _dbus_string_move_len
4111         (_dbus_string_move_len): add a special case for moving
4112         an entire string into an empty string; we can just
4113         swap the string data instead of doing any reallocs.
4114         (_dbus_string_init_preallocated): new function
4115
4116 2003-05-11  Havoc Pennington  <hp@pobox.com>
4117
4118         Write a "test-profile" that does echo client-server with threads;
4119         profile reveals lock contention, memcpy/realloc of buffers, and
4120         UTF-8 validation as hot spots. 20% of lock contention eliminated
4121         with dbus_atomic_inc/dec implementation on x86.  Much remaining
4122         contention is global mempool locks for GList and DBusList.
4123
4124         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
4125         x86 implementation
4126
4127         * dbus/dbus-connection.c (struct DBusConnection): use
4128         dbus_atomic_t for the reference count
4129
4130         * dbus/dbus-message.c (struct DBusMessage): declare
4131         dbus_atomic_t values as volatile
4132
4133         * configure.in: code to detect ability to use atomic integer
4134         operations in assembly, from GLib patch
4135
4136         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
4137         time, tired of it being wrong in threads and forked processes
4138
4139         * glib/test-profile.c: a little program to bounce messages back
4140         and forth between threads and eat CPU
4141
4142         * dbus/dbus-connection.c: add debug spew macros for debugging
4143         thread locks; include config.h at top; fix deadlock in
4144         dbus_connection_flush()
4145
4146 2003-05-08  Havoc Pennington  <hp@pobox.com>
4147
4148         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
4149         data from getting written, and there wasn't a good reason to
4150         use _exit really.
4151
4152         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
4153         dbus_verbose lines in test coverage
4154         (main): add list of functions sorted by # of untested blocks
4155         to the coverage report
4156
4157         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
4158
4159         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
4160
4161         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
4162         extend test coverage
4163
4164         * test/data/auth/cancel.auth-script: test canceling an
4165         authentication
4166
4167         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
4168         aren't used. in CVS history if we end up needing them.
4169
4170 2003-05-04  Havoc Pennington  <hp@pobox.com>
4171
4172         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
4173         unit test
4174
4175         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
4176         function, which assumed length was in # of strings, not bytes
4177
4178         * dbus/dbus-message.c (_dbus_message_test): add tests for some
4179         missing coverage
4180
4181         * dbus/dbus-connection.c
4182         (_dbus_connection_queue_received_message): disable function for
4183         now, we are only using it in test mode
4184
4185         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
4186         remove a mistaken FIXME
4187
4188 2003-05-04  Havoc Pennington  <hp@pobox.com>
4189
4190         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
4191         unlock mutex on successful return, patch from Anders Gustafsson
4192
4193 2003-05-04  Havoc Pennington  <hp@pobox.com>
4194
4195         * dbus-glib-1.pc.in (Requires): fix dependencies, from
4196         Anders Gustafsson
4197
4198 2003-05-04  Havoc Pennington  <hp@pobox.com>
4199
4200         * tools/dbus-launch.c: implement
4201
4202         * bus/main.c (main), bus/bus.c (bus_context_new):
4203         implement --print-pid and --fork
4204
4205 2003-05-03  Havoc Pennington  <hp@redhat.com>
4206
4207         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
4208         the address had no value, and add to test suite. Fix and
4209         regression test from Miloslav Trmac
4210
4211 2003-05-03  Havoc Pennington  <hp@pobox.com>
4212
4213         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
4214         watch is invalid when handled
4215
4216         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
4217         dbus-launch utility to launch the bus from a shell script.  Didn't
4218         actually implement dbus-launch yet, it's just a placeholder still.
4219
4220 2003-05-03  Havoc Pennington  <hp@pobox.com>
4221
4222         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
4223         daemon; also documents daemon config file, so replaces
4224         doc/config-file.txt. Corrected some stuff from config-file.txt in
4225         the process of moving it.
4226
4227 2003-05-03  Havoc Pennington  <hp@pobox.com>
4228
4229         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
4230         add some man pages
4231
4232 2003-05-03  Colin Walters  <walters@verbum.org>
4233
4234         * dbus/dbus-sysdeps.c (fill_user_info): Test against
4235         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
4236
4237         * Makefile.am: Update to use new .pc versioning scheme.
4238
4239 2003-05-02  Havoc Pennington  <hp@redhat.com>
4240
4241         * bus/system.conf.in: allow send/receive to/from message bus
4242         service
4243
4244 2003-04-30  Havoc Pennington  <hp@redhat.com>
4245
4246         * configure.in: print a note when building with unit tests and
4247         without assertions
4248
4249 2003-04-30  Havoc Pennington  <hp@redhat.com>
4250
4251         * Makefile.am: add a check-local that complains if you didn't
4252         configure with --enable-tests
4253
4254 2003-04-29  Havoc Pennington  <hp@redhat.com>
4255
4256         * glib/dbus-gmain.c: docs cleanups
4257
4258         * dbus/dbus-types.h: add docs on int64 types
4259
4260         * dbus/dbus-memory.c: fix docs to avoid putting private API in
4261         public API docs section
4262
4263 2003-04-29  Havoc Pennington  <hp@redhat.com>
4264
4265         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
4266         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
4267         parallel install API version, not with the D-BUS package version.
4268
4269         * HACKING: move some of README over here
4270
4271         * README: updates, and document API/ABI policy
4272
4273         * configure.in: reindentation
4274
4275 2003-04-29  Havoc Pennington  <hp@redhat.com>
4276
4277         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
4278         to use this library" to be sure people have the right
4279         expectations.
4280
4281 2003-04-28  Havoc Pennington  <hp@redhat.com>
4282
4283         * configure.in: add --enable-docs which by default is auto yes if
4284         doxygen and db2html found, no otherwise; but can be forced on/off
4285
4286         * doc/Makefile.am: conditionalize whether to build docs on
4287         --enable-docs
4288
4289 2003-04-28  Havoc Pennington  <hp@redhat.com>
4290
4291         * configure.in: 0.10
4292
4293         * NEWS: update
4294
4295         * bus/system.conf.in: add <includedir>system.d</includedir>
4296
4297         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
4298         username was provided but not uid
4299
4300         * bus/config-parser.c (struct BusConfigParser): keep track of
4301         whether the parser is toplevel or was included; change some
4302         of the error handling if it's included.
4303
4304 2003-04-27  Havoc Pennington  <hp@pobox.com>
4305
4306         Unbreak my code...
4307
4308         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4309         report correct status if we finish processing authentication
4310         inside this function.
4311
4312         * bus/activation.c (try_send_activation_failure): use
4313         bus_transaction_send_error_reply
4314
4315         * bus/connection.c (bus_connection_get_groups): return an error
4316         explaining the problem
4317
4318         * bus/bus.c (bus_context_check_security_policy): implement
4319         restriction here that inactive connections can only send the
4320         hello message. Also, allow bus driver to send anything to
4321         any recipient.
4322
4323         * bus/connection.c (bus_connection_complete): create the
4324         BusClientPolicy here instead of on-demand.
4325         (bus_connection_get_policy): don't return an error
4326
4327         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
4328         sender field in message being replied to
4329
4330         * bus/bus.c (bus_context_check_security_policy): fix silly typo
4331         causing it to return FALSE always
4332
4333         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
4334         we checked sender rather than destination
4335
4336 2003-04-25  Havoc Pennington  <hp@redhat.com>
4337
4338         test suite is slightly hosed at the moment, will fix soon
4339
4340         * bus/connection.c (bus_connections_expire_incomplete): fix to
4341         properly disable the timeout when required
4342         (bus_connection_set_name): check whether we can remove incomplete
4343         connections timeout after we complete each connection.
4344
4345         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
4346         probably still broken.
4347
4348         * bus/services.c (bus_registry_acquire_service): implement max
4349         number of services owned, and honor allow/deny rules on which
4350         services a connection can own.
4351
4352         * bus/connection.c (bus_connection_get_policy): report errors here
4353
4354         * bus/activation.c: implement limit on number of pending
4355         activations
4356
4357 2003-04-25  Havoc Pennington  <hp@redhat.com>
4358
4359         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
4360         where we used >= 0 instead of != DBUS_UID_UNSET.
4361
4362 2003-04-25  Havoc Pennington  <hp@redhat.com>
4363
4364         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
4365         were toggled without add/remove, fix from Anders Gustafsson
4366
4367 2003-04-24  Havoc Pennington  <hp@redhat.com>
4368
4369         * test/data/valid-config-files/basic.conf: add <limit> tags to
4370         this test
4371
4372         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
4373         <limit> tag in configuration file.
4374
4375 2003-04-24  Havoc Pennington  <hp@redhat.com>
4376
4377         * bus/dispatch.c: somehow missed some name_is
4378
4379         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
4380         (_dbus_timeout_set_interval): new
4381
4382         * bus/connection.c (bus_connections_setup_connection): record time
4383         when each connection is first set up, and expire them after the
4384         auth timeout passes.
4385
4386 2003-04-24  Havoc Pennington  <hp@redhat.com>
4387
4388         * dbus/dbus-message.c (dbus_message_name_is): rename
4389         (dbus_message_service_is): rename
4390         (dbus_message_sender_is): rename
4391         (dbus_message_get_service): rename
4392
4393 2003-04-24  Havoc Pennington  <hp@redhat.com>
4394
4395         * configure.in: add --enable-checks
4396
4397         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
4398
4399         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
4400         to use thread locks.
4401         (_dbus_connection_handler_destroyed_locked): move some private
4402         functions into proper docs group
4403
4404         * dbus/dbus-internals.h: add _dbus_return_if_fail,
4405         _dbus_return_val_if_fail
4406
4407         Throughout: use dbus_return_if_fail
4408
4409 2003-04-23  James Willcox  <jwillcox@gnome.org>
4410
4411         * glib/dbus-glib.h:
4412         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
4413         (dbus_connection_setup_with_g_main),
4414         (dbus_server_setup_with_g_main):
4415         * glib/test-dbus-glib.c: (main):
4416         * glib/test-thread-client.c: (main):
4417         * glib/test-thread-server.c: (new_connection_callback), (main):
4418         * tools/dbus-monitor.c: (main):
4419
4420         Added a GMainContext argument to dbus_connection_setup_with_g_main()
4421         and dbus_server_setup_with_g_main().
4422
4423 2003-04-20  Havoc Pennington  <hp@pobox.com>
4424
4425         * doc/dbus-specification.sgml: document the restrictions on
4426         message and service names
4427
4428 2003-04-22  Havoc Pennington  <hp@redhat.com>
4429
4430         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
4431         support, and do some code cleanups to share more code and
4432         speed up array marshal/demarshal.
4433
4434         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
4435
4436         * configure.in: generate dbus-arch-deps.h
4437
4438         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
4439         64-bit typecodes
4440
4441 2003-04-22  Havoc Pennington  <hp@redhat.com>
4442
4443         * test/data/valid-messages/opposite-endian.message: fix test
4444         to use proper type for rply field
4445
4446         * test/data/invalid-messages: add tests for below validation
4447
4448         * dbus/dbus-message.c (decode_header_data): validate field types,
4449         and validate that named fields are valid names
4450         (decode_name_field): consider messages in the
4451         org.freedesktop.Local. namespace to be invalid.
4452
4453         * dbus/dbus-string.c (_dbus_string_validate_name): new
4454
4455 2003-04-19  Havoc Pennington  <hp@pobox.com>
4456
4457         * bus/driver.c (bus_driver_handle_hello): check limits and
4458         return an error if they are exceeded.
4459
4460         * bus/connection.c: maintain separate lists of active and inactive
4461         connections, and a count of each. Maintain count of completed
4462         connections per user. Implement code to check connection limits.
4463
4464         * dbus/dbus-list.c (_dbus_list_unlink): export
4465
4466         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
4467         number of bytes in the message queue for a connection
4468
4469 2003-04-18  Havoc Pennington  <hp@pobox.com>
4470
4471         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
4472
4473         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
4474         memleaks
4475
4476         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
4477         on realloc be sure to update the pointer in the keyring
4478
4479         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
4480         offset to avoid writing to unallocated memory
4481
4482         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
4483         try the next mechanism, so we properly handle OOM
4484
4485         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
4486         on OOM.
4487         (_dbus_keyring_new): fix OOM bug
4488         (_dbus_keyring_new_homedir): always set error; impose a maximum
4489         number of keys we'll load from the file, mostly to speed up the
4490         test suite and make its OOM checks more useful, but also for
4491         general sanity.
4492
4493         * dbus/dbus-auth.c (process_error_server): reject authentication
4494         if we get an error from the client
4495         (process_cancel): on cancel, send REJECTED, per the spec
4496         (process_error_client): send CANCEL if we get an error from the
4497         server.
4498
4499 2003-04-18  Havoc Pennington  <hp@pobox.com>
4500
4501         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
4502         debug spew
4503
4504         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
4505         handling problem
4506
4507         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
4508         about DBUS_TEST_HOMEDIR once
4509
4510         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
4511         the environment
4512
4513         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
4514         config file so we test the right thing
4515
4516         Throughout: assorted docs improvements
4517
4518 2003-04-18  Havoc Pennington  <hp@pobox.com>
4519
4520         * glib/dbus-gmain.c: adapt to watch changes
4521
4522         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
4523
4524         * dbus/dbus-server.h: remove dbus_server_handle_watch
4525
4526         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
4527
4528         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
4529         like DBusTimeout, so we don't need dbus_connection_handle_watch
4530         etc.
4531
4532 2003-04-17  Havoc Pennington  <hp@redhat.com>
4533
4534         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
4535         database usage so it all goes via the DBusUserDatabase cache.
4536
4537 2003-04-17  Havoc Pennington  <hp@redhat.com>
4538
4539         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
4540         there was an OOM watch we skipped, we always return TRUE so we
4541         iterate again to have a look at it again. Fixes test suite hang.
4542         Code rearrangement also lets us lose some memset and only iterate
4543         over callbacks once.
4544
4545         * bus/driver.c (bus_driver_handle_message): sense of test for
4546         reply was backward
4547
4548 2003-04-16  Havoc Pennington  <hp@pobox.com>
4549
4550         * doc/dbus-specification.sgml: make spec say serials are unsigned
4551
4552         * dbus/dbus-message.h: change message serials to unsigned
4553
4554         * dbus/dbus-connection.c: adapt to message serials being unsigned
4555
4556 2003-04-15  Havoc Pennington  <hp@pobox.com>
4557
4558         * bus/bus.c: create and keep around a shared DBusUserDatabase
4559         object.
4560
4561         * bus/connection.c (bus_connection_get_groups): don't cache
4562         groups for user in the connection object, since user database
4563         object now does that.
4564
4565 2003-04-16  Havoc Pennington  <hp@redhat.com>
4566
4567         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
4568         list of size counters
4569         (_dbus_message_loader_putback_message_link): put back a popped link
4570
4571         * dbus/dbus-connection.c
4572         (dbus_connection_set_max_live_messages_size): rename
4573         max_received_size
4574         (dbus_connection_get_outgoing_size): get size of outgoing
4575         queue
4576         (_dbus_connection_set_connection_counter): remove this cruft
4577
4578 2003-04-14  Havoc Pennington  <hp@redhat.com>
4579
4580         * dbus/dbus-userdb.c: user database abstraction, mostly to get
4581         caching, but at some point we might want to be able to use a
4582         different database.
4583
4584         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
4585         SHA1 conf file to test the sha1 auth mechanism, since the regular
4586         test always uses EXTERNAL when available.
4587
4588         * configure.in,
4589         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
4590         add conf file that requires use of sha1 auth
4591
4592 2003-04-13  Havoc Pennington  <hp@pobox.com>
4593
4594         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
4595         from Philip Blundell to send messages and monitor them.
4596
4597 2003-04-13  Havoc Pennington  <hp@pobox.com>
4598
4599         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
4600         callbacks
4601
4602         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
4603         users
4604
4605         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4606         fix to only recover unused bytes if we're already authenticated
4607         (_dbus_transport_get_is_authenticated): fix to still mark us
4608         authenticated if there are unused bytes.
4609
4610         * bus/dispatch.c: implement security policy checking
4611
4612         * bus/connection.c (bus_transaction_send_from_driver): new
4613
4614         * bus/bus.c (bus_context_check_security_policy): new
4615
4616         * bus/dispatch.c (send_service_nonexistent_error): delete this,
4617         now we just set the DBusError and it gets converted to an error
4618         reply.
4619
4620         * bus/connection.c (allow_user_function): enable code using actual
4621         data from the config file
4622
4623         * bus/policy.c (list_allows_user): handle wildcard rules for
4624         user/group connection perms
4625
4626 2003-04-13  Havoc Pennington  <hp@pobox.com>
4627
4628         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
4629
4630         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
4631
4632         * bus/policy.c (bus_policy_append_mandatory_rule)
4633         (bus_policy_append_default_rule, bus_policy_append_user_rule)
4634         (bus_policy_append_group_rule): new functions
4635
4636 2003-04-12  Havoc Pennington  <hp@pobox.com>
4637
4638         * bus/config-parser.c (bus_config_parser_new): fix a memleak
4639
4640         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
4641         the pid/gid/uid, just for paranoia.
4642
4643         * test/break-loader.c (randomly_do_n_things): find a byte
4644         containing a type code, and randomly change it to a different
4645         type code.
4646
4647 2003-04-12  Havoc Pennington  <hp@pobox.com>
4648
4649         * bus/policy.h: change BusPolicy to be the thing from the config
4650         file, and rename old BusPolicy to BusClientPolicy
4651
4652         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4653         match change in how policy works
4654
4655         * dbus/dbus-internals.h: mark assert_not_reached as
4656         __attribute((noreturn))__
4657
4658 2003-04-11  Havoc Pennington  <hp@redhat.com>
4659
4660         * doc/dbus-specification.sgml: fix a spot with the wrong name for
4661         the broadcast service. Use boolean return for ServiceExists.
4662
4663 2003-04-11  Havoc Pennington  <hp@redhat.com>
4664
4665         * configure.in: add another directory to look for qt in.
4666
4667 2003-04-11  Havoc Pennington  <hp@redhat.com>
4668
4669         * AUTHORS: add Colin Walters
4670
4671 2003-04-11  Havoc Pennington  <hp@redhat.com>
4672
4673         * NEWS: update
4674
4675         * configure.in: 0.9
4676
4677 2003-04-11  Havoc Pennington  <hp@redhat.com>
4678
4679         * bus/messagebus.in: remove pid file when stopping the
4680         message bus, since the bus won't have privileges to remove it
4681         itself.
4682
4683 2003-04-11  Havoc Pennington  <hp@redhat.com>
4684
4685         * bus/bus.c (bus_context_new): move credentials change after
4686         creating pidfile
4687
4688 2003-04-11  Havoc Pennington  <hp@pobox.com>
4689
4690         * test/decode-gcov.c: add "below average functions" to the
4691         coverage report, and change how some of the code works.
4692
4693         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4694         not in the coverage stats.
4695
4696         * test/test-service.c (main): use _dbus_verbose not fprintf in a
4697         couple places so running the test suite doesn't result in megaspam.
4698
4699 2003-04-11  Havoc Pennington  <hp@pobox.com>
4700
4701         * bus/dispatch.c (check_existent_service_activation): accept a no
4702         memory error in a place we didn't before
4703
4704         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4705         in case the first one failed," since the test suite is less
4706         broken now.
4707
4708 2003-04-10  Havoc Pennington  <hp@pobox.com>
4709
4710         * bus/dispatch.c (check_segfault_service_activation): add test
4711         for launching an executable that just crashes.
4712
4713         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4714         don't leave a million cores. We'll see how portable this is.
4715
4716 2003-04-10  Havoc Pennington  <hp@pobox.com>
4717
4718         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4719         the possible parent failures before we fork, so that we don't
4720         fail to create a babysitter after creating the child.
4721
4722         * bus/activation.c (bus_activation_activate_service): kill child
4723         if we don't successfully complete the activation.
4724
4725 2003-04-10  Havoc Pennington  <hp@redhat.com>
4726
4727         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4728         the connection if it's disconnected
4729
4730         * bus/activation.c (bus_activation_service_created): use new
4731         transaction features to roll back removal of pending activation if
4732         we don't successfully create the service after all. Don't remove
4733         pending activation if the function fails.
4734
4735         * dbus/dbus-list.c (_dbus_list_insert_before_link)
4736         (_dbus_list_insert_after_link): new code to facilitate
4737         services.c fixes
4738
4739         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4740         new functionality, so we can preallocate the ability to insert
4741         into a hash table.
4742
4743         * bus/connection.c (bus_transaction_add_cancel_hook): new function
4744         allowing us to put custom hooks in a transaction to be used for
4745         cancelling said transaction
4746
4747         * doc/dbus-specification.sgml: add some discussion of secondary
4748         service owners, and disallow zero-length service names
4749
4750         * bus/services.c (bus_registry_acquire_service): new function,
4751         splits out part of bus_driver_handle_acquire_service() and fixes
4752         a bug where we didn't remove the service doing the acquiring
4753         from the secondary queue if we failed to remove the current owner
4754         from the front of the queue.
4755
4756 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4757
4758         * doc/dbus-specification.sgml:
4759         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4760
4761 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4762
4763         * bus/.cvsignore:
4764         * glib/.cvsignore:
4765         * test/.cvsignore:
4766         Added files to cvsignore
4767
4768         * dbus/dbus-message.h:
4769         * dbus/dbus-message.c: (dbus_message_iter_get_named):
4770         Make get_named() take two out argument and return a boolean.
4771         (dbus_message_iter_get_args_valist):
4772         Update usage of get_named().
4773         (dbus_message_iter_append_byte):
4774         Fix typo
4775         (dbus_message_iter_append_named)
4776         Fix typo
4777         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4778         More tests.
4779
4780 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4781
4782         * dbus/dbus-marshal.[ch]:
4783         Add array_type_pos argument to _dbus_marshal_validate_arg.
4784         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4785
4786         * dbus/dbus-message.[ch]:
4787         Multi-dimensional arrays have full type specification in the
4788         outermost array. Iter code re-arranged to handle this.
4789         Added some more iter tests.
4790
4791         * doc/dbus-specification.sgml:
4792         Add me to authors.
4793         Remove old FIXME.
4794         Update new array encoding description.
4795         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4796
4797         * test/data/invalid-messages/array-with-mixed-types.message:
4798         * test/data/valid-messages/array-of-array-of-uint32.message:
4799         Change to the new array format.
4800
4801         * test/data/invalid-messages/too-short-dict.message:
4802         Fix bug in test.
4803
4804         * test/data/valid-messages/recursive-types.message:
4805         Fix up and extend test.
4806
4807 2003-04-10  Havoc Pennington  <hp@pobox.com>
4808
4809         * bus/dispatch.c: lots of fixes
4810
4811         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4812         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4813         that was crack, broke the test service.
4814
4815         * dbus/dbus-transport.c (_dbus_transport_open): fix error
4816         handling to avoid piling up errors if we get a failure on the
4817         first address.
4818
4819         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4820         pid in assertion failures.
4821
4822         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4823         to some fixed size of file descriptor array. Don't return TRUE
4824         anytime a timeout exists, that led to lots of busy loop silliness
4825         in the tests.
4826
4827 2003-04-09  Havoc Pennington  <hp@redhat.com>
4828
4829         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4830         I'd checked this in earlier but hadn't.
4831
4832 2003-04-09  Havoc Pennington  <hp@redhat.com>
4833
4834         * bus/dispatch.c (bus_dispatch_test): get a bit further through
4835         the activation test (man this is getting old!)
4836
4837 2003-04-09  Havoc Pennington  <hp@redhat.com>
4838
4839         * test/test-utils.c: use dispatch status function to fix this up
4840
4841         * bus/connection.c (connection_watch_callback): don't dispatch
4842         from here
4843         (connection_timeout_callback): don't dispatch from here
4844         (bus_connections_setup_connection): set the dispatch status function
4845         (bus_connection_disconnected): unset it
4846
4847         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4848         used to add a connection to be dispatched
4849         (_dbus_loop_iterate): do the dispatching at the end of each
4850         iteration
4851
4852         * dbus/dbus-connection.c
4853         (dbus_connection_set_dispatch_status_function): new function
4854         allowing us to fix up main loop usage
4855         (_dbus_connection_last_unref): free all the various function
4856         user data
4857         (dbus_connection_dispatch): call the DispatchStatusFunction
4858         whenever this function returns
4859         (dbus_connection_handle_watch): call DispatchStatusFunction
4860         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4861         (reply_handler_timeout): call DispatchStatusFunction
4862         (dbus_connection_flush): call DispatchStatusFunction
4863
4864 2003-04-09  Havoc Pennington  <hp@redhat.com>
4865
4866         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4867         a memory leak
4868
4869         * bus/dispatch.c (check_service_activated): fix bug in test
4870
4871         * dbus/dbus-mainloop.c (check_timeout): fix this up
4872
4873         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4874         verbose output so we can sort out output from different processes,
4875         e.g. in the activation case.
4876
4877 2003-04-08  Colin Walters  <walters@gnu.org>
4878
4879         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4880         the pid file.
4881         (bus_context_new): Set it.
4882         (bus_context_unref): Use it to delete the pid file.
4883
4884 2003-04-08  Havoc Pennington  <hp@redhat.com>
4885
4886         * test/data/invalid-messages/array-with-mixed-types.message:
4887         regression test that fails for the moment
4888
4889         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4890         tests for convenience
4891
4892         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4893         array of nil, it broke things.
4894
4895         * test/data/invalid-messages/array-of-nil.message: regression test
4896
4897         * test/data/valid-messages/array-of-array-of-uint32.message:
4898         happened to write this so added it to suite
4899
4900 2003-04-08  Havoc Pennington  <hp@redhat.com>
4901
4902         * bus/driver.c (bus_driver_handle_acquire_service): init
4903         retval/reply before checking name
4904
4905         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4906         recursion depth argument
4907
4908         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4909         in the public struct for future extension
4910
4911         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4912         typo
4913
4914         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4915         message
4916
4917         * doc/dbus-specification.sgml: fix typo
4918
4919 2003-04-08  Alexander Larsson  <alexl@redhat.com>
4920
4921         Implemented recursive types, named types and new-style iters
4922
4923         * bus/driver.c:
4924         * glib/test-thread-client.c: (thread_func):
4925         * glib/test-thread-server.c: (handle_test_message):
4926         * test/test-service.c: (handle_echo):
4927         Update to new api
4928
4929         * dbus/Makefile.am:
4930         * dbus/dbus-dict.c:
4931         * dbus/dbus-dict.h:
4932         * dbus/dbus.h
4933         Remove DBusDict
4934
4935         * dbus/dbus-internals.c: (_dbus_type_to_string):
4936         Update for new types.
4937
4938         * dbus/dbus-marshal.[ch]:
4939         Implement recursive types and the new marshalling format.
4940         Remove hardcoded dict marshalling.
4941         Marshal named types.
4942
4943         * dbus/dbus-message-builder.c:
4944         Add BYTE_ARRAY.
4945         Remove references to old types
4946
4947         * dbus/dbus-message.[ch]:
4948         New non-refcounted iter API that supports recursive iters.
4949         Use iters for appending, including support for recursive
4950         iters.
4951         Add byte and named type support.
4952         Update everything to new marshalling formats.
4953         Add tests for new API.
4954
4955         * dbus/dbus-protocol.h:
4956         Remove old array types.
4957         Add types: BYTE, ARRAY, DICT, NAMED
4958
4959         * dbus/dbus-string.c:
4960         * dbus/dbus-sysdeps.c:
4961         Make parse_double locale safe.
4962
4963         * dbus/dbus-test-main.c:
4964         Call setlocale.
4965
4966         * dbus/dbus-test.c:
4967         Kill dict test
4968
4969         * doc/dbus-specification.sgml:
4970         Update spec
4971
4972         * test/data/incomplete-messages/missing-body.message:
4973         * test/data/invalid-messages/bad-boolean.message:
4974         * test/data/invalid-messages/bad-boolean-array.message:
4975         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4976         * test/data/invalid-messages/boolean-has-no-value.message-raw:
4977         * test/data/invalid-messages/too-short-dict.message:
4978         * test/data/valid-messages/dict-simple.message:
4979         * test/data/valid-messages/dict.message:
4980         * test/data/valid-messages/emptiness.message:
4981         * test/data/valid-messages/lots-of-arguments.message:
4982         * test/data/valid-messages/no-padding.message:
4983         * test/data/valid-messages/recursive-types.message:
4984         Add missing NAME fields
4985         Fix up dicts & arrays
4986
4987         * test/data/invalid-messages/dict-with-nil-value.message:
4988         Removed, this is not invalid anymore.
4989
4990         * test/data/valid-messages/recursive-types.message:
4991         Add new test for deeply recursive types.
4992
4993 2003-04-07  Havoc Pennington  <hp@pobox.com>
4994
4995         * bus/driver.c (bus_driver_handle_acquire_service): return an
4996         error if you try to acquire a service that starts with ':'
4997
4998 2003-04-07  Havoc Pennington  <hp@redhat.com>
4999
5000         * doc/dbus-specification.sgml: require that base service names
5001         start with ':' and that the base service is created/deleted
5002         as first and last things a connection does on the bus
5003
5004         * bus/dispatch.c (check_existent_service_activation): lots more
5005         work on the activation test; it doesn't fully pass yet...
5006
5007         * test/test-service.c (main): fix so we don't memleak the
5008         connection to the message bus
5009         (filter_func): accept a message asking us to exit
5010
5011 2003-04-06  Havoc Pennington  <hp@pobox.com>
5012
5013         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
5014         from Colin Walters
5015
5016         * configure.in: fixes to Qt detection from Colin Walters
5017
5018         * doc/Makefile.am: Only remove generated docbook dirs if they
5019         exist, from Colin Walters
5020
5021         * dbus/dbus-bus.c: change how we set well-known connections to
5022         NULL, so that it works if a single connection is stored in
5023         two well-known array slots.
5024
5025         * test/Makefile.am: remove a lot of stuff that isn't immediately
5026         useful, it's in CVS history if we want it.
5027
5028         * test/test-service.c: use dbus-mainloop instead of that
5029         watch.[hc] crack
5030
5031 2003-04-06  Havoc Pennington  <hp@pobox.com>
5032
5033         * dbus/Makefile.am: split lists of sources into stuff that goes in
5034         the library, util functions that go in the lib and are also used
5035         elsewhere, and util functions that are used in tests/daemon but
5036         don't go in the lib.
5037
5038         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
5039         here so it can be used in test binaries also
5040
5041 2003-04-06  Havoc Pennington  <hp@pobox.com>
5042
5043         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
5044         here in the parent process, so we can return an error if it
5045         fails. Also, move some of the code into the child so the parent
5046         is less hosed if we fail midway through.
5047
5048         * bus/bus.c (bus_context_new): move pidfile detection further up
5049         in the function, before we start overwriting sockets and such.
5050
5051         * bus/messagebus.in: adjust this a bit, not sure if it will work.
5052
5053         * configure.in: add --with-system-pid-file and --with-system-socket
5054
5055 2003-04-06  Colin Walters  <walters@verbum.org>
5056
5057         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
5058
5059         * bus/system.conf.in: Declare a pidfile.
5060
5061         * bus/bus.c (bus_context_new): Test for an existing pid file, and
5062         create one (if appropriate).
5063
5064         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
5065         (struct BusConfigParser) [pidfile]: New.
5066         (element_type_to_name, merge_included, start_busconfig_child)
5067         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
5068         (bus_config_parser_unref): Free it.
5069         (bus_config_parser_get_pidfile): New function.
5070
5071         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
5072
5073         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
5074
5075         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
5076
5077         * dbus/dbus-sysdeps.h: Prototype it.
5078
5079 2003-04-06  Havoc Pennington  <hp@pobox.com>
5080
5081         * bus/bus.c (bus_context_new): print the address in here, rather
5082         than in main(), because we need to do it before forking the daemon
5083
5084         * bus/dispatch.c (send_service_nonexistent_error): set the sender
5085         on the service nonexistent error
5086
5087         * bus/driver.c (bus_driver_handle_acquire_service): set the
5088         sender on the AcquireService reply
5089
5090         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
5091         server also listen on a UNIX socket so services can connect to it.
5092
5093 2003-04-06  Havoc Pennington  <hp@pobox.com>
5094
5095         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
5096         so it detects deadlocks and also we actually init threads when
5097         debugging.
5098
5099 2003-04-06  Havoc Pennington  <hp@pobox.com>
5100
5101         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
5102         save the domain socket name, and unlink it when we disconnect the
5103         server. Means that at least when we exit normally, we won't leave
5104         a bunch of junk in /tmp
5105
5106         * dbus/dbus-transport-unix.c
5107         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
5108         memory management). (I was making a real change here but then
5109         didn't)
5110
5111 2003-04-06  Havoc Pennington  <hp@pobox.com>
5112
5113         * bus/bus.c (bus_context_new): fix wrong handling of
5114         server_data_slot_unref() in the error case.
5115
5116         * dbus/dbus-internals.h (_dbus_assert): change so it passes
5117         "(condition) != 0" to _dbus_real_assert so that
5118         "_dbus_assert (pointer)" doesn't cause a warning
5119
5120         * bus/main.c (main): accept --print-address option to print out
5121         the message bus address
5122
5123         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
5124
5125         * dbus/dbus-transport.c (_dbus_transport_open): special error for
5126         "tmpdir" option to unix: address on client side
5127
5128         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
5129         to unix: address
5130
5131         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
5132         we can use to create sockets in the test suite.
5133
5134         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
5135         cleanly. To be used for testing.
5136
5137         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
5138
5139         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
5140
5141         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5142         handle trying to call this when there's no servers active
5143
5144 2003-04-05  Havoc Pennington  <hp@pobox.com>
5145
5146         * NEWS: update
5147
5148         * configure.in: 0.8
5149
5150 2003-04-05  Havoc Pennington  <hp@pobox.com>
5151
5152         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
5153         crash on startup. Need to get "try starting the daemon"
5154         in the test suite I guess. ;-)
5155
5156         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
5157         tracked the number of open connections; it's better done in
5158         application-specific code as you want it to span all servers etc.
5159
5160 2003-04-05  Havoc Pennington  <hp@pobox.com>
5161
5162         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
5163         patch from Colin Walters
5164
5165 2003-04-05  Havoc Pennington  <hp@pobox.com>
5166
5167         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
5168         reality; in fact multiple mechanisms are allowed.
5169
5170         * dbus/dbus-internals.c (_dbus_real_assert)
5171         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
5172         _dbus_assert_not_reached() into functions, so that they don't show
5173         up in basic block counts for test coverage, and don't use up as
5174         much disk space. Does mean slower execution speed though, so
5175         assumes --disable-asserts is the normal production case.
5176
5177 2003-04-05  Havoc Pennington  <hp@pobox.com>
5178
5179         * test/Makefile.am (dist-hook): also dist *.in files
5180
5181         * NEWS: update
5182
5183         * configure.in: 0.7
5184
5185 2003-04-05  Havoc Pennington  <hp@pobox.com>
5186
5187         * dbus/dbus-string.c: docs warning
5188
5189         * dbus/dbus-spawn.c: missing docs
5190
5191         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
5192
5193 2003-04-05  Havoc Pennington  <hp@pobox.com>
5194
5195         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
5196         magic from GLib
5197
5198         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
5199         to -1 once we've reaped the babysitter
5200         (_dbus_babysitter_handle_watch): do as much work as we can, not
5201         just one go of it
5202
5203         * bus/activation.c: add code using DBusBabysitter so that we
5204         handle it when a service fails to start up properly.
5205         (bus_activation_service_created): don't remove the activation
5206         entries as we go, just let them get removed when we free the pending
5207         activation. Unref reply messages after sending them.
5208
5209 2003-04-05  Havoc Pennington  <hp@pobox.com>
5210
5211         * test/decode-gcov.c (main): print per-directory stats in the report
5212
5213         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
5214
5215 2003-04-05  Havoc Pennington  <hp@pobox.com>
5216
5217         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
5218
5219         * test/decode-gcov.c: hack up a little program to suck data
5220         out of gcov files. Yes this is sort of silly.
5221
5222         * configure.in: define something in config.h and do an
5223         AM_CONDITIONAL when gcov is enabled
5224
5225 2003-04-04  Havoc Pennington  <hp@redhat.com>
5226
5227         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
5228         return a "babysitter" object that is used to monitor the status of
5229         the spawned process and reap it when required.
5230
5231         * test/test-segfault.c, test/test-exit.c,
5232         test/test-sleep-forever.c: binaries that do various lame things,
5233         used in the test suite.
5234
5235         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
5236
5237 2003-04-03  Havoc Pennington  <hp@pobox.com>
5238
5239         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
5240         in preparation for modifying it, dbus-sysdeps is getting
5241         a bit unmanageable.
5242
5243 2003-04-03  Havoc Pennington  <hp@redhat.com>
5244
5245         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
5246         have multiple ones
5247
5248         * bus/*.[hc]: adapt to mainloop change
5249
5250 2003-04-03  Havoc Pennington  <hp@redhat.com>
5251
5252         * bus/activation.c (load_directory): fix up memleaks
5253         (bus_activation_entry_free): free the entry
5254
5255         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
5256         we get one from the message bus; fix memleaks.
5257
5258         * dbus/dbus-message.c (dbus_set_error_from_message): new function
5259
5260 2003-04-03  Havoc Pennington  <hp@pobox.com>
5261
5262         * bus/config-parser.c (bus_config_parser_unref): free
5263         list of mechanisms, bug discovered by test suite enhancements
5264         (putting system.conf and session.conf into suite)
5265
5266         * test/Makefile.am, test/test-service.c: add placeholder for a
5267         test service that we'll activate as part of test suite. Doesn't
5268         do anything yet.
5269
5270         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
5271         setting NULL value, and use system malloc not dbus_malloc()
5272         when we have unavoidable memleakage.
5273
5274         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
5275         didn't work, and support DBUS_BUS_ACTIVATION.
5276
5277         * bus/activation.c (child_setup): pass our well-known bus type to
5278         the child
5279
5280         * bus/config-parser.c: support <type> to specify well-known type
5281
5282         * doc/dbus-specification.sgml: document the env variables to
5283         locate well-known buses and find service activator
5284
5285 2003-04-02  Havoc Pennington  <hp@redhat.com>
5286
5287         * test/Makefile.am (all-local): add a rule to copy tests to
5288         builddir, so we can have generated tests. Use this to remove the
5289         silly hack for testing system.conf and session.conf. Will use this
5290         shortly to generate .service files pointing to test binaries.
5291
5292 2003-04-02  Havoc Pennington  <hp@redhat.com>
5293
5294         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
5295         current alloc and needed new length, not max of the doubled
5296         allocation and needed new length. Also, when building tests,
5297         don't do the double-allocation stuff, just realloc every time.
5298
5299 2003-04-02  Havoc Pennington  <hp@redhat.com>
5300
5301         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
5302         in error messages
5303         (_dbus_string_get_dirname): new
5304         (_dbus_sysdeps_test): new
5305         (_dbus_directory_open): include dirnames in error messages
5306
5307         * bus/config-parser.c: interpret <include> and <includedir> and
5308         <servicedir> relative to config file location if the given
5309         filename is not absolute.
5310
5311         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
5312
5313 2003-04-02  Havoc Pennington  <hp@redhat.com>
5314
5315         * bus/connection.c (bus_transaction_send_error_reply): set sender
5316         service for the error, and unref the reply on success
5317
5318         * bus/activation.c: convert to use BusTransaction so OOM can be
5319         handled correctly
5320         (bus_activation_service_created): set sender of the message
5321
5322 2003-04-01  Havoc Pennington  <hp@redhat.com>
5323
5324         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
5325         <includedir> (at least mostly)
5326
5327         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
5328         first, then the user ID
5329
5330 2003-04-01  Havoc Pennington  <hp@pobox.com>
5331
5332         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
5333         function
5334
5335         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
5336
5337         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
5338
5339         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
5340         socket 0777, and unlink any existing socket.
5341
5342         * bus/bus.c (bus_context_new): change our UID/GID and fork if
5343         the configuration file so specifies; set up auth mechanism
5344         restrictions
5345
5346         * bus/config-parser.c (bus_config_parser_content): add support
5347         for <fork> option and fill in code for <auth>
5348
5349         * bus/system.conf.in: add <fork/> to default configuration,
5350         and limit auth mechanisms to EXTERNAL
5351
5352         * doc/config-file.txt (Elements): add <fork>
5353
5354         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
5355         (_dbus_change_identity): new function
5356
5357 2003-03-31  Havoc Pennington  <hp@redhat.com>
5358
5359         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
5360         (_dbus_listen_unix_socket): fix off-by-one error in null
5361         termination spotted by Nalin
5362
5363 2003-03-31  Havoc Pennington  <hp@redhat.com>
5364
5365         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
5366         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
5367         having a real home directory available.
5368
5369 2003-03-31  Havoc Pennington  <hp@redhat.com>
5370
5371         * bus/Makefile.am (install-data-hook): create /var/run/dbus
5372
5373         * bus/messagebus.in: add init script for Red Hat /etc/init.d
5374
5375         * configure.in: add support for specifying a style of init script
5376         to install
5377
5378 2003-03-31  Havoc Pennington  <hp@redhat.com>
5379
5380         Fix some annoying DBusString API and fix all affected code.
5381
5382         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
5383         max_length argument
5384         (_dbus_string_get_data): change to return string instead of using
5385         an out param
5386         (_dbus_string_get_const_data): ditto
5387         (_dbus_string_get_data_len): ditto
5388         (_dbus_string_get_const_data_len): ditto
5389
5390 2003-03-31  Havoc Pennington  <hp@redhat.com>
5391
5392         * bus/main.c (main): fix up the command line arguments to be nicer
5393
5394 2003-03-31  Havoc Pennington  <hp@redhat.com>
5395
5396         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
5397         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
5398         final location that lands in the config file
5399
5400         * bus/config-loader-expat.c (bus_config_load): fix type of
5401         XML_Parser variable
5402
5403         * doc/TODO: remove TODO item for dbus_bus_get()
5404
5405         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
5406
5407 2003-03-31  Havoc Pennington  <hp@pobox.com>
5408
5409         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
5410         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
5411         argument since they are always client side
5412
5413         * dbus/dbus-server.c (dbus_server_get_address): new function
5414
5415         * bus/main.c (main): take the configuration file as an argument.
5416
5417         * test/data/valid-config-files/debug-allow-all.conf: new file to
5418         use with dispatch.c tests for example
5419
5420         * bus/test-main.c (main): require test data dir
5421
5422         * bus/bus.c (bus_context_new): change this to take a
5423         configuration file name as argument
5424
5425         * doc/config-file.txt (Elements): add <servicedir>
5426
5427         * bus/system.conf, bus/session.conf: new files
5428
5429         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
5430         well-known socket if none set
5431
5432         * configure.in: create system.conf and session.conf
5433
5434 2003-03-30  Havoc Pennington  <hp@pobox.com>
5435
5436         * bus/config-parser.c: hacking
5437
5438         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
5439         to shut down, since it could cause weirdness with the DBusList
5440         lock
5441
5442         * dbus/dbus-list.c (_dbus_list_test): add tests for the
5443         link-oriented stack routines
5444         (alloc_link): free the mempool if the first alloc from it fails
5445
5446         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
5447
5448         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
5449         from GLib
5450         (_dbus_string_skip_white): new
5451
5452         * doc/config-file.txt (Elements): add <includedir>
5453
5454 2003-03-28  Havoc Pennington  <hp@pobox.com>
5455
5456         * dbus/dbus-string.c (_dbus_string_copy_data_len)
5457         (_dbus_string_copy_data): new functions
5458
5459 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
5460
5461         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
5462         * dbus/dbus-bus.h:
5463         Add dbus_bus_get.
5464
5465         * dbus/dbus-memory.c:
5466         Fix a doc comment.
5467
5468 2003-03-28  Havoc Pennington  <hp@pobox.com>
5469
5470         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
5471         I think it may have just been superstition. Not sure.
5472
5473         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
5474         failures that were not being handled.
5475
5476         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
5477
5478         * dbus/dbus-memory.c: add ability to set number of mallocs in a
5479         row that will fail on out-of-memory.
5480
5481         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
5482         function for testing out-of-memory handling.
5483
5484         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
5485         allocation functions, they do map exactly to the expat ones.
5486
5487 2003-03-27  Havoc Pennington  <hp@redhat.com>
5488
5489         * bus/config-loader-libxml.c (bus_config_load): add another error
5490         check
5491
5492 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
5493
5494         * doc/TODO:
5495         Add note about automatic service activation.
5496
5497         * doc/dbus-specification.sgml:
5498         Rename the specification and clarify a few things.
5499
5500 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
5501
5502         * Doxyfile.in:
5503         * dbus/dbus-address.c:
5504         * dbus/dbus-dict.c:
5505         * dbus/dbus-marshal.c:
5506         * dbus/dbus-server-debug-pipe.c:
5507         * dbus/dbus-transport-unix.c:
5508         Fix documentation warnings.
5509
5510 2003-03-26  Havoc Pennington  <hp@pobox.com>
5511
5512         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
5513         after every test so it's quick and easy to see which leaked, and
5514         so we test multiple dbus_shutdown() calls
5515
5516         * configure.in: change configure.in XML stuff to also support
5517         expat
5518
5519         * config-loader-libxml.c: some hacking
5520
5521         * config-loader-expat.c: some hacking
5522
5523         * config-parser.c: some hacking, plus tests
5524
5525 2003-03-25  Havoc Pennington  <hp@redhat.com>
5526
5527         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
5528
5529         * configure.in: add --with-xml option to specify XML library,
5530         right now only libxml is supported.
5531
5532         * bus/config-loader-libxml.c, config-parser.c: sync some minor
5533         nonworking code between home and work, still just stubs
5534
5535 2003-03-24  Havoc Pennington  <hp@redhat.com>
5536
5537         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
5538         file
5539
5540         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
5541         NULL argument for "message" if the error is a well-known one,
5542         fill in a generic message in this case.
5543
5544         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
5545         favor of DBusError
5546
5547         * bus/test.c (bus_test_flush_bus): add
5548
5549         * bus/policy.c (bus_policy_test): test code stub
5550
5551 2003-03-24  Havoc Pennington  <hp@pobox.com>
5552
5553         * bus/connection.c (bus_connections_setup_connection): set up
5554         the "can this user connect" function, but it always returns
5555         TRUE until we have a config file parser so we can have a config
5556         file that allows connections.
5557
5558 2003-03-23  Havoc Pennington  <hp@pobox.com>
5559
5560         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
5561         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
5562         the mutex, so we can check for proper memory management
5563         and OOM handling.
5564
5565         * dbus/dbus-dataslot.c: remove the mutex from
5566         DBusDataSlotAllocator and lock it manually when using it,
5567         to simplify fitting it into the global slots framework.
5568
5569         * dbus/dbus-threads.c (init_static_locks): rework how we're
5570         handling global locks so they are easily shut down.
5571
5572         * bus/policy.c (bus_policy_append_rule): fix
5573
5574         * bus/test-main.c (main): check for memleaks
5575
5576         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
5577         test suite check for memleaks
5578
5579         * dbus/dbus-memory.c: add support in test mode for tracking
5580         number of outstanding blocks
5581
5582 2003-03-23  Havoc Pennington  <hp@pobox.com>
5583
5584         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
5585         policies code
5586
5587         * dbus/dbus-hash.h: add ULONG hash keys
5588
5589         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
5590         (_dbus_get_group_id): new function
5591
5592 2003-03-20  Havoc Pennington  <hp@redhat.com>
5593
5594         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
5595         new function
5596         (dbus_connection_get_unix_user): new function
5597
5598 2003-03-20  Havoc Pennington  <hp@pobox.com>
5599
5600         * bus/connection.c (bus_connection_send_oom_error): assert that
5601         message has a sender
5602         (connection_execute_transaction): ditto
5603         (bus_connection_preallocate_oom_error): fix to set the sender, and
5604         set recipient to the destination service, not the bus driver
5605
5606         * bus/policy.c: hacking
5607
5608         * dbus/dbus-message.c (dbus_message_service_is): new function
5609         (dbus_message_sender_is): new
5610
5611 2003-03-19  Havoc Pennington  <hp@redhat.com>
5612
5613         * bus/policy.c: start sketching code for policy restrictions on
5614         what connections can do.
5615
5616 2003-03-18  Havoc Pennington  <hp@redhat.com>
5617
5618         * doc/TODO: some notes on high-level todo items. Little nitpick
5619         stuff is all in @todo, so no need to add it here.
5620
5621         * doc/config-file.txt: some notes on how config file might look
5622
5623 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
5624
5625         * configure.in: 0.6
5626
5627         * NEWS: Update.
5628
5629 2003-03-17  Havoc Pennington  <hp@redhat.com>
5630
5631         * dbus/dbus-internals.h: add gcc attributes so that
5632         our printf-style functions warn on bad arguments to
5633         format
5634
5635         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
5636         format bug
5637
5638         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5639         printf format bug
5640
5641 2003-03-17  Havoc Pennington  <hp@redhat.com>
5642
5643         * bus/test-main.c (main): make it print something as it runs
5644         so make check doesn't look stuck
5645
5646         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5647         from CVS, now obsolete
5648
5649 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
5650
5651         * bus/dispatch.c: (bus_dispatch):
5652         Refetch the service name since it may have been reallocated
5653         when dbus_message_set_sender was called.
5654
5655         * dbus/dbus-sysdeps.c: (_dbus_accept):
5656         Add address and address length variables and use them to stop
5657         valgrind from complaining.
5658
5659 2003-03-17  Havoc Pennington  <hp@pobox.com>
5660
5661         All tests pass, no memleaks, no valgrind complaints.
5662
5663         * bus/test.c: refcount handler_slot
5664
5665         * bus/connection.c (bus_connections_new): refcount
5666         connection_data_slot
5667
5668         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5669         bytes so that auth scripts pass.
5670
5671         * bus/dispatch.c: init message_handler_slot so it gets allocated
5672         properly
5673
5674         * bus/dispatch.c (message_handler_slot_ref): fix memleak
5675
5676         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5677         dealloc server_pipe_hash when no longer used for benefit of
5678         leak checking
5679
5680         * dbus/dbus-auth.c (process_command): memleak fix
5681
5682         * bus/dispatch.c (check_hello_message): memleak fix
5683
5684 2003-03-16  Havoc Pennington  <hp@pobox.com>
5685
5686         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5687
5688 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
5689
5690         * bus/activation.c (bus_activation_activate_service): Append
5691         the pending activation entry to the list of pending activations.
5692
5693 2003-03-16  Havoc Pennington  <hp@pobox.com>
5694
5695         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5696         connections
5697
5698         * dbus/dbus-address.c (create_entry): fix OOM handling when
5699         failing to alloc entry->method
5700
5701 2003-03-16  Havoc Pennington  <hp@pobox.com>
5702
5703         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5704         the watch
5705
5706         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5707         add some missing dbus_set_result
5708
5709         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5710         alloc the DBusMessageHandler
5711
5712         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5713         the transport here, since we call this from the finalizer; it
5714         resulted in a double-finalize.
5715
5716         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5717         where we tried to use transport->connection that was NULL,
5718         happened when transport was disconnected early on due to OOM
5719
5720         * bus/*.c: adapt to handle OOM for watches/timeouts
5721
5722         * dbus/dbus-transport-unix.c: port to handle OOM during
5723         watch handling
5724
5725         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5726         reference to unused bytes instead of a copy
5727
5728         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5729         out of memory
5730
5731         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5732         FALSE on OOM
5733
5734         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5735         of memory
5736
5737 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5738
5739         * doc/dbus-specification.sgml:
5740         Document reply message for ActivateService.
5741
5742 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5743
5744         * bus/activation.c: (bus_pending_activation_entry_free),
5745         (bus_pending_activation_free), (bus_activation_new),
5746         (bus_activation_unref), (bus_activation_service_created),
5747         (bus_activation_activate_service):
5748         * bus/activation.h:
5749         * bus/bus.c: (bus_context_new):
5750         * bus/desktop-file.c: (new_section):
5751         * bus/driver.c: (bus_driver_send_service_deleted),
5752         (bus_driver_handle_activate_service):
5753         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5754         * bus/services.h:
5755         * dbus/dbus-connection.c:
5756         (dbus_connection_send_with_reply_and_block):
5757         * dbus/dbus-message.c: (dbus_message_append_args_valist):
5758         * dbus/dbus-protocol.h:
5759         Make activation work better. Now pending activations will be queued
5760         and the daemon won't try to activate services that are already registered.
5761
5762 2003-03-16  Havoc Pennington  <hp@pobox.com>
5763
5764         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5765         connection data
5766
5767         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5768         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5769
5770 2003-03-16  Havoc Pennington  <hp@pobox.com>
5771
5772         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5773         this. always run the test suite before commit...
5774
5775         * bus/*: adapt to DBusConnection API changes
5776
5777         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5778         requires renaming stuff to avoid dbus_connection_dispatch name
5779         conflict.
5780
5781         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5782         function
5783
5784         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5785         separate from _dbus_message_loader_return_buffer()
5786
5787         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5788         this, because it's now always broken to use; the number of
5789         messages in queue vs. the number still buffered by the message
5790         loader is undefined/meaningless. Should use
5791         dbus_connection_get_dispatch_state().
5792         (dbus_connection_dispatch): rename from
5793         dbus_connection_dispatch_message
5794
5795 2003-03-16  Havoc Pennington  <hp@pobox.com>
5796
5797         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5798         implementation
5799
5800 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5801
5802         * dbus/dbus-connection.c:
5803         (dbus_connection_send_with_reply_and_block):
5804         Decrease connection->n_incoming when removing an entry
5805         from the list.
5806         * dbus/dbus-dict.c: (dbus_dict_entry_free),
5807         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5808         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5809         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5810         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5811         (dbus_dict_get_byte_array):
5812         Handle NULL arrays and strings. Also add support for byte arrays.
5813
5814         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5815         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5816         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5817         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5818         (_dbus_demarshal_dict), (demarshal_and_validate_len),
5819         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5820         * dbus/dbus-marshal.h:
5821         Add support for marshalling and demarshalling empty arrays and strings.
5822
5823         * dbus/dbus-message.c: (dbus_message_append_args_valist),
5824         (dbus_message_append_string_array),
5825         (dbus_message_iter_get_boolean),
5826         (dbus_message_iter_get_boolean_array),
5827         (dbus_message_iter_get_int32_array),
5828         (dbus_message_iter_get_uint32_array),
5829         (dbus_message_iter_get_double_array),
5830         (dbus_message_iter_get_byte_array),
5831         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5832         (check_message_handling):
5833         Add support for getting empty arrays and dicts.
5834
5835         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5836         Don't do any validation at all for now, that's better than just checking
5837         for ASCII.
5838
5839         * test/data/valid-messages/emptiness.message:
5840         New test message with lots of empty arrays.
5841
5842 2003-03-16  Havoc Pennington  <hp@pobox.com>
5843
5844         * dbus/dbus-connection.c
5845         (_dbus_connection_queue_received_message_link): new function that
5846         can't fail due to OOM
5847
5848         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5849         new function pops a message together with a list link
5850         containing it.
5851
5852         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5853         message queuing functions to avoid needing to alloc memory
5854
5855 2003-03-16  Havoc Pennington  <hp@pobox.com>
5856
5857         Oops - test code was only testing failure of around 30 of the
5858         mallocs in the test path, but it turns out there are 500+
5859         mallocs. I believe this was due to misguided linking setup such
5860         that there was one copy of dbus_malloc etc. in the daemon and one
5861         in the shared lib, and only daemon mallocs were tested. In any
5862         case, the test case now tests all 500+ mallocs, and doesn't pass
5863         yet, though there are lots of fixes in this patch.
5864
5865         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5866         this so that it doesn't need to allocate memory, since it
5867         has no way of indicating failure due to OOM (and would be
5868         annoying if it did).
5869
5870         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5871
5872         * bus/Makefile.am: rearrange to create two self-contained
5873         libraries, to avoid having libraries with overlapping symbols.
5874         that was resulting in weirdness, e.g. I'm pretty sure there
5875         were two copies of global static variables.
5876
5877         * dbus/dbus-internals.c: move the malloc debug stuff to
5878         dbus-memory.c
5879
5880         * dbus/dbus-list.c (free_link): free list mempool if it becomes
5881         empty.
5882
5883         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5884
5885         * dbus/dbus-address.c (dbus_parse_address): free list nodes
5886         on failure.
5887
5888         * bus/dispatch.c (bus_dispatch_add_connection): free
5889         message_handler_slot when no longer using it, so
5890         memory leak checkers are happy for the test suite.
5891
5892         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5893
5894         * bus/bus.c (new_connection_callback): disconnect in here if
5895         bus_connections_setup_connection fails.
5896
5897         * bus/connection.c (bus_connections_unref): fix to free the
5898         connections
5899         (bus_connections_setup_connection): if this fails, don't
5900         disconnect the connection, just be sure there are no side
5901         effects.
5902
5903         * dbus/dbus-string.c (undo_alignment): unbreak this
5904
5905         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5906         leaking
5907         (_dbus_auth_new): fix the order in which we free strings
5908         on OOM failure
5909
5910         * bus/connection.c (bus_connection_disconnected): fix to
5911         not send ServiceDeleted multiple times in case of memory
5912         allocation failure
5913
5914         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5915         get the base service name
5916         (dbus_bus_register_client): don't return base service name,
5917         instead store it on the DBusConnection and have an accessor
5918         function for it.
5919         (dbus_bus_register_client): rename dbus_bus_register()
5920
5921         * bus/dispatch.c (check_hello_message): verify that other
5922         connections on the bus also got the correct results, not
5923         just the one sending hello
5924
5925 2003-03-15  Havoc Pennington  <hp@pobox.com>
5926
5927         Make it pass the Hello handling test including all OOM codepaths.
5928         Now to do other messages...
5929
5930         * bus/services.c (bus_service_remove_owner): fix crash when
5931         removing owner from an empty list of owners
5932         (bus_registry_ensure): don't leave service in the list of
5933         a connection's owned services if we fail to put the service
5934         in the hash table.
5935
5936         * bus/connection.c (bus_connection_preallocate_oom_error): set
5937         error flag on the OOM error.
5938
5939         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5940         handle _dbus_transport_set_connection failure
5941
5942         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5943         to create watches up front and simply enable/disable them as
5944         needed.
5945         (unix_connection_set): this can now fail on OOM
5946
5947         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5948         of enabling/disabling a watch or timeout.
5949
5950         * bus/loop.c (bus_loop_iterate): don't touch disabled
5951         watches/timeouts
5952
5953         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5954
5955 2003-03-15  Havoc Pennington  <hp@pobox.com>
5956
5957         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5958         write useful test code, after all that futzing around ;-)
5959
5960         Test does not yet pass because we can't handle OOM in
5961         _dbus_transport_messages_pending (basically,
5962         dbus_connection_preallocate_send() does not prealloc the write
5963         watch). To fix this, I think we need to add new stuff to
5964         set_watch_functions, namely a SetEnabled function so we can alloc
5965         the watch earlier, then enable it later.
5966
5967         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5968         dbus-memory.c to the convenience lib
5969
5970         * bus/test.c: rename some static functions to keep them clearly
5971         distinct from stuff in connection.c. Handle client disconnection.
5972
5973 2003-03-14  Havoc Pennington  <hp@pobox.com>
5974
5975         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5976         transport, tests more of the real codepath. Set up clients
5977         with bus_setup_debug_client.
5978
5979         * bus/test.c (bus_setup_debug_client): function to set up debug
5980         "clients" on the main loop
5981
5982         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5983         support
5984
5985         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5986         server type
5987
5988         * dbus/dbus-server-debug.c: support a debug server based on pipes
5989
5990         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5991         (_dbus_close): new function
5992
5993         * configure.in: check for socketpair
5994
5995 2003-03-14  Havoc Pennington  <hp@redhat.com>
5996
5997         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5998         cheesy hack
5999
6000         * dbus/dbus-transport-debug.c: rework this a good bit to be
6001         less complicated. hopefully still works.
6002
6003         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
6004         manually
6005
6006         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
6007         after running it
6008
6009         * dbus/dbus-message.c (dbus_message_copy): rename from
6010         dbus_message_new_from_message, fix it up to copy
6011         all the message fields, add test case
6012
6013         * bus/dispatch.c (bus_dispatch_test): add some more test code,
6014         not quite passing yet
6015
6016 2003-03-14  Havoc Pennington  <hp@pobox.com>
6017
6018         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
6019         until no work remains" in test code. (the large diff here
6020         is just code movement, no actual changes)
6021
6022         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
6023         1, no point waiting around for test code.
6024         (_dbus_server_debug_accept_transport): unref the timeout
6025         after adding it (right?)
6026
6027         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
6028
6029 2003-03-13  Havoc Pennington  <hp@redhat.com>
6030
6031         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
6032         out of memory
6033
6034         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
6035         of memory
6036
6037         * dbus/dbus-connection.h: Make AddWatchFunction and
6038         AddTimeoutFunction return a bool so they can fail on out-of-memory
6039
6040         * bus/bus.c (bus_context_new): set up timeout handlers
6041
6042         * bus/connection.c (bus_connections_setup_connection): set up
6043         timeout handlers
6044
6045         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
6046         can fail
6047
6048         * bus/bus.c (bus_context_new): adapt to changes
6049
6050         * bus/connection.c: adapt to changes
6051
6052         * test/watch.c: adapt to DBusWatch changes
6053
6054         * bus/dispatch.c (bus_dispatch_test): started adding this but
6055         didn't finish
6056
6057 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
6058
6059         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
6060
6061 2003-03-13  Havoc Pennington  <hp@pobox.com>
6062
6063         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
6064         set up a test framework as for the library
6065
6066 2003-03-12  Havoc Pennington  <hp@pobox.com>
6067
6068         Throughout: purge global variables, introduce BusActivation,
6069         BusConnections, BusRegistry, etc. objects instead.
6070
6071         * bus/bus.h, bus/bus.c: introduce BusContext as a global
6072         message bus object
6073
6074         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
6075         going to redo this a bit differently I think
6076
6077 2003-03-12  Havoc Pennington  <hp@redhat.com>
6078
6079         Mega-patch that gets the message bus daemon initially handling
6080         out-of-memory. Work still needed. Also lots of random
6081         moving stuff to DBusError instead of ResultCode.
6082
6083         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
6084
6085         * dbus/dbus-connection.c
6086         (dbus_connection_send_with_reply_and_block): use DBusError
6087
6088         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
6089         DBusResultCode
6090
6091         * dbus/dbus-connection.c (dbus_connection_send): drop the result
6092         code here, as the only failure possible is OOM.
6093
6094         * bus/connection.c (bus_connection_disconnect):
6095         rename bus_connection_disconnected as it's a notification only
6096
6097         * bus/driver.c (bus_driver_handle_acquire_service): don't free
6098         "name" on get_args failure, should be done by get_args;
6099         don't disconnect client for bad args, just return an error.
6100         (bus_driver_handle_service_exists): ditto
6101
6102         * bus/services.c (bus_services_list): NULL-terminate returned array
6103
6104         * bus/driver.c (bus_driver_send_service_lost)
6105         (bus_driver_send_service_acquired): send messages from driver to a
6106         specific client to the client's unique name, not to the broadcast
6107         service.
6108
6109         * dbus/dbus-message.c (decode_header_data): reject messages that
6110         contain no name field
6111         (_dbus_message_get_client_serial): rename to
6112         dbus_message_get_serial and make public
6113         (_dbus_message_set_serial): rename from set_client_serial
6114         (_dbus_message_set_reply_serial): make public
6115         (_dbus_message_get_reply_serial): make public
6116
6117         * bus/connection.c (bus_connection_foreach): allow stopping
6118         iteration by returning FALSE from foreach function.
6119
6120         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
6121         (dbus_connection_free_preallocated_send)
6122         (dbus_connection_preallocate_send): new API for sending a message
6123         without possibility of malloc failure.
6124         (dbus_connection_send_message): rename to just
6125         dbus_connection_send (and same for whole function family)
6126
6127         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
6128
6129         * dbus/dbus-sysdeps.c (_dbus_exit): new function
6130
6131         * bus/activation.c: handle/return errors
6132
6133         * dbus/dbus-errors.h: add more DBUS_ERROR #define
6134
6135         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
6136         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
6137         (_dbus_result_from_errno): move to this file
6138
6139 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
6140
6141         * dbus/dbus-marshal.c:
6142         (_dbus_marshal_set_string):
6143         Take a length argument so we can marshal the correct string
6144         length.
6145
6146         (_dbus_marshal_dict), (_dbus_demarshal_dict),
6147         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
6148         (_dbus_marshal_test):
6149         * dbus/dbus-marshal.h:
6150         Add support for marshalling and demarshalling dicts.
6151
6152         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6153         Add support for TYPE DICT.
6154
6155         * dbus/dbus-message.c: (set_string_field):
6156         Adjust header padding.
6157
6158         (dbus_message_append_args_valist), (dbus_message_append_dict),
6159         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
6160         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
6161         (check_message_handling), (check_have_valid_message):
6162         * dbus/dbus-message.h:
6163         Add functions for setting and getting dicts.
6164
6165         * dbus/dbus-protocol.h:
6166         Add DBUS_TYPE_DICT.
6167
6168         * dbus/dbus.h:
6169         Add dbus-dict.h
6170
6171         * doc/dbus-specification.sgml:
6172         Add information about how dicts are marshalled.
6173
6174         * test/data/invalid-messages/dict-with-nil-value.message:
6175         * test/data/invalid-messages/too-short-dict.message:
6176         * test/data/valid-messages/dict-simple.message:
6177         * test/data/valid-messages/dict.message:
6178         Add sample messages containing dicts.
6179
6180 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
6181
6182         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
6183
6184 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
6185
6186         * dbus/Makefile.am:
6187         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
6188         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
6189         (dbus_dict_set_int32), (dbus_dict_set_uint32),
6190         (dbus_dict_set_double), (dbus_dict_set_string),
6191         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
6192         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
6193         (dbus_dict_set_string_array), (_dbus_dict_test):
6194         * dbus/dbus-dict.h:
6195         Fix according to comments from Havoc.
6196
6197 2003-03-06  Michael Meeks  <michael@server.home>
6198
6199         * configure.in: if we don't have kde-config, disable have_qt.
6200
6201 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
6202
6203         * dbus/Makefile.am:
6204         Add dbus-dict.[ch]
6205
6206         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
6207         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
6208         (dbus_dict_remove), (dbus_dict_get_value_type),
6209         (dbus_dict_get_keys), (dbus_dict_put_boolean),
6210         (dbus_dict_put_int32), (dbus_dict_put_uint32),
6211         (dbus_dict_put_double), (dbus_dict_put_string),
6212         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
6213         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
6214         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
6215         (dbus_dict_get_int32), (dbus_dict_get_uint32),
6216         (dbus_dict_get_double), (dbus_dict_get_string),
6217         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
6218         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
6219         (dbus_dict_get_string_array), (_dbus_dict_test):
6220         * dbus/dbus-dict.h:
6221         Add DBusDict implementation
6222
6223         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
6224         * dbus/dbus-test.h:
6225         Add _dbus_dict_test
6226
6227 2003-03-04  Havoc Pennington  <hp@pobox.com>
6228
6229         * test/data/auth/*: adapt to changes
6230
6231         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
6232         USERID_BASE64 and change USERNAME_BASE64 to put in username not
6233         userid
6234
6235         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
6236         more stuff from being in a context name, to make the protocol
6237         simpler to deal with
6238
6239         * dbus/dbus-errors.c (dbus_error_has_name): new function
6240         (dbus_error_is_set): new function
6241
6242         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
6243         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
6244
6245         * dbus/dbus-connection.c (dbus_connection_flush): also read
6246         messages during a flush operation
6247
6248         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
6249
6250 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
6251
6252         * configure.in: Check for gethostbyname on Solaris.
6253
6254         * dbus/dbus-transport.c: (_dbus_transport_open):
6255         Remove duplicate "tcp" entry.
6256
6257         * doc/dbus-specification.sgml:
6258         Clarify some things.
6259
6260 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
6261
6262         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
6263         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
6264         (_dbus_keyring_test):
6265         * dbus/dbus-md5.c: (_dbus_md5_compute):
6266         * dbus/dbus-sha.c: (_dbus_sha_compute):
6267         Plug memory leaks.
6268
6269 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
6270
6271         * README: Add some things.
6272
6273 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
6274
6275         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
6276         after case DBUS_TYPE_BOOELAN.
6277
6278 2003-03-02  Havoc Pennington  <hp@pobox.com>
6279
6280         * test/break-loader.c (randomly_set_extreme_ints): add test that
6281         sets really huge and small integers
6282
6283         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
6284         that length of boolean array fits in the string, and that
6285         string has room for boolean value in single-bool case.
6286
6287         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
6288         optional value to "ALIGN" command which is what to fill the
6289         alignment with.
6290
6291         * test/data/valid-messages/no-padding.message: add regression
6292         test for the message padding problem
6293
6294 2003-03-02  Havoc Pennington  <hp@pobox.com>
6295
6296         * dbus/dbus-message.c (decode_header_data): fix to always init
6297         message_padding, from Benjamin Dauvergne
6298
6299 2003-03-02  Havoc Pennington  <hp@pobox.com>
6300
6301         * configure.in: 0.5
6302
6303         * NEWS: Update.
6304
6305 2003-03-01  Joe Shaw  <joe@assbarn.com>
6306
6307         * configure.in: Check for "struct cmsgcred" and try to access its
6308         members for BSD-like unices.
6309
6310         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
6311         _dbus_read_credentials_unix_socket().
6312         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
6313         read() for reading the credential byte off the unix socket.  Use
6314         struct cmsgcred on systems that support it.
6315
6316 2003-02-27  Alexander Larsson  <alexl@redhat.com>
6317
6318         * glib/Makefile.am:
6319         * configure.in:
6320         Make gthreads-2.0 dependency optional. Don't build thread test if
6321         its not found.
6322
6323 2003-02-27  Havoc Pennington  <hp@pobox.com>
6324
6325         * dbus/dbus-connection.c
6326         (dbus_connection_send_message_with_reply_and_block): fix doh!
6327         doh! doh! bug that resulted in never removing a reply from the
6328         queue, no wonder we called get_reply_serial so much ;-)
6329
6330         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
6331         and client serial instead of demarshaling them every time
6332
6333 2003-02-27  Havoc Pennington  <hp@pobox.com>
6334
6335         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
6336         more inlined, using dbus-string-private.h, speeds things up
6337         substantially
6338
6339         * dbus/dbus-string.c (_dbus_string_free): apply align offset
6340         when freeing the string
6341         (_dbus_string_steal_data): fix for align offset
6342         (undo_alignment): new function
6343
6344 2003-02-26  Havoc Pennington  <hp@redhat.com>
6345
6346         All kinds of audit fixes from Owen, plus initial attempt to
6347         handle unaligned memory returned from malloc.
6348
6349         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
6350         leave room for align_offset and nul byte
6351         (fixup_alignment): function to track an align_offset and
6352         ensure real->str is aligned
6353         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
6354         to allow a nul byte plus align offset
6355         (_dbus_string_lock): fix overflow issue
6356         (_dbus_string_init_const_len): add assertions on sanity of len,
6357         assign allocated to be ALLOCATION_PADDING larger than len
6358         (set_length): fixup the overflow handling
6359         (_dbus_string_get_data_len): fix overflow in assertion
6360         (open_gap): detect overflow in size of gap to be opened
6361         (_dbus_string_lengthen): add overflow check
6362         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
6363         (_dbus_string_append): add overflow check
6364         (_dbus_string_append_unichar): overflow
6365         (_dbus_string_delete): fix overflow in assertion
6366         (_dbus_string_copy_len): overflow in assertion
6367         (_dbus_string_replace_len): overflows in assertions
6368         (_dbus_string_find): change to implement in terms of
6369         _dbus_string_find_to
6370         (_dbus_string_find_to): assorted fixage
6371         (_dbus_string_equal_c_str): assert c_str != NULL,
6372         fix logic so the function works
6373         (_dbus_string_ends_with_c_str): fix overflow thingy
6374         (_dbus_string_base64_encode): overflow fix
6375         (_dbus_string_validate_ascii): overflow
6376         (_dbus_string_validate_nul): overflow
6377
6378 2003-02-26  Havoc Pennington  <hp@redhat.com>
6379
6380         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
6381
6382 2003-02-26  Alexander Larsson  <alexl@redhat.com>
6383
6384         * configure.in:
6385         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
6386
6387         * dbus/dbus-connection.c:
6388         * dbus/dbus-connection.h:
6389         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
6390         Add dbus_connection_set_wakeup_main_function and use it when queueing
6391         incoming and outgoing messages.
6392
6393
6394         * dbus/dbus-dataslot.c:
6395         Threadsafe usage of DBusDataSlotAllocator
6396
6397         * dbus/dbus-message.c: (dbus_message_get_args_iter):
6398         dbus_new can fail.
6399
6400         * dbus/dbus-server-unix.c:
6401         Add todo comment
6402
6403         * glib/dbus-gmain.c:
6404         Implement the new wakeup functions for glib.
6405
6406         * glib/Makefile.am:
6407         * glib/test-thread-client.c:
6408         * glib/test-thread-server.c:
6409         * glib/test-thread.h:
6410         Initial cut at some thread test code. Not really done yet.
6411
6412 2003-02-26  Havoc Pennington  <hp@pobox.com>
6413
6414         * dbus/dbus-connection.c
6415         (dbus_connection_send_message_with_reply_and_block): fix crash
6416         where we ref'd the outgoing message instead of the returned reply
6417
6418         * dbus/dbus-transport-unix.c (do_authentication): check read watch
6419         at the end of this function, so if we didn't need to read for
6420         authentication, we reinstall it for receiving messages
6421
6422         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
6423         a NULL sender for peer-to-peer case
6424
6425         * dbus/dbus-transport-unix.c (check_read_watch): handle
6426         !authenticated case correctly
6427
6428         * glib/dbus-gmain.c: add support for DBusServer
6429
6430         * dbus/dbus-server.c: add data slot support
6431
6432         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
6433         return values and handle errors
6434
6435         * dbus/dbus-dataslot.c: factor out the data slot stuff from
6436         DBusConnection
6437
6438         * Doxyfile.in (INPUT): add glib subdir
6439
6440         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
6441         setup_with_g_main instead of hookup_with_g_main; write docs
6442
6443 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
6444
6445         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
6446         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6447         * dbus/dbus-message.c: (dbus_message_append_boolean),
6448         (dbus_message_append_boolean_array),
6449         (dbus_message_get_args_valist), (_dbus_message_test):
6450         * dbus/dbus-message.h:
6451         * doc/dbus-specification.sgml:
6452         Various fixes as pointed out by Havoc.
6453
6454         * test/data/invalid-messages/bad-boolean-array.message:
6455         * test/data/invalid-messages/bad-boolean.message:
6456         Add invalid boolean value test cases.
6457
6458 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
6459
6460         * dbus/dbus-internals.c: (_dbus_type_to_string):
6461         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6462         (_dbus_marshal_validate_arg):
6463         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6464         * dbus/dbus-message.c: (dbus_message_append_args_valist),
6465         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
6466         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
6467         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
6468         (dbus_message_iter_get_double),
6469         (dbus_message_iter_get_boolean_array), (message_iter_test):
6470         * dbus/dbus-message.h:
6471         * dbus/dbus-protocol.h:
6472         * doc/dbus-specification.sgml:
6473         * test/data/valid-messages/lots-of-arguments.message:
6474         Add support for boolean and boolean array types.
6475
6476 2003-02-23  Havoc Pennington  <hp@pobox.com>
6477
6478         * dbus/dbus-keyring.c: finish most of this implementation and
6479         simple unit test
6480
6481         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
6482         these barf if the error isn't cleared to NULL
6483
6484         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
6485         (_dbus_create_directory): new function
6486
6487         * dbus/dbus-errors.c (dbus_set_error): fix warning
6488
6489         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
6490         (_dbus_string_hex_decode): new function
6491         (test_hex_roundtrip): test code
6492
6493         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
6494
6495         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
6496
6497         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
6498         the save-to-temp/rename trick to atomically write the new file
6499         (_dbus_string_parse_uint): new function
6500
6501 2003-02-22  Havoc Pennington  <hp@pobox.com>
6502
6503         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
6504
6505 2003-02-22  Havoc Pennington  <hp@pobox.com>
6506
6507         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
6508         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
6509
6510         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
6511
6512         * dbus/test/data/sha-1: add US government test suite for SHA-1
6513
6514 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6515
6516         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6517         Make string arrays NULL-terminated.
6518
6519         * dbus/dbus-memory.c: (dbus_free_string_array):
6520         * dbus/dbus-memory.h:
6521         New function for freeing NULL-terminated string arrays.
6522
6523         * dbus/dbus-message-builder.c: (append_quoted_string),
6524         (_dbus_message_data_load):
6525         Add support for array types.
6526
6527         * dbus/dbus-message.c: (check_message_handling):
6528         Add more types as test cases.
6529
6530         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
6531         (_dbus_string_parse_double):
6532         Add the start offset to the end offset.
6533
6534         * test/data/valid-messages/lots-of-arguments.message:
6535         New test message with lots of arguments.
6536
6537 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6538
6539         * dbus/dbus-message.c: (dbus_message_append_nil),
6540         (dbus_message_append_int32), (dbus_message_append_uint32),
6541         (dbus_message_append_double), (dbus_message_append_string),
6542         (dbus_message_append_int32_array),
6543         (dbus_message_append_uint32_array),
6544         (dbus_message_append_double_array),
6545         (dbus_message_append_byte_array),
6546         (dbus_message_append_string_array):
6547         Fix all out-of-memory handling in these functions.
6548
6549 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6550
6551         * dbus/dbus-message.c: (dbus_message_append_nil):
6552         Fix a silly.
6553
6554 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6555
6556         * dbus/dbus-message.c: (dbus_message_append_args_valist),
6557         (dbus_message_append_nil), (dbus_message_append_int32_array),
6558         (dbus_message_append_uint32_array),
6559         (dbus_message_append_double_array),
6560         (dbus_message_append_byte_array),
6561         (dbus_message_append_string_array), (dbus_message_get_args_valist),
6562         (dbus_message_iter_get_int32_array),
6563         (dbus_message_iter_get_uint32_array),
6564         (dbus_message_iter_get_double_array),
6565         (dbus_message_iter_get_byte_array),
6566         (dbus_message_iter_get_string_array):
6567
6568         * dbus/dbus-message.h:
6569         Add functions for appending and getting arrays.
6570
6571 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6572
6573         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
6574         element size at least 8 bytes, fixes mempool tests on
6575         64-bit machines.
6576
6577 2003-02-20  Alexander Larsson  <alexl@redhat.com>
6578
6579         * dbus/dbus-transport-unix.c (unix_do_iteration):
6580         Unlock the connection mutex during a blocking select call.
6581         Add todo about how we need a way to wake up the select.
6582
6583         * dbus/dbus-connection-internal.h:
6584         * dbus/dbus-connection.c:
6585         Add _dbus_connection_lock and _dbus_connection_unlock.
6586
6587 2003-02-19  Havoc Pennington  <hp@pobox.com>
6588
6589         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
6590         Doxyfile.in, not Doxyfile
6591
6592         * dbus/dbus-keyring.c: do some hacking on this
6593
6594         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
6595
6596         * dbus/dbus-errors.c (dbus_set_error_const): do not call
6597         dbus_error_init
6598         (dbus_set_error): remove dbus_error_init, check for message ==
6599         NULL *before* we sprintf into it, and add @todo about including
6600         system headers in this file
6601
6602         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
6603
6604         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
6605
6606         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
6607         get various bits of user information based on either username
6608         or user ID
6609         (_dbus_homedir_from_username): new function
6610
6611 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
6612
6613         * configure.in:
6614         Add check for nonposix getpwnam_r
6615
6616         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
6617         Align the pool element size to a sizeof (void *) boundary.
6618
6619         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
6620         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
6621         General Solaris fixes.
6622
6623         * test/data/valid-messages/simplest-manual.message:
6624         Explicitly state that we want little-endian packing.
6625
6626 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
6627
6628         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6629
6630         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
6631         Added to create a transport connecting using a tcp/ip socket.
6632
6633         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
6634         to a tcp socket at given host and port.
6635         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
6636         hostname and port.
6637
6638         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6639
6640         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6641         Added to create a server listening on a TCP/IP socket.
6642
6643 2003-02-19  Havoc Pennington  <hp@pobox.com>
6644
6645         Throughout: mop up all the Doxygen warnings and undocumented
6646         stuff.
6647
6648         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6649         to search any paths.
6650
6651         * dbus/dbus-threads.c: move global mutex initializers to
6652         dbus-internals.h, multiple prototypes was confusing doxygen
6653         besides being kind of ugly
6654
6655         * Doxyfile (PREDEFINED): have Doxygen define
6656         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6657         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6658         (do not abuse the feature! it's for stuff like the autogenerated
6659         macros in dbus-md5.c, not just for things you don't feel like
6660         documenting...)
6661
6662 2003-02-18  Havoc Pennington  <hp@pobox.com>
6663
6664         * dbus/dbus-string.c (_dbus_string_zero): new function
6665
6666         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6667         wrap it in some dbus-friendly API
6668
6669         * dbus/dbus-types.h: add 16-bit types
6670
6671 2003-02-18  Joe Shaw  <joe@assbarn.com>
6672
6673         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6674         credentials from our currently running process.
6675         (get_word): Fix a buglet where we were copying the entire length
6676         instead of relative to our position.
6677
6678         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6679         keys on the stack... it's 640k of data.
6680
6681         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6682         read the credentials byte off the socket, even if we don't have
6683         SO_PEERCRED.
6684         (_dbus_poll): Implement poll() using select() for systems which
6685         don't have it.
6686
6687         * glib/test-dbus-glib.c (main): Print out an error if no
6688         parameters are given.
6689
6690         * test/data/auth/fallback.auth-script: Added.  Tests that a client
6691         can fallback to a secondary auth mechanism if the first fails.
6692
6693 2003-02-18  Havoc Pennington  <hp@pobox.com>
6694
6695         * AUTHORS: add Alex
6696
6697 2003-02-17  Havoc Pennington  <hp@pobox.com>
6698
6699         * doc/dbus-specification.sgml: lots of cosmetic
6700         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6701         env variable to DBUS_BUS_ADDRESS, s/client/application/,
6702         s/server/bus/ (except in authentication section). Add a section
6703         "Message Bus Message Routing"
6704
6705 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
6706
6707         Release 0.4
6708
6709         * NEWS: Update
6710
6711 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6712
6713         * doc/dbus-specification.sgml:
6714         Specification updates.
6715
6716 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6717
6718         * bus/activation.c: (bus_activation_init), (child_setup),
6719         (bus_activation_activate_service):
6720         * bus/activation.h:
6721         * bus/main.c: (main):
6722         Set DBUS_ADDRESS environment variable.
6723
6724         * dbus/dbus-errors.c: (dbus_set_error):
6725         Don't use va_copy since that's a C99 feature.
6726
6727         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6728         (_dbus_spawn_async):
6729         * dbus/dbus-sysdeps.h:
6730         Add child_setup_func to _dbus_spawn_async.
6731
6732         * doc/dbus-specification.sgml:
6733         Update specification.
6734
6735         * test/spawn-test.c: (setup_func), (main):
6736         Fix test.
6737
6738 2003-02-17  Alexander Larsson  <alexl@redhat.com>
6739
6740         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6741         Added todo.
6742
6743 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6744
6745         * doc/.cvsignore:
6746         * doc/Makefile.am:
6747         * doc/dbus-test-plan.sgml:
6748         Add test plan document.
6749
6750         * test/Makefile.am:
6751         Fix distcheck.
6752
6753 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6754
6755         * dbus/dbus-message.c: (decode_header_data),
6756         (_dbus_message_loader_return_buffer):
6757         Set the header padding amount when loading a message.
6758
6759 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6760
6761         * bus/dispatch.c: (send_one_message):
6762         Only send broadcast messages to registered connections.
6763
6764         * dbus/dbus-message.c: (dbus_message_name_is):
6765         * dbus/dbus-message.h:
6766         New convenience function.
6767
6768         * dbus/dbus-transport-debug.c: (do_reading):
6769         Only dispatch one message per run.
6770
6771         * test/Makefile.am:
6772         * test/bus-test.c: (new_connection_callback), (die),
6773         (test_hello_client1_handler), (test_hello_client2_handler),
6774         (test_hello_replies), (main):
6775
6776         * test/bus-test-loop.[ch]:
6777         Add these.
6778
6779 2003-02-16  Havoc Pennington  <hp@pobox.com>
6780
6781         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6782         backward conditional
6783
6784 2003-02-16  Alexander Larsson  <alexl@redhat.com>
6785
6786         * dbus/dbus-connection.c:
6787         Implement sent_message_with_reply. (with_reply_and block is still
6788         busted).
6789         Made dispatch_message not lose message if OOM.
6790
6791         * dbus/dbus-errors.h:
6792         Add NoReply error (for reply timeouts).
6793
6794 2003-02-16  Alexander Larsson  <alexl@redhat.com>
6795
6796         * dbus/dbus-hash.c (_dbus_hash_table_unref):
6797         Actually free keys and values when destroying hashtable.
6798
6799 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6800
6801         * dbus/dbus-auth.c: (client_try_next_mechanism):
6802         Plug a leak.
6803
6804         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6805         Return TRUE if there's no thread implementation around.
6806
6807         * glib/dbus-gmain.c: (free_source),
6808         (dbus_connection_hookup_with_g_main):
6809         Make sure to remove the GSource when the connection is finalized.
6810
6811 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6812
6813         * bus/dispatch.c: (bus_dispatch_message_handler):
6814         * dbus/dbus-errors.h:
6815         Return an error if someone tries to send a message to a service
6816         that doesn't exist.
6817
6818 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6819
6820         * bus/activation.c: (load_directory), (bus_activation_init),
6821         (bus_activation_activate_service):
6822         * bus/activation.h:
6823         * bus/driver.c:
6824         (bus_driver_handle_activate_service), (bus_driver_handle_message):
6825         More work on the activation handling.
6826
6827         * dbus/dbus-errors.h:
6828         Add some error messages
6829
6830         * dbus/dbus-message.c: (dbus_message_new_error_reply):
6831         * dbus/dbus-message.h:
6832         New function that creates an error message.
6833
6834         * dbus/dbus-protocol.h:
6835         Add ACTIVATE_SERVER message.
6836
6837         * dbus/dbus-server-unix.c: (unix_handle_watch),
6838         (_dbus_server_new_for_domain_socket):
6839         Call _dbus_fd_set_close_on_exec.
6840
6841         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6842         (_dbus_spawn_async), (_dbus_disable_sigpipe),
6843         (_dbus_fd_set_close_on_exec):
6844         * dbus/dbus-sysdeps.h:
6845         Add _dbus_fd_set_close_on exec function. Also add function that checks
6846         that all open fds are set to close-on-exec and warns otherwise.
6847
6848         * dbus/dbus-transport-unix.c:
6849         (_dbus_transport_new_for_domain_socket):
6850         Call _dbus_fd_set_close_on_exec.
6851
6852 2003-02-16  Havoc Pennington  <hp@pobox.com>
6853
6854         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6855         allow people to avoid setting SIGPIPE to SIG_IGN
6856         (_dbus_connection_new_for_transport): disable SIGPIPE unless
6857         we've been asked not to
6858
6859 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6860
6861         * dbus/dbus-list.c: (_dbus_list_append_link),
6862         (_dbus_list_prepend_link):
6863         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6864         (dbus_realloc):
6865         Warning fixes.
6866
6867 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6868
6869         * bus/Makefile.am:
6870         * bus/activation.c: (bus_activation_entry_free),
6871         (add_desktop_file_entry), (load_directory), (bus_activation_init):
6872         * bus/activation.h:
6873         * bus/main.c: (main):
6874         Add simple activation support, doesn't work yet though.
6875
6876 2003-02-15   Zack Rusin  <zack@kde.org>
6877
6878         * qt/dbus-qthread.cpp:  small casting fix
6879
6880 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6881
6882         * dbus/dbus-errors.c: (dbus_set_error):
6883         * dbus/dbus-errors.h:
6884         Add a few errors and make dbus_set_error void.
6885
6886         * dbus/dbus-sysdeps.c:
6887         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6888         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6889         * dbus/dbus-sysdeps.h:
6890         Add _dbus_spawn_async.
6891
6892         * test/spawn-test.c: (main):
6893         Test for _dbus_spawn_async.
6894
6895 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6896
6897         * dbus/dbus-internals.h:
6898         Fix build without tests.
6899
6900         * dbus/dbus-list.c: (alloc_link):
6901         Fix a segfault when a malloc fails.
6902
6903         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6904         (dbus_malloc0), (dbus_realloc):
6905         Add support for malloc debugging.
6906
6907 2003-02-15  Alexander Larsson  <alexl@redhat.com>
6908
6909         * dbus/dbus-threads.c:
6910         * dbus/dbus-threads.h:
6911         Add condvars. Remove static mutext from API.
6912         Implement static mutexes by initializing them from threads_init.
6913
6914         * glib/dbus-gthread.c:
6915         * qt/dbus-qthread.cpp:
6916         Update with the thread api changes.
6917
6918
6919         * dbus/dbus-list.c:
6920         * dbus/dbus-list.h:
6921         Turn StaticMutex into normal mutex + init function.
6922         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6923         _dbus_list_append_link, _dbus_list_prepend_link
6924
6925
6926         * dbus/dbus-sysdeps.c:
6927         * dbus/dbus-sysdeps.h:
6928         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6929         _dbus_atomic_dec. Only slow fallback implementation at the moment.
6930
6931         * dbus/dbus-protocol.h:
6932         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6933
6934         * dbus/dbus-message.c:
6935         Make ref/unref atomic.
6936         Fix some docs.
6937
6938         * dbus/dbus-connection-internal.h:
6939         * dbus/dbus-connection.c:
6940         * dbus/dbus-connection.h:
6941         Make threadsafe.
6942         Change _peek to _borrow,_return & _steal_borrowed.
6943         Change disconnect callback to event.
6944         Make dbus_connection_dispatch_messages reentrant.
6945
6946         * dbus/dbus-transport.c:
6947         Don't ref the connection on calls to the transport
6948         implementation.
6949
6950         * dbus/dbus-message-handler.c:
6951         Make threadsafe.
6952
6953         * glib/dbus-gmain.c:
6954         Don't use peek_message anymore
6955
6956         * test/Makefile.am:
6957         * test/debug-thread.c:
6958         * test/debug-thread.h:
6959         Simple thread implementation that asserts() on deadlocks in
6960         single-threaded code.
6961
6962         * test/bus-test.c:
6963         (main) Call debug_threads_init.
6964
6965         * test/watch.c:
6966         Use disconnect message instead of disconnect callback.
6967
6968         * bus/connection.c:
6969         * bus/connection.h:
6970         Don't call dbus_connection_set_disconnect_function. Instead export
6971         bus_connection_disconnect.
6972
6973         * bus/dispatch.c:
6974         Call bus_connection_disconnect when we get a disconnected message.
6975
6976 2003-02-15  Havoc Pennington  <hp@pobox.com>
6977
6978         * dbus/dbus-message.c (dbus_message_new): fool around with the
6979         docs
6980
6981 2003-02-14  Havoc Pennington  <hp@pobox.com>
6982
6983         * dbus/dbus-mempool.c: fail if the debug functions so indicate
6984
6985         * dbus/dbus-memory.c: fail if the debug functions indicate we
6986         should
6987
6988         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6989         (_dbus_decrement_fail_alloc_counter): debug functions to
6990         simulate memory allocation failures
6991
6992 2003-02-14  Havoc Pennington  <hp@pobox.com>
6993
6994         * dbus/dbus-errors.h (struct DBusError): add a word of padding
6995         to DBusError
6996
6997 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6998
6999         * bus/driver.c: (bus_driver_handle_hello):
7000         * bus/driver.h:
7001         * bus/services.c: (bus_service_lookup):
7002         Reorder message sending so we get a more sane order.
7003
7004         * test/bus-test.c: (message_handler):
7005         Fix tyop.
7006
7007 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7008
7009         * bus/driver.c: (bus_driver_send_service_deleted),
7010         (bus_driver_send_service_created), (bus_driver_send_service_lost),
7011         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
7012         (bus_driver_send_welcome_message),
7013         (bus_driver_handle_list_services),
7014         (bus_driver_handle_acquire_service),
7015         (bus_driver_handle_service_exists):
7016         * dbus/dbus-bus.c: (dbus_bus_register_client),
7017         (dbus_bus_acquire_service), (dbus_bus_service_exists):
7018         * dbus/dbus-errors.c: (dbus_result_to_string):
7019         * dbus/dbus-errors.h:
7020         * dbus/dbus-message.c: (dbus_message_append_args),
7021         (dbus_message_append_args_valist), (dbus_message_get_args),
7022         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
7023         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
7024         (dbus_message_iter_get_byte_array),
7025         (dbus_message_iter_get_string_array), (message_iter_test),
7026         (check_message_handling), (_dbus_message_test):
7027         * dbus/dbus-message.h:
7028         * test/bus-test.c: (main):
7029         Change fields to arguments in messages, so that they won't be
7030         confused with header fields.
7031
7032         * glib/test-dbus-glib.c: (main):
7033         Remove append_fields from hello message.
7034
7035 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7036
7037         * dbus/dbus-errors.c:
7038         * dbus/dbus-message.c:
7039         * dbus/dbus-string.c:
7040         Documentation fixes.
7041
7042 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7043
7044         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
7045         (remove_timeout):
7046         Implement support for timeouts in dbus-glib.
7047
7048 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7049
7050         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7051         * dbus/dbus-message.c: (process_test_subdir):
7052         * test/break-loader.c: (find_breaks_based_on):
7053         Plug some memory leaks.
7054
7055 2003-02-13  Richard Hult  <rhult@codefactory.se>
7056
7057         * bus/main.c: Fix build.
7058
7059         * dbus/dbus-errors.h:
7060         * dbus/dbus-errors.c: Fix copyright for Anders.
7061
7062 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7063
7064         * bus/Makefile.am:
7065         Add utils.[ch]
7066
7067         * bus/connection.c: (bus_connection_foreach):
7068         Fix a warning.
7069
7070         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
7071         (unescape_string), (new_section), (parse_section_start),
7072         (parse_key_value), (report_error), (bus_desktop_file_load),
7073         (bus_desktop_file_get_string):
7074         * bus/desktop-file.h:
7075         Use DBusError for error reporting.
7076
7077         * bus/dispatch.c: (send_one_message),
7078         (bus_dispatch_message_handler):
7079         * bus/driver.c: (bus_driver_send_service_deleted),
7080         (bus_driver_send_service_created), (bus_driver_send_service_lost),
7081         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
7082         (bus_driver_send_welcome_message),
7083         (bus_driver_handle_list_services),
7084         (bus_driver_handle_acquire_service),
7085         (bus_driver_handle_service_exists):
7086         * bus/loop.c: (bus_loop_run):
7087         * bus/main.c:
7088         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
7089
7090         * bus/utils.c: (bus_wait_for_memory):
7091         * bus/utils.h:
7092         New files with general utility functions.
7093
7094         * dbus/dbus-internals.h:
7095         Remove _DBUS_HANDLE_OOM.
7096
7097 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7098
7099         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
7100         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
7101         * dbus/dbus-errors.h:
7102         Add DBusError structure.
7103
7104 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7105
7106         * test/data/valid-messages/standard-acquire-service.message:
7107         * test/data/valid-messages/standard-hello.message:
7108         * test/data/valid-messages/standard-list-services.message:
7109         * test/data/valid-messages/standard-service-exists.message:
7110         Add some standard messages.
7111
7112 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7113
7114         * bus/driver.c: (bus_driver_send_welcome_message),
7115         (bus_driver_handle_list_services),
7116         (bus_driver_handle_acquire_service),
7117         (bus_driver_handle_service_exists), (bus_driver_handle_message):
7118         Update for API changes in libdbus.
7119
7120         * dbus/dbus-message.c: (dbus_message_new_reply):
7121         * dbus/dbus-message.h:
7122         Remove the name argument. The spec states that replies shouldn't
7123         have a name.
7124
7125 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7126
7127         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
7128         (report_error), (bus_desktop_file_load), (lookup_section),
7129         (lookup_line), (bus_desktop_file_get_raw),
7130         (bus_desktop_file_get_string):
7131         * bus/desktop-file.h:
7132         Some fixes, and new functions for getting a key value from a section.
7133
7134 2003-02-13  Havoc Pennington  <hp@pobox.com>
7135
7136         * test/data/auth/fail-after-n-attempts.auth-script: new test
7137
7138         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
7139         reject the client.
7140
7141 2003-02-13  Havoc Pennington  <hp@pobox.com>
7142
7143         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
7144         dbus_credentials_match were backward
7145
7146         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
7147         NO_CREDENTIALS and ROOT_CREDENTIALS
7148
7149         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
7150         into here. Never process more commands after we've reached an
7151         end state; store further data as unused bytes.
7152
7153         * test/data/auth/*: add more auth tests
7154
7155         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
7156         command to match exact string and EXPECT_UNUSED to match unused
7157         bytes
7158
7159         * test/Makefile.am (dist-hook): fix to dist all the test stuff
7160
7161 2003-02-12  Havoc Pennington  <hp@pobox.com>
7162
7163         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
7164         \r off of popped lines
7165
7166         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
7167         scripts
7168
7169         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
7170         SEND, append \r\n
7171
7172 2003-02-12  Havoc Pennington  <hp@pobox.com>
7173
7174         * dbus/Makefile.am: remove break-loader from the build, since it
7175         moved.
7176
7177         * configure.in: add --enable-gcov to turn on coverage profiling
7178         flags and disable optimization
7179
7180 2003-02-10  Havoc Pennington  <hp@pobox.com>
7181
7182         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
7183         initial cut at test framework for DBusAuth from laptop.
7184         Doesn't quite work yet but it compiles and I need to get
7185         it off the 266mhz laptop. ;-)
7186
7187         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
7188         fix a memleak in error case
7189
7190 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
7191
7192         * bus/Makefile.am:
7193         * bus/desktop-file.c:
7194         * bus/desktop-file.h:
7195         Add a desktop file parser.
7196
7197 2003-02-11  Zack Rusin  <zack@kde.org>
7198
7199         * qt/message.[h|cpp]: sample implementation
7200         of the KDE wrapper for DBusMessage
7201
7202 2003-02-09  Zack Rusin  <zack@kde.org>
7203
7204         * test/bus-test.c: make_it_compile
7205         * doc/dbus-specification.sgml: minimal semantic fix
7206
7207 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
7208
7209         Release 0.3
7210
7211         * NEWS: Update
7212
7213 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
7214
7215         * dbus/Makefile.am:
7216         * dbus/dbus-break-loader.c:
7217         * test/Makefile.am:
7218         * test/break-loader.c:
7219         Move dbus-break-loader to test/ and rename it to break-loader.
7220
7221 2003-02-02  Havoc Pennington  <hp@pobox.com>
7222
7223         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
7224         for code to manage cookies in your home directory
7225
7226         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
7227
7228         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
7229         to authenticate, then disconnect the client.
7230
7231 2003-02-03  Alexander Larsson  <alexl@redhat.com>
7232
7233         * dbus/dbus-message.c (dbus_message_append_fields):
7234         Correct docs.
7235
7236 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7237
7238         * doc/dbus-specification.sgml:
7239         Update address format section.
7240
7241 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7242
7243         * test/Makefile.am:
7244         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
7245         (message_handler), (new_connection_callback), (loop_quit),
7246         (loop_run), (main):
7247         Add bus test.
7248
7249 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7250
7251         * bus/driver.c: (bus_driver_handle_service_exists):
7252         Simplify the code a bit.
7253
7254         * dbus/dbus-bus.c: (dbus_bus_service_exists):
7255         Fix a silly.
7256
7257 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7258
7259         * bus/Makefile.am:
7260         Add libdbus-daemon.la and link to it.
7261
7262 2003-02-01  James Willcox  <jwillcox@gnome.org>
7263
7264         * bus/driver.c: (bus_driver_handle_own_service):
7265         Actually include the service reply code in the message.
7266
7267 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7268
7269         * bus/driver.c: (bus_driver_handle_service_exists):
7270         Don't unref the incoming message.
7271
7272 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7273
7274         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
7275
7276 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7277
7278         * dbus/dbus-server.c: (dbus_server_listen):
7279         * dbus/dbus-transport.c: (_dbus_transport_open):
7280         ifdef out the calls to the debug transport and server.
7281
7282 2003-02-02  Alexander Larsson  <alexl@redhat.com>
7283
7284         * dbus/dbus-watch.c (dbus_watch_get_flags):
7285         Add note in the docs that ERROR or HANGUP won't be returned
7286         and are assumed always on.
7287
7288         * glib/dbus-gmain.c (add_watch):
7289         Always add IO_ERR | IO_HUP
7290
7291         * dbus/dbus-message.h:
7292         Add semicolon after dbus_message_iter_get_string_array().
7293         Makes qt code build again
7294
7295 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
7296
7297         * bus/driver.c: (create_unique_client_name),
7298         (bus_driver_handle_hello):
7299         Don't take a name, just use a numeric id to identify
7300         each client.
7301
7302         * dbus/Makefile.am:
7303         * dbus/dbus-bus.c: (dbus_bus_register_client),
7304         (dbus_bus_acquire_service), (dbus_bus_service_exists):
7305         * dbus/dbus-bus.h:
7306         Add new convenience functions for communicating with the bus.
7307
7308         * dbus/dbus-message.h:
7309
7310         * dbus/dbus-protocol.h:
7311         Fix a typo.
7312
7313 2003-02-01  Alexander Larsson  <alexl@redhat.com>
7314
7315         * dbus/dbus-message.c (dbus_message_append_fields):
7316         Add some more doc comments.
7317
7318 2003-02-01  Havoc Pennington  <hp@pobox.com>
7319
7320         * dbus/dbus-break-loader.c (randomly_modify_length): change
7321         a 4-byte value in the message as if it were a length
7322
7323         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
7324         execute bit on saved files
7325
7326 2003-02-01  Havoc Pennington  <hp@pobox.com>
7327
7328         * dbus/dbus-break-loader.c (main): new program to find messages
7329         that break the loader.
7330
7331         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
7332         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
7333
7334         * dbus/dbus-string.c (_dbus_string_set_byte): new
7335
7336 2003-01-31  Havoc Pennington  <hp@pobox.com>
7337
7338         * dbus/dbus-message.c: refactor the test code to be more general,
7339         in preparation for writing a "randomly permute test cases to
7340         try to break the loader" program.
7341
7342 2003-01-31  Havoc Pennington  <hp@pobox.com>
7343
7344         * doc/dbus-specification.sgml: work on the specification
7345
7346         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
7347         the protocol version of the message.
7348
7349         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
7350         no longer specifies that.
7351         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
7352         1/2/3/4)
7353
7354         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
7355         "break" for DBUS_TYPE_NIL, remove @todo
7356
7357 2003-01-31  Havoc Pennington  <hp@pobox.com>
7358
7359         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
7360         just set_is_error/get_is_error as this is a commonly-used
7361         function, and write docs.
7362
7363 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
7364
7365         * dbus/dbus-address.c: (dbus_address_entry_free):
7366         Free key and value lists.
7367
7368         * dbus/dbus-internals.c: (_dbus_type_to_string):
7369         Add the types we didn't have.
7370
7371         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
7372         (_dbus_marshal_validate_arg):
7373         Add NIL types.
7374
7375         * dbus/dbus-message.c: (dbus_message_set_sender):
7376         Remove todo about being able to set sender to NULL.
7377
7378         (dbus_message_set_is_error_reply),
7379         (dbus_message_get_is_error_reply):
7380         * dbus/dbus-message.h:
7381         New functions.
7382
7383         * dbus/dbus-protocol.h:
7384         Add error reply flag.
7385
7386         * test/data/valid-messages/opposite-endian.message:
7387         Add NIL type to test.
7388
7389 2003-01-31  Havoc Pennington  <hp@pobox.com>
7390
7391         * doc/dbus-specification.sgml: fully specify the header.  Add
7392         flags and major protocol version, and change header/body len to
7393         unsigned.
7394
7395         * dbus/dbus-message-builder.c (append_saved_length): append length
7396         as uint32
7397
7398         * dbus/dbus-message.c (dbus_message_create_header): change header
7399         length and body length to unsigned. Add the new fields from the
7400         spec
7401         (_dbus_message_loader_return_buffer): unsigned header/body len
7402
7403 2003-01-30  Havoc Pennington  <hp@pobox.com>
7404
7405         * dbus/dbus-auth.c: rework to use only REJECTED, no
7406         MECHANISMS
7407
7408         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
7409         use REJECTED, suggested by Mark McLoughlin
7410
7411 2003-01-30  Havoc Pennington  <hp@pobox.com>
7412
7413         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
7414         a better way to report errors here. e.g.  "unix address lacks
7415         path" or something. also "no such file" when the path doesn't
7416         exist, etc.
7417
7418         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
7419         leaking list nodes
7420         (dbus_parse_address): add @todo about documenting address format,
7421         and allowing , and ; to be escaped
7422
7423 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
7424
7425         * dbus/Makefile.am:
7426         Add dbus-address.[ch]
7427
7428         * dbus/dbus-address.c: (dbus_address_entry_free),
7429         (dbus_address_entries_free), (create_entry),
7430         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
7431         (dbus_parse_address), (_dbus_address_test):
7432         * dbus/dbus-address.h:
7433         New files for dealing with address parsing.
7434
7435         * dbus/dbus-connection.c:
7436         Document timeout functions.
7437
7438         * dbus/dbus-message.c:
7439         Document dbus_message_new_from_message.
7440
7441         * dbus/dbus-server-debug.c:
7442         Document.
7443
7444         * dbus/dbus-server.c: (dbus_server_listen):
7445         Parse address and use correct server implementation.
7446
7447         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
7448         * dbus/dbus-string.h:
7449         New function with test.
7450
7451         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
7452         * dbus/dbus-test.h:
7453         Add address tests.
7454
7455         * dbus/dbus-transport-debug.c:
7456         Document.
7457
7458         * dbus/dbus-transport.c: (_dbus_transport_open):
7459         Parse address and use correct transport implementation.
7460
7461 2003-01-30  Havoc Pennington  <hp@pobox.com>
7462
7463         * dbus/dbus-message.c: use message->byte_order instead of
7464         DBUS_COMPILER_BYTE_ORDER throughout.
7465         (dbus_message_create_header): pad header to align the
7466         start of the body of the message to 8-byte boundary
7467
7468         * dbus/dbus-marshal.h: make all the demarshalers take const
7469         DBusString arguments.
7470
7471         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
7472         validate message args here, so we don't have to do slow validation
7473         later, and so we catch bad messages as they are incoming. Also add
7474         better checks on header_len and body_len. Also fill in
7475         message->byte_order
7476
7477         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
7478         implemented properly)
7479         (_dbus_string_validate_nul): new function to check all-nul
7480
7481         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
7482         get_arg_end_pos and remove all validation
7483         (_dbus_marshal_validate_arg): actually do validation here.
7484
7485 2003-01-29  Havoc Pennington  <hp@pobox.com>
7486
7487         * dbus/dbus-message.c (check_message_handling): fix assertion
7488         failure on set_client_serial
7489
7490 2003-01-28  Havoc Pennington  <hp@pobox.com>
7491
7492         * dbus/dbus-server-debug.c: Add doc section comments
7493
7494         * dbus/dbus-transport-debug.c: add doc section comments
7495
7496 2003-01-28  Havoc Pennington  <hp@redhat.com>
7497
7498         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
7499         the reverse order from how I had it
7500         (_dbus_string_base64_encode): reverse encoding order. I was
7501         basically byteswapping everything during encoding.
7502
7503 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
7504
7505         * dbus/dbus-connection-internal.h:
7506         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
7507         (_dbus_connection_remove_timeout):
7508         Add functions for adding and removing timeouts.
7509
7510         * dbus/dbus-message.c: (dbus_message_new_from_message):
7511         Add new function that takes a message and creates an exact
7512         copy of it, but with the refcount set to 1.
7513         (check_message_handling):
7514         Fix build error.
7515
7516         * dbus/dbus-server-protected.h:
7517         * dbus/dbus-server.c: (_dbus_server_init_base),
7518         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
7519         (dbus_server_set_timeout_functions):
7520         (_dbus_server_remove_timeout):
7521         New functions so that a server can add and remove timeouts.
7522
7523         (dbus_server_listen):
7524         Add commented out call to dbus_server_debug_new.
7525
7526         * dbus/dbus-timeout.c: (_dbus_timeout_new):
7527         Actually set the handler, doh.
7528
7529         * dbus/dbus-transport.c: (_dbus_transport_open):
7530         Add commented out call to dbus_transport_debug_client_new.
7531
7532         * dbus/Makefile.am:
7533         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
7534
7535 2003-01-28  Havoc Pennington  <hp@pobox.com>
7536
7537         * dbus/dbus-message.c (check_message_handling): function to check
7538         on the loaded message, iterates over it etc.
7539
7540 2003-01-28  Havoc Pennington  <hp@pobox.com>
7541
7542         * test/Makefile.am (dist-hook): fix make distdir
7543
7544         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
7545
7546 2003-01-27  Havoc Pennington  <hp@pobox.com>
7547
7548         * dbus/dbus-mempool.c (time_for_size): replace printf with
7549         _dbus_verbose
7550
7551         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
7552         empty lines; fix the SAVE_LENGTH stuff to be
7553         START_LENGTH/END_LENGTH so it actually works; couple other
7554         bugfixes
7555
7556         * test/Makefile.am (dist-hook): add dist-hook for .message files
7557
7558         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
7559         can be constant or locked.
7560         (_dbus_string_free): allow freeing a const string as
7561         documented/intended
7562
7563         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
7564
7565         * dbus/dbus-test-main.c (main): take an argument which is the
7566         directory containing test data
7567
7568         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
7569         argument to this and load all the messages in test/data/
7570         checking that they can be loaded or not loaded as appropriate.
7571
7572 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
7573
7574         * bus/dispatch.c: (bus_dispatch_message_handler):
7575         Dispatch messages sent to services.
7576
7577         * bus/driver.c: (bus_driver_send_service_deleted),
7578         (bus_driver_send_service_created), (bus_driver_send_service_lost),
7579         (bus_driver_send_service_acquired):
7580         Add helper functions for sending service related messages.
7581
7582         (bus_driver_send_welcome_message):
7583         Send HELLO_REPLY instead of WELCOME.
7584
7585         (bus_driver_handle_list_services):
7586         Send LIST_SERVICES_REPLY instead of SERVICES.
7587
7588         (bus_driver_handle_own_service),
7589         (bus_driver_handle_service_exists):
7590         New message handlers.
7591
7592         (bus_driver_handle_message):
7593         Invoke new message handlers.
7594
7595         (bus_driver_remove_connection):
7596         Don't remove any services here since that's done automatically
7597         by bus_service_remove_owner now.
7598
7599         * bus/driver.h:
7600         New function signatures.
7601
7602         * bus/services.c: (bus_service_add_owner):
7603         Send ServiceAcquired message if we're the only primary owner.
7604
7605         (bus_service_remove_owner):
7606         Send ServiceAcquired/ServiceLost messages.
7607
7608         (bus_service_set_prohibit_replacement),
7609         (bus_service_get_prohibit_replacement):
7610         Functions for setting prohibit replacement.
7611
7612         (bus_service_has_owner):
7613         New function that checks if a connection is in the owner queue of
7614         a certain service.
7615
7616         * bus/services.h:
7617         Add new function signatures.
7618
7619         * dbus/dbus-list.c: (_dbus_list_test):
7620         Add tests for _dbus_list_remove_last and traversing the list backwards.
7621
7622         * dbus/dbus-list.h:
7623         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
7624         go any further, so return NULL then.
7625
7626         * dbus/dbus-protocol.h:
7627         Add new messages, service flags and service replies.
7628
7629 2003-01-26  Havoc Pennington  <hp@pobox.com>
7630
7631         * dbus/dbus-message-builder.c: implement, completely untested.
7632
7633         * test/data/*: add data to be used in testing.
7634         ".message" files are our simple loadable text format.
7635         ".message-raw" will be binary dumps of messages.
7636
7637         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
7638
7639 2003-01-26  Havoc Pennington  <hp@pobox.com>
7640
7641         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
7642
7643         * dbus/dbus-errors.c (dbus_result_to_string): add
7644         file errors
7645
7646         * dbus/dbus-message-builder.c: new file, will contain code to load
7647         up messages from files. Not implemented yet.
7648
7649 2003-01-26  Havoc Pennington  <hp@pobox.com>
7650
7651         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7652         the sender by setting to NULL
7653
7654 2003-01-26  Havoc Pennington  <hp@pobox.com>
7655
7656         The unit tests pass, but otherwise untested.  If it breaks, the
7657         tests should have been better. ;-)
7658
7659         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7660         the connection.
7661
7662         * dbus/dbus-message.c: redo everything so we maintain
7663         message->header as the only copy of the various fields.
7664         This avoids the possibility of out-of-memory in some cases,
7665         for example dbus_message_lock() can't run out of memory anymore,
7666         and avoids extra copying. Figured I may as well go ahead and do
7667         this since it was busted for dbus_message_lock to not return
7668         failure on OOM, and dbus_message_write_header was totally
7669         unchecked for OOM. Also fixed some random other bugs.
7670
7671         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7672         that strings are nul-terminated. Also, end_pos can be equal
7673         to string length just not greater than, I think.
7674         (_dbus_marshal_set_int32): new function
7675         (_dbus_marshal_set_uint32): new function
7676         (_dbus_marshal_set_string): new function
7677
7678         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7679         a warning, init timeout_list to NULL
7680         (dbus_connection_send_message): don't use uninitialized variable
7681         "serial"
7682
7683         * dbus/dbus-string.c (_dbus_string_replace_len): new function
7684
7685 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
7686
7687         * bus/driver.c: (bus_driver_handle_hello),
7688         (bus_driver_send_welcome_message):
7689         Plug leaks
7690
7691 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
7692
7693         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7694         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7695         (dbus_connection_unref):
7696         * dbus/dbus-marshal.c: (_dbus_marshal_test):
7697         * dbus/dbus-message.c: (dbus_message_unref),
7698         Plug memory leaks.
7699
7700         (dbus_message_get_fields):
7701         Remove debugging printout.
7702
7703         (_dbus_message_loader_return_buffer):
7704         Don't store the header string.
7705
7706         (_dbus_message_test):
7707         Plug leaks.
7708
7709 2003-01-26  Richard Hult  <rhult@codefactory.se>
7710
7711         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7712         the file descriptor list, since it can change under us.
7713
7714 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7715
7716         * glib/dbus-gmain.c: (dbus_connection_prepare),
7717         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7718         (remove_watch), (dbus_connection_hookup_with_g_main):
7719         Rewrite the glib handling to use its own GSource instead of a
7720         GIOChannel so we can catch messages put in the queue while waiting
7721         for a reply.
7722
7723 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7724
7725         * bus/Makefile.am:
7726         * bus/connection.c: (connection_disconnect_handler),
7727         (connection_watch_callback), (bus_connection_setup):
7728         * bus/dispatch.c: (send_one_message),
7729         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7730         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7731         * bus/dispatch.h:
7732         * bus/driver.c: (bus_driver_send_service_deleted),
7733         (bus_driver_send_service_created), (bus_driver_handle_hello),
7734         (bus_driver_send_welcome_message),
7735         (bus_driver_handle_list_services), (bus_driver_remove_connection),
7736         (bus_driver_handle_message):
7737         * bus/driver.h:
7738         Refactor code, put the message dispatching in its own file. Use
7739         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7740         is disconnected.
7741
7742 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7743
7744         * dbus/dbus-internals.h:
7745         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7746
7747         * dbus/dbus-message.c: (dbus_message_get_sender):
7748         * dbus/dbus-message.h:
7749         Implement dbus_message_get_sender.
7750
7751         * dbus/dbus-protocol.h:
7752         Add message and service defines.
7753
7754 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7755
7756         * dbus/dbus-connection.c: (dbus_connection_send_message):
7757         * dbus/dbus-message-internal.h:
7758         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7759         (dbus_message_write_header):
7760         Remove _dbus_messag_unlock and don't set the client serial on a
7761         message if one already exists.
7762
7763 2003-01-24  Havoc Pennington  <hp@pobox.com>
7764
7765         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7766         list_pool
7767
7768         * bus/driver.c (bus_driver_handle_list_services): fix a leak
7769         on OOM
7770
7771 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7772
7773         * dbus/dbus-list.c: (alloc_link), (free_link):
7774         Use a memory pool for the links.
7775
7776 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7777
7778         * bus/connection.c: (bus_connection_foreach):
7779         * bus/connection.h:
7780         Add new bus_connection_foreach function.
7781
7782         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7783         Add function that broadcasts a message to all clients.
7784
7785         (bus_driver_send_service_created), (bus_driver_handle_hello),
7786         (bus_driver_send_welcome_message),
7787         (bus_driver_handle_list_services), (bus_driver_message_handler):
7788         Implement functions that take care of listing services, and notifying
7789         clients when new services are created.
7790
7791         * bus/services.c: (bus_services_list):
7792         * bus/services.h:
7793         Add new function that returns an array of strings with the currently
7794         registered services.
7795
7796         * glib/dbus-glib.h:
7797         * glib/dbus-gmain.c:
7798         Update copyright year.
7799
7800 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7801
7802         * dbus/dbus-connection.c: (dbus_connection_send_message):
7803         Unlock the message in case it was sent earlier.
7804
7805         (dbus_connection_send_message_with_reply_and_block):
7806         Remove the reply message from the list.
7807
7808         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7809         Set array_len and new_pos correctly.
7810
7811         (_dbus_marshal_test):
7812         Remove debug output.
7813
7814         * dbus/dbus-message-internal.h:
7815         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7816         New function that returns the reply serial.
7817
7818         (_dbus_message_unlock):
7819         New function that unlocks a message and resets its header.
7820
7821         (dbus_message_append_string_array),
7822         (dbus_message_get_fields_valist),
7823         (dbus_message_iter_get_field_type),
7824         (dbus_message_iter_get_string_array),
7825         (dbus_message_get_fields),
7826         (dbus_message_append_fields_valist):
7827         Handle string arrays.
7828
7829         (dbus_message_set_sender):
7830         Make this function public since the bus daemon needs it.
7831
7832         (decode_header_data):
7833         Set the reply serial to -1 initially.
7834
7835         * dbus/dbus-message.h:
7836         Add dbus_message_set_sender.
7837
7838 2003-01-24  Havoc Pennington  <hp@pobox.com>
7839
7840         * doc/dbus-specification.sgml: add some stuff
7841
7842 2003-01-22  Havoc Pennington  <hp@pobox.com>
7843
7844         * doc/dbus-specification.sgml: Start to document the protocol.
7845
7846 2003-01-22  Havoc Pennington  <hp@pobox.com>
7847
7848         * dbus/dbus-connection.c
7849         (dbus_connection_send_message_with_reply_and_block): add some @todo
7850
7851         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7852
7853 2003-01-21  Havoc Pennington  <hp@pobox.com>
7854
7855         (patch untested because can't compile)
7856
7857         * bus/driver.c (create_unique_client_name): make this function
7858         never recycle client names. Also, caller should initialize
7859         the DBusString.
7860
7861         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7862
7863 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7864
7865         * dbus/dbus-marshal.c: (_dbus_marshal_double),
7866         (_dbus_marshal_int32), (_dbus_marshal_uint32),
7867         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7868         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7869         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7870         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7871         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7872         * dbus/dbus-marshal.h:
7873         * dbus/dbus-protocol.h:
7874         Add support for marshalling and demarshalling integer, double
7875         and string arrays.
7876
7877 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7878
7879         * bus/Makefile.am:
7880         Add driver.[ch]
7881
7882         * bus/connection.c: (connection_disconnect_handler):
7883         Remove the connection from the bus driver's list.
7884
7885         (connection_watch_callback): Dispatch messages.
7886
7887         (free_connection_data): Free connection name.
7888
7889         (bus_connection_setup): Add connection to the bus driver's list.
7890         (bus_connection_remove_owned_service):
7891         (bus_connection_set_name), (bus_connection_get_name):
7892         Add functions for setting and getting the connection's name.
7893
7894         * bus/connection.h:
7895         Add function headers.
7896
7897         * bus/driver.c: (create_unique_client_name),
7898         (bus_driver_handle_hello_message),
7899         (bus_driver_send_welcome_message), (bus_driver_message_handler),
7900         (bus_driver_add_connection), (bus_driver_remove_connection):
7901         * bus/driver.h:
7902         * bus/main.c:
7903         * bus/services.c: (bus_service_free):
7904         * bus/services.h:
7905         New file that handles communication and registreation with the bus
7906         itself.
7907
7908 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7909
7910         * dbus/dbus-connection.c: (dbus_connection_send_message):
7911         Add a new client_serial parameter.
7912
7913         (dbus_connection_send_message_with_reply):
7914         Remove a @todo since we've implemented the blocking function.
7915
7916         (dbus_connection_send_message_with_reply_and_block):
7917         New function that sends a message and waits for a reply and
7918         then returns the reply.
7919
7920         * dbus/dbus-connection.h:
7921         Add new functions.
7922
7923         * dbus/dbus-errors.c: (dbus_result_to_string):
7924         * dbus/dbus-errors.h:
7925         Add new DBUS_RESULT.
7926
7927         * dbus/dbus-message-internal.h:
7928         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7929         (_dbus_message_set_sender), (dbus_message_write_header),
7930         (dbus_message_new_reply), (decode_header_data),
7931         (_dbus_message_loader_return_buffer), (_dbus_message_test):
7932         * dbus/dbus-message.h:
7933         Add new functions that set the reply serial and sender.
7934         Also marshal and demarshal them correctly and add test.
7935
7936         * dbus/dbus-protocol.h:
7937         Add new DBUS_MESSAGE_TYPE_SENDER.
7938
7939         * glib/dbus-glib.h:
7940         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7941         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7942         (dbus_connection_hookup_with_g_main):
7943         * glib/test-dbus-glib.c: (main):
7944         Rewrite to use GIOChannel and remove the GSource crack.
7945
7946         * test/echo-client.c: (main):
7947         * test/watch.c: (check_messages):
7948         Update for changed APIs
7949
7950 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
7951
7952         * dbus/Makefile.am: Add dbus-timeout.[cħ]
7953
7954         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7955         Create a DBusTimeoutList.
7956         (dbus_connection_set_timeout_functions): Add new function to
7957         set timeout callbacks
7958
7959         * dbus/dbus-connection.h: Add public DBusTimeout API.
7960
7961         * dbus/dbus-message.c: (dbus_message_get_service):
7962         * dbus/dbus-message.h:  New function.
7963
7964         * dbus/dbus-server.c: Fix small doc typo.
7965
7966         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7967
7968 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
7969
7970         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7971         of the string, just as long as specified.
7972
7973 2003-01-19  Havoc Pennington  <hp@pobox.com>
7974
7975         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7976         new function
7977
7978         * dbus/dbus-server.c (dbus_server_set_max_connections)
7979         (dbus_server_get_max_connections, dbus_server_get_n_connections):
7980         keep track of current number of connections, and add API for
7981         setting a max (but haven't implemented enforcing the max yet)
7982
7983 2003-01-18  Havoc Pennington  <hp@pobox.com>
7984
7985         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7986         reading/writing if read_watch != NULL or write_watch != NULL.
7987
7988         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7989         the message loader code to actually load message->header and
7990         message->body into the newly-created message.
7991
7992         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7993         in OOM case
7994
7995         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7996         (dbus_connection_get_max_message_size)
7997         (dbus_connection_set_max_live_messages_size)
7998         (dbus_connection_get_max_live_messages_size): implement some
7999         resource limitation functions
8000
8001         * dbus/dbus-resources.c: new file implementing some of the
8002         resource limits stuff
8003
8004         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
8005         missing docs, add @todo to handle OOM etc.
8006
8007         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
8008         docs
8009
8010 2003-01-18  Havoc Pennington  <hp@pobox.com>
8011
8012         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
8013         connection if it hasn't been already.
8014
8015         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
8016         replace with DisconnectFunction.
8017
8018 2003-01-18  Havoc Pennington  <hp@pobox.com>
8019
8020         Building --disable-verbose-mode --disable-asserts --disable-tests
8021         cuts the library from 112K to 45K or so
8022
8023         * configure.in: check for varargs macro support,
8024         add --enable-verbose-mode, --enable-asserts.
8025
8026         * dbus/dbus-internals.h (_dbus_assert): support
8027         DBUS_DISABLE_ASSERT
8028         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
8029
8030 2003-01-18  Havoc Pennington  <hp@pobox.com>
8031
8032         * dbus/dbus-test.c: include config.h so that tests actually run
8033
8034         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
8035         so the failure mode when that assumption fails will be plenty
8036         obvious.
8037
8038 2003-01-18  Havoc Pennington  <hp@pobox.com>
8039
8040         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
8041
8042         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
8043         the distribution
8044
8045         * test/Makefile.am: don't use special variable "TESTS" for echo-*
8046         since we don't want to use those in make check
8047
8048 2003-01-15  Havoc Pennington  <hp@redhat.com>
8049
8050         Release 0.2
8051
8052         * NEWS: update
8053
8054 2003-01-15  Havoc Pennington  <hp@redhat.com>
8055
8056         * test/Makefile.am: fix so that test source code ends up in the
8057         distribution on make distcheck
8058
8059 2003-01-15  Havoc Pennington  <hp@redhat.com>
8060
8061         Release 0.1.
8062
8063         * NEWS: update
8064
8065 2003-01-15  Havoc Pennington  <hp@redhat.com>
8066
8067         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
8068         fix build when --disable-tests
8069
8070         * Makefile.am (EXTRA_DIST): put HACKING in here
8071
8072         * HACKING: document procedure for making a tarball release.
8073
8074 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
8075
8076         * bus/connection.c: (connection_error_handler),
8077         (bus_connection_setup):
8078         * bus/main.c: (main):
8079         Make sure that the DBusConnectionData struct is NULLed
8080         out to prevent a segfault.
8081
8082         * dbus/dbus-errors.c: (dbus_result_to_string):
8083         * dbus/dbus-errors.h:
8084         * dbus/dbus-message.c: (dbus_message_get_fields),
8085         (dbus_message_get_fields_valist), (_dbus_message_test):
8086         * dbus/dbus-message.h:
8087         Make dbus_message_get_fields return a result code so we can
8088         track invalid fields as well as oom.
8089
8090 2003-01-11  Havoc Pennington  <hp@pobox.com>
8091
8092         * configure.in: change --enable-test/--enable-ansi action-if-given
8093         to enable_foo=$enableval instead of enable_foo=yes
8094
8095 2003-01-08  Havoc Pennington  <hp@pobox.com>
8096
8097         * dbus/dbus-string.c (_dbus_string_align_length): new function
8098
8099         * dbus/dbus-test-main.c: move main() for test app here
8100         * dbus/dbus-test.c
8101         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
8102         symbol to run tests, because dbus-test isn't in the main
8103         library
8104
8105         Code review nitpicks.
8106
8107         * dbus/dbus-message.c (dbus_message_write_header): add newlines
8108         for people with narrow emacs ;-). Assert client_serial was filled
8109         in. Assert message->name != NULL.
8110         (dbus_message_append_fields): have "first_field_type" arg separate
8111         from va list, needed for C++ binding that also uses varargs IIRC
8112         and helps with type safety
8113         (dbus_message_new): add @todo about using DBusString to store
8114         service/name internally
8115         (dbus_message_new): don't leak ->service and ->name on OOM later
8116         in the function
8117         (dbus_message_unref): free the service name
8118         (dbus_message_get_fields): same change to varargs
8119         i.e. first_field_type
8120         (_dbus_message_loader_return_buffer): assert that the message data
8121         is aligned (if not it's a bug in our code). Put in verbose griping
8122         about why we set corrupted = TRUE.
8123         (decode_header_data): add FIXME that char* is evil.  Was going to
8124         add FIXME about evil locale-specific string.h strncmp, but just
8125         switched to wacky string-as-uint32 optimization. Move check for
8126         "no room for field name" above get_const_data_len() to avoid
8127         assertion failure in get_const_data_len if we have trailing 2
8128         bytes or the like. Check for service and name fields being
8129         provided twice. Don't leak service/name on error. Require field
8130         names to be aligned to 4 bytes.
8131
8132         * dbus/dbus-marshal.c: move byte swap stuff to header
8133         (_dbus_pack_int32): uscore-prefix
8134         (_dbus_unpack_int32): uscore-prefix
8135         (_dbus_unpack_uint32): export
8136         (_dbus_demarshal_string): add @todo complaining about use of
8137         memcpy()
8138         (_dbus_marshal_get_field_end_pos): add @todo about bad error
8139         handling allowing corrupt data to go unchecked
8140
8141 2003-01-08  Havoc Pennington  <hp@redhat.com>
8142
8143         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
8144         to the select() as needed for authentication. (should be using
8145         _dbus_poll() not select, but for another day)
8146
8147         * dbus/dbus.h: include dbus/dbus-protocol.h
8148
8149 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
8150
8151         * dbus/Makefile.am (dbusinclude_HEADERS): Install
8152         dbus-connection.h
8153
8154 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
8155
8156         * dbus/dbus-internals.c: (_dbus_type_to_string):
8157         New function that returns a string describing a type.
8158
8159         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
8160         * dbus/dbus-marshal.h:
8161         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
8162         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
8163         (dbus_message_iter_get_byte_array):
8164         * dbus/dbus-message.h:
8165         Add new convenience functions for appending and getting message fields.
8166         Also add demarshalling routines for byte arrays.
8167
8168 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
8169
8170         * dbus/dbus-connection-internal.h:
8171         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
8172         (_dbus_connection_get_next_client_serial),
8173         (dbus_connection_send_message):
8174         * dbus/dbus-internals.h:
8175         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
8176         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
8177         (_dbus_marshal_uint32), (_dbus_demarshal_double),
8178         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
8179         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
8180         (_dbus_verbose_bytes), (_dbus_marshal_test):
8181         * dbus/dbus-marshal.h:
8182         * dbus/dbus-message-internal.h:
8183         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
8184         (dbus_message_write_header), (_dbus_message_lock),
8185         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
8186         (dbus_message_get_name), (dbus_message_append_int32),
8187         (dbus_message_append_uint32), (dbus_message_append_double),
8188         (dbus_message_append_string), (dbus_message_append_byte_array),
8189         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
8190         (dbus_message_iter_unref), (dbus_message_iter_has_next),
8191         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
8192         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
8193         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
8194         (decode_header_data), (_dbus_message_loader_return_buffer),
8195         (message_iter_test), (_dbus_message_test):
8196         * dbus/dbus-message.h:
8197         * dbus/dbus-protocol.h:
8198         * dbus/dbus-test.c: (main):
8199         * dbus/dbus-test.h:
8200         * glib/test-dbus-glib.c: (message_handler), (main):
8201         * test/echo-client.c: (main):
8202         * test/watch.c: (check_messages):
8203         Make messages sendable and receivable for real.
8204
8205 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
8206
8207         * dbus/dbus-marshal.c: (_dbus_marshal_double),
8208         (_dbus_marshal_string), (_dbus_marshal_byte_array):
8209         * dbus/dbus-message.c: (dbus_message_append_int32),
8210         (dbus_message_append_uint32), (dbus_message_append_double),
8211         (dbus_message_append_string), (dbus_message_append_byte_array):
8212         Handle OOM restoration.
8213
8214 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
8215
8216         * dbus/dbus-marshal.c: (_dbus_marshal_string),
8217         (_dbus_demarshal_string), (_dbus_marshal_test):
8218         * dbus/dbus-marshal.h:
8219         * dbus/dbus-message.c: (dbus_message_get_name),
8220         Document these functions.
8221
8222         (dbus_message_append_int32), (dbus_message_append_uint32),
8223         (dbus_message_append_double), (dbus_message_append_string),
8224         (dbus_message_append_byte_array):
8225         * dbus/dbus-message.h:
8226         Add functions for adding message fields of different types.
8227
8228         * dbus/dbus-protocol.h:
8229         Add the different types.
8230
8231 2003-01-05  Havoc Pennington  <hp@pobox.com>
8232
8233         * bus/connection.c: implement routines for handling connections,
8234         first thing is keeping a list of owned services on each connection
8235         and setting up watches etc.
8236
8237         * bus/services.c: implement a mapping from service names to lists
8238         of connections
8239
8240         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
8241
8242         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
8243         to use static mutexes for global data
8244
8245         * dbus/dbus-connection.c (dbus_connection_set_data): add new
8246         collection of functions to set/get application-specific data
8247         on the DBusConnection.
8248
8249 2003-01-04  Havoc Pennington  <hp@pobox.com>
8250
8251         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
8252         (_dbus_poll): new function
8253
8254         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
8255         copied from GLib
8256
8257         * bus/loop.c: initial code for the daemon main loop
8258
8259 2003-01-04  Havoc Pennington  <hp@pobox.com>
8260
8261         * test/watch.c (error_handler): make it safe if the error handler
8262         is called multiple times (if we s/error handler/disconnect
8263         handler/ we should just guarantee it's called only once)
8264
8265         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
8266         error handler on disconnect (it's quite possible we should
8267         just change the error handler to a "disconnect handler," I'm
8268         not sure we have any other meaningful errors)
8269
8270         * configure.in: check for getpwnam_r
8271
8272         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8273         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
8274         mechanism as in SASL spec, using socket credentials
8275
8276         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
8277         (_dbus_send_credentials_unix_socket): new function
8278
8279         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
8280         dbus_accept()
8281         (_dbus_write): only check errno if <0 returned
8282         (_dbus_write_two): ditto
8283
8284 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
8285
8286         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
8287         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
8288         (_dbus_marshal_test):
8289         * dbus/dbus-marshal.h:
8290         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
8291         to _dbus_marshal_utf8_string. Also fix some tests.
8292
8293 2002-12-28  Harri Porten  <porten@kde.org>
8294
8295         * configure.in: added check for C++ compiler and a very cheesy
8296         check for the Qt integration
8297
8298         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
8299
8300         * qt/Makefile.am: added
8301
8302         * qt/.cvsignore: added
8303
8304         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
8305         latter, added #ifdef QT_THREAD_SUPPORT guard.
8306
8307         * dbus/Makefile.am: added missing headers for make dist
8308
8309 2002-12-28  Kristian Rietveld  <kris@gtk.org>
8310
8311         * dbus/Makefile.am: fixup export-symbols-regex.
8312
8313 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
8314
8315         * acinclude.m4: Add this file and put the
8316         PKG_CHECK_MODULE macro in it.
8317
8318 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
8319
8320         * dbus/dbus-marshal.c: (_dbus_marshal_string),
8321         (_dbus_demarshal_double), (_dbus_demarshal_int32),
8322         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8323         (_dbus_marshal_test):
8324         Make the demarshalling routines align the pos argument.
8325         Add string marshalling tests and fix the obvious bugs
8326         discovered.
8327
8328 2002-12-26  Havoc Pennington  <hp@pobox.com>
8329
8330         * dbus/dbus-auth.c: fixes fixes fixes
8331
8332         * dbus/dbus-transport-unix.c: wire up support for
8333         encoding/decoding data on the wire
8334
8335         * dbus/dbus-auth.c (_dbus_auth_encode_data)
8336         (_dbus_auth_decode_data): append to target string
8337         instead of nuking it.
8338
8339 2002-12-26  Havoc Pennington  <hp@pobox.com>
8340
8341         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
8342         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
8343         doh
8344
8345         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
8346         avoid swap_bytes() overhead (ignoring possible assembly stuff for
8347         now). Main point is because I wanted unpack_uint32 to implement
8348         _dbus_verbose_bytes
8349         (_dbus_verbose_bytes): new function
8350
8351         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
8352
8353         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
8354         mechanism to handle a corrupt message stream
8355         (_dbus_message_loader_new): fix preallocation to only prealloc,
8356         not prelengthen
8357
8358         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
8359         (_dbus_string_test): enhance tests for copy/move and fix the
8360         functions
8361
8362         * dbus/dbus-transport-unix.c: Hold references in more places to
8363         avoid reentrancy problems
8364
8365         * dbus/dbus-transport.c: ditto
8366
8367         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
8368         leak reference count in no-message case
8369
8370         * test/watch.c (do_mainloop): handle adding/removing watches
8371         during iteration over the watches. Also, ref the connection/server
8372         stored on a watch, so we don't try to mangle a destroyed one.
8373
8374         * dbus/dbus-transport-unix.c (do_authentication): perform
8375         authentication
8376
8377         * dbus/dbus-auth.c (get_state): add a state
8378         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
8379         (_dbus_auth_get_unused_bytes): append the unused bytes
8380         to the passed in string, rather than prepend
8381
8382         * dbus/dbus-transport.c (_dbus_transport_init_base): create
8383         the auth conversation DBusAuth
8384
8385         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
8386         (_dbus_transport_new_for_domain_socket): when creating a
8387         transport, pass in whether it's a client-side or server-side
8388         transport so we know which DBusAuth to create
8389
8390 2002-12-03  Havoc Pennington  <hp@pobox.com>
8391
8392         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
8393         _after_ finalizing the derived members
8394         (unix_connection_set): unref watch if we fail to add it
8395
8396         * dbus/dbus-connection.c (dbus_connection_unref): delete the
8397         transport first, so that the connection owned by the
8398         transport will be valid as the transport finalizes.
8399
8400         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
8401         if necessary, and remove watches from the connection.
8402
8403         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
8404
8405 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
8406
8407         * dbus/dbus-marshal.c: (_dbus_marshal_string),
8408         (_dbus_demarshal_double), (_dbus_demarshal_int32),
8409         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8410         (_dbus_marshal_test):
8411         * dbus/dbus-marshal.h:
8412         Add string marshal functions and have the demarshal functions
8413         return the new position.
8414
8415 2002-12-25  Havoc Pennington  <hp@pobox.com>
8416
8417         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
8418         it is a simple protocol that just maps directly to SASL.
8419
8420         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
8421         initial implementation, not actually used yet.
8422
8423         * dbus/dbus-string.c (_dbus_string_find): new function
8424         (_dbus_string_equal): new function
8425         (_dbus_string_base64_encode): new function
8426         (_dbus_string_base64_decode): new function
8427
8428 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
8429
8430         * dbus/Makefile.am:
8431         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
8432         (_dbus_marshal_int32), (_dbus_marshal_uint32),
8433         (_dbus_demarshal_double), (_dbus_demarshal_int32),
8434         (_dbus_demarshal_uint32), (_dbus_marshal_test):
8435         * dbus/dbus-marshal.h:
8436         * dbus/dbus-protocol.h:
8437         * dbus/dbus-test.c: (main):
8438         * dbus/dbus-test.h:
8439         Add un-optimized marshalling/demarshalling routines.
8440
8441 2002-12-25  Harri Porten  <porten@kde.org>
8442
8443         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
8444
8445 2002-12-24  Zack Rusin  <zack@kde.org>
8446
8447         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
8448         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
8449         main loop stuff
8450
8451 2002-12-24  Havoc Pennington  <hp@pobox.com>
8452
8453         * glib/dbus-gthread.c: fix include
8454
8455         * glib/dbus-glib.h: rename DBusMessageHandler for now.
8456         I think glib API needs to change, though, as you don't
8457         want to use DBusMessageFunction, you want to use the
8458         DBusMessageHandler object. Probably
8459         dbus_connection_open_with_g_main_loop()
8460         and dbus_connection_setup_g_main_loop() or something like that
8461         (but think of better names...) that just create a connection
8462         that has watch/timeout functions etc. already set up.
8463
8464         * dbus/dbus-connection.c
8465         (dbus_connection_send_message_with_reply): new function just to
8466         show how the message handler helps us deal with replies.
8467
8468         * dbus/dbus-list.c (_dbus_list_remove_last): new function
8469
8470         * dbus/dbus-string.c (_dbus_string_test): free a string that
8471         wasn't
8472
8473         * dbus/dbus-hash.c: use memory pools for the hash entries
8474         (rebuild_table): be more paranoid about overflow, and
8475         shrink table when we can
8476         (_dbus_hash_test): reduce number of sprintfs and write
8477         valid C89. Add tests for case where we grow and then
8478         shrink the hash table.
8479
8480         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
8481
8482         * dbus/dbus-connection.c (dbus_connection_register_handler)
8483         (dbus_connection_unregister_handler): new functions
8484
8485         * dbus/dbus-message.c (dbus_message_get_name): new
8486
8487         * dbus/dbus-list.c: fix docs typo
8488
8489         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
8490         an object representing a handler for messages.
8491
8492 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
8493
8494         * glib/dbus-glib.h:
8495         * glib/dbus-gthread.c: (dbus_gthread_init):
8496         Don't use the gdbus prefix for public functions.
8497
8498 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
8499
8500         * Makefile.am:
8501         * configure.in:
8502         Add GLib checks and fixup .pc files
8503
8504         * glib/Makefile.am:
8505         * glib/dbus-glib.h:
8506         * glib/dbus-gmain.c: (gdbus_connection_prepare),
8507         (gdbus_connection_check), (gdbus_connection_dispatch),
8508         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
8509         (dbus_connection_gsource_new):
8510         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
8511         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
8512         * glib/test-dbus-glib.c: (message_handler), (main):
8513         Add GLib support.
8514
8515 2002-12-15  Harri Porten  <porten@kde.org>
8516
8517         * autogen.sh: check for libtoolize before attempting to use it
8518
8519         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
8520         struct.
8521
8522         * .cvsignore: ignore more stamp files
8523
8524         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
8525
8526         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
8527         without make install.
8528
8529 2002-12-15  Havoc Pennington  <hp@pobox.com>
8530
8531         * dbus/dbus-threads.c: add thread stubs that a higher library
8532         layer can fill in. e.g. the GLib wrapper might fill them in with
8533         GThread stuff. We still need to use this thread API to
8534         thread-safe-ize the library.
8535
8536 2002-12-12  Havoc Pennington  <hp@pobox.com>
8537
8538         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
8539         below new interfaces and include fewer system headers.
8540
8541         * dbus/dbus-sysdeps.c (_dbus_read): new function
8542         (_dbus_write): new function
8543         (_dbus_write_two): new function
8544         (_dbus_connect_unix_socket): new function
8545         (_dbus_listen_unix_socket): new function
8546
8547         * dbus/dbus-message-internal.h: change interfaces to use
8548         DBusString
8549
8550 2002-12-11  Havoc Pennington  <hp@pobox.com>
8551
8552         * dbus/dbus-types.h: add dbus_unichar
8553
8554         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
8555
8556         * dbus/dbus-connection.c (dbus_connection_send_message): return
8557         TRUE on success
8558
8559         * dbus/dbus-transport.c: include dbus-watch.h
8560
8561         * dbus/dbus-connection.c: include dbus-message-internal.h
8562
8563         * HACKING: add file with coding guidelines stuff.
8564
8565         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
8566         handling here, for security purposes (as in vsftpd). Not actually
8567         using this class yet.
8568
8569         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
8570         system/libc usage here, as in vsftpd, for ease of auditing (and
8571         should also simplify portability). Haven't actually moved all the
8572         system/libc usage into here yet.
8573
8574 2002-11-25  Havoc Pennington  <hp@pobox.com>
8575
8576         * dbus/dbus-internals.c (_dbus_verbose): fix to not
8577         always print the first verbose message.
8578
8579 2002-11-24  Havoc Pennington  <hp@pobox.com>
8580
8581         * test/echo-client.c, test/echo-server.c: cheesy test
8582         clients.
8583
8584         * configure.in (AC_CHECK_FUNCS): check for writev
8585
8586         * dbus/dbus-message.c (_dbus_message_get_network_data): new
8587         function
8588
8589         * dbus/dbus-list.c (_dbus_list_foreach): new function
8590
8591         * dbus/dbus-internals.c (_dbus_verbose): new function
8592
8593         * dbus/dbus-server.c, dbus/dbus-server.h: public object
8594         representing a server that listens for connections.
8595
8596         * dbus/.cvsignore: create
8597
8598         * dbus/dbus-errors.h, dbus/dbus-errors.c:
8599         public API for reporting errors
8600
8601         * dbus/dbus-connection.h, dbus/dbus-connection.c:
8602         public object representing a connection that
8603         sends/receives messages. (Same object used for
8604         both client and server.)
8605
8606         * dbus/dbus-transport.h, dbus/dbus-transport.c:
8607         Basic abstraction for different kinds of stream
8608         that we might read/write messages from.
8609
8610 2002-11-23  Havoc Pennington  <hp@pobox.com>
8611
8612         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
8613         _DBUS_INT_MAX
8614
8615         * dbus/dbus-test.c (main): add list test, and include
8616         dbus-test.h as intended
8617
8618         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
8619         (_dbus_hash_table_remove_int): return value indicates
8620         whether the entry existed to remove
8621
8622         * dbus/dbus-list.c: add linked list utility class,
8623         with docs and tests
8624
8625         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
8626         array sometimes.
8627
8628 2002-11-23  Havoc Pennington  <hp@pobox.com>
8629
8630         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
8631         DBUS_END_DECLS to nothing, that should fix this once and for all
8632
8633         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
8634
8635         * dbus/dbus-message.c, dbus/dbus-hash.c:
8636         add some missing @brief
8637
8638 2002-11-23  Havoc Pennington  <hp@pobox.com>
8639
8640         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
8641         to avoid confusing Doxygen
8642
8643         * dbus/dbus-hash.c: @} not }@
8644
8645         * dbus/dbus-message.c (struct DBusMessage): split out
8646         internals docs
8647
8648 2002-11-23  Havoc Pennington  <hp@pobox.com>
8649
8650         * configure.in: pile on more warning flags if using gcc
8651
8652         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8653         to document static functions
8654
8655         * configure.in: add summary to end of configure so it
8656         looks nice and attractive
8657
8658         * dbus/dbus-hash.c: finish implementation and write unit
8659         tests and docs
8660
8661         * configure.in: add --enable-tests to enable unit tests
8662
8663         * dbus/dbus-test.c: test program to run unit tests
8664         for all files in dbus/*, initially runs a test for
8665         dbus-hash.c
8666
8667         * dbus/dbus-internals.h: file to hold some internal utility stuff
8668
8669 2002-11-22  Havoc Pennington  <hp@redhat.com>
8670
8671         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8672         "ported" away from Tcl
8673
8674         * dbus/dbus-types.h: header for types such as dbus_bool_t
8675
8676 2002-11-22  Havoc Pennington  <hp@redhat.com>
8677
8678         * dbus/dbus.h: fixups for doc warnings
8679
8680         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8681         macros
8682         (QUIET): make it quiet so we can see warnings
8683
8684         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8685
8686 2002-11-22  Havoc Pennington  <hp@redhat.com>
8687
8688         * Makefile.am: include "Doxyfile" target in all-local
8689
8690         * configure.in: generate the Doxyfile
8691
8692         * Doxyfile.in: move Doxyfile here, so we can use
8693         configure to generate a Doxyfile with the right
8694         version number etc.
8695
8696 2002-11-22  Havoc Pennington  <hp@redhat.com>
8697
8698         * dbus/dbus-message.c: move inline docs into .c file
8699
8700         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8701         so all docs are under doc/
8702         (MAN_EXTENSION): generate man pages. Use extension
8703         ".3dbus" which matches ".3qt" on my system,
8704         I guess this is OK, I don't know really.
8705         (FILE_PATTERNS): look for .c files not .h, makes sense
8706         for plain C I think
8707
8708 2002-11-22  Havoc Pennington  <hp@pobox.com>
8709
8710         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8711         because any app can be a server, and any app can be a client,
8712         the bus is a special kind of server.
8713
8714 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
8715
8716         * Doxyfile : adding. Still needs Makefile rules to be generated
8717         automatically (just run "doxygen" in the toplevel dir for now to
8718         generate docs)
8719
8720         * dbus/dbus-message.h : Adding sample docs (javadoc since
8721         resembles gtk-doc a little more)
8722
8723         * dbus/dbus.h : Adding sample docs
8724
8725 2002-11-21  Havoc Pennington  <hp@redhat.com>
8726
8727         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8728         so we can allow ourselves to include files directly,
8729         instead of having to use dbus.h
8730
8731         * dbus/dbus.h: fill in
8732
8733         * dbus/dbus-message.h: sketch out a sample header file.
8734         Include griping if you include it directly instead of
8735         via dbus.h
8736
8737         * dbus/dbus-macros.h: new file with macros for extern "C",
8738         TRUE/FALSE, NULL, etc.
8739
8740         * doc/file-boilerplate.c: put include guards in here
8741
8742 2002-11-21  Havoc Pennington  <hp@redhat.com>
8743
8744         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8745
8746         * COPYING: include the GPL as well, and license code
8747         under both AFL and GPL.
8748
8749 2002-11-21  Havoc Pennington  <hp@redhat.com>
8750
8751         * acconfig.h: get rid of this
8752
8753         * autogen.sh (run_configure): add --no-configure option
8754
8755         * configure.in: remove AC_ARG_PROGRAM to make
8756         autoconf complain less. add AC_PREREQ.
8757         add AC_DEFINE third arg.
8758
8759 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
8760
8761         * doc/Makefile.am:
8762         Fix references so we can distcheck.
8763
8764 2002-11-21  Havoc Pennington  <hp@redhat.com>
8765
8766         * Initial module creation
8767