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