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