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