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