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