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