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