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