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