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