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