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