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