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