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