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