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