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