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