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