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