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