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