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