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