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