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