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