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