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