2003-05-04 Havoc Pennington <hp@pobox.com>
[platform/upstream/dbus.git] / ChangeLog
1 2003-05-04  Havoc Pennington  <hp@pobox.com>
2
3         * dbus-glib-1.pc.in (Requires): fix dependencies, from 
4         Anders Gustafsson
5
6 2003-05-04  Havoc Pennington  <hp@pobox.com>
7
8         * tools/dbus-launch.c: implement
9
10         * bus/main.c (main), bus/bus.c (bus_context_new): 
11         implement --print-pid and --fork
12
13 2003-05-03  Havoc Pennington  <hp@redhat.com>
14
15         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
16         the address had no value, and add to test suite. Fix and
17         regression test from Miloslav Trmac
18
19 2003-05-03  Havoc Pennington  <hp@pobox.com>
20
21         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
22         watch is invalid when handled
23
24         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
25         dbus-launch utility to launch the bus from a shell script.  Didn't
26         actually implement dbus-launch yet, it's just a placeholder still.
27         
28 2003-05-03  Havoc Pennington  <hp@pobox.com>
29
30         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
31         daemon; also documents daemon config file, so replaces
32         doc/config-file.txt. Corrected some stuff from config-file.txt in
33         the process of moving it.
34
35 2003-05-03  Havoc Pennington  <hp@pobox.com>
36
37         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: 
38         add some man pages
39
40 2003-05-03  Colin Walters  <walters@verbum.org>
41
42         * dbus/dbus-sysdeps.c (fill_user_info): Test against
43         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
44
45         * Makefile.am: Update to use new .pc versioning scheme.
46
47 2003-05-02  Havoc Pennington  <hp@redhat.com>
48
49         * bus/system.conf.in: allow send/receive to/from message bus
50         service
51
52 2003-04-30  Havoc Pennington  <hp@redhat.com>
53
54         * configure.in: print a note when building with unit tests and
55         without assertions
56
57 2003-04-30  Havoc Pennington  <hp@redhat.com>
58
59         * Makefile.am: add a check-local that complains if you didn't
60         configure with --enable-tests
61
62 2003-04-29  Havoc Pennington  <hp@redhat.com>
63
64         * glib/dbus-gmain.c: docs cleanups
65
66         * dbus/dbus-types.h: add docs on int64 types
67
68         * dbus/dbus-memory.c: fix docs to avoid putting private API in
69         public API docs section
70
71 2003-04-29  Havoc Pennington  <hp@redhat.com>
72
73         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
74         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
75         parallel install API version, not with the D-BUS package version.
76
77         * HACKING: move some of README over here
78
79         * README: updates, and document API/ABI policy
80
81         * configure.in: reindentation
82
83 2003-04-29  Havoc Pennington  <hp@redhat.com>
84
85         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
86         to use this library" to be sure people have the right
87         expectations.
88         
89 2003-04-28  Havoc Pennington  <hp@redhat.com>
90
91         * configure.in: add --enable-docs which by default is auto yes if
92         doxygen and db2html found, no otherwise; but can be forced on/off
93
94         * doc/Makefile.am: conditionalize whether to build docs on
95         --enable-docs
96
97 2003-04-28  Havoc Pennington  <hp@redhat.com>
98
99         * configure.in: 0.10
100
101         * NEWS: update
102
103         * bus/system.conf.in: add <includedir>system.d</includedir>
104         
105         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
106         username was provided but not uid
107
108         * bus/config-parser.c (struct BusConfigParser): keep track of
109         whether the parser is toplevel or was included; change some 
110         of the error handling if it's included.
111         
112 2003-04-27  Havoc Pennington  <hp@pobox.com>
113
114         Unbreak my code...
115
116         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
117         report correct status if we finish processing authentication
118         inside this function.
119         
120         * bus/activation.c (try_send_activation_failure): use
121         bus_transaction_send_error_reply
122
123         * bus/connection.c (bus_connection_get_groups): return an error
124         explaining the problem
125
126         * bus/bus.c (bus_context_check_security_policy): implement
127         restriction here that inactive connections can only send the
128         hello message. Also, allow bus driver to send anything to 
129         any recipient.
130
131         * bus/connection.c (bus_connection_complete): create the
132         BusClientPolicy here instead of on-demand.
133         (bus_connection_get_policy): don't return an error
134
135         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
136         sender field in message being replied to
137
138         * bus/bus.c (bus_context_check_security_policy): fix silly typo
139         causing it to return FALSE always
140
141         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
142         we checked sender rather than destination
143
144 2003-04-25  Havoc Pennington  <hp@redhat.com>
145
146         test suite is slightly hosed at the moment, will fix soon
147         
148         * bus/connection.c (bus_connections_expire_incomplete): fix to
149         properly disable the timeout when required
150         (bus_connection_set_name): check whether we can remove incomplete
151         connections timeout after we complete each connection.
152
153         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
154         probably still broken.
155
156         * bus/services.c (bus_registry_acquire_service): implement max
157         number of services owned, and honor allow/deny rules on which 
158         services a connection can own.
159
160         * bus/connection.c (bus_connection_get_policy): report errors here
161
162         * bus/activation.c: implement limit on number of pending
163         activations
164
165 2003-04-25  Havoc Pennington  <hp@redhat.com>
166
167         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
168         where we used >= 0 instead of != DBUS_UID_UNSET.
169
170 2003-04-25  Havoc Pennington  <hp@redhat.com>
171
172         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
173         were toggled without add/remove, fix from Anders Gustafsson
174
175 2003-04-24  Havoc Pennington  <hp@redhat.com>
176
177         * test/data/valid-config-files/basic.conf: add <limit> tags to
178         this test
179         
180         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
181         <limit> tag in configuration file.
182         
183 2003-04-24  Havoc Pennington  <hp@redhat.com>
184
185         * bus/dispatch.c: somehow missed some name_is
186
187         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled) 
188         (_dbus_timeout_set_interval): new
189
190         * bus/connection.c (bus_connections_setup_connection): record time
191         when each connection is first set up, and expire them after the 
192         auth timeout passes.
193
194 2003-04-24  Havoc Pennington  <hp@redhat.com>
195
196         * dbus/dbus-message.c (dbus_message_name_is): rename
197         (dbus_message_service_is): rename
198         (dbus_message_sender_is): rename
199         (dbus_message_get_service): rename
200
201 2003-04-24  Havoc Pennington  <hp@redhat.com>
202
203         * configure.in: add --enable-checks
204
205         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
206
207         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
208         to use thread locks.
209         (_dbus_connection_handler_destroyed_locked): move some private
210         functions into proper docs group
211
212         * dbus/dbus-internals.h: add _dbus_return_if_fail,
213         _dbus_return_val_if_fail
214
215         Throughout: use dbus_return_if_fail
216
217 2003-04-23  James Willcox  <jwillcox@gnome.org>
218
219         * glib/dbus-glib.h:
220         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
221         (dbus_connection_setup_with_g_main),
222         (dbus_server_setup_with_g_main):
223         * glib/test-dbus-glib.c: (main):
224         * glib/test-thread-client.c: (main):
225         * glib/test-thread-server.c: (new_connection_callback), (main):
226         * tools/dbus-monitor.c: (main):
227
228         Added a GMainContext argument to dbus_connection_setup_with_g_main()
229         and dbus_server_setup_with_g_main().
230
231 2003-04-20  Havoc Pennington  <hp@pobox.com>
232
233         * doc/dbus-specification.sgml: document the restrictions on
234         message and service names
235
236 2003-04-22  Havoc Pennington  <hp@redhat.com>
237
238         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
239         support, and do some code cleanups to share more code and 
240         speed up array marshal/demarshal.
241
242         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
243
244         * configure.in: generate dbus-arch-deps.h
245
246         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
247         64-bit typecodes
248
249 2003-04-22  Havoc Pennington  <hp@redhat.com>
250
251         * test/data/valid-messages/opposite-endian.message: fix test
252         to use proper type for rply field
253
254         * test/data/invalid-messages: add tests for below validation
255         
256         * dbus/dbus-message.c (decode_header_data): validate field types,
257         and validate that named fields are valid names
258         (decode_name_field): consider messages in the
259         org.freedesktop.Local. namespace to be invalid.
260
261         * dbus/dbus-string.c (_dbus_string_validate_name): new
262
263 2003-04-19  Havoc Pennington  <hp@pobox.com>
264
265         * bus/driver.c (bus_driver_handle_hello): check limits and 
266         return an error if they are exceeded.
267
268         * bus/connection.c: maintain separate lists of active and inactive
269         connections, and a count of each. Maintain count of completed
270         connections per user. Implement code to check connection limits.
271
272         * dbus/dbus-list.c (_dbus_list_unlink): export
273
274         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
275         number of bytes in the message queue for a connection
276
277 2003-04-18  Havoc Pennington  <hp@pobox.com>
278
279         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
280
281         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
282         memleaks
283
284         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and 
285         on realloc be sure to update the pointer in the keyring
286
287         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
288         offset to avoid writing to unallocated memory
289
290         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
291         try the next mechanism, so we properly handle OOM
292
293         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
294         on OOM.
295         (_dbus_keyring_new): fix OOM bug
296         (_dbus_keyring_new_homedir): always set error; impose a maximum
297         number of keys we'll load from the file, mostly to speed up the
298         test suite and make its OOM checks more useful, but also for
299         general sanity.
300
301         * dbus/dbus-auth.c (process_error_server): reject authentication
302         if we get an error from the client
303         (process_cancel): on cancel, send REJECTED, per the spec
304         (process_error_client): send CANCEL if we get an error from the
305         server.
306
307 2003-04-18  Havoc Pennington  <hp@pobox.com>
308         
309         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
310         debug spew
311
312         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
313         handling problem
314
315         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
316         about DBUS_TEST_HOMEDIR once
317
318         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
319         the environment
320         
321         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
322         config file so we test the right thing
323
324         Throughout: assorted docs improvements
325
326 2003-04-18  Havoc Pennington  <hp@pobox.com>
327
328         * glib/dbus-gmain.c: adapt to watch changes
329
330         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
331
332         * dbus/dbus-server.h: remove dbus_server_handle_watch
333
334         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
335
336         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
337         like DBusTimeout, so we don't need dbus_connection_handle_watch
338         etc.
339
340 2003-04-17  Havoc Pennington  <hp@redhat.com>
341
342         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
343         database usage so it all goes via the DBusUserDatabase cache.
344
345 2003-04-17  Havoc Pennington  <hp@redhat.com>
346
347         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
348         there was an OOM watch we skipped, we always return TRUE so we
349         iterate again to have a look at it again. Fixes test suite hang.
350         Code rearrangement also lets us lose some memset and only iterate
351         over callbacks once.
352
353         * bus/driver.c (bus_driver_handle_message): sense of test for
354         reply was backward
355
356 2003-04-16  Havoc Pennington  <hp@pobox.com>
357
358         * doc/dbus-specification.sgml: make spec say serials are unsigned
359
360         * dbus/dbus-message.h: change message serials to unsigned
361
362         * dbus/dbus-connection.c: adapt to message serials being unsigned
363         
364 2003-04-15  Havoc Pennington  <hp@pobox.com>
365
366         * bus/bus.c: create and keep around a shared DBusUserDatabase 
367         object.
368
369         * bus/connection.c (bus_connection_get_groups): don't cache
370         groups for user in the connection object, since user database 
371         object now does that.
372
373 2003-04-16  Havoc Pennington  <hp@redhat.com>
374
375         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
376         list of size counters
377         (_dbus_message_loader_putback_message_link): put back a popped link
378
379         * dbus/dbus-connection.c
380         (dbus_connection_set_max_live_messages_size): rename 
381         max_received_size
382         (dbus_connection_get_outgoing_size): get size of outgoing 
383         queue
384         (_dbus_connection_set_connection_counter): remove this cruft
385         
386 2003-04-14  Havoc Pennington  <hp@redhat.com>
387
388         * dbus/dbus-userdb.c: user database abstraction, mostly to get
389         caching, but at some point we might want to be able to use a
390         different database.
391
392         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
393         SHA1 conf file to test the sha1 auth mechanism, since the regular
394         test always uses EXTERNAL when available.
395
396         * configure.in,
397         test/data/valid-config-files/debug-allow-all-sha1.conf.in: 
398         add conf file that requires use of sha1 auth
399
400 2003-04-13  Havoc Pennington  <hp@pobox.com>
401         
402         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
403         from Philip Blundell to send messages and monitor them.
404         
405 2003-04-13  Havoc Pennington  <hp@pobox.com>
406
407         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting 
408         callbacks
409
410         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
411         users
412
413         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
414         fix to only recover unused bytes if we're already authenticated
415         (_dbus_transport_get_is_authenticated): fix to still mark us 
416         authenticated if there are unused bytes.
417
418         * bus/dispatch.c: implement security policy checking
419         
420         * bus/connection.c (bus_transaction_send_from_driver): new
421
422         * bus/bus.c (bus_context_check_security_policy): new
423
424         * bus/dispatch.c (send_service_nonexistent_error): delete this,
425         now we just set the DBusError and it gets converted to an error
426         reply.
427
428         * bus/connection.c (allow_user_function): enable code using actual
429         data from the config file
430
431         * bus/policy.c (list_allows_user): handle wildcard rules for
432         user/group connection perms
433
434 2003-04-13  Havoc Pennington  <hp@pobox.com>
435
436         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
437         
438         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
439
440         * bus/policy.c (bus_policy_append_mandatory_rule)
441         (bus_policy_append_default_rule, bus_policy_append_user_rule)
442         (bus_policy_append_group_rule): new functions
443
444 2003-04-12  Havoc Pennington  <hp@pobox.com>
445
446         * bus/config-parser.c (bus_config_parser_new): fix a memleak
447
448         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
449         the pid/gid/uid, just for paranoia.
450
451         * test/break-loader.c (randomly_do_n_things): find a byte
452         containing a type code, and randomly change it to a different 
453         type code.
454
455 2003-04-12  Havoc Pennington  <hp@pobox.com>
456
457         * bus/policy.h: change BusPolicy to be the thing from the config
458         file, and rename old BusPolicy to BusClientPolicy
459
460         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to 
461         match change in how policy works
462
463         * dbus/dbus-internals.h: mark assert_not_reached as
464         __attribute((noreturn))__
465
466 2003-04-11  Havoc Pennington  <hp@redhat.com>
467
468         * doc/dbus-specification.sgml: fix a spot with the wrong name for 
469         the broadcast service. Use boolean return for ServiceExists.
470
471 2003-04-11  Havoc Pennington  <hp@redhat.com>
472
473         * configure.in: add another directory to look for qt in.
474
475 2003-04-11  Havoc Pennington  <hp@redhat.com>
476
477         * AUTHORS: add Colin Walters
478
479 2003-04-11  Havoc Pennington  <hp@redhat.com>
480
481         * NEWS: update
482
483         * configure.in: 0.9
484
485 2003-04-11  Havoc Pennington  <hp@redhat.com>
486
487         * bus/messagebus.in: remove pid file when stopping the
488         message bus, since the bus won't have privileges to remove it
489         itself.
490
491 2003-04-11  Havoc Pennington  <hp@redhat.com>
492
493         * bus/bus.c (bus_context_new): move credentials change after
494         creating pidfile
495
496 2003-04-11  Havoc Pennington  <hp@pobox.com>
497
498         * test/decode-gcov.c: add "below average functions" to the
499         coverage report, and change how some of the code works.
500
501         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
502         not in the coverage stats.
503
504         * test/test-service.c (main): use _dbus_verbose not fprintf in a
505         couple places so running the test suite doesn't result in megaspam.
506
507 2003-04-11  Havoc Pennington  <hp@pobox.com>
508
509         * bus/dispatch.c (check_existent_service_activation): accept a no
510         memory error in a place we didn't before
511
512         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
513         in case the first one failed," since the test suite is less
514         broken now.
515
516 2003-04-10  Havoc Pennington  <hp@pobox.com>
517
518         * bus/dispatch.c (check_segfault_service_activation): add test
519         for launching an executable that just crashes.
520
521         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
522         don't leave a million cores. We'll see how portable this is.
523
524 2003-04-10  Havoc Pennington  <hp@pobox.com>
525
526         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
527         the possible parent failures before we fork, so that we don't
528         fail to create a babysitter after creating the child.
529
530         * bus/activation.c (bus_activation_activate_service): kill child
531         if we don't successfully complete the activation.
532
533 2003-04-10  Havoc Pennington  <hp@redhat.com>
534
535         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
536         the connection if it's disconnected
537
538         * bus/activation.c (bus_activation_service_created): use new
539         transaction features to roll back removal of pending activation if
540         we don't successfully create the service after all. Don't remove
541         pending activation if the function fails.
542
543         * dbus/dbus-list.c (_dbus_list_insert_before_link) 
544         (_dbus_list_insert_after_link): new code to facilitate
545         services.c fixes
546
547         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
548         new functionality, so we can preallocate the ability to insert
549         into a hash table.
550
551         * bus/connection.c (bus_transaction_add_cancel_hook): new function
552         allowing us to put custom hooks in a transaction to be used for 
553         cancelling said transaction
554
555         * doc/dbus-specification.sgml: add some discussion of secondary
556         service owners, and disallow zero-length service names
557
558         * bus/services.c (bus_registry_acquire_service): new function,
559         splits out part of bus_driver_handle_acquire_service() and fixes 
560         a bug where we didn't remove the service doing the acquiring 
561         from the secondary queue if we failed to remove the current owner
562         from the front of the queue.
563         
564 2003-04-10  Alexander Larsson  <alexl@redhat.com>
565
566         * doc/dbus-specification.sgml:
567         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
568         
569 2003-04-10  Alexander Larsson  <alexl@redhat.com>
570
571         * bus/.cvsignore:
572         * glib/.cvsignore:
573         * test/.cvsignore:
574         Added files to cvsignore
575         
576         * dbus/dbus-message.h:
577         * dbus/dbus-message.c: (dbus_message_iter_get_named):
578         Make get_named() take two out argument and return a boolean.
579         (dbus_message_iter_get_args_valist):
580         Update usage of get_named().
581         (dbus_message_iter_append_byte):
582         Fix typo
583         (dbus_message_iter_append_named)
584         Fix typo
585         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
586         More tests.
587
588 2003-04-10  Alexander Larsson  <alexl@redhat.com>
589
590         * dbus/dbus-marshal.[ch]:
591         Add array_type_pos argument to _dbus_marshal_validate_arg.
592         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
593         
594         * dbus/dbus-message.[ch]:
595         Multi-dimensional arrays have full type specification in the
596         outermost array. Iter code re-arranged to handle this.
597         Added some more iter tests.
598         
599         * doc/dbus-specification.sgml:
600         Add me to authors.
601         Remove old FIXME.
602         Update new array encoding description.
603         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
604         
605         * test/data/invalid-messages/array-with-mixed-types.message:
606         * test/data/valid-messages/array-of-array-of-uint32.message:
607         Change to the new array format.
608         
609         * test/data/invalid-messages/too-short-dict.message:
610         Fix bug in test.
611         
612         * test/data/valid-messages/recursive-types.message:
613         Fix up and extend test.
614
615 2003-04-10  Havoc Pennington  <hp@pobox.com>
616
617         * bus/dispatch.c: lots of fixes
618         
619         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
620         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
621         that was crack, broke the test service.
622
623         * dbus/dbus-transport.c (_dbus_transport_open): fix error
624         handling to avoid piling up errors if we get a failure on the 
625         first address.
626
627         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
628         pid in assertion failures.
629
630         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
631         to some fixed size of file descriptor array. Don't return TRUE
632         anytime a timeout exists, that led to lots of busy loop silliness
633         in the tests.
634
635 2003-04-09  Havoc Pennington  <hp@redhat.com>
636
637         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
638         I'd checked this in earlier but hadn't.
639
640 2003-04-09  Havoc Pennington  <hp@redhat.com>
641
642         * bus/dispatch.c (bus_dispatch_test): get a bit further through
643         the activation test (man this is getting old!)
644
645 2003-04-09  Havoc Pennington  <hp@redhat.com>
646
647         * test/test-utils.c: use dispatch status function to fix this up
648
649         * bus/connection.c (connection_watch_callback): don't dispatch
650         from here
651         (connection_timeout_callback): don't dispatch from here
652         (bus_connections_setup_connection): set the dispatch status function
653         (bus_connection_disconnected): unset it
654
655         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
656         used to add a connection to be dispatched
657         (_dbus_loop_iterate): do the dispatching at the end of each
658         iteration
659
660         * dbus/dbus-connection.c
661         (dbus_connection_set_dispatch_status_function): new function
662         allowing us to fix up main loop usage
663         (_dbus_connection_last_unref): free all the various function
664         user data
665         (dbus_connection_dispatch): call the DispatchStatusFunction 
666         whenever this function returns
667         (dbus_connection_handle_watch): call DispatchStatusFunction
668         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
669         (reply_handler_timeout): call DispatchStatusFunction
670         (dbus_connection_flush): call DispatchStatusFunction
671
672 2003-04-09  Havoc Pennington  <hp@redhat.com>
673
674         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and 
675         a memory leak
676
677         * bus/dispatch.c (check_service_activated): fix bug in test
678
679         * dbus/dbus-mainloop.c (check_timeout): fix this up
680
681         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
682         verbose output so we can sort out output from different processes,
683         e.g. in the activation case.
684
685 2003-04-08  Colin Walters  <walters@gnu.org>
686  
687         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
688         the pid file.
689         (bus_context_new): Set it.
690         (bus_context_unref): Use it to delete the pid file.
691  
692 2003-04-08  Havoc Pennington  <hp@redhat.com>
693
694         * test/data/invalid-messages/array-with-mixed-types.message:
695         regression test that fails for the moment
696
697         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
698         tests for convenience
699
700         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
701         array of nil, it broke things.
702
703         * test/data/invalid-messages/array-of-nil.message: regression test
704
705         * test/data/valid-messages/array-of-array-of-uint32.message:
706         happened to write this so added it to suite
707         
708 2003-04-08  Havoc Pennington  <hp@redhat.com>
709
710         * bus/driver.c (bus_driver_handle_acquire_service): init
711         retval/reply before checking name
712
713         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
714         recursion depth argument
715
716         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
717         in the public struct for future extension
718
719         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
720         typo
721
722         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
723         message
724
725         * doc/dbus-specification.sgml: fix typo
726
727 2003-04-08  Alexander Larsson  <alexl@redhat.com>
728
729         Implemented recursive types, named types and new-style iters
730
731         * bus/driver.c:
732         * glib/test-thread-client.c: (thread_func):
733         * glib/test-thread-server.c: (handle_test_message):
734         * test/test-service.c: (handle_echo):
735         Update to new api
736         
737         * dbus/Makefile.am:
738         * dbus/dbus-dict.c:
739         * dbus/dbus-dict.h:
740         * dbus/dbus.h
741         Remove DBusDict
742
743         * dbus/dbus-internals.c: (_dbus_type_to_string):
744         Update for new types.
745         
746         * dbus/dbus-marshal.[ch]:
747         Implement recursive types and the new marshalling format.
748         Remove hardcoded dict marshalling.
749         Marshal named types.
750         
751         * dbus/dbus-message-builder.c:
752         Add BYTE_ARRAY.
753         Remove references to old types
754         
755         * dbus/dbus-message.[ch]:
756         New non-refcounted iter API that supports recursive iters.
757         Use iters for appending, including support for recursive
758         iters.
759         Add byte and named type support.
760         Update everything to new marshalling formats.
761         Add tests for new API.
762         
763         * dbus/dbus-protocol.h:
764         Remove old array types.
765         Add types: BYTE, ARRAY, DICT, NAMED
766         
767         * dbus/dbus-string.c:
768         * dbus/dbus-sysdeps.c:
769         Make parse_double locale safe.
770         
771         * dbus/dbus-test-main.c:
772         Call setlocale.
773         
774         * dbus/dbus-test.c:
775         Kill dict test
776         
777         * doc/dbus-specification.sgml:
778         Update spec
779         
780         * test/data/incomplete-messages/missing-body.message:
781         * test/data/invalid-messages/bad-boolean.message:
782         * test/data/invalid-messages/bad-boolean-array.message:
783         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
784         * test/data/invalid-messages/boolean-has-no-value.message-raw:
785         * test/data/invalid-messages/too-short-dict.message:
786         * test/data/valid-messages/dict-simple.message:
787         * test/data/valid-messages/dict.message:
788         * test/data/valid-messages/emptiness.message:
789         * test/data/valid-messages/lots-of-arguments.message:
790         * test/data/valid-messages/no-padding.message:
791         * test/data/valid-messages/recursive-types.message:
792         Add missing NAME fields
793         Fix up dicts & arrays
794         
795         * test/data/invalid-messages/dict-with-nil-value.message:
796         Removed, this is not invalid anymore.
797         
798         * test/data/valid-messages/recursive-types.message:
799         Add new test for deeply recursive types.
800
801 2003-04-07  Havoc Pennington  <hp@pobox.com>
802
803         * bus/driver.c (bus_driver_handle_acquire_service): return an
804         error if you try to acquire a service that starts with ':'
805
806 2003-04-07  Havoc Pennington  <hp@redhat.com>
807
808         * doc/dbus-specification.sgml: require that base service names 
809         start with ':' and that the base service is created/deleted 
810         as first and last things a connection does on the bus
811
812         * bus/dispatch.c (check_existent_service_activation): lots more 
813         work on the activation test; it doesn't fully pass yet...
814
815         * test/test-service.c (main): fix so we don't memleak the
816         connection to the message bus
817         (filter_func): accept a message asking us to exit
818
819 2003-04-06  Havoc Pennington  <hp@pobox.com>
820
821         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, 
822         from Colin Walters
823
824         * configure.in: fixes to Qt detection from Colin Walters
825
826         * doc/Makefile.am: Only remove generated docbook dirs if they
827         exist, from Colin Walters
828
829         * dbus/dbus-bus.c: change how we set well-known connections to
830         NULL, so that it works if a single connection is stored in 
831         two well-known array slots.
832
833         * test/Makefile.am: remove a lot of stuff that isn't immediately
834         useful, it's in CVS history if we want it.
835
836         * test/test-service.c: use dbus-mainloop instead of that
837         watch.[hc] crack
838
839 2003-04-06  Havoc Pennington  <hp@pobox.com>
840
841         * dbus/Makefile.am: split lists of sources into stuff that goes in
842         the library, util functions that go in the lib and are also used
843         elsewhere, and util functions that are used in tests/daemon but
844         don't go in the lib.
845
846         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] 
847         here so it can be used in test binaries also
848
849 2003-04-06  Havoc Pennington  <hp@pobox.com>
850
851         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
852         here in the parent process, so we can return an error if it
853         fails. Also, move some of the code into the child so the parent 
854         is less hosed if we fail midway through.
855
856         * bus/bus.c (bus_context_new): move pidfile detection further up 
857         in the function, before we start overwriting sockets and such.
858
859         * bus/messagebus.in: adjust this a bit, not sure if it will work.
860
861         * configure.in: add --with-system-pid-file and --with-system-socket
862
863 2003-04-06  Colin Walters  <walters@verbum.org>
864
865         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
866
867         * bus/system.conf.in: Declare a pidfile.
868
869         * bus/bus.c (bus_context_new): Test for an existing pid file, and
870         create one (if appropriate).
871
872         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
873         (struct BusConfigParser) [pidfile]: New.
874         (element_type_to_name, merge_included, start_busconfig_child)
875         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
876         (bus_config_parser_unref): Free it.
877         (bus_config_parser_get_pidfile): New function.
878         
879         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
880
881         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
882
883         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
884         
885         * dbus/dbus-sysdeps.h: Prototype it.
886
887 2003-04-06  Havoc Pennington  <hp@pobox.com>
888
889         * bus/bus.c (bus_context_new): print the address in here, rather
890         than in main(), because we need to do it before forking the daemon
891
892         * bus/dispatch.c (send_service_nonexistent_error): set the sender 
893         on the service nonexistent error
894
895         * bus/driver.c (bus_driver_handle_acquire_service): set the
896         sender on the AcquireService reply
897
898         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
899         server also listen on a UNIX socket so services can connect to it.
900
901 2003-04-06  Havoc Pennington  <hp@pobox.com>
902
903         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done 
904         so it detects deadlocks and also we actually init threads when 
905         debugging.
906
907 2003-04-06  Havoc Pennington  <hp@pobox.com>
908
909         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
910         save the domain socket name, and unlink it when we disconnect the
911         server. Means that at least when we exit normally, we won't leave
912         a bunch of junk in /tmp
913
914         * dbus/dbus-transport-unix.c
915         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
916         memory management). (I was making a real change here but then
917         didn't)
918
919 2003-04-06  Havoc Pennington  <hp@pobox.com>
920
921         * bus/bus.c (bus_context_new): fix wrong handling of
922         server_data_slot_unref() in the error case. 
923
924         * dbus/dbus-internals.h (_dbus_assert): change so it passes
925         "(condition) != 0" to _dbus_real_assert so that
926         "_dbus_assert (pointer)" doesn't cause a warning
927
928         * bus/main.c (main): accept --print-address option to print out
929         the message bus address
930
931         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
932
933         * dbus/dbus-transport.c (_dbus_transport_open): special error for
934         "tmpdir" option to unix: address on client side
935
936         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option 
937         to unix: address
938         
939         * configure.in (TEST_SOCKET_DIR): locate a temporary directory 
940         we can use to create sockets in the test suite.
941
942         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
943         cleanly. To be used for testing.
944
945         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
946
947         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
948
949         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
950         handle trying to call this when there's no servers active
951
952 2003-04-05  Havoc Pennington  <hp@pobox.com>
953
954         * NEWS: update
955
956         * configure.in: 0.8
957
958 2003-04-05  Havoc Pennington  <hp@pobox.com>
959
960         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't 
961         crash on startup. Need to get "try starting the daemon" 
962         in the test suite I guess. ;-)
963
964         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
965         tracked the number of open connections; it's better done in 
966         application-specific code as you want it to span all servers etc.
967
968 2003-04-05  Havoc Pennington  <hp@pobox.com>
969
970         * bus/Makefile.am (install-data-hook): add missing DESTDIR, 
971         patch from Colin Walters
972
973 2003-04-05  Havoc Pennington  <hp@pobox.com>
974
975         * doc/config-file.txt (Elements): fix docs of <auth> to reflect 
976         reality; in fact multiple mechanisms are allowed.
977
978         * dbus/dbus-internals.c (_dbus_real_assert)
979         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
980         _dbus_assert_not_reached() into functions, so that they don't show
981         up in basic block counts for test coverage, and don't use up as
982         much disk space. Does mean slower execution speed though, so
983         assumes --disable-asserts is the normal production case.
984
985 2003-04-05  Havoc Pennington  <hp@pobox.com>
986
987         * test/Makefile.am (dist-hook): also dist *.in files
988
989         * NEWS: update
990
991         * configure.in: 0.7
992         
993 2003-04-05  Havoc Pennington  <hp@pobox.com>
994
995         * dbus/dbus-string.c: docs warning
996         
997         * dbus/dbus-spawn.c: missing docs
998
999         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1000
1001 2003-04-05  Havoc Pennington  <hp@pobox.com>
1002
1003         * bus/loop.c (bus_loop_iterate): fix the timeout code, using 
1004         magic from GLib
1005
1006         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid 
1007         to -1 once we've reaped the babysitter
1008         (_dbus_babysitter_handle_watch): do as much work as we can, not
1009         just one go of it
1010
1011         * bus/activation.c: add code using DBusBabysitter so that we
1012         handle it when a service fails to start up properly.
1013         (bus_activation_service_created): don't remove the activation
1014         entries as we go, just let them get removed when we free the pending
1015         activation. Unref reply messages after sending them.
1016
1017 2003-04-05  Havoc Pennington  <hp@pobox.com>
1018
1019         * test/decode-gcov.c (main): print per-directory stats in the report
1020
1021         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1022
1023 2003-04-05  Havoc Pennington  <hp@pobox.com>
1024
1025         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1026
1027         * test/decode-gcov.c: hack up a little program to suck data 
1028         out of gcov files. Yes this is sort of silly.
1029
1030         * configure.in: define something in config.h and do an
1031         AM_CONDITIONAL when gcov is enabled
1032
1033 2003-04-04  Havoc Pennington  <hp@redhat.com>
1034
1035         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1036         return a "babysitter" object that is used to monitor the status of
1037         the spawned process and reap it when required.
1038
1039         * test/test-segfault.c, test/test-exit.c,
1040         test/test-sleep-forever.c: binaries that do various lame things, 
1041         used in the test suite.
1042
1043         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1044         
1045 2003-04-03  Havoc Pennington  <hp@pobox.com>
1046
1047         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file 
1048         in preparation for modifying it, dbus-sysdeps is getting 
1049         a bit unmanageable.
1050
1051 2003-04-03  Havoc Pennington  <hp@redhat.com>
1052
1053         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1054         have multiple ones
1055
1056         * bus/*.[hc]: adapt to mainloop change
1057
1058 2003-04-03  Havoc Pennington  <hp@redhat.com>
1059
1060         * bus/activation.c (load_directory): fix up memleaks
1061         (bus_activation_entry_free): free the entry
1062
1063         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1064         we get one from the message bus; fix memleaks.
1065
1066         * dbus/dbus-message.c (dbus_set_error_from_message): new function
1067
1068 2003-04-03  Havoc Pennington  <hp@pobox.com>
1069
1070         * bus/config-parser.c (bus_config_parser_unref): free 
1071         list of mechanisms, bug discovered by test suite enhancements
1072         (putting system.conf and session.conf into suite)
1073
1074         * test/Makefile.am, test/test-service.c: add placeholder for a
1075         test service that we'll activate as part of test suite. Doesn't 
1076         do anything yet.
1077
1078         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by 
1079         setting NULL value, and use system malloc not dbus_malloc() 
1080         when we have unavoidable memleakage.
1081
1082         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1083         didn't work, and support DBUS_BUS_ACTIVATION.
1084         
1085         * bus/activation.c (child_setup): pass our well-known bus type to
1086         the child
1087
1088         * bus/config-parser.c: support <type> to specify well-known type
1089
1090         * doc/dbus-specification.sgml: document the env variables to 
1091         locate well-known buses and find service activator
1092
1093 2003-04-02  Havoc Pennington  <hp@redhat.com>
1094
1095         * test/Makefile.am (all-local): add a rule to copy tests to
1096         builddir, so we can have generated tests. Use this to remove the
1097         silly hack for testing system.conf and session.conf. Will use this 
1098         shortly to generate .service files pointing to test binaries.
1099
1100 2003-04-02  Havoc Pennington  <hp@redhat.com>
1101
1102         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1103         current alloc and needed new length, not max of the doubled
1104         allocation and needed new length. Also, when building tests, 
1105         don't do the double-allocation stuff, just realloc every time.
1106
1107 2003-04-02  Havoc Pennington  <hp@redhat.com>
1108
1109         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1110         in error messages
1111         (_dbus_string_get_dirname): new
1112         (_dbus_sysdeps_test): new
1113         (_dbus_directory_open): include dirnames in error messages
1114
1115         * bus/config-parser.c: interpret <include> and <includedir> and
1116         <servicedir> relative to config file location if the given
1117         filename is not absolute.
1118
1119         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1120
1121 2003-04-02  Havoc Pennington  <hp@redhat.com>
1122
1123         * bus/connection.c (bus_transaction_send_error_reply): set sender
1124         service for the error, and unref the reply on success
1125
1126         * bus/activation.c: convert to use BusTransaction so OOM can be
1127         handled correctly
1128         (bus_activation_service_created): set sender of the message
1129
1130 2003-04-01  Havoc Pennington  <hp@redhat.com>
1131
1132         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1133         <includedir> (at least mostly)
1134
1135         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1136         first, then the user ID
1137
1138 2003-04-01  Havoc Pennington  <hp@pobox.com>
1139
1140         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1141         function
1142
1143         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1144
1145         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1146
1147         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1148         socket 0777, and unlink any existing socket.
1149
1150         * bus/bus.c (bus_context_new): change our UID/GID and fork if
1151         the configuration file so specifies; set up auth mechanism 
1152         restrictions
1153
1154         * bus/config-parser.c (bus_config_parser_content): add support
1155         for <fork> option and fill in code for <auth> 
1156
1157         * bus/system.conf.in: add <fork/> to default configuration, 
1158         and limit auth mechanisms to EXTERNAL
1159
1160         * doc/config-file.txt (Elements): add <fork>
1161
1162         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1163         (_dbus_change_identity): new function
1164
1165 2003-03-31  Havoc Pennington  <hp@redhat.com>
1166
1167         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) 
1168         (_dbus_listen_unix_socket): fix off-by-one error in null
1169         termination spotted by Nalin
1170
1171 2003-03-31  Havoc Pennington  <hp@redhat.com>
1172
1173         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1174         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1175         having a real home directory available.
1176
1177 2003-03-31  Havoc Pennington  <hp@redhat.com>
1178
1179         * bus/Makefile.am (install-data-hook): create /var/run/dbus
1180
1181         * bus/messagebus.in: add init script for Red Hat /etc/init.d
1182
1183         * configure.in: add support for specifying a style of init script
1184         to install
1185
1186 2003-03-31  Havoc Pennington  <hp@redhat.com>
1187
1188         Fix some annoying DBusString API and fix all affected code.
1189         
1190         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1191         max_length argument
1192         (_dbus_string_get_data): change to return string instead of using 
1193         an out param
1194         (_dbus_string_get_const_data): ditto
1195         (_dbus_string_get_data_len): ditto
1196         (_dbus_string_get_const_data_len): ditto
1197
1198 2003-03-31  Havoc Pennington  <hp@redhat.com>
1199
1200         * bus/main.c (main): fix up the command line arguments to be nicer
1201
1202 2003-03-31  Havoc Pennington  <hp@redhat.com>
1203
1204         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1205         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same 
1206         final location that lands in the config file
1207
1208         * bus/config-loader-expat.c (bus_config_load): fix type of
1209         XML_Parser variable
1210
1211         * doc/TODO: remove TODO item for dbus_bus_get()
1212
1213         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1214
1215 2003-03-31  Havoc Pennington  <hp@pobox.com>
1216
1217         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1218         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1219         argument since they are always client side
1220
1221         * dbus/dbus-server.c (dbus_server_get_address): new function
1222
1223         * bus/main.c (main): take the configuration file as an argument.
1224
1225         * test/data/valid-config-files/debug-allow-all.conf: new file to 
1226         use with dispatch.c tests for example
1227
1228         * bus/test-main.c (main): require test data dir
1229
1230         * bus/bus.c (bus_context_new): change this to take a
1231         configuration file name as argument
1232
1233         * doc/config-file.txt (Elements): add <servicedir>
1234
1235         * bus/system.conf, bus/session.conf: new files
1236         
1237         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1238         well-known socket if none set
1239
1240         * configure.in: create system.conf and session.conf
1241
1242 2003-03-30  Havoc Pennington  <hp@pobox.com>
1243
1244         * bus/config-parser.c: hacking
1245         
1246         * dbus/dbus-memory.c: don't use DBusList for the list of stuff 
1247         to shut down, since it could cause weirdness with the DBusList
1248         lock
1249
1250         * dbus/dbus-list.c (_dbus_list_test): add tests for the
1251         link-oriented stack routines
1252         (alloc_link): free the mempool if the first alloc from it fails
1253
1254         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1255
1256         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1257         from GLib
1258         (_dbus_string_skip_white): new
1259
1260         * doc/config-file.txt (Elements): add <includedir>
1261
1262 2003-03-28  Havoc Pennington  <hp@pobox.com>
1263
1264         * dbus/dbus-string.c (_dbus_string_copy_data_len)
1265         (_dbus_string_copy_data): new functions
1266
1267 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
1268
1269         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1270         * dbus/dbus-bus.h:
1271         Add dbus_bus_get.
1272         
1273         * dbus/dbus-memory.c:
1274         Fix a doc comment.
1275         
1276 2003-03-28  Havoc Pennington  <hp@pobox.com>
1277
1278         * bus/test.c (bus_test_flush_bus): remove the sleep from here, 
1279         I think it may have just been superstition. Not sure.
1280
1281         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1282         failures that were not being handled.
1283
1284         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1285
1286         * dbus/dbus-memory.c: add ability to set number of mallocs in a
1287         row that will fail on out-of-memory.
1288
1289         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1290         function for testing out-of-memory handling.
1291
1292         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1293         allocation functions, they do map exactly to the expat ones.
1294
1295 2003-03-27  Havoc Pennington  <hp@redhat.com>
1296
1297         * bus/config-loader-libxml.c (bus_config_load): add another error
1298         check
1299
1300 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
1301
1302         * doc/TODO:
1303         Add note about automatic service activation.
1304         
1305         * doc/dbus-specification.sgml:
1306         Rename the specification and clarify a few things.
1307         
1308 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
1309
1310         * Doxyfile.in:
1311         * dbus/dbus-address.c:
1312         * dbus/dbus-dict.c:
1313         * dbus/dbus-marshal.c:
1314         * dbus/dbus-server-debug-pipe.c:
1315         * dbus/dbus-transport-unix.c:
1316         Fix documentation warnings.
1317         
1318 2003-03-26  Havoc Pennington  <hp@pobox.com>
1319
1320         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1321         after every test so it's quick and easy to see which leaked, and
1322         so we test multiple dbus_shutdown() calls
1323
1324         * configure.in: change configure.in XML stuff to also support
1325         expat
1326
1327         * config-loader-libxml.c: some hacking
1328
1329         * config-loader-expat.c: some hacking
1330
1331         * config-parser.c: some hacking, plus tests
1332
1333 2003-03-25  Havoc Pennington  <hp@redhat.com>
1334
1335         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1336         
1337         * configure.in: add --with-xml option to specify XML library,
1338         right now only libxml is supported.
1339
1340         * bus/config-loader-libxml.c, config-parser.c: sync some minor 
1341         nonworking code between home and work, still just stubs
1342
1343 2003-03-24  Havoc Pennington  <hp@redhat.com>
1344
1345         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1346         file
1347
1348         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow 
1349         NULL argument for "message" if the error is a well-known one, 
1350         fill in a generic message in this case.
1351
1352         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1353         favor of DBusError
1354
1355         * bus/test.c (bus_test_flush_bus): add
1356
1357         * bus/policy.c (bus_policy_test): test code stub
1358
1359 2003-03-24  Havoc Pennington  <hp@pobox.com>
1360
1361         * bus/connection.c (bus_connections_setup_connection): set up 
1362         the "can this user connect" function, but it always returns 
1363         TRUE until we have a config file parser so we can have a config
1364         file that allows connections.
1365
1366 2003-03-23  Havoc Pennington  <hp@pobox.com>
1367
1368         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with 
1369         DBUS_BUILD_TESTS, actually alloc/free a block of memory for 
1370         the mutex, so we can check for proper memory management 
1371         and OOM handling.
1372
1373         * dbus/dbus-dataslot.c: remove the mutex from
1374         DBusDataSlotAllocator and lock it manually when using it, 
1375         to simplify fitting it into the global slots framework.
1376
1377         * dbus/dbus-threads.c (init_static_locks): rework how we're
1378         handling global locks so they are easily shut down.
1379
1380         * bus/policy.c (bus_policy_append_rule): fix
1381
1382         * bus/test-main.c (main): check for memleaks
1383
1384         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make 
1385         test suite check for memleaks
1386
1387         * dbus/dbus-memory.c: add support in test mode for tracking 
1388         number of outstanding blocks
1389
1390 2003-03-23  Havoc Pennington  <hp@pobox.com>
1391
1392         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1393         policies code
1394         
1395         * dbus/dbus-hash.h: add ULONG hash keys
1396
1397         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1398         (_dbus_get_group_id): new function
1399
1400 2003-03-20  Havoc Pennington  <hp@redhat.com>
1401
1402         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1403         new function
1404         (dbus_connection_get_unix_user): new function
1405
1406 2003-03-20  Havoc Pennington  <hp@pobox.com>
1407
1408         * bus/connection.c (bus_connection_send_oom_error): assert that
1409         message has a sender
1410         (connection_execute_transaction): ditto
1411         (bus_connection_preallocate_oom_error): fix to set the sender, and
1412         set recipient to the destination service, not the bus driver
1413
1414         * bus/policy.c: hacking
1415
1416         * dbus/dbus-message.c (dbus_message_service_is): new function
1417         (dbus_message_sender_is): new
1418
1419 2003-03-19  Havoc Pennington  <hp@redhat.com>
1420
1421         * bus/policy.c: start sketching code for policy restrictions on 
1422         what connections can do.
1423
1424 2003-03-18  Havoc Pennington  <hp@redhat.com>
1425
1426         * doc/TODO: some notes on high-level todo items. Little nitpick
1427         stuff is all in @todo, so no need to add it here.
1428
1429         * doc/config-file.txt: some notes on how config file might look
1430
1431 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
1432
1433         * configure.in: 0.6
1434
1435         * NEWS: Update.
1436         
1437 2003-03-17  Havoc Pennington  <hp@redhat.com>
1438
1439         * dbus/dbus-internals.h: add gcc attributes so that 
1440         our printf-style functions warn on bad arguments to 
1441         format
1442         
1443         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf 
1444         format bug
1445
1446         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1447         printf format bug
1448
1449 2003-03-17  Havoc Pennington  <hp@redhat.com>
1450
1451         * bus/test-main.c (main): make it print something as it runs 
1452         so make check doesn't look stuck
1453
1454         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove 
1455         from CVS, now obsolete
1456
1457 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
1458
1459         * bus/dispatch.c: (bus_dispatch):
1460         Refetch the service name since it may have been reallocated
1461         when dbus_message_set_sender was called.
1462         
1463         * dbus/dbus-sysdeps.c: (_dbus_accept):
1464         Add address and address length variables and use them to stop
1465         valgrind from complaining.
1466         
1467 2003-03-17  Havoc Pennington  <hp@pobox.com>
1468
1469         All tests pass, no memleaks, no valgrind complaints.
1470         
1471         * bus/test.c: refcount handler_slot
1472
1473         * bus/connection.c (bus_connections_new): refcount
1474         connection_data_slot
1475
1476         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1477         bytes so that auth scripts pass.
1478
1479         * bus/dispatch.c: init message_handler_slot so it gets allocated
1480         properly
1481
1482         * bus/dispatch.c (message_handler_slot_ref): fix memleak
1483
1484         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1485         dealloc server_pipe_hash when no longer used for benefit of
1486         leak checking
1487
1488         * dbus/dbus-auth.c (process_command): memleak fix
1489
1490         * bus/dispatch.c (check_hello_message): memleak fix
1491
1492 2003-03-16  Havoc Pennington  <hp@pobox.com>
1493
1494         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1495
1496 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
1497
1498         * bus/activation.c (bus_activation_activate_service): Append
1499         the pending activation entry to the list of pending activations.
1500
1501 2003-03-16  Havoc Pennington  <hp@pobox.com>
1502
1503         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1504         connections
1505
1506         * dbus/dbus-address.c (create_entry): fix OOM handling when
1507         failing to alloc entry->method
1508
1509 2003-03-16  Havoc Pennington  <hp@pobox.com>
1510
1511         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1512         the watch
1513
1514         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1515         add some missing dbus_set_result
1516
1517         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to 
1518         alloc the DBusMessageHandler
1519
1520         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1521         the transport here, since we call this from the finalizer; it 
1522         resulted in a double-finalize.
1523
1524         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug 
1525         where we tried to use transport->connection that was NULL, 
1526         happened when transport was disconnected early on due to OOM
1527
1528         * bus/*.c: adapt to handle OOM for watches/timeouts
1529
1530         * dbus/dbus-transport-unix.c: port to handle OOM during 
1531         watch handling
1532         
1533         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1534         reference to unused bytes instead of a copy
1535
1536         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
1537         out of memory
1538
1539         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
1540         FALSE on OOM
1541
1542         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
1543         of memory
1544
1545 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
1546
1547         * doc/dbus-specification.sgml:
1548         Document reply message for ActivateService.
1549         
1550 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
1551
1552         * bus/activation.c: (bus_pending_activation_entry_free),
1553         (bus_pending_activation_free), (bus_activation_new),
1554         (bus_activation_unref), (bus_activation_service_created),
1555         (bus_activation_activate_service):
1556         * bus/activation.h:
1557         * bus/bus.c: (bus_context_new):
1558         * bus/desktop-file.c: (new_section):
1559         * bus/driver.c: (bus_driver_send_service_deleted),
1560         (bus_driver_handle_activate_service):
1561         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
1562         * bus/services.h:
1563         * dbus/dbus-connection.c:
1564         (dbus_connection_send_with_reply_and_block):
1565         * dbus/dbus-message.c: (dbus_message_append_args_valist):
1566         * dbus/dbus-protocol.h:
1567         Make activation work better. Now pending activations will be queued
1568         and the daemon won't try to activate services that are already registered.
1569         
1570 2003-03-16  Havoc Pennington  <hp@pobox.com>
1571
1572         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
1573         connection data
1574
1575         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
1576         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
1577
1578 2003-03-16  Havoc Pennington  <hp@pobox.com>
1579
1580         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
1581         this. always run the test suite before commit...
1582
1583         * bus/*: adapt to DBusConnection API changes
1584
1585         * glib/dbus-gmain.c: adapt to DBusConnection API changes, 
1586         requires renaming stuff to avoid dbus_connection_dispatch name 
1587         conflict.
1588
1589         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
1590         function
1591
1592         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1593         separate from _dbus_message_loader_return_buffer()
1594
1595         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
1596         this, because it's now always broken to use; the number of
1597         messages in queue vs. the number still buffered by the message
1598         loader is undefined/meaningless. Should use
1599         dbus_connection_get_dispatch_state().
1600         (dbus_connection_dispatch): rename from
1601         dbus_connection_dispatch_message
1602
1603 2003-03-16  Havoc Pennington  <hp@pobox.com>
1604
1605         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
1606         implementation
1607
1608 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
1609
1610         * dbus/dbus-connection.c:
1611         (dbus_connection_send_with_reply_and_block):
1612         Decrease connection->n_incoming when removing an entry 
1613         from the list.
1614         * dbus/dbus-dict.c: (dbus_dict_entry_free),
1615         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
1616         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
1617         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
1618         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
1619         (dbus_dict_get_byte_array):
1620         Handle NULL arrays and strings. Also add support for byte arrays.
1621         
1622         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
1623         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
1624         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
1625         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
1626         (_dbus_demarshal_dict), (demarshal_and_validate_len),
1627         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
1628         * dbus/dbus-marshal.h:
1629         Add support for marshalling and demarshalling empty arrays and strings.
1630         
1631         * dbus/dbus-message.c: (dbus_message_append_args_valist),
1632         (dbus_message_append_string_array),
1633         (dbus_message_iter_get_boolean),
1634         (dbus_message_iter_get_boolean_array),
1635         (dbus_message_iter_get_int32_array),
1636         (dbus_message_iter_get_uint32_array),
1637         (dbus_message_iter_get_double_array),
1638         (dbus_message_iter_get_byte_array),
1639         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
1640         (check_message_handling):
1641         Add support for getting empty arrays and dicts.
1642         
1643         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
1644         Don't do any validation at all for now, that's better than just checking
1645         for ASCII.
1646         
1647         * test/data/valid-messages/emptiness.message:
1648         New test message with lots of empty arrays.
1649         
1650 2003-03-16  Havoc Pennington  <hp@pobox.com>
1651
1652         * dbus/dbus-connection.c
1653         (_dbus_connection_queue_received_message_link): new function that
1654         can't fail due to OOM
1655
1656         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
1657         new function pops a message together with a list link 
1658         containing it.
1659
1660         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
1661         message queuing functions to avoid needing to alloc memory
1662
1663 2003-03-16  Havoc Pennington  <hp@pobox.com>
1664
1665         Oops - test code was only testing failure of around 30 of the
1666         mallocs in the test path, but it turns out there are 500+
1667         mallocs. I believe this was due to misguided linking setup such
1668         that there was one copy of dbus_malloc etc. in the daemon and one
1669         in the shared lib, and only daemon mallocs were tested. In any
1670         case, the test case now tests all 500+ mallocs, and doesn't pass
1671         yet, though there are lots of fixes in this patch.
1672         
1673         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
1674         this so that it doesn't need to allocate memory, since it 
1675         has no way of indicating failure due to OOM (and would be 
1676         annoying if it did).
1677
1678         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
1679
1680         * bus/Makefile.am: rearrange to create two self-contained
1681         libraries, to avoid having libraries with overlapping symbols. 
1682         that was resulting in weirdness, e.g. I'm pretty sure there 
1683         were two copies of global static variables.
1684
1685         * dbus/dbus-internals.c: move the malloc debug stuff to 
1686         dbus-memory.c
1687
1688         * dbus/dbus-list.c (free_link): free list mempool if it becomes
1689         empty.
1690
1691         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
1692
1693         * dbus/dbus-address.c (dbus_parse_address): free list nodes
1694         on failure.
1695
1696         * bus/dispatch.c (bus_dispatch_add_connection): free
1697         message_handler_slot when no longer using it, so 
1698         memory leak checkers are happy for the test suite.
1699
1700         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
1701
1702         * bus/bus.c (new_connection_callback): disconnect in here if 
1703         bus_connections_setup_connection fails.
1704
1705         * bus/connection.c (bus_connections_unref): fix to free the 
1706         connections
1707         (bus_connections_setup_connection): if this fails, don't
1708         disconnect the connection, just be sure there are no side
1709         effects.
1710
1711         * dbus/dbus-string.c (undo_alignment): unbreak this
1712
1713         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
1714         leaking
1715         (_dbus_auth_new): fix the order in which we free strings 
1716         on OOM failure
1717
1718         * bus/connection.c (bus_connection_disconnected): fix to 
1719         not send ServiceDeleted multiple times in case of memory 
1720         allocation failure
1721
1722         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
1723         get the base service name
1724         (dbus_bus_register_client): don't return base service name,
1725         instead store it on the DBusConnection and have an accessor
1726         function for it.
1727         (dbus_bus_register_client): rename dbus_bus_register()
1728
1729         * bus/dispatch.c (check_hello_message): verify that other 
1730         connections on the bus also got the correct results, not 
1731         just the one sending hello
1732
1733 2003-03-15  Havoc Pennington  <hp@pobox.com>
1734
1735         Make it pass the Hello handling test including all OOM codepaths.
1736         Now to do other messages...
1737         
1738         * bus/services.c (bus_service_remove_owner): fix crash when
1739         removing owner from an empty list of owners
1740         (bus_registry_ensure): don't leave service in the list of 
1741         a connection's owned services if we fail to put the service
1742         in the hash table.
1743
1744         * bus/connection.c (bus_connection_preallocate_oom_error): set
1745         error flag on the OOM error.
1746
1747         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1748         handle _dbus_transport_set_connection failure
1749
1750         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
1751         to create watches up front and simply enable/disable them as
1752         needed.
1753         (unix_connection_set): this can now fail on OOM
1754
1755         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept 
1756         of enabling/disabling a watch or timeout.
1757
1758         * bus/loop.c (bus_loop_iterate): don't touch disabled
1759         watches/timeouts
1760
1761         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
1762
1763 2003-03-15  Havoc Pennington  <hp@pobox.com>
1764
1765         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
1766         write useful test code, after all that futzing around ;-)
1767
1768         Test does not yet pass because we can't handle OOM in
1769         _dbus_transport_messages_pending (basically,
1770         dbus_connection_preallocate_send() does not prealloc the write
1771         watch). To fix this, I think we need to add new stuff to
1772         set_watch_functions, namely a SetEnabled function so we can alloc
1773         the watch earlier, then enable it later.
1774         
1775         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
1776         dbus-memory.c to the convenience lib
1777
1778         * bus/test.c: rename some static functions to keep them clearly 
1779         distinct from stuff in connection.c. Handle client disconnection.
1780
1781 2003-03-14  Havoc Pennington  <hp@pobox.com>
1782
1783         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe 
1784         transport, tests more of the real codepath. Set up clients 
1785         with bus_setup_debug_client.
1786
1787         * bus/test.c (bus_setup_debug_client): function to set up debug 
1788         "clients" on the main loop
1789
1790         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe 
1791         support
1792
1793         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe 
1794         server type
1795
1796         * dbus/dbus-server-debug.c: support a debug server based on pipes
1797
1798         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
1799         (_dbus_close): new function
1800         
1801         * configure.in: check for socketpair
1802
1803 2003-03-14  Havoc Pennington  <hp@redhat.com>
1804
1805         * dbus/dbus-memory.c: add a "detect buffer overwrites on free" 
1806         cheesy hack
1807
1808         * dbus/dbus-transport-debug.c: rework this a good bit to be 
1809         less complicated. hopefully still works.
1810
1811         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
1812         manually
1813
1814         * glib/dbus-gmain.c (timeout_handler): don't remove timeout 
1815         after running it
1816
1817         * dbus/dbus-message.c (dbus_message_copy): rename from 
1818         dbus_message_new_from_message, fix it up to copy 
1819         all the message fields, add test case
1820
1821         * bus/dispatch.c (bus_dispatch_test): add some more test code, 
1822         not quite passing yet
1823
1824 2003-03-14  Havoc Pennington  <hp@pobox.com>
1825
1826         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
1827         until no work remains" in test code. (the large diff here 
1828         is just code movement, no actual changes)
1829
1830         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
1831         1, no point waiting around for test code.
1832         (_dbus_server_debug_accept_transport): unref the timeout 
1833         after adding it (right?)
1834
1835         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
1836         
1837 2003-03-13  Havoc Pennington  <hp@redhat.com>
1838
1839         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
1840         out of memory
1841
1842         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
1843         of memory
1844
1845         * dbus/dbus-connection.h: Make AddWatchFunction and
1846         AddTimeoutFunction return a bool so they can fail on out-of-memory
1847
1848         * bus/bus.c (bus_context_new): set up timeout handlers
1849
1850         * bus/connection.c (bus_connections_setup_connection): set up
1851         timeout handlers
1852
1853         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
1854         can fail
1855
1856         * bus/bus.c (bus_context_new): adapt to changes
1857
1858         * bus/connection.c: adapt to changes
1859
1860         * test/watch.c: adapt to DBusWatch changes
1861
1862         * bus/dispatch.c (bus_dispatch_test): started adding this but
1863         didn't finish
1864         
1865 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
1866
1867         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
1868
1869 2003-03-13  Havoc Pennington  <hp@pobox.com>
1870
1871         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: 
1872         set up a test framework as for the library
1873
1874 2003-03-12  Havoc Pennington  <hp@pobox.com>
1875
1876         Throughout: purge global variables, introduce BusActivation, 
1877         BusConnections, BusRegistry, etc. objects instead.
1878         
1879         * bus/bus.h, bus/bus.c: introduce BusContext as a global 
1880         message bus object
1881
1882         * test/Makefile.am (TEST_BINARIES): disable bus-test for now, 
1883         going to redo this a bit differently I think
1884         
1885 2003-03-12  Havoc Pennington  <hp@redhat.com>
1886
1887         Mega-patch that gets the message bus daemon initially handling 
1888         out-of-memory. Work still needed. Also lots of random 
1889         moving stuff to DBusError instead of ResultCode.
1890         
1891         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
1892
1893         * dbus/dbus-connection.c
1894         (dbus_connection_send_with_reply_and_block): use DBusError
1895
1896         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
1897         DBusResultCode
1898
1899         * dbus/dbus-connection.c (dbus_connection_send): drop the result
1900         code here, as the only failure possible is OOM.
1901
1902         * bus/connection.c (bus_connection_disconnect):
1903         rename bus_connection_disconnected as it's a notification only
1904
1905         * bus/driver.c (bus_driver_handle_acquire_service): don't free
1906         "name" on get_args failure, should be done by get_args; 
1907         don't disconnect client for bad args, just return an error.
1908         (bus_driver_handle_service_exists): ditto
1909
1910         * bus/services.c (bus_services_list): NULL-terminate returned array
1911
1912         * bus/driver.c (bus_driver_send_service_lost)
1913         (bus_driver_send_service_acquired): send messages from driver to a
1914         specific client to the client's unique name, not to the broadcast
1915         service.
1916
1917         * dbus/dbus-message.c (decode_header_data): reject messages that
1918         contain no name field
1919         (_dbus_message_get_client_serial): rename to
1920         dbus_message_get_serial and make public
1921         (_dbus_message_set_serial): rename from set_client_serial
1922         (_dbus_message_set_reply_serial): make public
1923         (_dbus_message_get_reply_serial): make public
1924
1925         * bus/connection.c (bus_connection_foreach): allow stopping
1926         iteration by returning FALSE from foreach function.
1927
1928         * dbus/dbus-connection.c (dbus_connection_send_preallocated) 
1929         (dbus_connection_free_preallocated_send) 
1930         (dbus_connection_preallocate_send): new API for sending a message
1931         without possibility of malloc failure.
1932         (dbus_connection_send_message): rename to just
1933         dbus_connection_send (and same for whole function family)
1934
1935         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
1936
1937         * dbus/dbus-sysdeps.c (_dbus_exit): new function
1938
1939         * bus/activation.c: handle/return errors
1940
1941         * dbus/dbus-errors.h: add more DBUS_ERROR #define
1942
1943         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
1944         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
1945         (_dbus_result_from_errno): move to this file
1946
1947 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
1948
1949         * dbus/dbus-marshal.c: 
1950         (_dbus_marshal_set_string):
1951         Take a length argument so we can marshal the correct string
1952         length.
1953         
1954         (_dbus_marshal_dict), (_dbus_demarshal_dict),
1955         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
1956         (_dbus_marshal_test):
1957         * dbus/dbus-marshal.h:  
1958         Add support for marshalling and demarshalling dicts.
1959         
1960         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
1961         Add support for TYPE DICT.
1962         
1963         * dbus/dbus-message.c: (set_string_field):
1964         Adjust header padding.
1965         
1966         (dbus_message_append_args_valist), (dbus_message_append_dict),
1967         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
1968         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
1969         (check_message_handling), (check_have_valid_message):
1970         * dbus/dbus-message.h:
1971         Add functions for setting and getting dicts.
1972
1973         * dbus/dbus-protocol.h:
1974         Add DBUS_TYPE_DICT.
1975         
1976         * dbus/dbus.h:
1977         Add dbus-dict.h
1978         
1979         * doc/dbus-specification.sgml:
1980         Add information about how dicts are marshalled.
1981         
1982         * test/data/invalid-messages/dict-with-nil-value.message:
1983         * test/data/invalid-messages/too-short-dict.message:
1984         * test/data/valid-messages/dict-simple.message:
1985         * test/data/valid-messages/dict.message:
1986         Add sample messages containing dicts.
1987
1988 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
1989
1990         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
1991
1992 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
1993
1994         * dbus/Makefile.am:
1995         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
1996         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
1997         (dbus_dict_set_int32), (dbus_dict_set_uint32),
1998         (dbus_dict_set_double), (dbus_dict_set_string),
1999         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2000         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2001         (dbus_dict_set_string_array), (_dbus_dict_test):
2002         * dbus/dbus-dict.h:
2003         Fix according to comments from Havoc.
2004         
2005 2003-03-06  Michael Meeks  <michael@server.home>
2006
2007         * configure.in: if we don't have kde-config, disable have_qt.
2008
2009 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
2010
2011         * dbus/Makefile.am:
2012         Add dbus-dict.[ch]
2013         
2014         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2015         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2016         (dbus_dict_remove), (dbus_dict_get_value_type),
2017         (dbus_dict_get_keys), (dbus_dict_put_boolean),
2018         (dbus_dict_put_int32), (dbus_dict_put_uint32),
2019         (dbus_dict_put_double), (dbus_dict_put_string),
2020         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2021         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2022         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2023         (dbus_dict_get_int32), (dbus_dict_get_uint32),
2024         (dbus_dict_get_double), (dbus_dict_get_string),
2025         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2026         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2027         (dbus_dict_get_string_array), (_dbus_dict_test):
2028         * dbus/dbus-dict.h:
2029         Add DBusDict implementation
2030         
2031         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2032         * dbus/dbus-test.h:
2033         Add _dbus_dict_test
2034         
2035 2003-03-04  Havoc Pennington  <hp@pobox.com>
2036
2037         * test/data/auth/*: adapt to changes
2038
2039         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2040         USERID_BASE64 and change USERNAME_BASE64 to put in username not
2041         userid
2042
2043         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2044         more stuff from being in a context name, to make the protocol 
2045         simpler to deal with
2046
2047         * dbus/dbus-errors.c (dbus_error_has_name): new function
2048         (dbus_error_is_set): new function
2049
2050         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth 
2051         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2052         
2053         * dbus/dbus-connection.c (dbus_connection_flush): also read
2054         messages during a flush operation
2055
2056         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2057
2058 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2059
2060         * configure.in: Check for gethostbyname on Solaris.
2061
2062         * dbus/dbus-transport.c: (_dbus_transport_open):
2063         Remove duplicate "tcp" entry.
2064         
2065         * doc/dbus-specification.sgml:
2066         Clarify some things.
2067         
2068 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2069
2070         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2071         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2072         (_dbus_keyring_test):
2073         * dbus/dbus-md5.c: (_dbus_md5_compute):
2074         * dbus/dbus-sha.c: (_dbus_sha_compute):
2075         Plug memory leaks.
2076
2077 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2078
2079         * README: Add some things.
2080
2081 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
2082
2083         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2084         after case DBUS_TYPE_BOOELAN.
2085
2086 2003-03-02  Havoc Pennington  <hp@pobox.com>
2087
2088         * test/break-loader.c (randomly_set_extreme_ints): add test that
2089         sets really huge and small integers
2090
2091         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2092         that length of boolean array fits in the string, and that 
2093         string has room for boolean value in single-bool case.
2094
2095         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2096         optional value to "ALIGN" command which is what to fill the
2097         alignment with.
2098
2099         * test/data/valid-messages/no-padding.message: add regression
2100         test for the message padding problem
2101
2102 2003-03-02  Havoc Pennington  <hp@pobox.com>
2103
2104         * dbus/dbus-message.c (decode_header_data): fix to always init
2105         message_padding, from Benjamin Dauvergne
2106
2107 2003-03-02  Havoc Pennington  <hp@pobox.com>
2108
2109         * configure.in: 0.5
2110
2111         * NEWS: Update.
2112
2113 2003-03-01  Joe Shaw  <joe@assbarn.com>
2114
2115         * configure.in: Check for "struct cmsgcred" and try to access its
2116         members for BSD-like unices.
2117
2118         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2119         _dbus_read_credentials_unix_socket().
2120         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2121         read() for reading the credential byte off the unix socket.  Use
2122         struct cmsgcred on systems that support it.
2123
2124 2003-02-27  Alexander Larsson  <alexl@redhat.com>
2125
2126         * glib/Makefile.am: 
2127         * configure.in:
2128         Make gthreads-2.0 dependency optional. Don't build thread test if
2129         its not found.
2130
2131 2003-02-27  Havoc Pennington  <hp@pobox.com>
2132
2133         * dbus/dbus-connection.c
2134         (dbus_connection_send_message_with_reply_and_block): fix doh!
2135         doh! doh! bug that resulted in never removing a reply from the
2136         queue, no wonder we called get_reply_serial so much ;-)
2137         
2138         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2139         and client serial instead of demarshaling them every time
2140
2141 2003-02-27  Havoc Pennington  <hp@pobox.com>
2142
2143         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2144         more inlined, using dbus-string-private.h, speeds things up 
2145         substantially
2146
2147         * dbus/dbus-string.c (_dbus_string_free): apply align offset
2148         when freeing the string
2149         (_dbus_string_steal_data): fix for align offset
2150         (undo_alignment): new function
2151
2152 2003-02-26  Havoc Pennington  <hp@redhat.com>
2153
2154         All kinds of audit fixes from Owen, plus initial attempt to 
2155         handle unaligned memory returned from malloc.
2156         
2157         * dbus/dbus-string.c (_dbus_string_init): clamp max length to 
2158         leave room for align_offset and nul byte
2159         (fixup_alignment): function to track an align_offset and 
2160         ensure real->str is aligned
2161         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, 
2162         to allow a nul byte plus align offset
2163         (_dbus_string_lock): fix overflow issue
2164         (_dbus_string_init_const_len): add assertions on sanity of len, 
2165         assign allocated to be ALLOCATION_PADDING larger than len
2166         (set_length): fixup the overflow handling
2167         (_dbus_string_get_data_len): fix overflow in assertion
2168         (open_gap): detect overflow in size of gap to be opened
2169         (_dbus_string_lengthen): add overflow check
2170         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2171         (_dbus_string_append): add overflow check
2172         (_dbus_string_append_unichar): overflow
2173         (_dbus_string_delete): fix overflow in assertion
2174         (_dbus_string_copy_len): overflow in assertion
2175         (_dbus_string_replace_len): overflows in assertions
2176         (_dbus_string_find): change to implement in terms of 
2177         _dbus_string_find_to
2178         (_dbus_string_find_to): assorted fixage
2179         (_dbus_string_equal_c_str): assert c_str != NULL, 
2180         fix logic so the function works
2181         (_dbus_string_ends_with_c_str): fix overflow thingy
2182         (_dbus_string_base64_encode): overflow fix
2183         (_dbus_string_validate_ascii): overflow
2184         (_dbus_string_validate_nul): overflow
2185         
2186 2003-02-26  Havoc Pennington  <hp@redhat.com>
2187
2188         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2189
2190 2003-02-26  Alexander Larsson  <alexl@redhat.com>
2191
2192         * configure.in:
2193         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2194         
2195         * dbus/dbus-connection.c:
2196         * dbus/dbus-connection.h:
2197         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2198         Add dbus_connection_set_wakeup_main_function and use it when queueing
2199         incoming and outgoing messages.
2200         
2201         
2202         * dbus/dbus-dataslot.c:
2203         Threadsafe usage of DBusDataSlotAllocator
2204         
2205         * dbus/dbus-message.c: (dbus_message_get_args_iter):
2206         dbus_new can fail.
2207         
2208         * dbus/dbus-server-unix.c:
2209         Add todo comment
2210         
2211         * glib/dbus-gmain.c:
2212         Implement the new wakeup functions for glib.
2213         
2214         * glib/Makefile.am:
2215         * glib/test-thread-client.c: 
2216         * glib/test-thread-server.c: 
2217         * glib/test-thread.h:
2218         Initial cut at some thread test code. Not really done yet.
2219
2220 2003-02-26  Havoc Pennington  <hp@pobox.com>
2221
2222         * dbus/dbus-connection.c
2223         (dbus_connection_send_message_with_reply_and_block): fix crash
2224         where we ref'd the outgoing message instead of the returned reply
2225
2226         * dbus/dbus-transport-unix.c (do_authentication): check read watch
2227         at the end of this function, so if we didn't need to read for
2228         authentication, we reinstall it for receiving messages
2229
2230         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to 
2231         a NULL sender for peer-to-peer case
2232
2233         * dbus/dbus-transport-unix.c (check_read_watch): handle
2234         !authenticated case correctly
2235
2236         * glib/dbus-gmain.c: add support for DBusServer
2237
2238         * dbus/dbus-server.c: add data slot support
2239
2240         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2241         return values and handle errors
2242
2243         * dbus/dbus-dataslot.c: factor out the data slot stuff from
2244         DBusConnection
2245
2246         * Doxyfile.in (INPUT): add glib subdir
2247
2248         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename 
2249         setup_with_g_main instead of hookup_with_g_main; write docs
2250         
2251 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
2252
2253         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2254         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2255         * dbus/dbus-message.c: (dbus_message_append_boolean),
2256         (dbus_message_append_boolean_array),
2257         (dbus_message_get_args_valist), (_dbus_message_test):
2258         * dbus/dbus-message.h:
2259         * doc/dbus-specification.sgml:
2260         Various fixes as pointed out by Havoc.
2261         
2262         * test/data/invalid-messages/bad-boolean-array.message:
2263         * test/data/invalid-messages/bad-boolean.message:
2264         Add invalid boolean value test cases.
2265         
2266 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
2267
2268         * dbus/dbus-internals.c: (_dbus_type_to_string):
2269         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2270         (_dbus_marshal_validate_arg):
2271         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2272         * dbus/dbus-message.c: (dbus_message_append_args_valist),
2273         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2274         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2275         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2276         (dbus_message_iter_get_double),
2277         (dbus_message_iter_get_boolean_array), (message_iter_test):
2278         * dbus/dbus-message.h:
2279         * dbus/dbus-protocol.h:
2280         * doc/dbus-specification.sgml:
2281         * test/data/valid-messages/lots-of-arguments.message:
2282         Add support for boolean and boolean array types.
2283         
2284 2003-02-23  Havoc Pennington  <hp@pobox.com>
2285
2286         * dbus/dbus-keyring.c: finish most of this implementation and 
2287         simple unit test
2288
2289         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2290         these barf if the error isn't cleared to NULL
2291
2292         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2293         (_dbus_create_directory): new function
2294
2295         * dbus/dbus-errors.c (dbus_set_error): fix warning
2296
2297         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2298         (_dbus_string_hex_decode): new function
2299         (test_hex_roundtrip): test code
2300
2301         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2302
2303         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2304
2305         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use 
2306         the save-to-temp/rename trick to atomically write the new file
2307         (_dbus_string_parse_uint): new function
2308
2309 2003-02-22  Havoc Pennington  <hp@pobox.com>
2310
2311         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2312
2313 2003-02-22  Havoc Pennington  <hp@pobox.com>
2314
2315         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2316         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2317
2318         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2319
2320         * dbus/test/data/sha-1: add US government test suite for SHA-1
2321
2322 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2323
2324         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2325         Make string arrays NULL-terminated.
2326         
2327         * dbus/dbus-memory.c: (dbus_free_string_array):
2328         * dbus/dbus-memory.h:
2329         New function for freeing NULL-terminated string arrays.
2330         
2331         * dbus/dbus-message-builder.c: (append_quoted_string),
2332         (_dbus_message_data_load):
2333         Add support for array types.
2334         
2335         * dbus/dbus-message.c: (check_message_handling):
2336         Add more types as test cases.
2337         
2338         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2339         (_dbus_string_parse_double):
2340         Add the start offset to the end offset.
2341         
2342         * test/data/valid-messages/lots-of-arguments.message:
2343         New test message with lots of arguments.
2344         
2345 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2346
2347         * dbus/dbus-message.c: (dbus_message_append_nil),
2348         (dbus_message_append_int32), (dbus_message_append_uint32),
2349         (dbus_message_append_double), (dbus_message_append_string),
2350         (dbus_message_append_int32_array),
2351         (dbus_message_append_uint32_array),
2352         (dbus_message_append_double_array),
2353         (dbus_message_append_byte_array),
2354         (dbus_message_append_string_array):
2355         Fix all out-of-memory handling in these functions.
2356
2357 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2358
2359         * dbus/dbus-message.c: (dbus_message_append_nil):
2360         Fix a silly.
2361         
2362 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2363
2364         * dbus/dbus-message.c: (dbus_message_append_args_valist),
2365         (dbus_message_append_nil), (dbus_message_append_int32_array),
2366         (dbus_message_append_uint32_array),
2367         (dbus_message_append_double_array),
2368         (dbus_message_append_byte_array),
2369         (dbus_message_append_string_array), (dbus_message_get_args_valist),
2370         (dbus_message_iter_get_int32_array),
2371         (dbus_message_iter_get_uint32_array),
2372         (dbus_message_iter_get_double_array),
2373         (dbus_message_iter_get_byte_array),
2374         (dbus_message_iter_get_string_array):
2375
2376         * dbus/dbus-message.h:
2377         Add functions for appending and getting arrays.
2378         
2379 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2380
2381         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2382         element size at least 8 bytes, fixes mempool tests on
2383         64-bit machines.
2384
2385 2003-02-20  Alexander Larsson  <alexl@redhat.com>
2386
2387         * dbus/dbus-transport-unix.c (unix_do_iteration):
2388         Unlock the connection mutex during a blocking select call.
2389         Add todo about how we need a way to wake up the select.
2390
2391         * dbus/dbus-connection-internal.h: 
2392         * dbus/dbus-connection.c:
2393         Add _dbus_connection_lock and _dbus_connection_unlock.
2394
2395 2003-02-19  Havoc Pennington  <hp@pobox.com>
2396
2397         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2398         Doxyfile.in, not Doxyfile
2399
2400         * dbus/dbus-keyring.c: do some hacking on this
2401
2402         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2403
2404         * dbus/dbus-errors.c (dbus_set_error_const): do not call
2405         dbus_error_init
2406         (dbus_set_error): remove dbus_error_init, check for message ==
2407         NULL *before* we sprintf into it, and add @todo about including 
2408         system headers in this file
2409
2410         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2411
2412         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2413
2414         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2415         get various bits of user information based on either username 
2416         or user ID
2417         (_dbus_homedir_from_username): new function
2418
2419 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
2420
2421         * configure.in:
2422         Add check for nonposix getpwnam_r
2423         
2424         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2425         Align the pool element size to a sizeof (void *) boundary.
2426         
2427         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2428         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2429         General Solaris fixes.
2430         
2431         * test/data/valid-messages/simplest-manual.message:
2432         Explicitly state that we want little-endian packing.
2433         
2434 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
2435
2436         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2437
2438         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): 
2439         Added to create a transport connecting using a tcp/ip socket.
2440
2441         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2442         to a tcp socket at given host and port.
2443         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2444         hostname and port.
2445
2446         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2447
2448         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): 
2449         Added to create a server listening on a TCP/IP socket.
2450
2451 2003-02-19  Havoc Pennington  <hp@pobox.com>
2452
2453         Throughout: mop up all the Doxygen warnings and undocumented
2454         stuff.
2455         
2456         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2457         to search any paths.
2458
2459         * dbus/dbus-threads.c: move global mutex initializers to
2460         dbus-internals.h, multiple prototypes was confusing doxygen
2461         besides being kind of ugly
2462
2463         * Doxyfile (PREDEFINED): have Doxygen define
2464         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from 
2465         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2466         (do not abuse the feature! it's for stuff like the autogenerated 
2467         macros in dbus-md5.c, not just for things you don't feel like 
2468         documenting...)
2469
2470 2003-02-18  Havoc Pennington  <hp@pobox.com>
2471
2472         * dbus/dbus-string.c (_dbus_string_zero): new function
2473
2474         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2475         wrap it in some dbus-friendly API
2476
2477         * dbus/dbus-types.h: add 16-bit types
2478
2479 2003-02-18  Joe Shaw  <joe@assbarn.com>
2480
2481         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2482         credentials from our currently running process.
2483         (get_word): Fix a buglet where we were copying the entire length
2484         instead of relative to our position.
2485
2486         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2487         keys on the stack... it's 640k of data.
2488
2489         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2490         read the credentials byte off the socket, even if we don't have
2491         SO_PEERCRED.
2492         (_dbus_poll): Implement poll() using select() for systems which
2493         don't have it.
2494
2495         * glib/test-dbus-glib.c (main): Print out an error if no
2496         parameters are given.
2497
2498         * test/data/auth/fallback.auth-script: Added.  Tests that a client
2499         can fallback to a secondary auth mechanism if the first fails.
2500
2501 2003-02-18  Havoc Pennington  <hp@pobox.com>
2502
2503         * AUTHORS: add Alex
2504
2505 2003-02-17  Havoc Pennington  <hp@pobox.com>
2506
2507         * doc/dbus-specification.sgml: lots of cosmetic
2508         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2509         env variable to DBUS_BUS_ADDRESS, s/client/application/,
2510         s/server/bus/ (except in authentication section). Add a section
2511         "Message Bus Message Routing"
2512
2513 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
2514
2515         Release 0.4
2516         
2517         * NEWS: Update
2518
2519 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2520
2521         * doc/dbus-specification.sgml:
2522         Specification updates.
2523         
2524 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2525
2526         * bus/activation.c: (bus_activation_init), (child_setup),
2527         (bus_activation_activate_service):
2528         * bus/activation.h:
2529         * bus/main.c: (main):
2530         Set DBUS_ADDRESS environment variable.
2531         
2532         * dbus/dbus-errors.c: (dbus_set_error):
2533         Don't use va_copy since that's a C99 feature.
2534         
2535         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2536         (_dbus_spawn_async):
2537         * dbus/dbus-sysdeps.h:
2538         Add child_setup_func to _dbus_spawn_async.
2539         
2540         * doc/dbus-specification.sgml:
2541         Update specification.
2542         
2543         * test/spawn-test.c: (setup_func), (main):
2544         Fix test.
2545         
2546 2003-02-17  Alexander Larsson  <alexl@redhat.com>
2547
2548         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
2549         Added todo.
2550
2551 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2552
2553         * doc/.cvsignore:
2554         * doc/Makefile.am:
2555         * doc/dbus-test-plan.sgml:
2556         Add test plan document.
2557         
2558         * test/Makefile.am:
2559         Fix distcheck.
2560         
2561 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2562
2563         * dbus/dbus-message.c: (decode_header_data),
2564         (_dbus_message_loader_return_buffer):
2565         Set the header padding amount when loading a message.
2566
2567 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2568
2569         * bus/dispatch.c: (send_one_message):
2570         Only send broadcast messages to registered connections.
2571         
2572         * dbus/dbus-message.c: (dbus_message_name_is):
2573         * dbus/dbus-message.h:
2574         New convenience function.
2575         
2576         * dbus/dbus-transport-debug.c: (do_reading):
2577         Only dispatch one message per run.
2578
2579         * test/Makefile.am:
2580         * test/bus-test.c: (new_connection_callback), (die),
2581         (test_hello_client1_handler), (test_hello_client2_handler),
2582         (test_hello_replies), (main):
2583
2584         * test/bus-test-loop.[ch]:
2585         Add these.
2586         
2587 2003-02-16  Havoc Pennington  <hp@pobox.com>
2588
2589         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2590         backward conditional
2591
2592 2003-02-16  Alexander Larsson  <alexl@redhat.com>
2593
2594         * dbus/dbus-connection.c:
2595         Implement sent_message_with_reply. (with_reply_and block is still
2596         busted).
2597         Made dispatch_message not lose message if OOM.
2598         
2599         * dbus/dbus-errors.h:
2600         Add NoReply error (for reply timeouts).
2601
2602 2003-02-16  Alexander Larsson  <alexl@redhat.com>
2603
2604         * dbus/dbus-hash.c (_dbus_hash_table_unref):
2605         Actually free keys and values when destroying hashtable.
2606
2607 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2608
2609         * dbus/dbus-auth.c: (client_try_next_mechanism):
2610         Plug a leak.
2611         
2612         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
2613         Return TRUE if there's no thread implementation around.
2614         
2615         * glib/dbus-gmain.c: (free_source),
2616         (dbus_connection_hookup_with_g_main):
2617         Make sure to remove the GSource when the connection is finalized.
2618         
2619 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2620
2621         * bus/dispatch.c: (bus_dispatch_message_handler):
2622         * dbus/dbus-errors.h:
2623         Return an error if someone tries to send a message to a service
2624         that doesn't exist.
2625         
2626 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2627
2628         * bus/activation.c: (load_directory), (bus_activation_init),
2629         (bus_activation_activate_service):
2630         * bus/activation.h:
2631         * bus/driver.c: 
2632         (bus_driver_handle_activate_service), (bus_driver_handle_message):
2633         More work on the activation handling.
2634         
2635         * dbus/dbus-errors.h:
2636         Add some error messages
2637         
2638         * dbus/dbus-message.c: (dbus_message_new_error_reply):
2639         * dbus/dbus-message.h:
2640         New function that creates an error message.
2641         
2642         * dbus/dbus-protocol.h:
2643         Add ACTIVATE_SERVER message.
2644         
2645         * dbus/dbus-server-unix.c: (unix_handle_watch),
2646         (_dbus_server_new_for_domain_socket):
2647         Call _dbus_fd_set_close_on_exec.
2648         
2649         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
2650         (_dbus_spawn_async), (_dbus_disable_sigpipe),
2651         (_dbus_fd_set_close_on_exec):
2652         * dbus/dbus-sysdeps.h:
2653         Add _dbus_fd_set_close_on exec function. Also add function that checks
2654         that all open fds are set to close-on-exec and warns otherwise.
2655         
2656         * dbus/dbus-transport-unix.c:
2657         (_dbus_transport_new_for_domain_socket):
2658         Call _dbus_fd_set_close_on_exec.
2659
2660 2003-02-16  Havoc Pennington  <hp@pobox.com>
2661
2662         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
2663         allow people to avoid setting SIGPIPE to SIG_IGN
2664         (_dbus_connection_new_for_transport): disable SIGPIPE unless 
2665         we've been asked not to
2666
2667 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2668
2669         * dbus/dbus-list.c: (_dbus_list_append_link),
2670         (_dbus_list_prepend_link):
2671         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
2672         (dbus_realloc):
2673         Warning fixes.
2674
2675 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2676
2677         * bus/Makefile.am:
2678         * bus/activation.c: (bus_activation_entry_free),
2679         (add_desktop_file_entry), (load_directory), (bus_activation_init):
2680         * bus/activation.h:
2681         * bus/main.c: (main):
2682         Add simple activation support, doesn't work yet though.
2683
2684 2003-02-15   Zack Rusin  <zack@kde.org>
2685
2686         * qt/dbus-qthread.cpp:  small casting fix
2687
2688 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2689
2690         * dbus/dbus-errors.c: (dbus_set_error):
2691         * dbus/dbus-errors.h:
2692         Add a few errors and make dbus_set_error void.
2693         
2694         * dbus/dbus-sysdeps.c: 
2695         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
2696         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
2697         * dbus/dbus-sysdeps.h:
2698         Add _dbus_spawn_async.
2699         
2700         * test/spawn-test.c: (main):
2701         Test for _dbus_spawn_async.
2702         
2703 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2704
2705         * dbus/dbus-internals.h:
2706         Fix build without tests.
2707         
2708         * dbus/dbus-list.c: (alloc_link):
2709         Fix a segfault when a malloc fails.
2710         
2711         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
2712         (dbus_malloc0), (dbus_realloc):
2713         Add support for malloc debugging.
2714
2715 2003-02-15  Alexander Larsson  <alexl@redhat.com>
2716
2717         * dbus/dbus-threads.c:
2718         * dbus/dbus-threads.h:
2719         Add condvars. Remove static mutext from API.
2720         Implement static mutexes by initializing them from threads_init.
2721         
2722         * glib/dbus-gthread.c:
2723         * qt/dbus-qthread.cpp:
2724         Update with the thread api changes.
2725
2726                 
2727         * dbus/dbus-list.c:
2728         * dbus/dbus-list.h:
2729         Turn StaticMutex into normal mutex + init function.
2730         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
2731         _dbus_list_append_link, _dbus_list_prepend_link
2732
2733
2734         * dbus/dbus-sysdeps.c: 
2735         * dbus/dbus-sysdeps.h:
2736         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
2737         _dbus_atomic_dec. Only slow fallback implementation at the moment.
2738         
2739         * dbus/dbus-protocol.h:
2740         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
2741         
2742         * dbus/dbus-message.c:
2743         Make ref/unref atomic.
2744         Fix some docs.
2745         
2746         * dbus/dbus-connection-internal.h:
2747         * dbus/dbus-connection.c:
2748         * dbus/dbus-connection.h:
2749         Make threadsafe.
2750         Change _peek to _borrow,_return & _steal_borrowed.
2751         Change disconnect callback to event.
2752         Make dbus_connection_dispatch_messages reentrant.
2753         
2754         * dbus/dbus-transport.c:
2755         Don't ref the connection on calls to the transport
2756         implementation.
2757         
2758         * dbus/dbus-message-handler.c:
2759         Make threadsafe.
2760         
2761         * glib/dbus-gmain.c:
2762         Don't use peek_message anymore
2763         
2764         * test/Makefile.am:
2765         * test/debug-thread.c:
2766         * test/debug-thread.h:
2767         Simple thread implementation that asserts() on deadlocks in
2768         single-threaded code.
2769         
2770         * test/bus-test.c:
2771         (main) Call debug_threads_init.
2772
2773         * test/watch.c:
2774         Use disconnect message instead of disconnect callback.
2775
2776         * bus/connection.c:
2777         * bus/connection.h:
2778         Don't call dbus_connection_set_disconnect_function. Instead export
2779         bus_connection_disconnect.
2780         
2781         * bus/dispatch.c:
2782         Call bus_connection_disconnect when we get a disconnected message.
2783         
2784 2003-02-15  Havoc Pennington  <hp@pobox.com>
2785
2786         * dbus/dbus-message.c (dbus_message_new): fool around with the
2787         docs
2788
2789 2003-02-14  Havoc Pennington  <hp@pobox.com>
2790
2791         * dbus/dbus-mempool.c: fail if the debug functions so indicate
2792
2793         * dbus/dbus-memory.c: fail if the debug functions indicate we
2794         should
2795
2796         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
2797         (_dbus_decrement_fail_alloc_counter): debug functions to 
2798         simulate memory allocation failures
2799
2800 2003-02-14  Havoc Pennington  <hp@pobox.com>
2801
2802         * dbus/dbus-errors.h (struct DBusError): add a word of padding 
2803         to DBusError
2804
2805 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2806
2807         * bus/driver.c: (bus_driver_handle_hello):
2808         * bus/driver.h:
2809         * bus/services.c: (bus_service_lookup):
2810         Reorder message sending so we get a more sane order.
2811         
2812         * test/bus-test.c: (message_handler):
2813         Fix tyop.
2814         
2815 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2816
2817         * bus/driver.c: (bus_driver_send_service_deleted),
2818         (bus_driver_send_service_created), (bus_driver_send_service_lost),
2819         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
2820         (bus_driver_send_welcome_message),
2821         (bus_driver_handle_list_services),
2822         (bus_driver_handle_acquire_service),
2823         (bus_driver_handle_service_exists):
2824         * dbus/dbus-bus.c: (dbus_bus_register_client),
2825         (dbus_bus_acquire_service), (dbus_bus_service_exists):
2826         * dbus/dbus-errors.c: (dbus_result_to_string):
2827         * dbus/dbus-errors.h:
2828         * dbus/dbus-message.c: (dbus_message_append_args),
2829         (dbus_message_append_args_valist), (dbus_message_get_args),
2830         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
2831         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
2832         (dbus_message_iter_get_byte_array),
2833         (dbus_message_iter_get_string_array), (message_iter_test),
2834         (check_message_handling), (_dbus_message_test):
2835         * dbus/dbus-message.h:
2836         * test/bus-test.c: (main):
2837         Change fields to arguments in messages, so that they won't be
2838         confused with header fields.
2839         
2840         * glib/test-dbus-glib.c: (main):
2841         Remove append_fields from hello message.
2842         
2843 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2844
2845         * dbus/dbus-errors.c:
2846         * dbus/dbus-message.c:
2847         * dbus/dbus-string.c:
2848         Documentation fixes.
2849
2850 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2851
2852         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
2853         (remove_timeout):
2854         Implement support for timeouts in dbus-glib.
2855         
2856 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2857
2858         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2859         * dbus/dbus-message.c: (process_test_subdir):
2860         * test/break-loader.c: (find_breaks_based_on):
2861         Plug some memory leaks.
2862         
2863 2003-02-13  Richard Hult  <rhult@codefactory.se>
2864
2865         * bus/main.c: Fix build.
2866
2867         * dbus/dbus-errors.h: 
2868         * dbus/dbus-errors.c: Fix copyright for Anders.
2869
2870 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2871
2872         * bus/Makefile.am:
2873         Add utils.[ch]
2874         
2875         * bus/connection.c: (bus_connection_foreach):
2876         Fix a warning.
2877         
2878         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
2879         (unescape_string), (new_section), (parse_section_start),
2880         (parse_key_value), (report_error), (bus_desktop_file_load),
2881         (bus_desktop_file_get_string):
2882         * bus/desktop-file.h:
2883         Use DBusError for error reporting.
2884         
2885         * bus/dispatch.c: (send_one_message),
2886         (bus_dispatch_message_handler):
2887         * bus/driver.c: (bus_driver_send_service_deleted),
2888         (bus_driver_send_service_created), (bus_driver_send_service_lost),
2889         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
2890         (bus_driver_send_welcome_message),
2891         (bus_driver_handle_list_services),
2892         (bus_driver_handle_acquire_service),
2893         (bus_driver_handle_service_exists):
2894         * bus/loop.c: (bus_loop_run):
2895         * bus/main.c:
2896         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
2897         
2898         * bus/utils.c: (bus_wait_for_memory):
2899         * bus/utils.h:
2900         New files with general utility functions.
2901         
2902         * dbus/dbus-internals.h:
2903         Remove _DBUS_HANDLE_OOM.
2904         
2905 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2906
2907         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
2908         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
2909         * dbus/dbus-errors.h:
2910         Add DBusError structure.
2911         
2912 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2913
2914         * test/data/valid-messages/standard-acquire-service.message:
2915         * test/data/valid-messages/standard-hello.message:
2916         * test/data/valid-messages/standard-list-services.message:
2917         * test/data/valid-messages/standard-service-exists.message:
2918         Add some standard messages.
2919         
2920 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2921
2922         * bus/driver.c: (bus_driver_send_welcome_message),
2923         (bus_driver_handle_list_services),
2924         (bus_driver_handle_acquire_service),
2925         (bus_driver_handle_service_exists), (bus_driver_handle_message):
2926         Update for API changes in libdbus.
2927         
2928         * dbus/dbus-message.c: (dbus_message_new_reply):
2929         * dbus/dbus-message.h:
2930         Remove the name argument. The spec states that replies shouldn't
2931         have a name.
2932
2933 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2934
2935         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
2936         (report_error), (bus_desktop_file_load), (lookup_section),
2937         (lookup_line), (bus_desktop_file_get_raw),
2938         (bus_desktop_file_get_string):
2939         * bus/desktop-file.h:
2940         Some fixes, and new functions for getting a key value from a section.
2941         
2942 2003-02-13  Havoc Pennington  <hp@pobox.com>
2943
2944         * test/data/auth/fail-after-n-attempts.auth-script: new test
2945
2946         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
2947         reject the client.
2948
2949 2003-02-13  Havoc Pennington  <hp@pobox.com>
2950
2951         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
2952         dbus_credentials_match were backward
2953
2954         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
2955         NO_CREDENTIALS and ROOT_CREDENTIALS
2956
2957         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine 
2958         into here. Never process more commands after we've reached an 
2959         end state; store further data as unused bytes.
2960
2961         * test/data/auth/*: add more auth tests
2962         
2963         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
2964         command to match exact string and EXPECT_UNUSED to match unused
2965         bytes
2966
2967         * test/Makefile.am (dist-hook): fix to dist all the test stuff
2968
2969 2003-02-12  Havoc Pennington  <hp@pobox.com>
2970
2971         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
2972         \r off of popped lines
2973
2974         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
2975         scripts
2976
2977         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
2978         SEND, append \r\n
2979
2980 2003-02-12  Havoc Pennington  <hp@pobox.com>
2981
2982         * dbus/Makefile.am: remove break-loader from the build, since it
2983         moved.
2984
2985         * configure.in: add --enable-gcov to turn on coverage profiling
2986         flags and disable optimization
2987
2988 2003-02-10  Havoc Pennington  <hp@pobox.com>
2989
2990         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync 
2991         initial cut at test framework for DBusAuth from laptop.
2992         Doesn't quite work yet but it compiles and I need to get 
2993         it off the 266mhz laptop. ;-)
2994         
2995         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
2996         fix a memleak in error case
2997
2998 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
2999
3000         * bus/Makefile.am:
3001         * bus/desktop-file.c:
3002         * bus/desktop-file.h:
3003         Add a desktop file parser.
3004
3005 2003-02-11  Zack Rusin  <zack@kde.org>
3006
3007         * qt/message.[h|cpp]: sample implementation
3008         of the KDE wrapper for DBusMessage
3009
3010 2003-02-09  Zack Rusin  <zack@kde.org>
3011
3012         * test/bus-test.c: make_it_compile
3013         * doc/dbus-specification.sgml: minimal semantic fix
3014
3015 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
3016
3017         Release 0.3
3018         
3019         * NEWS: Update
3020
3021 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
3022
3023         * dbus/Makefile.am:
3024         * dbus/dbus-break-loader.c:
3025         * test/Makefile.am:
3026         * test/break-loader.c:
3027         Move dbus-break-loader to test/ and rename it to break-loader.
3028
3029 2003-02-02  Havoc Pennington  <hp@pobox.com>
3030
3031         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files 
3032         for code to manage cookies in your home directory
3033
3034         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3035
3036         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3037         to authenticate, then disconnect the client.
3038
3039 2003-02-03  Alexander Larsson  <alexl@redhat.com>
3040
3041         * dbus/dbus-message.c (dbus_message_append_fields):
3042         Correct docs.
3043
3044 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3045
3046         * doc/dbus-specification.sgml:
3047         Update address format section.
3048         
3049 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3050
3051         * test/Makefile.am:
3052         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3053         (message_handler), (new_connection_callback), (loop_quit),
3054         (loop_run), (main):
3055         Add bus test.
3056         
3057 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3058
3059         * bus/driver.c: (bus_driver_handle_service_exists):
3060         Simplify the code a bit.
3061         
3062         * dbus/dbus-bus.c: (dbus_bus_service_exists):
3063         Fix a silly. 
3064         
3065 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3066
3067         * bus/Makefile.am:
3068         Add libdbus-daemon.la and link to it.
3069
3070 2003-02-01  James Willcox  <jwillcox@gnome.org>
3071
3072         * bus/driver.c: (bus_driver_handle_own_service):
3073         Actually include the service reply code in the message.
3074
3075 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3076
3077         * bus/driver.c: (bus_driver_handle_service_exists):
3078         Don't unref the incoming message.
3079         
3080 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3081
3082         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3083
3084 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3085
3086         * dbus/dbus-server.c: (dbus_server_listen):
3087         * dbus/dbus-transport.c: (_dbus_transport_open):
3088         ifdef out the calls to the debug transport and server.
3089         
3090 2003-02-02  Alexander Larsson  <alexl@redhat.com>
3091
3092         * dbus/dbus-watch.c (dbus_watch_get_flags):
3093         Add note in the docs that ERROR or HANGUP won't be returned
3094         and are assumed always on.
3095
3096         * glib/dbus-gmain.c (add_watch):
3097         Always add IO_ERR | IO_HUP
3098
3099         * dbus/dbus-message.h:
3100         Add semicolon after dbus_message_iter_get_string_array().
3101         Makes qt code build again
3102
3103 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
3104
3105         * bus/driver.c: (create_unique_client_name),
3106         (bus_driver_handle_hello):
3107         Don't take a name, just use a numeric id to identify
3108         each client.
3109         
3110         * dbus/Makefile.am:
3111         * dbus/dbus-bus.c: (dbus_bus_register_client),
3112         (dbus_bus_acquire_service), (dbus_bus_service_exists):
3113         * dbus/dbus-bus.h:
3114         Add new convenience functions for communicating with the bus.
3115         
3116         * dbus/dbus-message.h:
3117         
3118         * dbus/dbus-protocol.h:
3119         Fix a typo.
3120         
3121 2003-02-01  Alexander Larsson  <alexl@redhat.com>
3122
3123         * dbus/dbus-message.c (dbus_message_append_fields):
3124         Add some more doc comments.
3125
3126 2003-02-01  Havoc Pennington  <hp@pobox.com>
3127
3128         * dbus/dbus-break-loader.c (randomly_modify_length): change 
3129         a 4-byte value in the message as if it were a length
3130
3131         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3132         execute bit on saved files
3133
3134 2003-02-01  Havoc Pennington  <hp@pobox.com>
3135
3136         * dbus/dbus-break-loader.c (main): new program to find messages
3137         that break the loader.
3138
3139         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3140         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3141
3142         * dbus/dbus-string.c (_dbus_string_set_byte): new
3143         
3144 2003-01-31  Havoc Pennington  <hp@pobox.com>
3145
3146         * dbus/dbus-message.c: refactor the test code to be more general, 
3147         in preparation for writing a "randomly permute test cases to 
3148         try to break the loader" program.
3149
3150 2003-01-31  Havoc Pennington  <hp@pobox.com>
3151         
3152         * doc/dbus-specification.sgml: work on the specification
3153
3154         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check 
3155         the protocol version of the message.
3156
3157         * dbus/dbus-protocol.h: drop special _REPLY names, the spec 
3158         no longer specifies that.
3159         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not 
3160         1/2/3/4)
3161
3162         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3163         "break" for DBUS_TYPE_NIL, remove @todo
3164
3165 2003-01-31  Havoc Pennington  <hp@pobox.com>
3166
3167         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename 
3168         just set_is_error/get_is_error as this is a commonly-used
3169         function, and write docs.
3170
3171 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
3172
3173         * dbus/dbus-address.c: (dbus_address_entry_free):
3174         Free key and value lists.
3175         
3176         * dbus/dbus-internals.c: (_dbus_type_to_string):
3177         Add the types we didn't have.
3178         
3179         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3180         (_dbus_marshal_validate_arg):
3181         Add NIL types.
3182         
3183         * dbus/dbus-message.c: (dbus_message_set_sender):
3184         Remove todo about being able to set sender to NULL.
3185         
3186         (dbus_message_set_is_error_reply),
3187         (dbus_message_get_is_error_reply):
3188         * dbus/dbus-message.h:
3189         New functions.
3190         
3191         * dbus/dbus-protocol.h:
3192         Add error reply flag.
3193         
3194         * test/data/valid-messages/opposite-endian.message:
3195         Add NIL type to test.
3196         
3197 2003-01-31  Havoc Pennington  <hp@pobox.com>
3198
3199         * doc/dbus-specification.sgml: fully specify the header.  Add
3200         flags and major protocol version, and change header/body len to
3201         unsigned.
3202
3203         * dbus/dbus-message-builder.c (append_saved_length): append length
3204         as uint32
3205
3206         * dbus/dbus-message.c (dbus_message_create_header): change header
3207         length and body length to unsigned. Add the new fields from the
3208         spec
3209         (_dbus_message_loader_return_buffer): unsigned header/body len
3210
3211 2003-01-30  Havoc Pennington  <hp@pobox.com>
3212
3213         * dbus/dbus-auth.c: rework to use only REJECTED, no 
3214         MECHANISMS
3215
3216         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just 
3217         use REJECTED, suggested by Mark McLoughlin
3218
3219 2003-01-30  Havoc Pennington  <hp@pobox.com>
3220
3221         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3222         a better way to report errors here. e.g.  "unix address lacks
3223         path" or something. also "no such file" when the path doesn't
3224         exist, etc.
3225
3226         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3227         leaking list nodes
3228         (dbus_parse_address): add @todo about documenting address format, 
3229         and allowing , and ; to be escaped
3230
3231 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
3232
3233         * dbus/Makefile.am:
3234         Add dbus-address.[ch]
3235         
3236         * dbus/dbus-address.c: (dbus_address_entry_free),
3237         (dbus_address_entries_free), (create_entry),
3238         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3239         (dbus_parse_address), (_dbus_address_test):
3240         * dbus/dbus-address.h:
3241         New files for dealing with address parsing.
3242         
3243         * dbus/dbus-connection.c:
3244         Document timeout functions.
3245         
3246         * dbus/dbus-message.c:
3247         Document dbus_message_new_from_message.
3248         
3249         * dbus/dbus-server-debug.c:
3250         Document.
3251         
3252         * dbus/dbus-server.c: (dbus_server_listen):
3253         Parse address and use correct server implementation.
3254         
3255         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3256         * dbus/dbus-string.h:
3257         New function with test.
3258         
3259         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3260         * dbus/dbus-test.h:
3261         Add address tests.
3262         
3263         * dbus/dbus-transport-debug.c:
3264         Document.
3265         
3266         * dbus/dbus-transport.c: (_dbus_transport_open):
3267         Parse address and use correct transport implementation. 
3268
3269 2003-01-30  Havoc Pennington  <hp@pobox.com>
3270
3271         * dbus/dbus-message.c: use message->byte_order instead of 
3272         DBUS_COMPILER_BYTE_ORDER throughout.
3273         (dbus_message_create_header): pad header to align the 
3274         start of the body of the message to 8-byte boundary
3275
3276         * dbus/dbus-marshal.h: make all the demarshalers take const 
3277         DBusString arguments.
3278
3279         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3280         validate message args here, so we don't have to do slow validation
3281         later, and so we catch bad messages as they are incoming. Also add
3282         better checks on header_len and body_len. Also fill in
3283         message->byte_order
3284
3285         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3286         implemented properly)
3287         (_dbus_string_validate_nul): new function to check all-nul
3288
3289         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename 
3290         get_arg_end_pos and remove all validation
3291         (_dbus_marshal_validate_arg): actually do validation here.
3292
3293 2003-01-29  Havoc Pennington  <hp@pobox.com>
3294
3295         * dbus/dbus-message.c (check_message_handling): fix assertion
3296         failure on set_client_serial
3297
3298 2003-01-28  Havoc Pennington  <hp@pobox.com>
3299
3300         * dbus/dbus-server-debug.c: Add doc section comments
3301         
3302         * dbus/dbus-transport-debug.c: add doc section comments
3303         
3304 2003-01-28  Havoc Pennington  <hp@redhat.com>
3305
3306         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3307         the reverse order from how I had it
3308         (_dbus_string_base64_encode): reverse encoding order. I was
3309         basically byteswapping everything during encoding.
3310
3311 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
3312
3313         * dbus/dbus-connection-internal.h:
3314         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3315         (_dbus_connection_remove_timeout):
3316         Add functions for adding and removing timeouts.
3317         
3318         * dbus/dbus-message.c: (dbus_message_new_from_message):
3319         Add new function that takes a message and creates an exact
3320         copy of it, but with the refcount set to 1.
3321         (check_message_handling):
3322         Fix build error.
3323         
3324         * dbus/dbus-server-protected.h:
3325         * dbus/dbus-server.c: (_dbus_server_init_base),
3326         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3327         (dbus_server_set_timeout_functions):
3328         (_dbus_server_remove_timeout):
3329         New functions so that a server can add and remove timeouts.
3330
3331         (dbus_server_listen):
3332         Add commented out call to dbus_server_debug_new.
3333
3334         * dbus/dbus-timeout.c: (_dbus_timeout_new):
3335         Actually set the handler, doh.
3336         
3337         * dbus/dbus-transport.c: (_dbus_transport_open):
3338         Add commented out call to dbus_transport_debug_client_new.
3339         
3340         * dbus/Makefile.am:
3341         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3342         
3343 2003-01-28  Havoc Pennington  <hp@pobox.com>
3344
3345         * dbus/dbus-message.c (check_message_handling): function to check 
3346         on the loaded message, iterates over it etc.
3347
3348 2003-01-28  Havoc Pennington  <hp@pobox.com>
3349
3350         * test/Makefile.am (dist-hook): fix make distdir
3351
3352         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3353
3354 2003-01-27  Havoc Pennington  <hp@pobox.com>
3355
3356         * dbus/dbus-mempool.c (time_for_size): replace printf with 
3357         _dbus_verbose
3358
3359         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3360         empty lines; fix the SAVE_LENGTH stuff to be
3361         START_LENGTH/END_LENGTH so it actually works; couple other 
3362         bugfixes
3363         
3364         * test/Makefile.am (dist-hook): add dist-hook for .message files
3365
3366         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3367         can be constant or locked.
3368         (_dbus_string_free): allow freeing a const string as
3369         documented/intended
3370
3371         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3372
3373         * dbus/dbus-test-main.c (main): take an argument which is the 
3374         directory containing test data
3375
3376         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3377         argument to this and load all the messages in test/data/
3378         checking that they can be loaded or not loaded as appropriate.
3379
3380 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
3381
3382         * bus/dispatch.c: (bus_dispatch_message_handler):
3383         Dispatch messages sent to services.
3384         
3385         * bus/driver.c: (bus_driver_send_service_deleted),
3386         (bus_driver_send_service_created), (bus_driver_send_service_lost),
3387         (bus_driver_send_service_acquired):
3388         Add helper functions for sending service related messages.
3389
3390         (bus_driver_send_welcome_message):
3391         Send HELLO_REPLY instead of WELCOME.
3392         
3393         (bus_driver_handle_list_services):
3394         Send LIST_SERVICES_REPLY instead of SERVICES.
3395         
3396         (bus_driver_handle_own_service),
3397         (bus_driver_handle_service_exists):
3398         New message handlers.
3399         
3400         (bus_driver_handle_message):
3401         Invoke new message handlers.
3402         
3403         (bus_driver_remove_connection):
3404         Don't remove any services here since that's done automatically
3405         by bus_service_remove_owner now.
3406         
3407         * bus/driver.h:
3408         New function signatures.
3409         
3410         * bus/services.c: (bus_service_add_owner):
3411         Send ServiceAcquired message if we're the only primary owner.
3412         
3413         (bus_service_remove_owner):
3414         Send ServiceAcquired/ServiceLost messages.
3415         
3416         (bus_service_set_prohibit_replacement),
3417         (bus_service_get_prohibit_replacement):
3418         Functions for setting prohibit replacement.
3419         
3420         (bus_service_has_owner):
3421         New function that checks if a connection is in the owner queue of 
3422         a certain service.
3423         
3424         * bus/services.h:
3425         Add new function signatures.
3426         
3427         * dbus/dbus-list.c: (_dbus_list_test):
3428         Add tests for _dbus_list_remove_last and traversing the list backwards.
3429         
3430         * dbus/dbus-list.h:
3431         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3432         go any further, so return NULL then.
3433         
3434         * dbus/dbus-protocol.h:
3435         Add new messages, service flags and service replies.
3436         
3437 2003-01-26  Havoc Pennington  <hp@pobox.com>
3438
3439         * dbus/dbus-message-builder.c: implement, completely untested.
3440
3441         * test/data/*: add data to be used in testing. 
3442         ".message" files are our simple loadable text format.
3443         ".message-raw" will be binary dumps of messages.
3444
3445         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3446
3447 2003-01-26  Havoc Pennington  <hp@pobox.com>
3448
3449         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3450
3451         * dbus/dbus-errors.c (dbus_result_to_string): add
3452         file errors
3453
3454         * dbus/dbus-message-builder.c: new file, will contain code to load
3455         up messages from files. Not implemented yet.
3456
3457 2003-01-26  Havoc Pennington  <hp@pobox.com>
3458
3459         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3460         the sender by setting to NULL
3461
3462 2003-01-26  Havoc Pennington  <hp@pobox.com>
3463
3464         The unit tests pass, but otherwise untested.  If it breaks, the
3465         tests should have been better. ;-)
3466         
3467         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3468         the connection.
3469
3470         * dbus/dbus-message.c: redo everything so we maintain 
3471         message->header as the only copy of the various fields.
3472         This avoids the possibility of out-of-memory in some cases,
3473         for example dbus_message_lock() can't run out of memory anymore,
3474         and avoids extra copying. Figured I may as well go ahead and do 
3475         this since it was busted for dbus_message_lock to not return 
3476         failure on OOM, and dbus_message_write_header was totally
3477         unchecked for OOM. Also fixed some random other bugs.
3478
3479         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3480         that strings are nul-terminated. Also, end_pos can be equal 
3481         to string length just not greater than, I think.
3482         (_dbus_marshal_set_int32): new function
3483         (_dbus_marshal_set_uint32): new function
3484         (_dbus_marshal_set_string): new function
3485
3486         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3487         a warning, init timeout_list to NULL
3488         (dbus_connection_send_message): don't use uninitialized variable
3489         "serial"
3490
3491         * dbus/dbus-string.c (_dbus_string_replace_len): new function
3492
3493 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
3494
3495         * bus/driver.c: (bus_driver_handle_hello),
3496         (bus_driver_send_welcome_message):
3497         Plug leaks
3498         
3499 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
3500
3501         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3502         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3503         (dbus_connection_unref):
3504         * dbus/dbus-marshal.c: (_dbus_marshal_test):
3505         * dbus/dbus-message.c: (dbus_message_unref),
3506         Plug memory leaks.
3507         
3508         (dbus_message_get_fields): 
3509         Remove debugging printout.
3510
3511         (_dbus_message_loader_return_buffer):
3512         Don't store the header string.
3513         
3514         (_dbus_message_test):
3515         Plug leaks.
3516
3517 2003-01-26  Richard Hult  <rhult@codefactory.se>
3518
3519         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3520         the file descriptor list, since it can change under us.
3521
3522 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3523
3524         * glib/dbus-gmain.c: (dbus_connection_prepare),
3525         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3526         (remove_watch), (dbus_connection_hookup_with_g_main):
3527         Rewrite the glib handling to use its own GSource instead of a 
3528         GIOChannel so we can catch messages put in the queue while waiting
3529         for a reply.
3530         
3531 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3532
3533         * bus/Makefile.am:
3534         * bus/connection.c: (connection_disconnect_handler),
3535         (connection_watch_callback), (bus_connection_setup):
3536         * bus/dispatch.c: (send_one_message),
3537         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3538         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
3539         * bus/dispatch.h:
3540         * bus/driver.c: (bus_driver_send_service_deleted),
3541         (bus_driver_send_service_created), (bus_driver_handle_hello),
3542         (bus_driver_send_welcome_message),
3543         (bus_driver_handle_list_services), (bus_driver_remove_connection),
3544         (bus_driver_handle_message):
3545         * bus/driver.h:
3546         Refactor code, put the message dispatching in its own file. Use 
3547         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
3548         is disconnected.
3549         
3550 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3551
3552         * dbus/dbus-internals.h:
3553         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
3554         
3555         * dbus/dbus-message.c: (dbus_message_get_sender):
3556         * dbus/dbus-message.h:
3557         Implement dbus_message_get_sender.
3558         
3559         * dbus/dbus-protocol.h:
3560         Add message and service defines.
3561         
3562 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3563
3564         * dbus/dbus-connection.c: (dbus_connection_send_message):
3565         * dbus/dbus-message-internal.h:
3566         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
3567         (dbus_message_write_header):
3568         Remove _dbus_messag_unlock and don't set the client serial on a 
3569         message if one already exists.
3570         
3571 2003-01-24  Havoc Pennington  <hp@pobox.com>
3572
3573         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
3574         list_pool
3575
3576         * bus/driver.c (bus_driver_handle_list_services): fix a leak 
3577         on OOM
3578
3579 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3580
3581         * dbus/dbus-list.c: (alloc_link), (free_link):
3582         Use a memory pool for the links.
3583         
3584 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3585
3586         * bus/connection.c: (bus_connection_foreach):
3587         * bus/connection.h:
3588         Add new bus_connection_foreach function.
3589         
3590         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
3591         Add function that broadcasts a message to all clients.
3592         
3593         (bus_driver_send_service_created), (bus_driver_handle_hello),
3594         (bus_driver_send_welcome_message),
3595         (bus_driver_handle_list_services), (bus_driver_message_handler):
3596         Implement functions that take care of listing services, and notifying
3597         clients when new services are created.
3598         
3599         * bus/services.c: (bus_services_list):
3600         * bus/services.h:
3601         Add new function that returns an array of strings with the currently
3602         registered services.
3603         
3604         * glib/dbus-glib.h:
3605         * glib/dbus-gmain.c:
3606         Update copyright year.
3607         
3608 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3609
3610         * dbus/dbus-connection.c: (dbus_connection_send_message):
3611         Unlock the message in case it was sent earlier.
3612         
3613         (dbus_connection_send_message_with_reply_and_block):
3614         Remove the reply message from the list.
3615         
3616         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3617         Set array_len and new_pos correctly.
3618         
3619         (_dbus_marshal_test):
3620         Remove debug output.
3621         
3622         * dbus/dbus-message-internal.h:
3623         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
3624         New function that returns the reply serial.
3625         
3626         (_dbus_message_unlock):
3627         New function that unlocks a message and resets its header.
3628
3629         (dbus_message_append_string_array), 
3630         (dbus_message_get_fields_valist),
3631         (dbus_message_iter_get_field_type),
3632         (dbus_message_iter_get_string_array),   
3633         (dbus_message_get_fields),      
3634         (dbus_message_append_fields_valist):
3635         Handle string arrays.
3636         
3637         (dbus_message_set_sender):
3638         Make this function public since the bus daemon needs it.
3639         
3640         (decode_header_data):
3641         Set the reply serial to -1 initially.
3642
3643         * dbus/dbus-message.h:
3644         Add dbus_message_set_sender.    
3645
3646 2003-01-24  Havoc Pennington  <hp@pobox.com>
3647
3648         * doc/dbus-specification.sgml: add some stuff
3649
3650 2003-01-22  Havoc Pennington  <hp@pobox.com>
3651
3652         * doc/dbus-specification.sgml: Start to document the protocol.
3653
3654 2003-01-22  Havoc Pennington  <hp@pobox.com>
3655
3656         * dbus/dbus-connection.c
3657         (dbus_connection_send_message_with_reply_and_block): add some @todo
3658
3659         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
3660
3661 2003-01-21  Havoc Pennington  <hp@pobox.com>
3662
3663         (patch untested because can't compile)
3664         
3665         * bus/driver.c (create_unique_client_name): make this function
3666         never recycle client names. Also, caller should initialize 
3667         the DBusString.
3668
3669         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
3670
3671 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3672
3673         * dbus/dbus-marshal.c: (_dbus_marshal_double),
3674         (_dbus_marshal_int32), (_dbus_marshal_uint32),
3675         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
3676         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
3677         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3678         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3679         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
3680         * dbus/dbus-marshal.h:
3681         * dbus/dbus-protocol.h:
3682         Add support for marshalling and demarshalling integer, double
3683         and string arrays.
3684         
3685 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3686
3687         * bus/Makefile.am:
3688         Add driver.[ch]
3689         
3690         * bus/connection.c: (connection_disconnect_handler):
3691         Remove the connection from the bus driver's list.
3692         
3693         (connection_watch_callback): Dispatch messages.
3694
3695         (free_connection_data): Free connection name.
3696         
3697         (bus_connection_setup): Add connection to the bus driver's list.
3698         (bus_connection_remove_owned_service): 
3699         (bus_connection_set_name), (bus_connection_get_name):
3700         Add functions for setting and getting the connection's name.
3701         
3702         * bus/connection.h:
3703         Add function headers.
3704         
3705         * bus/driver.c: (create_unique_client_name),
3706         (bus_driver_handle_hello_message),
3707         (bus_driver_send_welcome_message), (bus_driver_message_handler),
3708         (bus_driver_add_connection), (bus_driver_remove_connection):
3709         * bus/driver.h:
3710         * bus/main.c:
3711         * bus/services.c: (bus_service_free):
3712         * bus/services.h:
3713         New file that handles communication and registreation with the bus
3714         itself. 
3715         
3716 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3717
3718         * dbus/dbus-connection.c: (dbus_connection_send_message):
3719         Add a new client_serial parameter.
3720         
3721         (dbus_connection_send_message_with_reply):
3722         Remove a @todo since we've implemented the blocking function.
3723         
3724         (dbus_connection_send_message_with_reply_and_block):
3725         New function that sends a message and waits for a reply and
3726         then returns the reply.
3727         
3728         * dbus/dbus-connection.h:
3729         Add new functions.
3730         
3731         * dbus/dbus-errors.c: (dbus_result_to_string):
3732         * dbus/dbus-errors.h:
3733         Add new DBUS_RESULT.
3734         
3735         * dbus/dbus-message-internal.h:
3736         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
3737         (_dbus_message_set_sender), (dbus_message_write_header),
3738         (dbus_message_new_reply), (decode_header_data),
3739         (_dbus_message_loader_return_buffer), (_dbus_message_test):
3740         * dbus/dbus-message.h:
3741         Add new functions that set the reply serial and sender.
3742         Also marshal and demarshal them correctly and add test.
3743         
3744         * dbus/dbus-protocol.h:
3745         Add new DBUS_MESSAGE_TYPE_SENDER.
3746         
3747         * glib/dbus-glib.h:
3748         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
3749         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
3750         (dbus_connection_hookup_with_g_main):
3751         * glib/test-dbus-glib.c: (main):
3752         Rewrite to use GIOChannel and remove the GSource crack.
3753         
3754         * test/echo-client.c: (main):
3755         * test/watch.c: (check_messages):
3756         Update for changed APIs
3757         
3758 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
3759
3760         * dbus/Makefile.am: Add dbus-timeout.[cħ]
3761         
3762         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
3763         Create a DBusTimeoutList.       
3764         (dbus_connection_set_timeout_functions): Add new function to
3765         set timeout callbacks
3766         
3767         * dbus/dbus-connection.h: Add public DBusTimeout API.
3768         
3769         * dbus/dbus-message.c: (dbus_message_get_service):
3770         * dbus/dbus-message.h:  New function.
3771
3772         * dbus/dbus-server.c: Fix small doc typo.
3773         
3774         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
3775
3776 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
3777
3778         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
3779         of the string, just as long as specified.
3780
3781 2003-01-19  Havoc Pennington  <hp@pobox.com>
3782
3783         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
3784         new function
3785
3786         * dbus/dbus-server.c (dbus_server_set_max_connections)
3787         (dbus_server_get_max_connections, dbus_server_get_n_connections):
3788         keep track of current number of connections, and add API for
3789         setting a max (but haven't implemented enforcing the max yet)
3790
3791 2003-01-18  Havoc Pennington  <hp@pobox.com>
3792
3793         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
3794         reading/writing if read_watch != NULL or write_watch != NULL.
3795
3796         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
3797         the message loader code to actually load message->header and
3798         message->body into the newly-created message.
3799
3800         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
3801         in OOM case
3802
3803         * dbus/dbus-connection.c (dbus_connection_set_max_message_size) 
3804         (dbus_connection_get_max_message_size) 
3805         (dbus_connection_set_max_live_messages_size) 
3806         (dbus_connection_get_max_live_messages_size): implement some
3807         resource limitation functions
3808
3809         * dbus/dbus-resources.c: new file implementing some of the
3810         resource limits stuff
3811
3812         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
3813         missing docs, add @todo to handle OOM etc.
3814
3815         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
3816         docs
3817         
3818 2003-01-18  Havoc Pennington  <hp@pobox.com>
3819
3820         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the 
3821         connection if it hasn't been already.
3822
3823         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
3824         replace with DisconnectFunction.
3825
3826 2003-01-18  Havoc Pennington  <hp@pobox.com>
3827
3828         Building --disable-verbose-mode --disable-asserts --disable-tests
3829         cuts the library from 112K to 45K or so
3830         
3831         * configure.in: check for varargs macro support, 
3832         add --enable-verbose-mode, --enable-asserts. 
3833
3834         * dbus/dbus-internals.h (_dbus_assert): support
3835         DBUS_DISABLE_ASSERT
3836         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
3837
3838 2003-01-18  Havoc Pennington  <hp@pobox.com>
3839
3840         * dbus/dbus-test.c: include config.h so that tests actually run
3841
3842         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
3843         so the failure mode when that assumption fails will be plenty
3844         obvious.
3845
3846 2003-01-18  Havoc Pennington  <hp@pobox.com>
3847
3848         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
3849
3850         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
3851         the distribution
3852
3853         * test/Makefile.am: don't use special variable "TESTS" for echo-*
3854         since we don't want to use those in make check
3855
3856 2003-01-15  Havoc Pennington  <hp@redhat.com>
3857
3858         Release 0.2
3859         
3860         * NEWS: update
3861
3862 2003-01-15  Havoc Pennington  <hp@redhat.com>
3863
3864         * test/Makefile.am: fix so that test source code ends up in the
3865         distribution on make distcheck
3866
3867 2003-01-15  Havoc Pennington  <hp@redhat.com>
3868
3869         Release 0.1.
3870         
3871         * NEWS: update  
3872
3873 2003-01-15  Havoc Pennington  <hp@redhat.com>
3874
3875         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
3876         fix build when --disable-tests
3877
3878         * Makefile.am (EXTRA_DIST): put HACKING in here
3879
3880         * HACKING: document procedure for making a tarball release.
3881
3882 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
3883
3884         * bus/connection.c: (connection_error_handler),
3885         (bus_connection_setup):
3886         * bus/main.c: (main):
3887         Make sure that the DBusConnectionData struct is NULLed
3888         out to prevent a segfault.
3889         
3890         * dbus/dbus-errors.c: (dbus_result_to_string):
3891         * dbus/dbus-errors.h:
3892         * dbus/dbus-message.c: (dbus_message_get_fields),
3893         (dbus_message_get_fields_valist), (_dbus_message_test):
3894         * dbus/dbus-message.h:
3895         Make dbus_message_get_fields return a result code so we can
3896         track invalid fields as well as oom.
3897         
3898 2003-01-11  Havoc Pennington  <hp@pobox.com>
3899
3900         * configure.in: change --enable-test/--enable-ansi action-if-given
3901         to enable_foo=$enableval instead of enable_foo=yes
3902
3903 2003-01-08  Havoc Pennington  <hp@pobox.com>
3904
3905         * dbus/dbus-string.c (_dbus_string_align_length): new function
3906
3907         * dbus/dbus-test-main.c: move main() for test app here
3908         * dbus/dbus-test.c
3909         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
3910         symbol to run tests, because dbus-test isn't in the main 
3911         library
3912
3913         Code review nitpicks.
3914         
3915         * dbus/dbus-message.c (dbus_message_write_header): add newlines
3916         for people with narrow emacs ;-). Assert client_serial was filled
3917         in. Assert message->name != NULL.
3918         (dbus_message_append_fields): have "first_field_type" arg separate
3919         from va list, needed for C++ binding that also uses varargs IIRC
3920         and helps with type safety
3921         (dbus_message_new): add @todo about using DBusString to store
3922         service/name internally
3923         (dbus_message_new): don't leak ->service and ->name on OOM later
3924         in the function
3925         (dbus_message_unref): free the service name
3926         (dbus_message_get_fields): same change to varargs
3927         i.e. first_field_type
3928         (_dbus_message_loader_return_buffer): assert that the message data
3929         is aligned (if not it's a bug in our code). Put in verbose griping
3930         about why we set corrupted = TRUE.
3931         (decode_header_data): add FIXME that char* is evil.  Was going to
3932         add FIXME about evil locale-specific string.h strncmp, but just
3933         switched to wacky string-as-uint32 optimization. Move check for
3934         "no room for field name" above get_const_data_len() to avoid
3935         assertion failure in get_const_data_len if we have trailing 2
3936         bytes or the like. Check for service and name fields being
3937         provided twice. Don't leak service/name on error. Require field
3938         names to be aligned to 4 bytes.
3939
3940         * dbus/dbus-marshal.c: move byte swap stuff to header
3941         (_dbus_pack_int32): uscore-prefix
3942         (_dbus_unpack_int32): uscore-prefix
3943         (_dbus_unpack_uint32): export
3944         (_dbus_demarshal_string): add @todo complaining about use of
3945         memcpy()
3946         (_dbus_marshal_get_field_end_pos): add @todo about bad error
3947         handling allowing corrupt data to go unchecked
3948
3949 2003-01-08  Havoc Pennington  <hp@redhat.com>
3950
3951         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write 
3952         to the select() as needed for authentication. (should be using
3953         _dbus_poll() not select, but for another day)
3954
3955         * dbus/dbus.h: include dbus/dbus-protocol.h
3956
3957 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
3958
3959         * dbus/Makefile.am (dbusinclude_HEADERS): Install
3960         dbus-connection.h
3961
3962 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
3963
3964         * dbus/dbus-internals.c: (_dbus_type_to_string):
3965         New function that returns a string describing a type.
3966         
3967         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
3968         * dbus/dbus-marshal.h:
3969         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
3970         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
3971         (dbus_message_iter_get_byte_array):
3972         * dbus/dbus-message.h:
3973         Add new convenience functions for appending and getting message fields.
3974         Also add demarshalling routines for byte arrays.
3975
3976 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
3977
3978         * dbus/dbus-connection-internal.h:
3979         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3980         (_dbus_connection_get_next_client_serial),
3981         (dbus_connection_send_message):
3982         * dbus/dbus-internals.h:
3983         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
3984         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
3985         (_dbus_marshal_uint32), (_dbus_demarshal_double),
3986         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
3987         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
3988         (_dbus_verbose_bytes), (_dbus_marshal_test):
3989         * dbus/dbus-marshal.h:
3990         * dbus/dbus-message-internal.h:
3991         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
3992         (dbus_message_write_header), (_dbus_message_lock),
3993         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
3994         (dbus_message_get_name), (dbus_message_append_int32),
3995         (dbus_message_append_uint32), (dbus_message_append_double),
3996         (dbus_message_append_string), (dbus_message_append_byte_array),
3997         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
3998         (dbus_message_iter_unref), (dbus_message_iter_has_next),
3999         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4000         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4001         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4002         (decode_header_data), (_dbus_message_loader_return_buffer),
4003         (message_iter_test), (_dbus_message_test):
4004         * dbus/dbus-message.h:
4005         * dbus/dbus-protocol.h:
4006         * dbus/dbus-test.c: (main):
4007         * dbus/dbus-test.h:
4008         * glib/test-dbus-glib.c: (message_handler), (main):
4009         * test/echo-client.c: (main):
4010         * test/watch.c: (check_messages):
4011         Make messages sendable and receivable for real.
4012         
4013 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4014
4015         * dbus/dbus-marshal.c: (_dbus_marshal_double),
4016         (_dbus_marshal_string), (_dbus_marshal_byte_array):
4017         * dbus/dbus-message.c: (dbus_message_append_int32),
4018         (dbus_message_append_uint32), (dbus_message_append_double),
4019         (dbus_message_append_string), (dbus_message_append_byte_array):
4020         Handle OOM restoration.
4021         
4022 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4023
4024         * dbus/dbus-marshal.c: (_dbus_marshal_string),
4025         (_dbus_demarshal_string), (_dbus_marshal_test):
4026         * dbus/dbus-marshal.h:
4027         * dbus/dbus-message.c: (dbus_message_get_name),
4028         Document these functions.
4029         
4030         (dbus_message_append_int32), (dbus_message_append_uint32),
4031         (dbus_message_append_double), (dbus_message_append_string),
4032         (dbus_message_append_byte_array):
4033         * dbus/dbus-message.h:
4034         Add functions for adding message fields of different types.
4035         
4036         * dbus/dbus-protocol.h:
4037         Add the different types.
4038
4039 2003-01-05  Havoc Pennington  <hp@pobox.com>
4040
4041         * bus/connection.c: implement routines for handling connections,
4042         first thing is keeping a list of owned services on each connection
4043         and setting up watches etc.
4044
4045         * bus/services.c: implement a mapping from service names to lists
4046         of connections
4047
4048         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4049
4050         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4051         to use static mutexes for global data
4052
4053         * dbus/dbus-connection.c (dbus_connection_set_data): add new
4054         collection of functions to set/get application-specific data
4055         on the DBusConnection.
4056
4057 2003-01-04  Havoc Pennington  <hp@pobox.com>
4058
4059         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4060         (_dbus_poll): new function
4061
4062         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4063         copied from GLib
4064
4065         * bus/loop.c: initial code for the daemon main loop
4066
4067 2003-01-04  Havoc Pennington  <hp@pobox.com>
4068
4069         * test/watch.c (error_handler): make it safe if the error handler 
4070         is called multiple times (if we s/error handler/disconnect
4071         handler/ we should just guarantee it's called only once)
4072
4073         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4074         error handler on disconnect (it's quite possible we should
4075         just change the error handler to a "disconnect handler," I'm 
4076         not sure we have any other meaningful errors)
4077
4078         * configure.in: check for getpwnam_r
4079
4080         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4081         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4082         mechanism as in SASL spec, using socket credentials
4083
4084         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4085         (_dbus_send_credentials_unix_socket): new function
4086
4087         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4088         dbus_accept()
4089         (_dbus_write): only check errno if <0 returned
4090         (_dbus_write_two): ditto
4091
4092 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
4093
4094         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4095         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4096         (_dbus_marshal_test):
4097         * dbus/dbus-marshal.h:
4098         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4099         to _dbus_marshal_utf8_string. Also fix some tests.
4100         
4101 2002-12-28  Harri Porten  <porten@kde.org>
4102
4103         * configure.in: added check for C++ compiler and a very cheesy
4104         check for the Qt integration
4105
4106         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4107
4108         * qt/Makefile.am: added 
4109
4110         * qt/.cvsignore: added  
4111
4112         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4113         latter, added #ifdef QT_THREAD_SUPPORT guard.
4114
4115         * dbus/Makefile.am: added missing headers for make dist
4116
4117 2002-12-28  Kristian Rietveld  <kris@gtk.org>
4118
4119         * dbus/Makefile.am: fixup export-symbols-regex.
4120
4121 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
4122
4123         * acinclude.m4: Add this file and put the 
4124         PKG_CHECK_MODULE macro in it.
4125
4126 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
4127
4128         * dbus/dbus-marshal.c: (_dbus_marshal_string),
4129         (_dbus_demarshal_double), (_dbus_demarshal_int32),
4130         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4131         (_dbus_marshal_test):
4132         Make the demarshalling routines align the pos argument.
4133         Add string marshalling tests and fix the obvious bugs 
4134         discovered.
4135         
4136 2002-12-26  Havoc Pennington  <hp@pobox.com>
4137
4138         * dbus/dbus-auth.c: fixes fixes fixes
4139
4140         * dbus/dbus-transport-unix.c: wire up support for
4141         encoding/decoding data on the wire
4142
4143         * dbus/dbus-auth.c (_dbus_auth_encode_data) 
4144         (_dbus_auth_decode_data): append to target string 
4145         instead of nuking it.
4146
4147 2002-12-26  Havoc Pennington  <hp@pobox.com>
4148
4149         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4150         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4151         doh
4152
4153         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4154         avoid swap_bytes() overhead (ignoring possible assembly stuff for 
4155         now). Main point is because I wanted unpack_uint32 to implement
4156         _dbus_verbose_bytes
4157         (_dbus_verbose_bytes): new function
4158
4159         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4160
4161         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4162         mechanism to handle a corrupt message stream
4163         (_dbus_message_loader_new): fix preallocation to only prealloc, 
4164         not prelengthen
4165         
4166         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4167         (_dbus_string_test): enhance tests for copy/move and fix the
4168         functions
4169
4170         * dbus/dbus-transport-unix.c: Hold references in more places to 
4171         avoid reentrancy problems
4172
4173         * dbus/dbus-transport.c: ditto
4174
4175         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4176         leak reference count in no-message case
4177
4178         * test/watch.c (do_mainloop): handle adding/removing watches
4179         during iteration over the watches. Also, ref the connection/server
4180         stored on a watch, so we don't try to mangle a destroyed one.
4181
4182         * dbus/dbus-transport-unix.c (do_authentication): perform
4183         authentication
4184
4185         * dbus/dbus-auth.c (get_state): add a state
4186         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4187         (_dbus_auth_get_unused_bytes): append the unused bytes
4188         to the passed in string, rather than prepend
4189
4190         * dbus/dbus-transport.c (_dbus_transport_init_base): create 
4191         the auth conversation DBusAuth
4192
4193         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4194         (_dbus_transport_new_for_domain_socket): when creating a
4195         transport, pass in whether it's a client-side or server-side
4196         transport so we know which DBusAuth to create
4197
4198 2002-12-03  Havoc Pennington  <hp@pobox.com>
4199
4200         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4201         _after_ finalizing the derived members
4202         (unix_connection_set): unref watch if we fail to add it
4203
4204         * dbus/dbus-connection.c (dbus_connection_unref): delete the
4205         transport first, so that the connection owned by the 
4206         transport will be valid as the transport finalizes.
4207
4208         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4209         if necessary, and remove watches from the connection.
4210         
4211         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4212         
4213 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
4214
4215         * dbus/dbus-marshal.c: (_dbus_marshal_string),
4216         (_dbus_demarshal_double), (_dbus_demarshal_int32),
4217         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4218         (_dbus_marshal_test):
4219         * dbus/dbus-marshal.h:
4220         Add string marshal functions and have the demarshal functions
4221         return the new position.
4222         
4223 2002-12-25  Havoc Pennington  <hp@pobox.com>
4224
4225         * doc/dbus-sasl-profile.txt: docs on the authentication protocol, 
4226         it is a simple protocol that just maps directly to SASL.
4227
4228         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4229         initial implementation, not actually used yet.
4230         
4231         * dbus/dbus-string.c (_dbus_string_find): new function
4232         (_dbus_string_equal): new function
4233         (_dbus_string_base64_encode): new function
4234         (_dbus_string_base64_decode): new function
4235
4236 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
4237
4238         * dbus/Makefile.am:
4239         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4240         (_dbus_marshal_int32), (_dbus_marshal_uint32),
4241         (_dbus_demarshal_double), (_dbus_demarshal_int32),
4242         (_dbus_demarshal_uint32), (_dbus_marshal_test):
4243         * dbus/dbus-marshal.h:
4244         * dbus/dbus-protocol.h:
4245         * dbus/dbus-test.c: (main):
4246         * dbus/dbus-test.h:
4247         Add un-optimized marshalling/demarshalling routines.
4248         
4249 2002-12-25  Harri Porten  <porten@kde.org>
4250
4251         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4252
4253 2002-12-24  Zack Rusin  <zack@kde.org>
4254
4255         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4256         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4257         main loop stuff
4258
4259 2002-12-24  Havoc Pennington  <hp@pobox.com>
4260
4261         * glib/dbus-gthread.c: fix include
4262
4263         * glib/dbus-glib.h: rename DBusMessageHandler for now. 
4264         I think glib API needs to change, though, as you don't 
4265         want to use DBusMessageFunction, you want to use the 
4266         DBusMessageHandler object. Probably 
4267         dbus_connection_open_with_g_main_loop()
4268         and dbus_connection_setup_g_main_loop() or something like that
4269         (but think of better names...) that just create a connection 
4270         that has watch/timeout functions etc. already set up.
4271
4272         * dbus/dbus-connection.c
4273         (dbus_connection_send_message_with_reply): new function just to 
4274         show how the message handler helps us deal with replies.
4275
4276         * dbus/dbus-list.c (_dbus_list_remove_last): new function
4277
4278         * dbus/dbus-string.c (_dbus_string_test): free a string that
4279         wasn't
4280
4281         * dbus/dbus-hash.c: use memory pools for the hash entries
4282         (rebuild_table): be more paranoid about overflow, and 
4283         shrink table when we can
4284         (_dbus_hash_test): reduce number of sprintfs and write
4285         valid C89. Add tests for case where we grow and then 
4286         shrink the hash table.
4287
4288         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4289
4290         * dbus/dbus-connection.c (dbus_connection_register_handler) 
4291         (dbus_connection_unregister_handler): new functions
4292
4293         * dbus/dbus-message.c (dbus_message_get_name): new
4294
4295         * dbus/dbus-list.c: fix docs typo
4296
4297         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4298         an object representing a handler for messages.
4299
4300 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
4301
4302         * glib/dbus-glib.h:
4303         * glib/dbus-gthread.c: (dbus_gthread_init):
4304         Don't use the gdbus prefix for public functions.
4305         
4306 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
4307
4308         * Makefile.am:
4309         * configure.in:
4310         Add GLib checks and fixup .pc files
4311         
4312         * glib/Makefile.am:
4313         * glib/dbus-glib.h:
4314         * glib/dbus-gmain.c: (gdbus_connection_prepare),
4315         (gdbus_connection_check), (gdbus_connection_dispatch),
4316         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4317         (dbus_connection_gsource_new):
4318         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4319         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4320         * glib/test-dbus-glib.c: (message_handler), (main):
4321         Add GLib support.
4322         
4323 2002-12-15  Harri Porten  <porten@kde.org>
4324
4325         * autogen.sh: check for libtoolize before attempting to use it 
4326         
4327         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4328         struct.
4329         
4330         * .cvsignore: ignore more stamp files
4331
4332         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4333
4334         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4335         without make install.
4336
4337 2002-12-15  Havoc Pennington  <hp@pobox.com>
4338
4339         * dbus/dbus-threads.c: add thread stubs that a higher library
4340         layer can fill in. e.g. the GLib wrapper might fill them in with
4341         GThread stuff. We still need to use this thread API to
4342         thread-safe-ize the library.
4343
4344 2002-12-12  Havoc Pennington  <hp@pobox.com>
4345
4346         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4347         below new interfaces and include fewer system headers.
4348
4349         * dbus/dbus-sysdeps.c (_dbus_read): new function
4350         (_dbus_write): new function
4351         (_dbus_write_two): new function
4352         (_dbus_connect_unix_socket): new function
4353         (_dbus_listen_unix_socket): new function
4354
4355         * dbus/dbus-message-internal.h: change interfaces to use
4356         DBusString
4357
4358 2002-12-11  Havoc Pennington  <hp@pobox.com>
4359
4360         * dbus/dbus-types.h: add dbus_unichar
4361
4362         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4363
4364         * dbus/dbus-connection.c (dbus_connection_send_message): return
4365         TRUE on success
4366
4367         * dbus/dbus-transport.c: include dbus-watch.h   
4368
4369         * dbus/dbus-connection.c: include dbus-message-internal.h
4370
4371         * HACKING: add file with coding guidelines stuff.
4372
4373         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4374         handling here, for security purposes (as in vsftpd). Not actually
4375         using this class yet.
4376
4377         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4378         system/libc usage here, as in vsftpd, for ease of auditing (and
4379         should also simplify portability). Haven't actually moved all the
4380         system/libc usage into here yet.
4381         
4382 2002-11-25  Havoc Pennington  <hp@pobox.com>
4383
4384         * dbus/dbus-internals.c (_dbus_verbose): fix to not 
4385         always print the first verbose message.
4386
4387 2002-11-24  Havoc Pennington  <hp@pobox.com>
4388
4389         * test/echo-client.c, test/echo-server.c: cheesy test 
4390         clients.
4391         
4392         * configure.in (AC_CHECK_FUNCS): check for writev
4393
4394         * dbus/dbus-message.c (_dbus_message_get_network_data): new
4395         function
4396
4397         * dbus/dbus-list.c (_dbus_list_foreach): new function
4398
4399         * dbus/dbus-internals.c (_dbus_verbose): new function
4400
4401         * dbus/dbus-server.c, dbus/dbus-server.h: public object
4402         representing a server that listens for connections.
4403
4404         * dbus/.cvsignore: create
4405
4406         * dbus/dbus-errors.h, dbus/dbus-errors.c:
4407         public API for reporting errors
4408
4409         * dbus/dbus-connection.h, dbus/dbus-connection.c:
4410         public object representing a connection that 
4411         sends/receives messages. (Same object used for 
4412         both client and server.)
4413
4414         * dbus/dbus-transport.h, dbus/dbus-transport.c:
4415         Basic abstraction for different kinds of stream
4416         that we might read/write messages from.
4417
4418 2002-11-23  Havoc Pennington  <hp@pobox.com>
4419
4420         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN 
4421         _DBUS_INT_MAX
4422
4423         * dbus/dbus-test.c (main): add list test, and include 
4424         dbus-test.h as intended
4425
4426         * dbus/dbus-hash.c (_dbus_hash_table_remove_string) 
4427         (_dbus_hash_table_remove_int): return value indicates 
4428         whether the entry existed to remove
4429
4430         * dbus/dbus-list.c: add linked list utility class, 
4431         with docs and tests
4432
4433         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket 
4434         array sometimes.
4435
4436 2002-11-23  Havoc Pennington  <hp@pobox.com>
4437
4438         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4439         DBUS_END_DECLS to nothing, that should fix this once and for all
4440
4441         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4442
4443         * dbus/dbus-message.c, dbus/dbus-hash.c: 
4444         add some missing @brief
4445
4446 2002-11-23  Havoc Pennington  <hp@pobox.com>
4447
4448         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS 
4449         to avoid confusing Doxygen
4450
4451         * dbus/dbus-hash.c: @} not }@
4452
4453         * dbus/dbus-message.c (struct DBusMessage): split out 
4454         internals docs
4455
4456 2002-11-23  Havoc Pennington  <hp@pobox.com>
4457
4458         * configure.in: pile on more warning flags if using gcc
4459
4460         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have 
4461         to document static functions
4462
4463         * configure.in: add summary to end of configure so it 
4464         looks nice and attractive
4465
4466         * dbus/dbus-hash.c: finish implementation and write unit 
4467         tests and docs
4468
4469         * configure.in: add --enable-tests to enable unit tests
4470
4471         * dbus/dbus-test.c: test program to run unit tests 
4472         for all files in dbus/*, initially runs a test for 
4473         dbus-hash.c
4474         
4475         * dbus/dbus-internals.h: file to hold some internal utility stuff
4476
4477 2002-11-22  Havoc Pennington  <hp@redhat.com>
4478
4479         * dbus/dbus-hash.c: copy in Tcl hash table, not yet 
4480         "ported" away from Tcl
4481
4482         * dbus/dbus-types.h: header for types such as dbus_bool_t
4483
4484 2002-11-22  Havoc Pennington  <hp@redhat.com>
4485
4486         * dbus/dbus.h: fixups for doc warnings
4487
4488         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up 
4489         macros
4490         (QUIET): make it quiet so we can see warnings
4491
4492         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4493
4494 2002-11-22  Havoc Pennington  <hp@redhat.com>
4495
4496         * Makefile.am: include "Doxyfile" target in all-local
4497
4498         * configure.in: generate the Doxyfile
4499
4500         * Doxyfile.in: move Doxyfile here, so we can use 
4501         configure to generate a Doxyfile with the right 
4502         version number etc.
4503
4504 2002-11-22  Havoc Pennington  <hp@redhat.com>
4505
4506         * dbus/dbus-message.c: move inline docs into .c file
4507
4508         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4509         so all docs are under doc/
4510         (MAN_EXTENSION): generate man pages. Use extension 
4511         ".3dbus" which matches ".3qt" on my system, 
4512         I guess this is OK, I don't know really.
4513         (FILE_PATTERNS): look for .c files not .h, makes sense
4514         for plain C I think
4515
4516 2002-11-22  Havoc Pennington  <hp@pobox.com>
4517
4518         * Makefile.am (SUBDIRS): rename subdir "server" to "bus" 
4519         because any app can be a server, and any app can be a client, 
4520         the bus is a special kind of server.
4521
4522 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
4523
4524         * Doxyfile : adding. Still needs Makefile rules to be generated
4525         automatically (just run "doxygen" in the toplevel dir for now to
4526         generate docs)
4527         
4528         * dbus/dbus-message.h : Adding sample docs (javadoc since
4529         resembles gtk-doc a little more)
4530
4531         * dbus/dbus.h : Adding sample docs
4532
4533 2002-11-21  Havoc Pennington  <hp@redhat.com>
4534
4535         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION 
4536         so we can allow ourselves to include files directly, 
4537         instead of having to use dbus.h
4538
4539         * dbus/dbus.h: fill in
4540
4541         * dbus/dbus-message.h: sketch out a sample header file.
4542         Include griping if you include it directly instead of 
4543         via dbus.h
4544
4545         * dbus/dbus-macros.h: new file with macros for extern "C", 
4546         TRUE/FALSE, NULL, etc.
4547
4548         * doc/file-boilerplate.c: put include guards in here
4549
4550 2002-11-21  Havoc Pennington  <hp@redhat.com>
4551
4552         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
4553
4554         * COPYING: include the GPL as well, and license code 
4555         under both AFL and GPL.
4556
4557 2002-11-21  Havoc Pennington  <hp@redhat.com>
4558
4559         * acconfig.h: get rid of this
4560
4561         * autogen.sh (run_configure): add --no-configure option
4562
4563         * configure.in: remove AC_ARG_PROGRAM to make
4564         autoconf complain less. add AC_PREREQ. 
4565         add AC_DEFINE third arg.
4566         
4567 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
4568
4569         * doc/Makefile.am:
4570         Fix references so we can distcheck.
4571
4572 2002-11-21  Havoc Pennington  <hp@redhat.com>
4573
4574         * Initial module creation
4575