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