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