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