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