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