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