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