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