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