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