655afb0c53e3f6b507bce6120995341d54ed12be
[platform/upstream/dbus.git] / ChangeLog
1 2003-02-16  Havoc Pennington  <hp@pobox.com>
2
3         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4         backward conditional
5
6 2003-02-16  Alexander Larsson  <alexl@redhat.com>
7
8         * dbus/dbus-connection.c:
9         Implement sent_message_with_reply. (with_reply_and block is still
10         busted).
11         Made dispatch_message not lose message if OOM.
12         
13         * dbus/dbus-errors.h:
14         Add NoReply error (for reply timeouts).
15
16 2003-02-16  Alexander Larsson  <alexl@redhat.com>
17
18         * dbus/dbus-hash.c (_dbus_hash_table_unref):
19         Actually free keys and values when destroying hashtable.
20
21 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
22
23         * dbus/dbus-auth.c: (client_try_next_mechanism):
24         Plug a leak.
25         
26         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
27         Return TRUE if there's no thread implementation around.
28         
29         * glib/dbus-gmain.c: (free_source),
30         (dbus_connection_hookup_with_g_main):
31         Make sure to remove the GSource when the connection is finalized.
32         
33 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
34
35         * bus/dispatch.c: (bus_dispatch_message_handler):
36         * dbus/dbus-errors.h:
37         Return an error if someone tries to send a message to a service
38         that doesn't exist.
39         
40 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
41
42         * bus/activation.c: (load_directory), (bus_activation_init),
43         (bus_activation_activate_service):
44         * bus/activation.h:
45         * bus/driver.c: 
46         (bus_driver_handle_activate_service), (bus_driver_handle_message):
47         More work on the activation handling.
48         
49         * dbus/dbus-errors.h:
50         Add some error messages
51         
52         * dbus/dbus-message.c: (dbus_message_new_error_reply):
53         * dbus/dbus-message.h:
54         New function that creates an error message.
55         
56         * dbus/dbus-protocol.h:
57         Add ACTIVATE_SERVER message.
58         
59         * dbus/dbus-server-unix.c: (unix_handle_watch),
60         (_dbus_server_new_for_domain_socket):
61         Call _dbus_fd_set_close_on_exec.
62         
63         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
64         (_dbus_spawn_async), (_dbus_disable_sigpipe),
65         (_dbus_fd_set_close_on_exec):
66         * dbus/dbus-sysdeps.h:
67         Add _dbus_fd_set_close_on exec function. Also add function that checks
68         that all open fds are set to close-on-exec and warns otherwise.
69         
70         * dbus/dbus-transport-unix.c:
71         (_dbus_transport_new_for_domain_socket):
72         Call _dbus_fd_set_close_on_exec.
73
74 2003-02-16  Havoc Pennington  <hp@pobox.com>
75
76         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
77         allow people to avoid setting SIGPIPE to SIG_IGN
78         (_dbus_connection_new_for_transport): disable SIGPIPE unless 
79         we've been asked not to
80
81 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
82
83         * dbus/dbus-list.c: (_dbus_list_append_link),
84         (_dbus_list_prepend_link):
85         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
86         (dbus_realloc):
87         Warning fixes.
88
89 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
90
91         * bus/Makefile.am:
92         * bus/activation.c: (bus_activation_entry_free),
93         (add_desktop_file_entry), (load_directory), (bus_activation_init):
94         * bus/activation.h:
95         * bus/main.c: (main):
96         Add simple activation support, doesn't work yet though.
97
98 2003-02-15   Zack Rusin  <zack@kde.org>
99
100         * qt/dbus-qthread.cpp:  small casting fix
101
102 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
103
104         * dbus/dbus-errors.c: (dbus_set_error):
105         * dbus/dbus-errors.h:
106         Add a few errors and make dbus_set_error void.
107         
108         * dbus/dbus-sysdeps.c: 
109         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
110         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
111         * dbus/dbus-sysdeps.h:
112         Add _dbus_spawn_async.
113         
114         * test/spawn-test.c: (main):
115         Test for _dbus_spawn_async.
116         
117 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
118
119         * dbus/dbus-internals.h:
120         Fix build without tests.
121         
122         * dbus/dbus-list.c: (alloc_link):
123         Fix a segfault when a malloc fails.
124         
125         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
126         (dbus_malloc0), (dbus_realloc):
127         Add support for malloc debugging.
128
129 2003-02-15  Alexander Larsson  <alexl@redhat.com>
130
131         * dbus/dbus-threads.c:
132         * dbus/dbus-threads.h:
133         Add condvars. Remove static mutext from API.
134         Implement static mutexes by initializing them from threads_init.
135         
136         * glib/dbus-gthread.c:
137         * qt/dbus-qthread.cpp:
138         Update with the thread api changes.
139
140                 
141         * dbus/dbus-list.c:
142         * dbus/dbus-list.h:
143         Turn StaticMutex into normal mutex + init function.
144         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
145         _dbus_list_append_link, _dbus_list_prepend_link
146
147
148         * dbus/dbus-sysdeps.c: 
149         * dbus/dbus-sysdeps.h:
150         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
151         _dbus_atomic_dec. Only slow fallback implementation at the moment.
152         
153         * dbus/dbus-protocol.h:
154         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
155         
156         * dbus/dbus-message.c:
157         Make ref/unref atomic.
158         Fix some docs.
159         
160         * dbus/dbus-connection-internal.h:
161         * dbus/dbus-connection.c:
162         * dbus/dbus-connection.h:
163         Make threadsafe.
164         Change _peek to _borrow,_return & _steal_borrowed.
165         Change disconnect callback to event.
166         Make dbus_connection_dispatch_messages reentrant.
167         
168         * dbus/dbus-transport.c:
169         Don't ref the connection on calls to the transport
170         implementation.
171         
172         * dbus/dbus-message-handler.c:
173         Make threadsafe.
174         
175         * glib/dbus-gmain.c:
176         Don't use peek_message anymore
177         
178         * test/Makefile.am:
179         * test/debug-thread.c:
180         * test/debug-thread.h:
181         Simple thread implementation that asserts() on deadlocks in
182         single-threaded code.
183         
184         * test/bus-test.c:
185         (main) Call debug_threads_init.
186
187         * test/watch.c:
188         Use disconnect message instead of disconnect callback.
189
190         * bus/connection.c:
191         * bus/connection.h:
192         Don't call dbus_connection_set_disconnect_function. Instead export
193         bus_connection_disconnect.
194         
195         * bus/dispatch.c:
196         Call bus_connection_disconnect when we get a disconnected message.
197         
198 2003-02-15  Havoc Pennington  <hp@pobox.com>
199
200         * dbus/dbus-message.c (dbus_message_new): fool around with the
201         docs
202
203 2003-02-14  Havoc Pennington  <hp@pobox.com>
204
205         * dbus/dbus-mempool.c: fail if the debug functions so indicate
206
207         * dbus/dbus-memory.c: fail if the debug functions indicate we
208         should
209
210         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
211         (_dbus_decrement_fail_alloc_counter): debug functions to 
212         simulate memory allocation failures
213
214 2003-02-14  Havoc Pennington  <hp@pobox.com>
215
216         * dbus/dbus-errors.h (struct DBusError): add a word of padding 
217         to DBusError
218
219 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
220
221         * bus/driver.c: (bus_driver_handle_hello):
222         * bus/driver.h:
223         * bus/services.c: (bus_service_lookup):
224         Reorder message sending so we get a more sane order.
225         
226         * test/bus-test.c: (message_handler):
227         Fix tyop.
228         
229 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
230
231         * bus/driver.c: (bus_driver_send_service_deleted),
232         (bus_driver_send_service_created), (bus_driver_send_service_lost),
233         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
234         (bus_driver_send_welcome_message),
235         (bus_driver_handle_list_services),
236         (bus_driver_handle_acquire_service),
237         (bus_driver_handle_service_exists):
238         * dbus/dbus-bus.c: (dbus_bus_register_client),
239         (dbus_bus_acquire_service), (dbus_bus_service_exists):
240         * dbus/dbus-errors.c: (dbus_result_to_string):
241         * dbus/dbus-errors.h:
242         * dbus/dbus-message.c: (dbus_message_append_args),
243         (dbus_message_append_args_valist), (dbus_message_get_args),
244         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
245         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
246         (dbus_message_iter_get_byte_array),
247         (dbus_message_iter_get_string_array), (message_iter_test),
248         (check_message_handling), (_dbus_message_test):
249         * dbus/dbus-message.h:
250         * test/bus-test.c: (main):
251         Change fields to arguments in messages, so that they won't be
252         confused with header fields.
253         
254         * glib/test-dbus-glib.c: (main):
255         Remove append_fields from hello message.
256         
257 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
258
259         * dbus/dbus-errors.c:
260         * dbus/dbus-message.c:
261         * dbus/dbus-string.c:
262         Documentation fixes.
263
264 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
265
266         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
267         (remove_timeout):
268         Implement support for timeouts in dbus-glib.
269         
270 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
271
272         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
273         * dbus/dbus-message.c: (process_test_subdir):
274         * test/break-loader.c: (find_breaks_based_on):
275         Plug some memory leaks.
276         
277 2003-02-13  Richard Hult  <rhult@codefactory.se>
278
279         * bus/main.c: Fix build.
280
281         * dbus/dbus-errors.h: 
282         * dbus/dbus-errors.c: Fix copyright for Anders.
283
284 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
285
286         * bus/Makefile.am:
287         Add utils.[ch]
288         
289         * bus/connection.c: (bus_connection_foreach):
290         Fix a warning.
291         
292         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
293         (unescape_string), (new_section), (parse_section_start),
294         (parse_key_value), (report_error), (bus_desktop_file_load),
295         (bus_desktop_file_get_string):
296         * bus/desktop-file.h:
297         Use DBusError for error reporting.
298         
299         * bus/dispatch.c: (send_one_message),
300         (bus_dispatch_message_handler):
301         * bus/driver.c: (bus_driver_send_service_deleted),
302         (bus_driver_send_service_created), (bus_driver_send_service_lost),
303         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
304         (bus_driver_send_welcome_message),
305         (bus_driver_handle_list_services),
306         (bus_driver_handle_acquire_service),
307         (bus_driver_handle_service_exists):
308         * bus/loop.c: (bus_loop_run):
309         * bus/main.c:
310         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
311         
312         * bus/utils.c: (bus_wait_for_memory):
313         * bus/utils.h:
314         New files with general utility functions.
315         
316         * dbus/dbus-internals.h:
317         Remove _DBUS_HANDLE_OOM.
318         
319 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
320
321         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
322         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
323         * dbus/dbus-errors.h:
324         Add DBusError structure.
325         
326 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
327
328         * test/data/valid-messages/standard-acquire-service.message:
329         * test/data/valid-messages/standard-hello.message:
330         * test/data/valid-messages/standard-list-services.message:
331         * test/data/valid-messages/standard-service-exists.message:
332         Add some standard messages.
333         
334 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
335
336         * bus/driver.c: (bus_driver_send_welcome_message),
337         (bus_driver_handle_list_services),
338         (bus_driver_handle_acquire_service),
339         (bus_driver_handle_service_exists), (bus_driver_handle_message):
340         Update for API changes in libdbus.
341         
342         * dbus/dbus-message.c: (dbus_message_new_reply):
343         * dbus/dbus-message.h:
344         Remove the name argument. The spec states that replies shouldn't
345         have a name.
346
347 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
348
349         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
350         (report_error), (bus_desktop_file_load), (lookup_section),
351         (lookup_line), (bus_desktop_file_get_raw),
352         (bus_desktop_file_get_string):
353         * bus/desktop-file.h:
354         Some fixes, and new functions for getting a key value from a section.
355         
356 2003-02-13  Havoc Pennington  <hp@pobox.com>
357
358         * test/data/auth/fail-after-n-attempts.auth-script: new test
359
360         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
361         reject the client.
362
363 2003-02-13  Havoc Pennington  <hp@pobox.com>
364
365         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
366         dbus_credentials_match were backward
367
368         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
369         NO_CREDENTIALS and ROOT_CREDENTIALS
370
371         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine 
372         into here. Never process more commands after we've reached an 
373         end state; store further data as unused bytes.
374
375         * test/data/auth/*: add more auth tests
376         
377         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
378         command to match exact string and EXPECT_UNUSED to match unused
379         bytes
380
381         * test/Makefile.am (dist-hook): fix to dist all the test stuff
382
383 2003-02-12  Havoc Pennington  <hp@pobox.com>
384
385         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
386         \r off of popped lines
387
388         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
389         scripts
390
391         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
392         SEND, append \r\n
393
394 2003-02-12  Havoc Pennington  <hp@pobox.com>
395
396         * dbus/Makefile.am: remove break-loader from the build, since it
397         moved.
398
399         * configure.in: add --enable-gcov to turn on coverage profiling
400         flags and disable optimization
401
402 2003-02-10  Havoc Pennington  <hp@pobox.com>
403
404         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync 
405         initial cut at test framework for DBusAuth from laptop.
406         Doesn't quite work yet but it compiles and I need to get 
407         it off the 266mhz laptop. ;-)
408         
409         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
410         fix a memleak in error case
411
412 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
413
414         * bus/Makefile.am:
415         * bus/desktop-file.c:
416         * bus/desktop-file.h:
417         Add a desktop file parser.
418
419 2003-02-11  Zack Rusin  <zack@kde.org>
420
421         * qt/message.[h|cpp]: sample implementation
422         of the KDE wrapper for DBusMessage
423
424 2003-02-09  Zack Rusin  <zack@kde.org>
425
426         * test/bus-test.c: make_it_compile
427         * doc/dbus-specification.sgml: minimal semantic fix
428
429 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
430
431         Release 0.3
432         
433         * NEWS: Update
434
435 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
436
437         * dbus/Makefile.am:
438         * dbus/dbus-break-loader.c:
439         * test/Makefile.am:
440         * test/break-loader.c:
441         Move dbus-break-loader to test/ and rename it to break-loader.
442
443 2003-02-02  Havoc Pennington  <hp@pobox.com>
444
445         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files 
446         for code to manage cookies in your home directory
447
448         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
449
450         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
451         to authenticate, then disconnect the client.
452
453 2003-02-03  Alexander Larsson  <alexl@redhat.com>
454
455         * dbus/dbus-message.c (dbus_message_append_fields):
456         Correct docs.
457
458 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
459
460         * doc/dbus-specification.sgml:
461         Update address format section.
462         
463 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
464
465         * test/Makefile.am:
466         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
467         (message_handler), (new_connection_callback), (loop_quit),
468         (loop_run), (main):
469         Add bus test.
470         
471 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
472
473         * bus/driver.c: (bus_driver_handle_service_exists):
474         Simplify the code a bit.
475         
476         * dbus/dbus-bus.c: (dbus_bus_service_exists):
477         Fix a silly. 
478         
479 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
480
481         * bus/Makefile.am:
482         Add libdbus-daemon.la and link to it.
483
484 2003-02-01  James Willcox  <jwillcox@gnome.org>
485
486         * bus/driver.c: (bus_driver_handle_own_service):
487         Actually include the service reply code in the message.
488
489 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
490
491         * bus/driver.c: (bus_driver_handle_service_exists):
492         Don't unref the incoming message.
493         
494 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
495
496         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
497
498 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
499
500         * dbus/dbus-server.c: (dbus_server_listen):
501         * dbus/dbus-transport.c: (_dbus_transport_open):
502         ifdef out the calls to the debug transport and server.
503         
504 2003-02-02  Alexander Larsson  <alexl@redhat.com>
505
506         * dbus/dbus-watch.c (dbus_watch_get_flags):
507         Add note in the docs that ERROR or HANGUP won't be returned
508         and are assumed always on.
509
510         * glib/dbus-gmain.c (add_watch):
511         Always add IO_ERR | IO_HUP
512
513         * dbus/dbus-message.h:
514         Add semicolon after dbus_message_iter_get_string_array().
515         Makes qt code build again
516
517 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
518
519         * bus/driver.c: (create_unique_client_name),
520         (bus_driver_handle_hello):
521         Don't take a name, just use a numeric id to identify
522         each client.
523         
524         * dbus/Makefile.am:
525         * dbus/dbus-bus.c: (dbus_bus_register_client),
526         (dbus_bus_acquire_service), (dbus_bus_service_exists):
527         * dbus/dbus-bus.h:
528         Add new convenience functions for communicating with the bus.
529         
530         * dbus/dbus-message.h:
531         
532         * dbus/dbus-protocol.h:
533         Fix a typo.
534         
535 2003-02-01  Alexander Larsson  <alexl@redhat.com>
536
537         * dbus/dbus-message.c (dbus_message_append_fields):
538         Add some more doc comments.
539
540 2003-02-01  Havoc Pennington  <hp@pobox.com>
541
542         * dbus/dbus-break-loader.c (randomly_modify_length): change 
543         a 4-byte value in the message as if it were a length
544
545         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
546         execute bit on saved files
547
548 2003-02-01  Havoc Pennington  <hp@pobox.com>
549
550         * dbus/dbus-break-loader.c (main): new program to find messages
551         that break the loader.
552
553         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
554         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
555
556         * dbus/dbus-string.c (_dbus_string_set_byte): new
557         
558 2003-01-31  Havoc Pennington  <hp@pobox.com>
559
560         * dbus/dbus-message.c: refactor the test code to be more general, 
561         in preparation for writing a "randomly permute test cases to 
562         try to break the loader" program.
563
564 2003-01-31  Havoc Pennington  <hp@pobox.com>
565         
566         * doc/dbus-specification.sgml: work on the specification
567
568         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check 
569         the protocol version of the message.
570
571         * dbus/dbus-protocol.h: drop special _REPLY names, the spec 
572         no longer specifies that.
573         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not 
574         1/2/3/4)
575
576         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
577         "break" for DBUS_TYPE_NIL, remove @todo
578
579 2003-01-31  Havoc Pennington  <hp@pobox.com>
580
581         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename 
582         just set_is_error/get_is_error as this is a commonly-used
583         function, and write docs.
584
585 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
586
587         * dbus/dbus-address.c: (dbus_address_entry_free):
588         Free key and value lists.
589         
590         * dbus/dbus-internals.c: (_dbus_type_to_string):
591         Add the types we didn't have.
592         
593         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
594         (_dbus_marshal_validate_arg):
595         Add NIL types.
596         
597         * dbus/dbus-message.c: (dbus_message_set_sender):
598         Remove todo about being able to set sender to NULL.
599         
600         (dbus_message_set_is_error_reply),
601         (dbus_message_get_is_error_reply):
602         * dbus/dbus-message.h:
603         New functions.
604         
605         * dbus/dbus-protocol.h:
606         Add error reply flag.
607         
608         * test/data/valid-messages/opposite-endian.message:
609         Add NIL type to test.
610         
611 2003-01-31  Havoc Pennington  <hp@pobox.com>
612
613         * doc/dbus-specification.sgml: fully specify the header.  Add
614         flags and major protocol version, and change header/body len to
615         unsigned.
616
617         * dbus/dbus-message-builder.c (append_saved_length): append length
618         as uint32
619
620         * dbus/dbus-message.c (dbus_message_create_header): change header
621         length and body length to unsigned. Add the new fields from the
622         spec
623         (_dbus_message_loader_return_buffer): unsigned header/body len
624
625 2003-01-30  Havoc Pennington  <hp@pobox.com>
626
627         * dbus/dbus-auth.c: rework to use only REJECTED, no 
628         MECHANISMS
629
630         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just 
631         use REJECTED, suggested by Mark McLoughlin
632
633 2003-01-30  Havoc Pennington  <hp@pobox.com>
634
635         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
636         a better way to report errors here. e.g.  "unix address lacks
637         path" or something. also "no such file" when the path doesn't
638         exist, etc.
639
640         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
641         leaking list nodes
642         (dbus_parse_address): add @todo about documenting address format, 
643         and allowing , and ; to be escaped
644
645 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
646
647         * dbus/Makefile.am:
648         Add dbus-address.[ch]
649         
650         * dbus/dbus-address.c: (dbus_address_entry_free),
651         (dbus_address_entries_free), (create_entry),
652         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
653         (dbus_parse_address), (_dbus_address_test):
654         * dbus/dbus-address.h:
655         New files for dealing with address parsing.
656         
657         * dbus/dbus-connection.c:
658         Document timeout functions.
659         
660         * dbus/dbus-message.c:
661         Document dbus_message_new_from_message.
662         
663         * dbus/dbus-server-debug.c:
664         Document.
665         
666         * dbus/dbus-server.c: (dbus_server_listen):
667         Parse address and use correct server implementation.
668         
669         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
670         * dbus/dbus-string.h:
671         New function with test.
672         
673         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
674         * dbus/dbus-test.h:
675         Add address tests.
676         
677         * dbus/dbus-transport-debug.c:
678         Document.
679         
680         * dbus/dbus-transport.c: (_dbus_transport_open):
681         Parse address and use correct transport implementation. 
682
683 2003-01-30  Havoc Pennington  <hp@pobox.com>
684
685         * dbus/dbus-message.c: use message->byte_order instead of 
686         DBUS_COMPILER_BYTE_ORDER throughout.
687         (dbus_message_create_header): pad header to align the 
688         start of the body of the message to 8-byte boundary
689
690         * dbus/dbus-marshal.h: make all the demarshalers take const 
691         DBusString arguments.
692
693         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
694         validate message args here, so we don't have to do slow validation
695         later, and so we catch bad messages as they are incoming. Also add
696         better checks on header_len and body_len. Also fill in
697         message->byte_order
698
699         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
700         implemented properly)
701         (_dbus_string_validate_nul): new function to check all-nul
702
703         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename 
704         get_arg_end_pos and remove all validation
705         (_dbus_marshal_validate_arg): actually do validation here.
706
707 2003-01-29  Havoc Pennington  <hp@pobox.com>
708
709         * dbus/dbus-message.c (check_message_handling): fix assertion
710         failure on set_client_serial
711
712 2003-01-28  Havoc Pennington  <hp@pobox.com>
713
714         * dbus/dbus-server-debug.c: Add doc section comments
715         
716         * dbus/dbus-transport-debug.c: add doc section comments
717         
718 2003-01-28  Havoc Pennington  <hp@redhat.com>
719
720         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
721         the reverse order from how I had it
722         (_dbus_string_base64_encode): reverse encoding order. I was
723         basically byteswapping everything during encoding.
724
725 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
726
727         * dbus/dbus-connection-internal.h:
728         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
729         (_dbus_connection_remove_timeout):
730         Add functions for adding and removing timeouts.
731         
732         * dbus/dbus-message.c: (dbus_message_new_from_message):
733         Add new function that takes a message and creates an exact
734         copy of it, but with the refcount set to 1.
735         (check_message_handling):
736         Fix build error.
737         
738         * dbus/dbus-server-protected.h:
739         * dbus/dbus-server.c: (_dbus_server_init_base),
740         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
741         (dbus_server_set_timeout_functions):
742         (_dbus_server_remove_timeout):
743         New functions so that a server can add and remove timeouts.
744
745         (dbus_server_listen):
746         Add commented out call to dbus_server_debug_new.
747
748         * dbus/dbus-timeout.c: (_dbus_timeout_new):
749         Actually set the handler, doh.
750         
751         * dbus/dbus-transport.c: (_dbus_transport_open):
752         Add commented out call to dbus_transport_debug_client_new.
753         
754         * dbus/Makefile.am:
755         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
756         
757 2003-01-28  Havoc Pennington  <hp@pobox.com>
758
759         * dbus/dbus-message.c (check_message_handling): function to check 
760         on the loaded message, iterates over it etc.
761
762 2003-01-28  Havoc Pennington  <hp@pobox.com>
763
764         * test/Makefile.am (dist-hook): fix make distdir
765
766         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
767
768 2003-01-27  Havoc Pennington  <hp@pobox.com>
769
770         * dbus/dbus-mempool.c (time_for_size): replace printf with 
771         _dbus_verbose
772
773         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
774         empty lines; fix the SAVE_LENGTH stuff to be
775         START_LENGTH/END_LENGTH so it actually works; couple other 
776         bugfixes
777         
778         * test/Makefile.am (dist-hook): add dist-hook for .message files
779
780         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
781         can be constant or locked.
782         (_dbus_string_free): allow freeing a const string as
783         documented/intended
784
785         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
786
787         * dbus/dbus-test-main.c (main): take an argument which is the 
788         directory containing test data
789
790         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
791         argument to this and load all the messages in test/data/
792         checking that they can be loaded or not loaded as appropriate.
793
794 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
795
796         * bus/dispatch.c: (bus_dispatch_message_handler):
797         Dispatch messages sent to services.
798         
799         * bus/driver.c: (bus_driver_send_service_deleted),
800         (bus_driver_send_service_created), (bus_driver_send_service_lost),
801         (bus_driver_send_service_acquired):
802         Add helper functions for sending service related messages.
803
804         (bus_driver_send_welcome_message):
805         Send HELLO_REPLY instead of WELCOME.
806         
807         (bus_driver_handle_list_services):
808         Send LIST_SERVICES_REPLY instead of SERVICES.
809         
810         (bus_driver_handle_own_service),
811         (bus_driver_handle_service_exists):
812         New message handlers.
813         
814         (bus_driver_handle_message):
815         Invoke new message handlers.
816         
817         (bus_driver_remove_connection):
818         Don't remove any services here since that's done automatically
819         by bus_service_remove_owner now.
820         
821         * bus/driver.h:
822         New function signatures.
823         
824         * bus/services.c: (bus_service_add_owner):
825         Send ServiceAcquired message if we're the only primary owner.
826         
827         (bus_service_remove_owner):
828         Send ServiceAcquired/ServiceLost messages.
829         
830         (bus_service_set_prohibit_replacement),
831         (bus_service_get_prohibit_replacement):
832         Functions for setting prohibit replacement.
833         
834         (bus_service_has_owner):
835         New function that checks if a connection is in the owner queue of 
836         a certain service.
837         
838         * bus/services.h:
839         Add new function signatures.
840         
841         * dbus/dbus-list.c: (_dbus_list_test):
842         Add tests for _dbus_list_remove_last and traversing the list backwards.
843         
844         * dbus/dbus-list.h:
845         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
846         go any further, so return NULL then.
847         
848         * dbus/dbus-protocol.h:
849         Add new messages, service flags and service replies.
850         
851 2003-01-26  Havoc Pennington  <hp@pobox.com>
852
853         * dbus/dbus-message-builder.c: implement, completely untested.
854
855         * test/data/*: add data to be used in testing. 
856         ".message" files are our simple loadable text format.
857         ".message-raw" will be binary dumps of messages.
858
859         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
860
861 2003-01-26  Havoc Pennington  <hp@pobox.com>
862
863         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
864
865         * dbus/dbus-errors.c (dbus_result_to_string): add
866         file errors
867
868         * dbus/dbus-message-builder.c: new file, will contain code to load
869         up messages from files. Not implemented yet.
870
871 2003-01-26  Havoc Pennington  <hp@pobox.com>
872
873         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
874         the sender by setting to NULL
875
876 2003-01-26  Havoc Pennington  <hp@pobox.com>
877
878         The unit tests pass, but otherwise untested.  If it breaks, the
879         tests should have been better. ;-)
880         
881         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
882         the connection.
883
884         * dbus/dbus-message.c: redo everything so we maintain 
885         message->header as the only copy of the various fields.
886         This avoids the possibility of out-of-memory in some cases,
887         for example dbus_message_lock() can't run out of memory anymore,
888         and avoids extra copying. Figured I may as well go ahead and do 
889         this since it was busted for dbus_message_lock to not return 
890         failure on OOM, and dbus_message_write_header was totally
891         unchecked for OOM. Also fixed some random other bugs.
892
893         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
894         that strings are nul-terminated. Also, end_pos can be equal 
895         to string length just not greater than, I think.
896         (_dbus_marshal_set_int32): new function
897         (_dbus_marshal_set_uint32): new function
898         (_dbus_marshal_set_string): new function
899
900         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
901         a warning, init timeout_list to NULL
902         (dbus_connection_send_message): don't use uninitialized variable
903         "serial"
904
905         * dbus/dbus-string.c (_dbus_string_replace_len): new function
906
907 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
908
909         * bus/driver.c: (bus_driver_handle_hello),
910         (bus_driver_send_welcome_message):
911         Plug leaks
912         
913 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
914
915         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
916         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
917         (dbus_connection_unref):
918         * dbus/dbus-marshal.c: (_dbus_marshal_test):
919         * dbus/dbus-message.c: (dbus_message_unref),
920         Plug memory leaks.
921         
922         (dbus_message_get_fields): 
923         Remove debugging printout.
924
925         (_dbus_message_loader_return_buffer):
926         Don't store the header string.
927         
928         (_dbus_message_test):
929         Plug leaks.
930
931 2003-01-26  Richard Hult  <rhult@codefactory.se>
932
933         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
934         the file descriptor list, since it can change under us.
935
936 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
937
938         * glib/dbus-gmain.c: (dbus_connection_prepare),
939         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
940         (remove_watch), (dbus_connection_hookup_with_g_main):
941         Rewrite the glib handling to use its own GSource instead of a 
942         GIOChannel so we can catch messages put in the queue while waiting
943         for a reply.
944         
945 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
946
947         * bus/Makefile.am:
948         * bus/connection.c: (connection_disconnect_handler),
949         (connection_watch_callback), (bus_connection_setup):
950         * bus/dispatch.c: (send_one_message),
951         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
952         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
953         * bus/dispatch.h:
954         * bus/driver.c: (bus_driver_send_service_deleted),
955         (bus_driver_send_service_created), (bus_driver_handle_hello),
956         (bus_driver_send_welcome_message),
957         (bus_driver_handle_list_services), (bus_driver_remove_connection),
958         (bus_driver_handle_message):
959         * bus/driver.h:
960         Refactor code, put the message dispatching in its own file. Use 
961         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
962         is disconnected.
963         
964 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
965
966         * dbus/dbus-internals.h:
967         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
968         
969         * dbus/dbus-message.c: (dbus_message_get_sender):
970         * dbus/dbus-message.h:
971         Implement dbus_message_get_sender.
972         
973         * dbus/dbus-protocol.h:
974         Add message and service defines.
975         
976 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
977
978         * dbus/dbus-connection.c: (dbus_connection_send_message):
979         * dbus/dbus-message-internal.h:
980         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
981         (dbus_message_write_header):
982         Remove _dbus_messag_unlock and don't set the client serial on a 
983         message if one already exists.
984         
985 2003-01-24  Havoc Pennington  <hp@pobox.com>
986
987         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
988         list_pool
989
990         * bus/driver.c (bus_driver_handle_list_services): fix a leak 
991         on OOM
992
993 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
994
995         * dbus/dbus-list.c: (alloc_link), (free_link):
996         Use a memory pool for the links.
997         
998 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
999
1000         * bus/connection.c: (bus_connection_foreach):
1001         * bus/connection.h:
1002         Add new bus_connection_foreach function.
1003         
1004         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
1005         Add function that broadcasts a message to all clients.
1006         
1007         (bus_driver_send_service_created), (bus_driver_handle_hello),
1008         (bus_driver_send_welcome_message),
1009         (bus_driver_handle_list_services), (bus_driver_message_handler):
1010         Implement functions that take care of listing services, and notifying
1011         clients when new services are created.
1012         
1013         * bus/services.c: (bus_services_list):
1014         * bus/services.h:
1015         Add new function that returns an array of strings with the currently
1016         registered services.
1017         
1018         * glib/dbus-glib.h:
1019         * glib/dbus-gmain.c:
1020         Update copyright year.
1021         
1022 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
1023
1024         * dbus/dbus-connection.c: (dbus_connection_send_message):
1025         Unlock the message in case it was sent earlier.
1026         
1027         (dbus_connection_send_message_with_reply_and_block):
1028         Remove the reply message from the list.
1029         
1030         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
1031         Set array_len and new_pos correctly.
1032         
1033         (_dbus_marshal_test):
1034         Remove debug output.
1035         
1036         * dbus/dbus-message-internal.h:
1037         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
1038         New function that returns the reply serial.
1039         
1040         (_dbus_message_unlock):
1041         New function that unlocks a message and resets its header.
1042
1043         (dbus_message_append_string_array), 
1044         (dbus_message_get_fields_valist),
1045         (dbus_message_iter_get_field_type),
1046         (dbus_message_iter_get_string_array),   
1047         (dbus_message_get_fields),      
1048         (dbus_message_append_fields_valist):
1049         Handle string arrays.
1050         
1051         (dbus_message_set_sender):
1052         Make this function public since the bus daemon needs it.
1053         
1054         (decode_header_data):
1055         Set the reply serial to -1 initially.
1056
1057         * dbus/dbus-message.h:
1058         Add dbus_message_set_sender.    
1059
1060 2003-01-24  Havoc Pennington  <hp@pobox.com>
1061
1062         * doc/dbus-specification.sgml: add some stuff
1063
1064 2003-01-22  Havoc Pennington  <hp@pobox.com>
1065
1066         * doc/dbus-specification.sgml: Start to document the protocol.
1067
1068 2003-01-22  Havoc Pennington  <hp@pobox.com>
1069
1070         * dbus/dbus-connection.c
1071         (dbus_connection_send_message_with_reply_and_block): add some @todo
1072
1073         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
1074
1075 2003-01-21  Havoc Pennington  <hp@pobox.com>
1076
1077         (patch untested because can't compile)
1078         
1079         * bus/driver.c (create_unique_client_name): make this function
1080         never recycle client names. Also, caller should initialize 
1081         the DBusString.
1082
1083         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
1084
1085 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
1086
1087         * dbus/dbus-marshal.c: (_dbus_marshal_double),
1088         (_dbus_marshal_int32), (_dbus_marshal_uint32),
1089         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
1090         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
1091         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
1092         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
1093         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
1094         * dbus/dbus-marshal.h:
1095         * dbus/dbus-protocol.h:
1096         Add support for marshalling and demarshalling integer, double
1097         and string arrays.
1098         
1099 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
1100
1101         * bus/Makefile.am:
1102         Add driver.[ch]
1103         
1104         * bus/connection.c: (connection_disconnect_handler):
1105         Remove the connection from the bus driver's list.
1106         
1107         (connection_watch_callback): Dispatch messages.
1108
1109         (free_connection_data): Free connection name.
1110         
1111         (bus_connection_setup): Add connection to the bus driver's list.
1112         (bus_connection_remove_owned_service): 
1113         (bus_connection_set_name), (bus_connection_get_name):
1114         Add functions for setting and getting the connection's name.
1115         
1116         * bus/connection.h:
1117         Add function headers.
1118         
1119         * bus/driver.c: (create_unique_client_name),
1120         (bus_driver_handle_hello_message),
1121         (bus_driver_send_welcome_message), (bus_driver_message_handler),
1122         (bus_driver_add_connection), (bus_driver_remove_connection):
1123         * bus/driver.h:
1124         * bus/main.c:
1125         * bus/services.c: (bus_service_free):
1126         * bus/services.h:
1127         New file that handles communication and registreation with the bus
1128         itself. 
1129         
1130 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
1131
1132         * dbus/dbus-connection.c: (dbus_connection_send_message):
1133         Add a new client_serial parameter.
1134         
1135         (dbus_connection_send_message_with_reply):
1136         Remove a @todo since we've implemented the blocking function.
1137         
1138         (dbus_connection_send_message_with_reply_and_block):
1139         New function that sends a message and waits for a reply and
1140         then returns the reply.
1141         
1142         * dbus/dbus-connection.h:
1143         Add new functions.
1144         
1145         * dbus/dbus-errors.c: (dbus_result_to_string):
1146         * dbus/dbus-errors.h:
1147         Add new DBUS_RESULT.
1148         
1149         * dbus/dbus-message-internal.h:
1150         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
1151         (_dbus_message_set_sender), (dbus_message_write_header),
1152         (dbus_message_new_reply), (decode_header_data),
1153         (_dbus_message_loader_return_buffer), (_dbus_message_test):
1154         * dbus/dbus-message.h:
1155         Add new functions that set the reply serial and sender.
1156         Also marshal and demarshal them correctly and add test.
1157         
1158         * dbus/dbus-protocol.h:
1159         Add new DBUS_MESSAGE_TYPE_SENDER.
1160         
1161         * glib/dbus-glib.h:
1162         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
1163         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
1164         (dbus_connection_hookup_with_g_main):
1165         * glib/test-dbus-glib.c: (main):
1166         Rewrite to use GIOChannel and remove the GSource crack.
1167         
1168         * test/echo-client.c: (main):
1169         * test/watch.c: (check_messages):
1170         Update for changed APIs
1171         
1172 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
1173
1174         * dbus/Makefile.am: Add dbus-timeout.[cħ]
1175         
1176         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
1177         Create a DBusTimeoutList.       
1178         (dbus_connection_set_timeout_functions): Add new function to
1179         set timeout callbacks
1180         
1181         * dbus/dbus-connection.h: Add public DBusTimeout API.
1182         
1183         * dbus/dbus-message.c: (dbus_message_get_service):
1184         * dbus/dbus-message.h:  New function.
1185
1186         * dbus/dbus-server.c: Fix small doc typo.
1187         
1188         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
1189
1190 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
1191
1192         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
1193         of the string, just as long as specified.
1194
1195 2003-01-19  Havoc Pennington  <hp@pobox.com>
1196
1197         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
1198         new function
1199
1200         * dbus/dbus-server.c (dbus_server_set_max_connections)
1201         (dbus_server_get_max_connections, dbus_server_get_n_connections):
1202         keep track of current number of connections, and add API for
1203         setting a max (but haven't implemented enforcing the max yet)
1204
1205 2003-01-18  Havoc Pennington  <hp@pobox.com>
1206
1207         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
1208         reading/writing if read_watch != NULL or write_watch != NULL.
1209
1210         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
1211         the message loader code to actually load message->header and
1212         message->body into the newly-created message.
1213
1214         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
1215         in OOM case
1216
1217         * dbus/dbus-connection.c (dbus_connection_set_max_message_size) 
1218         (dbus_connection_get_max_message_size) 
1219         (dbus_connection_set_max_live_messages_size) 
1220         (dbus_connection_get_max_live_messages_size): implement some
1221         resource limitation functions
1222
1223         * dbus/dbus-resources.c: new file implementing some of the
1224         resource limits stuff
1225
1226         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
1227         missing docs, add @todo to handle OOM etc.
1228
1229         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
1230         docs
1231         
1232 2003-01-18  Havoc Pennington  <hp@pobox.com>
1233
1234         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the 
1235         connection if it hasn't been already.
1236
1237         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
1238         replace with DisconnectFunction.
1239
1240 2003-01-18  Havoc Pennington  <hp@pobox.com>
1241
1242         Building --disable-verbose-mode --disable-asserts --disable-tests
1243         cuts the library from 112K to 45K or so
1244         
1245         * configure.in: check for varargs macro support, 
1246         add --enable-verbose-mode, --enable-asserts. 
1247
1248         * dbus/dbus-internals.h (_dbus_assert): support
1249         DBUS_DISABLE_ASSERT
1250         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
1251
1252 2003-01-18  Havoc Pennington  <hp@pobox.com>
1253
1254         * dbus/dbus-test.c: include config.h so that tests actually run
1255
1256         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
1257         so the failure mode when that assumption fails will be plenty
1258         obvious.
1259
1260 2003-01-18  Havoc Pennington  <hp@pobox.com>
1261
1262         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
1263
1264         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
1265         the distribution
1266
1267         * test/Makefile.am: don't use special variable "TESTS" for echo-*
1268         since we don't want to use those in make check
1269
1270 2003-01-15  Havoc Pennington  <hp@redhat.com>
1271
1272         Release 0.2
1273         
1274         * NEWS: update
1275
1276 2003-01-15  Havoc Pennington  <hp@redhat.com>
1277
1278         * test/Makefile.am: fix so that test source code ends up in the
1279         distribution on make distcheck
1280
1281 2003-01-15  Havoc Pennington  <hp@redhat.com>
1282
1283         Release 0.1.
1284         
1285         * NEWS: update  
1286
1287 2003-01-15  Havoc Pennington  <hp@redhat.com>
1288
1289         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
1290         fix build when --disable-tests
1291
1292         * Makefile.am (EXTRA_DIST): put HACKING in here
1293
1294         * HACKING: document procedure for making a tarball release.
1295
1296 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
1297
1298         * bus/connection.c: (connection_error_handler),
1299         (bus_connection_setup):
1300         * bus/main.c: (main):
1301         Make sure that the DBusConnectionData struct is NULLed
1302         out to prevent a segfault.
1303         
1304         * dbus/dbus-errors.c: (dbus_result_to_string):
1305         * dbus/dbus-errors.h:
1306         * dbus/dbus-message.c: (dbus_message_get_fields),
1307         (dbus_message_get_fields_valist), (_dbus_message_test):
1308         * dbus/dbus-message.h:
1309         Make dbus_message_get_fields return a result code so we can
1310         track invalid fields as well as oom.
1311         
1312 2003-01-11  Havoc Pennington  <hp@pobox.com>
1313
1314         * configure.in: change --enable-test/--enable-ansi action-if-given
1315         to enable_foo=$enableval instead of enable_foo=yes
1316
1317 2003-01-08  Havoc Pennington  <hp@pobox.com>
1318
1319         * dbus/dbus-string.c (_dbus_string_align_length): new function
1320
1321         * dbus/dbus-test-main.c: move main() for test app here
1322         * dbus/dbus-test.c
1323         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
1324         symbol to run tests, because dbus-test isn't in the main 
1325         library
1326
1327         Code review nitpicks.
1328         
1329         * dbus/dbus-message.c (dbus_message_write_header): add newlines
1330         for people with narrow emacs ;-). Assert client_serial was filled
1331         in. Assert message->name != NULL.
1332         (dbus_message_append_fields): have "first_field_type" arg separate
1333         from va list, needed for C++ binding that also uses varargs IIRC
1334         and helps with type safety
1335         (dbus_message_new): add @todo about using DBusString to store
1336         service/name internally
1337         (dbus_message_new): don't leak ->service and ->name on OOM later
1338         in the function
1339         (dbus_message_unref): free the service name
1340         (dbus_message_get_fields): same change to varargs
1341         i.e. first_field_type
1342         (_dbus_message_loader_return_buffer): assert that the message data
1343         is aligned (if not it's a bug in our code). Put in verbose griping
1344         about why we set corrupted = TRUE.
1345         (decode_header_data): add FIXME that char* is evil.  Was going to
1346         add FIXME about evil locale-specific string.h strncmp, but just
1347         switched to wacky string-as-uint32 optimization. Move check for
1348         "no room for field name" above get_const_data_len() to avoid
1349         assertion failure in get_const_data_len if we have trailing 2
1350         bytes or the like. Check for service and name fields being
1351         provided twice. Don't leak service/name on error. Require field
1352         names to be aligned to 4 bytes.
1353
1354         * dbus/dbus-marshal.c: move byte swap stuff to header
1355         (_dbus_pack_int32): uscore-prefix
1356         (_dbus_unpack_int32): uscore-prefix
1357         (_dbus_unpack_uint32): export
1358         (_dbus_demarshal_string): add @todo complaining about use of
1359         memcpy()
1360         (_dbus_marshal_get_field_end_pos): add @todo about bad error
1361         handling allowing corrupt data to go unchecked
1362
1363 2003-01-08  Havoc Pennington  <hp@redhat.com>
1364
1365         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write 
1366         to the select() as needed for authentication. (should be using
1367         _dbus_poll() not select, but for another day)
1368
1369         * dbus/dbus.h: include dbus/dbus-protocol.h
1370
1371 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
1372
1373         * dbus/Makefile.am (dbusinclude_HEADERS): Install
1374         dbus-connection.h
1375
1376 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
1377
1378         * dbus/dbus-internals.c: (_dbus_type_to_string):
1379         New function that returns a string describing a type.
1380         
1381         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
1382         * dbus/dbus-marshal.h:
1383         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
1384         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
1385         (dbus_message_iter_get_byte_array):
1386         * dbus/dbus-message.h:
1387         Add new convenience functions for appending and getting message fields.
1388         Also add demarshalling routines for byte arrays.
1389
1390 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
1391
1392         * dbus/dbus-connection-internal.h:
1393         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
1394         (_dbus_connection_get_next_client_serial),
1395         (dbus_connection_send_message):
1396         * dbus/dbus-internals.h:
1397         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
1398         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
1399         (_dbus_marshal_uint32), (_dbus_demarshal_double),
1400         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
1401         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
1402         (_dbus_verbose_bytes), (_dbus_marshal_test):
1403         * dbus/dbus-marshal.h:
1404         * dbus/dbus-message-internal.h:
1405         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
1406         (dbus_message_write_header), (_dbus_message_lock),
1407         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
1408         (dbus_message_get_name), (dbus_message_append_int32),
1409         (dbus_message_append_uint32), (dbus_message_append_double),
1410         (dbus_message_append_string), (dbus_message_append_byte_array),
1411         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
1412         (dbus_message_iter_unref), (dbus_message_iter_has_next),
1413         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
1414         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
1415         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
1416         (decode_header_data), (_dbus_message_loader_return_buffer),
1417         (message_iter_test), (_dbus_message_test):
1418         * dbus/dbus-message.h:
1419         * dbus/dbus-protocol.h:
1420         * dbus/dbus-test.c: (main):
1421         * dbus/dbus-test.h:
1422         * glib/test-dbus-glib.c: (message_handler), (main):
1423         * test/echo-client.c: (main):
1424         * test/watch.c: (check_messages):
1425         Make messages sendable and receivable for real.
1426         
1427 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
1428
1429         * dbus/dbus-marshal.c: (_dbus_marshal_double),
1430         (_dbus_marshal_string), (_dbus_marshal_byte_array):
1431         * dbus/dbus-message.c: (dbus_message_append_int32),
1432         (dbus_message_append_uint32), (dbus_message_append_double),
1433         (dbus_message_append_string), (dbus_message_append_byte_array):
1434         Handle OOM restoration.
1435         
1436 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
1437
1438         * dbus/dbus-marshal.c: (_dbus_marshal_string),
1439         (_dbus_demarshal_string), (_dbus_marshal_test):
1440         * dbus/dbus-marshal.h:
1441         * dbus/dbus-message.c: (dbus_message_get_name),
1442         Document these functions.
1443         
1444         (dbus_message_append_int32), (dbus_message_append_uint32),
1445         (dbus_message_append_double), (dbus_message_append_string),
1446         (dbus_message_append_byte_array):
1447         * dbus/dbus-message.h:
1448         Add functions for adding message fields of different types.
1449         
1450         * dbus/dbus-protocol.h:
1451         Add the different types.
1452
1453 2003-01-05  Havoc Pennington  <hp@pobox.com>
1454
1455         * bus/connection.c: implement routines for handling connections,
1456         first thing is keeping a list of owned services on each connection
1457         and setting up watches etc.
1458
1459         * bus/services.c: implement a mapping from service names to lists
1460         of connections
1461
1462         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
1463
1464         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
1465         to use static mutexes for global data
1466
1467         * dbus/dbus-connection.c (dbus_connection_set_data): add new
1468         collection of functions to set/get application-specific data
1469         on the DBusConnection.
1470
1471 2003-01-04  Havoc Pennington  <hp@pobox.com>
1472
1473         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
1474         (_dbus_poll): new function
1475
1476         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
1477         copied from GLib
1478
1479         * bus/loop.c: initial code for the daemon main loop
1480
1481 2003-01-04  Havoc Pennington  <hp@pobox.com>
1482
1483         * test/watch.c (error_handler): make it safe if the error handler 
1484         is called multiple times (if we s/error handler/disconnect
1485         handler/ we should just guarantee it's called only once)
1486
1487         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
1488         error handler on disconnect (it's quite possible we should
1489         just change the error handler to a "disconnect handler," I'm 
1490         not sure we have any other meaningful errors)
1491
1492         * configure.in: check for getpwnam_r
1493
1494         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1495         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
1496         mechanism as in SASL spec, using socket credentials
1497
1498         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
1499         (_dbus_send_credentials_unix_socket): new function
1500
1501         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
1502         dbus_accept()
1503         (_dbus_write): only check errno if <0 returned
1504         (_dbus_write_two): ditto
1505
1506 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
1507
1508         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
1509         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
1510         (_dbus_marshal_test):
1511         * dbus/dbus-marshal.h:
1512         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
1513         to _dbus_marshal_utf8_string. Also fix some tests.
1514         
1515 2002-12-28  Harri Porten  <porten@kde.org>
1516
1517         * configure.in: added check for C++ compiler and a very cheesy
1518         check for the Qt integration
1519
1520         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
1521
1522         * qt/Makefile.am: added 
1523
1524         * qt/.cvsignore: added  
1525
1526         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
1527         latter, added #ifdef QT_THREAD_SUPPORT guard.
1528
1529         * dbus/Makefile.am: added missing headers for make dist
1530
1531 2002-12-28  Kristian Rietveld  <kris@gtk.org>
1532
1533         * dbus/Makefile.am: fixup export-symbols-regex.
1534
1535 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
1536
1537         * acinclude.m4: Add this file and put the 
1538         PKG_CHECK_MODULE macro in it.
1539
1540 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
1541
1542         * dbus/dbus-marshal.c: (_dbus_marshal_string),
1543         (_dbus_demarshal_double), (_dbus_demarshal_int32),
1544         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
1545         (_dbus_marshal_test):
1546         Make the demarshalling routines align the pos argument.
1547         Add string marshalling tests and fix the obvious bugs 
1548         discovered.
1549         
1550 2002-12-26  Havoc Pennington  <hp@pobox.com>
1551
1552         * dbus/dbus-auth.c: fixes fixes fixes
1553
1554         * dbus/dbus-transport-unix.c: wire up support for
1555         encoding/decoding data on the wire
1556
1557         * dbus/dbus-auth.c (_dbus_auth_encode_data) 
1558         (_dbus_auth_decode_data): append to target string 
1559         instead of nuking it.
1560
1561 2002-12-26  Havoc Pennington  <hp@pobox.com>
1562
1563         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
1564         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
1565         doh
1566
1567         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
1568         avoid swap_bytes() overhead (ignoring possible assembly stuff for 
1569         now). Main point is because I wanted unpack_uint32 to implement
1570         _dbus_verbose_bytes
1571         (_dbus_verbose_bytes): new function
1572
1573         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
1574
1575         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
1576         mechanism to handle a corrupt message stream
1577         (_dbus_message_loader_new): fix preallocation to only prealloc, 
1578         not prelengthen
1579         
1580         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
1581         (_dbus_string_test): enhance tests for copy/move and fix the
1582         functions
1583
1584         * dbus/dbus-transport-unix.c: Hold references in more places to 
1585         avoid reentrancy problems
1586
1587         * dbus/dbus-transport.c: ditto
1588
1589         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
1590         leak reference count in no-message case
1591
1592         * test/watch.c (do_mainloop): handle adding/removing watches
1593         during iteration over the watches. Also, ref the connection/server
1594         stored on a watch, so we don't try to mangle a destroyed one.
1595
1596         * dbus/dbus-transport-unix.c (do_authentication): perform
1597         authentication
1598
1599         * dbus/dbus-auth.c (get_state): add a state
1600         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
1601         (_dbus_auth_get_unused_bytes): append the unused bytes
1602         to the passed in string, rather than prepend
1603
1604         * dbus/dbus-transport.c (_dbus_transport_init_base): create 
1605         the auth conversation DBusAuth
1606
1607         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
1608         (_dbus_transport_new_for_domain_socket): when creating a
1609         transport, pass in whether it's a client-side or server-side
1610         transport so we know which DBusAuth to create
1611
1612 2002-12-03  Havoc Pennington  <hp@pobox.com>
1613
1614         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
1615         _after_ finalizing the derived members
1616         (unix_connection_set): unref watch if we fail to add it
1617
1618         * dbus/dbus-connection.c (dbus_connection_unref): delete the
1619         transport first, so that the connection owned by the 
1620         transport will be valid as the transport finalizes.
1621
1622         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
1623         if necessary, and remove watches from the connection.
1624         
1625         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
1626         
1627 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
1628
1629         * dbus/dbus-marshal.c: (_dbus_marshal_string),
1630         (_dbus_demarshal_double), (_dbus_demarshal_int32),
1631         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
1632         (_dbus_marshal_test):
1633         * dbus/dbus-marshal.h:
1634         Add string marshal functions and have the demarshal functions
1635         return the new position.
1636         
1637 2002-12-25  Havoc Pennington  <hp@pobox.com>
1638
1639         * doc/dbus-sasl-profile.txt: docs on the authentication protocol, 
1640         it is a simple protocol that just maps directly to SASL.
1641
1642         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
1643         initial implementation, not actually used yet.
1644         
1645         * dbus/dbus-string.c (_dbus_string_find): new function
1646         (_dbus_string_equal): new function
1647         (_dbus_string_base64_encode): new function
1648         (_dbus_string_base64_decode): new function
1649
1650 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
1651
1652         * dbus/Makefile.am:
1653         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
1654         (_dbus_marshal_int32), (_dbus_marshal_uint32),
1655         (_dbus_demarshal_double), (_dbus_demarshal_int32),
1656         (_dbus_demarshal_uint32), (_dbus_marshal_test):
1657         * dbus/dbus-marshal.h:
1658         * dbus/dbus-protocol.h:
1659         * dbus/dbus-test.c: (main):
1660         * dbus/dbus-test.h:
1661         Add un-optimized marshalling/demarshalling routines.
1662         
1663 2002-12-25  Harri Porten  <porten@kde.org>
1664
1665         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
1666
1667 2002-12-24  Zack Rusin  <zack@kde.org>
1668
1669         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
1670         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
1671         main loop stuff
1672
1673 2002-12-24  Havoc Pennington  <hp@pobox.com>
1674
1675         * glib/dbus-gthread.c: fix include
1676
1677         * glib/dbus-glib.h: rename DBusMessageHandler for now. 
1678         I think glib API needs to change, though, as you don't 
1679         want to use DBusMessageFunction, you want to use the 
1680         DBusMessageHandler object. Probably 
1681         dbus_connection_open_with_g_main_loop()
1682         and dbus_connection_setup_g_main_loop() or something like that
1683         (but think of better names...) that just create a connection 
1684         that has watch/timeout functions etc. already set up.
1685
1686         * dbus/dbus-connection.c
1687         (dbus_connection_send_message_with_reply): new function just to 
1688         show how the message handler helps us deal with replies.
1689
1690         * dbus/dbus-list.c (_dbus_list_remove_last): new function
1691
1692         * dbus/dbus-string.c (_dbus_string_test): free a string that
1693         wasn't
1694
1695         * dbus/dbus-hash.c: use memory pools for the hash entries
1696         (rebuild_table): be more paranoid about overflow, and 
1697         shrink table when we can
1698         (_dbus_hash_test): reduce number of sprintfs and write
1699         valid C89. Add tests for case where we grow and then 
1700         shrink the hash table.
1701
1702         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
1703
1704         * dbus/dbus-connection.c (dbus_connection_register_handler) 
1705         (dbus_connection_unregister_handler): new functions
1706
1707         * dbus/dbus-message.c (dbus_message_get_name): new
1708
1709         * dbus/dbus-list.c: fix docs typo
1710
1711         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
1712         an object representing a handler for messages.
1713
1714 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
1715
1716         * glib/dbus-glib.h:
1717         * glib/dbus-gthread.c: (dbus_gthread_init):
1718         Don't use the gdbus prefix for public functions.
1719         
1720 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
1721
1722         * Makefile.am:
1723         * configure.in:
1724         Add GLib checks and fixup .pc files
1725         
1726         * glib/Makefile.am:
1727         * glib/dbus-glib.h:
1728         * glib/dbus-gmain.c: (gdbus_connection_prepare),
1729         (gdbus_connection_check), (gdbus_connection_dispatch),
1730         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
1731         (dbus_connection_gsource_new):
1732         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
1733         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
1734         * glib/test-dbus-glib.c: (message_handler), (main):
1735         Add GLib support.
1736         
1737 2002-12-15  Harri Porten  <porten@kde.org>
1738
1739         * autogen.sh: check for libtoolize before attempting to use it 
1740         
1741         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
1742         struct.
1743         
1744         * .cvsignore: ignore more stamp files
1745
1746         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
1747
1748         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
1749         without make install.
1750
1751 2002-12-15  Havoc Pennington  <hp@pobox.com>
1752
1753         * dbus/dbus-threads.c: add thread stubs that a higher library
1754         layer can fill in. e.g. the GLib wrapper might fill them in with
1755         GThread stuff. We still need to use this thread API to
1756         thread-safe-ize the library.
1757
1758 2002-12-12  Havoc Pennington  <hp@pobox.com>
1759
1760         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
1761         below new interfaces and include fewer system headers.
1762
1763         * dbus/dbus-sysdeps.c (_dbus_read): new function
1764         (_dbus_write): new function
1765         (_dbus_write_two): new function
1766         (_dbus_connect_unix_socket): new function
1767         (_dbus_listen_unix_socket): new function
1768
1769         * dbus/dbus-message-internal.h: change interfaces to use
1770         DBusString
1771
1772 2002-12-11  Havoc Pennington  <hp@pobox.com>
1773
1774         * dbus/dbus-types.h: add dbus_unichar
1775
1776         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
1777
1778         * dbus/dbus-connection.c (dbus_connection_send_message): return
1779         TRUE on success
1780
1781         * dbus/dbus-transport.c: include dbus-watch.h   
1782
1783         * dbus/dbus-connection.c: include dbus-message-internal.h
1784
1785         * HACKING: add file with coding guidelines stuff.
1786
1787         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
1788         handling here, for security purposes (as in vsftpd). Not actually
1789         using this class yet.
1790
1791         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
1792         system/libc usage here, as in vsftpd, for ease of auditing (and
1793         should also simplify portability). Haven't actually moved all the
1794         system/libc usage into here yet.
1795         
1796 2002-11-25  Havoc Pennington  <hp@pobox.com>
1797
1798         * dbus/dbus-internals.c (_dbus_verbose): fix to not 
1799         always print the first verbose message.
1800
1801 2002-11-24  Havoc Pennington  <hp@pobox.com>
1802
1803         * test/echo-client.c, test/echo-server.c: cheesy test 
1804         clients.
1805         
1806         * configure.in (AC_CHECK_FUNCS): check for writev
1807
1808         * dbus/dbus-message.c (_dbus_message_get_network_data): new
1809         function
1810
1811         * dbus/dbus-list.c (_dbus_list_foreach): new function
1812
1813         * dbus/dbus-internals.c (_dbus_verbose): new function
1814
1815         * dbus/dbus-server.c, dbus/dbus-server.h: public object
1816         representing a server that listens for connections.
1817
1818         * dbus/.cvsignore: create
1819
1820         * dbus/dbus-errors.h, dbus/dbus-errors.c:
1821         public API for reporting errors
1822
1823         * dbus/dbus-connection.h, dbus/dbus-connection.c:
1824         public object representing a connection that 
1825         sends/receives messages. (Same object used for 
1826         both client and server.)
1827
1828         * dbus/dbus-transport.h, dbus/dbus-transport.c:
1829         Basic abstraction for different kinds of stream
1830         that we might read/write messages from.
1831
1832 2002-11-23  Havoc Pennington  <hp@pobox.com>
1833
1834         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN 
1835         _DBUS_INT_MAX
1836
1837         * dbus/dbus-test.c (main): add list test, and include 
1838         dbus-test.h as intended
1839
1840         * dbus/dbus-hash.c (_dbus_hash_table_remove_string) 
1841         (_dbus_hash_table_remove_int): return value indicates 
1842         whether the entry existed to remove
1843
1844         * dbus/dbus-list.c: add linked list utility class, 
1845         with docs and tests
1846
1847         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket 
1848         array sometimes.
1849
1850 2002-11-23  Havoc Pennington  <hp@pobox.com>
1851
1852         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
1853         DBUS_END_DECLS to nothing, that should fix this once and for all
1854
1855         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
1856
1857         * dbus/dbus-message.c, dbus/dbus-hash.c: 
1858         add some missing @brief
1859
1860 2002-11-23  Havoc Pennington  <hp@pobox.com>
1861
1862         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS 
1863         to avoid confusing Doxygen
1864
1865         * dbus/dbus-hash.c: @} not }@
1866
1867         * dbus/dbus-message.c (struct DBusMessage): split out 
1868         internals docs
1869
1870 2002-11-23  Havoc Pennington  <hp@pobox.com>
1871
1872         * configure.in: pile on more warning flags if using gcc
1873
1874         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have 
1875         to document static functions
1876
1877         * configure.in: add summary to end of configure so it 
1878         looks nice and attractive
1879
1880         * dbus/dbus-hash.c: finish implementation and write unit 
1881         tests and docs
1882
1883         * configure.in: add --enable-tests to enable unit tests
1884
1885         * dbus/dbus-test.c: test program to run unit tests 
1886         for all files in dbus/*, initially runs a test for 
1887         dbus-hash.c
1888         
1889         * dbus/dbus-internals.h: file to hold some internal utility stuff
1890
1891 2002-11-22  Havoc Pennington  <hp@redhat.com>
1892
1893         * dbus/dbus-hash.c: copy in Tcl hash table, not yet 
1894         "ported" away from Tcl
1895
1896         * dbus/dbus-types.h: header for types such as dbus_bool_t
1897
1898 2002-11-22  Havoc Pennington  <hp@redhat.com>
1899
1900         * dbus/dbus.h: fixups for doc warnings
1901
1902         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up 
1903         macros
1904         (QUIET): make it quiet so we can see warnings
1905
1906         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
1907
1908 2002-11-22  Havoc Pennington  <hp@redhat.com>
1909
1910         * Makefile.am: include "Doxyfile" target in all-local
1911
1912         * configure.in: generate the Doxyfile
1913
1914         * Doxyfile.in: move Doxyfile here, so we can use 
1915         configure to generate a Doxyfile with the right 
1916         version number etc.
1917
1918 2002-11-22  Havoc Pennington  <hp@redhat.com>
1919
1920         * dbus/dbus-message.c: move inline docs into .c file
1921
1922         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
1923         so all docs are under doc/
1924         (MAN_EXTENSION): generate man pages. Use extension 
1925         ".3dbus" which matches ".3qt" on my system, 
1926         I guess this is OK, I don't know really.
1927         (FILE_PATTERNS): look for .c files not .h, makes sense
1928         for plain C I think
1929
1930 2002-11-22  Havoc Pennington  <hp@pobox.com>
1931
1932         * Makefile.am (SUBDIRS): rename subdir "server" to "bus" 
1933         because any app can be a server, and any app can be a client, 
1934         the bus is a special kind of server.
1935
1936 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
1937
1938         * Doxyfile : adding. Still needs Makefile rules to be generated
1939         automatically (just run "doxygen" in the toplevel dir for now to
1940         generate docs)
1941         
1942         * dbus/dbus-message.h : Adding sample docs (javadoc since
1943         resembles gtk-doc a little more)
1944
1945         * dbus/dbus.h : Adding sample docs
1946
1947 2002-11-21  Havoc Pennington  <hp@redhat.com>
1948
1949         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION 
1950         so we can allow ourselves to include files directly, 
1951         instead of having to use dbus.h
1952
1953         * dbus/dbus.h: fill in
1954
1955         * dbus/dbus-message.h: sketch out a sample header file.
1956         Include griping if you include it directly instead of 
1957         via dbus.h
1958
1959         * dbus/dbus-macros.h: new file with macros for extern "C", 
1960         TRUE/FALSE, NULL, etc.
1961
1962         * doc/file-boilerplate.c: put include guards in here
1963
1964 2002-11-21  Havoc Pennington  <hp@redhat.com>
1965
1966         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
1967
1968         * COPYING: include the GPL as well, and license code 
1969         under both AFL and GPL.
1970
1971 2002-11-21  Havoc Pennington  <hp@redhat.com>
1972
1973         * acconfig.h: get rid of this
1974
1975         * autogen.sh (run_configure): add --no-configure option
1976
1977         * configure.in: remove AC_ARG_PROGRAM to make
1978         autoconf complain less. add AC_PREREQ. 
1979         add AC_DEFINE third arg.
1980         
1981 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
1982
1983         * doc/Makefile.am:
1984         Fix references so we can distcheck.
1985
1986 2002-11-21  Havoc Pennington  <hp@redhat.com>
1987
1988         * Initial module creation
1989