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