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