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