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