2003-05-16 Colin Walters <walters@verbum.org>
[platform/upstream/dbus.git] / ChangeLog
1 2003-05-16  Colin Walters  <walters@verbum.org>
2
3         * tools/dbus-monitor.c: Add --session argument and usage()
4         function.
5
6         * tools/dbus-monitor.1: Update with new --session arg.
7
8         * bus/Makefile.am (install-data-hook): Create
9         $(libdir)/dbus-1.0/services so that the session bus is happy.
10
11 2003-05-15  Havoc Pennington  <hp@redhat.com>
12
13         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
14         on non-x86. ifdef's are evil.
15
16 2003-05-15  Havoc Pennington  <hp@redhat.com>
17
18         * configure.in: 0.11
19
20         * NEWS: update
21
22         * bus/Makefile.am (initddir): apparently we are supposed to put
23         init scripts in /etc/rc.d/init.d not /etc/init.d
24
25         * bus/Makefile.am: remove the "you must --enable-tests to make
26         check" as it broke distcheck
27
28         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
29         
30 2003-05-13  James Willcox  <jwillcox@gnome.org>
31
32         * configure.in:
33         * bus/activation.c: (bus_activation_service_created),
34         (bus_activation_activate_service):
35         * bus/driver.c: (bus_driver_send_service_deleted),
36         (bus_driver_send_service_created), (bus_driver_send_service_lost),
37         (bus_driver_send_service_acquired),
38         (bus_driver_send_welcome_message),
39         (bus_driver_handle_list_services):
40         * bus/session.conf.in:
41         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
42         (dbus_bus_service_exists), (dbus_bus_activate_service):
43         * dbus/dbus-bus.h:
44
45         Add some convenience API which lets you activate a service, and did a
46         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
47         and dbus_message_get_args()
48
49 2003-05-11  Havoc Pennington  <hp@pobox.com>
50
51         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid 
52         calling _dbus_marshal_validate_arg() for every byte in a byte
53         array, etc.
54
55         * dbus/dbus-message-handler.c: use atomic reference counting to 
56         reduce number of locks slightly; the global lock in here sucks
57
58         * dbus/dbus-connection.c
59         (_dbus_connection_update_dispatch_status_and_unlock): variant of
60         update_dispatch_status that can be called with lock held; then use
61         in a couple places to reduce locking/unlocking
62         (dbus_connection_send): hold the lock over the whole function 
63         instead of acquiring it twice.
64
65         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
66
67         * bus/connection.c (bus_connections_setup_connection): fix access
68         to already-freed memory.
69
70         * dbus/dbus-connection.c: keep a little cache of linked list
71         nodes, to avoid using the global linked list alloc lock in the
72         normal send-message case. Instead we just use the connection lock
73         that we already have to take.
74
75         * dbus/dbus-list.c (_dbus_list_find_last): new function
76
77         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
78         change to use a struct for the atomic type; fix docs, 
79         they return value before increment, not after increment.
80
81         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
82         (_dbus_string_append_8_aligned): new functions to try to
83         microoptimize this operation.
84         (reallocate_for_length): break this out of set_length(), to
85         improve profile info, and also so we can consider inlining the
86         set_length() part.
87
88         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
89         strings with some preallocation, cuts down on our calls to realloc
90         a fair bit. Though if we can get the "move entire string to empty
91         string" optimization below to kick in here, it would be better.
92
93         * dbus/dbus-string.c (_dbus_string_move): just call
94         _dbus_string_move_len
95         (_dbus_string_move_len): add a special case for moving 
96         an entire string into an empty string; we can just 
97         swap the string data instead of doing any reallocs.
98         (_dbus_string_init_preallocated): new function
99
100 2003-05-11  Havoc Pennington  <hp@pobox.com>
101
102         Write a "test-profile" that does echo client-server with threads;
103         profile reveals lock contention, memcpy/realloc of buffers, and
104         UTF-8 validation as hot spots. 20% of lock contention eliminated
105         with dbus_atomic_inc/dec implementation on x86.  Much remaining
106         contention is global mempool locks for GList and DBusList.
107         
108         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
109         x86 implementation
110
111         * dbus/dbus-connection.c (struct DBusConnection): use
112         dbus_atomic_t for the reference count   
113
114         * dbus/dbus-message.c (struct DBusMessage): declare 
115         dbus_atomic_t values as volatile
116
117         * configure.in: code to detect ability to use atomic integer
118         operations in assembly, from GLib patch
119
120         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
121         time, tired of it being wrong in threads and forked processes
122
123         * glib/test-profile.c: a little program to bounce messages back 
124         and forth between threads and eat CPU
125
126         * dbus/dbus-connection.c: add debug spew macros for debugging
127         thread locks; include config.h at top; fix deadlock in 
128         dbus_connection_flush()
129
130 2003-05-08  Havoc Pennington  <hp@pobox.com>
131
132         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
133         data from getting written, and there wasn't a good reason to 
134         use _exit really.
135
136         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
137         dbus_verbose lines in test coverage
138         (main): add list of functions sorted by # of untested blocks 
139         to the coverage report
140
141         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
142
143         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
144
145         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
146         extend test coverage
147
148         * test/data/auth/cancel.auth-script: test canceling an
149         authentication
150
151         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
152         aren't used. in CVS history if we end up needing them.
153
154 2003-05-04  Havoc Pennington  <hp@pobox.com>
155
156         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
157         unit test
158
159         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
160         function, which assumed length was in # of strings, not bytes
161
162         * dbus/dbus-message.c (_dbus_message_test): add tests for some
163         missing coverage
164
165         * dbus/dbus-connection.c
166         (_dbus_connection_queue_received_message): disable function for
167         now, we are only using it in test mode
168
169         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
170         remove a mistaken FIXME
171
172 2003-05-04  Havoc Pennington  <hp@pobox.com>
173
174         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
175         unlock mutex on successful return, patch from Anders Gustafsson
176
177 2003-05-04  Havoc Pennington  <hp@pobox.com>
178
179         * dbus-glib-1.pc.in (Requires): fix dependencies, from 
180         Anders Gustafsson
181
182 2003-05-04  Havoc Pennington  <hp@pobox.com>
183
184         * tools/dbus-launch.c: implement
185
186         * bus/main.c (main), bus/bus.c (bus_context_new): 
187         implement --print-pid and --fork
188
189 2003-05-03  Havoc Pennington  <hp@redhat.com>
190
191         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
192         the address had no value, and add to test suite. Fix and
193         regression test from Miloslav Trmac
194
195 2003-05-03  Havoc Pennington  <hp@pobox.com>
196
197         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
198         watch is invalid when handled
199
200         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
201         dbus-launch utility to launch the bus from a shell script.  Didn't
202         actually implement dbus-launch yet, it's just a placeholder still.
203         
204 2003-05-03  Havoc Pennington  <hp@pobox.com>
205
206         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
207         daemon; also documents daemon config file, so replaces
208         doc/config-file.txt. Corrected some stuff from config-file.txt in
209         the process of moving it.
210
211 2003-05-03  Havoc Pennington  <hp@pobox.com>
212
213         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: 
214         add some man pages
215
216 2003-05-03  Colin Walters  <walters@verbum.org>
217
218         * dbus/dbus-sysdeps.c (fill_user_info): Test against
219         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
220
221         * Makefile.am: Update to use new .pc versioning scheme.
222
223 2003-05-02  Havoc Pennington  <hp@redhat.com>
224
225         * bus/system.conf.in: allow send/receive to/from message bus
226         service
227
228 2003-04-30  Havoc Pennington  <hp@redhat.com>
229
230         * configure.in: print a note when building with unit tests and
231         without assertions
232
233 2003-04-30  Havoc Pennington  <hp@redhat.com>
234
235         * Makefile.am: add a check-local that complains if you didn't
236         configure with --enable-tests
237
238 2003-04-29  Havoc Pennington  <hp@redhat.com>
239
240         * glib/dbus-gmain.c: docs cleanups
241
242         * dbus/dbus-types.h: add docs on int64 types
243
244         * dbus/dbus-memory.c: fix docs to avoid putting private API in
245         public API docs section
246
247 2003-04-29  Havoc Pennington  <hp@redhat.com>
248
249         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
250         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
251         parallel install API version, not with the D-BUS package version.
252
253         * HACKING: move some of README over here
254
255         * README: updates, and document API/ABI policy
256
257         * configure.in: reindentation
258
259 2003-04-29  Havoc Pennington  <hp@redhat.com>
260
261         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
262         to use this library" to be sure people have the right
263         expectations.
264         
265 2003-04-28  Havoc Pennington  <hp@redhat.com>
266
267         * configure.in: add --enable-docs which by default is auto yes if
268         doxygen and db2html found, no otherwise; but can be forced on/off
269
270         * doc/Makefile.am: conditionalize whether to build docs on
271         --enable-docs
272
273 2003-04-28  Havoc Pennington  <hp@redhat.com>
274
275         * configure.in: 0.10
276
277         * NEWS: update
278
279         * bus/system.conf.in: add <includedir>system.d</includedir>
280         
281         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
282         username was provided but not uid
283
284         * bus/config-parser.c (struct BusConfigParser): keep track of
285         whether the parser is toplevel or was included; change some 
286         of the error handling if it's included.
287         
288 2003-04-27  Havoc Pennington  <hp@pobox.com>
289
290         Unbreak my code...
291
292         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
293         report correct status if we finish processing authentication
294         inside this function.
295         
296         * bus/activation.c (try_send_activation_failure): use
297         bus_transaction_send_error_reply
298
299         * bus/connection.c (bus_connection_get_groups): return an error
300         explaining the problem
301
302         * bus/bus.c (bus_context_check_security_policy): implement
303         restriction here that inactive connections can only send the
304         hello message. Also, allow bus driver to send anything to 
305         any recipient.
306
307         * bus/connection.c (bus_connection_complete): create the
308         BusClientPolicy here instead of on-demand.
309         (bus_connection_get_policy): don't return an error
310
311         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
312         sender field in message being replied to
313
314         * bus/bus.c (bus_context_check_security_policy): fix silly typo
315         causing it to return FALSE always
316
317         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
318         we checked sender rather than destination
319
320 2003-04-25  Havoc Pennington  <hp@redhat.com>
321
322         test suite is slightly hosed at the moment, will fix soon
323         
324         * bus/connection.c (bus_connections_expire_incomplete): fix to
325         properly disable the timeout when required
326         (bus_connection_set_name): check whether we can remove incomplete
327         connections timeout after we complete each connection.
328
329         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
330         probably still broken.
331
332         * bus/services.c (bus_registry_acquire_service): implement max
333         number of services owned, and honor allow/deny rules on which 
334         services a connection can own.
335
336         * bus/connection.c (bus_connection_get_policy): report errors here
337
338         * bus/activation.c: implement limit on number of pending
339         activations
340
341 2003-04-25  Havoc Pennington  <hp@redhat.com>
342
343         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
344         where we used >= 0 instead of != DBUS_UID_UNSET.
345
346 2003-04-25  Havoc Pennington  <hp@redhat.com>
347
348         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
349         were toggled without add/remove, fix from Anders Gustafsson
350
351 2003-04-24  Havoc Pennington  <hp@redhat.com>
352
353         * test/data/valid-config-files/basic.conf: add <limit> tags to
354         this test
355         
356         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
357         <limit> tag in configuration file.
358         
359 2003-04-24  Havoc Pennington  <hp@redhat.com>
360
361         * bus/dispatch.c: somehow missed some name_is
362
363         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled) 
364         (_dbus_timeout_set_interval): new
365
366         * bus/connection.c (bus_connections_setup_connection): record time
367         when each connection is first set up, and expire them after the 
368         auth timeout passes.
369
370 2003-04-24  Havoc Pennington  <hp@redhat.com>
371
372         * dbus/dbus-message.c (dbus_message_name_is): rename
373         (dbus_message_service_is): rename
374         (dbus_message_sender_is): rename
375         (dbus_message_get_service): rename
376
377 2003-04-24  Havoc Pennington  <hp@redhat.com>
378
379         * configure.in: add --enable-checks
380
381         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
382
383         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
384         to use thread locks.
385         (_dbus_connection_handler_destroyed_locked): move some private
386         functions into proper docs group
387
388         * dbus/dbus-internals.h: add _dbus_return_if_fail,
389         _dbus_return_val_if_fail
390
391         Throughout: use dbus_return_if_fail
392
393 2003-04-23  James Willcox  <jwillcox@gnome.org>
394
395         * glib/dbus-glib.h:
396         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
397         (dbus_connection_setup_with_g_main),
398         (dbus_server_setup_with_g_main):
399         * glib/test-dbus-glib.c: (main):
400         * glib/test-thread-client.c: (main):
401         * glib/test-thread-server.c: (new_connection_callback), (main):
402         * tools/dbus-monitor.c: (main):
403
404         Added a GMainContext argument to dbus_connection_setup_with_g_main()
405         and dbus_server_setup_with_g_main().
406
407 2003-04-20  Havoc Pennington  <hp@pobox.com>
408
409         * doc/dbus-specification.sgml: document the restrictions on
410         message and service names
411
412 2003-04-22  Havoc Pennington  <hp@redhat.com>
413
414         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
415         support, and do some code cleanups to share more code and 
416         speed up array marshal/demarshal.
417
418         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
419
420         * configure.in: generate dbus-arch-deps.h
421
422         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
423         64-bit typecodes
424
425 2003-04-22  Havoc Pennington  <hp@redhat.com>
426
427         * test/data/valid-messages/opposite-endian.message: fix test
428         to use proper type for rply field
429
430         * test/data/invalid-messages: add tests for below validation
431         
432         * dbus/dbus-message.c (decode_header_data): validate field types,
433         and validate that named fields are valid names
434         (decode_name_field): consider messages in the
435         org.freedesktop.Local. namespace to be invalid.
436
437         * dbus/dbus-string.c (_dbus_string_validate_name): new
438
439 2003-04-19  Havoc Pennington  <hp@pobox.com>
440
441         * bus/driver.c (bus_driver_handle_hello): check limits and 
442         return an error if they are exceeded.
443
444         * bus/connection.c: maintain separate lists of active and inactive
445         connections, and a count of each. Maintain count of completed
446         connections per user. Implement code to check connection limits.
447
448         * dbus/dbus-list.c (_dbus_list_unlink): export
449
450         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
451         number of bytes in the message queue for a connection
452
453 2003-04-18  Havoc Pennington  <hp@pobox.com>
454
455         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
456
457         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
458         memleaks
459
460         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and 
461         on realloc be sure to update the pointer in the keyring
462
463         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
464         offset to avoid writing to unallocated memory
465
466         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
467         try the next mechanism, so we properly handle OOM
468
469         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
470         on OOM.
471         (_dbus_keyring_new): fix OOM bug
472         (_dbus_keyring_new_homedir): always set error; impose a maximum
473         number of keys we'll load from the file, mostly to speed up the
474         test suite and make its OOM checks more useful, but also for
475         general sanity.
476
477         * dbus/dbus-auth.c (process_error_server): reject authentication
478         if we get an error from the client
479         (process_cancel): on cancel, send REJECTED, per the spec
480         (process_error_client): send CANCEL if we get an error from the
481         server.
482
483 2003-04-18  Havoc Pennington  <hp@pobox.com>
484         
485         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
486         debug spew
487
488         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
489         handling problem
490
491         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
492         about DBUS_TEST_HOMEDIR once
493
494         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
495         the environment
496         
497         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
498         config file so we test the right thing
499
500         Throughout: assorted docs improvements
501
502 2003-04-18  Havoc Pennington  <hp@pobox.com>
503
504         * glib/dbus-gmain.c: adapt to watch changes
505
506         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
507
508         * dbus/dbus-server.h: remove dbus_server_handle_watch
509
510         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
511
512         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
513         like DBusTimeout, so we don't need dbus_connection_handle_watch
514         etc.
515
516 2003-04-17  Havoc Pennington  <hp@redhat.com>
517
518         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
519         database usage so it all goes via the DBusUserDatabase cache.
520
521 2003-04-17  Havoc Pennington  <hp@redhat.com>
522
523         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
524         there was an OOM watch we skipped, we always return TRUE so we
525         iterate again to have a look at it again. Fixes test suite hang.
526         Code rearrangement also lets us lose some memset and only iterate
527         over callbacks once.
528
529         * bus/driver.c (bus_driver_handle_message): sense of test for
530         reply was backward
531
532 2003-04-16  Havoc Pennington  <hp@pobox.com>
533
534         * doc/dbus-specification.sgml: make spec say serials are unsigned
535
536         * dbus/dbus-message.h: change message serials to unsigned
537
538         * dbus/dbus-connection.c: adapt to message serials being unsigned
539         
540 2003-04-15  Havoc Pennington  <hp@pobox.com>
541
542         * bus/bus.c: create and keep around a shared DBusUserDatabase 
543         object.
544
545         * bus/connection.c (bus_connection_get_groups): don't cache
546         groups for user in the connection object, since user database 
547         object now does that.
548
549 2003-04-16  Havoc Pennington  <hp@redhat.com>
550
551         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
552         list of size counters
553         (_dbus_message_loader_putback_message_link): put back a popped link
554
555         * dbus/dbus-connection.c
556         (dbus_connection_set_max_live_messages_size): rename 
557         max_received_size
558         (dbus_connection_get_outgoing_size): get size of outgoing 
559         queue
560         (_dbus_connection_set_connection_counter): remove this cruft
561         
562 2003-04-14  Havoc Pennington  <hp@redhat.com>
563
564         * dbus/dbus-userdb.c: user database abstraction, mostly to get
565         caching, but at some point we might want to be able to use a
566         different database.
567
568         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
569         SHA1 conf file to test the sha1 auth mechanism, since the regular
570         test always uses EXTERNAL when available.
571
572         * configure.in,
573         test/data/valid-config-files/debug-allow-all-sha1.conf.in: 
574         add conf file that requires use of sha1 auth
575
576 2003-04-13  Havoc Pennington  <hp@pobox.com>
577         
578         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
579         from Philip Blundell to send messages and monitor them.
580         
581 2003-04-13  Havoc Pennington  <hp@pobox.com>
582
583         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting 
584         callbacks
585
586         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
587         users
588
589         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
590         fix to only recover unused bytes if we're already authenticated
591         (_dbus_transport_get_is_authenticated): fix to still mark us 
592         authenticated if there are unused bytes.
593
594         * bus/dispatch.c: implement security policy checking
595         
596         * bus/connection.c (bus_transaction_send_from_driver): new
597
598         * bus/bus.c (bus_context_check_security_policy): new
599
600         * bus/dispatch.c (send_service_nonexistent_error): delete this,
601         now we just set the DBusError and it gets converted to an error
602         reply.
603
604         * bus/connection.c (allow_user_function): enable code using actual
605         data from the config file
606
607         * bus/policy.c (list_allows_user): handle wildcard rules for
608         user/group connection perms
609
610 2003-04-13  Havoc Pennington  <hp@pobox.com>
611
612         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
613         
614         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
615
616         * bus/policy.c (bus_policy_append_mandatory_rule)
617         (bus_policy_append_default_rule, bus_policy_append_user_rule)
618         (bus_policy_append_group_rule): new functions
619
620 2003-04-12  Havoc Pennington  <hp@pobox.com>
621
622         * bus/config-parser.c (bus_config_parser_new): fix a memleak
623
624         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
625         the pid/gid/uid, just for paranoia.
626
627         * test/break-loader.c (randomly_do_n_things): find a byte
628         containing a type code, and randomly change it to a different 
629         type code.
630
631 2003-04-12  Havoc Pennington  <hp@pobox.com>
632
633         * bus/policy.h: change BusPolicy to be the thing from the config
634         file, and rename old BusPolicy to BusClientPolicy
635
636         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to 
637         match change in how policy works
638
639         * dbus/dbus-internals.h: mark assert_not_reached as
640         __attribute((noreturn))__
641
642 2003-04-11  Havoc Pennington  <hp@redhat.com>
643
644         * doc/dbus-specification.sgml: fix a spot with the wrong name for 
645         the broadcast service. Use boolean return for ServiceExists.
646
647 2003-04-11  Havoc Pennington  <hp@redhat.com>
648
649         * configure.in: add another directory to look for qt in.
650
651 2003-04-11  Havoc Pennington  <hp@redhat.com>
652
653         * AUTHORS: add Colin Walters
654
655 2003-04-11  Havoc Pennington  <hp@redhat.com>
656
657         * NEWS: update
658
659         * configure.in: 0.9
660
661 2003-04-11  Havoc Pennington  <hp@redhat.com>
662
663         * bus/messagebus.in: remove pid file when stopping the
664         message bus, since the bus won't have privileges to remove it
665         itself.
666
667 2003-04-11  Havoc Pennington  <hp@redhat.com>
668
669         * bus/bus.c (bus_context_new): move credentials change after
670         creating pidfile
671
672 2003-04-11  Havoc Pennington  <hp@pobox.com>
673
674         * test/decode-gcov.c: add "below average functions" to the
675         coverage report, and change how some of the code works.
676
677         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
678         not in the coverage stats.
679
680         * test/test-service.c (main): use _dbus_verbose not fprintf in a
681         couple places so running the test suite doesn't result in megaspam.
682
683 2003-04-11  Havoc Pennington  <hp@pobox.com>
684
685         * bus/dispatch.c (check_existent_service_activation): accept a no
686         memory error in a place we didn't before
687
688         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
689         in case the first one failed," since the test suite is less
690         broken now.
691
692 2003-04-10  Havoc Pennington  <hp@pobox.com>
693
694         * bus/dispatch.c (check_segfault_service_activation): add test
695         for launching an executable that just crashes.
696
697         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
698         don't leave a million cores. We'll see how portable this is.
699
700 2003-04-10  Havoc Pennington  <hp@pobox.com>
701
702         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
703         the possible parent failures before we fork, so that we don't
704         fail to create a babysitter after creating the child.
705
706         * bus/activation.c (bus_activation_activate_service): kill child
707         if we don't successfully complete the activation.
708
709 2003-04-10  Havoc Pennington  <hp@redhat.com>
710
711         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
712         the connection if it's disconnected
713
714         * bus/activation.c (bus_activation_service_created): use new
715         transaction features to roll back removal of pending activation if
716         we don't successfully create the service after all. Don't remove
717         pending activation if the function fails.
718
719         * dbus/dbus-list.c (_dbus_list_insert_before_link) 
720         (_dbus_list_insert_after_link): new code to facilitate
721         services.c fixes
722
723         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
724         new functionality, so we can preallocate the ability to insert
725         into a hash table.
726
727         * bus/connection.c (bus_transaction_add_cancel_hook): new function
728         allowing us to put custom hooks in a transaction to be used for 
729         cancelling said transaction
730
731         * doc/dbus-specification.sgml: add some discussion of secondary
732         service owners, and disallow zero-length service names
733
734         * bus/services.c (bus_registry_acquire_service): new function,
735         splits out part of bus_driver_handle_acquire_service() and fixes 
736         a bug where we didn't remove the service doing the acquiring 
737         from the secondary queue if we failed to remove the current owner
738         from the front of the queue.
739         
740 2003-04-10  Alexander Larsson  <alexl@redhat.com>
741
742         * doc/dbus-specification.sgml:
743         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
744         
745 2003-04-10  Alexander Larsson  <alexl@redhat.com>
746
747         * bus/.cvsignore:
748         * glib/.cvsignore:
749         * test/.cvsignore:
750         Added files to cvsignore
751         
752         * dbus/dbus-message.h:
753         * dbus/dbus-message.c: (dbus_message_iter_get_named):
754         Make get_named() take two out argument and return a boolean.
755         (dbus_message_iter_get_args_valist):
756         Update usage of get_named().
757         (dbus_message_iter_append_byte):
758         Fix typo
759         (dbus_message_iter_append_named)
760         Fix typo
761         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
762         More tests.
763
764 2003-04-10  Alexander Larsson  <alexl@redhat.com>
765
766         * dbus/dbus-marshal.[ch]:
767         Add array_type_pos argument to _dbus_marshal_validate_arg.
768         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
769         
770         * dbus/dbus-message.[ch]:
771         Multi-dimensional arrays have full type specification in the
772         outermost array. Iter code re-arranged to handle this.
773         Added some more iter tests.
774         
775         * doc/dbus-specification.sgml:
776         Add me to authors.
777         Remove old FIXME.
778         Update new array encoding description.
779         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
780         
781         * test/data/invalid-messages/array-with-mixed-types.message:
782         * test/data/valid-messages/array-of-array-of-uint32.message:
783         Change to the new array format.
784         
785         * test/data/invalid-messages/too-short-dict.message:
786         Fix bug in test.
787         
788         * test/data/valid-messages/recursive-types.message:
789         Fix up and extend test.
790
791 2003-04-10  Havoc Pennington  <hp@pobox.com>
792
793         * bus/dispatch.c: lots of fixes
794         
795         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
796         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
797         that was crack, broke the test service.
798
799         * dbus/dbus-transport.c (_dbus_transport_open): fix error
800         handling to avoid piling up errors if we get a failure on the 
801         first address.
802
803         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
804         pid in assertion failures.
805
806         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
807         to some fixed size of file descriptor array. Don't return TRUE
808         anytime a timeout exists, that led to lots of busy loop silliness
809         in the tests.
810
811 2003-04-09  Havoc Pennington  <hp@redhat.com>
812
813         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
814         I'd checked this in earlier but hadn't.
815
816 2003-04-09  Havoc Pennington  <hp@redhat.com>
817
818         * bus/dispatch.c (bus_dispatch_test): get a bit further through
819         the activation test (man this is getting old!)
820
821 2003-04-09  Havoc Pennington  <hp@redhat.com>
822
823         * test/test-utils.c: use dispatch status function to fix this up
824
825         * bus/connection.c (connection_watch_callback): don't dispatch
826         from here
827         (connection_timeout_callback): don't dispatch from here
828         (bus_connections_setup_connection): set the dispatch status function
829         (bus_connection_disconnected): unset it
830
831         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
832         used to add a connection to be dispatched
833         (_dbus_loop_iterate): do the dispatching at the end of each
834         iteration
835
836         * dbus/dbus-connection.c
837         (dbus_connection_set_dispatch_status_function): new function
838         allowing us to fix up main loop usage
839         (_dbus_connection_last_unref): free all the various function
840         user data
841         (dbus_connection_dispatch): call the DispatchStatusFunction 
842         whenever this function returns
843         (dbus_connection_handle_watch): call DispatchStatusFunction
844         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
845         (reply_handler_timeout): call DispatchStatusFunction
846         (dbus_connection_flush): call DispatchStatusFunction
847
848 2003-04-09  Havoc Pennington  <hp@redhat.com>
849
850         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and 
851         a memory leak
852
853         * bus/dispatch.c (check_service_activated): fix bug in test
854
855         * dbus/dbus-mainloop.c (check_timeout): fix this up
856
857         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
858         verbose output so we can sort out output from different processes,
859         e.g. in the activation case.
860
861 2003-04-08  Colin Walters  <walters@gnu.org>
862  
863         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
864         the pid file.
865         (bus_context_new): Set it.
866         (bus_context_unref): Use it to delete the pid file.
867  
868 2003-04-08  Havoc Pennington  <hp@redhat.com>
869
870         * test/data/invalid-messages/array-with-mixed-types.message:
871         regression test that fails for the moment
872
873         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
874         tests for convenience
875
876         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
877         array of nil, it broke things.
878
879         * test/data/invalid-messages/array-of-nil.message: regression test
880
881         * test/data/valid-messages/array-of-array-of-uint32.message:
882         happened to write this so added it to suite
883         
884 2003-04-08  Havoc Pennington  <hp@redhat.com>
885
886         * bus/driver.c (bus_driver_handle_acquire_service): init
887         retval/reply before checking name
888
889         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
890         recursion depth argument
891
892         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
893         in the public struct for future extension
894
895         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
896         typo
897
898         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
899         message
900
901         * doc/dbus-specification.sgml: fix typo
902
903 2003-04-08  Alexander Larsson  <alexl@redhat.com>
904
905         Implemented recursive types, named types and new-style iters
906
907         * bus/driver.c:
908         * glib/test-thread-client.c: (thread_func):
909         * glib/test-thread-server.c: (handle_test_message):
910         * test/test-service.c: (handle_echo):
911         Update to new api
912         
913         * dbus/Makefile.am:
914         * dbus/dbus-dict.c:
915         * dbus/dbus-dict.h:
916         * dbus/dbus.h
917         Remove DBusDict
918
919         * dbus/dbus-internals.c: (_dbus_type_to_string):
920         Update for new types.
921         
922         * dbus/dbus-marshal.[ch]:
923         Implement recursive types and the new marshalling format.
924         Remove hardcoded dict marshalling.
925         Marshal named types.
926         
927         * dbus/dbus-message-builder.c:
928         Add BYTE_ARRAY.
929         Remove references to old types
930         
931         * dbus/dbus-message.[ch]:
932         New non-refcounted iter API that supports recursive iters.
933         Use iters for appending, including support for recursive
934         iters.
935         Add byte and named type support.
936         Update everything to new marshalling formats.
937         Add tests for new API.
938         
939         * dbus/dbus-protocol.h:
940         Remove old array types.
941         Add types: BYTE, ARRAY, DICT, NAMED
942         
943         * dbus/dbus-string.c:
944         * dbus/dbus-sysdeps.c:
945         Make parse_double locale safe.
946         
947         * dbus/dbus-test-main.c:
948         Call setlocale.
949         
950         * dbus/dbus-test.c:
951         Kill dict test
952         
953         * doc/dbus-specification.sgml:
954         Update spec
955         
956         * test/data/incomplete-messages/missing-body.message:
957         * test/data/invalid-messages/bad-boolean.message:
958         * test/data/invalid-messages/bad-boolean-array.message:
959         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
960         * test/data/invalid-messages/boolean-has-no-value.message-raw:
961         * test/data/invalid-messages/too-short-dict.message:
962         * test/data/valid-messages/dict-simple.message:
963         * test/data/valid-messages/dict.message:
964         * test/data/valid-messages/emptiness.message:
965         * test/data/valid-messages/lots-of-arguments.message:
966         * test/data/valid-messages/no-padding.message:
967         * test/data/valid-messages/recursive-types.message:
968         Add missing NAME fields
969         Fix up dicts & arrays
970         
971         * test/data/invalid-messages/dict-with-nil-value.message:
972         Removed, this is not invalid anymore.
973         
974         * test/data/valid-messages/recursive-types.message:
975         Add new test for deeply recursive types.
976
977 2003-04-07  Havoc Pennington  <hp@pobox.com>
978
979         * bus/driver.c (bus_driver_handle_acquire_service): return an
980         error if you try to acquire a service that starts with ':'
981
982 2003-04-07  Havoc Pennington  <hp@redhat.com>
983
984         * doc/dbus-specification.sgml: require that base service names 
985         start with ':' and that the base service is created/deleted 
986         as first and last things a connection does on the bus
987
988         * bus/dispatch.c (check_existent_service_activation): lots more 
989         work on the activation test; it doesn't fully pass yet...
990
991         * test/test-service.c (main): fix so we don't memleak the
992         connection to the message bus
993         (filter_func): accept a message asking us to exit
994
995 2003-04-06  Havoc Pennington  <hp@pobox.com>
996
997         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, 
998         from Colin Walters
999
1000         * configure.in: fixes to Qt detection from Colin Walters
1001
1002         * doc/Makefile.am: Only remove generated docbook dirs if they
1003         exist, from Colin Walters
1004
1005         * dbus/dbus-bus.c: change how we set well-known connections to
1006         NULL, so that it works if a single connection is stored in 
1007         two well-known array slots.
1008
1009         * test/Makefile.am: remove a lot of stuff that isn't immediately
1010         useful, it's in CVS history if we want it.
1011
1012         * test/test-service.c: use dbus-mainloop instead of that
1013         watch.[hc] crack
1014
1015 2003-04-06  Havoc Pennington  <hp@pobox.com>
1016
1017         * dbus/Makefile.am: split lists of sources into stuff that goes in
1018         the library, util functions that go in the lib and are also used
1019         elsewhere, and util functions that are used in tests/daemon but
1020         don't go in the lib.
1021
1022         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] 
1023         here so it can be used in test binaries also
1024
1025 2003-04-06  Havoc Pennington  <hp@pobox.com>
1026
1027         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1028         here in the parent process, so we can return an error if it
1029         fails. Also, move some of the code into the child so the parent 
1030         is less hosed if we fail midway through.
1031
1032         * bus/bus.c (bus_context_new): move pidfile detection further up 
1033         in the function, before we start overwriting sockets and such.
1034
1035         * bus/messagebus.in: adjust this a bit, not sure if it will work.
1036
1037         * configure.in: add --with-system-pid-file and --with-system-socket
1038
1039 2003-04-06  Colin Walters  <walters@verbum.org>
1040
1041         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1042
1043         * bus/system.conf.in: Declare a pidfile.
1044
1045         * bus/bus.c (bus_context_new): Test for an existing pid file, and
1046         create one (if appropriate).
1047
1048         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1049         (struct BusConfigParser) [pidfile]: New.
1050         (element_type_to_name, merge_included, start_busconfig_child)
1051         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1052         (bus_config_parser_unref): Free it.
1053         (bus_config_parser_get_pidfile): New function.
1054         
1055         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1056
1057         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1058
1059         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1060         
1061         * dbus/dbus-sysdeps.h: Prototype it.
1062
1063 2003-04-06  Havoc Pennington  <hp@pobox.com>
1064
1065         * bus/bus.c (bus_context_new): print the address in here, rather
1066         than in main(), because we need to do it before forking the daemon
1067
1068         * bus/dispatch.c (send_service_nonexistent_error): set the sender 
1069         on the service nonexistent error
1070
1071         * bus/driver.c (bus_driver_handle_acquire_service): set the
1072         sender on the AcquireService reply
1073
1074         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1075         server also listen on a UNIX socket so services can connect to it.
1076
1077 2003-04-06  Havoc Pennington  <hp@pobox.com>
1078
1079         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done 
1080         so it detects deadlocks and also we actually init threads when 
1081         debugging.
1082
1083 2003-04-06  Havoc Pennington  <hp@pobox.com>
1084
1085         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1086         save the domain socket name, and unlink it when we disconnect the
1087         server. Means that at least when we exit normally, we won't leave
1088         a bunch of junk in /tmp
1089
1090         * dbus/dbus-transport-unix.c
1091         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1092         memory management). (I was making a real change here but then
1093         didn't)
1094
1095 2003-04-06  Havoc Pennington  <hp@pobox.com>
1096
1097         * bus/bus.c (bus_context_new): fix wrong handling of
1098         server_data_slot_unref() in the error case. 
1099
1100         * dbus/dbus-internals.h (_dbus_assert): change so it passes
1101         "(condition) != 0" to _dbus_real_assert so that
1102         "_dbus_assert (pointer)" doesn't cause a warning
1103
1104         * bus/main.c (main): accept --print-address option to print out
1105         the message bus address
1106
1107         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1108
1109         * dbus/dbus-transport.c (_dbus_transport_open): special error for
1110         "tmpdir" option to unix: address on client side
1111
1112         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option 
1113         to unix: address
1114         
1115         * configure.in (TEST_SOCKET_DIR): locate a temporary directory 
1116         we can use to create sockets in the test suite.
1117
1118         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1119         cleanly. To be used for testing.
1120
1121         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1122
1123         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1124
1125         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1126         handle trying to call this when there's no servers active
1127
1128 2003-04-05  Havoc Pennington  <hp@pobox.com>
1129
1130         * NEWS: update
1131
1132         * configure.in: 0.8
1133
1134 2003-04-05  Havoc Pennington  <hp@pobox.com>
1135
1136         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't 
1137         crash on startup. Need to get "try starting the daemon" 
1138         in the test suite I guess. ;-)
1139
1140         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1141         tracked the number of open connections; it's better done in 
1142         application-specific code as you want it to span all servers etc.
1143
1144 2003-04-05  Havoc Pennington  <hp@pobox.com>
1145
1146         * bus/Makefile.am (install-data-hook): add missing DESTDIR, 
1147         patch from Colin Walters
1148
1149 2003-04-05  Havoc Pennington  <hp@pobox.com>
1150
1151         * doc/config-file.txt (Elements): fix docs of <auth> to reflect 
1152         reality; in fact multiple mechanisms are allowed.
1153
1154         * dbus/dbus-internals.c (_dbus_real_assert)
1155         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1156         _dbus_assert_not_reached() into functions, so that they don't show
1157         up in basic block counts for test coverage, and don't use up as
1158         much disk space. Does mean slower execution speed though, so
1159         assumes --disable-asserts is the normal production case.
1160
1161 2003-04-05  Havoc Pennington  <hp@pobox.com>
1162
1163         * test/Makefile.am (dist-hook): also dist *.in files
1164
1165         * NEWS: update
1166
1167         * configure.in: 0.7
1168         
1169 2003-04-05  Havoc Pennington  <hp@pobox.com>
1170
1171         * dbus/dbus-string.c: docs warning
1172         
1173         * dbus/dbus-spawn.c: missing docs
1174
1175         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1176
1177 2003-04-05  Havoc Pennington  <hp@pobox.com>
1178
1179         * bus/loop.c (bus_loop_iterate): fix the timeout code, using 
1180         magic from GLib
1181
1182         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid 
1183         to -1 once we've reaped the babysitter
1184         (_dbus_babysitter_handle_watch): do as much work as we can, not
1185         just one go of it
1186
1187         * bus/activation.c: add code using DBusBabysitter so that we
1188         handle it when a service fails to start up properly.
1189         (bus_activation_service_created): don't remove the activation
1190         entries as we go, just let them get removed when we free the pending
1191         activation. Unref reply messages after sending them.
1192
1193 2003-04-05  Havoc Pennington  <hp@pobox.com>
1194
1195         * test/decode-gcov.c (main): print per-directory stats in the report
1196
1197         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1198
1199 2003-04-05  Havoc Pennington  <hp@pobox.com>
1200
1201         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1202
1203         * test/decode-gcov.c: hack up a little program to suck data 
1204         out of gcov files. Yes this is sort of silly.
1205
1206         * configure.in: define something in config.h and do an
1207         AM_CONDITIONAL when gcov is enabled
1208
1209 2003-04-04  Havoc Pennington  <hp@redhat.com>
1210
1211         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1212         return a "babysitter" object that is used to monitor the status of
1213         the spawned process and reap it when required.
1214
1215         * test/test-segfault.c, test/test-exit.c,
1216         test/test-sleep-forever.c: binaries that do various lame things, 
1217         used in the test suite.
1218
1219         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1220         
1221 2003-04-03  Havoc Pennington  <hp@pobox.com>
1222
1223         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file 
1224         in preparation for modifying it, dbus-sysdeps is getting 
1225         a bit unmanageable.
1226
1227 2003-04-03  Havoc Pennington  <hp@redhat.com>
1228
1229         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1230         have multiple ones
1231
1232         * bus/*.[hc]: adapt to mainloop change
1233
1234 2003-04-03  Havoc Pennington  <hp@redhat.com>
1235
1236         * bus/activation.c (load_directory): fix up memleaks
1237         (bus_activation_entry_free): free the entry
1238
1239         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1240         we get one from the message bus; fix memleaks.
1241
1242         * dbus/dbus-message.c (dbus_set_error_from_message): new function
1243
1244 2003-04-03  Havoc Pennington  <hp@pobox.com>
1245
1246         * bus/config-parser.c (bus_config_parser_unref): free 
1247         list of mechanisms, bug discovered by test suite enhancements
1248         (putting system.conf and session.conf into suite)
1249
1250         * test/Makefile.am, test/test-service.c: add placeholder for a
1251         test service that we'll activate as part of test suite. Doesn't 
1252         do anything yet.
1253
1254         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by 
1255         setting NULL value, and use system malloc not dbus_malloc() 
1256         when we have unavoidable memleakage.
1257
1258         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1259         didn't work, and support DBUS_BUS_ACTIVATION.
1260         
1261         * bus/activation.c (child_setup): pass our well-known bus type to
1262         the child
1263
1264         * bus/config-parser.c: support <type> to specify well-known type
1265
1266         * doc/dbus-specification.sgml: document the env variables to 
1267         locate well-known buses and find service activator
1268
1269 2003-04-02  Havoc Pennington  <hp@redhat.com>
1270
1271         * test/Makefile.am (all-local): add a rule to copy tests to
1272         builddir, so we can have generated tests. Use this to remove the
1273         silly hack for testing system.conf and session.conf. Will use this 
1274         shortly to generate .service files pointing to test binaries.
1275
1276 2003-04-02  Havoc Pennington  <hp@redhat.com>
1277
1278         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1279         current alloc and needed new length, not max of the doubled
1280         allocation and needed new length. Also, when building tests, 
1281         don't do the double-allocation stuff, just realloc every time.
1282
1283 2003-04-02  Havoc Pennington  <hp@redhat.com>
1284
1285         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1286         in error messages
1287         (_dbus_string_get_dirname): new
1288         (_dbus_sysdeps_test): new
1289         (_dbus_directory_open): include dirnames in error messages
1290
1291         * bus/config-parser.c: interpret <include> and <includedir> and
1292         <servicedir> relative to config file location if the given
1293         filename is not absolute.
1294
1295         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1296
1297 2003-04-02  Havoc Pennington  <hp@redhat.com>
1298
1299         * bus/connection.c (bus_transaction_send_error_reply): set sender
1300         service for the error, and unref the reply on success
1301
1302         * bus/activation.c: convert to use BusTransaction so OOM can be
1303         handled correctly
1304         (bus_activation_service_created): set sender of the message
1305
1306 2003-04-01  Havoc Pennington  <hp@redhat.com>
1307
1308         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1309         <includedir> (at least mostly)
1310
1311         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1312         first, then the user ID
1313
1314 2003-04-01  Havoc Pennington  <hp@pobox.com>
1315
1316         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1317         function
1318
1319         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1320
1321         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1322
1323         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1324         socket 0777, and unlink any existing socket.
1325
1326         * bus/bus.c (bus_context_new): change our UID/GID and fork if
1327         the configuration file so specifies; set up auth mechanism 
1328         restrictions
1329
1330         * bus/config-parser.c (bus_config_parser_content): add support
1331         for <fork> option and fill in code for <auth> 
1332
1333         * bus/system.conf.in: add <fork/> to default configuration, 
1334         and limit auth mechanisms to EXTERNAL
1335
1336         * doc/config-file.txt (Elements): add <fork>
1337
1338         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1339         (_dbus_change_identity): new function
1340
1341 2003-03-31  Havoc Pennington  <hp@redhat.com>
1342
1343         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) 
1344         (_dbus_listen_unix_socket): fix off-by-one error in null
1345         termination spotted by Nalin
1346
1347 2003-03-31  Havoc Pennington  <hp@redhat.com>
1348
1349         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1350         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1351         having a real home directory available.
1352
1353 2003-03-31  Havoc Pennington  <hp@redhat.com>
1354
1355         * bus/Makefile.am (install-data-hook): create /var/run/dbus
1356
1357         * bus/messagebus.in: add init script for Red Hat /etc/init.d
1358
1359         * configure.in: add support for specifying a style of init script
1360         to install
1361
1362 2003-03-31  Havoc Pennington  <hp@redhat.com>
1363
1364         Fix some annoying DBusString API and fix all affected code.
1365         
1366         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1367         max_length argument
1368         (_dbus_string_get_data): change to return string instead of using 
1369         an out param
1370         (_dbus_string_get_const_data): ditto
1371         (_dbus_string_get_data_len): ditto
1372         (_dbus_string_get_const_data_len): ditto
1373
1374 2003-03-31  Havoc Pennington  <hp@redhat.com>
1375
1376         * bus/main.c (main): fix up the command line arguments to be nicer
1377
1378 2003-03-31  Havoc Pennington  <hp@redhat.com>
1379
1380         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1381         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same 
1382         final location that lands in the config file
1383
1384         * bus/config-loader-expat.c (bus_config_load): fix type of
1385         XML_Parser variable
1386
1387         * doc/TODO: remove TODO item for dbus_bus_get()
1388
1389         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1390
1391 2003-03-31  Havoc Pennington  <hp@pobox.com>
1392
1393         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1394         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1395         argument since they are always client side
1396
1397         * dbus/dbus-server.c (dbus_server_get_address): new function
1398
1399         * bus/main.c (main): take the configuration file as an argument.
1400
1401         * test/data/valid-config-files/debug-allow-all.conf: new file to 
1402         use with dispatch.c tests for example
1403
1404         * bus/test-main.c (main): require test data dir
1405
1406         * bus/bus.c (bus_context_new): change this to take a
1407         configuration file name as argument
1408
1409         * doc/config-file.txt (Elements): add <servicedir>
1410
1411         * bus/system.conf, bus/session.conf: new files
1412         
1413         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1414         well-known socket if none set
1415
1416         * configure.in: create system.conf and session.conf
1417
1418 2003-03-30  Havoc Pennington  <hp@pobox.com>
1419
1420         * bus/config-parser.c: hacking
1421         
1422         * dbus/dbus-memory.c: don't use DBusList for the list of stuff 
1423         to shut down, since it could cause weirdness with the DBusList
1424         lock
1425
1426         * dbus/dbus-list.c (_dbus_list_test): add tests for the
1427         link-oriented stack routines
1428         (alloc_link): free the mempool if the first alloc from it fails
1429
1430         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1431
1432         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1433         from GLib
1434         (_dbus_string_skip_white): new
1435
1436         * doc/config-file.txt (Elements): add <includedir>
1437
1438 2003-03-28  Havoc Pennington  <hp@pobox.com>
1439
1440         * dbus/dbus-string.c (_dbus_string_copy_data_len)
1441         (_dbus_string_copy_data): new functions
1442
1443 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
1444
1445         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1446         * dbus/dbus-bus.h:
1447         Add dbus_bus_get.
1448         
1449         * dbus/dbus-memory.c:
1450         Fix a doc comment.
1451         
1452 2003-03-28  Havoc Pennington  <hp@pobox.com>
1453
1454         * bus/test.c (bus_test_flush_bus): remove the sleep from here, 
1455         I think it may have just been superstition. Not sure.
1456
1457         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1458         failures that were not being handled.
1459
1460         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1461
1462         * dbus/dbus-memory.c: add ability to set number of mallocs in a
1463         row that will fail on out-of-memory.
1464
1465         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1466         function for testing out-of-memory handling.
1467
1468         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1469         allocation functions, they do map exactly to the expat ones.
1470
1471 2003-03-27  Havoc Pennington  <hp@redhat.com>
1472
1473         * bus/config-loader-libxml.c (bus_config_load): add another error
1474         check
1475
1476 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
1477
1478         * doc/TODO:
1479         Add note about automatic service activation.
1480         
1481         * doc/dbus-specification.sgml:
1482         Rename the specification and clarify a few things.
1483         
1484 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
1485
1486         * Doxyfile.in:
1487         * dbus/dbus-address.c:
1488         * dbus/dbus-dict.c:
1489         * dbus/dbus-marshal.c:
1490         * dbus/dbus-server-debug-pipe.c:
1491         * dbus/dbus-transport-unix.c:
1492         Fix documentation warnings.
1493         
1494 2003-03-26  Havoc Pennington  <hp@pobox.com>
1495
1496         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1497         after every test so it's quick and easy to see which leaked, and
1498         so we test multiple dbus_shutdown() calls
1499
1500         * configure.in: change configure.in XML stuff to also support
1501         expat
1502
1503         * config-loader-libxml.c: some hacking
1504
1505         * config-loader-expat.c: some hacking
1506
1507         * config-parser.c: some hacking, plus tests
1508
1509 2003-03-25  Havoc Pennington  <hp@redhat.com>
1510
1511         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1512         
1513         * configure.in: add --with-xml option to specify XML library,
1514         right now only libxml is supported.
1515
1516         * bus/config-loader-libxml.c, config-parser.c: sync some minor 
1517         nonworking code between home and work, still just stubs
1518
1519 2003-03-24  Havoc Pennington  <hp@redhat.com>
1520
1521         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1522         file
1523
1524         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow 
1525         NULL argument for "message" if the error is a well-known one, 
1526         fill in a generic message in this case.
1527
1528         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1529         favor of DBusError
1530
1531         * bus/test.c (bus_test_flush_bus): add
1532
1533         * bus/policy.c (bus_policy_test): test code stub
1534
1535 2003-03-24  Havoc Pennington  <hp@pobox.com>
1536
1537         * bus/connection.c (bus_connections_setup_connection): set up 
1538         the "can this user connect" function, but it always returns 
1539         TRUE until we have a config file parser so we can have a config
1540         file that allows connections.
1541
1542 2003-03-23  Havoc Pennington  <hp@pobox.com>
1543
1544         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with 
1545         DBUS_BUILD_TESTS, actually alloc/free a block of memory for 
1546         the mutex, so we can check for proper memory management 
1547         and OOM handling.
1548
1549         * dbus/dbus-dataslot.c: remove the mutex from
1550         DBusDataSlotAllocator and lock it manually when using it, 
1551         to simplify fitting it into the global slots framework.
1552
1553         * dbus/dbus-threads.c (init_static_locks): rework how we're
1554         handling global locks so they are easily shut down.
1555
1556         * bus/policy.c (bus_policy_append_rule): fix
1557
1558         * bus/test-main.c (main): check for memleaks
1559
1560         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make 
1561         test suite check for memleaks
1562
1563         * dbus/dbus-memory.c: add support in test mode for tracking 
1564         number of outstanding blocks
1565
1566 2003-03-23  Havoc Pennington  <hp@pobox.com>
1567
1568         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1569         policies code
1570         
1571         * dbus/dbus-hash.h: add ULONG hash keys
1572
1573         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1574         (_dbus_get_group_id): new function
1575
1576 2003-03-20  Havoc Pennington  <hp@redhat.com>
1577
1578         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1579         new function
1580         (dbus_connection_get_unix_user): new function
1581
1582 2003-03-20  Havoc Pennington  <hp@pobox.com>
1583
1584         * bus/connection.c (bus_connection_send_oom_error): assert that
1585         message has a sender
1586         (connection_execute_transaction): ditto
1587         (bus_connection_preallocate_oom_error): fix to set the sender, and
1588         set recipient to the destination service, not the bus driver
1589
1590         * bus/policy.c: hacking
1591
1592         * dbus/dbus-message.c (dbus_message_service_is): new function
1593         (dbus_message_sender_is): new
1594
1595 2003-03-19  Havoc Pennington  <hp@redhat.com>
1596
1597         * bus/policy.c: start sketching code for policy restrictions on 
1598         what connections can do.
1599
1600 2003-03-18  Havoc Pennington  <hp@redhat.com>
1601
1602         * doc/TODO: some notes on high-level todo items. Little nitpick
1603         stuff is all in @todo, so no need to add it here.
1604
1605         * doc/config-file.txt: some notes on how config file might look
1606
1607 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
1608
1609         * configure.in: 0.6
1610
1611         * NEWS: Update.
1612         
1613 2003-03-17  Havoc Pennington  <hp@redhat.com>
1614
1615         * dbus/dbus-internals.h: add gcc attributes so that 
1616         our printf-style functions warn on bad arguments to 
1617         format
1618         
1619         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf 
1620         format bug
1621
1622         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1623         printf format bug
1624
1625 2003-03-17  Havoc Pennington  <hp@redhat.com>
1626
1627         * bus/test-main.c (main): make it print something as it runs 
1628         so make check doesn't look stuck
1629
1630         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove 
1631         from CVS, now obsolete
1632
1633 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
1634
1635         * bus/dispatch.c: (bus_dispatch):
1636         Refetch the service name since it may have been reallocated
1637         when dbus_message_set_sender was called.
1638         
1639         * dbus/dbus-sysdeps.c: (_dbus_accept):
1640         Add address and address length variables and use them to stop
1641         valgrind from complaining.
1642         
1643 2003-03-17  Havoc Pennington  <hp@pobox.com>
1644
1645         All tests pass, no memleaks, no valgrind complaints.
1646         
1647         * bus/test.c: refcount handler_slot
1648
1649         * bus/connection.c (bus_connections_new): refcount
1650         connection_data_slot
1651
1652         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1653         bytes so that auth scripts pass.
1654
1655         * bus/dispatch.c: init message_handler_slot so it gets allocated
1656         properly
1657
1658         * bus/dispatch.c (message_handler_slot_ref): fix memleak
1659
1660         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1661         dealloc server_pipe_hash when no longer used for benefit of
1662         leak checking
1663
1664         * dbus/dbus-auth.c (process_command): memleak fix
1665
1666         * bus/dispatch.c (check_hello_message): memleak fix
1667
1668 2003-03-16  Havoc Pennington  <hp@pobox.com>
1669
1670         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1671
1672 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
1673
1674         * bus/activation.c (bus_activation_activate_service): Append
1675         the pending activation entry to the list of pending activations.
1676
1677 2003-03-16  Havoc Pennington  <hp@pobox.com>
1678
1679         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1680         connections
1681
1682         * dbus/dbus-address.c (create_entry): fix OOM handling when
1683         failing to alloc entry->method
1684
1685 2003-03-16  Havoc Pennington  <hp@pobox.com>
1686
1687         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1688         the watch
1689
1690         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1691         add some missing dbus_set_result
1692
1693         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to 
1694         alloc the DBusMessageHandler
1695
1696         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1697         the transport here, since we call this from the finalizer; it 
1698         resulted in a double-finalize.
1699
1700         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug 
1701         where we tried to use transport->connection that was NULL, 
1702         happened when transport was disconnected early on due to OOM
1703
1704         * bus/*.c: adapt to handle OOM for watches/timeouts
1705
1706         * dbus/dbus-transport-unix.c: port to handle OOM during 
1707         watch handling
1708         
1709         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1710         reference to unused bytes instead of a copy
1711
1712         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
1713         out of memory
1714
1715         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
1716         FALSE on OOM
1717
1718         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
1719         of memory
1720
1721 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
1722
1723         * doc/dbus-specification.sgml:
1724         Document reply message for ActivateService.
1725         
1726 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
1727
1728         * bus/activation.c: (bus_pending_activation_entry_free),
1729         (bus_pending_activation_free), (bus_activation_new),
1730         (bus_activation_unref), (bus_activation_service_created),
1731         (bus_activation_activate_service):
1732         * bus/activation.h:
1733         * bus/bus.c: (bus_context_new):
1734         * bus/desktop-file.c: (new_section):
1735         * bus/driver.c: (bus_driver_send_service_deleted),
1736         (bus_driver_handle_activate_service):
1737         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
1738         * bus/services.h:
1739         * dbus/dbus-connection.c:
1740         (dbus_connection_send_with_reply_and_block):
1741         * dbus/dbus-message.c: (dbus_message_append_args_valist):
1742         * dbus/dbus-protocol.h:
1743         Make activation work better. Now pending activations will be queued
1744         and the daemon won't try to activate services that are already registered.
1745         
1746 2003-03-16  Havoc Pennington  <hp@pobox.com>
1747
1748         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
1749         connection data
1750
1751         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
1752         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
1753
1754 2003-03-16  Havoc Pennington  <hp@pobox.com>
1755
1756         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
1757         this. always run the test suite before commit...
1758
1759         * bus/*: adapt to DBusConnection API changes
1760
1761         * glib/dbus-gmain.c: adapt to DBusConnection API changes, 
1762         requires renaming stuff to avoid dbus_connection_dispatch name 
1763         conflict.
1764
1765         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
1766         function
1767
1768         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1769         separate from _dbus_message_loader_return_buffer()
1770
1771         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
1772         this, because it's now always broken to use; the number of
1773         messages in queue vs. the number still buffered by the message
1774         loader is undefined/meaningless. Should use
1775         dbus_connection_get_dispatch_state().
1776         (dbus_connection_dispatch): rename from
1777         dbus_connection_dispatch_message
1778
1779 2003-03-16  Havoc Pennington  <hp@pobox.com>
1780
1781         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
1782         implementation
1783
1784 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
1785
1786         * dbus/dbus-connection.c:
1787         (dbus_connection_send_with_reply_and_block):
1788         Decrease connection->n_incoming when removing an entry 
1789         from the list.
1790         * dbus/dbus-dict.c: (dbus_dict_entry_free),
1791         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
1792         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
1793         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
1794         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
1795         (dbus_dict_get_byte_array):
1796         Handle NULL arrays and strings. Also add support for byte arrays.
1797         
1798         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
1799         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
1800         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
1801         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
1802         (_dbus_demarshal_dict), (demarshal_and_validate_len),
1803         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
1804         * dbus/dbus-marshal.h:
1805         Add support for marshalling and demarshalling empty arrays and strings.
1806         
1807         * dbus/dbus-message.c: (dbus_message_append_args_valist),
1808         (dbus_message_append_string_array),
1809         (dbus_message_iter_get_boolean),
1810         (dbus_message_iter_get_boolean_array),
1811         (dbus_message_iter_get_int32_array),
1812         (dbus_message_iter_get_uint32_array),
1813         (dbus_message_iter_get_double_array),
1814         (dbus_message_iter_get_byte_array),
1815         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
1816         (check_message_handling):
1817         Add support for getting empty arrays and dicts.
1818         
1819         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
1820         Don't do any validation at all for now, that's better than just checking
1821         for ASCII.
1822         
1823         * test/data/valid-messages/emptiness.message:
1824         New test message with lots of empty arrays.
1825         
1826 2003-03-16  Havoc Pennington  <hp@pobox.com>
1827
1828         * dbus/dbus-connection.c
1829         (_dbus_connection_queue_received_message_link): new function that
1830         can't fail due to OOM
1831
1832         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
1833         new function pops a message together with a list link 
1834         containing it.
1835
1836         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
1837         message queuing functions to avoid needing to alloc memory
1838
1839 2003-03-16  Havoc Pennington  <hp@pobox.com>
1840
1841         Oops - test code was only testing failure of around 30 of the
1842         mallocs in the test path, but it turns out there are 500+
1843         mallocs. I believe this was due to misguided linking setup such
1844         that there was one copy of dbus_malloc etc. in the daemon and one
1845         in the shared lib, and only daemon mallocs were tested. In any
1846         case, the test case now tests all 500+ mallocs, and doesn't pass
1847         yet, though there are lots of fixes in this patch.
1848         
1849         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
1850         this so that it doesn't need to allocate memory, since it 
1851         has no way of indicating failure due to OOM (and would be 
1852         annoying if it did).
1853
1854         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
1855
1856         * bus/Makefile.am: rearrange to create two self-contained
1857         libraries, to avoid having libraries with overlapping symbols. 
1858         that was resulting in weirdness, e.g. I'm pretty sure there 
1859         were two copies of global static variables.
1860
1861         * dbus/dbus-internals.c: move the malloc debug stuff to 
1862         dbus-memory.c
1863
1864         * dbus/dbus-list.c (free_link): free list mempool if it becomes
1865         empty.
1866
1867         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
1868
1869         * dbus/dbus-address.c (dbus_parse_address): free list nodes
1870         on failure.
1871
1872         * bus/dispatch.c (bus_dispatch_add_connection): free
1873         message_handler_slot when no longer using it, so 
1874         memory leak checkers are happy for the test suite.
1875
1876         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
1877
1878         * bus/bus.c (new_connection_callback): disconnect in here if 
1879         bus_connections_setup_connection fails.
1880
1881         * bus/connection.c (bus_connections_unref): fix to free the 
1882         connections
1883         (bus_connections_setup_connection): if this fails, don't
1884         disconnect the connection, just be sure there are no side
1885         effects.
1886
1887         * dbus/dbus-string.c (undo_alignment): unbreak this
1888
1889         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
1890         leaking
1891         (_dbus_auth_new): fix the order in which we free strings 
1892         on OOM failure
1893
1894         * bus/connection.c (bus_connection_disconnected): fix to 
1895         not send ServiceDeleted multiple times in case of memory 
1896         allocation failure
1897
1898         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
1899         get the base service name
1900         (dbus_bus_register_client): don't return base service name,
1901         instead store it on the DBusConnection and have an accessor
1902         function for it.
1903         (dbus_bus_register_client): rename dbus_bus_register()
1904
1905         * bus/dispatch.c (check_hello_message): verify that other 
1906         connections on the bus also got the correct results, not 
1907         just the one sending hello
1908
1909 2003-03-15  Havoc Pennington  <hp@pobox.com>
1910
1911         Make it pass the Hello handling test including all OOM codepaths.
1912         Now to do other messages...
1913         
1914         * bus/services.c (bus_service_remove_owner): fix crash when
1915         removing owner from an empty list of owners
1916         (bus_registry_ensure): don't leave service in the list of 
1917         a connection's owned services if we fail to put the service
1918         in the hash table.
1919
1920         * bus/connection.c (bus_connection_preallocate_oom_error): set
1921         error flag on the OOM error.
1922
1923         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1924         handle _dbus_transport_set_connection failure
1925
1926         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
1927         to create watches up front and simply enable/disable them as
1928         needed.
1929         (unix_connection_set): this can now fail on OOM
1930
1931         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept 
1932         of enabling/disabling a watch or timeout.
1933
1934         * bus/loop.c (bus_loop_iterate): don't touch disabled
1935         watches/timeouts
1936
1937         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
1938
1939 2003-03-15  Havoc Pennington  <hp@pobox.com>
1940
1941         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
1942         write useful test code, after all that futzing around ;-)
1943
1944         Test does not yet pass because we can't handle OOM in
1945         _dbus_transport_messages_pending (basically,
1946         dbus_connection_preallocate_send() does not prealloc the write
1947         watch). To fix this, I think we need to add new stuff to
1948         set_watch_functions, namely a SetEnabled function so we can alloc
1949         the watch earlier, then enable it later.
1950         
1951         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
1952         dbus-memory.c to the convenience lib
1953
1954         * bus/test.c: rename some static functions to keep them clearly 
1955         distinct from stuff in connection.c. Handle client disconnection.
1956
1957 2003-03-14  Havoc Pennington  <hp@pobox.com>
1958
1959         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe 
1960         transport, tests more of the real codepath. Set up clients 
1961         with bus_setup_debug_client.
1962
1963         * bus/test.c (bus_setup_debug_client): function to set up debug 
1964         "clients" on the main loop
1965
1966         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe 
1967         support
1968
1969         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe 
1970         server type
1971
1972         * dbus/dbus-server-debug.c: support a debug server based on pipes
1973
1974         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
1975         (_dbus_close): new function
1976         
1977         * configure.in: check for socketpair
1978
1979 2003-03-14  Havoc Pennington  <hp@redhat.com>
1980
1981         * dbus/dbus-memory.c: add a "detect buffer overwrites on free" 
1982         cheesy hack
1983
1984         * dbus/dbus-transport-debug.c: rework this a good bit to be 
1985         less complicated. hopefully still works.
1986
1987         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
1988         manually
1989
1990         * glib/dbus-gmain.c (timeout_handler): don't remove timeout 
1991         after running it
1992
1993         * dbus/dbus-message.c (dbus_message_copy): rename from 
1994         dbus_message_new_from_message, fix it up to copy 
1995         all the message fields, add test case
1996
1997         * bus/dispatch.c (bus_dispatch_test): add some more test code, 
1998         not quite passing yet
1999
2000 2003-03-14  Havoc Pennington  <hp@pobox.com>
2001
2002         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2003         until no work remains" in test code. (the large diff here 
2004         is just code movement, no actual changes)
2005
2006         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2007         1, no point waiting around for test code.
2008         (_dbus_server_debug_accept_transport): unref the timeout 
2009         after adding it (right?)
2010
2011         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2012         
2013 2003-03-13  Havoc Pennington  <hp@redhat.com>
2014
2015         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2016         out of memory
2017
2018         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2019         of memory
2020
2021         * dbus/dbus-connection.h: Make AddWatchFunction and
2022         AddTimeoutFunction return a bool so they can fail on out-of-memory
2023
2024         * bus/bus.c (bus_context_new): set up timeout handlers
2025
2026         * bus/connection.c (bus_connections_setup_connection): set up
2027         timeout handlers
2028
2029         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2030         can fail
2031
2032         * bus/bus.c (bus_context_new): adapt to changes
2033
2034         * bus/connection.c: adapt to changes
2035
2036         * test/watch.c: adapt to DBusWatch changes
2037
2038         * bus/dispatch.c (bus_dispatch_test): started adding this but
2039         didn't finish
2040         
2041 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
2042
2043         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2044
2045 2003-03-13  Havoc Pennington  <hp@pobox.com>
2046
2047         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: 
2048         set up a test framework as for the library
2049
2050 2003-03-12  Havoc Pennington  <hp@pobox.com>
2051
2052         Throughout: purge global variables, introduce BusActivation, 
2053         BusConnections, BusRegistry, etc. objects instead.
2054         
2055         * bus/bus.h, bus/bus.c: introduce BusContext as a global 
2056         message bus object
2057
2058         * test/Makefile.am (TEST_BINARIES): disable bus-test for now, 
2059         going to redo this a bit differently I think
2060         
2061 2003-03-12  Havoc Pennington  <hp@redhat.com>
2062
2063         Mega-patch that gets the message bus daemon initially handling 
2064         out-of-memory. Work still needed. Also lots of random 
2065         moving stuff to DBusError instead of ResultCode.
2066         
2067         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2068
2069         * dbus/dbus-connection.c
2070         (dbus_connection_send_with_reply_and_block): use DBusError
2071
2072         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2073         DBusResultCode
2074
2075         * dbus/dbus-connection.c (dbus_connection_send): drop the result
2076         code here, as the only failure possible is OOM.
2077
2078         * bus/connection.c (bus_connection_disconnect):
2079         rename bus_connection_disconnected as it's a notification only
2080
2081         * bus/driver.c (bus_driver_handle_acquire_service): don't free
2082         "name" on get_args failure, should be done by get_args; 
2083         don't disconnect client for bad args, just return an error.
2084         (bus_driver_handle_service_exists): ditto
2085
2086         * bus/services.c (bus_services_list): NULL-terminate returned array
2087
2088         * bus/driver.c (bus_driver_send_service_lost)
2089         (bus_driver_send_service_acquired): send messages from driver to a
2090         specific client to the client's unique name, not to the broadcast
2091         service.
2092
2093         * dbus/dbus-message.c (decode_header_data): reject messages that
2094         contain no name field
2095         (_dbus_message_get_client_serial): rename to
2096         dbus_message_get_serial and make public
2097         (_dbus_message_set_serial): rename from set_client_serial
2098         (_dbus_message_set_reply_serial): make public
2099         (_dbus_message_get_reply_serial): make public
2100
2101         * bus/connection.c (bus_connection_foreach): allow stopping
2102         iteration by returning FALSE from foreach function.
2103
2104         * dbus/dbus-connection.c (dbus_connection_send_preallocated) 
2105         (dbus_connection_free_preallocated_send) 
2106         (dbus_connection_preallocate_send): new API for sending a message
2107         without possibility of malloc failure.
2108         (dbus_connection_send_message): rename to just
2109         dbus_connection_send (and same for whole function family)
2110
2111         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2112
2113         * dbus/dbus-sysdeps.c (_dbus_exit): new function
2114
2115         * bus/activation.c: handle/return errors
2116
2117         * dbus/dbus-errors.h: add more DBUS_ERROR #define
2118
2119         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2120         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2121         (_dbus_result_from_errno): move to this file
2122
2123 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
2124
2125         * dbus/dbus-marshal.c: 
2126         (_dbus_marshal_set_string):
2127         Take a length argument so we can marshal the correct string
2128         length.
2129         
2130         (_dbus_marshal_dict), (_dbus_demarshal_dict),
2131         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2132         (_dbus_marshal_test):
2133         * dbus/dbus-marshal.h:  
2134         Add support for marshalling and demarshalling dicts.
2135         
2136         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2137         Add support for TYPE DICT.
2138         
2139         * dbus/dbus-message.c: (set_string_field):
2140         Adjust header padding.
2141         
2142         (dbus_message_append_args_valist), (dbus_message_append_dict),
2143         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2144         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2145         (check_message_handling), (check_have_valid_message):
2146         * dbus/dbus-message.h:
2147         Add functions for setting and getting dicts.
2148
2149         * dbus/dbus-protocol.h:
2150         Add DBUS_TYPE_DICT.
2151         
2152         * dbus/dbus.h:
2153         Add dbus-dict.h
2154         
2155         * doc/dbus-specification.sgml:
2156         Add information about how dicts are marshalled.
2157         
2158         * test/data/invalid-messages/dict-with-nil-value.message:
2159         * test/data/invalid-messages/too-short-dict.message:
2160         * test/data/valid-messages/dict-simple.message:
2161         * test/data/valid-messages/dict.message:
2162         Add sample messages containing dicts.
2163
2164 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
2165
2166         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2167
2168 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
2169
2170         * dbus/Makefile.am:
2171         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2172         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2173         (dbus_dict_set_int32), (dbus_dict_set_uint32),
2174         (dbus_dict_set_double), (dbus_dict_set_string),
2175         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2176         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2177         (dbus_dict_set_string_array), (_dbus_dict_test):
2178         * dbus/dbus-dict.h:
2179         Fix according to comments from Havoc.
2180         
2181 2003-03-06  Michael Meeks  <michael@server.home>
2182
2183         * configure.in: if we don't have kde-config, disable have_qt.
2184
2185 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
2186
2187         * dbus/Makefile.am:
2188         Add dbus-dict.[ch]
2189         
2190         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2191         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2192         (dbus_dict_remove), (dbus_dict_get_value_type),
2193         (dbus_dict_get_keys), (dbus_dict_put_boolean),
2194         (dbus_dict_put_int32), (dbus_dict_put_uint32),
2195         (dbus_dict_put_double), (dbus_dict_put_string),
2196         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2197         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2198         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2199         (dbus_dict_get_int32), (dbus_dict_get_uint32),
2200         (dbus_dict_get_double), (dbus_dict_get_string),
2201         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2202         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2203         (dbus_dict_get_string_array), (_dbus_dict_test):
2204         * dbus/dbus-dict.h:
2205         Add DBusDict implementation
2206         
2207         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2208         * dbus/dbus-test.h:
2209         Add _dbus_dict_test
2210         
2211 2003-03-04  Havoc Pennington  <hp@pobox.com>
2212
2213         * test/data/auth/*: adapt to changes
2214
2215         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2216         USERID_BASE64 and change USERNAME_BASE64 to put in username not
2217         userid
2218
2219         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2220         more stuff from being in a context name, to make the protocol 
2221         simpler to deal with
2222
2223         * dbus/dbus-errors.c (dbus_error_has_name): new function
2224         (dbus_error_is_set): new function
2225
2226         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth 
2227         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2228         
2229         * dbus/dbus-connection.c (dbus_connection_flush): also read
2230         messages during a flush operation
2231
2232         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2233
2234 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2235
2236         * configure.in: Check for gethostbyname on Solaris.
2237
2238         * dbus/dbus-transport.c: (_dbus_transport_open):
2239         Remove duplicate "tcp" entry.
2240         
2241         * doc/dbus-specification.sgml:
2242         Clarify some things.
2243         
2244 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2245
2246         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2247         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2248         (_dbus_keyring_test):
2249         * dbus/dbus-md5.c: (_dbus_md5_compute):
2250         * dbus/dbus-sha.c: (_dbus_sha_compute):
2251         Plug memory leaks.
2252
2253 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
2254
2255         * README: Add some things.
2256
2257 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
2258
2259         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2260         after case DBUS_TYPE_BOOELAN.
2261
2262 2003-03-02  Havoc Pennington  <hp@pobox.com>
2263
2264         * test/break-loader.c (randomly_set_extreme_ints): add test that
2265         sets really huge and small integers
2266
2267         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2268         that length of boolean array fits in the string, and that 
2269         string has room for boolean value in single-bool case.
2270
2271         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2272         optional value to "ALIGN" command which is what to fill the
2273         alignment with.
2274
2275         * test/data/valid-messages/no-padding.message: add regression
2276         test for the message padding problem
2277
2278 2003-03-02  Havoc Pennington  <hp@pobox.com>
2279
2280         * dbus/dbus-message.c (decode_header_data): fix to always init
2281         message_padding, from Benjamin Dauvergne
2282
2283 2003-03-02  Havoc Pennington  <hp@pobox.com>
2284
2285         * configure.in: 0.5
2286
2287         * NEWS: Update.
2288
2289 2003-03-01  Joe Shaw  <joe@assbarn.com>
2290
2291         * configure.in: Check for "struct cmsgcred" and try to access its
2292         members for BSD-like unices.
2293
2294         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2295         _dbus_read_credentials_unix_socket().
2296         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2297         read() for reading the credential byte off the unix socket.  Use
2298         struct cmsgcred on systems that support it.
2299
2300 2003-02-27  Alexander Larsson  <alexl@redhat.com>
2301
2302         * glib/Makefile.am: 
2303         * configure.in:
2304         Make gthreads-2.0 dependency optional. Don't build thread test if
2305         its not found.
2306
2307 2003-02-27  Havoc Pennington  <hp@pobox.com>
2308
2309         * dbus/dbus-connection.c
2310         (dbus_connection_send_message_with_reply_and_block): fix doh!
2311         doh! doh! bug that resulted in never removing a reply from the
2312         queue, no wonder we called get_reply_serial so much ;-)
2313         
2314         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2315         and client serial instead of demarshaling them every time
2316
2317 2003-02-27  Havoc Pennington  <hp@pobox.com>
2318
2319         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2320         more inlined, using dbus-string-private.h, speeds things up 
2321         substantially
2322
2323         * dbus/dbus-string.c (_dbus_string_free): apply align offset
2324         when freeing the string
2325         (_dbus_string_steal_data): fix for align offset
2326         (undo_alignment): new function
2327
2328 2003-02-26  Havoc Pennington  <hp@redhat.com>
2329
2330         All kinds of audit fixes from Owen, plus initial attempt to 
2331         handle unaligned memory returned from malloc.
2332         
2333         * dbus/dbus-string.c (_dbus_string_init): clamp max length to 
2334         leave room for align_offset and nul byte
2335         (fixup_alignment): function to track an align_offset and 
2336         ensure real->str is aligned
2337         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, 
2338         to allow a nul byte plus align offset
2339         (_dbus_string_lock): fix overflow issue
2340         (_dbus_string_init_const_len): add assertions on sanity of len, 
2341         assign allocated to be ALLOCATION_PADDING larger than len
2342         (set_length): fixup the overflow handling
2343         (_dbus_string_get_data_len): fix overflow in assertion
2344         (open_gap): detect overflow in size of gap to be opened
2345         (_dbus_string_lengthen): add overflow check
2346         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2347         (_dbus_string_append): add overflow check
2348         (_dbus_string_append_unichar): overflow
2349         (_dbus_string_delete): fix overflow in assertion
2350         (_dbus_string_copy_len): overflow in assertion
2351         (_dbus_string_replace_len): overflows in assertions
2352         (_dbus_string_find): change to implement in terms of 
2353         _dbus_string_find_to
2354         (_dbus_string_find_to): assorted fixage
2355         (_dbus_string_equal_c_str): assert c_str != NULL, 
2356         fix logic so the function works
2357         (_dbus_string_ends_with_c_str): fix overflow thingy
2358         (_dbus_string_base64_encode): overflow fix
2359         (_dbus_string_validate_ascii): overflow
2360         (_dbus_string_validate_nul): overflow
2361         
2362 2003-02-26  Havoc Pennington  <hp@redhat.com>
2363
2364         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2365
2366 2003-02-26  Alexander Larsson  <alexl@redhat.com>
2367
2368         * configure.in:
2369         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2370         
2371         * dbus/dbus-connection.c:
2372         * dbus/dbus-connection.h:
2373         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2374         Add dbus_connection_set_wakeup_main_function and use it when queueing
2375         incoming and outgoing messages.
2376         
2377         
2378         * dbus/dbus-dataslot.c:
2379         Threadsafe usage of DBusDataSlotAllocator
2380         
2381         * dbus/dbus-message.c: (dbus_message_get_args_iter):
2382         dbus_new can fail.
2383         
2384         * dbus/dbus-server-unix.c:
2385         Add todo comment
2386         
2387         * glib/dbus-gmain.c:
2388         Implement the new wakeup functions for glib.
2389         
2390         * glib/Makefile.am:
2391         * glib/test-thread-client.c: 
2392         * glib/test-thread-server.c: 
2393         * glib/test-thread.h:
2394         Initial cut at some thread test code. Not really done yet.
2395
2396 2003-02-26  Havoc Pennington  <hp@pobox.com>
2397
2398         * dbus/dbus-connection.c
2399         (dbus_connection_send_message_with_reply_and_block): fix crash
2400         where we ref'd the outgoing message instead of the returned reply
2401
2402         * dbus/dbus-transport-unix.c (do_authentication): check read watch
2403         at the end of this function, so if we didn't need to read for
2404         authentication, we reinstall it for receiving messages
2405
2406         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to 
2407         a NULL sender for peer-to-peer case
2408
2409         * dbus/dbus-transport-unix.c (check_read_watch): handle
2410         !authenticated case correctly
2411
2412         * glib/dbus-gmain.c: add support for DBusServer
2413
2414         * dbus/dbus-server.c: add data slot support
2415
2416         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2417         return values and handle errors
2418
2419         * dbus/dbus-dataslot.c: factor out the data slot stuff from
2420         DBusConnection
2421
2422         * Doxyfile.in (INPUT): add glib subdir
2423
2424         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename 
2425         setup_with_g_main instead of hookup_with_g_main; write docs
2426         
2427 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
2428
2429         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2430         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2431         * dbus/dbus-message.c: (dbus_message_append_boolean),
2432         (dbus_message_append_boolean_array),
2433         (dbus_message_get_args_valist), (_dbus_message_test):
2434         * dbus/dbus-message.h:
2435         * doc/dbus-specification.sgml:
2436         Various fixes as pointed out by Havoc.
2437         
2438         * test/data/invalid-messages/bad-boolean-array.message:
2439         * test/data/invalid-messages/bad-boolean.message:
2440         Add invalid boolean value test cases.
2441         
2442 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
2443
2444         * dbus/dbus-internals.c: (_dbus_type_to_string):
2445         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2446         (_dbus_marshal_validate_arg):
2447         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2448         * dbus/dbus-message.c: (dbus_message_append_args_valist),
2449         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2450         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2451         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2452         (dbus_message_iter_get_double),
2453         (dbus_message_iter_get_boolean_array), (message_iter_test):
2454         * dbus/dbus-message.h:
2455         * dbus/dbus-protocol.h:
2456         * doc/dbus-specification.sgml:
2457         * test/data/valid-messages/lots-of-arguments.message:
2458         Add support for boolean and boolean array types.
2459         
2460 2003-02-23  Havoc Pennington  <hp@pobox.com>
2461
2462         * dbus/dbus-keyring.c: finish most of this implementation and 
2463         simple unit test
2464
2465         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2466         these barf if the error isn't cleared to NULL
2467
2468         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2469         (_dbus_create_directory): new function
2470
2471         * dbus/dbus-errors.c (dbus_set_error): fix warning
2472
2473         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2474         (_dbus_string_hex_decode): new function
2475         (test_hex_roundtrip): test code
2476
2477         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2478
2479         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2480
2481         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use 
2482         the save-to-temp/rename trick to atomically write the new file
2483         (_dbus_string_parse_uint): new function
2484
2485 2003-02-22  Havoc Pennington  <hp@pobox.com>
2486
2487         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2488
2489 2003-02-22  Havoc Pennington  <hp@pobox.com>
2490
2491         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2492         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2493
2494         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2495
2496         * dbus/test/data/sha-1: add US government test suite for SHA-1
2497
2498 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2499
2500         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2501         Make string arrays NULL-terminated.
2502         
2503         * dbus/dbus-memory.c: (dbus_free_string_array):
2504         * dbus/dbus-memory.h:
2505         New function for freeing NULL-terminated string arrays.
2506         
2507         * dbus/dbus-message-builder.c: (append_quoted_string),
2508         (_dbus_message_data_load):
2509         Add support for array types.
2510         
2511         * dbus/dbus-message.c: (check_message_handling):
2512         Add more types as test cases.
2513         
2514         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2515         (_dbus_string_parse_double):
2516         Add the start offset to the end offset.
2517         
2518         * test/data/valid-messages/lots-of-arguments.message:
2519         New test message with lots of arguments.
2520         
2521 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2522
2523         * dbus/dbus-message.c: (dbus_message_append_nil),
2524         (dbus_message_append_int32), (dbus_message_append_uint32),
2525         (dbus_message_append_double), (dbus_message_append_string),
2526         (dbus_message_append_int32_array),
2527         (dbus_message_append_uint32_array),
2528         (dbus_message_append_double_array),
2529         (dbus_message_append_byte_array),
2530         (dbus_message_append_string_array):
2531         Fix all out-of-memory handling in these functions.
2532
2533 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2534
2535         * dbus/dbus-message.c: (dbus_message_append_nil):
2536         Fix a silly.
2537         
2538 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2539
2540         * dbus/dbus-message.c: (dbus_message_append_args_valist),
2541         (dbus_message_append_nil), (dbus_message_append_int32_array),
2542         (dbus_message_append_uint32_array),
2543         (dbus_message_append_double_array),
2544         (dbus_message_append_byte_array),
2545         (dbus_message_append_string_array), (dbus_message_get_args_valist),
2546         (dbus_message_iter_get_int32_array),
2547         (dbus_message_iter_get_uint32_array),
2548         (dbus_message_iter_get_double_array),
2549         (dbus_message_iter_get_byte_array),
2550         (dbus_message_iter_get_string_array):
2551
2552         * dbus/dbus-message.h:
2553         Add functions for appending and getting arrays.
2554         
2555 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
2556
2557         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2558         element size at least 8 bytes, fixes mempool tests on
2559         64-bit machines.
2560
2561 2003-02-20  Alexander Larsson  <alexl@redhat.com>
2562
2563         * dbus/dbus-transport-unix.c (unix_do_iteration):
2564         Unlock the connection mutex during a blocking select call.
2565         Add todo about how we need a way to wake up the select.
2566
2567         * dbus/dbus-connection-internal.h: 
2568         * dbus/dbus-connection.c:
2569         Add _dbus_connection_lock and _dbus_connection_unlock.
2570
2571 2003-02-19  Havoc Pennington  <hp@pobox.com>
2572
2573         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2574         Doxyfile.in, not Doxyfile
2575
2576         * dbus/dbus-keyring.c: do some hacking on this
2577
2578         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2579
2580         * dbus/dbus-errors.c (dbus_set_error_const): do not call
2581         dbus_error_init
2582         (dbus_set_error): remove dbus_error_init, check for message ==
2583         NULL *before* we sprintf into it, and add @todo about including 
2584         system headers in this file
2585
2586         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2587
2588         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2589
2590         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2591         get various bits of user information based on either username 
2592         or user ID
2593         (_dbus_homedir_from_username): new function
2594
2595 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
2596
2597         * configure.in:
2598         Add check for nonposix getpwnam_r
2599         
2600         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2601         Align the pool element size to a sizeof (void *) boundary.
2602         
2603         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2604         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2605         General Solaris fixes.
2606         
2607         * test/data/valid-messages/simplest-manual.message:
2608         Explicitly state that we want little-endian packing.
2609         
2610 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
2611
2612         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2613
2614         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): 
2615         Added to create a transport connecting using a tcp/ip socket.
2616
2617         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2618         to a tcp socket at given host and port.
2619         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2620         hostname and port.
2621
2622         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2623
2624         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): 
2625         Added to create a server listening on a TCP/IP socket.
2626
2627 2003-02-19  Havoc Pennington  <hp@pobox.com>
2628
2629         Throughout: mop up all the Doxygen warnings and undocumented
2630         stuff.
2631         
2632         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2633         to search any paths.
2634
2635         * dbus/dbus-threads.c: move global mutex initializers to
2636         dbus-internals.h, multiple prototypes was confusing doxygen
2637         besides being kind of ugly
2638
2639         * Doxyfile (PREDEFINED): have Doxygen define
2640         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from 
2641         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2642         (do not abuse the feature! it's for stuff like the autogenerated 
2643         macros in dbus-md5.c, not just for things you don't feel like 
2644         documenting...)
2645
2646 2003-02-18  Havoc Pennington  <hp@pobox.com>
2647
2648         * dbus/dbus-string.c (_dbus_string_zero): new function
2649
2650         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2651         wrap it in some dbus-friendly API
2652
2653         * dbus/dbus-types.h: add 16-bit types
2654
2655 2003-02-18  Joe Shaw  <joe@assbarn.com>
2656
2657         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2658         credentials from our currently running process.
2659         (get_word): Fix a buglet where we were copying the entire length
2660         instead of relative to our position.
2661
2662         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2663         keys on the stack... it's 640k of data.
2664
2665         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2666         read the credentials byte off the socket, even if we don't have
2667         SO_PEERCRED.
2668         (_dbus_poll): Implement poll() using select() for systems which
2669         don't have it.
2670
2671         * glib/test-dbus-glib.c (main): Print out an error if no
2672         parameters are given.
2673
2674         * test/data/auth/fallback.auth-script: Added.  Tests that a client
2675         can fallback to a secondary auth mechanism if the first fails.
2676
2677 2003-02-18  Havoc Pennington  <hp@pobox.com>
2678
2679         * AUTHORS: add Alex
2680
2681 2003-02-17  Havoc Pennington  <hp@pobox.com>
2682
2683         * doc/dbus-specification.sgml: lots of cosmetic
2684         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2685         env variable to DBUS_BUS_ADDRESS, s/client/application/,
2686         s/server/bus/ (except in authentication section). Add a section
2687         "Message Bus Message Routing"
2688
2689 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
2690
2691         Release 0.4
2692         
2693         * NEWS: Update
2694
2695 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2696
2697         * doc/dbus-specification.sgml:
2698         Specification updates.
2699         
2700 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2701
2702         * bus/activation.c: (bus_activation_init), (child_setup),
2703         (bus_activation_activate_service):
2704         * bus/activation.h:
2705         * bus/main.c: (main):
2706         Set DBUS_ADDRESS environment variable.
2707         
2708         * dbus/dbus-errors.c: (dbus_set_error):
2709         Don't use va_copy since that's a C99 feature.
2710         
2711         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2712         (_dbus_spawn_async):
2713         * dbus/dbus-sysdeps.h:
2714         Add child_setup_func to _dbus_spawn_async.
2715         
2716         * doc/dbus-specification.sgml:
2717         Update specification.
2718         
2719         * test/spawn-test.c: (setup_func), (main):
2720         Fix test.
2721         
2722 2003-02-17  Alexander Larsson  <alexl@redhat.com>
2723
2724         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
2725         Added todo.
2726
2727 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2728
2729         * doc/.cvsignore:
2730         * doc/Makefile.am:
2731         * doc/dbus-test-plan.sgml:
2732         Add test plan document.
2733         
2734         * test/Makefile.am:
2735         Fix distcheck.
2736         
2737 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
2738
2739         * dbus/dbus-message.c: (decode_header_data),
2740         (_dbus_message_loader_return_buffer):
2741         Set the header padding amount when loading a message.
2742
2743 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2744
2745         * bus/dispatch.c: (send_one_message):
2746         Only send broadcast messages to registered connections.
2747         
2748         * dbus/dbus-message.c: (dbus_message_name_is):
2749         * dbus/dbus-message.h:
2750         New convenience function.
2751         
2752         * dbus/dbus-transport-debug.c: (do_reading):
2753         Only dispatch one message per run.
2754
2755         * test/Makefile.am:
2756         * test/bus-test.c: (new_connection_callback), (die),
2757         (test_hello_client1_handler), (test_hello_client2_handler),
2758         (test_hello_replies), (main):
2759
2760         * test/bus-test-loop.[ch]:
2761         Add these.
2762         
2763 2003-02-16  Havoc Pennington  <hp@pobox.com>
2764
2765         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2766         backward conditional
2767
2768 2003-02-16  Alexander Larsson  <alexl@redhat.com>
2769
2770         * dbus/dbus-connection.c:
2771         Implement sent_message_with_reply. (with_reply_and block is still
2772         busted).
2773         Made dispatch_message not lose message if OOM.
2774         
2775         * dbus/dbus-errors.h:
2776         Add NoReply error (for reply timeouts).
2777
2778 2003-02-16  Alexander Larsson  <alexl@redhat.com>
2779
2780         * dbus/dbus-hash.c (_dbus_hash_table_unref):
2781         Actually free keys and values when destroying hashtable.
2782
2783 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2784
2785         * dbus/dbus-auth.c: (client_try_next_mechanism):
2786         Plug a leak.
2787         
2788         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
2789         Return TRUE if there's no thread implementation around.
2790         
2791         * glib/dbus-gmain.c: (free_source),
2792         (dbus_connection_hookup_with_g_main):
2793         Make sure to remove the GSource when the connection is finalized.
2794         
2795 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2796
2797         * bus/dispatch.c: (bus_dispatch_message_handler):
2798         * dbus/dbus-errors.h:
2799         Return an error if someone tries to send a message to a service
2800         that doesn't exist.
2801         
2802 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
2803
2804         * bus/activation.c: (load_directory), (bus_activation_init),
2805         (bus_activation_activate_service):
2806         * bus/activation.h:
2807         * bus/driver.c: 
2808         (bus_driver_handle_activate_service), (bus_driver_handle_message):
2809         More work on the activation handling.
2810         
2811         * dbus/dbus-errors.h:
2812         Add some error messages
2813         
2814         * dbus/dbus-message.c: (dbus_message_new_error_reply):
2815         * dbus/dbus-message.h:
2816         New function that creates an error message.
2817         
2818         * dbus/dbus-protocol.h:
2819         Add ACTIVATE_SERVER message.
2820         
2821         * dbus/dbus-server-unix.c: (unix_handle_watch),
2822         (_dbus_server_new_for_domain_socket):
2823         Call _dbus_fd_set_close_on_exec.
2824         
2825         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
2826         (_dbus_spawn_async), (_dbus_disable_sigpipe),
2827         (_dbus_fd_set_close_on_exec):
2828         * dbus/dbus-sysdeps.h:
2829         Add _dbus_fd_set_close_on exec function. Also add function that checks
2830         that all open fds are set to close-on-exec and warns otherwise.
2831         
2832         * dbus/dbus-transport-unix.c:
2833         (_dbus_transport_new_for_domain_socket):
2834         Call _dbus_fd_set_close_on_exec.
2835
2836 2003-02-16  Havoc Pennington  <hp@pobox.com>
2837
2838         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
2839         allow people to avoid setting SIGPIPE to SIG_IGN
2840         (_dbus_connection_new_for_transport): disable SIGPIPE unless 
2841         we've been asked not to
2842
2843 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2844
2845         * dbus/dbus-list.c: (_dbus_list_append_link),
2846         (_dbus_list_prepend_link):
2847         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
2848         (dbus_realloc):
2849         Warning fixes.
2850
2851 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2852
2853         * bus/Makefile.am:
2854         * bus/activation.c: (bus_activation_entry_free),
2855         (add_desktop_file_entry), (load_directory), (bus_activation_init):
2856         * bus/activation.h:
2857         * bus/main.c: (main):
2858         Add simple activation support, doesn't work yet though.
2859
2860 2003-02-15   Zack Rusin  <zack@kde.org>
2861
2862         * qt/dbus-qthread.cpp:  small casting fix
2863
2864 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2865
2866         * dbus/dbus-errors.c: (dbus_set_error):
2867         * dbus/dbus-errors.h:
2868         Add a few errors and make dbus_set_error void.
2869         
2870         * dbus/dbus-sysdeps.c: 
2871         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
2872         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
2873         * dbus/dbus-sysdeps.h:
2874         Add _dbus_spawn_async.
2875         
2876         * test/spawn-test.c: (main):
2877         Test for _dbus_spawn_async.
2878         
2879 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2880
2881         * dbus/dbus-internals.h:
2882         Fix build without tests.
2883         
2884         * dbus/dbus-list.c: (alloc_link):
2885         Fix a segfault when a malloc fails.
2886         
2887         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
2888         (dbus_malloc0), (dbus_realloc):
2889         Add support for malloc debugging.
2890
2891 2003-02-15  Alexander Larsson  <alexl@redhat.com>
2892
2893         * dbus/dbus-threads.c:
2894         * dbus/dbus-threads.h:
2895         Add condvars. Remove static mutext from API.
2896         Implement static mutexes by initializing them from threads_init.
2897         
2898         * glib/dbus-gthread.c:
2899         * qt/dbus-qthread.cpp:
2900         Update with the thread api changes.
2901
2902                 
2903         * dbus/dbus-list.c:
2904         * dbus/dbus-list.h:
2905         Turn StaticMutex into normal mutex + init function.
2906         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
2907         _dbus_list_append_link, _dbus_list_prepend_link
2908
2909
2910         * dbus/dbus-sysdeps.c: 
2911         * dbus/dbus-sysdeps.h:
2912         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
2913         _dbus_atomic_dec. Only slow fallback implementation at the moment.
2914         
2915         * dbus/dbus-protocol.h:
2916         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
2917         
2918         * dbus/dbus-message.c:
2919         Make ref/unref atomic.
2920         Fix some docs.
2921         
2922         * dbus/dbus-connection-internal.h:
2923         * dbus/dbus-connection.c:
2924         * dbus/dbus-connection.h:
2925         Make threadsafe.
2926         Change _peek to _borrow,_return & _steal_borrowed.
2927         Change disconnect callback to event.
2928         Make dbus_connection_dispatch_messages reentrant.
2929         
2930         * dbus/dbus-transport.c:
2931         Don't ref the connection on calls to the transport
2932         implementation.
2933         
2934         * dbus/dbus-message-handler.c:
2935         Make threadsafe.
2936         
2937         * glib/dbus-gmain.c:
2938         Don't use peek_message anymore
2939         
2940         * test/Makefile.am:
2941         * test/debug-thread.c:
2942         * test/debug-thread.h:
2943         Simple thread implementation that asserts() on deadlocks in
2944         single-threaded code.
2945         
2946         * test/bus-test.c:
2947         (main) Call debug_threads_init.
2948
2949         * test/watch.c:
2950         Use disconnect message instead of disconnect callback.
2951
2952         * bus/connection.c:
2953         * bus/connection.h:
2954         Don't call dbus_connection_set_disconnect_function. Instead export
2955         bus_connection_disconnect.
2956         
2957         * bus/dispatch.c:
2958         Call bus_connection_disconnect when we get a disconnected message.
2959         
2960 2003-02-15  Havoc Pennington  <hp@pobox.com>
2961
2962         * dbus/dbus-message.c (dbus_message_new): fool around with the
2963         docs
2964
2965 2003-02-14  Havoc Pennington  <hp@pobox.com>
2966
2967         * dbus/dbus-mempool.c: fail if the debug functions so indicate
2968
2969         * dbus/dbus-memory.c: fail if the debug functions indicate we
2970         should
2971
2972         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
2973         (_dbus_decrement_fail_alloc_counter): debug functions to 
2974         simulate memory allocation failures
2975
2976 2003-02-14  Havoc Pennington  <hp@pobox.com>
2977
2978         * dbus/dbus-errors.h (struct DBusError): add a word of padding 
2979         to DBusError
2980
2981 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2982
2983         * bus/driver.c: (bus_driver_handle_hello):
2984         * bus/driver.h:
2985         * bus/services.c: (bus_service_lookup):
2986         Reorder message sending so we get a more sane order.
2987         
2988         * test/bus-test.c: (message_handler):
2989         Fix tyop.
2990         
2991 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2992
2993         * bus/driver.c: (bus_driver_send_service_deleted),
2994         (bus_driver_send_service_created), (bus_driver_send_service_lost),
2995         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
2996         (bus_driver_send_welcome_message),
2997         (bus_driver_handle_list_services),
2998         (bus_driver_handle_acquire_service),
2999         (bus_driver_handle_service_exists):
3000         * dbus/dbus-bus.c: (dbus_bus_register_client),
3001         (dbus_bus_acquire_service), (dbus_bus_service_exists):
3002         * dbus/dbus-errors.c: (dbus_result_to_string):
3003         * dbus/dbus-errors.h:
3004         * dbus/dbus-message.c: (dbus_message_append_args),
3005         (dbus_message_append_args_valist), (dbus_message_get_args),
3006         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3007         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3008         (dbus_message_iter_get_byte_array),
3009         (dbus_message_iter_get_string_array), (message_iter_test),
3010         (check_message_handling), (_dbus_message_test):
3011         * dbus/dbus-message.h:
3012         * test/bus-test.c: (main):
3013         Change fields to arguments in messages, so that they won't be
3014         confused with header fields.
3015         
3016         * glib/test-dbus-glib.c: (main):
3017         Remove append_fields from hello message.
3018         
3019 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3020
3021         * dbus/dbus-errors.c:
3022         * dbus/dbus-message.c:
3023         * dbus/dbus-string.c:
3024         Documentation fixes.
3025
3026 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3027
3028         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3029         (remove_timeout):
3030         Implement support for timeouts in dbus-glib.
3031         
3032 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3033
3034         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3035         * dbus/dbus-message.c: (process_test_subdir):
3036         * test/break-loader.c: (find_breaks_based_on):
3037         Plug some memory leaks.
3038         
3039 2003-02-13  Richard Hult  <rhult@codefactory.se>
3040
3041         * bus/main.c: Fix build.
3042
3043         * dbus/dbus-errors.h: 
3044         * dbus/dbus-errors.c: Fix copyright for Anders.
3045
3046 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3047
3048         * bus/Makefile.am:
3049         Add utils.[ch]
3050         
3051         * bus/connection.c: (bus_connection_foreach):
3052         Fix a warning.
3053         
3054         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3055         (unescape_string), (new_section), (parse_section_start),
3056         (parse_key_value), (report_error), (bus_desktop_file_load),
3057         (bus_desktop_file_get_string):
3058         * bus/desktop-file.h:
3059         Use DBusError for error reporting.
3060         
3061         * bus/dispatch.c: (send_one_message),
3062         (bus_dispatch_message_handler):
3063         * bus/driver.c: (bus_driver_send_service_deleted),
3064         (bus_driver_send_service_created), (bus_driver_send_service_lost),
3065         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3066         (bus_driver_send_welcome_message),
3067         (bus_driver_handle_list_services),
3068         (bus_driver_handle_acquire_service),
3069         (bus_driver_handle_service_exists):
3070         * bus/loop.c: (bus_loop_run):
3071         * bus/main.c:
3072         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3073         
3074         * bus/utils.c: (bus_wait_for_memory):
3075         * bus/utils.h:
3076         New files with general utility functions.
3077         
3078         * dbus/dbus-internals.h:
3079         Remove _DBUS_HANDLE_OOM.
3080         
3081 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3082
3083         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3084         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3085         * dbus/dbus-errors.h:
3086         Add DBusError structure.
3087         
3088 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3089
3090         * test/data/valid-messages/standard-acquire-service.message:
3091         * test/data/valid-messages/standard-hello.message:
3092         * test/data/valid-messages/standard-list-services.message:
3093         * test/data/valid-messages/standard-service-exists.message:
3094         Add some standard messages.
3095         
3096 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3097
3098         * bus/driver.c: (bus_driver_send_welcome_message),
3099         (bus_driver_handle_list_services),
3100         (bus_driver_handle_acquire_service),
3101         (bus_driver_handle_service_exists), (bus_driver_handle_message):
3102         Update for API changes in libdbus.
3103         
3104         * dbus/dbus-message.c: (dbus_message_new_reply):
3105         * dbus/dbus-message.h:
3106         Remove the name argument. The spec states that replies shouldn't
3107         have a name.
3108
3109 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
3110
3111         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3112         (report_error), (bus_desktop_file_load), (lookup_section),
3113         (lookup_line), (bus_desktop_file_get_raw),
3114         (bus_desktop_file_get_string):
3115         * bus/desktop-file.h:
3116         Some fixes, and new functions for getting a key value from a section.
3117         
3118 2003-02-13  Havoc Pennington  <hp@pobox.com>
3119
3120         * test/data/auth/fail-after-n-attempts.auth-script: new test
3121
3122         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3123         reject the client.
3124
3125 2003-02-13  Havoc Pennington  <hp@pobox.com>
3126
3127         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3128         dbus_credentials_match were backward
3129
3130         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3131         NO_CREDENTIALS and ROOT_CREDENTIALS
3132
3133         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine 
3134         into here. Never process more commands after we've reached an 
3135         end state; store further data as unused bytes.
3136
3137         * test/data/auth/*: add more auth tests
3138         
3139         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3140         command to match exact string and EXPECT_UNUSED to match unused
3141         bytes
3142
3143         * test/Makefile.am (dist-hook): fix to dist all the test stuff
3144
3145 2003-02-12  Havoc Pennington  <hp@pobox.com>
3146
3147         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3148         \r off of popped lines
3149
3150         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3151         scripts
3152
3153         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3154         SEND, append \r\n
3155
3156 2003-02-12  Havoc Pennington  <hp@pobox.com>
3157
3158         * dbus/Makefile.am: remove break-loader from the build, since it
3159         moved.
3160
3161         * configure.in: add --enable-gcov to turn on coverage profiling
3162         flags and disable optimization
3163
3164 2003-02-10  Havoc Pennington  <hp@pobox.com>
3165
3166         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync 
3167         initial cut at test framework for DBusAuth from laptop.
3168         Doesn't quite work yet but it compiles and I need to get 
3169         it off the 266mhz laptop. ;-)
3170         
3171         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3172         fix a memleak in error case
3173
3174 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
3175
3176         * bus/Makefile.am:
3177         * bus/desktop-file.c:
3178         * bus/desktop-file.h:
3179         Add a desktop file parser.
3180
3181 2003-02-11  Zack Rusin  <zack@kde.org>
3182
3183         * qt/message.[h|cpp]: sample implementation
3184         of the KDE wrapper for DBusMessage
3185
3186 2003-02-09  Zack Rusin  <zack@kde.org>
3187
3188         * test/bus-test.c: make_it_compile
3189         * doc/dbus-specification.sgml: minimal semantic fix
3190
3191 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
3192
3193         Release 0.3
3194         
3195         * NEWS: Update
3196
3197 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
3198
3199         * dbus/Makefile.am:
3200         * dbus/dbus-break-loader.c:
3201         * test/Makefile.am:
3202         * test/break-loader.c:
3203         Move dbus-break-loader to test/ and rename it to break-loader.
3204
3205 2003-02-02  Havoc Pennington  <hp@pobox.com>
3206
3207         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files 
3208         for code to manage cookies in your home directory
3209
3210         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3211
3212         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3213         to authenticate, then disconnect the client.
3214
3215 2003-02-03  Alexander Larsson  <alexl@redhat.com>
3216
3217         * dbus/dbus-message.c (dbus_message_append_fields):
3218         Correct docs.
3219
3220 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3221
3222         * doc/dbus-specification.sgml:
3223         Update address format section.
3224         
3225 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3226
3227         * test/Makefile.am:
3228         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3229         (message_handler), (new_connection_callback), (loop_quit),
3230         (loop_run), (main):
3231         Add bus test.
3232         
3233 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3234
3235         * bus/driver.c: (bus_driver_handle_service_exists):
3236         Simplify the code a bit.
3237         
3238         * dbus/dbus-bus.c: (dbus_bus_service_exists):
3239         Fix a silly. 
3240         
3241 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3242
3243         * bus/Makefile.am:
3244         Add libdbus-daemon.la and link to it.
3245
3246 2003-02-01  James Willcox  <jwillcox@gnome.org>
3247
3248         * bus/driver.c: (bus_driver_handle_own_service):
3249         Actually include the service reply code in the message.
3250
3251 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3252
3253         * bus/driver.c: (bus_driver_handle_service_exists):
3254         Don't unref the incoming message.
3255         
3256 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3257
3258         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3259
3260 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
3261
3262         * dbus/dbus-server.c: (dbus_server_listen):
3263         * dbus/dbus-transport.c: (_dbus_transport_open):
3264         ifdef out the calls to the debug transport and server.
3265         
3266 2003-02-02  Alexander Larsson  <alexl@redhat.com>
3267
3268         * dbus/dbus-watch.c (dbus_watch_get_flags):
3269         Add note in the docs that ERROR or HANGUP won't be returned
3270         and are assumed always on.
3271
3272         * glib/dbus-gmain.c (add_watch):
3273         Always add IO_ERR | IO_HUP
3274
3275         * dbus/dbus-message.h:
3276         Add semicolon after dbus_message_iter_get_string_array().
3277         Makes qt code build again
3278
3279 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
3280
3281         * bus/driver.c: (create_unique_client_name),
3282         (bus_driver_handle_hello):
3283         Don't take a name, just use a numeric id to identify
3284         each client.
3285         
3286         * dbus/Makefile.am:
3287         * dbus/dbus-bus.c: (dbus_bus_register_client),
3288         (dbus_bus_acquire_service), (dbus_bus_service_exists):
3289         * dbus/dbus-bus.h:
3290         Add new convenience functions for communicating with the bus.
3291         
3292         * dbus/dbus-message.h:
3293         
3294         * dbus/dbus-protocol.h:
3295         Fix a typo.
3296         
3297 2003-02-01  Alexander Larsson  <alexl@redhat.com>
3298
3299         * dbus/dbus-message.c (dbus_message_append_fields):
3300         Add some more doc comments.
3301
3302 2003-02-01  Havoc Pennington  <hp@pobox.com>
3303
3304         * dbus/dbus-break-loader.c (randomly_modify_length): change 
3305         a 4-byte value in the message as if it were a length
3306
3307         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3308         execute bit on saved files
3309
3310 2003-02-01  Havoc Pennington  <hp@pobox.com>
3311
3312         * dbus/dbus-break-loader.c (main): new program to find messages
3313         that break the loader.
3314
3315         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3316         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3317
3318         * dbus/dbus-string.c (_dbus_string_set_byte): new
3319         
3320 2003-01-31  Havoc Pennington  <hp@pobox.com>
3321
3322         * dbus/dbus-message.c: refactor the test code to be more general, 
3323         in preparation for writing a "randomly permute test cases to 
3324         try to break the loader" program.
3325
3326 2003-01-31  Havoc Pennington  <hp@pobox.com>
3327         
3328         * doc/dbus-specification.sgml: work on the specification
3329
3330         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check 
3331         the protocol version of the message.
3332
3333         * dbus/dbus-protocol.h: drop special _REPLY names, the spec 
3334         no longer specifies that.
3335         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not 
3336         1/2/3/4)
3337
3338         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3339         "break" for DBUS_TYPE_NIL, remove @todo
3340
3341 2003-01-31  Havoc Pennington  <hp@pobox.com>
3342
3343         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename 
3344         just set_is_error/get_is_error as this is a commonly-used
3345         function, and write docs.
3346
3347 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
3348
3349         * dbus/dbus-address.c: (dbus_address_entry_free):
3350         Free key and value lists.
3351         
3352         * dbus/dbus-internals.c: (_dbus_type_to_string):
3353         Add the types we didn't have.
3354         
3355         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3356         (_dbus_marshal_validate_arg):
3357         Add NIL types.
3358         
3359         * dbus/dbus-message.c: (dbus_message_set_sender):
3360         Remove todo about being able to set sender to NULL.
3361         
3362         (dbus_message_set_is_error_reply),
3363         (dbus_message_get_is_error_reply):
3364         * dbus/dbus-message.h:
3365         New functions.
3366         
3367         * dbus/dbus-protocol.h:
3368         Add error reply flag.
3369         
3370         * test/data/valid-messages/opposite-endian.message:
3371         Add NIL type to test.
3372         
3373 2003-01-31  Havoc Pennington  <hp@pobox.com>
3374
3375         * doc/dbus-specification.sgml: fully specify the header.  Add
3376         flags and major protocol version, and change header/body len to
3377         unsigned.
3378
3379         * dbus/dbus-message-builder.c (append_saved_length): append length
3380         as uint32
3381
3382         * dbus/dbus-message.c (dbus_message_create_header): change header
3383         length and body length to unsigned. Add the new fields from the
3384         spec
3385         (_dbus_message_loader_return_buffer): unsigned header/body len
3386
3387 2003-01-30  Havoc Pennington  <hp@pobox.com>
3388
3389         * dbus/dbus-auth.c: rework to use only REJECTED, no 
3390         MECHANISMS
3391
3392         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just 
3393         use REJECTED, suggested by Mark McLoughlin
3394
3395 2003-01-30  Havoc Pennington  <hp@pobox.com>
3396
3397         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3398         a better way to report errors here. e.g.  "unix address lacks
3399         path" or something. also "no such file" when the path doesn't
3400         exist, etc.
3401
3402         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3403         leaking list nodes
3404         (dbus_parse_address): add @todo about documenting address format, 
3405         and allowing , and ; to be escaped
3406
3407 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
3408
3409         * dbus/Makefile.am:
3410         Add dbus-address.[ch]
3411         
3412         * dbus/dbus-address.c: (dbus_address_entry_free),
3413         (dbus_address_entries_free), (create_entry),
3414         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3415         (dbus_parse_address), (_dbus_address_test):
3416         * dbus/dbus-address.h:
3417         New files for dealing with address parsing.
3418         
3419         * dbus/dbus-connection.c:
3420         Document timeout functions.
3421         
3422         * dbus/dbus-message.c:
3423         Document dbus_message_new_from_message.
3424         
3425         * dbus/dbus-server-debug.c:
3426         Document.
3427         
3428         * dbus/dbus-server.c: (dbus_server_listen):
3429         Parse address and use correct server implementation.
3430         
3431         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3432         * dbus/dbus-string.h:
3433         New function with test.
3434         
3435         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3436         * dbus/dbus-test.h:
3437         Add address tests.
3438         
3439         * dbus/dbus-transport-debug.c:
3440         Document.
3441         
3442         * dbus/dbus-transport.c: (_dbus_transport_open):
3443         Parse address and use correct transport implementation. 
3444
3445 2003-01-30  Havoc Pennington  <hp@pobox.com>
3446
3447         * dbus/dbus-message.c: use message->byte_order instead of 
3448         DBUS_COMPILER_BYTE_ORDER throughout.
3449         (dbus_message_create_header): pad header to align the 
3450         start of the body of the message to 8-byte boundary
3451
3452         * dbus/dbus-marshal.h: make all the demarshalers take const 
3453         DBusString arguments.
3454
3455         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3456         validate message args here, so we don't have to do slow validation
3457         later, and so we catch bad messages as they are incoming. Also add
3458         better checks on header_len and body_len. Also fill in
3459         message->byte_order
3460
3461         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3462         implemented properly)
3463         (_dbus_string_validate_nul): new function to check all-nul
3464
3465         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename 
3466         get_arg_end_pos and remove all validation
3467         (_dbus_marshal_validate_arg): actually do validation here.
3468
3469 2003-01-29  Havoc Pennington  <hp@pobox.com>
3470
3471         * dbus/dbus-message.c (check_message_handling): fix assertion
3472         failure on set_client_serial
3473
3474 2003-01-28  Havoc Pennington  <hp@pobox.com>
3475
3476         * dbus/dbus-server-debug.c: Add doc section comments
3477         
3478         * dbus/dbus-transport-debug.c: add doc section comments
3479         
3480 2003-01-28  Havoc Pennington  <hp@redhat.com>
3481
3482         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3483         the reverse order from how I had it
3484         (_dbus_string_base64_encode): reverse encoding order. I was
3485         basically byteswapping everything during encoding.
3486
3487 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
3488
3489         * dbus/dbus-connection-internal.h:
3490         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3491         (_dbus_connection_remove_timeout):
3492         Add functions for adding and removing timeouts.
3493         
3494         * dbus/dbus-message.c: (dbus_message_new_from_message):
3495         Add new function that takes a message and creates an exact
3496         copy of it, but with the refcount set to 1.
3497         (check_message_handling):
3498         Fix build error.
3499         
3500         * dbus/dbus-server-protected.h:
3501         * dbus/dbus-server.c: (_dbus_server_init_base),
3502         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3503         (dbus_server_set_timeout_functions):
3504         (_dbus_server_remove_timeout):
3505         New functions so that a server can add and remove timeouts.
3506
3507         (dbus_server_listen):
3508         Add commented out call to dbus_server_debug_new.
3509
3510         * dbus/dbus-timeout.c: (_dbus_timeout_new):
3511         Actually set the handler, doh.
3512         
3513         * dbus/dbus-transport.c: (_dbus_transport_open):
3514         Add commented out call to dbus_transport_debug_client_new.
3515         
3516         * dbus/Makefile.am:
3517         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3518         
3519 2003-01-28  Havoc Pennington  <hp@pobox.com>
3520
3521         * dbus/dbus-message.c (check_message_handling): function to check 
3522         on the loaded message, iterates over it etc.
3523
3524 2003-01-28  Havoc Pennington  <hp@pobox.com>
3525
3526         * test/Makefile.am (dist-hook): fix make distdir
3527
3528         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3529
3530 2003-01-27  Havoc Pennington  <hp@pobox.com>
3531
3532         * dbus/dbus-mempool.c (time_for_size): replace printf with 
3533         _dbus_verbose
3534
3535         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3536         empty lines; fix the SAVE_LENGTH stuff to be
3537         START_LENGTH/END_LENGTH so it actually works; couple other 
3538         bugfixes
3539         
3540         * test/Makefile.am (dist-hook): add dist-hook for .message files
3541
3542         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3543         can be constant or locked.
3544         (_dbus_string_free): allow freeing a const string as
3545         documented/intended
3546
3547         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3548
3549         * dbus/dbus-test-main.c (main): take an argument which is the 
3550         directory containing test data
3551
3552         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3553         argument to this and load all the messages in test/data/
3554         checking that they can be loaded or not loaded as appropriate.
3555
3556 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
3557
3558         * bus/dispatch.c: (bus_dispatch_message_handler):
3559         Dispatch messages sent to services.
3560         
3561         * bus/driver.c: (bus_driver_send_service_deleted),
3562         (bus_driver_send_service_created), (bus_driver_send_service_lost),
3563         (bus_driver_send_service_acquired):
3564         Add helper functions for sending service related messages.
3565
3566         (bus_driver_send_welcome_message):
3567         Send HELLO_REPLY instead of WELCOME.
3568         
3569         (bus_driver_handle_list_services):
3570         Send LIST_SERVICES_REPLY instead of SERVICES.
3571         
3572         (bus_driver_handle_own_service),
3573         (bus_driver_handle_service_exists):
3574         New message handlers.
3575         
3576         (bus_driver_handle_message):
3577         Invoke new message handlers.
3578         
3579         (bus_driver_remove_connection):
3580         Don't remove any services here since that's done automatically
3581         by bus_service_remove_owner now.
3582         
3583         * bus/driver.h:
3584         New function signatures.
3585         
3586         * bus/services.c: (bus_service_add_owner):
3587         Send ServiceAcquired message if we're the only primary owner.
3588         
3589         (bus_service_remove_owner):
3590         Send ServiceAcquired/ServiceLost messages.
3591         
3592         (bus_service_set_prohibit_replacement),
3593         (bus_service_get_prohibit_replacement):
3594         Functions for setting prohibit replacement.
3595         
3596         (bus_service_has_owner):
3597         New function that checks if a connection is in the owner queue of 
3598         a certain service.
3599         
3600         * bus/services.h:
3601         Add new function signatures.
3602         
3603         * dbus/dbus-list.c: (_dbus_list_test):
3604         Add tests for _dbus_list_remove_last and traversing the list backwards.
3605         
3606         * dbus/dbus-list.h:
3607         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3608         go any further, so return NULL then.
3609         
3610         * dbus/dbus-protocol.h:
3611         Add new messages, service flags and service replies.
3612         
3613 2003-01-26  Havoc Pennington  <hp@pobox.com>
3614
3615         * dbus/dbus-message-builder.c: implement, completely untested.
3616
3617         * test/data/*: add data to be used in testing. 
3618         ".message" files are our simple loadable text format.
3619         ".message-raw" will be binary dumps of messages.
3620
3621         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3622
3623 2003-01-26  Havoc Pennington  <hp@pobox.com>
3624
3625         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3626
3627         * dbus/dbus-errors.c (dbus_result_to_string): add
3628         file errors
3629
3630         * dbus/dbus-message-builder.c: new file, will contain code to load
3631         up messages from files. Not implemented yet.
3632
3633 2003-01-26  Havoc Pennington  <hp@pobox.com>
3634
3635         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3636         the sender by setting to NULL
3637
3638 2003-01-26  Havoc Pennington  <hp@pobox.com>
3639
3640         The unit tests pass, but otherwise untested.  If it breaks, the
3641         tests should have been better. ;-)
3642         
3643         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3644         the connection.
3645
3646         * dbus/dbus-message.c: redo everything so we maintain 
3647         message->header as the only copy of the various fields.
3648         This avoids the possibility of out-of-memory in some cases,
3649         for example dbus_message_lock() can't run out of memory anymore,
3650         and avoids extra copying. Figured I may as well go ahead and do 
3651         this since it was busted for dbus_message_lock to not return 
3652         failure on OOM, and dbus_message_write_header was totally
3653         unchecked for OOM. Also fixed some random other bugs.
3654
3655         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3656         that strings are nul-terminated. Also, end_pos can be equal 
3657         to string length just not greater than, I think.
3658         (_dbus_marshal_set_int32): new function
3659         (_dbus_marshal_set_uint32): new function
3660         (_dbus_marshal_set_string): new function
3661
3662         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3663         a warning, init timeout_list to NULL
3664         (dbus_connection_send_message): don't use uninitialized variable
3665         "serial"
3666
3667         * dbus/dbus-string.c (_dbus_string_replace_len): new function
3668
3669 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
3670
3671         * bus/driver.c: (bus_driver_handle_hello),
3672         (bus_driver_send_welcome_message):
3673         Plug leaks
3674         
3675 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
3676
3677         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3678         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3679         (dbus_connection_unref):
3680         * dbus/dbus-marshal.c: (_dbus_marshal_test):
3681         * dbus/dbus-message.c: (dbus_message_unref),
3682         Plug memory leaks.
3683         
3684         (dbus_message_get_fields): 
3685         Remove debugging printout.
3686
3687         (_dbus_message_loader_return_buffer):
3688         Don't store the header string.
3689         
3690         (_dbus_message_test):
3691         Plug leaks.
3692
3693 2003-01-26  Richard Hult  <rhult@codefactory.se>
3694
3695         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3696         the file descriptor list, since it can change under us.
3697
3698 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3699
3700         * glib/dbus-gmain.c: (dbus_connection_prepare),
3701         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3702         (remove_watch), (dbus_connection_hookup_with_g_main):
3703         Rewrite the glib handling to use its own GSource instead of a 
3704         GIOChannel so we can catch messages put in the queue while waiting
3705         for a reply.
3706         
3707 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3708
3709         * bus/Makefile.am:
3710         * bus/connection.c: (connection_disconnect_handler),
3711         (connection_watch_callback), (bus_connection_setup):
3712         * bus/dispatch.c: (send_one_message),
3713         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3714         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
3715         * bus/dispatch.h:
3716         * bus/driver.c: (bus_driver_send_service_deleted),
3717         (bus_driver_send_service_created), (bus_driver_handle_hello),
3718         (bus_driver_send_welcome_message),
3719         (bus_driver_handle_list_services), (bus_driver_remove_connection),
3720         (bus_driver_handle_message):
3721         * bus/driver.h:
3722         Refactor code, put the message dispatching in its own file. Use 
3723         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
3724         is disconnected.
3725         
3726 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3727
3728         * dbus/dbus-internals.h:
3729         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
3730         
3731         * dbus/dbus-message.c: (dbus_message_get_sender):
3732         * dbus/dbus-message.h:
3733         Implement dbus_message_get_sender.
3734         
3735         * dbus/dbus-protocol.h:
3736         Add message and service defines.
3737         
3738 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3739
3740         * dbus/dbus-connection.c: (dbus_connection_send_message):
3741         * dbus/dbus-message-internal.h:
3742         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
3743         (dbus_message_write_header):
3744         Remove _dbus_messag_unlock and don't set the client serial on a 
3745         message if one already exists.
3746         
3747 2003-01-24  Havoc Pennington  <hp@pobox.com>
3748
3749         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
3750         list_pool
3751
3752         * bus/driver.c (bus_driver_handle_list_services): fix a leak 
3753         on OOM
3754
3755 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3756
3757         * dbus/dbus-list.c: (alloc_link), (free_link):
3758         Use a memory pool for the links.
3759         
3760 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3761
3762         * bus/connection.c: (bus_connection_foreach):
3763         * bus/connection.h:
3764         Add new bus_connection_foreach function.
3765         
3766         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
3767         Add function that broadcasts a message to all clients.
3768         
3769         (bus_driver_send_service_created), (bus_driver_handle_hello),
3770         (bus_driver_send_welcome_message),
3771         (bus_driver_handle_list_services), (bus_driver_message_handler):
3772         Implement functions that take care of listing services, and notifying
3773         clients when new services are created.
3774         
3775         * bus/services.c: (bus_services_list):
3776         * bus/services.h:
3777         Add new function that returns an array of strings with the currently
3778         registered services.
3779         
3780         * glib/dbus-glib.h:
3781         * glib/dbus-gmain.c:
3782         Update copyright year.
3783         
3784 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
3785
3786         * dbus/dbus-connection.c: (dbus_connection_send_message):
3787         Unlock the message in case it was sent earlier.
3788         
3789         (dbus_connection_send_message_with_reply_and_block):
3790         Remove the reply message from the list.
3791         
3792         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3793         Set array_len and new_pos correctly.
3794         
3795         (_dbus_marshal_test):
3796         Remove debug output.
3797         
3798         * dbus/dbus-message-internal.h:
3799         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
3800         New function that returns the reply serial.
3801         
3802         (_dbus_message_unlock):
3803         New function that unlocks a message and resets its header.
3804
3805         (dbus_message_append_string_array), 
3806         (dbus_message_get_fields_valist),
3807         (dbus_message_iter_get_field_type),
3808         (dbus_message_iter_get_string_array),   
3809         (dbus_message_get_fields),      
3810         (dbus_message_append_fields_valist):
3811         Handle string arrays.
3812         
3813         (dbus_message_set_sender):
3814         Make this function public since the bus daemon needs it.
3815         
3816         (decode_header_data):
3817         Set the reply serial to -1 initially.
3818
3819         * dbus/dbus-message.h:
3820         Add dbus_message_set_sender.    
3821
3822 2003-01-24  Havoc Pennington  <hp@pobox.com>
3823
3824         * doc/dbus-specification.sgml: add some stuff
3825
3826 2003-01-22  Havoc Pennington  <hp@pobox.com>
3827
3828         * doc/dbus-specification.sgml: Start to document the protocol.
3829
3830 2003-01-22  Havoc Pennington  <hp@pobox.com>
3831
3832         * dbus/dbus-connection.c
3833         (dbus_connection_send_message_with_reply_and_block): add some @todo
3834
3835         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
3836
3837 2003-01-21  Havoc Pennington  <hp@pobox.com>
3838
3839         (patch untested because can't compile)
3840         
3841         * bus/driver.c (create_unique_client_name): make this function
3842         never recycle client names. Also, caller should initialize 
3843         the DBusString.
3844
3845         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
3846
3847 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3848
3849         * dbus/dbus-marshal.c: (_dbus_marshal_double),
3850         (_dbus_marshal_int32), (_dbus_marshal_uint32),
3851         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
3852         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
3853         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3854         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3855         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
3856         * dbus/dbus-marshal.h:
3857         * dbus/dbus-protocol.h:
3858         Add support for marshalling and demarshalling integer, double
3859         and string arrays.
3860         
3861 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3862
3863         * bus/Makefile.am:
3864         Add driver.[ch]
3865         
3866         * bus/connection.c: (connection_disconnect_handler):
3867         Remove the connection from the bus driver's list.
3868         
3869         (connection_watch_callback): Dispatch messages.
3870
3871         (free_connection_data): Free connection name.
3872         
3873         (bus_connection_setup): Add connection to the bus driver's list.
3874         (bus_connection_remove_owned_service): 
3875         (bus_connection_set_name), (bus_connection_get_name):
3876         Add functions for setting and getting the connection's name.
3877         
3878         * bus/connection.h:
3879         Add function headers.
3880         
3881         * bus/driver.c: (create_unique_client_name),
3882         (bus_driver_handle_hello_message),
3883         (bus_driver_send_welcome_message), (bus_driver_message_handler),
3884         (bus_driver_add_connection), (bus_driver_remove_connection):
3885         * bus/driver.h:
3886         * bus/main.c:
3887         * bus/services.c: (bus_service_free):
3888         * bus/services.h:
3889         New file that handles communication and registreation with the bus
3890         itself. 
3891         
3892 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3893
3894         * dbus/dbus-connection.c: (dbus_connection_send_message):
3895         Add a new client_serial parameter.
3896         
3897         (dbus_connection_send_message_with_reply):
3898         Remove a @todo since we've implemented the blocking function.
3899         
3900         (dbus_connection_send_message_with_reply_and_block):
3901         New function that sends a message and waits for a reply and
3902         then returns the reply.
3903         
3904         * dbus/dbus-connection.h:
3905         Add new functions.
3906         
3907         * dbus/dbus-errors.c: (dbus_result_to_string):
3908         * dbus/dbus-errors.h:
3909         Add new DBUS_RESULT.
3910         
3911         * dbus/dbus-message-internal.h:
3912         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
3913         (_dbus_message_set_sender), (dbus_message_write_header),
3914         (dbus_message_new_reply), (decode_header_data),
3915         (_dbus_message_loader_return_buffer), (_dbus_message_test):
3916         * dbus/dbus-message.h:
3917         Add new functions that set the reply serial and sender.
3918         Also marshal and demarshal them correctly and add test.
3919         
3920         * dbus/dbus-protocol.h:
3921         Add new DBUS_MESSAGE_TYPE_SENDER.
3922         
3923         * glib/dbus-glib.h:
3924         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
3925         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
3926         (dbus_connection_hookup_with_g_main):
3927         * glib/test-dbus-glib.c: (main):
3928         Rewrite to use GIOChannel and remove the GSource crack.
3929         
3930         * test/echo-client.c: (main):
3931         * test/watch.c: (check_messages):
3932         Update for changed APIs
3933         
3934 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
3935
3936         * dbus/Makefile.am: Add dbus-timeout.[cħ]
3937         
3938         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
3939         Create a DBusTimeoutList.       
3940         (dbus_connection_set_timeout_functions): Add new function to
3941         set timeout callbacks
3942         
3943         * dbus/dbus-connection.h: Add public DBusTimeout API.
3944         
3945         * dbus/dbus-message.c: (dbus_message_get_service):
3946         * dbus/dbus-message.h:  New function.
3947
3948         * dbus/dbus-server.c: Fix small doc typo.
3949         
3950         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
3951
3952 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
3953
3954         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
3955         of the string, just as long as specified.
3956
3957 2003-01-19  Havoc Pennington  <hp@pobox.com>
3958
3959         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
3960         new function
3961
3962         * dbus/dbus-server.c (dbus_server_set_max_connections)
3963         (dbus_server_get_max_connections, dbus_server_get_n_connections):
3964         keep track of current number of connections, and add API for
3965         setting a max (but haven't implemented enforcing the max yet)
3966
3967 2003-01-18  Havoc Pennington  <hp@pobox.com>
3968
3969         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
3970         reading/writing if read_watch != NULL or write_watch != NULL.
3971
3972         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
3973         the message loader code to actually load message->header and
3974         message->body into the newly-created message.
3975
3976         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
3977         in OOM case
3978
3979         * dbus/dbus-connection.c (dbus_connection_set_max_message_size) 
3980         (dbus_connection_get_max_message_size) 
3981         (dbus_connection_set_max_live_messages_size) 
3982         (dbus_connection_get_max_live_messages_size): implement some
3983         resource limitation functions
3984
3985         * dbus/dbus-resources.c: new file implementing some of the
3986         resource limits stuff
3987
3988         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
3989         missing docs, add @todo to handle OOM etc.
3990
3991         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
3992         docs
3993         
3994 2003-01-18  Havoc Pennington  <hp@pobox.com>
3995
3996         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the 
3997         connection if it hasn't been already.
3998
3999         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4000         replace with DisconnectFunction.
4001
4002 2003-01-18  Havoc Pennington  <hp@pobox.com>
4003
4004         Building --disable-verbose-mode --disable-asserts --disable-tests
4005         cuts the library from 112K to 45K or so
4006         
4007         * configure.in: check for varargs macro support, 
4008         add --enable-verbose-mode, --enable-asserts. 
4009
4010         * dbus/dbus-internals.h (_dbus_assert): support
4011         DBUS_DISABLE_ASSERT
4012         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4013
4014 2003-01-18  Havoc Pennington  <hp@pobox.com>
4015
4016         * dbus/dbus-test.c: include config.h so that tests actually run
4017
4018         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4019         so the failure mode when that assumption fails will be plenty
4020         obvious.
4021
4022 2003-01-18  Havoc Pennington  <hp@pobox.com>
4023
4024         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4025
4026         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4027         the distribution
4028
4029         * test/Makefile.am: don't use special variable "TESTS" for echo-*
4030         since we don't want to use those in make check
4031
4032 2003-01-15  Havoc Pennington  <hp@redhat.com>
4033
4034         Release 0.2
4035         
4036         * NEWS: update
4037
4038 2003-01-15  Havoc Pennington  <hp@redhat.com>
4039
4040         * test/Makefile.am: fix so that test source code ends up in the
4041         distribution on make distcheck
4042
4043 2003-01-15  Havoc Pennington  <hp@redhat.com>
4044
4045         Release 0.1.
4046         
4047         * NEWS: update  
4048
4049 2003-01-15  Havoc Pennington  <hp@redhat.com>
4050
4051         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4052         fix build when --disable-tests
4053
4054         * Makefile.am (EXTRA_DIST): put HACKING in here
4055
4056         * HACKING: document procedure for making a tarball release.
4057
4058 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
4059
4060         * bus/connection.c: (connection_error_handler),
4061         (bus_connection_setup):
4062         * bus/main.c: (main):
4063         Make sure that the DBusConnectionData struct is NULLed
4064         out to prevent a segfault.
4065         
4066         * dbus/dbus-errors.c: (dbus_result_to_string):
4067         * dbus/dbus-errors.h:
4068         * dbus/dbus-message.c: (dbus_message_get_fields),
4069         (dbus_message_get_fields_valist), (_dbus_message_test):
4070         * dbus/dbus-message.h:
4071         Make dbus_message_get_fields return a result code so we can
4072         track invalid fields as well as oom.
4073         
4074 2003-01-11  Havoc Pennington  <hp@pobox.com>
4075
4076         * configure.in: change --enable-test/--enable-ansi action-if-given
4077         to enable_foo=$enableval instead of enable_foo=yes
4078
4079 2003-01-08  Havoc Pennington  <hp@pobox.com>
4080
4081         * dbus/dbus-string.c (_dbus_string_align_length): new function
4082
4083         * dbus/dbus-test-main.c: move main() for test app here
4084         * dbus/dbus-test.c
4085         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4086         symbol to run tests, because dbus-test isn't in the main 
4087         library
4088
4089         Code review nitpicks.
4090         
4091         * dbus/dbus-message.c (dbus_message_write_header): add newlines
4092         for people with narrow emacs ;-). Assert client_serial was filled
4093         in. Assert message->name != NULL.
4094         (dbus_message_append_fields): have "first_field_type" arg separate
4095         from va list, needed for C++ binding that also uses varargs IIRC
4096         and helps with type safety
4097         (dbus_message_new): add @todo about using DBusString to store
4098         service/name internally
4099         (dbus_message_new): don't leak ->service and ->name on OOM later
4100         in the function
4101         (dbus_message_unref): free the service name
4102         (dbus_message_get_fields): same change to varargs
4103         i.e. first_field_type
4104         (_dbus_message_loader_return_buffer): assert that the message data
4105         is aligned (if not it's a bug in our code). Put in verbose griping
4106         about why we set corrupted = TRUE.
4107         (decode_header_data): add FIXME that char* is evil.  Was going to
4108         add FIXME about evil locale-specific string.h strncmp, but just
4109         switched to wacky string-as-uint32 optimization. Move check for
4110         "no room for field name" above get_const_data_len() to avoid
4111         assertion failure in get_const_data_len if we have trailing 2
4112         bytes or the like. Check for service and name fields being
4113         provided twice. Don't leak service/name on error. Require field
4114         names to be aligned to 4 bytes.
4115
4116         * dbus/dbus-marshal.c: move byte swap stuff to header
4117         (_dbus_pack_int32): uscore-prefix
4118         (_dbus_unpack_int32): uscore-prefix
4119         (_dbus_unpack_uint32): export
4120         (_dbus_demarshal_string): add @todo complaining about use of
4121         memcpy()
4122         (_dbus_marshal_get_field_end_pos): add @todo about bad error
4123         handling allowing corrupt data to go unchecked
4124
4125 2003-01-08  Havoc Pennington  <hp@redhat.com>
4126
4127         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write 
4128         to the select() as needed for authentication. (should be using
4129         _dbus_poll() not select, but for another day)
4130
4131         * dbus/dbus.h: include dbus/dbus-protocol.h
4132
4133 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
4134
4135         * dbus/Makefile.am (dbusinclude_HEADERS): Install
4136         dbus-connection.h
4137
4138 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
4139
4140         * dbus/dbus-internals.c: (_dbus_type_to_string):
4141         New function that returns a string describing a type.
4142         
4143         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4144         * dbus/dbus-marshal.h:
4145         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4146         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4147         (dbus_message_iter_get_byte_array):
4148         * dbus/dbus-message.h:
4149         Add new convenience functions for appending and getting message fields.
4150         Also add demarshalling routines for byte arrays.
4151
4152 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4153
4154         * dbus/dbus-connection-internal.h:
4155         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4156         (_dbus_connection_get_next_client_serial),
4157         (dbus_connection_send_message):
4158         * dbus/dbus-internals.h:
4159         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4160         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4161         (_dbus_marshal_uint32), (_dbus_demarshal_double),
4162         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4163         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4164         (_dbus_verbose_bytes), (_dbus_marshal_test):
4165         * dbus/dbus-marshal.h:
4166         * dbus/dbus-message-internal.h:
4167         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4168         (dbus_message_write_header), (_dbus_message_lock),
4169         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4170         (dbus_message_get_name), (dbus_message_append_int32),
4171         (dbus_message_append_uint32), (dbus_message_append_double),
4172         (dbus_message_append_string), (dbus_message_append_byte_array),
4173         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4174         (dbus_message_iter_unref), (dbus_message_iter_has_next),
4175         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4176         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4177         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4178         (decode_header_data), (_dbus_message_loader_return_buffer),
4179         (message_iter_test), (_dbus_message_test):
4180         * dbus/dbus-message.h:
4181         * dbus/dbus-protocol.h:
4182         * dbus/dbus-test.c: (main):
4183         * dbus/dbus-test.h:
4184         * glib/test-dbus-glib.c: (message_handler), (main):
4185         * test/echo-client.c: (main):
4186         * test/watch.c: (check_messages):
4187         Make messages sendable and receivable for real.
4188         
4189 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4190
4191         * dbus/dbus-marshal.c: (_dbus_marshal_double),
4192         (_dbus_marshal_string), (_dbus_marshal_byte_array):
4193         * dbus/dbus-message.c: (dbus_message_append_int32),
4194         (dbus_message_append_uint32), (dbus_message_append_double),
4195         (dbus_message_append_string), (dbus_message_append_byte_array):
4196         Handle OOM restoration.
4197         
4198 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
4199
4200         * dbus/dbus-marshal.c: (_dbus_marshal_string),
4201         (_dbus_demarshal_string), (_dbus_marshal_test):
4202         * dbus/dbus-marshal.h:
4203         * dbus/dbus-message.c: (dbus_message_get_name),
4204         Document these functions.
4205         
4206         (dbus_message_append_int32), (dbus_message_append_uint32),
4207         (dbus_message_append_double), (dbus_message_append_string),
4208         (dbus_message_append_byte_array):
4209         * dbus/dbus-message.h:
4210         Add functions for adding message fields of different types.
4211         
4212         * dbus/dbus-protocol.h:
4213         Add the different types.
4214
4215 2003-01-05  Havoc Pennington  <hp@pobox.com>
4216
4217         * bus/connection.c: implement routines for handling connections,
4218         first thing is keeping a list of owned services on each connection
4219         and setting up watches etc.
4220
4221         * bus/services.c: implement a mapping from service names to lists
4222         of connections
4223
4224         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4225
4226         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4227         to use static mutexes for global data
4228
4229         * dbus/dbus-connection.c (dbus_connection_set_data): add new
4230         collection of functions to set/get application-specific data
4231         on the DBusConnection.
4232
4233 2003-01-04  Havoc Pennington  <hp@pobox.com>
4234
4235         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4236         (_dbus_poll): new function
4237
4238         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4239         copied from GLib
4240
4241         * bus/loop.c: initial code for the daemon main loop
4242
4243 2003-01-04  Havoc Pennington  <hp@pobox.com>
4244
4245         * test/watch.c (error_handler): make it safe if the error handler 
4246         is called multiple times (if we s/error handler/disconnect
4247         handler/ we should just guarantee it's called only once)
4248
4249         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4250         error handler on disconnect (it's quite possible we should
4251         just change the error handler to a "disconnect handler," I'm 
4252         not sure we have any other meaningful errors)
4253
4254         * configure.in: check for getpwnam_r
4255
4256         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4257         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4258         mechanism as in SASL spec, using socket credentials
4259
4260         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4261         (_dbus_send_credentials_unix_socket): new function
4262
4263         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4264         dbus_accept()
4265         (_dbus_write): only check errno if <0 returned
4266         (_dbus_write_two): ditto
4267
4268 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
4269
4270         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4271         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4272         (_dbus_marshal_test):
4273         * dbus/dbus-marshal.h:
4274         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4275         to _dbus_marshal_utf8_string. Also fix some tests.
4276         
4277 2002-12-28  Harri Porten  <porten@kde.org>
4278
4279         * configure.in: added check for C++ compiler and a very cheesy
4280         check for the Qt integration
4281
4282         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4283
4284         * qt/Makefile.am: added 
4285
4286         * qt/.cvsignore: added  
4287
4288         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4289         latter, added #ifdef QT_THREAD_SUPPORT guard.
4290
4291         * dbus/Makefile.am: added missing headers for make dist
4292
4293 2002-12-28  Kristian Rietveld  <kris@gtk.org>
4294
4295         * dbus/Makefile.am: fixup export-symbols-regex.
4296
4297 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
4298
4299         * acinclude.m4: Add this file and put the 
4300         PKG_CHECK_MODULE macro in it.
4301
4302 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
4303
4304         * dbus/dbus-marshal.c: (_dbus_marshal_string),
4305         (_dbus_demarshal_double), (_dbus_demarshal_int32),
4306         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4307         (_dbus_marshal_test):
4308         Make the demarshalling routines align the pos argument.
4309         Add string marshalling tests and fix the obvious bugs 
4310         discovered.
4311         
4312 2002-12-26  Havoc Pennington  <hp@pobox.com>
4313
4314         * dbus/dbus-auth.c: fixes fixes fixes
4315
4316         * dbus/dbus-transport-unix.c: wire up support for
4317         encoding/decoding data on the wire
4318
4319         * dbus/dbus-auth.c (_dbus_auth_encode_data) 
4320         (_dbus_auth_decode_data): append to target string 
4321         instead of nuking it.
4322
4323 2002-12-26  Havoc Pennington  <hp@pobox.com>
4324
4325         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4326         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4327         doh
4328
4329         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4330         avoid swap_bytes() overhead (ignoring possible assembly stuff for 
4331         now). Main point is because I wanted unpack_uint32 to implement
4332         _dbus_verbose_bytes
4333         (_dbus_verbose_bytes): new function
4334
4335         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4336
4337         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4338         mechanism to handle a corrupt message stream
4339         (_dbus_message_loader_new): fix preallocation to only prealloc, 
4340         not prelengthen
4341         
4342         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4343         (_dbus_string_test): enhance tests for copy/move and fix the
4344         functions
4345
4346         * dbus/dbus-transport-unix.c: Hold references in more places to 
4347         avoid reentrancy problems
4348
4349         * dbus/dbus-transport.c: ditto
4350
4351         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4352         leak reference count in no-message case
4353
4354         * test/watch.c (do_mainloop): handle adding/removing watches
4355         during iteration over the watches. Also, ref the connection/server
4356         stored on a watch, so we don't try to mangle a destroyed one.
4357
4358         * dbus/dbus-transport-unix.c (do_authentication): perform
4359         authentication
4360
4361         * dbus/dbus-auth.c (get_state): add a state
4362         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4363         (_dbus_auth_get_unused_bytes): append the unused bytes
4364         to the passed in string, rather than prepend
4365
4366         * dbus/dbus-transport.c (_dbus_transport_init_base): create 
4367         the auth conversation DBusAuth
4368
4369         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4370         (_dbus_transport_new_for_domain_socket): when creating a
4371         transport, pass in whether it's a client-side or server-side
4372         transport so we know which DBusAuth to create
4373
4374 2002-12-03  Havoc Pennington  <hp@pobox.com>
4375
4376         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4377         _after_ finalizing the derived members
4378         (unix_connection_set): unref watch if we fail to add it
4379
4380         * dbus/dbus-connection.c (dbus_connection_unref): delete the
4381         transport first, so that the connection owned by the 
4382         transport will be valid as the transport finalizes.
4383
4384         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4385         if necessary, and remove watches from the connection.
4386         
4387         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4388         
4389 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
4390
4391         * dbus/dbus-marshal.c: (_dbus_marshal_string),
4392         (_dbus_demarshal_double), (_dbus_demarshal_int32),
4393         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4394         (_dbus_marshal_test):
4395         * dbus/dbus-marshal.h:
4396         Add string marshal functions and have the demarshal functions
4397         return the new position.
4398         
4399 2002-12-25  Havoc Pennington  <hp@pobox.com>
4400
4401         * doc/dbus-sasl-profile.txt: docs on the authentication protocol, 
4402         it is a simple protocol that just maps directly to SASL.
4403
4404         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4405         initial implementation, not actually used yet.
4406         
4407         * dbus/dbus-string.c (_dbus_string_find): new function
4408         (_dbus_string_equal): new function
4409         (_dbus_string_base64_encode): new function
4410         (_dbus_string_base64_decode): new function
4411
4412 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
4413
4414         * dbus/Makefile.am:
4415         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4416         (_dbus_marshal_int32), (_dbus_marshal_uint32),
4417         (_dbus_demarshal_double), (_dbus_demarshal_int32),
4418         (_dbus_demarshal_uint32), (_dbus_marshal_test):
4419         * dbus/dbus-marshal.h:
4420         * dbus/dbus-protocol.h:
4421         * dbus/dbus-test.c: (main):
4422         * dbus/dbus-test.h:
4423         Add un-optimized marshalling/demarshalling routines.
4424         
4425 2002-12-25  Harri Porten  <porten@kde.org>
4426
4427         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4428
4429 2002-12-24  Zack Rusin  <zack@kde.org>
4430
4431         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4432         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4433         main loop stuff
4434
4435 2002-12-24  Havoc Pennington  <hp@pobox.com>
4436
4437         * glib/dbus-gthread.c: fix include
4438
4439         * glib/dbus-glib.h: rename DBusMessageHandler for now. 
4440         I think glib API needs to change, though, as you don't 
4441         want to use DBusMessageFunction, you want to use the 
4442         DBusMessageHandler object. Probably 
4443         dbus_connection_open_with_g_main_loop()
4444         and dbus_connection_setup_g_main_loop() or something like that
4445         (but think of better names...) that just create a connection 
4446         that has watch/timeout functions etc. already set up.
4447
4448         * dbus/dbus-connection.c
4449         (dbus_connection_send_message_with_reply): new function just to 
4450         show how the message handler helps us deal with replies.
4451
4452         * dbus/dbus-list.c (_dbus_list_remove_last): new function
4453
4454         * dbus/dbus-string.c (_dbus_string_test): free a string that
4455         wasn't
4456
4457         * dbus/dbus-hash.c: use memory pools for the hash entries
4458         (rebuild_table): be more paranoid about overflow, and 
4459         shrink table when we can
4460         (_dbus_hash_test): reduce number of sprintfs and write
4461         valid C89. Add tests for case where we grow and then 
4462         shrink the hash table.
4463
4464         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4465
4466         * dbus/dbus-connection.c (dbus_connection_register_handler) 
4467         (dbus_connection_unregister_handler): new functions
4468
4469         * dbus/dbus-message.c (dbus_message_get_name): new
4470
4471         * dbus/dbus-list.c: fix docs typo
4472
4473         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4474         an object representing a handler for messages.
4475
4476 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
4477
4478         * glib/dbus-glib.h:
4479         * glib/dbus-gthread.c: (dbus_gthread_init):
4480         Don't use the gdbus prefix for public functions.
4481         
4482 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
4483
4484         * Makefile.am:
4485         * configure.in:
4486         Add GLib checks and fixup .pc files
4487         
4488         * glib/Makefile.am:
4489         * glib/dbus-glib.h:
4490         * glib/dbus-gmain.c: (gdbus_connection_prepare),
4491         (gdbus_connection_check), (gdbus_connection_dispatch),
4492         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4493         (dbus_connection_gsource_new):
4494         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4495         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4496         * glib/test-dbus-glib.c: (message_handler), (main):
4497         Add GLib support.
4498         
4499 2002-12-15  Harri Porten  <porten@kde.org>
4500
4501         * autogen.sh: check for libtoolize before attempting to use it 
4502         
4503         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4504         struct.
4505         
4506         * .cvsignore: ignore more stamp files
4507
4508         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4509
4510         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4511         without make install.
4512
4513 2002-12-15  Havoc Pennington  <hp@pobox.com>
4514
4515         * dbus/dbus-threads.c: add thread stubs that a higher library
4516         layer can fill in. e.g. the GLib wrapper might fill them in with
4517         GThread stuff. We still need to use this thread API to
4518         thread-safe-ize the library.
4519
4520 2002-12-12  Havoc Pennington  <hp@pobox.com>
4521
4522         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4523         below new interfaces and include fewer system headers.
4524
4525         * dbus/dbus-sysdeps.c (_dbus_read): new function
4526         (_dbus_write): new function
4527         (_dbus_write_two): new function
4528         (_dbus_connect_unix_socket): new function
4529         (_dbus_listen_unix_socket): new function
4530
4531         * dbus/dbus-message-internal.h: change interfaces to use
4532         DBusString
4533
4534 2002-12-11  Havoc Pennington  <hp@pobox.com>
4535
4536         * dbus/dbus-types.h: add dbus_unichar
4537
4538         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4539
4540         * dbus/dbus-connection.c (dbus_connection_send_message): return
4541         TRUE on success
4542
4543         * dbus/dbus-transport.c: include dbus-watch.h   
4544
4545         * dbus/dbus-connection.c: include dbus-message-internal.h
4546
4547         * HACKING: add file with coding guidelines stuff.
4548
4549         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4550         handling here, for security purposes (as in vsftpd). Not actually
4551         using this class yet.
4552
4553         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4554         system/libc usage here, as in vsftpd, for ease of auditing (and
4555         should also simplify portability). Haven't actually moved all the
4556         system/libc usage into here yet.
4557         
4558 2002-11-25  Havoc Pennington  <hp@pobox.com>
4559
4560         * dbus/dbus-internals.c (_dbus_verbose): fix to not 
4561         always print the first verbose message.
4562
4563 2002-11-24  Havoc Pennington  <hp@pobox.com>
4564
4565         * test/echo-client.c, test/echo-server.c: cheesy test 
4566         clients.
4567         
4568         * configure.in (AC_CHECK_FUNCS): check for writev
4569
4570         * dbus/dbus-message.c (_dbus_message_get_network_data): new
4571         function
4572
4573         * dbus/dbus-list.c (_dbus_list_foreach): new function
4574
4575         * dbus/dbus-internals.c (_dbus_verbose): new function
4576
4577         * dbus/dbus-server.c, dbus/dbus-server.h: public object
4578         representing a server that listens for connections.
4579
4580         * dbus/.cvsignore: create
4581
4582         * dbus/dbus-errors.h, dbus/dbus-errors.c:
4583         public API for reporting errors
4584
4585         * dbus/dbus-connection.h, dbus/dbus-connection.c:
4586         public object representing a connection that 
4587         sends/receives messages. (Same object used for 
4588         both client and server.)
4589
4590         * dbus/dbus-transport.h, dbus/dbus-transport.c:
4591         Basic abstraction for different kinds of stream
4592         that we might read/write messages from.
4593
4594 2002-11-23  Havoc Pennington  <hp@pobox.com>
4595
4596         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN 
4597         _DBUS_INT_MAX
4598
4599         * dbus/dbus-test.c (main): add list test, and include 
4600         dbus-test.h as intended
4601
4602         * dbus/dbus-hash.c (_dbus_hash_table_remove_string) 
4603         (_dbus_hash_table_remove_int): return value indicates 
4604         whether the entry existed to remove
4605
4606         * dbus/dbus-list.c: add linked list utility class, 
4607         with docs and tests
4608
4609         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket 
4610         array sometimes.
4611
4612 2002-11-23  Havoc Pennington  <hp@pobox.com>
4613
4614         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4615         DBUS_END_DECLS to nothing, that should fix this once and for all
4616
4617         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4618
4619         * dbus/dbus-message.c, dbus/dbus-hash.c: 
4620         add some missing @brief
4621
4622 2002-11-23  Havoc Pennington  <hp@pobox.com>
4623
4624         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS 
4625         to avoid confusing Doxygen
4626
4627         * dbus/dbus-hash.c: @} not }@
4628
4629         * dbus/dbus-message.c (struct DBusMessage): split out 
4630         internals docs
4631
4632 2002-11-23  Havoc Pennington  <hp@pobox.com>
4633
4634         * configure.in: pile on more warning flags if using gcc
4635
4636         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have 
4637         to document static functions
4638
4639         * configure.in: add summary to end of configure so it 
4640         looks nice and attractive
4641
4642         * dbus/dbus-hash.c: finish implementation and write unit 
4643         tests and docs
4644
4645         * configure.in: add --enable-tests to enable unit tests
4646
4647         * dbus/dbus-test.c: test program to run unit tests 
4648         for all files in dbus/*, initially runs a test for 
4649         dbus-hash.c
4650         
4651         * dbus/dbus-internals.h: file to hold some internal utility stuff
4652
4653 2002-11-22  Havoc Pennington  <hp@redhat.com>
4654
4655         * dbus/dbus-hash.c: copy in Tcl hash table, not yet 
4656         "ported" away from Tcl
4657
4658         * dbus/dbus-types.h: header for types such as dbus_bool_t
4659
4660 2002-11-22  Havoc Pennington  <hp@redhat.com>
4661
4662         * dbus/dbus.h: fixups for doc warnings
4663
4664         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up 
4665         macros
4666         (QUIET): make it quiet so we can see warnings
4667
4668         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4669
4670 2002-11-22  Havoc Pennington  <hp@redhat.com>
4671
4672         * Makefile.am: include "Doxyfile" target in all-local
4673
4674         * configure.in: generate the Doxyfile
4675
4676         * Doxyfile.in: move Doxyfile here, so we can use 
4677         configure to generate a Doxyfile with the right 
4678         version number etc.
4679
4680 2002-11-22  Havoc Pennington  <hp@redhat.com>
4681
4682         * dbus/dbus-message.c: move inline docs into .c file
4683
4684         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4685         so all docs are under doc/
4686         (MAN_EXTENSION): generate man pages. Use extension 
4687         ".3dbus" which matches ".3qt" on my system, 
4688         I guess this is OK, I don't know really.
4689         (FILE_PATTERNS): look for .c files not .h, makes sense
4690         for plain C I think
4691
4692 2002-11-22  Havoc Pennington  <hp@pobox.com>
4693
4694         * Makefile.am (SUBDIRS): rename subdir "server" to "bus" 
4695         because any app can be a server, and any app can be a client, 
4696         the bus is a special kind of server.
4697
4698 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
4699
4700         * Doxyfile : adding. Still needs Makefile rules to be generated
4701         automatically (just run "doxygen" in the toplevel dir for now to
4702         generate docs)
4703         
4704         * dbus/dbus-message.h : Adding sample docs (javadoc since
4705         resembles gtk-doc a little more)
4706
4707         * dbus/dbus.h : Adding sample docs
4708
4709 2002-11-21  Havoc Pennington  <hp@redhat.com>
4710
4711         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION 
4712         so we can allow ourselves to include files directly, 
4713         instead of having to use dbus.h
4714
4715         * dbus/dbus.h: fill in
4716
4717         * dbus/dbus-message.h: sketch out a sample header file.
4718         Include griping if you include it directly instead of 
4719         via dbus.h
4720
4721         * dbus/dbus-macros.h: new file with macros for extern "C", 
4722         TRUE/FALSE, NULL, etc.
4723
4724         * doc/file-boilerplate.c: put include guards in here
4725
4726 2002-11-21  Havoc Pennington  <hp@redhat.com>
4727
4728         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
4729
4730         * COPYING: include the GPL as well, and license code 
4731         under both AFL and GPL.
4732
4733 2002-11-21  Havoc Pennington  <hp@redhat.com>
4734
4735         * acconfig.h: get rid of this
4736
4737         * autogen.sh (run_configure): add --no-configure option
4738
4739         * configure.in: remove AC_ARG_PROGRAM to make
4740         autoconf complain less. add AC_PREREQ. 
4741         add AC_DEFINE third arg.
4742         
4743 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
4744
4745         * doc/Makefile.am:
4746         Fix references so we can distcheck.
4747
4748 2002-11-21  Havoc Pennington  <hp@redhat.com>
4749
4750         * Initial module creation
4751