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