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