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