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