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