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