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