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