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