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