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