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