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