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