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