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