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