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