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