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