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