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