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