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