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