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