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