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