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