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