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