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