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