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