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