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