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