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