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