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