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