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