2003-09-21 Mark McLoughlin <mark@skynet.ie>
[platform/upstream/dbus.git] / ChangeLog
1 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
2
3         * doc/dbus-specification.sgml: Change the header field name
4         to be an enum and update the rest of the spec to reference
5         the fields using the conventinal name.
6
7         * dbus/dbus-protocol.h: update to reflect the spec.
8
9         * doc/TODO: add item to remove the 4 byte alignment requirement.
10         
11         * dbus/dbus-message.c: Remove the code to generalise the
12         header/body length and serial number header fields as named
13         header fields so we can reference field names using the 
14         protocol values.
15         (append_int_field), (append_uint_field), (append_string_field):
16         Append the field name as a byte rather than four chars.
17         (delete_int_or_uint_field), (delete_string_field): reflect the
18         fact that the field name and typecode now occupy 4 bytes instead
19         of 8.
20         (decode_string_field), (decode_header_data): update to reflect
21         protocol changes and move the field specific encoding from
22         decode_string_field() back into decode_header_data().
23         
24         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
25         Add utility to aid debugging.
26         
27         * dbus/dbus-message-builder.c:
28         (append_string_field), (_dbus_message_data_load): Update to
29         reflect protocol changes; Change the FIELD_NAME directive
30         to HEADER_FIELD and allow it to take the field's conventional
31         name rather than the actual value.
32         
33         * test/data/*/*.message: Update to use HEADER_FIELD instead
34         of FIELD_NAME; Always align the header on an 8 byte boundary
35         *before* updating the header length.
36
37 2003-09-15  Havoc Pennington  <hp@pobox.com>
38
39         * dbus/dbus-pending-call.c: add the get/set object data
40         boilerplate as for DBusConnection, etc. Use generic object data
41         for the notify callback.
42
43         * glib/dbus-gparser.c (parse_node): parse child nodes
44
45         * tools/dbus-viewer.c: more hacking on the dbus-viewer
46         
47         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
48         contain functions shared between the convenience lib and the
49         installed lib
50
51         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
52         -export-symbols-regex to the GLib library
53
54         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
55         fix the locking in here, and add a default handler for
56         Introspect() that just returns sub-nodes.
57
58 2003-09-14  Havoc Pennington  <hp@pobox.com>
59
60         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
61         rather than gfoo consistent
62
63         * glib/dbus-gproxy.h: delete for now, move contents to
64         dbus-glib.h, because the include files don't work right since we
65         aren't in the dbus/ subdir.
66         
67         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
68         (dbus_gproxy_end_call): finish
69         (dbus_gproxy_begin_call): finish
70
71         * glib/dbus-gmain.c (dbus_set_g_error): new
72
73         * glib/dbus-gobject.c (handle_introspect): include information
74         about child nodes in the introspection
75
76         * dbus/dbus-connection.c (dbus_connection_list_registered): new
77         function to help in implementation of introspection
78
79         * dbus/dbus-object-tree.c
80         (_dbus_object_tree_list_registered_and_unlock): new function
81
82 2003-09-12  Havoc Pennington  <hp@pobox.com>
83
84         * glib/dbus-gidl.h: add common base class for all the foo_info
85         types
86
87         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
88         similar to kdcop
89
90         * test/Makefile.am: try test srcdir -ef . in addition to test
91         srcdir = ., one of them should work (yeah lame)
92         
93         * glib/Makefile.am: build the "idl" parser stuff as a convenience
94         library
95         
96         * glib/dbus-gparser.h: make description_load routines return
97         NodeInfo* not Parser*
98
99         * Makefile.am (SUBDIRS): build test dir after all library dirs
100
101         * configure.in: add GTK+ detection
102
103 2003-09-07  Havoc Pennington  <hp@pobox.com>
104
105         * Make Doxygen contented.
106
107 2003-09-07  Havoc Pennington  <hp@pobox.com>
108
109         * doc/dbus-specification.sgml: more updates
110
111 2003-09-06  Havoc Pennington  <hp@pobox.com>
112
113         * doc/dbus-specification.sgml: partial updates
114
115         * bus/dbus-daemon-1.1.in: fix the config file docs for the
116         zillionth time; hopefully I edited the right file this time.
117
118         * bus/config-parser.c (append_rule_from_element): support
119         send_type, send_path, receive_type, receive_path
120
121         * bus/policy.c: add message type and path to the list of things
122         that can be "firewalled"
123
124 2003-09-06  Havoc Pennington  <hp@pobox.com>
125
126         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
127         (dbus_connection_register_object_path): make this not handle
128         messages to paths below the given path
129
130 2003-09-03  Havoc Pennington  <hp@pobox.com>
131
132         * test/glib/Makefile.am: add this with random glib-linked test
133         programs
134
135         * glib/Makefile.am: remove the random test programs from here,
136         leave only the unit tests
137
138         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
139         uscore/javacaps conversion, and fix     
140         (get_object_property, set_object_property): change to .NET
141         convention for mapping props to methods, set_FooBar/get_FooBar, 
142         since one language has such a convention we may as well copy it. 
143         Plus real methods in either getFooBar or get_foo_bar style won't 
144         collide with this convention.
145
146 2003-09-01  Havoc Pennington  <hp@pobox.com>
147
148         * glib/dbus-gparser.c: implement
149
150         * glib/dbus-gobject.c: start implementing skeletons support
151
152         * configure.in: when disabling checks/assert, also define
153         G_DISABLE_ASSERT and G_DISABLE_CHECKS
154
155 2003-09-01  Havoc Pennington  <hp@pobox.com>
156
157         * glib/Makefile.am: rearrange a bunch of files and get "make
158         check" framework set up
159
160 2003-08-31  Havoc Pennington  <hp@pobox.com>
161
162         * fix build with --disable-tests
163
164 2003-08-30  Havoc Pennington  <hp@pobox.com>
165
166         * dbus/dbus-connection.c: purge DBusMessageHandler
167
168         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
169         use callbacks everywhere
170
171 2003-08-30  Havoc Pennington  <hp@pobox.com>
172
173         * test/data/valid-config-files/system.d/test.conf: change to 
174         root for the user so warnings don't get printed
175
176         * dbus/dbus-message.c: add dbus_message_get_path,
177         dbus_message_set_path
178         
179         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
180         dispatching to a path
181
182         * dbus/dbus-string.c (_dbus_string_validate_path): add
183
184         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
185         (_dbus_marshal_object_path): implement
186
187         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
188         to contain the path to the target object
189         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
190         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
191
192 2003-08-30  Havoc Pennington  <hp@pobox.com>
193
194         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
195
196 2003-08-29  Havoc Pennington  <hp@pobox.com>
197
198         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
199         registered
200         (struct DBusObjectSubtree): shrink this
201         a lot, since we may have a lot of them
202         (_dbus_object_tree_free_all_unlocked): implement
203         (_dbus_object_tree_dispatch_and_unlock): implement
204
205 2003-08-29  Havoc Pennington  <hp@pobox.com>
206
207         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
208
209 2003-08-28  Havoc Pennington  <hp@pobox.com>
210
211         purge DBusObjectID
212         
213         * dbus/dbus-connection.c: port to no ObjectID, create a
214         DBusObjectTree, rename ObjectTree to ObjectPath in public API
215
216         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
217         everything except UnregisterFunction and MessageFunction
218         
219         * dbus/dbus-marshal.c: port away from DBusObjectID, 
220         add DBUS_TYPE_OBJECT_PATH
221         
222         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
223         dbus/dbus-objectid.[hc]: remove these, we are moving to 
224         path-based object IDs
225
226 2003-08-25  Havoc Pennington  <hp@pobox.com>
227
228         Just noticed that dbus_message_test is hosed, I wonder when I
229         broke that. I thought make check was passing earlier...
230         
231         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
232         container tree, will replace most of dbus-object-registry
233
234         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
235         screwup
236
237 2003-08-19  Havoc Pennington  <hp@pobox.com>
238
239         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
240         (dbus_message_is_error): fix this function
241
242         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
243         match
244
245         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
246         reflect clarified man page
247         (bus_client_policy_check_can_send): ditto
248         
249         * bus/session.conf.in: fixup
250
251         * bus/system.conf.in: fixup
252
253 2003-08-18  Havoc Pennington  <hp@redhat.com>
254
255         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
256
257         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
258         dumb bug created earlier (wrong order of args to
259         decode_header_data())
260         
261         * tools/dbus-send.c: port
262
263         * tools/dbus-print-message.c (print_message): port
264
265         * test/data/*messages: port all messages over
266         
267         * dbus/dbus-message-builder.c: support including 
268         message type
269         
270         * bus/driver.c: port over
271         
272         * bus/dispatch.c: port over to new stuff
273
274         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
275         rename disconnect signal to "Disconnected"
276
277 2003-08-17  Havoc Pennington  <hp@pobox.com>
278
279         This doesn't compile yet, but syncing up so I can hack on it from
280         work. What are branches for if not broken code? ;-)
281         
282         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
283         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
284         DBUS_HEADER_FIELD_ERROR_NAME
285         
286         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
287         for the interface+member pairs
288         (string_hash): change to use g_str_hash algorithm
289         (find_direct_function, find_string_function): refactor these to
290         share most code.
291         
292         * dbus/dbus-message.c: port all of this over to support 
293         interface/member fields instead of name field
294
295         * dbus/dbus-object-registry.c: port over
296         
297         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
298         from _dbus_string_validate_name
299
300         * bus/dbus-daemon-1.1: change file format for the 
301         <deny>/<allow> stuff to match new message naming scheme
302
303         * bus/policy.c: port over
304
305         * bus/config-parser.c: parse new format
306         
307 2003-08-16  Havoc Pennington  <hp@pobox.com>
308
309         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
310         broken assertion
311
312         * glib/dbus-gproxy.c: some hacking
313
314 2003-08-15  Havoc Pennington  <hp@redhat.com>
315
316         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
317
318         * dbus/dbus-connection.c
319         (dbus_connection_send_with_reply_and_block): factor out internals;
320         change to convert any error replies to DBusError instead of 
321         returning them as a message
322
323 2003-08-15  Havoc Pennington  <hp@pobox.com>
324
325         * dbus/dbus-connection.c, 
326         dbus/dbus-pending-call.c: Finish the pending call stuff
327
328 2003-08-14  Havoc Pennington  <hp@redhat.com>
329
330         * dbus/dbus-pending-call.c: start on new object that will replace
331         DBusMessageHandler and ReplyHandlerData for tracking outstanding
332         replies
333
334         * dbus/dbus-gproxy.c: start on proxy object used to communicate
335         with remote interfaces
336
337         * dbus/dbus-gidl.c: do the boring boilerplate in here
338         
339 2003-08-12  Havoc Pennington  <hp@pobox.com>
340
341         * bus/dispatch.c (bus_dispatch): make this return proper 
342         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
343
344         * dbus/dbus-errors.c (dbus_set_error): use
345         _dbus_string_append_printf_valist
346
347         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
348         (_dbus_string_append_printf): new
349
350         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
351         UNKNOWN_METHOD
352
353         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
354         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
355         message is unhandled.
356
357 2003-08-11  Havoc Pennington  <hp@pobox.com>
358
359         * bus/test.c (client_disconnect_handler): change to return
360         HANDLED (would have been REMOVE_MESSAGE)
361
362         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
363         HANDLED/NOT_YET_HANDLED instead of
364         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
365         should be used.
366
367 2003-08-10  Havoc Pennington  <hp@pobox.com>
368
369         * tools/dbus-send.c (main): add --type argument, for now
370         supporting only method_call and signal types.
371
372         * tools/dbus-print-message.c: print message type
373
374         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
375         init connection->objects
376
377         * doc/dbus-specification.sgml: fix sgml
378
379         * bus/*.c: port over to object-instance API changes
380
381         * test/test-service.c: ditto
382         
383         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
384         name, we will have to fix up the rest of the code to also handle
385         this
386         (dbus_message_new): generic message-creation call
387         (set_string_field): allow appending name field
388
389 2003-08-06  Havoc Pennington  <hp@pobox.com>
390
391         * dbus/dbus-object-registry.c: implement signal connection 
392         and dispatch
393
394         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
395
396         * dbus/dbus-internals.c (_dbus_memdup): new function
397
398 2003-08-02  Havoc Pennington  <hp@pobox.com>
399
400         * dbus/dbus-message.c (dbus_message_get_no_reply)
401         (dbus_message_set_no_reply): add these and remove
402         set_is_error/get_is_error
403
404         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
405         remove the ERROR flag, since there's now an ERROR type
406
407 2003-08-01  Havoc Pennington  <hp@pobox.com>
408
409         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
410         implement
411
412         * dbus/dbus-message.c (dbus_message_get_type): new function
413
414         * doc/dbus-specification.sgml: add "type" byte to messages
415
416 2003-08-01  Havoc Pennington  <hp@pobox.com>
417
418         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
419         a message type enum to distinguish kinds of message
420         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
421         that need not be replied to
422
423 2003-08-01  Havoc Pennington  <hp@pobox.com>
424
425         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
426         (unpack_8_octets): fix no-64-bit-int bug
427
428         * dbus/dbus-object-registry.c (validate_id): validate the 
429         connection ID bits, not just the instance ID.
430
431         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
432         the connection-global 33 bits of the object ID
433
434         * dbus/dbus-object-registry.c (info_from_entry): fill in 
435         object ID in the new way
436
437         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
438         define server/client/instance bits.
439
440 2003-07-30  Havoc Pennington  <hp@pobox.com>
441
442         * dbus/dbus-connection.c (dbus_connection_register_object): fix
443         build
444
445 2003-07-13  Havoc Pennington  <hp@pobox.com>
446
447         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
448         fields to DBusObjectVTable and DBusObjectInfo
449
450 2003-07-12  Havoc Pennington  <hp@pobox.com>
451
452         * dbus/dbus-object-registry.c: implement unit test,
453         fix bugs discovered in process
454
455         * dbus/dbus-connection.c: remove handler_table and
456         register_handler(), add DBusObjectRegistry usage
457
458         * dbus/dbus-objectid.c (dbus_object_id_is_null)
459         (dbus_object_id_set_null): new functions
460
461 2003-07-08  Havoc Pennington  <hp@pobox.com>
462
463         * dbus/dbus-object.c: implement some of this
464
465         * dbus/dbus-object-registry.c
466         (_dbus_object_registry_add_and_unlock): fill in the object_id out
467         param
468         (_dbus_object_registry_new): handle OOM
469
470 2003-07-08  Havoc Pennington  <hp@pobox.com>
471
472         * dbus/dbus-object.h: sketch out an API for registering objects
473         with a connection, that allows us to use as little as 24 bytes
474         per object and lets application code represent an object in 
475         any conceivable way.
476
477         * dbus/dbus-object-registry.c: implement the hard bits of the
478         DBusConnection aspect of object API. Not yet wired up.
479         
480 2003-07-06  Havoc Pennington  <hp@pobox.com>
481
482         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
483         (_dbus_marshal_object_id): new
484         (_dbus_demarshal_object_id): new
485         (_dbus_marshal_get_arg_end_pos): support object ID type, and
486         consolidate identical switch cases. Don't conditionalize handling
487         of DBUS_TYPE_UINT64, need to handle the type always.
488         (_dbus_marshal_validate_arg): consolidate identical cases, and
489         handle DBUS_TYPE_OBJECT_ID
490
491         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
492
493         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
494
495 2003-06-29  Havoc Pennington  <hp@pobox.com>
496
497         * mono/Test.cs (class Test): fire up a main loop and run it
498
499         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
500         done once, the app has to do it
501
502 2003-06-26  Havoc Pennington  <hp@pobox.com>
503
504         * mono/Connection.cs: set up connection with the glib main loop
505
506 2003-07-01  Havoc Pennington  <hp@redhat.com>
507
508         * doc/dbus-specification.sgml: clarify the format of a type code,
509         change suggested by Jim Blandy
510
511 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
512
513         * doc/Makefile.am:
514         * tools/Makefile.am: Don't assume srcdir == builddir.
515
516         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
517         the allocated block.
518         (_dbus_memory_test): New function.
519         * dbus/dbus-test.h: Add _dbus_memory_test ().
520         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
521
522         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
523         of %c%c%c%c.
524         (dbus_message_new): Remove obsolete @todo.
525
526         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
527         (_dbus_marshal_set_uint64): Fix comment.
528
529         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
530         hardcode FIELD_REPLY_SERIAL.
531
532         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
533         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
534
535         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
536         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
537
538 2003-06-24  Havoc Pennington  <hp@pobox.com>
539
540         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
541
542 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
543
544         * configure.in:
545         * gcj/.cvsignore:
546         * gcj/Hello.java:
547         * gcj/Makefile.am:
548         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
549         * gcj/org/.cvsignore:
550         * gcj/org/Makefile.am:
551         * gcj/org/freedesktop/.cvsignore:
552         * gcj/org/freedesktop/Makefile.am:
553         * gcj/org/freedesktop/dbus/.cvsignore:
554         * gcj/org/freedesktop/dbus/Makefile.am:
555         * gcj/org/freedesktop/dbus/Message.java: (Message),
556         (Message.Message):
557         * gcj/org/freedesktop/dbus/natMessage.cc:
558         Fix the build system.
559
560 2003-06-22  Havoc Pennington  <hp@pobox.com>
561
562         * mono/Connection.cs: add more bindings
563
564         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
565         more than once.
566
567 2003-06-22  Havoc Pennington  <hp@pobox.com>
568
569         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
570         Start wrapping more stuff.
571
572 2003-06-22  Havoc Pennington  <hp@pobox.com>
573
574         * mono/Message.cs: implement Message.Wrap() that ensures we only
575         have a single C# wrapper per DBusMessage, assuming it works which
576         it probably doesn't.
577
578         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
579         (dbus_message_free_data_slot): new
580         (dbus_message_set_data): new
581         (dbus_message_get_data): new
582
583 2003-06-22  Havoc Pennington  <hp@pobox.com>
584
585         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
586         (_dbus_data_slot_allocator_alloc): rework these to keep a
587         reference count on each slot and automatically manage a global
588         slot ID variable passed in by address
589
590         * bus/bus.c: convert to new dataslot API
591
592         * dbus/dbus-bus.c: convert to new dataslot API
593
594         * dbus/dbus-connection.c: convert to new dataslot API
595
596         * dbus/dbus-server.c: convert to new dataslot API
597
598         * glib/dbus-gmain.c: ditto
599
600         * bus/test.c: ditto
601
602         * bus/connection.c: ditto
603
604 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
605
606         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
607         after the gcj checks so that the correct configuration tags
608         will be added to libtool.
609
610         * dbus-glib-1.pc.in: No need to specify any includes since
611         dbus-1.pc.in has those.
612
613 2003-06-22  Havoc Pennington  <hp@pobox.com>
614
615         * mono/*, gcj/*, configure.in, Makefile.am:
616         Check in makefiles and subdirs for mono and gcj bindings.
617         Neither binding actually exists, just trying to get through
618         all the build and other boring bits.
619
620 2003-06-21  Philip Blundell  <philb@gnu.org>
621
622         * tools/dbus-monitor.1: Updated.
623
624         * tools/dbus-send.1: Likewise.
625
626 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
627
628         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
629         for hangup and error after checking read so we won't discard
630         pending data if both hangup and read are set.
631
632 2003-06-19  Philip Blundell  <philb@gnu.org>
633
634         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
635
636         * tools/dbus-send.c: Accept both --system and --session.
637
638         * tools/dbus-monitor.c: Same here.
639
640 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
641
642         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
643         from C++ (Patch by Miloslav Trmac).
644
645 2003-06-15  Joe Shaw  <joe@assbarn.com>
646
647         * configure.in: Check for socklen_t.
648
649         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
650
651         * test/test-segfault.c: Add #include <sys/time.h>
652
653         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
654         dbus-launch needs it.
655
656 2003-06-09  Havoc Pennington  <hp@redhat.com>
657
658         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
659         SUN_LEN, it breaks abstract socket usage
660
661         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
662         starts of lines.
663
664 2003-06-04  Havoc Pennington  <hp@pobox.com>
665
666         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
667         using unix:abstract=/foo, and when listening in a tmpdir
668         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
669
670         * dbus/dbus-transport.c (_dbus_transport_open): support
671         unix:abstract=/foo
672
673         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
674         support abstract sockets
675
676         * dbus/dbus-transport-unix.c
677         (_dbus_transport_new_for_domain_socket): support abstract sockets
678
679         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
680         toggle as an argument, implement abstract namespace support
681         (_dbus_listen_unix_socket): ditto
682
683         * configure.in: add --enable-abstract-sockets and implement
684         a configure check for autodetection of the right value.
685
686 2003-06-01  Havoc Pennington  <hp@pobox.com>
687
688         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
689         in /tmp (though on Linux this will end up being useless,
690         when we add abstract namespace support)
691
692         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
693         subst'ing it
694
695 2003-05-28  Colin Walters  <walters@verbum.org>
696
697         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
698
699 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
700
701         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
702
703 2003-05-17  Colin Walters  <walters@gnu.org>
704
705         * tools/dbus-send.c: Don't exit with an error code if --help was
706         passed.  Default to using the session bus instead of the system
707         one.
708
709         * tools/dbus-launch.c: Ditto.
710
711         * tools/dbus-monitor.c: Ditto.
712
713         * tools/dbus-send.1: Update with new arguments.
714
715         * tools/dbus-launch.c: Emit code to export variables.  New
716         arguments -s and -c to specify shell syntax, and a bit of code to
717         autodetect syntax.  Also, allow specifying a program to run.
718
719         * tools/dbus-launch.1: Update with new arguments.
720
721         * tools/dbus-send.1: Ditto.
722
723         * tools/dbus-monitor.1: Ditto.
724
725 2003-05-17  Havoc Pennington  <hp@pobox.com>
726
727         * bus/config-parser.c (merge_included): merge in policies from
728         child configuration file.
729
730         * bus/policy.c (bus_policy_merge): function to merge two policies
731         together
732
733 2003-05-16  Havoc Pennington  <hp@redhat.com>
734
735         * dbus/dbus-connection.c: disable verbose lock spew
736
737         * tools/dbus-send.c: add --print-reply command line option
738
739         * tools/dbus-print-message.h (print_message): new util function
740         shared by dbus-send and dbus-monitor
741
742         * tools/dbus-monitor.c (handler_func): exit on disconnect
743
744         * dbus/dbus-transport-unix.c (do_reading): if the transport is
745         disconnected, don't try to use the read_watch
746
747         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
748         so we can find this bug more easily
749
750 2003-05-16  Havoc Pennington  <hp@redhat.com>
751
752         * bus/policy.c (free_rule_list_func): avoid a crash when passed
753         NULL as DBusHashTable is annoyingly likely to do.
754
755 2003-05-16  Colin Walters  <walters@verbum.org>
756
757         * tools/dbus-monitor.c: Add --session argument and usage()
758         function.
759
760         * tools/dbus-monitor.1: Update with new --session arg.
761
762         * bus/Makefile.am (install-data-hook): Create
763         $(libdir)/dbus-1.0/services so that the session bus is happy.
764
765 2003-05-15  Havoc Pennington  <hp@redhat.com>
766
767         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
768         on non-x86. ifdef's are evil.
769
770 2003-05-15  Havoc Pennington  <hp@redhat.com>
771
772         * configure.in: 0.11
773
774         * NEWS: update
775
776         * bus/Makefile.am (initddir): apparently we are supposed to put
777         init scripts in /etc/rc.d/init.d not /etc/init.d
778
779         * bus/Makefile.am: remove the "you must --enable-tests to make
780         check" as it broke distcheck
781
782         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
783
784 2003-05-13  James Willcox  <jwillcox@gnome.org>
785
786         * configure.in:
787         * bus/activation.c: (bus_activation_service_created),
788         (bus_activation_activate_service):
789         * bus/driver.c: (bus_driver_send_service_deleted),
790         (bus_driver_send_service_created), (bus_driver_send_service_lost),
791         (bus_driver_send_service_acquired),
792         (bus_driver_send_welcome_message),
793         (bus_driver_handle_list_services):
794         * bus/session.conf.in:
795         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
796         (dbus_bus_service_exists), (dbus_bus_activate_service):
797         * dbus/dbus-bus.h:
798
799         Add some convenience API which lets you activate a service, and did a
800         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
801         and dbus_message_get_args()
802
803 2003-05-11  Havoc Pennington  <hp@pobox.com>
804
805         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
806         calling _dbus_marshal_validate_arg() for every byte in a byte
807         array, etc.
808
809         * dbus/dbus-message-handler.c: use atomic reference counting to
810         reduce number of locks slightly; the global lock in here sucks
811
812         * dbus/dbus-connection.c
813         (_dbus_connection_update_dispatch_status_and_unlock): variant of
814         update_dispatch_status that can be called with lock held; then use
815         in a couple places to reduce locking/unlocking
816         (dbus_connection_send): hold the lock over the whole function
817         instead of acquiring it twice.
818
819         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
820
821         * bus/connection.c (bus_connections_setup_connection): fix access
822         to already-freed memory.
823
824         * dbus/dbus-connection.c: keep a little cache of linked list
825         nodes, to avoid using the global linked list alloc lock in the
826         normal send-message case. Instead we just use the connection lock
827         that we already have to take.
828
829         * dbus/dbus-list.c (_dbus_list_find_last): new function
830
831         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
832         change to use a struct for the atomic type; fix docs,
833         they return value before increment, not after increment.
834
835         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
836         (_dbus_string_append_8_aligned): new functions to try to
837         microoptimize this operation.
838         (reallocate_for_length): break this out of set_length(), to
839         improve profile info, and also so we can consider inlining the
840         set_length() part.
841
842         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
843         strings with some preallocation, cuts down on our calls to realloc
844         a fair bit. Though if we can get the "move entire string to empty
845         string" optimization below to kick in here, it would be better.
846
847         * dbus/dbus-string.c (_dbus_string_move): just call
848         _dbus_string_move_len
849         (_dbus_string_move_len): add a special case for moving
850         an entire string into an empty string; we can just
851         swap the string data instead of doing any reallocs.
852         (_dbus_string_init_preallocated): new function
853
854 2003-05-11  Havoc Pennington  <hp@pobox.com>
855
856         Write a "test-profile" that does echo client-server with threads;
857         profile reveals lock contention, memcpy/realloc of buffers, and
858         UTF-8 validation as hot spots. 20% of lock contention eliminated
859         with dbus_atomic_inc/dec implementation on x86.  Much remaining
860         contention is global mempool locks for GList and DBusList.
861
862         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
863         x86 implementation
864
865         * dbus/dbus-connection.c (struct DBusConnection): use
866         dbus_atomic_t for the reference count
867
868         * dbus/dbus-message.c (struct DBusMessage): declare
869         dbus_atomic_t values as volatile
870
871         * configure.in: code to detect ability to use atomic integer
872         operations in assembly, from GLib patch
873
874         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
875         time, tired of it being wrong in threads and forked processes
876
877         * glib/test-profile.c: a little program to bounce messages back
878         and forth between threads and eat CPU
879
880         * dbus/dbus-connection.c: add debug spew macros for debugging
881         thread locks; include config.h at top; fix deadlock in
882         dbus_connection_flush()
883
884 2003-05-08  Havoc Pennington  <hp@pobox.com>
885
886         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
887         data from getting written, and there wasn't a good reason to
888         use _exit really.
889
890         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
891         dbus_verbose lines in test coverage
892         (main): add list of functions sorted by # of untested blocks
893         to the coverage report
894
895         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
896
897         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
898
899         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
900         extend test coverage
901
902         * test/data/auth/cancel.auth-script: test canceling an
903         authentication
904
905         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
906         aren't used. in CVS history if we end up needing them.
907
908 2003-05-04  Havoc Pennington  <hp@pobox.com>
909
910         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
911         unit test
912
913         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
914         function, which assumed length was in # of strings, not bytes
915
916         * dbus/dbus-message.c (_dbus_message_test): add tests for some
917         missing coverage
918
919         * dbus/dbus-connection.c
920         (_dbus_connection_queue_received_message): disable function for
921         now, we are only using it in test mode
922
923         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
924         remove a mistaken FIXME
925
926 2003-05-04  Havoc Pennington  <hp@pobox.com>
927
928         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
929         unlock mutex on successful return, patch from Anders Gustafsson
930
931 2003-05-04  Havoc Pennington  <hp@pobox.com>
932
933         * dbus-glib-1.pc.in (Requires): fix dependencies, from
934         Anders Gustafsson
935
936 2003-05-04  Havoc Pennington  <hp@pobox.com>
937
938         * tools/dbus-launch.c: implement
939
940         * bus/main.c (main), bus/bus.c (bus_context_new):
941         implement --print-pid and --fork
942
943 2003-05-03  Havoc Pennington  <hp@redhat.com>
944
945         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
946         the address had no value, and add to test suite. Fix and
947         regression test from Miloslav Trmac
948
949 2003-05-03  Havoc Pennington  <hp@pobox.com>
950
951         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
952         watch is invalid when handled
953
954         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
955         dbus-launch utility to launch the bus from a shell script.  Didn't
956         actually implement dbus-launch yet, it's just a placeholder still.
957
958 2003-05-03  Havoc Pennington  <hp@pobox.com>
959
960         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
961         daemon; also documents daemon config file, so replaces
962         doc/config-file.txt. Corrected some stuff from config-file.txt in
963         the process of moving it.
964
965 2003-05-03  Havoc Pennington  <hp@pobox.com>
966
967         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
968         add some man pages
969
970 2003-05-03  Colin Walters  <walters@verbum.org>
971
972         * dbus/dbus-sysdeps.c (fill_user_info): Test against
973         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
974
975         * Makefile.am: Update to use new .pc versioning scheme.
976
977 2003-05-02  Havoc Pennington  <hp@redhat.com>
978
979         * bus/system.conf.in: allow send/receive to/from message bus
980         service
981
982 2003-04-30  Havoc Pennington  <hp@redhat.com>
983
984         * configure.in: print a note when building with unit tests and
985         without assertions
986
987 2003-04-30  Havoc Pennington  <hp@redhat.com>
988
989         * Makefile.am: add a check-local that complains if you didn't
990         configure with --enable-tests
991
992 2003-04-29  Havoc Pennington  <hp@redhat.com>
993
994         * glib/dbus-gmain.c: docs cleanups
995
996         * dbus/dbus-types.h: add docs on int64 types
997
998         * dbus/dbus-memory.c: fix docs to avoid putting private API in
999         public API docs section
1000
1001 2003-04-29  Havoc Pennington  <hp@redhat.com>
1002
1003         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
1004         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
1005         parallel install API version, not with the D-BUS package version.
1006
1007         * HACKING: move some of README over here
1008
1009         * README: updates, and document API/ABI policy
1010
1011         * configure.in: reindentation
1012
1013 2003-04-29  Havoc Pennington  <hp@redhat.com>
1014
1015         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
1016         to use this library" to be sure people have the right
1017         expectations.
1018
1019 2003-04-28  Havoc Pennington  <hp@redhat.com>
1020
1021         * configure.in: add --enable-docs which by default is auto yes if
1022         doxygen and db2html found, no otherwise; but can be forced on/off
1023
1024         * doc/Makefile.am: conditionalize whether to build docs on
1025         --enable-docs
1026
1027 2003-04-28  Havoc Pennington  <hp@redhat.com>
1028
1029         * configure.in: 0.10
1030
1031         * NEWS: update
1032
1033         * bus/system.conf.in: add <includedir>system.d</includedir>
1034
1035         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
1036         username was provided but not uid
1037
1038         * bus/config-parser.c (struct BusConfigParser): keep track of
1039         whether the parser is toplevel or was included; change some
1040         of the error handling if it's included.
1041
1042 2003-04-27  Havoc Pennington  <hp@pobox.com>
1043
1044         Unbreak my code...
1045
1046         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1047         report correct status if we finish processing authentication
1048         inside this function.
1049
1050         * bus/activation.c (try_send_activation_failure): use
1051         bus_transaction_send_error_reply
1052
1053         * bus/connection.c (bus_connection_get_groups): return an error
1054         explaining the problem
1055
1056         * bus/bus.c (bus_context_check_security_policy): implement
1057         restriction here that inactive connections can only send the
1058         hello message. Also, allow bus driver to send anything to
1059         any recipient.
1060
1061         * bus/connection.c (bus_connection_complete): create the
1062         BusClientPolicy here instead of on-demand.
1063         (bus_connection_get_policy): don't return an error
1064
1065         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
1066         sender field in message being replied to
1067
1068         * bus/bus.c (bus_context_check_security_policy): fix silly typo
1069         causing it to return FALSE always
1070
1071         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
1072         we checked sender rather than destination
1073
1074 2003-04-25  Havoc Pennington  <hp@redhat.com>
1075
1076         test suite is slightly hosed at the moment, will fix soon
1077
1078         * bus/connection.c (bus_connections_expire_incomplete): fix to
1079         properly disable the timeout when required
1080         (bus_connection_set_name): check whether we can remove incomplete
1081         connections timeout after we complete each connection.
1082
1083         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
1084         probably still broken.
1085
1086         * bus/services.c (bus_registry_acquire_service): implement max
1087         number of services owned, and honor allow/deny rules on which
1088         services a connection can own.
1089
1090         * bus/connection.c (bus_connection_get_policy): report errors here
1091
1092         * bus/activation.c: implement limit on number of pending
1093         activations
1094
1095 2003-04-25  Havoc Pennington  <hp@redhat.com>
1096
1097         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
1098         where we used >= 0 instead of != DBUS_UID_UNSET.
1099
1100 2003-04-25  Havoc Pennington  <hp@redhat.com>
1101
1102         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
1103         were toggled without add/remove, fix from Anders Gustafsson
1104
1105 2003-04-24  Havoc Pennington  <hp@redhat.com>
1106
1107         * test/data/valid-config-files/basic.conf: add <limit> tags to
1108         this test
1109
1110         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
1111         <limit> tag in configuration file.
1112
1113 2003-04-24  Havoc Pennington  <hp@redhat.com>
1114
1115         * bus/dispatch.c: somehow missed some name_is
1116
1117         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
1118         (_dbus_timeout_set_interval): new
1119
1120         * bus/connection.c (bus_connections_setup_connection): record time
1121         when each connection is first set up, and expire them after the
1122         auth timeout passes.
1123
1124 2003-04-24  Havoc Pennington  <hp@redhat.com>
1125
1126         * dbus/dbus-message.c (dbus_message_name_is): rename
1127         (dbus_message_service_is): rename
1128         (dbus_message_sender_is): rename
1129         (dbus_message_get_service): rename
1130
1131 2003-04-24  Havoc Pennington  <hp@redhat.com>
1132
1133         * configure.in: add --enable-checks
1134
1135         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
1136
1137         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
1138         to use thread locks.
1139         (_dbus_connection_handler_destroyed_locked): move some private
1140         functions into proper docs group
1141
1142         * dbus/dbus-internals.h: add _dbus_return_if_fail,
1143         _dbus_return_val_if_fail
1144
1145         Throughout: use dbus_return_if_fail
1146
1147 2003-04-23  James Willcox  <jwillcox@gnome.org>
1148
1149         * glib/dbus-glib.h:
1150         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
1151         (dbus_connection_setup_with_g_main),
1152         (dbus_server_setup_with_g_main):
1153         * glib/test-dbus-glib.c: (main):
1154         * glib/test-thread-client.c: (main):
1155         * glib/test-thread-server.c: (new_connection_callback), (main):
1156         * tools/dbus-monitor.c: (main):
1157
1158         Added a GMainContext argument to dbus_connection_setup_with_g_main()
1159         and dbus_server_setup_with_g_main().
1160
1161 2003-04-20  Havoc Pennington  <hp@pobox.com>
1162
1163         * doc/dbus-specification.sgml: document the restrictions on
1164         message and service names
1165
1166 2003-04-22  Havoc Pennington  <hp@redhat.com>
1167
1168         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
1169         support, and do some code cleanups to share more code and
1170         speed up array marshal/demarshal.
1171
1172         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
1173
1174         * configure.in: generate dbus-arch-deps.h
1175
1176         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
1177         64-bit typecodes
1178
1179 2003-04-22  Havoc Pennington  <hp@redhat.com>
1180
1181         * test/data/valid-messages/opposite-endian.message: fix test
1182         to use proper type for rply field
1183
1184         * test/data/invalid-messages: add tests for below validation
1185
1186         * dbus/dbus-message.c (decode_header_data): validate field types,
1187         and validate that named fields are valid names
1188         (decode_name_field): consider messages in the
1189         org.freedesktop.Local. namespace to be invalid.
1190
1191         * dbus/dbus-string.c (_dbus_string_validate_name): new
1192
1193 2003-04-19  Havoc Pennington  <hp@pobox.com>
1194
1195         * bus/driver.c (bus_driver_handle_hello): check limits and
1196         return an error if they are exceeded.
1197
1198         * bus/connection.c: maintain separate lists of active and inactive
1199         connections, and a count of each. Maintain count of completed
1200         connections per user. Implement code to check connection limits.
1201
1202         * dbus/dbus-list.c (_dbus_list_unlink): export
1203
1204         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
1205         number of bytes in the message queue for a connection
1206
1207 2003-04-18  Havoc Pennington  <hp@pobox.com>
1208
1209         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
1210
1211         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
1212         memleaks
1213
1214         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
1215         on realloc be sure to update the pointer in the keyring
1216
1217         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
1218         offset to avoid writing to unallocated memory
1219
1220         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
1221         try the next mechanism, so we properly handle OOM
1222
1223         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
1224         on OOM.
1225         (_dbus_keyring_new): fix OOM bug
1226         (_dbus_keyring_new_homedir): always set error; impose a maximum
1227         number of keys we'll load from the file, mostly to speed up the
1228         test suite and make its OOM checks more useful, but also for
1229         general sanity.
1230
1231         * dbus/dbus-auth.c (process_error_server): reject authentication
1232         if we get an error from the client
1233         (process_cancel): on cancel, send REJECTED, per the spec
1234         (process_error_client): send CANCEL if we get an error from the
1235         server.
1236
1237 2003-04-18  Havoc Pennington  <hp@pobox.com>
1238
1239         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
1240         debug spew
1241
1242         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
1243         handling problem
1244
1245         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
1246         about DBUS_TEST_HOMEDIR once
1247
1248         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
1249         the environment
1250
1251         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
1252         config file so we test the right thing
1253
1254         Throughout: assorted docs improvements
1255
1256 2003-04-18  Havoc Pennington  <hp@pobox.com>
1257
1258         * glib/dbus-gmain.c: adapt to watch changes
1259
1260         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
1261
1262         * dbus/dbus-server.h: remove dbus_server_handle_watch
1263
1264         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
1265
1266         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
1267         like DBusTimeout, so we don't need dbus_connection_handle_watch
1268         etc.
1269
1270 2003-04-17  Havoc Pennington  <hp@redhat.com>
1271
1272         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
1273         database usage so it all goes via the DBusUserDatabase cache.
1274
1275 2003-04-17  Havoc Pennington  <hp@redhat.com>
1276
1277         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
1278         there was an OOM watch we skipped, we always return TRUE so we
1279         iterate again to have a look at it again. Fixes test suite hang.
1280         Code rearrangement also lets us lose some memset and only iterate
1281         over callbacks once.
1282
1283         * bus/driver.c (bus_driver_handle_message): sense of test for
1284         reply was backward
1285
1286 2003-04-16  Havoc Pennington  <hp@pobox.com>
1287
1288         * doc/dbus-specification.sgml: make spec say serials are unsigned
1289
1290         * dbus/dbus-message.h: change message serials to unsigned
1291
1292         * dbus/dbus-connection.c: adapt to message serials being unsigned
1293
1294 2003-04-15  Havoc Pennington  <hp@pobox.com>
1295
1296         * bus/bus.c: create and keep around a shared DBusUserDatabase
1297         object.
1298
1299         * bus/connection.c (bus_connection_get_groups): don't cache
1300         groups for user in the connection object, since user database
1301         object now does that.
1302
1303 2003-04-16  Havoc Pennington  <hp@redhat.com>
1304
1305         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
1306         list of size counters
1307         (_dbus_message_loader_putback_message_link): put back a popped link
1308
1309         * dbus/dbus-connection.c
1310         (dbus_connection_set_max_live_messages_size): rename
1311         max_received_size
1312         (dbus_connection_get_outgoing_size): get size of outgoing
1313         queue
1314         (_dbus_connection_set_connection_counter): remove this cruft
1315
1316 2003-04-14  Havoc Pennington  <hp@redhat.com>
1317
1318         * dbus/dbus-userdb.c: user database abstraction, mostly to get
1319         caching, but at some point we might want to be able to use a
1320         different database.
1321
1322         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
1323         SHA1 conf file to test the sha1 auth mechanism, since the regular
1324         test always uses EXTERNAL when available.
1325
1326         * configure.in,
1327         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
1328         add conf file that requires use of sha1 auth
1329
1330 2003-04-13  Havoc Pennington  <hp@pobox.com>
1331
1332         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
1333         from Philip Blundell to send messages and monitor them.
1334
1335 2003-04-13  Havoc Pennington  <hp@pobox.com>
1336
1337         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
1338         callbacks
1339
1340         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
1341         users
1342
1343         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
1344         fix to only recover unused bytes if we're already authenticated
1345         (_dbus_transport_get_is_authenticated): fix to still mark us
1346         authenticated if there are unused bytes.
1347
1348         * bus/dispatch.c: implement security policy checking
1349
1350         * bus/connection.c (bus_transaction_send_from_driver): new
1351
1352         * bus/bus.c (bus_context_check_security_policy): new
1353
1354         * bus/dispatch.c (send_service_nonexistent_error): delete this,
1355         now we just set the DBusError and it gets converted to an error
1356         reply.
1357
1358         * bus/connection.c (allow_user_function): enable code using actual
1359         data from the config file
1360
1361         * bus/policy.c (list_allows_user): handle wildcard rules for
1362         user/group connection perms
1363
1364 2003-04-13  Havoc Pennington  <hp@pobox.com>
1365
1366         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
1367
1368         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
1369
1370         * bus/policy.c (bus_policy_append_mandatory_rule)
1371         (bus_policy_append_default_rule, bus_policy_append_user_rule)
1372         (bus_policy_append_group_rule): new functions
1373
1374 2003-04-12  Havoc Pennington  <hp@pobox.com>
1375
1376         * bus/config-parser.c (bus_config_parser_new): fix a memleak
1377
1378         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
1379         the pid/gid/uid, just for paranoia.
1380
1381         * test/break-loader.c (randomly_do_n_things): find a byte
1382         containing a type code, and randomly change it to a different
1383         type code.
1384
1385 2003-04-12  Havoc Pennington  <hp@pobox.com>
1386
1387         * bus/policy.h: change BusPolicy to be the thing from the config
1388         file, and rename old BusPolicy to BusClientPolicy
1389
1390         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
1391         match change in how policy works
1392
1393         * dbus/dbus-internals.h: mark assert_not_reached as
1394         __attribute((noreturn))__
1395
1396 2003-04-11  Havoc Pennington  <hp@redhat.com>
1397
1398         * doc/dbus-specification.sgml: fix a spot with the wrong name for
1399         the broadcast service. Use boolean return for ServiceExists.
1400
1401 2003-04-11  Havoc Pennington  <hp@redhat.com>
1402
1403         * configure.in: add another directory to look for qt in.
1404
1405 2003-04-11  Havoc Pennington  <hp@redhat.com>
1406
1407         * AUTHORS: add Colin Walters
1408
1409 2003-04-11  Havoc Pennington  <hp@redhat.com>
1410
1411         * NEWS: update
1412
1413         * configure.in: 0.9
1414
1415 2003-04-11  Havoc Pennington  <hp@redhat.com>
1416
1417         * bus/messagebus.in: remove pid file when stopping the
1418         message bus, since the bus won't have privileges to remove it
1419         itself.
1420
1421 2003-04-11  Havoc Pennington  <hp@redhat.com>
1422
1423         * bus/bus.c (bus_context_new): move credentials change after
1424         creating pidfile
1425
1426 2003-04-11  Havoc Pennington  <hp@pobox.com>
1427
1428         * test/decode-gcov.c: add "below average functions" to the
1429         coverage report, and change how some of the code works.
1430
1431         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
1432         not in the coverage stats.
1433
1434         * test/test-service.c (main): use _dbus_verbose not fprintf in a
1435         couple places so running the test suite doesn't result in megaspam.
1436
1437 2003-04-11  Havoc Pennington  <hp@pobox.com>
1438
1439         * bus/dispatch.c (check_existent_service_activation): accept a no
1440         memory error in a place we didn't before
1441
1442         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
1443         in case the first one failed," since the test suite is less
1444         broken now.
1445
1446 2003-04-10  Havoc Pennington  <hp@pobox.com>
1447
1448         * bus/dispatch.c (check_segfault_service_activation): add test
1449         for launching an executable that just crashes.
1450
1451         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
1452         don't leave a million cores. We'll see how portable this is.
1453
1454 2003-04-10  Havoc Pennington  <hp@pobox.com>
1455
1456         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
1457         the possible parent failures before we fork, so that we don't
1458         fail to create a babysitter after creating the child.
1459
1460         * bus/activation.c (bus_activation_activate_service): kill child
1461         if we don't successfully complete the activation.
1462
1463 2003-04-10  Havoc Pennington  <hp@redhat.com>
1464
1465         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
1466         the connection if it's disconnected
1467
1468         * bus/activation.c (bus_activation_service_created): use new
1469         transaction features to roll back removal of pending activation if
1470         we don't successfully create the service after all. Don't remove
1471         pending activation if the function fails.
1472
1473         * dbus/dbus-list.c (_dbus_list_insert_before_link)
1474         (_dbus_list_insert_after_link): new code to facilitate
1475         services.c fixes
1476
1477         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
1478         new functionality, so we can preallocate the ability to insert
1479         into a hash table.
1480
1481         * bus/connection.c (bus_transaction_add_cancel_hook): new function
1482         allowing us to put custom hooks in a transaction to be used for
1483         cancelling said transaction
1484
1485         * doc/dbus-specification.sgml: add some discussion of secondary
1486         service owners, and disallow zero-length service names
1487
1488         * bus/services.c (bus_registry_acquire_service): new function,
1489         splits out part of bus_driver_handle_acquire_service() and fixes
1490         a bug where we didn't remove the service doing the acquiring
1491         from the secondary queue if we failed to remove the current owner
1492         from the front of the queue.
1493
1494 2003-04-10  Alexander Larsson  <alexl@redhat.com>
1495
1496         * doc/dbus-specification.sgml:
1497         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1498
1499 2003-04-10  Alexander Larsson  <alexl@redhat.com>
1500
1501         * bus/.cvsignore:
1502         * glib/.cvsignore:
1503         * test/.cvsignore:
1504         Added files to cvsignore
1505
1506         * dbus/dbus-message.h:
1507         * dbus/dbus-message.c: (dbus_message_iter_get_named):
1508         Make get_named() take two out argument and return a boolean.
1509         (dbus_message_iter_get_args_valist):
1510         Update usage of get_named().
1511         (dbus_message_iter_append_byte):
1512         Fix typo
1513         (dbus_message_iter_append_named)
1514         Fix typo
1515         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1516         More tests.
1517
1518 2003-04-10  Alexander Larsson  <alexl@redhat.com>
1519
1520         * dbus/dbus-marshal.[ch]:
1521         Add array_type_pos argument to _dbus_marshal_validate_arg.
1522         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1523
1524         * dbus/dbus-message.[ch]:
1525         Multi-dimensional arrays have full type specification in the
1526         outermost array. Iter code re-arranged to handle this.
1527         Added some more iter tests.
1528
1529         * doc/dbus-specification.sgml:
1530         Add me to authors.
1531         Remove old FIXME.
1532         Update new array encoding description.
1533         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1534
1535         * test/data/invalid-messages/array-with-mixed-types.message:
1536         * test/data/valid-messages/array-of-array-of-uint32.message:
1537         Change to the new array format.
1538
1539         * test/data/invalid-messages/too-short-dict.message:
1540         Fix bug in test.
1541
1542         * test/data/valid-messages/recursive-types.message:
1543         Fix up and extend test.
1544
1545 2003-04-10  Havoc Pennington  <hp@pobox.com>
1546
1547         * bus/dispatch.c: lots of fixes
1548
1549         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1550         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1551         that was crack, broke the test service.
1552
1553         * dbus/dbus-transport.c (_dbus_transport_open): fix error
1554         handling to avoid piling up errors if we get a failure on the
1555         first address.
1556
1557         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1558         pid in assertion failures.
1559
1560         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1561         to some fixed size of file descriptor array. Don't return TRUE
1562         anytime a timeout exists, that led to lots of busy loop silliness
1563         in the tests.
1564
1565 2003-04-09  Havoc Pennington  <hp@redhat.com>
1566
1567         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1568         I'd checked this in earlier but hadn't.
1569
1570 2003-04-09  Havoc Pennington  <hp@redhat.com>
1571
1572         * bus/dispatch.c (bus_dispatch_test): get a bit further through
1573         the activation test (man this is getting old!)
1574
1575 2003-04-09  Havoc Pennington  <hp@redhat.com>
1576
1577         * test/test-utils.c: use dispatch status function to fix this up
1578
1579         * bus/connection.c (connection_watch_callback): don't dispatch
1580         from here
1581         (connection_timeout_callback): don't dispatch from here
1582         (bus_connections_setup_connection): set the dispatch status function
1583         (bus_connection_disconnected): unset it
1584
1585         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1586         used to add a connection to be dispatched
1587         (_dbus_loop_iterate): do the dispatching at the end of each
1588         iteration
1589
1590         * dbus/dbus-connection.c
1591         (dbus_connection_set_dispatch_status_function): new function
1592         allowing us to fix up main loop usage
1593         (_dbus_connection_last_unref): free all the various function
1594         user data
1595         (dbus_connection_dispatch): call the DispatchStatusFunction
1596         whenever this function returns
1597         (dbus_connection_handle_watch): call DispatchStatusFunction
1598         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1599         (reply_handler_timeout): call DispatchStatusFunction
1600         (dbus_connection_flush): call DispatchStatusFunction
1601
1602 2003-04-09  Havoc Pennington  <hp@redhat.com>
1603
1604         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1605         a memory leak
1606
1607         * bus/dispatch.c (check_service_activated): fix bug in test
1608
1609         * dbus/dbus-mainloop.c (check_timeout): fix this up
1610
1611         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1612         verbose output so we can sort out output from different processes,
1613         e.g. in the activation case.
1614
1615 2003-04-08  Colin Walters  <walters@gnu.org>
1616
1617         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1618         the pid file.
1619         (bus_context_new): Set it.
1620         (bus_context_unref): Use it to delete the pid file.
1621
1622 2003-04-08  Havoc Pennington  <hp@redhat.com>
1623
1624         * test/data/invalid-messages/array-with-mixed-types.message:
1625         regression test that fails for the moment
1626
1627         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1628         tests for convenience
1629
1630         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1631         array of nil, it broke things.
1632
1633         * test/data/invalid-messages/array-of-nil.message: regression test
1634
1635         * test/data/valid-messages/array-of-array-of-uint32.message:
1636         happened to write this so added it to suite
1637
1638 2003-04-08  Havoc Pennington  <hp@redhat.com>
1639
1640         * bus/driver.c (bus_driver_handle_acquire_service): init
1641         retval/reply before checking name
1642
1643         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1644         recursion depth argument
1645
1646         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1647         in the public struct for future extension
1648
1649         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1650         typo
1651
1652         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1653         message
1654
1655         * doc/dbus-specification.sgml: fix typo
1656
1657 2003-04-08  Alexander Larsson  <alexl@redhat.com>
1658
1659         Implemented recursive types, named types and new-style iters
1660
1661         * bus/driver.c:
1662         * glib/test-thread-client.c: (thread_func):
1663         * glib/test-thread-server.c: (handle_test_message):
1664         * test/test-service.c: (handle_echo):
1665         Update to new api
1666
1667         * dbus/Makefile.am:
1668         * dbus/dbus-dict.c:
1669         * dbus/dbus-dict.h:
1670         * dbus/dbus.h
1671         Remove DBusDict
1672
1673         * dbus/dbus-internals.c: (_dbus_type_to_string):
1674         Update for new types.
1675
1676         * dbus/dbus-marshal.[ch]:
1677         Implement recursive types and the new marshalling format.
1678         Remove hardcoded dict marshalling.
1679         Marshal named types.
1680
1681         * dbus/dbus-message-builder.c:
1682         Add BYTE_ARRAY.
1683         Remove references to old types
1684
1685         * dbus/dbus-message.[ch]:
1686         New non-refcounted iter API that supports recursive iters.
1687         Use iters for appending, including support for recursive
1688         iters.
1689         Add byte and named type support.
1690         Update everything to new marshalling formats.
1691         Add tests for new API.
1692
1693         * dbus/dbus-protocol.h:
1694         Remove old array types.
1695         Add types: BYTE, ARRAY, DICT, NAMED
1696
1697         * dbus/dbus-string.c:
1698         * dbus/dbus-sysdeps.c:
1699         Make parse_double locale safe.
1700
1701         * dbus/dbus-test-main.c:
1702         Call setlocale.
1703
1704         * dbus/dbus-test.c:
1705         Kill dict test
1706
1707         * doc/dbus-specification.sgml:
1708         Update spec
1709
1710         * test/data/incomplete-messages/missing-body.message:
1711         * test/data/invalid-messages/bad-boolean.message:
1712         * test/data/invalid-messages/bad-boolean-array.message:
1713         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1714         * test/data/invalid-messages/boolean-has-no-value.message-raw:
1715         * test/data/invalid-messages/too-short-dict.message:
1716         * test/data/valid-messages/dict-simple.message:
1717         * test/data/valid-messages/dict.message:
1718         * test/data/valid-messages/emptiness.message:
1719         * test/data/valid-messages/lots-of-arguments.message:
1720         * test/data/valid-messages/no-padding.message:
1721         * test/data/valid-messages/recursive-types.message:
1722         Add missing NAME fields
1723         Fix up dicts & arrays
1724
1725         * test/data/invalid-messages/dict-with-nil-value.message:
1726         Removed, this is not invalid anymore.
1727
1728         * test/data/valid-messages/recursive-types.message:
1729         Add new test for deeply recursive types.
1730
1731 2003-04-07  Havoc Pennington  <hp@pobox.com>
1732
1733         * bus/driver.c (bus_driver_handle_acquire_service): return an
1734         error if you try to acquire a service that starts with ':'
1735
1736 2003-04-07  Havoc Pennington  <hp@redhat.com>
1737
1738         * doc/dbus-specification.sgml: require that base service names
1739         start with ':' and that the base service is created/deleted
1740         as first and last things a connection does on the bus
1741
1742         * bus/dispatch.c (check_existent_service_activation): lots more
1743         work on the activation test; it doesn't fully pass yet...
1744
1745         * test/test-service.c (main): fix so we don't memleak the
1746         connection to the message bus
1747         (filter_func): accept a message asking us to exit
1748
1749 2003-04-06  Havoc Pennington  <hp@pobox.com>
1750
1751         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1752         from Colin Walters
1753
1754         * configure.in: fixes to Qt detection from Colin Walters
1755
1756         * doc/Makefile.am: Only remove generated docbook dirs if they
1757         exist, from Colin Walters
1758
1759         * dbus/dbus-bus.c: change how we set well-known connections to
1760         NULL, so that it works if a single connection is stored in
1761         two well-known array slots.
1762
1763         * test/Makefile.am: remove a lot of stuff that isn't immediately
1764         useful, it's in CVS history if we want it.
1765
1766         * test/test-service.c: use dbus-mainloop instead of that
1767         watch.[hc] crack
1768
1769 2003-04-06  Havoc Pennington  <hp@pobox.com>
1770
1771         * dbus/Makefile.am: split lists of sources into stuff that goes in
1772         the library, util functions that go in the lib and are also used
1773         elsewhere, and util functions that are used in tests/daemon but
1774         don't go in the lib.
1775
1776         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1777         here so it can be used in test binaries also
1778
1779 2003-04-06  Havoc Pennington  <hp@pobox.com>
1780
1781         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1782         here in the parent process, so we can return an error if it
1783         fails. Also, move some of the code into the child so the parent
1784         is less hosed if we fail midway through.
1785
1786         * bus/bus.c (bus_context_new): move pidfile detection further up
1787         in the function, before we start overwriting sockets and such.
1788
1789         * bus/messagebus.in: adjust this a bit, not sure if it will work.
1790
1791         * configure.in: add --with-system-pid-file and --with-system-socket
1792
1793 2003-04-06  Colin Walters  <walters@verbum.org>
1794
1795         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1796
1797         * bus/system.conf.in: Declare a pidfile.
1798
1799         * bus/bus.c (bus_context_new): Test for an existing pid file, and
1800         create one (if appropriate).
1801
1802         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1803         (struct BusConfigParser) [pidfile]: New.
1804         (element_type_to_name, merge_included, start_busconfig_child)
1805         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1806         (bus_config_parser_unref): Free it.
1807         (bus_config_parser_get_pidfile): New function.
1808
1809         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1810
1811         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1812
1813         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1814
1815         * dbus/dbus-sysdeps.h: Prototype it.
1816
1817 2003-04-06  Havoc Pennington  <hp@pobox.com>
1818
1819         * bus/bus.c (bus_context_new): print the address in here, rather
1820         than in main(), because we need to do it before forking the daemon
1821
1822         * bus/dispatch.c (send_service_nonexistent_error): set the sender
1823         on the service nonexistent error
1824
1825         * bus/driver.c (bus_driver_handle_acquire_service): set the
1826         sender on the AcquireService reply
1827
1828         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1829         server also listen on a UNIX socket so services can connect to it.
1830
1831 2003-04-06  Havoc Pennington  <hp@pobox.com>
1832
1833         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1834         so it detects deadlocks and also we actually init threads when
1835         debugging.
1836
1837 2003-04-06  Havoc Pennington  <hp@pobox.com>
1838
1839         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1840         save the domain socket name, and unlink it when we disconnect the
1841         server. Means that at least when we exit normally, we won't leave
1842         a bunch of junk in /tmp
1843
1844         * dbus/dbus-transport-unix.c
1845         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1846         memory management). (I was making a real change here but then
1847         didn't)
1848
1849 2003-04-06  Havoc Pennington  <hp@pobox.com>
1850
1851         * bus/bus.c (bus_context_new): fix wrong handling of
1852         server_data_slot_unref() in the error case.
1853
1854         * dbus/dbus-internals.h (_dbus_assert): change so it passes
1855         "(condition) != 0" to _dbus_real_assert so that
1856         "_dbus_assert (pointer)" doesn't cause a warning
1857
1858         * bus/main.c (main): accept --print-address option to print out
1859         the message bus address
1860
1861         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1862
1863         * dbus/dbus-transport.c (_dbus_transport_open): special error for
1864         "tmpdir" option to unix: address on client side
1865
1866         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1867         to unix: address
1868
1869         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1870         we can use to create sockets in the test suite.
1871
1872         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1873         cleanly. To be used for testing.
1874
1875         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1876
1877         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1878
1879         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1880         handle trying to call this when there's no servers active
1881
1882 2003-04-05  Havoc Pennington  <hp@pobox.com>
1883
1884         * NEWS: update
1885
1886         * configure.in: 0.8
1887
1888 2003-04-05  Havoc Pennington  <hp@pobox.com>
1889
1890         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1891         crash on startup. Need to get "try starting the daemon"
1892         in the test suite I guess. ;-)
1893
1894         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1895         tracked the number of open connections; it's better done in
1896         application-specific code as you want it to span all servers etc.
1897
1898 2003-04-05  Havoc Pennington  <hp@pobox.com>
1899
1900         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1901         patch from Colin Walters
1902
1903 2003-04-05  Havoc Pennington  <hp@pobox.com>
1904
1905         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1906         reality; in fact multiple mechanisms are allowed.
1907
1908         * dbus/dbus-internals.c (_dbus_real_assert)
1909         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1910         _dbus_assert_not_reached() into functions, so that they don't show
1911         up in basic block counts for test coverage, and don't use up as
1912         much disk space. Does mean slower execution speed though, so
1913         assumes --disable-asserts is the normal production case.
1914
1915 2003-04-05  Havoc Pennington  <hp@pobox.com>
1916
1917         * test/Makefile.am (dist-hook): also dist *.in files
1918
1919         * NEWS: update
1920
1921         * configure.in: 0.7
1922
1923 2003-04-05  Havoc Pennington  <hp@pobox.com>
1924
1925         * dbus/dbus-string.c: docs warning
1926
1927         * dbus/dbus-spawn.c: missing docs
1928
1929         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1930
1931 2003-04-05  Havoc Pennington  <hp@pobox.com>
1932
1933         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1934         magic from GLib
1935
1936         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1937         to -1 once we've reaped the babysitter
1938         (_dbus_babysitter_handle_watch): do as much work as we can, not
1939         just one go of it
1940
1941         * bus/activation.c: add code using DBusBabysitter so that we
1942         handle it when a service fails to start up properly.
1943         (bus_activation_service_created): don't remove the activation
1944         entries as we go, just let them get removed when we free the pending
1945         activation. Unref reply messages after sending them.
1946
1947 2003-04-05  Havoc Pennington  <hp@pobox.com>
1948
1949         * test/decode-gcov.c (main): print per-directory stats in the report
1950
1951         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1952
1953 2003-04-05  Havoc Pennington  <hp@pobox.com>
1954
1955         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1956
1957         * test/decode-gcov.c: hack up a little program to suck data
1958         out of gcov files. Yes this is sort of silly.
1959
1960         * configure.in: define something in config.h and do an
1961         AM_CONDITIONAL when gcov is enabled
1962
1963 2003-04-04  Havoc Pennington  <hp@redhat.com>
1964
1965         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1966         return a "babysitter" object that is used to monitor the status of
1967         the spawned process and reap it when required.
1968
1969         * test/test-segfault.c, test/test-exit.c,
1970         test/test-sleep-forever.c: binaries that do various lame things,
1971         used in the test suite.
1972
1973         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1974
1975 2003-04-03  Havoc Pennington  <hp@pobox.com>
1976
1977         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1978         in preparation for modifying it, dbus-sysdeps is getting
1979         a bit unmanageable.
1980
1981 2003-04-03  Havoc Pennington  <hp@redhat.com>
1982
1983         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1984         have multiple ones
1985
1986         * bus/*.[hc]: adapt to mainloop change
1987
1988 2003-04-03  Havoc Pennington  <hp@redhat.com>
1989
1990         * bus/activation.c (load_directory): fix up memleaks
1991         (bus_activation_entry_free): free the entry
1992
1993         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1994         we get one from the message bus; fix memleaks.
1995
1996         * dbus/dbus-message.c (dbus_set_error_from_message): new function
1997
1998 2003-04-03  Havoc Pennington  <hp@pobox.com>
1999
2000         * bus/config-parser.c (bus_config_parser_unref): free
2001         list of mechanisms, bug discovered by test suite enhancements
2002         (putting system.conf and session.conf into suite)
2003
2004         * test/Makefile.am, test/test-service.c: add placeholder for a
2005         test service that we'll activate as part of test suite. Doesn't
2006         do anything yet.
2007
2008         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
2009         setting NULL value, and use system malloc not dbus_malloc()
2010         when we have unavoidable memleakage.
2011
2012         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
2013         didn't work, and support DBUS_BUS_ACTIVATION.
2014
2015         * bus/activation.c (child_setup): pass our well-known bus type to
2016         the child
2017
2018         * bus/config-parser.c: support <type> to specify well-known type
2019
2020         * doc/dbus-specification.sgml: document the env variables to
2021         locate well-known buses and find service activator
2022
2023 2003-04-02  Havoc Pennington  <hp@redhat.com>
2024
2025         * test/Makefile.am (all-local): add a rule to copy tests to
2026         builddir, so we can have generated tests. Use this to remove the
2027         silly hack for testing system.conf and session.conf. Will use this
2028         shortly to generate .service files pointing to test binaries.
2029
2030 2003-04-02  Havoc Pennington  <hp@redhat.com>
2031
2032         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
2033         current alloc and needed new length, not max of the doubled
2034         allocation and needed new length. Also, when building tests,
2035         don't do the double-allocation stuff, just realloc every time.
2036
2037 2003-04-02  Havoc Pennington  <hp@redhat.com>
2038
2039         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
2040         in error messages
2041         (_dbus_string_get_dirname): new
2042         (_dbus_sysdeps_test): new
2043         (_dbus_directory_open): include dirnames in error messages
2044
2045         * bus/config-parser.c: interpret <include> and <includedir> and
2046         <servicedir> relative to config file location if the given
2047         filename is not absolute.
2048
2049         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
2050
2051 2003-04-02  Havoc Pennington  <hp@redhat.com>
2052
2053         * bus/connection.c (bus_transaction_send_error_reply): set sender
2054         service for the error, and unref the reply on success
2055
2056         * bus/activation.c: convert to use BusTransaction so OOM can be
2057         handled correctly
2058         (bus_activation_service_created): set sender of the message
2059
2060 2003-04-01  Havoc Pennington  <hp@redhat.com>
2061
2062         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
2063         <includedir> (at least mostly)
2064
2065         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
2066         first, then the user ID
2067
2068 2003-04-01  Havoc Pennington  <hp@pobox.com>
2069
2070         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
2071         function
2072
2073         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
2074
2075         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
2076
2077         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
2078         socket 0777, and unlink any existing socket.
2079
2080         * bus/bus.c (bus_context_new): change our UID/GID and fork if
2081         the configuration file so specifies; set up auth mechanism
2082         restrictions
2083
2084         * bus/config-parser.c (bus_config_parser_content): add support
2085         for <fork> option and fill in code for <auth>
2086
2087         * bus/system.conf.in: add <fork/> to default configuration,
2088         and limit auth mechanisms to EXTERNAL
2089
2090         * doc/config-file.txt (Elements): add <fork>
2091
2092         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
2093         (_dbus_change_identity): new function
2094
2095 2003-03-31  Havoc Pennington  <hp@redhat.com>
2096
2097         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
2098         (_dbus_listen_unix_socket): fix off-by-one error in null
2099         termination spotted by Nalin
2100
2101 2003-03-31  Havoc Pennington  <hp@redhat.com>
2102
2103         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
2104         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
2105         having a real home directory available.
2106
2107 2003-03-31  Havoc Pennington  <hp@redhat.com>
2108
2109         * bus/Makefile.am (install-data-hook): create /var/run/dbus
2110
2111         * bus/messagebus.in: add init script for Red Hat /etc/init.d
2112
2113         * configure.in: add support for specifying a style of init script
2114         to install
2115
2116 2003-03-31  Havoc Pennington  <hp@redhat.com>
2117
2118         Fix some annoying DBusString API and fix all affected code.
2119
2120         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
2121         max_length argument
2122         (_dbus_string_get_data): change to return string instead of using
2123         an out param
2124         (_dbus_string_get_const_data): ditto
2125         (_dbus_string_get_data_len): ditto
2126         (_dbus_string_get_const_data_len): ditto
2127
2128 2003-03-31  Havoc Pennington  <hp@redhat.com>
2129
2130         * bus/main.c (main): fix up the command line arguments to be nicer
2131
2132 2003-03-31  Havoc Pennington  <hp@redhat.com>
2133
2134         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
2135         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
2136         final location that lands in the config file
2137
2138         * bus/config-loader-expat.c (bus_config_load): fix type of
2139         XML_Parser variable
2140
2141         * doc/TODO: remove TODO item for dbus_bus_get()
2142
2143         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
2144
2145 2003-03-31  Havoc Pennington  <hp@pobox.com>
2146
2147         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
2148         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
2149         argument since they are always client side
2150
2151         * dbus/dbus-server.c (dbus_server_get_address): new function
2152
2153         * bus/main.c (main): take the configuration file as an argument.
2154
2155         * test/data/valid-config-files/debug-allow-all.conf: new file to
2156         use with dispatch.c tests for example
2157
2158         * bus/test-main.c (main): require test data dir
2159
2160         * bus/bus.c (bus_context_new): change this to take a
2161         configuration file name as argument
2162
2163         * doc/config-file.txt (Elements): add <servicedir>
2164
2165         * bus/system.conf, bus/session.conf: new files
2166
2167         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
2168         well-known socket if none set
2169
2170         * configure.in: create system.conf and session.conf
2171
2172 2003-03-30  Havoc Pennington  <hp@pobox.com>
2173
2174         * bus/config-parser.c: hacking
2175
2176         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
2177         to shut down, since it could cause weirdness with the DBusList
2178         lock
2179
2180         * dbus/dbus-list.c (_dbus_list_test): add tests for the
2181         link-oriented stack routines
2182         (alloc_link): free the mempool if the first alloc from it fails
2183
2184         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
2185
2186         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
2187         from GLib
2188         (_dbus_string_skip_white): new
2189
2190         * doc/config-file.txt (Elements): add <includedir>
2191
2192 2003-03-28  Havoc Pennington  <hp@pobox.com>
2193
2194         * dbus/dbus-string.c (_dbus_string_copy_data_len)
2195         (_dbus_string_copy_data): new functions
2196
2197 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
2198
2199         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
2200         * dbus/dbus-bus.h:
2201         Add dbus_bus_get.
2202
2203         * dbus/dbus-memory.c:
2204         Fix a doc comment.
2205
2206 2003-03-28  Havoc Pennington  <hp@pobox.com>
2207
2208         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
2209         I think it may have just been superstition. Not sure.
2210
2211         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
2212         failures that were not being handled.
2213
2214         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
2215
2216         * dbus/dbus-memory.c: add ability to set number of mallocs in a
2217         row that will fail on out-of-memory.
2218
2219         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
2220         function for testing out-of-memory handling.
2221
2222         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
2223         allocation functions, they do map exactly to the expat ones.
2224
2225 2003-03-27  Havoc Pennington  <hp@redhat.com>
2226
2227         * bus/config-loader-libxml.c (bus_config_load): add another error
2228         check
2229
2230 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
2231
2232         * doc/TODO:
2233         Add note about automatic service activation.
2234
2235         * doc/dbus-specification.sgml:
2236         Rename the specification and clarify a few things.
2237
2238 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
2239
2240         * Doxyfile.in:
2241         * dbus/dbus-address.c:
2242         * dbus/dbus-dict.c:
2243         * dbus/dbus-marshal.c:
2244         * dbus/dbus-server-debug-pipe.c:
2245         * dbus/dbus-transport-unix.c:
2246         Fix documentation warnings.
2247
2248 2003-03-26  Havoc Pennington  <hp@pobox.com>
2249
2250         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
2251         after every test so it's quick and easy to see which leaked, and
2252         so we test multiple dbus_shutdown() calls
2253
2254         * configure.in: change configure.in XML stuff to also support
2255         expat
2256
2257         * config-loader-libxml.c: some hacking
2258
2259         * config-loader-expat.c: some hacking
2260
2261         * config-parser.c: some hacking, plus tests
2262
2263 2003-03-25  Havoc Pennington  <hp@redhat.com>
2264
2265         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
2266
2267         * configure.in: add --with-xml option to specify XML library,
2268         right now only libxml is supported.
2269
2270         * bus/config-loader-libxml.c, config-parser.c: sync some minor
2271         nonworking code between home and work, still just stubs
2272
2273 2003-03-24  Havoc Pennington  <hp@redhat.com>
2274
2275         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
2276         file
2277
2278         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
2279         NULL argument for "message" if the error is a well-known one,
2280         fill in a generic message in this case.
2281
2282         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
2283         favor of DBusError
2284
2285         * bus/test.c (bus_test_flush_bus): add
2286
2287         * bus/policy.c (bus_policy_test): test code stub
2288
2289 2003-03-24  Havoc Pennington  <hp@pobox.com>
2290
2291         * bus/connection.c (bus_connections_setup_connection): set up
2292         the "can this user connect" function, but it always returns
2293         TRUE until we have a config file parser so we can have a config
2294         file that allows connections.
2295
2296 2003-03-23  Havoc Pennington  <hp@pobox.com>
2297
2298         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
2299         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
2300         the mutex, so we can check for proper memory management
2301         and OOM handling.
2302
2303         * dbus/dbus-dataslot.c: remove the mutex from
2304         DBusDataSlotAllocator and lock it manually when using it,
2305         to simplify fitting it into the global slots framework.
2306
2307         * dbus/dbus-threads.c (init_static_locks): rework how we're
2308         handling global locks so they are easily shut down.
2309
2310         * bus/policy.c (bus_policy_append_rule): fix
2311
2312         * bus/test-main.c (main): check for memleaks
2313
2314         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
2315         test suite check for memleaks
2316
2317         * dbus/dbus-memory.c: add support in test mode for tracking
2318         number of outstanding blocks
2319
2320 2003-03-23  Havoc Pennington  <hp@pobox.com>
2321
2322         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
2323         policies code
2324
2325         * dbus/dbus-hash.h: add ULONG hash keys
2326
2327         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
2328         (_dbus_get_group_id): new function
2329
2330 2003-03-20  Havoc Pennington  <hp@redhat.com>
2331
2332         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
2333         new function
2334         (dbus_connection_get_unix_user): new function
2335
2336 2003-03-20  Havoc Pennington  <hp@pobox.com>
2337
2338         * bus/connection.c (bus_connection_send_oom_error): assert that
2339         message has a sender
2340         (connection_execute_transaction): ditto
2341         (bus_connection_preallocate_oom_error): fix to set the sender, and
2342         set recipient to the destination service, not the bus driver
2343
2344         * bus/policy.c: hacking
2345
2346         * dbus/dbus-message.c (dbus_message_service_is): new function
2347         (dbus_message_sender_is): new
2348
2349 2003-03-19  Havoc Pennington  <hp@redhat.com>
2350
2351         * bus/policy.c: start sketching code for policy restrictions on
2352         what connections can do.
2353
2354 2003-03-18  Havoc Pennington  <hp@redhat.com>
2355
2356         * doc/TODO: some notes on high-level todo items. Little nitpick
2357         stuff is all in @todo, so no need to add it here.
2358
2359         * doc/config-file.txt: some notes on how config file might look
2360
2361 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
2362
2363         * configure.in: 0.6
2364
2365         * NEWS: Update.
2366
2367 2003-03-17  Havoc Pennington  <hp@redhat.com>
2368
2369         * dbus/dbus-internals.h: add gcc attributes so that
2370         our printf-style functions warn on bad arguments to
2371         format
2372
2373         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
2374         format bug
2375
2376         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2377         printf format bug
2378
2379 2003-03-17  Havoc Pennington  <hp@redhat.com>
2380
2381         * bus/test-main.c (main): make it print something as it runs
2382         so make check doesn't look stuck
2383
2384         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
2385         from CVS, now obsolete
2386
2387 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
2388
2389         * bus/dispatch.c: (bus_dispatch):
2390         Refetch the service name since it may have been reallocated
2391         when dbus_message_set_sender was called.
2392
2393         * dbus/dbus-sysdeps.c: (_dbus_accept):
2394         Add address and address length variables and use them to stop
2395         valgrind from complaining.
2396
2397 2003-03-17  Havoc Pennington  <hp@pobox.com>
2398
2399         All tests pass, no memleaks, no valgrind complaints.
2400
2401         * bus/test.c: refcount handler_slot
2402
2403         * bus/connection.c (bus_connections_new): refcount
2404         connection_data_slot
2405
2406         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
2407         bytes so that auth scripts pass.
2408
2409         * bus/dispatch.c: init message_handler_slot so it gets allocated
2410         properly
2411
2412         * bus/dispatch.c (message_handler_slot_ref): fix memleak
2413
2414         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
2415         dealloc server_pipe_hash when no longer used for benefit of
2416         leak checking
2417
2418         * dbus/dbus-auth.c (process_command): memleak fix
2419
2420         * bus/dispatch.c (check_hello_message): memleak fix
2421
2422 2003-03-16  Havoc Pennington  <hp@pobox.com>
2423
2424         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
2425
2426 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
2427
2428         * bus/activation.c (bus_activation_activate_service): Append
2429         the pending activation entry to the list of pending activations.
2430
2431 2003-03-16  Havoc Pennington  <hp@pobox.com>
2432
2433         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
2434         connections
2435
2436         * dbus/dbus-address.c (create_entry): fix OOM handling when
2437         failing to alloc entry->method
2438
2439 2003-03-16  Havoc Pennington  <hp@pobox.com>
2440
2441         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
2442         the watch
2443
2444         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2445         add some missing dbus_set_result
2446
2447         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
2448         alloc the DBusMessageHandler
2449
2450         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
2451         the transport here, since we call this from the finalizer; it
2452         resulted in a double-finalize.
2453
2454         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
2455         where we tried to use transport->connection that was NULL,
2456         happened when transport was disconnected early on due to OOM
2457
2458         * bus/*.c: adapt to handle OOM for watches/timeouts
2459
2460         * dbus/dbus-transport-unix.c: port to handle OOM during
2461         watch handling
2462
2463         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
2464         reference to unused bytes instead of a copy
2465
2466         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
2467         out of memory
2468
2469         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
2470         FALSE on OOM
2471
2472         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
2473         of memory
2474
2475 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
2476
2477         * doc/dbus-specification.sgml:
2478         Document reply message for ActivateService.
2479
2480 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
2481
2482         * bus/activation.c: (bus_pending_activation_entry_free),
2483         (bus_pending_activation_free), (bus_activation_new),
2484         (bus_activation_unref), (bus_activation_service_created),
2485         (bus_activation_activate_service):
2486         * bus/activation.h:
2487         * bus/bus.c: (bus_context_new):
2488         * bus/desktop-file.c: (new_section):
2489         * bus/driver.c: (bus_driver_send_service_deleted),
2490         (bus_driver_handle_activate_service):
2491         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
2492         * bus/services.h:
2493         * dbus/dbus-connection.c:
2494         (dbus_connection_send_with_reply_and_block):
2495         * dbus/dbus-message.c: (dbus_message_append_args_valist):
2496         * dbus/dbus-protocol.h:
2497         Make activation work better. Now pending activations will be queued
2498         and the daemon won't try to activate services that are already registered.
2499
2500 2003-03-16  Havoc Pennington  <hp@pobox.com>
2501
2502         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2503         connection data
2504
2505         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2506         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2507
2508 2003-03-16  Havoc Pennington  <hp@pobox.com>
2509
2510         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2511         this. always run the test suite before commit...
2512
2513         * bus/*: adapt to DBusConnection API changes
2514
2515         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2516         requires renaming stuff to avoid dbus_connection_dispatch name
2517         conflict.
2518
2519         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2520         function
2521
2522         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2523         separate from _dbus_message_loader_return_buffer()
2524
2525         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2526         this, because it's now always broken to use; the number of
2527         messages in queue vs. the number still buffered by the message
2528         loader is undefined/meaningless. Should use
2529         dbus_connection_get_dispatch_state().
2530         (dbus_connection_dispatch): rename from
2531         dbus_connection_dispatch_message
2532
2533 2003-03-16  Havoc Pennington  <hp@pobox.com>
2534
2535         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2536         implementation
2537
2538 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
2539
2540         * dbus/dbus-connection.c:
2541         (dbus_connection_send_with_reply_and_block):
2542         Decrease connection->n_incoming when removing an entry
2543         from the list.
2544         * dbus/dbus-dict.c: (dbus_dict_entry_free),
2545         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2546         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2547         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2548         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2549         (dbus_dict_get_byte_array):
2550         Handle NULL arrays and strings. Also add support for byte arrays.
2551
2552         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2553         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2554         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2555         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2556         (_dbus_demarshal_dict), (demarshal_and_validate_len),
2557         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2558         * dbus/dbus-marshal.h:
2559         Add support for marshalling and demarshalling empty arrays and strings.
2560
2561         * dbus/dbus-message.c: (dbus_message_append_args_valist),
2562         (dbus_message_append_string_array),
2563         (dbus_message_iter_get_boolean),
2564         (dbus_message_iter_get_boolean_array),
2565         (dbus_message_iter_get_int32_array),
2566         (dbus_message_iter_get_uint32_array),
2567         (dbus_message_iter_get_double_array),
2568         (dbus_message_iter_get_byte_array),
2569         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2570         (check_message_handling):
2571         Add support for getting empty arrays and dicts.
2572
2573         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2574         Don't do any validation at all for now, that's better than just checking
2575         for ASCII.
2576
2577         * test/data/valid-messages/emptiness.message:
2578         New test message with lots of empty arrays.
2579
2580 2003-03-16  Havoc Pennington  <hp@pobox.com>
2581
2582         * dbus/dbus-connection.c
2583         (_dbus_connection_queue_received_message_link): new function that
2584         can't fail due to OOM
2585
2586         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2587         new function pops a message together with a list link
2588         containing it.
2589
2590         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2591         message queuing functions to avoid needing to alloc memory
2592
2593 2003-03-16  Havoc Pennington  <hp@pobox.com>
2594
2595         Oops - test code was only testing failure of around 30 of the
2596         mallocs in the test path, but it turns out there are 500+
2597         mallocs. I believe this was due to misguided linking setup such
2598         that there was one copy of dbus_malloc etc. in the daemon and one
2599         in the shared lib, and only daemon mallocs were tested. In any
2600         case, the test case now tests all 500+ mallocs, and doesn't pass
2601         yet, though there are lots of fixes in this patch.
2602
2603         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2604         this so that it doesn't need to allocate memory, since it
2605         has no way of indicating failure due to OOM (and would be
2606         annoying if it did).
2607
2608         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2609
2610         * bus/Makefile.am: rearrange to create two self-contained
2611         libraries, to avoid having libraries with overlapping symbols.
2612         that was resulting in weirdness, e.g. I'm pretty sure there
2613         were two copies of global static variables.
2614
2615         * dbus/dbus-internals.c: move the malloc debug stuff to
2616         dbus-memory.c
2617
2618         * dbus/dbus-list.c (free_link): free list mempool if it becomes
2619         empty.
2620
2621         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2622
2623         * dbus/dbus-address.c (dbus_parse_address): free list nodes
2624         on failure.
2625
2626         * bus/dispatch.c (bus_dispatch_add_connection): free
2627         message_handler_slot when no longer using it, so
2628         memory leak checkers are happy for the test suite.
2629
2630         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2631
2632         * bus/bus.c (new_connection_callback): disconnect in here if
2633         bus_connections_setup_connection fails.
2634
2635         * bus/connection.c (bus_connections_unref): fix to free the
2636         connections
2637         (bus_connections_setup_connection): if this fails, don't
2638         disconnect the connection, just be sure there are no side
2639         effects.
2640
2641         * dbus/dbus-string.c (undo_alignment): unbreak this
2642
2643         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2644         leaking
2645         (_dbus_auth_new): fix the order in which we free strings
2646         on OOM failure
2647
2648         * bus/connection.c (bus_connection_disconnected): fix to
2649         not send ServiceDeleted multiple times in case of memory
2650         allocation failure
2651
2652         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2653         get the base service name
2654         (dbus_bus_register_client): don't return base service name,
2655         instead store it on the DBusConnection and have an accessor
2656         function for it.
2657         (dbus_bus_register_client): rename dbus_bus_register()
2658
2659         * bus/dispatch.c (check_hello_message): verify that other
2660         connections on the bus also got the correct results, not
2661         just the one sending hello
2662
2663 2003-03-15  Havoc Pennington  <hp@pobox.com>
2664
2665         Make it pass the Hello handling test including all OOM codepaths.
2666         Now to do other messages...
2667
2668         * bus/services.c (bus_service_remove_owner): fix crash when
2669         removing owner from an empty list of owners
2670         (bus_registry_ensure): don't leave service in the list of
2671         a connection's owned services if we fail to put the service
2672         in the hash table.
2673
2674         * bus/connection.c (bus_connection_preallocate_oom_error): set
2675         error flag on the OOM error.
2676
2677         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2678         handle _dbus_transport_set_connection failure
2679
2680         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2681         to create watches up front and simply enable/disable them as
2682         needed.
2683         (unix_connection_set): this can now fail on OOM
2684
2685         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2686         of enabling/disabling a watch or timeout.
2687
2688         * bus/loop.c (bus_loop_iterate): don't touch disabled
2689         watches/timeouts
2690
2691         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2692
2693 2003-03-15  Havoc Pennington  <hp@pobox.com>
2694
2695         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2696         write useful test code, after all that futzing around ;-)
2697
2698         Test does not yet pass because we can't handle OOM in
2699         _dbus_transport_messages_pending (basically,
2700         dbus_connection_preallocate_send() does not prealloc the write
2701         watch). To fix this, I think we need to add new stuff to
2702         set_watch_functions, namely a SetEnabled function so we can alloc
2703         the watch earlier, then enable it later.
2704
2705         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2706         dbus-memory.c to the convenience lib
2707
2708         * bus/test.c: rename some static functions to keep them clearly
2709         distinct from stuff in connection.c. Handle client disconnection.
2710
2711 2003-03-14  Havoc Pennington  <hp@pobox.com>
2712
2713         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2714         transport, tests more of the real codepath. Set up clients
2715         with bus_setup_debug_client.
2716
2717         * bus/test.c (bus_setup_debug_client): function to set up debug
2718         "clients" on the main loop
2719
2720         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2721         support
2722
2723         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2724         server type
2725
2726         * dbus/dbus-server-debug.c: support a debug server based on pipes
2727
2728         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2729         (_dbus_close): new function
2730
2731         * configure.in: check for socketpair
2732
2733 2003-03-14  Havoc Pennington  <hp@redhat.com>
2734
2735         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2736         cheesy hack
2737
2738         * dbus/dbus-transport-debug.c: rework this a good bit to be
2739         less complicated. hopefully still works.
2740
2741         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2742         manually
2743
2744         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2745         after running it
2746
2747         * dbus/dbus-message.c (dbus_message_copy): rename from
2748         dbus_message_new_from_message, fix it up to copy
2749         all the message fields, add test case
2750
2751         * bus/dispatch.c (bus_dispatch_test): add some more test code,
2752         not quite passing yet
2753
2754 2003-03-14  Havoc Pennington  <hp@pobox.com>
2755
2756         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2757         until no work remains" in test code. (the large diff here
2758         is just code movement, no actual changes)
2759
2760         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2761         1, no point waiting around for test code.
2762         (_dbus_server_debug_accept_transport): unref the timeout
2763         after adding it (right?)
2764
2765         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2766
2767 2003-03-13  Havoc Pennington  <hp@redhat.com>
2768
2769         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2770         out of memory
2771
2772         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2773         of memory
2774
2775         * dbus/dbus-connection.h: Make AddWatchFunction and
2776         AddTimeoutFunction return a bool so they can fail on out-of-memory
2777
2778         * bus/bus.c (bus_context_new): set up timeout handlers
2779
2780         * bus/connection.c (bus_connections_setup_connection): set up
2781         timeout handlers
2782
2783         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2784         can fail
2785
2786         * bus/bus.c (bus_context_new): adapt to changes
2787
2788         * bus/connection.c: adapt to changes
2789
2790         * test/watch.c: adapt to DBusWatch changes
2791
2792         * bus/dispatch.c (bus_dispatch_test): started adding this but
2793         didn't finish
2794
2795 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
2796
2797         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2798
2799 2003-03-13  Havoc Pennington  <hp@pobox.com>
2800
2801         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2802         set up a test framework as for the library
2803
2804 2003-03-12  Havoc Pennington  <hp@pobox.com>
2805
2806         Throughout: purge global variables, introduce BusActivation,
2807         BusConnections, BusRegistry, etc. objects instead.
2808
2809         * bus/bus.h, bus/bus.c: introduce BusContext as a global
2810         message bus object
2811
2812         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2813         going to redo this a bit differently I think
2814
2815 2003-03-12  Havoc Pennington  <hp@redhat.com>
2816
2817         Mega-patch that gets the message bus daemon initially handling
2818         out-of-memory. Work still needed. Also lots of random
2819         moving stuff to DBusError instead of ResultCode.
2820
2821         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2822
2823         * dbus/dbus-connection.c
2824         (dbus_connection_send_with_reply_and_block): use DBusError
2825
2826         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2827         DBusResultCode
2828
2829         * dbus/dbus-connection.c (dbus_connection_send): drop the result
2830         code here, as the only failure possible is OOM.
2831
2832         * bus/connection.c (bus_connection_disconnect):
2833         rename bus_connection_disconnected as it's a notification only
2834
2835         * bus/driver.c (bus_driver_handle_acquire_service): don't free
2836         "name" on get_args failure, should be done by get_args;
2837         don't disconnect client for bad args, just return an error.
2838         (bus_driver_handle_service_exists): ditto
2839
2840         * bus/services.c (bus_services_list): NULL-terminate returned array
2841
2842         * bus/driver.c (bus_driver_send_service_lost)
2843         (bus_driver_send_service_acquired): send messages from driver to a
2844         specific client to the client's unique name, not to the broadcast
2845         service.
2846
2847         * dbus/dbus-message.c (decode_header_data): reject messages that
2848         contain no name field
2849         (_dbus_message_get_client_serial): rename to
2850         dbus_message_get_serial and make public
2851         (_dbus_message_set_serial): rename from set_client_serial
2852         (_dbus_message_set_reply_serial): make public
2853         (_dbus_message_get_reply_serial): make public
2854
2855         * bus/connection.c (bus_connection_foreach): allow stopping
2856         iteration by returning FALSE from foreach function.
2857
2858         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2859         (dbus_connection_free_preallocated_send)
2860         (dbus_connection_preallocate_send): new API for sending a message
2861         without possibility of malloc failure.
2862         (dbus_connection_send_message): rename to just
2863         dbus_connection_send (and same for whole function family)
2864
2865         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2866
2867         * dbus/dbus-sysdeps.c (_dbus_exit): new function
2868
2869         * bus/activation.c: handle/return errors
2870
2871         * dbus/dbus-errors.h: add more DBUS_ERROR #define
2872
2873         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2874         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2875         (_dbus_result_from_errno): move to this file
2876
2877 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
2878
2879         * dbus/dbus-marshal.c:
2880         (_dbus_marshal_set_string):
2881         Take a length argument so we can marshal the correct string
2882         length.
2883
2884         (_dbus_marshal_dict), (_dbus_demarshal_dict),
2885         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2886         (_dbus_marshal_test):
2887         * dbus/dbus-marshal.h:
2888         Add support for marshalling and demarshalling dicts.
2889
2890         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2891         Add support for TYPE DICT.
2892
2893         * dbus/dbus-message.c: (set_string_field):
2894         Adjust header padding.
2895
2896         (dbus_message_append_args_valist), (dbus_message_append_dict),
2897         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2898         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2899         (check_message_handling), (check_have_valid_message):
2900         * dbus/dbus-message.h:
2901         Add functions for setting and getting dicts.
2902
2903         * dbus/dbus-protocol.h:
2904         Add DBUS_TYPE_DICT.
2905
2906         * dbus/dbus.h:
2907         Add dbus-dict.h
2908
2909         * doc/dbus-specification.sgml:
2910         Add information about how dicts are marshalled.
2911
2912         * test/data/invalid-messages/dict-with-nil-value.message:
2913         * test/data/invalid-messages/too-short-dict.message:
2914         * test/data/valid-messages/dict-simple.message:
2915         * test/data/valid-messages/dict.message:
2916         Add sample messages containing dicts.
2917
2918 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
2919
2920         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2921
2922 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
2923
2924         * dbus/Makefile.am:
2925         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2926         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2927         (dbus_dict_set_int32), (dbus_dict_set_uint32),
2928         (dbus_dict_set_double), (dbus_dict_set_string),
2929         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2930         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2931         (dbus_dict_set_string_array), (_dbus_dict_test):
2932         * dbus/dbus-dict.h:
2933         Fix according to comments from Havoc.
2934
2935 2003-03-06  Michael Meeks  <michael@server.home>
2936
2937         * configure.in: if we don't have kde-config, disable have_qt.
2938
2939 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
2940
2941         * dbus/Makefile.am:
2942         Add dbus-dict.[ch]
2943
2944         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2945         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2946         (dbus_dict_remove), (dbus_dict_get_value_type),
2947         (dbus_dict_get_keys), (dbus_dict_put_boolean),
2948         (dbus_dict_put_int32), (dbus_dict_put_uint32),
2949         (dbus_dict_put_double), (dbus_dict_put_string),
2950         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2951         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2952         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2953         (dbus_dict_get_int32), (dbus_dict_get_uint32),
2954         (dbus_dict_get_double), (dbus_dict_get_string),
2955         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2956         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2957         (dbus_dict_get_string_array), (_dbus_dict_test):
2958         * dbus/dbus-dict.h:
2959         Add DBusDict implementation
2960
2961         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2962         * dbus/dbus-test.h:
2963         Add _dbus_dict_test
2964
2965 2003-03-04  Havoc Pennington  <hp@pobox.com>
2966
2967         * test/data/auth/*: adapt to changes
2968
2969         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2970         USERID_BASE64 and change USERNAME_BASE64 to put in username not
2971         userid
2972
2973         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2974         more stuff from being in a context name, to make the protocol
2975         simpler to deal with
2976
2977         * dbus/dbus-errors.c (dbus_error_has_name): new function
2978         (dbus_error_is_set): new function
2979
2980         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2981         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2982
2983         * dbus/dbus-connection.c (dbus_connection_flush): also read
2984         messages during a flush operation
2985
2986         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2987
2988 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2989
2990         * configure.in: Check for gethostbyname on Solaris.
2991
2992         * dbus/dbus-transport.c: (_dbus_transport_open):
2993         Remove duplicate "tcp" entry.
2994
2995         * doc/dbus-specification.sgml:
2996         Clarify some things.
2997
2998 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2999
3000         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
3001         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
3002         (_dbus_keyring_test):
3003         * dbus/dbus-md5.c: (_dbus_md5_compute):
3004         * dbus/dbus-sha.c: (_dbus_sha_compute):
3005         Plug memory leaks.
3006
3007 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
3008
3009         * README: Add some things.
3010
3011 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
3012
3013         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
3014         after case DBUS_TYPE_BOOELAN.
3015
3016 2003-03-02  Havoc Pennington  <hp@pobox.com>
3017
3018         * test/break-loader.c (randomly_set_extreme_ints): add test that
3019         sets really huge and small integers
3020
3021         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
3022         that length of boolean array fits in the string, and that
3023         string has room for boolean value in single-bool case.
3024
3025         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
3026         optional value to "ALIGN" command which is what to fill the
3027         alignment with.
3028
3029         * test/data/valid-messages/no-padding.message: add regression
3030         test for the message padding problem
3031
3032 2003-03-02  Havoc Pennington  <hp@pobox.com>
3033
3034         * dbus/dbus-message.c (decode_header_data): fix to always init
3035         message_padding, from Benjamin Dauvergne
3036
3037 2003-03-02  Havoc Pennington  <hp@pobox.com>
3038
3039         * configure.in: 0.5
3040
3041         * NEWS: Update.
3042
3043 2003-03-01  Joe Shaw  <joe@assbarn.com>
3044
3045         * configure.in: Check for "struct cmsgcred" and try to access its
3046         members for BSD-like unices.
3047
3048         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
3049         _dbus_read_credentials_unix_socket().
3050         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
3051         read() for reading the credential byte off the unix socket.  Use
3052         struct cmsgcred on systems that support it.
3053
3054 2003-02-27  Alexander Larsson  <alexl@redhat.com>
3055
3056         * glib/Makefile.am:
3057         * configure.in:
3058         Make gthreads-2.0 dependency optional. Don't build thread test if
3059         its not found.
3060
3061 2003-02-27  Havoc Pennington  <hp@pobox.com>
3062
3063         * dbus/dbus-connection.c
3064         (dbus_connection_send_message_with_reply_and_block): fix doh!
3065         doh! doh! bug that resulted in never removing a reply from the
3066         queue, no wonder we called get_reply_serial so much ;-)
3067
3068         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
3069         and client serial instead of demarshaling them every time
3070
3071 2003-02-27  Havoc Pennington  <hp@pobox.com>
3072
3073         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
3074         more inlined, using dbus-string-private.h, speeds things up
3075         substantially
3076
3077         * dbus/dbus-string.c (_dbus_string_free): apply align offset
3078         when freeing the string
3079         (_dbus_string_steal_data): fix for align offset
3080         (undo_alignment): new function
3081
3082 2003-02-26  Havoc Pennington  <hp@redhat.com>
3083
3084         All kinds of audit fixes from Owen, plus initial attempt to
3085         handle unaligned memory returned from malloc.
3086
3087         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
3088         leave room for align_offset and nul byte
3089         (fixup_alignment): function to track an align_offset and
3090         ensure real->str is aligned
3091         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
3092         to allow a nul byte plus align offset
3093         (_dbus_string_lock): fix overflow issue
3094         (_dbus_string_init_const_len): add assertions on sanity of len,
3095         assign allocated to be ALLOCATION_PADDING larger than len
3096         (set_length): fixup the overflow handling
3097         (_dbus_string_get_data_len): fix overflow in assertion
3098         (open_gap): detect overflow in size of gap to be opened
3099         (_dbus_string_lengthen): add overflow check
3100         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
3101         (_dbus_string_append): add overflow check
3102         (_dbus_string_append_unichar): overflow
3103         (_dbus_string_delete): fix overflow in assertion
3104         (_dbus_string_copy_len): overflow in assertion
3105         (_dbus_string_replace_len): overflows in assertions
3106         (_dbus_string_find): change to implement in terms of
3107         _dbus_string_find_to
3108         (_dbus_string_find_to): assorted fixage
3109         (_dbus_string_equal_c_str): assert c_str != NULL,
3110         fix logic so the function works
3111         (_dbus_string_ends_with_c_str): fix overflow thingy
3112         (_dbus_string_base64_encode): overflow fix
3113         (_dbus_string_validate_ascii): overflow
3114         (_dbus_string_validate_nul): overflow
3115
3116 2003-02-26  Havoc Pennington  <hp@redhat.com>
3117
3118         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
3119
3120 2003-02-26  Alexander Larsson  <alexl@redhat.com>
3121
3122         * configure.in:
3123         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
3124
3125         * dbus/dbus-connection.c:
3126         * dbus/dbus-connection.h:
3127         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
3128         Add dbus_connection_set_wakeup_main_function and use it when queueing
3129         incoming and outgoing messages.
3130
3131
3132         * dbus/dbus-dataslot.c:
3133         Threadsafe usage of DBusDataSlotAllocator
3134
3135         * dbus/dbus-message.c: (dbus_message_get_args_iter):
3136         dbus_new can fail.
3137
3138         * dbus/dbus-server-unix.c:
3139         Add todo comment
3140
3141         * glib/dbus-gmain.c:
3142         Implement the new wakeup functions for glib.
3143
3144         * glib/Makefile.am:
3145         * glib/test-thread-client.c:
3146         * glib/test-thread-server.c:
3147         * glib/test-thread.h:
3148         Initial cut at some thread test code. Not really done yet.
3149
3150 2003-02-26  Havoc Pennington  <hp@pobox.com>
3151
3152         * dbus/dbus-connection.c
3153         (dbus_connection_send_message_with_reply_and_block): fix crash
3154         where we ref'd the outgoing message instead of the returned reply
3155
3156         * dbus/dbus-transport-unix.c (do_authentication): check read watch
3157         at the end of this function, so if we didn't need to read for
3158         authentication, we reinstall it for receiving messages
3159
3160         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
3161         a NULL sender for peer-to-peer case
3162
3163         * dbus/dbus-transport-unix.c (check_read_watch): handle
3164         !authenticated case correctly
3165
3166         * glib/dbus-gmain.c: add support for DBusServer
3167
3168         * dbus/dbus-server.c: add data slot support
3169
3170         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
3171         return values and handle errors
3172
3173         * dbus/dbus-dataslot.c: factor out the data slot stuff from
3174         DBusConnection
3175
3176         * Doxyfile.in (INPUT): add glib subdir
3177
3178         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
3179         setup_with_g_main instead of hookup_with_g_main; write docs
3180
3181 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
3182
3183         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
3184         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3185         * dbus/dbus-message.c: (dbus_message_append_boolean),
3186         (dbus_message_append_boolean_array),
3187         (dbus_message_get_args_valist), (_dbus_message_test):
3188         * dbus/dbus-message.h:
3189         * doc/dbus-specification.sgml:
3190         Various fixes as pointed out by Havoc.
3191
3192         * test/data/invalid-messages/bad-boolean-array.message:
3193         * test/data/invalid-messages/bad-boolean.message:
3194         Add invalid boolean value test cases.
3195
3196 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
3197
3198         * dbus/dbus-internals.c: (_dbus_type_to_string):
3199         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3200         (_dbus_marshal_validate_arg):
3201         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3202         * dbus/dbus-message.c: (dbus_message_append_args_valist),
3203         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
3204         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
3205         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
3206         (dbus_message_iter_get_double),
3207         (dbus_message_iter_get_boolean_array), (message_iter_test):
3208         * dbus/dbus-message.h:
3209         * dbus/dbus-protocol.h:
3210         * doc/dbus-specification.sgml:
3211         * test/data/valid-messages/lots-of-arguments.message:
3212         Add support for boolean and boolean array types.
3213
3214 2003-02-23  Havoc Pennington  <hp@pobox.com>
3215
3216         * dbus/dbus-keyring.c: finish most of this implementation and
3217         simple unit test
3218
3219         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
3220         these barf if the error isn't cleared to NULL
3221
3222         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
3223         (_dbus_create_directory): new function
3224
3225         * dbus/dbus-errors.c (dbus_set_error): fix warning
3226
3227         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
3228         (_dbus_string_hex_decode): new function
3229         (test_hex_roundtrip): test code
3230
3231         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
3232
3233         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
3234
3235         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
3236         the save-to-temp/rename trick to atomically write the new file
3237         (_dbus_string_parse_uint): new function
3238
3239 2003-02-22  Havoc Pennington  <hp@pobox.com>
3240
3241         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
3242
3243 2003-02-22  Havoc Pennington  <hp@pobox.com>
3244
3245         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
3246         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
3247
3248         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
3249
3250         * dbus/test/data/sha-1: add US government test suite for SHA-1
3251
3252 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
3253
3254         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3255         Make string arrays NULL-terminated.
3256
3257         * dbus/dbus-memory.c: (dbus_free_string_array):
3258         * dbus/dbus-memory.h:
3259         New function for freeing NULL-terminated string arrays.
3260
3261         * dbus/dbus-message-builder.c: (append_quoted_string),
3262         (_dbus_message_data_load):
3263         Add support for array types.
3264
3265         * dbus/dbus-message.c: (check_message_handling):
3266         Add more types as test cases.
3267
3268         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
3269         (_dbus_string_parse_double):
3270         Add the start offset to the end offset.
3271
3272         * test/data/valid-messages/lots-of-arguments.message:
3273         New test message with lots of arguments.
3274
3275 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
3276
3277         * dbus/dbus-message.c: (dbus_message_append_nil),
3278         (dbus_message_append_int32), (dbus_message_append_uint32),
3279         (dbus_message_append_double), (dbus_message_append_string),
3280         (dbus_message_append_int32_array),
3281         (dbus_message_append_uint32_array),
3282         (dbus_message_append_double_array),
3283         (dbus_message_append_byte_array),
3284         (dbus_message_append_string_array):
3285         Fix all out-of-memory handling in these functions.
3286
3287 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
3288
3289         * dbus/dbus-message.c: (dbus_message_append_nil):
3290         Fix a silly.
3291
3292 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
3293
3294         * dbus/dbus-message.c: (dbus_message_append_args_valist),
3295         (dbus_message_append_nil), (dbus_message_append_int32_array),
3296         (dbus_message_append_uint32_array),
3297         (dbus_message_append_double_array),
3298         (dbus_message_append_byte_array),
3299         (dbus_message_append_string_array), (dbus_message_get_args_valist),
3300         (dbus_message_iter_get_int32_array),
3301         (dbus_message_iter_get_uint32_array),
3302         (dbus_message_iter_get_double_array),
3303         (dbus_message_iter_get_byte_array),
3304         (dbus_message_iter_get_string_array):
3305
3306         * dbus/dbus-message.h:
3307         Add functions for appending and getting arrays.
3308
3309 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
3310
3311         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
3312         element size at least 8 bytes, fixes mempool tests on
3313         64-bit machines.
3314
3315 2003-02-20  Alexander Larsson  <alexl@redhat.com>
3316
3317         * dbus/dbus-transport-unix.c (unix_do_iteration):
3318         Unlock the connection mutex during a blocking select call.
3319         Add todo about how we need a way to wake up the select.
3320
3321         * dbus/dbus-connection-internal.h:
3322         * dbus/dbus-connection.c:
3323         Add _dbus_connection_lock and _dbus_connection_unlock.
3324
3325 2003-02-19  Havoc Pennington  <hp@pobox.com>
3326
3327         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
3328         Doxyfile.in, not Doxyfile
3329
3330         * dbus/dbus-keyring.c: do some hacking on this
3331
3332         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
3333
3334         * dbus/dbus-errors.c (dbus_set_error_const): do not call
3335         dbus_error_init
3336         (dbus_set_error): remove dbus_error_init, check for message ==
3337         NULL *before* we sprintf into it, and add @todo about including
3338         system headers in this file
3339
3340         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
3341
3342         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
3343
3344         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
3345         get various bits of user information based on either username
3346         or user ID
3347         (_dbus_homedir_from_username): new function
3348
3349 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
3350
3351         * configure.in:
3352         Add check for nonposix getpwnam_r
3353
3354         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
3355         Align the pool element size to a sizeof (void *) boundary.
3356
3357         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
3358         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
3359         General Solaris fixes.
3360
3361         * test/data/valid-messages/simplest-manual.message:
3362         Explicitly state that we want little-endian packing.
3363
3364 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
3365
3366         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
3367
3368         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
3369         Added to create a transport connecting using a tcp/ip socket.
3370
3371         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
3372         to a tcp socket at given host and port.
3373         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
3374         hostname and port.
3375
3376         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
3377
3378         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3379         Added to create a server listening on a TCP/IP socket.
3380
3381 2003-02-19  Havoc Pennington  <hp@pobox.com>
3382
3383         Throughout: mop up all the Doxygen warnings and undocumented
3384         stuff.
3385
3386         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
3387         to search any paths.
3388
3389         * dbus/dbus-threads.c: move global mutex initializers to
3390         dbus-internals.h, multiple prototypes was confusing doxygen
3391         besides being kind of ugly
3392
3393         * Doxyfile (PREDEFINED): have Doxygen define
3394         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
3395         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
3396         (do not abuse the feature! it's for stuff like the autogenerated
3397         macros in dbus-md5.c, not just for things you don't feel like
3398         documenting...)
3399
3400 2003-02-18  Havoc Pennington  <hp@pobox.com>
3401
3402         * dbus/dbus-string.c (_dbus_string_zero): new function
3403
3404         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
3405         wrap it in some dbus-friendly API
3406
3407         * dbus/dbus-types.h: add 16-bit types
3408
3409 2003-02-18  Joe Shaw  <joe@assbarn.com>
3410
3411         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
3412         credentials from our currently running process.
3413         (get_word): Fix a buglet where we were copying the entire length
3414         instead of relative to our position.
3415
3416         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
3417         keys on the stack... it's 640k of data.
3418
3419         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
3420         read the credentials byte off the socket, even if we don't have
3421         SO_PEERCRED.
3422         (_dbus_poll): Implement poll() using select() for systems which
3423         don't have it.
3424
3425         * glib/test-dbus-glib.c (main): Print out an error if no
3426         parameters are given.
3427
3428         * test/data/auth/fallback.auth-script: Added.  Tests that a client
3429         can fallback to a secondary auth mechanism if the first fails.
3430
3431 2003-02-18  Havoc Pennington  <hp@pobox.com>
3432
3433         * AUTHORS: add Alex
3434
3435 2003-02-17  Havoc Pennington  <hp@pobox.com>
3436
3437         * doc/dbus-specification.sgml: lots of cosmetic
3438         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
3439         env variable to DBUS_BUS_ADDRESS, s/client/application/,
3440         s/server/bus/ (except in authentication section). Add a section
3441         "Message Bus Message Routing"
3442
3443 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
3444
3445         Release 0.4
3446
3447         * NEWS: Update
3448
3449 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
3450
3451         * doc/dbus-specification.sgml:
3452         Specification updates.
3453
3454 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
3455
3456         * bus/activation.c: (bus_activation_init), (child_setup),
3457         (bus_activation_activate_service):
3458         * bus/activation.h:
3459         * bus/main.c: (main):
3460         Set DBUS_ADDRESS environment variable.
3461
3462         * dbus/dbus-errors.c: (dbus_set_error):
3463         Don't use va_copy since that's a C99 feature.
3464
3465         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
3466         (_dbus_spawn_async):
3467         * dbus/dbus-sysdeps.h:
3468         Add child_setup_func to _dbus_spawn_async.
3469
3470         * doc/dbus-specification.sgml:
3471         Update specification.
3472
3473         * test/spawn-test.c: (setup_func), (main):
3474         Fix test.
3475
3476 2003-02-17  Alexander Larsson  <alexl@redhat.com>
3477
3478         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
3479         Added todo.
3480
3481 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
3482
3483         * doc/.cvsignore:
3484         * doc/Makefile.am:
3485         * doc/dbus-test-plan.sgml:
3486         Add test plan document.
3487
3488         * test/Makefile.am:
3489         Fix distcheck.
3490
3491 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
3492
3493         * dbus/dbus-message.c: (decode_header_data),
3494         (_dbus_message_loader_return_buffer):
3495         Set the header padding amount when loading a message.
3496
3497 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
3498
3499         * bus/dispatch.c: (send_one_message):
3500         Only send broadcast messages to registered connections.
3501
3502         * dbus/dbus-message.c: (dbus_message_name_is):
3503         * dbus/dbus-message.h:
3504         New convenience function.
3505
3506         * dbus/dbus-transport-debug.c: (do_reading):
3507         Only dispatch one message per run.
3508
3509         * test/Makefile.am:
3510         * test/bus-test.c: (new_connection_callback), (die),
3511         (test_hello_client1_handler), (test_hello_client2_handler),
3512         (test_hello_replies), (main):
3513
3514         * test/bus-test-loop.[ch]:
3515         Add these.
3516
3517 2003-02-16  Havoc Pennington  <hp@pobox.com>
3518
3519         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3520         backward conditional
3521
3522 2003-02-16  Alexander Larsson  <alexl@redhat.com>
3523
3524         * dbus/dbus-connection.c:
3525         Implement sent_message_with_reply. (with_reply_and block is still
3526         busted).
3527         Made dispatch_message not lose message if OOM.
3528
3529         * dbus/dbus-errors.h:
3530         Add NoReply error (for reply timeouts).
3531
3532 2003-02-16  Alexander Larsson  <alexl@redhat.com>
3533
3534         * dbus/dbus-hash.c (_dbus_hash_table_unref):
3535         Actually free keys and values when destroying hashtable.
3536
3537 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
3538
3539         * dbus/dbus-auth.c: (client_try_next_mechanism):
3540         Plug a leak.
3541
3542         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3543         Return TRUE if there's no thread implementation around.
3544
3545         * glib/dbus-gmain.c: (free_source),
3546         (dbus_connection_hookup_with_g_main):
3547         Make sure to remove the GSource when the connection is finalized.
3548
3549 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
3550
3551         * bus/dispatch.c: (bus_dispatch_message_handler):
3552         * dbus/dbus-errors.h:
3553         Return an error if someone tries to send a message to a service
3554         that doesn't exist.
3555
3556 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
3557
3558         * bus/activation.c: (load_directory), (bus_activation_init),
3559         (bus_activation_activate_service):
3560         * bus/activation.h:
3561         * bus/driver.c:
3562         (bus_driver_handle_activate_service), (bus_driver_handle_message):
3563         More work on the activation handling.
3564
3565         * dbus/dbus-errors.h:
3566         Add some error messages
3567
3568         * dbus/dbus-message.c: (dbus_message_new_error_reply):
3569         * dbus/dbus-message.h:
3570         New function that creates an error message.
3571
3572         * dbus/dbus-protocol.h:
3573         Add ACTIVATE_SERVER message.
3574
3575         * dbus/dbus-server-unix.c: (unix_handle_watch),
3576         (_dbus_server_new_for_domain_socket):
3577         Call _dbus_fd_set_close_on_exec.
3578
3579         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3580         (_dbus_spawn_async), (_dbus_disable_sigpipe),
3581         (_dbus_fd_set_close_on_exec):
3582         * dbus/dbus-sysdeps.h:
3583         Add _dbus_fd_set_close_on exec function. Also add function that checks
3584         that all open fds are set to close-on-exec and warns otherwise.
3585
3586         * dbus/dbus-transport-unix.c:
3587         (_dbus_transport_new_for_domain_socket):
3588         Call _dbus_fd_set_close_on_exec.
3589
3590 2003-02-16  Havoc Pennington  <hp@pobox.com>
3591
3592         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3593         allow people to avoid setting SIGPIPE to SIG_IGN
3594         (_dbus_connection_new_for_transport): disable SIGPIPE unless
3595         we've been asked not to
3596
3597 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
3598
3599         * dbus/dbus-list.c: (_dbus_list_append_link),
3600         (_dbus_list_prepend_link):
3601         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3602         (dbus_realloc):
3603         Warning fixes.
3604
3605 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
3606
3607         * bus/Makefile.am:
3608         * bus/activation.c: (bus_activation_entry_free),
3609         (add_desktop_file_entry), (load_directory), (bus_activation_init):
3610         * bus/activation.h:
3611         * bus/main.c: (main):
3612         Add simple activation support, doesn't work yet though.
3613
3614 2003-02-15   Zack Rusin  <zack@kde.org>
3615
3616         * qt/dbus-qthread.cpp:  small casting fix
3617
3618 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
3619
3620         * dbus/dbus-errors.c: (dbus_set_error):
3621         * dbus/dbus-errors.h:
3622         Add a few errors and make dbus_set_error void.
3623
3624         * dbus/dbus-sysdeps.c:
3625         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3626         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3627         * dbus/dbus-sysdeps.h:
3628         Add _dbus_spawn_async.
3629
3630         * test/spawn-test.c: (main):
3631         Test for _dbus_spawn_async.
3632
3633 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
3634
3635         * dbus/dbus-internals.h:
3636         Fix build without tests.
3637
3638         * dbus/dbus-list.c: (alloc_link):
3639         Fix a segfault when a malloc fails.
3640
3641         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3642         (dbus_malloc0), (dbus_realloc):
3643         Add support for malloc debugging.
3644
3645 2003-02-15  Alexander Larsson  <alexl@redhat.com>
3646
3647         * dbus/dbus-threads.c:
3648         * dbus/dbus-threads.h:
3649         Add condvars. Remove static mutext from API.
3650         Implement static mutexes by initializing them from threads_init.
3651
3652         * glib/dbus-gthread.c:
3653         * qt/dbus-qthread.cpp:
3654         Update with the thread api changes.
3655
3656
3657         * dbus/dbus-list.c:
3658         * dbus/dbus-list.h:
3659         Turn StaticMutex into normal mutex + init function.
3660         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3661         _dbus_list_append_link, _dbus_list_prepend_link
3662
3663
3664         * dbus/dbus-sysdeps.c:
3665         * dbus/dbus-sysdeps.h:
3666         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3667         _dbus_atomic_dec. Only slow fallback implementation at the moment.
3668
3669         * dbus/dbus-protocol.h:
3670         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3671
3672         * dbus/dbus-message.c:
3673         Make ref/unref atomic.
3674         Fix some docs.
3675
3676         * dbus/dbus-connection-internal.h:
3677         * dbus/dbus-connection.c:
3678         * dbus/dbus-connection.h:
3679         Make threadsafe.
3680         Change _peek to _borrow,_return & _steal_borrowed.
3681         Change disconnect callback to event.
3682         Make dbus_connection_dispatch_messages reentrant.
3683
3684         * dbus/dbus-transport.c:
3685         Don't ref the connection on calls to the transport
3686         implementation.
3687
3688         * dbus/dbus-message-handler.c:
3689         Make threadsafe.
3690
3691         * glib/dbus-gmain.c:
3692         Don't use peek_message anymore
3693
3694         * test/Makefile.am:
3695         * test/debug-thread.c:
3696         * test/debug-thread.h:
3697         Simple thread implementation that asserts() on deadlocks in
3698         single-threaded code.
3699
3700         * test/bus-test.c:
3701         (main) Call debug_threads_init.
3702
3703         * test/watch.c:
3704         Use disconnect message instead of disconnect callback.
3705
3706         * bus/connection.c:
3707         * bus/connection.h:
3708         Don't call dbus_connection_set_disconnect_function. Instead export
3709         bus_connection_disconnect.
3710
3711         * bus/dispatch.c:
3712         Call bus_connection_disconnect when we get a disconnected message.
3713
3714 2003-02-15  Havoc Pennington  <hp@pobox.com>
3715
3716         * dbus/dbus-message.c (dbus_message_new): fool around with the
3717         docs
3718
3719 2003-02-14  Havoc Pennington  <hp@pobox.com>
3720
3721         * dbus/dbus-mempool.c: fail if the debug functions so indicate
3722
3723         * dbus/dbus-memory.c: fail if the debug functions indicate we
3724         should
3725
3726         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3727         (_dbus_decrement_fail_alloc_counter): debug functions to
3728         simulate memory allocation failures
3729
3730 2003-02-14  Havoc Pennington  <hp@pobox.com>
3731
3732         * dbus/dbus-errors.h (struct DBusError): add a word of padding
3733         to DBusError
3734
3735 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3736
3737         * bus/driver.c: (bus_driver_handle_hello):
3738         * bus/driver.h:
3739         * bus/services.c: (bus_service_lookup):
3740         Reorder message sending so we get a more sane order.
3741
3742         * test/bus-test.c: (message_handler):
3743         Fix tyop.
3744
3745 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3746
3747         * bus/driver.c: (bus_driver_send_service_deleted),
3748         (bus_driver_send_service_created), (bus_driver_send_service_lost),
3749         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3750         (bus_driver_send_welcome_message),
3751         (bus_driver_handle_list_services),
3752         (bus_driver_handle_acquire_service),
3753         (bus_driver_handle_service_exists):
3754         * dbus/dbus-bus.c: (dbus_bus_register_client),
3755         (dbus_bus_acquire_service), (dbus_bus_service_exists):
3756         * dbus/dbus-errors.c: (dbus_result_to_string):
3757         * dbus/dbus-errors.h:
3758         * dbus/dbus-message.c: (dbus_message_append_args),
3759         (dbus_message_append_args_valist), (dbus_message_get_args),
3760         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3761         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3762         (dbus_message_iter_get_byte_array),
3763         (dbus_message_iter_get_string_array), (message_iter_test),
3764         (check_message_handling), (_dbus_message_test):
3765         * dbus/dbus-message.h:
3766         * test/bus-test.c: (main):
3767         Change fields to arguments in messages, so that they won't be
3768         confused with header fields.
3769
3770         * glib/test-dbus-glib.c: (main):
3771         Remove append_fields from hello message.
3772
3773 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3774
3775         * dbus/dbus-errors.c:
3776         * dbus/dbus-message.c:
3777         * dbus/dbus-string.c:
3778         Documentation fixes.
3779
3780 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3781
3782         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3783         (remove_timeout):
3784         Implement support for timeouts in dbus-glib.
3785
3786 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3787
3788         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3789         * dbus/dbus-message.c: (process_test_subdir):
3790         * test/break-loader.c: (find_breaks_based_on):
3791         Plug some memory leaks.
3792
3793 2003-02-13  Richard Hult  <rhult@codefactory.se>
3794
3795         * bus/main.c: Fix build.
3796
3797         * dbus/dbus-errors.h:
3798         * dbus/dbus-errors.c: Fix copyright for Anders.
3799
3800 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3801
3802         * bus/Makefile.am:
3803         Add utils.[ch]
3804
3805         * bus/connection.c: (bus_connection_foreach):
3806         Fix a warning.
3807
3808         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3809         (unescape_string), (new_section), (parse_section_start),
3810         (parse_key_value), (report_error), (bus_desktop_file_load),
3811         (bus_desktop_file_get_string):
3812         * bus/desktop-file.h:
3813         Use DBusError for error reporting.
3814
3815         * bus/dispatch.c: (send_one_message),
3816         (bus_dispatch_message_handler):
3817         * bus/driver.c: (bus_driver_send_service_deleted),
3818         (bus_driver_send_service_created), (bus_driver_send_service_lost),
3819         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3820         (bus_driver_send_welcome_message),
3821         (bus_driver_handle_list_services),
3822         (bus_driver_handle_acquire_service),
3823         (bus_driver_handle_service_exists):
3824         * bus/loop.c: (bus_loop_run):
3825         * bus/main.c:
3826         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3827
3828         * bus/utils.c: (bus_wait_for_memory):
3829         * bus/utils.h:
3830         New files with general utility functions.
3831
3832         * dbus/dbus-internals.h:
3833         Remove _DBUS_HANDLE_OOM.
3834
3835 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3836
3837         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3838         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3839         * dbus/dbus-errors.h:
3840         Add DBusError structure.
3841
3842 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3843
3844         * test/data/valid-messages/standard-acquire-service.message:
3845         * test/data/valid-messages/standard-hello.message:
3846         * test/data/valid-messages/standard-list-services.message:
3847         * test/data/valid-messages/standard-service-exists.message:
3848         Add some standard messages.
3849
3850 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3851
3852         * bus/driver.c: (bus_driver_send_welcome_message),
3853         (bus_driver_handle_list_services),
3854         (bus_driver_handle_acquire_service),
3855         (bus_driver_handle_service_exists), (bus_driver_handle_message):
3856         Update for API changes in libdbus.
3857
3858         * dbus/dbus-message.c: (dbus_message_new_reply):
3859         * dbus/dbus-message.h:
3860         Remove the name argument. The spec states that replies shouldn't
3861         have a name.
3862
3863 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3864
3865         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3866         (report_error), (bus_desktop_file_load), (lookup_section),
3867         (lookup_line), (bus_desktop_file_get_raw),
3868         (bus_desktop_file_get_string):
3869         * bus/desktop-file.h:
3870         Some fixes, and new functions for getting a key value from a section.
3871
3872 2003-02-13  Havoc Pennington  <hp@pobox.com>
3873
3874         * test/data/auth/fail-after-n-attempts.auth-script: new test
3875
3876         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3877         reject the client.
3878
3879 2003-02-13  Havoc Pennington  <hp@pobox.com>
3880
3881         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3882         dbus_credentials_match were backward
3883
3884         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3885         NO_CREDENTIALS and ROOT_CREDENTIALS
3886
3887         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3888         into here. Never process more commands after we've reached an
3889         end state; store further data as unused bytes.
3890
3891         * test/data/auth/*: add more auth tests
3892
3893         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3894         command to match exact string and EXPECT_UNUSED to match unused
3895         bytes
3896
3897         * test/Makefile.am (dist-hook): fix to dist all the test stuff
3898
3899 2003-02-12  Havoc Pennington  <hp@pobox.com>
3900
3901         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3902         \r off of popped lines
3903
3904         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3905         scripts
3906
3907         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3908         SEND, append \r\n
3909
3910 2003-02-12  Havoc Pennington  <hp@pobox.com>
3911
3912         * dbus/Makefile.am: remove break-loader from the build, since it
3913         moved.
3914
3915         * configure.in: add --enable-gcov to turn on coverage profiling
3916         flags and disable optimization
3917
3918 2003-02-10  Havoc Pennington  <hp@pobox.com>
3919
3920         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3921         initial cut at test framework for DBusAuth from laptop.
3922         Doesn't quite work yet but it compiles and I need to get
3923         it off the 266mhz laptop. ;-)
3924
3925         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3926         fix a memleak in error case
3927
3928 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
3929
3930         * bus/Makefile.am:
3931         * bus/desktop-file.c:
3932         * bus/desktop-file.h:
3933         Add a desktop file parser.
3934
3935 2003-02-11  Zack Rusin  <zack@kde.org>
3936
3937         * qt/message.[h|cpp]: sample implementation
3938         of the KDE wrapper for DBusMessage
3939
3940 2003-02-09  Zack Rusin  <zack@kde.org>
3941
3942         * test/bus-test.c: make_it_compile
3943         * doc/dbus-specification.sgml: minimal semantic fix
3944
3945 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
3946
3947         Release 0.3
3948
3949         * NEWS: Update
3950
3951 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
3952
3953         * dbus/Makefile.am:
3954         * dbus/dbus-break-loader.c:
3955         * test/Makefile.am:
3956         * test/break-loader.c:
3957         Move dbus-break-loader to test/ and rename it to break-loader.
3958
3959 2003-02-02  Havoc Pennington  <hp@pobox.com>
3960
3961         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3962         for code to manage cookies in your home directory
3963
3964         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3965
3966         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3967         to authenticate, then disconnect the client.
3968
3969 2003-02-03  Alexander Larsson  <alexl@redhat.com>
3970
3971         * dbus/dbus-message.c (dbus_message_append_fields):
3972         Correct docs.
3973
3974 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3975
3976         * doc/dbus-specification.sgml:
3977         Update address format section.
3978
3979 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3980
3981         * test/Makefile.am:
3982         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3983         (message_handler), (new_connection_callback), (loop_quit),
3984         (loop_run), (main):
3985         Add bus test.
3986
3987 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3988
3989         * bus/driver.c: (bus_driver_handle_service_exists):
3990         Simplify the code a bit.
3991
3992         * dbus/dbus-bus.c: (dbus_bus_service_exists):
3993         Fix a silly.
3994
3995 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3996
3997         * bus/Makefile.am:
3998         Add libdbus-daemon.la and link to it.
3999
4000 2003-02-01  James Willcox  <jwillcox@gnome.org>
4001
4002         * bus/driver.c: (bus_driver_handle_own_service):
4003         Actually include the service reply code in the message.
4004
4005 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
4006
4007         * bus/driver.c: (bus_driver_handle_service_exists):
4008         Don't unref the incoming message.
4009
4010 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
4011
4012         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
4013
4014 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
4015
4016         * dbus/dbus-server.c: (dbus_server_listen):
4017         * dbus/dbus-transport.c: (_dbus_transport_open):
4018         ifdef out the calls to the debug transport and server.
4019
4020 2003-02-02  Alexander Larsson  <alexl@redhat.com>
4021
4022         * dbus/dbus-watch.c (dbus_watch_get_flags):
4023         Add note in the docs that ERROR or HANGUP won't be returned
4024         and are assumed always on.
4025
4026         * glib/dbus-gmain.c (add_watch):
4027         Always add IO_ERR | IO_HUP
4028
4029         * dbus/dbus-message.h:
4030         Add semicolon after dbus_message_iter_get_string_array().
4031         Makes qt code build again
4032
4033 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
4034
4035         * bus/driver.c: (create_unique_client_name),
4036         (bus_driver_handle_hello):
4037         Don't take a name, just use a numeric id to identify
4038         each client.
4039
4040         * dbus/Makefile.am:
4041         * dbus/dbus-bus.c: (dbus_bus_register_client),
4042         (dbus_bus_acquire_service), (dbus_bus_service_exists):
4043         * dbus/dbus-bus.h:
4044         Add new convenience functions for communicating with the bus.
4045
4046         * dbus/dbus-message.h:
4047
4048         * dbus/dbus-protocol.h:
4049         Fix a typo.
4050
4051 2003-02-01  Alexander Larsson  <alexl@redhat.com>
4052
4053         * dbus/dbus-message.c (dbus_message_append_fields):
4054         Add some more doc comments.
4055
4056 2003-02-01  Havoc Pennington  <hp@pobox.com>
4057
4058         * dbus/dbus-break-loader.c (randomly_modify_length): change
4059         a 4-byte value in the message as if it were a length
4060
4061         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
4062         execute bit on saved files
4063
4064 2003-02-01  Havoc Pennington  <hp@pobox.com>
4065
4066         * dbus/dbus-break-loader.c (main): new program to find messages
4067         that break the loader.
4068
4069         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
4070         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
4071
4072         * dbus/dbus-string.c (_dbus_string_set_byte): new
4073
4074 2003-01-31  Havoc Pennington  <hp@pobox.com>
4075
4076         * dbus/dbus-message.c: refactor the test code to be more general,
4077         in preparation for writing a "randomly permute test cases to
4078         try to break the loader" program.
4079
4080 2003-01-31  Havoc Pennington  <hp@pobox.com>
4081
4082         * doc/dbus-specification.sgml: work on the specification
4083
4084         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
4085         the protocol version of the message.
4086
4087         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
4088         no longer specifies that.
4089         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
4090         1/2/3/4)
4091
4092         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
4093         "break" for DBUS_TYPE_NIL, remove @todo
4094
4095 2003-01-31  Havoc Pennington  <hp@pobox.com>
4096
4097         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
4098         just set_is_error/get_is_error as this is a commonly-used
4099         function, and write docs.
4100
4101 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
4102
4103         * dbus/dbus-address.c: (dbus_address_entry_free):
4104         Free key and value lists.
4105
4106         * dbus/dbus-internals.c: (_dbus_type_to_string):
4107         Add the types we didn't have.
4108
4109         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4110         (_dbus_marshal_validate_arg):
4111         Add NIL types.
4112
4113         * dbus/dbus-message.c: (dbus_message_set_sender):
4114         Remove todo about being able to set sender to NULL.
4115
4116         (dbus_message_set_is_error_reply),
4117         (dbus_message_get_is_error_reply):
4118         * dbus/dbus-message.h:
4119         New functions.
4120
4121         * dbus/dbus-protocol.h:
4122         Add error reply flag.
4123
4124         * test/data/valid-messages/opposite-endian.message:
4125         Add NIL type to test.
4126
4127 2003-01-31  Havoc Pennington  <hp@pobox.com>
4128
4129         * doc/dbus-specification.sgml: fully specify the header.  Add
4130         flags and major protocol version, and change header/body len to
4131         unsigned.
4132
4133         * dbus/dbus-message-builder.c (append_saved_length): append length
4134         as uint32
4135
4136         * dbus/dbus-message.c (dbus_message_create_header): change header
4137         length and body length to unsigned. Add the new fields from the
4138         spec
4139         (_dbus_message_loader_return_buffer): unsigned header/body len
4140
4141 2003-01-30  Havoc Pennington  <hp@pobox.com>
4142
4143         * dbus/dbus-auth.c: rework to use only REJECTED, no
4144         MECHANISMS
4145
4146         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
4147         use REJECTED, suggested by Mark McLoughlin
4148
4149 2003-01-30  Havoc Pennington  <hp@pobox.com>
4150
4151         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
4152         a better way to report errors here. e.g.  "unix address lacks
4153         path" or something. also "no such file" when the path doesn't
4154         exist, etc.
4155
4156         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
4157         leaking list nodes
4158         (dbus_parse_address): add @todo about documenting address format,
4159         and allowing , and ; to be escaped
4160
4161 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
4162
4163         * dbus/Makefile.am:
4164         Add dbus-address.[ch]
4165
4166         * dbus/dbus-address.c: (dbus_address_entry_free),
4167         (dbus_address_entries_free), (create_entry),
4168         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
4169         (dbus_parse_address), (_dbus_address_test):
4170         * dbus/dbus-address.h:
4171         New files for dealing with address parsing.
4172
4173         * dbus/dbus-connection.c:
4174         Document timeout functions.
4175
4176         * dbus/dbus-message.c:
4177         Document dbus_message_new_from_message.
4178
4179         * dbus/dbus-server-debug.c:
4180         Document.
4181
4182         * dbus/dbus-server.c: (dbus_server_listen):
4183         Parse address and use correct server implementation.
4184
4185         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
4186         * dbus/dbus-string.h:
4187         New function with test.
4188
4189         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
4190         * dbus/dbus-test.h:
4191         Add address tests.
4192
4193         * dbus/dbus-transport-debug.c:
4194         Document.
4195
4196         * dbus/dbus-transport.c: (_dbus_transport_open):
4197         Parse address and use correct transport implementation.
4198
4199 2003-01-30  Havoc Pennington  <hp@pobox.com>
4200
4201         * dbus/dbus-message.c: use message->byte_order instead of
4202         DBUS_COMPILER_BYTE_ORDER throughout.
4203         (dbus_message_create_header): pad header to align the
4204         start of the body of the message to 8-byte boundary
4205
4206         * dbus/dbus-marshal.h: make all the demarshalers take const
4207         DBusString arguments.
4208
4209         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
4210         validate message args here, so we don't have to do slow validation
4211         later, and so we catch bad messages as they are incoming. Also add
4212         better checks on header_len and body_len. Also fill in
4213         message->byte_order
4214
4215         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
4216         implemented properly)
4217         (_dbus_string_validate_nul): new function to check all-nul
4218
4219         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
4220         get_arg_end_pos and remove all validation
4221         (_dbus_marshal_validate_arg): actually do validation here.
4222
4223 2003-01-29  Havoc Pennington  <hp@pobox.com>
4224
4225         * dbus/dbus-message.c (check_message_handling): fix assertion
4226         failure on set_client_serial
4227
4228 2003-01-28  Havoc Pennington  <hp@pobox.com>
4229
4230         * dbus/dbus-server-debug.c: Add doc section comments
4231
4232         * dbus/dbus-transport-debug.c: add doc section comments
4233
4234 2003-01-28  Havoc Pennington  <hp@redhat.com>
4235
4236         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
4237         the reverse order from how I had it
4238         (_dbus_string_base64_encode): reverse encoding order. I was
4239         basically byteswapping everything during encoding.
4240
4241 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
4242
4243         * dbus/dbus-connection-internal.h:
4244         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
4245         (_dbus_connection_remove_timeout):
4246         Add functions for adding and removing timeouts.
4247
4248         * dbus/dbus-message.c: (dbus_message_new_from_message):
4249         Add new function that takes a message and creates an exact
4250         copy of it, but with the refcount set to 1.
4251         (check_message_handling):
4252         Fix build error.
4253
4254         * dbus/dbus-server-protected.h:
4255         * dbus/dbus-server.c: (_dbus_server_init_base),
4256         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
4257         (dbus_server_set_timeout_functions):
4258         (_dbus_server_remove_timeout):
4259         New functions so that a server can add and remove timeouts.
4260
4261         (dbus_server_listen):
4262         Add commented out call to dbus_server_debug_new.
4263
4264         * dbus/dbus-timeout.c: (_dbus_timeout_new):
4265         Actually set the handler, doh.
4266
4267         * dbus/dbus-transport.c: (_dbus_transport_open):
4268         Add commented out call to dbus_transport_debug_client_new.
4269
4270         * dbus/Makefile.am:
4271         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
4272
4273 2003-01-28  Havoc Pennington  <hp@pobox.com>
4274
4275         * dbus/dbus-message.c (check_message_handling): function to check
4276         on the loaded message, iterates over it etc.
4277
4278 2003-01-28  Havoc Pennington  <hp@pobox.com>
4279
4280         * test/Makefile.am (dist-hook): fix make distdir
4281
4282         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
4283
4284 2003-01-27  Havoc Pennington  <hp@pobox.com>
4285
4286         * dbus/dbus-mempool.c (time_for_size): replace printf with
4287         _dbus_verbose
4288
4289         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
4290         empty lines; fix the SAVE_LENGTH stuff to be
4291         START_LENGTH/END_LENGTH so it actually works; couple other
4292         bugfixes
4293
4294         * test/Makefile.am (dist-hook): add dist-hook for .message files
4295
4296         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
4297         can be constant or locked.
4298         (_dbus_string_free): allow freeing a const string as
4299         documented/intended
4300
4301         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
4302
4303         * dbus/dbus-test-main.c (main): take an argument which is the
4304         directory containing test data
4305
4306         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
4307         argument to this and load all the messages in test/data/
4308         checking that they can be loaded or not loaded as appropriate.
4309
4310 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
4311
4312         * bus/dispatch.c: (bus_dispatch_message_handler):
4313         Dispatch messages sent to services.
4314
4315         * bus/driver.c: (bus_driver_send_service_deleted),
4316         (bus_driver_send_service_created), (bus_driver_send_service_lost),
4317         (bus_driver_send_service_acquired):
4318         Add helper functions for sending service related messages.
4319
4320         (bus_driver_send_welcome_message):
4321         Send HELLO_REPLY instead of WELCOME.
4322
4323         (bus_driver_handle_list_services):
4324         Send LIST_SERVICES_REPLY instead of SERVICES.
4325
4326         (bus_driver_handle_own_service),
4327         (bus_driver_handle_service_exists):
4328         New message handlers.
4329
4330         (bus_driver_handle_message):
4331         Invoke new message handlers.
4332
4333         (bus_driver_remove_connection):
4334         Don't remove any services here since that's done automatically
4335         by bus_service_remove_owner now.
4336
4337         * bus/driver.h:
4338         New function signatures.
4339
4340         * bus/services.c: (bus_service_add_owner):
4341         Send ServiceAcquired message if we're the only primary owner.
4342
4343         (bus_service_remove_owner):
4344         Send ServiceAcquired/ServiceLost messages.
4345
4346         (bus_service_set_prohibit_replacement),
4347         (bus_service_get_prohibit_replacement):
4348         Functions for setting prohibit replacement.
4349
4350         (bus_service_has_owner):
4351         New function that checks if a connection is in the owner queue of
4352         a certain service.
4353
4354         * bus/services.h:
4355         Add new function signatures.
4356
4357         * dbus/dbus-list.c: (_dbus_list_test):
4358         Add tests for _dbus_list_remove_last and traversing the list backwards.
4359
4360         * dbus/dbus-list.h:
4361         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
4362         go any further, so return NULL then.
4363
4364         * dbus/dbus-protocol.h:
4365         Add new messages, service flags and service replies.
4366
4367 2003-01-26  Havoc Pennington  <hp@pobox.com>
4368
4369         * dbus/dbus-message-builder.c: implement, completely untested.
4370
4371         * test/data/*: add data to be used in testing.
4372         ".message" files are our simple loadable text format.
4373         ".message-raw" will be binary dumps of messages.
4374
4375         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
4376
4377 2003-01-26  Havoc Pennington  <hp@pobox.com>
4378
4379         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
4380
4381         * dbus/dbus-errors.c (dbus_result_to_string): add
4382         file errors
4383
4384         * dbus/dbus-message-builder.c: new file, will contain code to load
4385         up messages from files. Not implemented yet.
4386
4387 2003-01-26  Havoc Pennington  <hp@pobox.com>
4388
4389         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
4390         the sender by setting to NULL
4391
4392 2003-01-26  Havoc Pennington  <hp@pobox.com>
4393
4394         The unit tests pass, but otherwise untested.  If it breaks, the
4395         tests should have been better. ;-)
4396
4397         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
4398         the connection.
4399
4400         * dbus/dbus-message.c: redo everything so we maintain
4401         message->header as the only copy of the various fields.
4402         This avoids the possibility of out-of-memory in some cases,
4403         for example dbus_message_lock() can't run out of memory anymore,
4404         and avoids extra copying. Figured I may as well go ahead and do
4405         this since it was busted for dbus_message_lock to not return
4406         failure on OOM, and dbus_message_write_header was totally
4407         unchecked for OOM. Also fixed some random other bugs.
4408
4409         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
4410         that strings are nul-terminated. Also, end_pos can be equal
4411         to string length just not greater than, I think.
4412         (_dbus_marshal_set_int32): new function
4413         (_dbus_marshal_set_uint32): new function
4414         (_dbus_marshal_set_string): new function
4415
4416         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
4417         a warning, init timeout_list to NULL
4418         (dbus_connection_send_message): don't use uninitialized variable
4419         "serial"
4420
4421         * dbus/dbus-string.c (_dbus_string_replace_len): new function
4422
4423 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
4424
4425         * bus/driver.c: (bus_driver_handle_hello),
4426         (bus_driver_send_welcome_message):
4427         Plug leaks
4428
4429 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
4430
4431         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
4432         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4433         (dbus_connection_unref):
4434         * dbus/dbus-marshal.c: (_dbus_marshal_test):
4435         * dbus/dbus-message.c: (dbus_message_unref),
4436         Plug memory leaks.
4437
4438         (dbus_message_get_fields):
4439         Remove debugging printout.
4440
4441         (_dbus_message_loader_return_buffer):
4442         Don't store the header string.
4443
4444         (_dbus_message_test):
4445         Plug leaks.
4446
4447 2003-01-26  Richard Hult  <rhult@codefactory.se>
4448
4449         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
4450         the file descriptor list, since it can change under us.
4451
4452 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
4453
4454         * glib/dbus-gmain.c: (dbus_connection_prepare),
4455         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
4456         (remove_watch), (dbus_connection_hookup_with_g_main):
4457         Rewrite the glib handling to use its own GSource instead of a
4458         GIOChannel so we can catch messages put in the queue while waiting
4459         for a reply.
4460
4461 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
4462
4463         * bus/Makefile.am:
4464         * bus/connection.c: (connection_disconnect_handler),
4465         (connection_watch_callback), (bus_connection_setup):
4466         * bus/dispatch.c: (send_one_message),
4467         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
4468         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
4469         * bus/dispatch.h:
4470         * bus/driver.c: (bus_driver_send_service_deleted),
4471         (bus_driver_send_service_created), (bus_driver_handle_hello),
4472         (bus_driver_send_welcome_message),
4473         (bus_driver_handle_list_services), (bus_driver_remove_connection),
4474         (bus_driver_handle_message):
4475         * bus/driver.h:
4476         Refactor code, put the message dispatching in its own file. Use
4477         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
4478         is disconnected.
4479
4480 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
4481
4482         * dbus/dbus-internals.h:
4483         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
4484
4485         * dbus/dbus-message.c: (dbus_message_get_sender):
4486         * dbus/dbus-message.h:
4487         Implement dbus_message_get_sender.
4488
4489         * dbus/dbus-protocol.h:
4490         Add message and service defines.
4491
4492 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
4493
4494         * dbus/dbus-connection.c: (dbus_connection_send_message):
4495         * dbus/dbus-message-internal.h:
4496         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4497         (dbus_message_write_header):
4498         Remove _dbus_messag_unlock and don't set the client serial on a
4499         message if one already exists.
4500
4501 2003-01-24  Havoc Pennington  <hp@pobox.com>
4502
4503         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4504         list_pool
4505
4506         * bus/driver.c (bus_driver_handle_list_services): fix a leak
4507         on OOM
4508
4509 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
4510
4511         * dbus/dbus-list.c: (alloc_link), (free_link):
4512         Use a memory pool for the links.
4513
4514 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
4515
4516         * bus/connection.c: (bus_connection_foreach):
4517         * bus/connection.h:
4518         Add new bus_connection_foreach function.
4519
4520         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4521         Add function that broadcasts a message to all clients.
4522
4523         (bus_driver_send_service_created), (bus_driver_handle_hello),
4524         (bus_driver_send_welcome_message),
4525         (bus_driver_handle_list_services), (bus_driver_message_handler):
4526         Implement functions that take care of listing services, and notifying
4527         clients when new services are created.
4528
4529         * bus/services.c: (bus_services_list):
4530         * bus/services.h:
4531         Add new function that returns an array of strings with the currently
4532         registered services.
4533
4534         * glib/dbus-glib.h:
4535         * glib/dbus-gmain.c:
4536         Update copyright year.
4537
4538 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
4539
4540         * dbus/dbus-connection.c: (dbus_connection_send_message):
4541         Unlock the message in case it was sent earlier.
4542
4543         (dbus_connection_send_message_with_reply_and_block):
4544         Remove the reply message from the list.
4545
4546         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4547         Set array_len and new_pos correctly.
4548
4549         (_dbus_marshal_test):
4550         Remove debug output.
4551
4552         * dbus/dbus-message-internal.h:
4553         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4554         New function that returns the reply serial.
4555
4556         (_dbus_message_unlock):
4557         New function that unlocks a message and resets its header.
4558
4559         (dbus_message_append_string_array),
4560         (dbus_message_get_fields_valist),
4561         (dbus_message_iter_get_field_type),
4562         (dbus_message_iter_get_string_array),
4563         (dbus_message_get_fields),
4564         (dbus_message_append_fields_valist):
4565         Handle string arrays.
4566
4567         (dbus_message_set_sender):
4568         Make this function public since the bus daemon needs it.
4569
4570         (decode_header_data):
4571         Set the reply serial to -1 initially.
4572
4573         * dbus/dbus-message.h:
4574         Add dbus_message_set_sender.
4575
4576 2003-01-24  Havoc Pennington  <hp@pobox.com>
4577
4578         * doc/dbus-specification.sgml: add some stuff
4579
4580 2003-01-22  Havoc Pennington  <hp@pobox.com>
4581
4582         * doc/dbus-specification.sgml: Start to document the protocol.
4583
4584 2003-01-22  Havoc Pennington  <hp@pobox.com>
4585
4586         * dbus/dbus-connection.c
4587         (dbus_connection_send_message_with_reply_and_block): add some @todo
4588
4589         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4590
4591 2003-01-21  Havoc Pennington  <hp@pobox.com>
4592
4593         (patch untested because can't compile)
4594
4595         * bus/driver.c (create_unique_client_name): make this function
4596         never recycle client names. Also, caller should initialize
4597         the DBusString.
4598
4599         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4600
4601 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
4602
4603         * dbus/dbus-marshal.c: (_dbus_marshal_double),
4604         (_dbus_marshal_int32), (_dbus_marshal_uint32),
4605         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4606         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4607         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4608         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4609         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4610         * dbus/dbus-marshal.h:
4611         * dbus/dbus-protocol.h:
4612         Add support for marshalling and demarshalling integer, double
4613         and string arrays.
4614
4615 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
4616
4617         * bus/Makefile.am:
4618         Add driver.[ch]
4619
4620         * bus/connection.c: (connection_disconnect_handler):
4621         Remove the connection from the bus driver's list.
4622
4623         (connection_watch_callback): Dispatch messages.
4624
4625         (free_connection_data): Free connection name.
4626
4627         (bus_connection_setup): Add connection to the bus driver's list.
4628         (bus_connection_remove_owned_service):
4629         (bus_connection_set_name), (bus_connection_get_name):
4630         Add functions for setting and getting the connection's name.
4631
4632         * bus/connection.h:
4633         Add function headers.
4634
4635         * bus/driver.c: (create_unique_client_name),
4636         (bus_driver_handle_hello_message),
4637         (bus_driver_send_welcome_message), (bus_driver_message_handler),
4638         (bus_driver_add_connection), (bus_driver_remove_connection):
4639         * bus/driver.h:
4640         * bus/main.c:
4641         * bus/services.c: (bus_service_free):
4642         * bus/services.h:
4643         New file that handles communication and registreation with the bus
4644         itself.
4645
4646 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
4647
4648         * dbus/dbus-connection.c: (dbus_connection_send_message):
4649         Add a new client_serial parameter.
4650
4651         (dbus_connection_send_message_with_reply):
4652         Remove a @todo since we've implemented the blocking function.
4653
4654         (dbus_connection_send_message_with_reply_and_block):
4655         New function that sends a message and waits for a reply and
4656         then returns the reply.
4657
4658         * dbus/dbus-connection.h:
4659         Add new functions.
4660
4661         * dbus/dbus-errors.c: (dbus_result_to_string):
4662         * dbus/dbus-errors.h:
4663         Add new DBUS_RESULT.
4664
4665         * dbus/dbus-message-internal.h:
4666         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4667         (_dbus_message_set_sender), (dbus_message_write_header),
4668         (dbus_message_new_reply), (decode_header_data),
4669         (_dbus_message_loader_return_buffer), (_dbus_message_test):
4670         * dbus/dbus-message.h:
4671         Add new functions that set the reply serial and sender.
4672         Also marshal and demarshal them correctly and add test.
4673
4674         * dbus/dbus-protocol.h:
4675         Add new DBUS_MESSAGE_TYPE_SENDER.
4676
4677         * glib/dbus-glib.h:
4678         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4679         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4680         (dbus_connection_hookup_with_g_main):
4681         * glib/test-dbus-glib.c: (main):
4682         Rewrite to use GIOChannel and remove the GSource crack.
4683
4684         * test/echo-client.c: (main):
4685         * test/watch.c: (check_messages):
4686         Update for changed APIs
4687
4688 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
4689
4690         * dbus/Makefile.am: Add dbus-timeout.[cħ]
4691
4692         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4693         Create a DBusTimeoutList.
4694         (dbus_connection_set_timeout_functions): Add new function to
4695         set timeout callbacks
4696
4697         * dbus/dbus-connection.h: Add public DBusTimeout API.
4698
4699         * dbus/dbus-message.c: (dbus_message_get_service):
4700         * dbus/dbus-message.h:  New function.
4701
4702         * dbus/dbus-server.c: Fix small doc typo.
4703
4704         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4705
4706 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
4707
4708         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4709         of the string, just as long as specified.
4710
4711 2003-01-19  Havoc Pennington  <hp@pobox.com>
4712
4713         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4714         new function
4715
4716         * dbus/dbus-server.c (dbus_server_set_max_connections)
4717         (dbus_server_get_max_connections, dbus_server_get_n_connections):
4718         keep track of current number of connections, and add API for
4719         setting a max (but haven't implemented enforcing the max yet)
4720
4721 2003-01-18  Havoc Pennington  <hp@pobox.com>
4722
4723         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4724         reading/writing if read_watch != NULL or write_watch != NULL.
4725
4726         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4727         the message loader code to actually load message->header and
4728         message->body into the newly-created message.
4729
4730         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4731         in OOM case
4732
4733         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4734         (dbus_connection_get_max_message_size)
4735         (dbus_connection_set_max_live_messages_size)
4736         (dbus_connection_get_max_live_messages_size): implement some
4737         resource limitation functions
4738
4739         * dbus/dbus-resources.c: new file implementing some of the
4740         resource limits stuff
4741
4742         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4743         missing docs, add @todo to handle OOM etc.
4744
4745         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4746         docs
4747
4748 2003-01-18  Havoc Pennington  <hp@pobox.com>
4749
4750         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4751         connection if it hasn't been already.
4752
4753         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4754         replace with DisconnectFunction.
4755
4756 2003-01-18  Havoc Pennington  <hp@pobox.com>
4757
4758         Building --disable-verbose-mode --disable-asserts --disable-tests
4759         cuts the library from 112K to 45K or so
4760
4761         * configure.in: check for varargs macro support,
4762         add --enable-verbose-mode, --enable-asserts.
4763
4764         * dbus/dbus-internals.h (_dbus_assert): support
4765         DBUS_DISABLE_ASSERT
4766         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4767
4768 2003-01-18  Havoc Pennington  <hp@pobox.com>
4769
4770         * dbus/dbus-test.c: include config.h so that tests actually run
4771
4772         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4773         so the failure mode when that assumption fails will be plenty
4774         obvious.
4775
4776 2003-01-18  Havoc Pennington  <hp@pobox.com>
4777
4778         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4779
4780         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4781         the distribution
4782
4783         * test/Makefile.am: don't use special variable "TESTS" for echo-*
4784         since we don't want to use those in make check
4785
4786 2003-01-15  Havoc Pennington  <hp@redhat.com>
4787
4788         Release 0.2
4789
4790         * NEWS: update
4791
4792 2003-01-15  Havoc Pennington  <hp@redhat.com>
4793
4794         * test/Makefile.am: fix so that test source code ends up in the
4795         distribution on make distcheck
4796
4797 2003-01-15  Havoc Pennington  <hp@redhat.com>
4798
4799         Release 0.1.
4800
4801         * NEWS: update
4802
4803 2003-01-15  Havoc Pennington  <hp@redhat.com>
4804
4805         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4806         fix build when --disable-tests
4807
4808         * Makefile.am (EXTRA_DIST): put HACKING in here
4809
4810         * HACKING: document procedure for making a tarball release.
4811
4812 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
4813
4814         * bus/connection.c: (connection_error_handler),
4815         (bus_connection_setup):
4816         * bus/main.c: (main):
4817         Make sure that the DBusConnectionData struct is NULLed
4818         out to prevent a segfault.
4819
4820         * dbus/dbus-errors.c: (dbus_result_to_string):
4821         * dbus/dbus-errors.h:
4822         * dbus/dbus-message.c: (dbus_message_get_fields),
4823         (dbus_message_get_fields_valist), (_dbus_message_test):
4824         * dbus/dbus-message.h:
4825         Make dbus_message_get_fields return a result code so we can
4826         track invalid fields as well as oom.
4827
4828 2003-01-11  Havoc Pennington  <hp@pobox.com>
4829
4830         * configure.in: change --enable-test/--enable-ansi action-if-given
4831         to enable_foo=$enableval instead of enable_foo=yes
4832
4833 2003-01-08  Havoc Pennington  <hp@pobox.com>
4834
4835         * dbus/dbus-string.c (_dbus_string_align_length): new function
4836
4837         * dbus/dbus-test-main.c: move main() for test app here
4838         * dbus/dbus-test.c
4839         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4840         symbol to run tests, because dbus-test isn't in the main
4841         library
4842
4843         Code review nitpicks.
4844
4845         * dbus/dbus-message.c (dbus_message_write_header): add newlines
4846         for people with narrow emacs ;-). Assert client_serial was filled
4847         in. Assert message->name != NULL.
4848         (dbus_message_append_fields): have "first_field_type" arg separate
4849         from va list, needed for C++ binding that also uses varargs IIRC
4850         and helps with type safety
4851         (dbus_message_new): add @todo about using DBusString to store
4852         service/name internally
4853         (dbus_message_new): don't leak ->service and ->name on OOM later
4854         in the function
4855         (dbus_message_unref): free the service name
4856         (dbus_message_get_fields): same change to varargs
4857         i.e. first_field_type
4858         (_dbus_message_loader_return_buffer): assert that the message data
4859         is aligned (if not it's a bug in our code). Put in verbose griping
4860         about why we set corrupted = TRUE.
4861         (decode_header_data): add FIXME that char* is evil.  Was going to
4862         add FIXME about evil locale-specific string.h strncmp, but just
4863         switched to wacky string-as-uint32 optimization. Move check for
4864         "no room for field name" above get_const_data_len() to avoid
4865         assertion failure in get_const_data_len if we have trailing 2
4866         bytes or the like. Check for service and name fields being
4867         provided twice. Don't leak service/name on error. Require field
4868         names to be aligned to 4 bytes.
4869
4870         * dbus/dbus-marshal.c: move byte swap stuff to header
4871         (_dbus_pack_int32): uscore-prefix
4872         (_dbus_unpack_int32): uscore-prefix
4873         (_dbus_unpack_uint32): export
4874         (_dbus_demarshal_string): add @todo complaining about use of
4875         memcpy()
4876         (_dbus_marshal_get_field_end_pos): add @todo about bad error
4877         handling allowing corrupt data to go unchecked
4878
4879 2003-01-08  Havoc Pennington  <hp@redhat.com>
4880
4881         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4882         to the select() as needed for authentication. (should be using
4883         _dbus_poll() not select, but for another day)
4884
4885         * dbus/dbus.h: include dbus/dbus-protocol.h
4886
4887 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
4888
4889         * dbus/Makefile.am (dbusinclude_HEADERS): Install
4890         dbus-connection.h
4891
4892 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
4893
4894         * dbus/dbus-internals.c: (_dbus_type_to_string):
4895         New function that returns a string describing a type.
4896
4897         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4898         * dbus/dbus-marshal.h:
4899         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4900         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4901         (dbus_message_iter_get_byte_array):
4902         * dbus/dbus-message.h:
4903         Add new convenience functions for appending and getting message fields.
4904         Also add demarshalling routines for byte arrays.
4905
4906 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4907
4908         * dbus/dbus-connection-internal.h:
4909         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4910         (_dbus_connection_get_next_client_serial),
4911         (dbus_connection_send_message):
4912         * dbus/dbus-internals.h:
4913         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4914         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4915         (_dbus_marshal_uint32), (_dbus_demarshal_double),
4916         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4917         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4918         (_dbus_verbose_bytes), (_dbus_marshal_test):
4919         * dbus/dbus-marshal.h:
4920         * dbus/dbus-message-internal.h:
4921         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4922         (dbus_message_write_header), (_dbus_message_lock),
4923         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4924         (dbus_message_get_name), (dbus_message_append_int32),
4925         (dbus_message_append_uint32), (dbus_message_append_double),
4926         (dbus_message_append_string), (dbus_message_append_byte_array),
4927         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4928         (dbus_message_iter_unref), (dbus_message_iter_has_next),
4929         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4930         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4931         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4932         (decode_header_data), (_dbus_message_loader_return_buffer),
4933         (message_iter_test), (_dbus_message_test):
4934         * dbus/dbus-message.h:
4935         * dbus/dbus-protocol.h:
4936         * dbus/dbus-test.c: (main):
4937         * dbus/dbus-test.h:
4938         * glib/test-dbus-glib.c: (message_handler), (main):
4939         * test/echo-client.c: (main):
4940         * test/watch.c: (check_messages):
4941         Make messages sendable and receivable for real.
4942
4943 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4944
4945         * dbus/dbus-marshal.c: (_dbus_marshal_double),
4946         (_dbus_marshal_string), (_dbus_marshal_byte_array):
4947         * dbus/dbus-message.c: (dbus_message_append_int32),
4948         (dbus_message_append_uint32), (dbus_message_append_double),
4949         (dbus_message_append_string), (dbus_message_append_byte_array):
4950         Handle OOM restoration.
4951
4952 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4953
4954         * dbus/dbus-marshal.c: (_dbus_marshal_string),
4955         (_dbus_demarshal_string), (_dbus_marshal_test):
4956         * dbus/dbus-marshal.h:
4957         * dbus/dbus-message.c: (dbus_message_get_name),
4958         Document these functions.
4959
4960         (dbus_message_append_int32), (dbus_message_append_uint32),
4961         (dbus_message_append_double), (dbus_message_append_string),
4962         (dbus_message_append_byte_array):
4963         * dbus/dbus-message.h:
4964         Add functions for adding message fields of different types.
4965
4966         * dbus/dbus-protocol.h:
4967         Add the different types.
4968
4969 2003-01-05  Havoc Pennington  <hp@pobox.com>
4970
4971         * bus/connection.c: implement routines for handling connections,
4972         first thing is keeping a list of owned services on each connection
4973         and setting up watches etc.
4974
4975         * bus/services.c: implement a mapping from service names to lists
4976         of connections
4977
4978         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4979
4980         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4981         to use static mutexes for global data
4982
4983         * dbus/dbus-connection.c (dbus_connection_set_data): add new
4984         collection of functions to set/get application-specific data
4985         on the DBusConnection.
4986
4987 2003-01-04  Havoc Pennington  <hp@pobox.com>
4988
4989         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4990         (_dbus_poll): new function
4991
4992         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4993         copied from GLib
4994
4995         * bus/loop.c: initial code for the daemon main loop
4996
4997 2003-01-04  Havoc Pennington  <hp@pobox.com>
4998
4999         * test/watch.c (error_handler): make it safe if the error handler
5000         is called multiple times (if we s/error handler/disconnect
5001         handler/ we should just guarantee it's called only once)
5002
5003         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
5004         error handler on disconnect (it's quite possible we should
5005         just change the error handler to a "disconnect handler," I'm
5006         not sure we have any other meaningful errors)
5007
5008         * configure.in: check for getpwnam_r
5009
5010         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5011         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
5012         mechanism as in SASL spec, using socket credentials
5013
5014         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
5015         (_dbus_send_credentials_unix_socket): new function
5016
5017         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
5018         dbus_accept()
5019         (_dbus_write): only check errno if <0 returned
5020         (_dbus_write_two): ditto
5021
5022 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
5023
5024         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
5025         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
5026         (_dbus_marshal_test):
5027         * dbus/dbus-marshal.h:
5028         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
5029         to _dbus_marshal_utf8_string. Also fix some tests.
5030
5031 2002-12-28  Harri Porten  <porten@kde.org>
5032
5033         * configure.in: added check for C++ compiler and a very cheesy
5034         check for the Qt integration
5035
5036         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
5037
5038         * qt/Makefile.am: added
5039
5040         * qt/.cvsignore: added
5041
5042         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
5043         latter, added #ifdef QT_THREAD_SUPPORT guard.
5044
5045         * dbus/Makefile.am: added missing headers for make dist
5046
5047 2002-12-28  Kristian Rietveld  <kris@gtk.org>
5048
5049         * dbus/Makefile.am: fixup export-symbols-regex.
5050
5051 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
5052
5053         * acinclude.m4: Add this file and put the
5054         PKG_CHECK_MODULE macro in it.
5055
5056 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
5057
5058         * dbus/dbus-marshal.c: (_dbus_marshal_string),
5059         (_dbus_demarshal_double), (_dbus_demarshal_int32),
5060         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5061         (_dbus_marshal_test):
5062         Make the demarshalling routines align the pos argument.
5063         Add string marshalling tests and fix the obvious bugs
5064         discovered.
5065
5066 2002-12-26  Havoc Pennington  <hp@pobox.com>
5067
5068         * dbus/dbus-auth.c: fixes fixes fixes
5069
5070         * dbus/dbus-transport-unix.c: wire up support for
5071         encoding/decoding data on the wire
5072
5073         * dbus/dbus-auth.c (_dbus_auth_encode_data)
5074         (_dbus_auth_decode_data): append to target string
5075         instead of nuking it.
5076
5077 2002-12-26  Havoc Pennington  <hp@pobox.com>
5078
5079         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
5080         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
5081         doh
5082
5083         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
5084         avoid swap_bytes() overhead (ignoring possible assembly stuff for
5085         now). Main point is because I wanted unpack_uint32 to implement
5086         _dbus_verbose_bytes
5087         (_dbus_verbose_bytes): new function
5088
5089         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
5090
5091         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
5092         mechanism to handle a corrupt message stream
5093         (_dbus_message_loader_new): fix preallocation to only prealloc,
5094         not prelengthen
5095
5096         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
5097         (_dbus_string_test): enhance tests for copy/move and fix the
5098         functions
5099
5100         * dbus/dbus-transport-unix.c: Hold references in more places to
5101         avoid reentrancy problems
5102
5103         * dbus/dbus-transport.c: ditto
5104
5105         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
5106         leak reference count in no-message case
5107
5108         * test/watch.c (do_mainloop): handle adding/removing watches
5109         during iteration over the watches. Also, ref the connection/server
5110         stored on a watch, so we don't try to mangle a destroyed one.
5111
5112         * dbus/dbus-transport-unix.c (do_authentication): perform
5113         authentication
5114
5115         * dbus/dbus-auth.c (get_state): add a state
5116         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
5117         (_dbus_auth_get_unused_bytes): append the unused bytes
5118         to the passed in string, rather than prepend
5119
5120         * dbus/dbus-transport.c (_dbus_transport_init_base): create
5121         the auth conversation DBusAuth
5122
5123         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
5124         (_dbus_transport_new_for_domain_socket): when creating a
5125         transport, pass in whether it's a client-side or server-side
5126         transport so we know which DBusAuth to create
5127
5128 2002-12-03  Havoc Pennington  <hp@pobox.com>
5129
5130         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
5131         _after_ finalizing the derived members
5132         (unix_connection_set): unref watch if we fail to add it
5133
5134         * dbus/dbus-connection.c (dbus_connection_unref): delete the
5135         transport first, so that the connection owned by the
5136         transport will be valid as the transport finalizes.
5137
5138         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
5139         if necessary, and remove watches from the connection.
5140
5141         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
5142
5143 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
5144
5145         * dbus/dbus-marshal.c: (_dbus_marshal_string),
5146         (_dbus_demarshal_double), (_dbus_demarshal_int32),
5147         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
5148         (_dbus_marshal_test):
5149         * dbus/dbus-marshal.h:
5150         Add string marshal functions and have the demarshal functions
5151         return the new position.
5152
5153 2002-12-25  Havoc Pennington  <hp@pobox.com>
5154
5155         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
5156         it is a simple protocol that just maps directly to SASL.
5157
5158         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
5159         initial implementation, not actually used yet.
5160
5161         * dbus/dbus-string.c (_dbus_string_find): new function
5162         (_dbus_string_equal): new function
5163         (_dbus_string_base64_encode): new function
5164         (_dbus_string_base64_decode): new function
5165
5166 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
5167
5168         * dbus/Makefile.am:
5169         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
5170         (_dbus_marshal_int32), (_dbus_marshal_uint32),
5171         (_dbus_demarshal_double), (_dbus_demarshal_int32),
5172         (_dbus_demarshal_uint32), (_dbus_marshal_test):
5173         * dbus/dbus-marshal.h:
5174         * dbus/dbus-protocol.h:
5175         * dbus/dbus-test.c: (main):
5176         * dbus/dbus-test.h:
5177         Add un-optimized marshalling/demarshalling routines.
5178
5179 2002-12-25  Harri Porten  <porten@kde.org>
5180
5181         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
5182
5183 2002-12-24  Zack Rusin  <zack@kde.org>
5184
5185         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
5186         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
5187         main loop stuff
5188
5189 2002-12-24  Havoc Pennington  <hp@pobox.com>
5190
5191         * glib/dbus-gthread.c: fix include
5192
5193         * glib/dbus-glib.h: rename DBusMessageHandler for now.
5194         I think glib API needs to change, though, as you don't
5195         want to use DBusMessageFunction, you want to use the
5196         DBusMessageHandler object. Probably
5197         dbus_connection_open_with_g_main_loop()
5198         and dbus_connection_setup_g_main_loop() or something like that
5199         (but think of better names...) that just create a connection
5200         that has watch/timeout functions etc. already set up.
5201
5202         * dbus/dbus-connection.c
5203         (dbus_connection_send_message_with_reply): new function just to
5204         show how the message handler helps us deal with replies.
5205
5206         * dbus/dbus-list.c (_dbus_list_remove_last): new function
5207
5208         * dbus/dbus-string.c (_dbus_string_test): free a string that
5209         wasn't
5210
5211         * dbus/dbus-hash.c: use memory pools for the hash entries
5212         (rebuild_table): be more paranoid about overflow, and
5213         shrink table when we can
5214         (_dbus_hash_test): reduce number of sprintfs and write
5215         valid C89. Add tests for case where we grow and then
5216         shrink the hash table.
5217
5218         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
5219
5220         * dbus/dbus-connection.c (dbus_connection_register_handler)
5221         (dbus_connection_unregister_handler): new functions
5222
5223         * dbus/dbus-message.c (dbus_message_get_name): new
5224
5225         * dbus/dbus-list.c: fix docs typo
5226
5227         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
5228         an object representing a handler for messages.
5229
5230 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
5231
5232         * glib/dbus-glib.h:
5233         * glib/dbus-gthread.c: (dbus_gthread_init):
5234         Don't use the gdbus prefix for public functions.
5235
5236 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
5237
5238         * Makefile.am:
5239         * configure.in:
5240         Add GLib checks and fixup .pc files
5241
5242         * glib/Makefile.am:
5243         * glib/dbus-glib.h:
5244         * glib/dbus-gmain.c: (gdbus_connection_prepare),
5245         (gdbus_connection_check), (gdbus_connection_dispatch),
5246         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
5247         (dbus_connection_gsource_new):
5248         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
5249         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
5250         * glib/test-dbus-glib.c: (message_handler), (main):
5251         Add GLib support.
5252
5253 2002-12-15  Harri Porten  <porten@kde.org>
5254
5255         * autogen.sh: check for libtoolize before attempting to use it
5256
5257         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
5258         struct.
5259
5260         * .cvsignore: ignore more stamp files
5261
5262         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
5263
5264         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
5265         without make install.
5266
5267 2002-12-15  Havoc Pennington  <hp@pobox.com>
5268
5269         * dbus/dbus-threads.c: add thread stubs that a higher library
5270         layer can fill in. e.g. the GLib wrapper might fill them in with
5271         GThread stuff. We still need to use this thread API to
5272         thread-safe-ize the library.
5273
5274 2002-12-12  Havoc Pennington  <hp@pobox.com>
5275
5276         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
5277         below new interfaces and include fewer system headers.
5278
5279         * dbus/dbus-sysdeps.c (_dbus_read): new function
5280         (_dbus_write): new function
5281         (_dbus_write_two): new function
5282         (_dbus_connect_unix_socket): new function
5283         (_dbus_listen_unix_socket): new function
5284
5285         * dbus/dbus-message-internal.h: change interfaces to use
5286         DBusString
5287
5288 2002-12-11  Havoc Pennington  <hp@pobox.com>
5289
5290         * dbus/dbus-types.h: add dbus_unichar
5291
5292         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
5293
5294         * dbus/dbus-connection.c (dbus_connection_send_message): return
5295         TRUE on success
5296
5297         * dbus/dbus-transport.c: include dbus-watch.h
5298
5299         * dbus/dbus-connection.c: include dbus-message-internal.h
5300
5301         * HACKING: add file with coding guidelines stuff.
5302
5303         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
5304         handling here, for security purposes (as in vsftpd). Not actually
5305         using this class yet.
5306
5307         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
5308         system/libc usage here, as in vsftpd, for ease of auditing (and
5309         should also simplify portability). Haven't actually moved all the
5310         system/libc usage into here yet.
5311
5312 2002-11-25  Havoc Pennington  <hp@pobox.com>
5313
5314         * dbus/dbus-internals.c (_dbus_verbose): fix to not
5315         always print the first verbose message.
5316
5317 2002-11-24  Havoc Pennington  <hp@pobox.com>
5318
5319         * test/echo-client.c, test/echo-server.c: cheesy test
5320         clients.
5321
5322         * configure.in (AC_CHECK_FUNCS): check for writev
5323
5324         * dbus/dbus-message.c (_dbus_message_get_network_data): new
5325         function
5326
5327         * dbus/dbus-list.c (_dbus_list_foreach): new function
5328
5329         * dbus/dbus-internals.c (_dbus_verbose): new function
5330
5331         * dbus/dbus-server.c, dbus/dbus-server.h: public object
5332         representing a server that listens for connections.
5333
5334         * dbus/.cvsignore: create
5335
5336         * dbus/dbus-errors.h, dbus/dbus-errors.c:
5337         public API for reporting errors
5338
5339         * dbus/dbus-connection.h, dbus/dbus-connection.c:
5340         public object representing a connection that
5341         sends/receives messages. (Same object used for
5342         both client and server.)
5343
5344         * dbus/dbus-transport.h, dbus/dbus-transport.c:
5345         Basic abstraction for different kinds of stream
5346         that we might read/write messages from.
5347
5348 2002-11-23  Havoc Pennington  <hp@pobox.com>
5349
5350         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
5351         _DBUS_INT_MAX
5352
5353         * dbus/dbus-test.c (main): add list test, and include
5354         dbus-test.h as intended
5355
5356         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
5357         (_dbus_hash_table_remove_int): return value indicates
5358         whether the entry existed to remove
5359
5360         * dbus/dbus-list.c: add linked list utility class,
5361         with docs and tests
5362
5363         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
5364         array sometimes.
5365
5366 2002-11-23  Havoc Pennington  <hp@pobox.com>
5367
5368         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
5369         DBUS_END_DECLS to nothing, that should fix this once and for all
5370
5371         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
5372
5373         * dbus/dbus-message.c, dbus/dbus-hash.c:
5374         add some missing @brief
5375
5376 2002-11-23  Havoc Pennington  <hp@pobox.com>
5377
5378         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
5379         to avoid confusing Doxygen
5380
5381         * dbus/dbus-hash.c: @} not }@
5382
5383         * dbus/dbus-message.c (struct DBusMessage): split out
5384         internals docs
5385
5386 2002-11-23  Havoc Pennington  <hp@pobox.com>
5387
5388         * configure.in: pile on more warning flags if using gcc
5389
5390         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
5391         to document static functions
5392
5393         * configure.in: add summary to end of configure so it
5394         looks nice and attractive
5395
5396         * dbus/dbus-hash.c: finish implementation and write unit
5397         tests and docs
5398
5399         * configure.in: add --enable-tests to enable unit tests
5400
5401         * dbus/dbus-test.c: test program to run unit tests
5402         for all files in dbus/*, initially runs a test for
5403         dbus-hash.c
5404
5405         * dbus/dbus-internals.h: file to hold some internal utility stuff
5406
5407 2002-11-22  Havoc Pennington  <hp@redhat.com>
5408
5409         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
5410         "ported" away from Tcl
5411
5412         * dbus/dbus-types.h: header for types such as dbus_bool_t
5413
5414 2002-11-22  Havoc Pennington  <hp@redhat.com>
5415
5416         * dbus/dbus.h: fixups for doc warnings
5417
5418         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
5419         macros
5420         (QUIET): make it quiet so we can see warnings
5421
5422         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
5423
5424 2002-11-22  Havoc Pennington  <hp@redhat.com>
5425
5426         * Makefile.am: include "Doxyfile" target in all-local
5427
5428         * configure.in: generate the Doxyfile
5429
5430         * Doxyfile.in: move Doxyfile here, so we can use
5431         configure to generate a Doxyfile with the right
5432         version number etc.
5433
5434 2002-11-22  Havoc Pennington  <hp@redhat.com>
5435
5436         * dbus/dbus-message.c: move inline docs into .c file
5437
5438         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
5439         so all docs are under doc/
5440         (MAN_EXTENSION): generate man pages. Use extension
5441         ".3dbus" which matches ".3qt" on my system,
5442         I guess this is OK, I don't know really.
5443         (FILE_PATTERNS): look for .c files not .h, makes sense
5444         for plain C I think
5445
5446 2002-11-22  Havoc Pennington  <hp@pobox.com>
5447
5448         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
5449         because any app can be a server, and any app can be a client,
5450         the bus is a special kind of server.
5451
5452 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
5453
5454         * Doxyfile : adding. Still needs Makefile rules to be generated
5455         automatically (just run "doxygen" in the toplevel dir for now to
5456         generate docs)
5457
5458         * dbus/dbus-message.h : Adding sample docs (javadoc since
5459         resembles gtk-doc a little more)
5460
5461         * dbus/dbus.h : Adding sample docs
5462
5463 2002-11-21  Havoc Pennington  <hp@redhat.com>
5464
5465         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
5466         so we can allow ourselves to include files directly,
5467         instead of having to use dbus.h
5468
5469         * dbus/dbus.h: fill in
5470
5471         * dbus/dbus-message.h: sketch out a sample header file.
5472         Include griping if you include it directly instead of
5473         via dbus.h
5474
5475         * dbus/dbus-macros.h: new file with macros for extern "C",
5476         TRUE/FALSE, NULL, etc.
5477
5478         * doc/file-boilerplate.c: put include guards in here
5479
5480 2002-11-21  Havoc Pennington  <hp@redhat.com>
5481
5482         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
5483
5484         * COPYING: include the GPL as well, and license code
5485         under both AFL and GPL.
5486
5487 2002-11-21  Havoc Pennington  <hp@redhat.com>
5488
5489         * acconfig.h: get rid of this
5490
5491         * autogen.sh (run_configure): add --no-configure option
5492
5493         * configure.in: remove AC_ARG_PROGRAM to make
5494         autoconf complain less. add AC_PREREQ.
5495         add AC_DEFINE third arg.
5496
5497 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
5498
5499         * doc/Makefile.am:
5500         Fix references so we can distcheck.
5501
5502 2002-11-21  Havoc Pennington  <hp@redhat.com>
5503
5504         * Initial module creation
5505