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