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