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