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