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