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