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