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