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