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