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