Updated release instructions.
[platform/upstream/dbus.git] / ChangeLog
1 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
2
3         * HACKING: Updated release instructions concerning the wiki page.
4
5 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6
7         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8         filter against auth->allowed_mechs; we only add allowed mechs in
9         record_mechanisms().
10  
11         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
12         ALLOWED_MECHS to auth-script format so we can set the list of
13         allowed mechanisms.
14  
15         * data/auth/client-out-of-mechanisms.auth-script: New test to
16         check client disconnects when it is out of mechanisms to try.
17  
18         * dbus/dbus-auth.c (process_command): Remove check for lines
19         longer that 1 MB; we only buffer up maximum 16 kB.
20  
21         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
22         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
23         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
24         assume there might be unused bytes.
25  
26         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
27         client-out-of-mechs, it is handled in process_reject(). Move check
28         for max failures to send_rejected(), as it's a server-only thing.
29
30         * dbus/dbus-auth.c: Factor out protocol reply code into functions
31         send_auth(), send_data(), send_rejected(), send_error(),
32         send_ok(), send_begin() and send_cancel().
33
34 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
35
36         Remove base64 encoding, replace with hex encoding. Original patch
37         from trow@ximian.com, added error handling.
38
39         * dbus/dbus-string.c (_dbus_string_base64_encode)
40         (_dbus_string_base64_decode): Remove.
41         (_dbus_string_hex_decode): Add end_return argument so we can
42         distinguish between OOM and invalid hex encoding.
43         (_dbus_string_test): Remove base64 tests and add test case for
44         invalid hex.
45
46         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
47         Replace base64 with hex.
48
49         * test/data/auth/invalid-hex-encoding.auth-script: New test case
50         for invalid hex encoded data in auth protocol.
51
52 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
53
54         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
55         leak.
56
57 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
58
59         * mono/dbus-sharp.dll.config.in: Added for GAC
60         * mono/dbus-sharp.snk: Added for GAC
61         * mono/Assembly.cs.in: Added for GAC
62         * mono/Makefile.am: Changes for GAC installation        
63         * configure.in: Added refs for dbus-sharp.dll.config.in and
64         Assembly.cs.in. More fixes for mono testing
65         * mono/example/Makefile.am: Changed var to CSC
66         * Makefile.am: Changed flag name to DBUS_USE_CSC
67
68 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
69
70         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
71         * mono/doc/*: Added documentation framework
72         * configure.in: Added monodoc check
73         * README: Added description of mono configure flags
74
75 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
76
77         * doc/dbus-specification.xml: Added a "Required" column to the 
78         header fields table and changed the "zero or more" verbage in
79         the above paragraph to read "The header must contain the required 
80         named header fields and zero or more of the optional named header 
81         fields".
82         * test/data/invalid-messages/*.message: Added the required PATH 
83         named header field to the tests so that they don't fail on 
84         'Missing path field'
85
86 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
87
88         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
89         the stack by implicitly defining variable and parameter types and
90         removing the hack of defining C pointers as python objects and later
91         casting them.
92
93 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
94
95         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
96
97 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
98
99         * mono/DBusType/Dict.cs: Handle empty dicts
100         * mono/DBusType/Array.cs: Handle empty arrays
101         * mono/Arguments.cs: Handle empty arguments
102
103 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
104
105         * dbus-sharp.pc.in: Modified to include include Libs and Requires
106         field
107
108 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
109
110         * test/data/valid-messages/standard-*.message: Update message
111         test scripts to new header field names.
112
113 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
114
115         * test/break-loader.c (randomly_do_n_things): tracked down buffer
116         overflow to times_we_did_each_thing array which would chop off the
117         first character of the failure_dir string. Increased the size of
118         the array to 7 to reflect the number of random mutation functions
119         we have.
120
121 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
122
123         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
124         unix_server->watch here, it is unreffed in disconnect.
125         (_dbus_server_new_for_tcp_socket): convert NULL host to
126         "localhost" here so we don't append NULL to address.
127         
128         * dbus/dbus-server.c (_dbus_server_test): Add test case for
129         various addresses, including tcp with no explicit host.
130
131 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
132
133         * dbus/dbus-message.c (decode_header_data, decode_string_field):
134         fix incorrect setting of .name_offset in the HeaderField (it was
135         off by two bytes, positioned right after the name and typecode)
136
137         * bus/bus.c (bus_context_new, bus_context_unref): test before
138         calling dbus_server_free_data_slot and _dbus_user_database_unref
139         in case of an error.
140
141         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
142         by libdbus-gtool.
143
144 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
145
146         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
147         _dbus_poll() instead of select().
148
149 2004-04-15  Jon Trowbridge  <trow@ximian.com>
150
151         * bus/main.c (signal_handler): Reload the configuration files
152         on SIGHUP.
153         (main): Set up our SIGHUP handler.
154
155         * bus/bus.c (struct BusContext): Store the config file, user and
156         fork flag in the BusContext.
157         (process_config_first_time_only): Added.  Contains the code
158         (previously in bus_context_new) for setting up the BusContext from
159         the BusConfigParser that should only be run the first time the
160         config files are read.
161         (process_config_every_time): Added.  Contains the code (previously
162         in bus_context_new) for setting up the BusContext from the
163         BusConfigParser that should be run every time the config files are
164         read.
165         (load_config): Added.  Builds a BusConfigParser from the config
166         files and passes the resulting structure off to
167         process_config_first_time_only (assuming this is the first time)
168         and process_config_every_time.
169         (bus_context_new): All of the config-related code has been moved
170         to process_config_first_time_only and process_config_every_time.
171         Now this function just does the non-config-related initializations
172         and calls load_config.
173         (bus_context_reload_config): Added.
174
175 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
176
177         * bus/driver.c (bus_driver_handle_get_service_owner):
178         implement a GetServiceOwner method.
179         * doc/dbus-specification.xml: document it.
180         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
181         
182         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
183         implement, using the bus GetServiceOwner method.
184
185         * test/glib/test-dbus-glib.c:
186         use dbus_gproxy_new_for_service_owner so that we can receive the
187         signal. 
188
189 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
190
191         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
192         dbus/dbus-message.c, dbus/dbus-protocol.h
193         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
194
195         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
196         dbus/dbus-message.c, dbus/dbus-protocol.h
197         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
198
199         * dbus/dbus-internals.c (_dbus_header_field_to_string):
200         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
201         DBUS_HEADER_FIELD_SENDER resolves to "sender"
202
203         * doc/dbus-specification.xml (Header Fields Table):
204         s/SERVICE/DESTINATION
205         s/SENDER_SERVICE/SENDER
206
207
208 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
209
210         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
211         a few seconds.
212
213 2004-04-13  Michael Meeks  <michael@ximian.com>
214
215         * glib/dbus-gobject.c (handle_introspect): split out
216         (introspect_properties): this.
217         (handle_introspect): implement this.
218
219         * test/glib/Makefile.am: use the absolute path so the bus
220         daemon's chdir ("/") doesn't kill us dead.
221
222         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
223
224 2004-04-12  Jon Trowbridge  <trow@ximian.com>
225
226         * bus/config-parser.c (struct BusConfigParser): Added
227         included_files field.
228         (seen_include): Added.  Checks whether or not a file has already
229         been included by any parent BusConfigParser.
230         (bus_config_parser_new): Copy the parent's included_files.
231         (include_file): Track which files have been included, and fail on
232         circular inclusions.
233         (process_test_valid_subdir): Changed printf to report if we are
234         testing valid or invalid conf files.
235         (all_are_equiv): Changed printf to be a bit clearer about
236         what we are actually doing.
237         (bus_config_parser_test): Test invalid configuration files.
238
239 2004-04-09  Jon Trowbridge  <trow@ximian.com>
240
241         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
242         argument.  If non-null, the newly-constructed BusConfigParser will
243         be initialized with the parent's BusLimits instead of the default
244         values.
245         (include_file): When including a config file, pass in
246         the current parser as the parent and then copy the BusLimits
247         from the included BusConfigParser pack to the current parser.
248         (process_test_valid_subdir): Renamed from process_test_subdir.
249         (process_test_equiv_subdir): Added.  Walks through a directory,
250         descending into each subdirectory and loading the config files
251         it finds there.  If any subdirectory contains two config files
252         that don't produce identical BusConfigParser structs, fail.
253         For now, the BusConfigParser's BusPolicies are not compared.
254         (bus_config_parser_test): Call both process_test_valid_subdir and
255         process_test_equiv_subdir.
256
257         * bus/config-loader-libxml.c (bus_config_load): Take a parent
258         argument and pass it along to the call to bus_config_parser_new.
259         Also made a few small changes to allow this code to compile.
260
261         * bus/config-loader-expat.c (bus_config_load): Take a parent
262         argument and pass it along to the call to bus_config_parser_new.
263
264         * bus/bus.c (bus_context_new): Load the config file
265         with a NULL parent argument.
266
267 2004-03-29  Michael Meeks  <michael@ximian.com>
268
269         * glib/dbus-gobject.c (introspect_properties): split
270         out, fix mangled 'while' flow control.
271         (introspect_signals): implement.
272         (handle_introspect): update.
273
274 2004-03-29  Michael Meeks  <michael@ximian.com>
275
276         * glib/dbus-gobject.c (set_object_property): split out / 
277         re-work, use the property type, and not the message type(!)
278         (get_object_property): ditto.
279
280         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
281         (dbus_gvalue_marshal): make this code re-usable, needed
282         for signals too, also on both proxy and server side.
283         Re-write for more efficiency / readability.
284
285 2004-03-29  Michael Meeks  <michael@ximian.com>
286
287         * dbus/dbus-message.c
288         (dbus_message_new_error_printf): impl.
289
290         * dbus/dbus-connection.c
291         (dbus_connection_unregister_object_path): fix warning.
292
293         * configure.in: fix no-mono-installed situation.
294
295 2004-03-27  Havoc Pennington  <hp@redhat.com>
296
297         Patch from Timo Teräs:
298         
299         * tools/dbus-send.c (main): if --print-reply, assume type is
300         method call; support boolean type args
301         
302         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
303         bunch of memleak and logic bugs
304         
305 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
306
307         * mono/Arguments.cs:
308         * mono/Introspector.cs:
309         * mono/Handler.cs:
310         * mono/InterfaceProxy.cs:
311         * mono/Message.cs
312         * mono/ProxyBuilder.cs:
313         * mono/Service.cs:
314         Added InterfaceProxy class to avoid building proxies for every
315         object.
316
317         * dbus-message.h:
318         * dbus-message.c (dbus_message_append_args_valist)
319         (dbus_message_iter_get_object_path)
320         (dbus_message_iter_get_object_path_array)
321         (dbus_message_iter_append_object_path)
322         (dbus_message_iter_append_object_path_array):
323         Added object_path iter functions to handle OBJECT_PATH arguments
324         
325 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
326
327         First checkin of mono bindings.
328         * configure.in:
329         * Makefile.am:
330         Build stuff for the bindings
331         * dbus-sharp.pc.in: Added for pkgconfig
332         
333 2004-03-21  Havoc Pennington  <hp@redhat.com>
334
335         * test/test-service.c (main): remove debug spew
336
337 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
338
339         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
340         arrays
341
342         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
343         (dbus_message_iter_init_array_iterator)
344         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
345         indicate whether the iterator is empty
346
347         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
348         warnings
349
350 2004-03-19  Havoc Pennington  <hp@redhat.com>
351
352         * NEWS: 0.21 updates
353
354         * configure.in: 0.21
355
356         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
357         
358         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
359         you don't need pyrex to make dist
360
361         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
362         sources; run moc
363         
364 2004-03-18  Richard Hult  <richard@imendio.com>
365
366         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
367         (dbus_message_set_auto_activation): Add doxygen docs.
368
369 2004-03-16  Richard Hult  <richard@imendio.com>
370
371         * bus/activation.c: (bus_activation_service_created),
372         (bus_activation_send_pending_auto_activation_messages),
373         (bus_activation_activate_service):
374         * bus/activation.h:
375         * bus/dispatch.c: (bus_dispatch),
376         (check_nonexistent_service_auto_activation),
377         (check_service_auto_activated),
378         (check_segfault_service_auto_activation),
379         (check_existent_service_auto_activation), (bus_dispatch_test):
380         * bus/driver.c: (bus_driver_handle_activate_service):
381         * bus/services.c: (bus_registry_acquire_service):
382         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
383         (dbus_message_get_auto_activation):
384         * dbus/dbus-message.h:
385         * dbus/dbus-protocol.h: Implement auto-activation.
386         
387         * doc/dbus-specification.xml: Add auto-activation to the spec.
388
389 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
390
391         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
392         fix a bug with CUSTOM types.
393
394         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
395         a unit test for this bug (used to fail).
396
397 2004-03-12  Mikael Hallendal  <micke@imendio.com>
398
399         * bus/activation.c:
400         (babysitter_watch_callback): notify all pending activations waiting for
401           the same exec that the activation failed.
402         (bus_activation_activate_service): shortcut the activation if we 
403           already waiting for the same executable to start up.
404
405 2004-03-12  Mikael Hallendal  <micke@imendio.com>
406
407         * bus/activation.c: 
408         - Added service file reloading. 
409           Each service files directory is kept in an hash table in 
410           BusActivation and each BusActivationEntry knows what .service-file it
411           was read from. So when you try to activate a service the bus will 
412           check if it's been updated, removed or if new .service-files has 
413           been installed.
414         - Test code at the bottom for the service file reloading.
415         * bus/test-main.c: (main):
416         * bus/test.h:
417         - added service reloading test.
418         * dbus/dbus-sysdeps.c: 
419         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
420
421 2004-03-08  Michael Meeks  <michael@ximian.com>
422
423         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
424         bail immediately if disconnected, to avoid busy loop.
425
426         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
427         cleanup cut/paste/inefficiency.
428
429 2004-03-01  David Zeuthen  <david@fubar.dk>
430
431         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
432         bug where args were used twice. This bug resulted in a segfault
433         on a Debian/PPC system when starting the messagebus daemon. Include
434         dbus-sysdeps.h for DBUS_VA_COPY
435
436         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
437
438         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
439         appropriate va_copy implementation. From GLib
440         
441 2004-02-24  Joe Shaw  <joe@ximian.com>
442
443         * bus/services.c (bus_registry_acquire_service): We need to pass
444         in the service name to dbus_set_error() to prevent a crash.
445
446 2003-12-26  Anders Carlsson  <andersca@gnome.org>
447
448         * AUTHORS: Reveal my True identity.
449
450 2003-12-17  Mikael Hallendal  <micke@imendio.com>
451
452         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
453         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
454
455 2003-12-13  Mikael Hallendal  <micke@imendio.com>
456
457         * doc/TODO: Added not about better error check of configuration files.
458
459 2003-12-02  Richard Hult  <richard@imendio.com>
460
461         * Update AFL version to 2.0 throughout the source files to reflect
462         the update that was done a while ago.
463
464 2003-12-02  Richard Hult  <richard@imendio.com>
465
466         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
467         wrote_dict_key to FALSE on the iter that the dict is appended to,
468         just like when appending other types. Fixes a bug where a dict
469         couldn't be put inside a dict.
470         (dbus_message_iter_append_dict_key): Fix typo in warning message.
471         (message_iter_test, _dbus_message_test): Add test case for dict
472         inside dict.
473
474 2003-12-01  David Zeuthen  <david@fubar.dk>
475
476         * python/dbus.py: Add the actual message when calling the reciever
477         of a signal such that parameters can be inspected. Add the method
478         remove_signal_receiver
479         
480 2003-11-26  Mikael Hallendal  <micke@imendio.com>
481
482         * bus/*.[ch]:
483         * dbus/*.[ch]:
484         * glib/*.[ch]: Made ref functions return the pointer
485
486 2003-11-25  Zack Rusin  <zack@kde.org>
487
488         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
489
490         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
491         wrappers,
492
493         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
494         the Integrator and to better fit with the server,
495
496 2003-11-24  Zack Rusin  <zack@kde.org>
497
498         * qt/connection.h, qt/connection.cpp: removing initDbus method since
499         the integrator handles it now
500
501         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
502         since QTimer wasn't really meant to be used the way DBusTimeout is
503
504 2003-11-24  Zack Rusin  <zack@kde.org>
505
506         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
507         Integrator class which integrates D-BUS with the Qt event loop,
508
509         * qt/connection.h, qt/connection.cpp: Move all the code which
510         was dealing with D-BUS integration to the Integrator class,
511         and start using Integrator,
512
513 2003-11-23  Zack Rusin  <zack@kde.org>
514
515         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
516         wrapper
517
518         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
519         switching namespaces to DBusQt, reworking the class,
520
521         * Makefile.cvs: switching dependencies so that it matches KDE 
522         schematics,
523         
524         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
525         the library
526
527 2003-11-19  Havoc Pennington  <hp@redhat.com>
528
529         * NEWS: update
530
531         * configure.in: bump version to 0.20
532
533         * configure.in (have_qt): add yet another place to look for qt
534         (someone hand trolltech a .pc file...)
535
536 2003-11-01  Havoc Pennington  <hp@redhat.com>
537
538         * doc/dbus-specification.xml: add state machine docs on the auth
539         protocol; just a first draft, I'm sure it's wrong.      
540
541 2003-10-28  David Zeuthen  <david@fubar.dk>
542
543         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
544         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
545         
546 2003-10-28  Havoc Pennington  <hp@redhat.com>
547
548         * dbus/dbus-message.c (get_next_field): delete unused function
549
550 2003-10-28  Havoc Pennington  <hp@redhat.com>
551
552         * bus/expirelist.c (do_expiration_with_current_time): detect
553         failure of the expire_func due to OOM
554
555         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
556
557         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
558         NoReply error that's now created by the bus when the service exits
559
560 2003-10-28  Havoc Pennington  <hp@redhat.com>
561
562         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
563         tests for set_path, set_interface, set_member, etc.
564
565         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
566
567         * dbus/dbus-message.c (set_string_field): always just delete and
568         re-append the field; accept NULL for deletion
569         (re_align_fields_recurse): reimplement
570         
571 2003-10-26  Havoc Pennington  <hp@redhat.com>
572
573         * dbus/dbus-connection.c: fix docs to properly describe the
574         disconnected message
575         (_dbus_connection_notify_disconnected): remove this function; 
576         we can't synchronously add the disconnected message, we have to 
577         do it after we've queued any remaining real messages
578         (_dbus_connection_get_dispatch_status_unlocked): queue the
579         disconnect message only if the transport has finished queueing all
580         its real messages and is disconnected.
581         (dbus_connection_disconnect): update the dispatch status here
582
583 2003-10-22  Havoc Pennington  <hp@redhat.com>
584
585         * bus/bus.c (bus_context_check_security_policy): fix up assertion
586
587         * bus/connection.c (bus_transaction_send_from_driver): set the
588         destination to the connection's base service
589
590 2003-10-20  Havoc Pennington  <hp@redhat.com>
591
592         hmm, make check is currently not passing.
593         
594         * doc/dbus-specification.xml: add requirement that custom type
595         names follow the same rules as interface names.
596
597         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
598         duplication and allow 'c' to be 'custom'; dict is now 'm' for
599         'map'
600
601         * doc/dbus-specification.xml: update type codes to match
602         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
603         CUSTOM. Add type OBJECT_PATH to the spec.
604
605 2003-10-17  Havoc Pennington  <hp@redhat.com>
606
607         * bus/driver.c (create_unique_client_name): use "." as separator
608         in base service names instead of '-'
609
610         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
611         byte at the end of the string
612
613         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
614         optimization macros since string validation seems to be a slow
615         point.
616         
617         * doc/dbus-specification.xml: restrict valid
618         service/interface/member/error names. Add test suite code for the
619         name validation.
620
621         * dbus/dbus-string.c: limit service/interface/member/error names 
622         to [0-9][A-Z][a-z]_
623
624         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
625         format arg to verbose spew
626
627         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
628         memory, return instead of g_error
629
630         * test/test-service.c (path_message_func): support emitting a
631         signal on request
632
633         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
634         activation bus type if DBUS_BUS_ACTIVATION was set; default to
635         assuming the activation bus was the session bus so that services
636         started manually will still register.
637         (init_connections_unlocked): fix so that in OOM situation we get
638         the same semantics when retrying the function
639         
640         * test/test-service.c (main): change to use path registration, to
641         test those codepaths; register with DBUS_BUS_ACTIVATION rather
642         than DBUS_BUS_SESSION
643
644 2003-10-16  Havoc Pennington  <hp@redhat.com>
645
646         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
647
648         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
649         coverage of the tests
650         (coverage-report.txt): don't move the .da and .bbg files around
651
652 2003-10-16  Havoc Pennington  <hp@redhat.com>
653
654         * bus/bus.c (struct BusContext): remove struct field I didn't mean
655         to put there
656
657 2003-10-16  Havoc Pennington  <hp@redhat.com>
658
659         * bus/connection.c (bus_pending_reply_expired): either cancel or
660         execute, not both
661         (bus_connections_check_reply): use unlink, not remove_link, as we
662         don't want to free the link; fixes double free mess
663
664         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
665         where no reply was received
666
667         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
668         fix a refcount leak
669
670         * bus/signals.c (match_rule_matches): add special cases for the
671         bus driver, so you can match on sender/destination for it.
672
673         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
674         DBUS_PRINT_BACKTRACE is set
675
676         * dbus/dbus-internals.c: add pid to assertion failure messages
677
678         * dbus/dbus-connection.c: add message type code to the debug spew
679
680         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
681         sender=foo not service=foo
682
683         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
684         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
685         DBUS_ACTIVATION_ADDRESS instead
686
687         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
688         DBUS_SYSTEM_BUS_ADDRESS if appropriate
689
690         * bus/bus.c (bus_context_new): handle OOM copying bus type into
691         context struct
692
693         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
694         (dbus_message_iter_get_object_path_array): new function (half
695         finished, disabled for the moment)
696         
697         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
698         DBUS_MESSAGE_TYPE_ERROR
699
700         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
701         avoid redirecting stderr to /dev/null
702         (babysit): close stdin if not doing the "exit_with_session" thing
703
704         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
705         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
706         stdout/stdin, so things don't get confused
707         
708         * bus/system.conf.in: fix to allow replies, I modified .conf
709         instead of .conf.in again.
710
711 2003-10-14  David Zeuthen  <david@fubar.dk>
712
713         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
714         argtype to arg_type when raising unknown arg type exception.
715         Changed type list to reflect the changes in dbus-protocol.h so 
716         the bindings actually work.
717
718 2003-10-14  Havoc Pennington  <hp@redhat.com>
719
720         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
721         to have a bug keeping it from outputting the .da files sometimes
722         (string_get_string): don't append garbage nul bytes to the string.
723
724 2003-10-15  Seth Nickell  <seth@gnome.org>
725
726         * python/Makefile.am:
727
728         Include dbus_h_wrapper.h in the dist tarball.
729
730 2003-10-14  Havoc Pennington  <hp@redhat.com>
731
732         * bus/bus.c (bus_context_check_security_policy): revamp this to
733         work more sanely with new policy-based requested reply setup
734
735         * bus/connection.c (bus_transaction_send_from_driver): set bus
736         driver messages as no reply
737
738         * bus/policy.c (bus_client_policy_check_can_receive): handle a
739         requested_reply attribute on allow/deny rules
740
741         * bus/system.conf: add <allow requested_reply="true"/>
742
743         * bus/driver.c (bus_driver_handle_message): fix check for replies
744         sent to the bus driver, which was backward. How did this ever work
745         at all though? I think I'm missing something.
746
747         * dbus/dbus-message.c (decode_header_data): require error and
748         method return messages to have a reply serial field to be valid
749         (_dbus_message_loader_queue_messages): break up this function;
750         validate that reply serial and plain serial are nonzero; 
751         clean up the OOM/error handling.
752         (get_uint_field): don't return -1 from this
753         (dbus_message_create_header): fix signed/unsigned bug
754
755         * bus/connection.c (bus_connections_expect_reply): save serial of
756         the incoming message, not reply serial
757
758 2003-10-14  Havoc Pennington  <hp@redhat.com>
759
760         * bus/connection.c: implement pending reply tracking using
761         BusExpireList
762
763         * bus/bus.c (bus_context_check_security_policy): verify that a
764         reply is pending in order to allow a reply to be sent. Deny 
765         messages of unknown type.
766
767         * bus/dbus-daemon-1.1.in: update to mention new resource limits
768
769         * bus/bus.c (bus_context_get_max_replies_per_connection): new
770         (bus_context_get_reply_timeout): new
771
772 2003-10-13  Seth Nickell  <seth@gnome.org>
773
774         * python/Makefile.am:
775
776         Pass "make distcheck": remove a couple files from DIST_FILES
777         that weren't included in the final version.
778
779 2003-10-12  Havoc Pennington  <hp@pobox.com>
780
781         Added test code that 1) starts an actual bus daemon and 2) uses
782         DBusGProxy; fixed bugs that were revealed by the test. Lots 
783         more testing possible, but this is the basic framework.
784         
785         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
786         empty proxy lists from the proxy list hash
787
788         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
789         couple of return_if_fail checks
790
791         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
792         to allocate, so everything is cleared to NULL as it should be.
793
794         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
795         source as data to dbus_connection_set_timeout_functions() as the 
796         timeout functions expected
797
798         * test/glib/run-test.sh: add a little script to start up a message
799         bus and run tests using it
800
801         * tools/dbus-launch.1: updates
802
803         * tools/dbus-launch.c (main): add --config-file option
804
805         * tools/dbus-launch.c (main): remove confusing else if (runprog)
806         that could never be reached.
807
808         * dbus/dbus-message.c (dbus_message_new_method_return) 
809         (dbus_message_new_error, dbus_message_new_signal): set the
810         no-reply-expected flag on all these. Redundant, but may
811         as well be consistent.
812
813 2003-10-11  Havoc Pennington  <hp@pobox.com>
814
815         * test/decode-gcov.c (function_solve_graph): make broken block
816         graph a nonfatal error since it seems to be broken. Need to debug
817         this.
818
819         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
820         can't just check type > INVALID < LAST anymore
821
822         * dbus/dbus-message.c (dbus_message_get_signature): new function
823         (dbus_message_has_signature): new function
824         (struct DBusMessage): add signature field (right now it isn't sent
825         over the wire, just generated on the fly)
826         (dbus_message_copy): copy the signature, and init strings to
827         proper length to avoid some reallocs
828         (dbus_message_iter_init_array_iterator): return void, since it
829         can't fail
830         (dbus_message_iter_init_dict_iterator): return void since it can't fail
831         (_dbus_message_loader_queue_messages): add silly temporary hack to
832         fill in message->signature on load
833
834         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
835         characters, so they are relatively human-readable.
836
837 2003-10-11  Havoc Pennington  <hp@pobox.com>
838
839         * dbus/dbus-message.c (_dbus_message_test): add more test
840         coverage, but #if 0 for now since they uncover a bug 
841         not fixed yet; I think in re_align_field_recurse()
842         (re_align_field_recurse): add FIXME about broken assertion
843
844         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
845
846         * bus/connection.c: share a couple code bits with expirelist.c
847
848         * bus/expirelist.h, bus/expirelist.c: implement a generic
849         expire-items-after-N-seconds facility, was going to share between
850         expiring connections and replies, decided not to use for expiring
851         connections for now.
852
853         * COPYING: include AFL 2.0 (still need to change all the file headers)
854
855 2003-10-09  Havoc Pennington  <hp@redhat.com>
856
857         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
858         gcc 3.3. Not that we do anything about it yet.
859
860         * bus/signals.c (bus_match_rule_parse): impose max length on the
861         match rule text
862
863         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
864
865 2003-10-09  Havoc Pennington  <hp@redhat.com>
866
867         Make matching rules theoretically work (add parser).
868         
869         * bus/bus.c (bus_context_check_security_policy): fix up to handle
870         the case where destination is explicitly specified as bus driver
871         and someone else is eavesdropping.
872         
873         * bus/policy.c (bus_client_policy_check_can_receive): fix up
874         definition of eavesdropping and assertion
875
876         * tools/dbus-send.c (main): use dbus_message_type_from_string
877
878         * bus/signals.c (bus_match_rule_parse): implement
879
880         * dbus/dbus-message.c (dbus_message_type_from_string): new
881
882         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
883
884 2003-10-02  Havoc Pennington  <hp@pobox.com>
885
886         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
887         dbus_gproxy_oneway_call
888
889         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
890         (dbus_server_setup_with_g_main): fix to allow calling them more
891         than once on the same args
892         (dbus_bus_get_with_g_main): new function
893
894 2003-10-02  Havoc Pennington  <hp@redhat.com>
895
896         * doc/dbus-tutorial.xml: write some stuff
897
898 2003-09-29  Havoc Pennington  <hp@pobox.com>
899
900         * configure.in: split checks for Doxygen from XML docs, check for
901         xmlto
902
903         * doc/Makefile.am: XML-ify all the docs, and add a blank
904         dbus-tutorial.xml
905
906 2003-09-29  Havoc Pennington  <hp@pobox.com>
907
908         * Merge dbus-object-names branch. To see the entire patch 
909         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
910         it's huuuuge though.
911         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
912         
913 2003-09-28  Havoc Pennington  <hp@pobox.com>
914
915         * HACKING: update to reflect new server
916
917 2003-09-26  Seth Nickell  <seth@gnome.org>
918
919         * python/dbus.py:
920         * python/examples/example-signals.py:
921
922         Start implementing some notions of signals. The API
923         is really terrible, but they sort of work (with the
924         exception of being able to filter by service, and to
925         transmit signals *as* a particular service). Need to
926         figure out how to make messages come from the service
927         we registered :-(
928         
929         * python/dbus_bindings.pyx.in:
930
931         Removed duplicate message_handler callbacks.
932         
933 2003-09-25  Havoc Pennington  <hp@redhat.com>
934
935         * bus/session.conf.in: fix my mess
936
937 2003-09-25  Havoc Pennington  <hp@pobox.com>
938
939         * bus/session.conf.in: fix security policy, reported by Seth Nickell
940
941 2003-09-25  Seth Nickell  <seth@gnome.org>
942
943         * python/examples/example-service.py:
944
945         Johan notices complete wrong code in example-service, but
946         completely wrong in a way that works exactly the same (!).
947         Johan is confused, how could this possibly work? Example
948         code fails to serve purpose of making things clear.
949         Seth fixes.
950
951 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
952
953         * doc/dbus-specification.sgml: don't require header fields
954         to be 4-byte aligned and specify that fields should be
955         distinguished from padding by the fact that zero is not
956         a valid field name.
957         
958         * doc/TODO: remove re-alignment item and add item to doc
959         the OBJECT_PATH type.
960         
961         * dbus/dbus-message.c:
962         (HeaderField): rename the original member to value_offset
963         and introduce a name_offset member to keep track of where
964         the field actually begins.
965         (adjust_field_offsets): remove.
966         (append_int_field), (append_uint_field),
967         (append_string_field): don't align the start of the header
968         field to a 4-byte boundary.
969         (get_next_field): impl finding the next marhsalled field
970         after a given field.
971         (re_align_field_recurse): impl re-aligning a number of
972         already marshalled fields.
973         (delete_field): impl deleting a field of any type and
974         re-aligning any following fields.
975         (delete_int_or_uint_field), (delete_string_field): remove.
976         (set_int_field), (set_uint_field): no need to re-check
977         that we have the correct type for the field.
978         (set_string_field): ditto and impl re-aligning any
979         following fields.
980         (decode_header_data): update to take into account that
981         the fields aren't 4-byte aligned any more and the new
982         way to distinguish padding from header fields. Also,
983         don't exit when there is too much header padding.
984         (process_test_subdir): print the directory.
985         (_dbus_message_test): add test to make sure a following
986         field is re-aligned correctly after field deletion.
987         
988         * dbus/dbus-string.[ch]:
989         (_dbus_string_insert_bytes): rename from insert_byte and
990         allow the insert of multiple bytes.
991         (_dbus_string_test): test inserting multiple bytes.
992
993         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
994         warning note to docs about having to re-align any
995         marshalled values following the string.
996         
997         * dbus/dbus-message-builder.c:
998         (append_string_field), (_dbus_message_data_load):
999         don't align the header field.
1000         
1001         * dbus/dbus-auth.c: (process_test_subdir): print the
1002         directory.
1003         
1004         * test/break-loader.c: (randomly_add_one_byte): upd. for
1005         insert_byte change.
1006         
1007         * test/data/invalid-messages/bad-header-field-alignment.message:
1008         new test case.
1009         
1010         * test/data/valid-messages/unknown-header-field.message: shove
1011         a dict in the unknown field.
1012
1013 2003-09-25  Seth Nickell  <seth@gnome.org>
1014
1015         * python/dbus.py:
1016         * python/dbus_bindings.pyx.in:
1017
1018         Handle return values.
1019         
1020         * python/examples/example-client.py:
1021         * python/examples/example-service.py:
1022
1023         Pass back return values from the service to the client.
1024         
1025 2003-09-24  Seth Nickell  <seth@gnome.org>
1026
1027         * python/dbus.py:
1028
1029         Connect Object methods (when you are sharing an object) up... pass
1030         in a list of methods to be shared. Sharing all the methods just
1031         worked out too weird. You can now create nice Services over the
1032         DBus in Python. :-)
1033         
1034         * python/dbus_bindings.pyx.in:
1035
1036         Keep references to user_data tuples passed into C functions so 
1037         Python doesn't garbage collect on us.
1038
1039         Implement MethodReturn and Error subclasses of Message for creating
1040         DBusMessage's of those types.
1041         
1042         * python/examples/example-client.py:
1043         * python/examples/example-service.py:
1044
1045         Simple example code showing both how create DBus services and objects,
1046         and how to use them.
1047
1048 2003-09-23  Havoc Pennington  <hp@pobox.com>
1049
1050         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
1051
1052 2003-09-23  Havoc Pennington  <hp@redhat.com>
1053
1054         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
1055         (dbus_gproxy_disconnect_signal): implement
1056         (dbus_gproxy_manager_remove_signal_match): implement
1057         (dbus_gproxy_manager_add_signal_match): implement
1058         (dbus_gproxy_oneway_call): implement
1059
1060 2003-09-23  Havoc Pennington  <hp@pobox.com>
1061
1062         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
1063         subclass. This means dropping the transparent thread safety of the
1064         proxy; you now need a separate proxy per-thread, or your own
1065         locking on the proxy. Probably right anyway.
1066         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
1067
1068 2003-09-22  Havoc Pennington  <hp@redhat.com>
1069
1070         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
1071
1072 2003-09-21  Seth Nickell  <seth@gnome.org>
1073
1074         First checkin of the Python bindings.
1075         
1076         * python/.cvsignore:
1077         * python/Makefile.am:
1078         * python/dbus_bindings.pyx.in:
1079         * python/dbus_h_wrapper.h:
1080
1081         Pieces for Pyrex to operate on, building a dbus_bindings.so
1082         python module for low-level access to the DBus APIs.
1083         
1084         * python/dbus.py:
1085
1086         High-level Python module for accessing DBus objects.
1087
1088         * configure.in:
1089         * Makefile.am:
1090
1091         Build stuff for the python bindings.
1092
1093         * acinclude.m4:
1094
1095         Extra macro needed for finding the Python C header files.
1096
1097 2003-09-21  Havoc Pennington  <hp@pobox.com>
1098
1099         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
1100         implementing the proxy manager, didn't get very far.
1101
1102         * dbus/dbus-bus.c (dbus_bus_add_match): new
1103         (dbus_bus_remove_match): new
1104
1105         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
1106         path_name argument; adjust the other not-yet-implemented 
1107         gproxy constructors to be what I think they should be.
1108
1109 2003-09-21  Havoc Pennington  <hp@pobox.com>
1110
1111         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
1112         by default for message bus connections.
1113
1114         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
1115         exit_on_disconnect flag is set and we process the disconnected
1116         signal.
1117         (dbus_connection_set_exit_on_disconnect): new function
1118
1119 2003-09-21  Havoc Pennington  <hp@pobox.com>
1120
1121         Get matching rules mostly working in the bus; only actually
1122         parsing the rule text remains. However, the client side of
1123         "signal connections" hasn't been started, this patch is only the
1124         bus side.
1125         
1126         * dbus/dispatch.c: fix for the matching rules changes
1127         
1128         * bus/driver.c (bus_driver_handle_remove_match)
1129         (bus_driver_handle_add_match): send an ack reply from these
1130         method calls
1131
1132         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
1133         arguments, reported by Seth Nickell
1134
1135         * bus/config-parser.c (append_rule_from_element): support
1136         eavesdrop=true|false attribute on policies so match rules 
1137         can be prevented from snooping on the system bus.
1138
1139         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
1140         and "destination" in attribute names; fix some docs bugs; 
1141         add eavesdrop=true|false attribute
1142
1143         * bus/driver.c (bus_driver_handle_add_match)
1144         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
1145         messages
1146
1147         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
1148         rid of broadcast service concept, signals are just always broadcast
1149
1150         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
1151         mostly implement matching rules stuff (currently only exposed as signal
1152         connections)
1153
1154 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
1155
1156         * doc/dbus-specification.sgml: Change the header field name
1157         to be an enum and update the rest of the spec to reference
1158         the fields using the conventinal name.
1159
1160         * dbus/dbus-protocol.h: update to reflect the spec.
1161
1162         * doc/TODO: add item to remove the 4 byte alignment requirement.
1163         
1164         * dbus/dbus-message.c: Remove the code to generalise the
1165         header/body length and serial number header fields as named
1166         header fields so we can reference field names using the 
1167         protocol values.
1168         (append_int_field), (append_uint_field), (append_string_field):
1169         Append the field name as a byte rather than four chars.
1170         (delete_int_or_uint_field), (delete_string_field): reflect the
1171         fact that the field name and typecode now occupy 4 bytes instead
1172         of 8.
1173         (decode_string_field), (decode_header_data): update to reflect
1174         protocol changes and move the field specific encoding from
1175         decode_string_field() back into decode_header_data().
1176         
1177         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
1178         Add utility to aid debugging.
1179         
1180         * dbus/dbus-message-builder.c:
1181         (append_string_field), (_dbus_message_data_load): Update to
1182         reflect protocol changes; Change the FIELD_NAME directive
1183         to HEADER_FIELD and allow it to take the field's conventional
1184         name rather than the actual value.
1185         
1186         * test/data/*/*.message: Update to use HEADER_FIELD instead
1187         of FIELD_NAME; Always align the header on an 8 byte boundary
1188         *before* updating the header length.
1189
1190 2003-09-15  Havoc Pennington  <hp@pobox.com>
1191
1192         * dbus/dbus-pending-call.c: add the get/set object data
1193         boilerplate as for DBusConnection, etc. Use generic object data
1194         for the notify callback.
1195
1196         * glib/dbus-gparser.c (parse_node): parse child nodes
1197
1198         * tools/dbus-viewer.c: more hacking on the dbus-viewer
1199         
1200         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
1201         contain functions shared between the convenience lib and the
1202         installed lib
1203
1204         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
1205         -export-symbols-regex to the GLib library
1206
1207         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
1208         fix the locking in here, and add a default handler for
1209         Introspect() that just returns sub-nodes.
1210
1211 2003-09-14  Havoc Pennington  <hp@pobox.com>
1212
1213         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
1214         rather than gfoo consistent
1215
1216         * glib/dbus-gproxy.h: delete for now, move contents to
1217         dbus-glib.h, because the include files don't work right since we
1218         aren't in the dbus/ subdir.
1219         
1220         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
1221         (dbus_gproxy_end_call): finish
1222         (dbus_gproxy_begin_call): finish
1223
1224         * glib/dbus-gmain.c (dbus_set_g_error): new
1225
1226         * glib/dbus-gobject.c (handle_introspect): include information
1227         about child nodes in the introspection
1228
1229         * dbus/dbus-connection.c (dbus_connection_list_registered): new
1230         function to help in implementation of introspection
1231
1232         * dbus/dbus-object-tree.c
1233         (_dbus_object_tree_list_registered_and_unlock): new function
1234
1235 2003-09-12  Havoc Pennington  <hp@pobox.com>
1236
1237         * glib/dbus-gidl.h: add common base class for all the foo_info
1238         types
1239
1240         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
1241         similar to kdcop
1242
1243         * test/Makefile.am: try test srcdir -ef . in addition to test
1244         srcdir = ., one of them should work (yeah lame)
1245         
1246         * glib/Makefile.am: build the "idl" parser stuff as a convenience
1247         library
1248         
1249         * glib/dbus-gparser.h: make description_load routines return
1250         NodeInfo* not Parser*
1251
1252         * Makefile.am (SUBDIRS): build test dir after all library dirs
1253
1254         * configure.in: add GTK+ detection
1255
1256 2003-09-07  Havoc Pennington  <hp@pobox.com>
1257
1258         * Make Doxygen contented.
1259
1260 2003-09-07  Havoc Pennington  <hp@pobox.com>
1261
1262         * doc/dbus-specification.sgml: more updates
1263
1264 2003-09-06  Havoc Pennington  <hp@pobox.com>
1265
1266         * doc/dbus-specification.sgml: partial updates
1267
1268         * bus/dbus-daemon-1.1.in: fix the config file docs for the
1269         zillionth time; hopefully I edited the right file this time.
1270
1271         * bus/config-parser.c (append_rule_from_element): support
1272         send_type, send_path, receive_type, receive_path
1273
1274         * bus/policy.c: add message type and path to the list of things
1275         that can be "firewalled"
1276
1277 2003-09-06  Havoc Pennington  <hp@pobox.com>
1278
1279         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
1280         (dbus_connection_register_object_path): make this not handle
1281         messages to paths below the given path
1282
1283 2003-09-03  Havoc Pennington  <hp@pobox.com>
1284
1285         * test/glib/Makefile.am: add this with random glib-linked test
1286         programs
1287
1288         * glib/Makefile.am: remove the random test programs from here,
1289         leave only the unit tests
1290
1291         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
1292         uscore/javacaps conversion, and fix     
1293         (get_object_property, set_object_property): change to .NET
1294         convention for mapping props to methods, set_FooBar/get_FooBar, 
1295         since one language has such a convention we may as well copy it. 
1296         Plus real methods in either getFooBar or get_foo_bar style won't 
1297         collide with this convention.
1298
1299 2003-09-01  Havoc Pennington  <hp@pobox.com>
1300
1301         * glib/dbus-gparser.c: implement
1302
1303         * glib/dbus-gobject.c: start implementing skeletons support
1304
1305         * configure.in: when disabling checks/assert, also define
1306         G_DISABLE_ASSERT and G_DISABLE_CHECKS
1307
1308 2003-09-01  Havoc Pennington  <hp@pobox.com>
1309
1310         * glib/Makefile.am: rearrange a bunch of files and get "make
1311         check" framework set up
1312
1313 2003-08-31  Havoc Pennington  <hp@pobox.com>
1314
1315         * fix build with --disable-tests
1316
1317 2003-08-30  Havoc Pennington  <hp@pobox.com>
1318
1319         * dbus/dbus-connection.c: purge DBusMessageHandler
1320
1321         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
1322         use callbacks everywhere
1323
1324 2003-08-30  Havoc Pennington  <hp@pobox.com>
1325
1326         * test/data/valid-config-files/system.d/test.conf: change to 
1327         root for the user so warnings don't get printed
1328
1329         * dbus/dbus-message.c: add dbus_message_get_path,
1330         dbus_message_set_path
1331         
1332         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
1333         dispatching to a path
1334
1335         * dbus/dbus-string.c (_dbus_string_validate_path): add
1336
1337         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
1338         (_dbus_marshal_object_path): implement
1339
1340         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
1341         to contain the path to the target object
1342         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
1343         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
1344
1345 2003-08-30  Havoc Pennington  <hp@pobox.com>
1346
1347         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
1348
1349 2003-08-29  Havoc Pennington  <hp@pobox.com>
1350
1351         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
1352         registered
1353         (struct DBusObjectSubtree): shrink this
1354         a lot, since we may have a lot of them
1355         (_dbus_object_tree_free_all_unlocked): implement
1356         (_dbus_object_tree_dispatch_and_unlock): implement
1357
1358 2003-08-29  Havoc Pennington  <hp@pobox.com>
1359
1360         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
1361
1362 2003-08-28  Havoc Pennington  <hp@pobox.com>
1363
1364         purge DBusObjectID
1365         
1366         * dbus/dbus-connection.c: port to no ObjectID, create a
1367         DBusObjectTree, rename ObjectTree to ObjectPath in public API
1368
1369         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
1370         everything except UnregisterFunction and MessageFunction
1371         
1372         * dbus/dbus-marshal.c: port away from DBusObjectID, 
1373         add DBUS_TYPE_OBJECT_PATH
1374         
1375         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
1376         dbus/dbus-objectid.[hc]: remove these, we are moving to 
1377         path-based object IDs
1378
1379 2003-08-25  Havoc Pennington  <hp@pobox.com>
1380
1381         Just noticed that dbus_message_test is hosed, I wonder when I
1382         broke that. I thought make check was passing earlier...
1383         
1384         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
1385         container tree, will replace most of dbus-object-registry
1386
1387         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
1388         screwup
1389
1390 2003-08-19  Havoc Pennington  <hp@pobox.com>
1391
1392         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
1393         (dbus_message_is_error): fix this function
1394
1395         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
1396         match
1397
1398         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
1399         reflect clarified man page
1400         (bus_client_policy_check_can_send): ditto
1401         
1402         * bus/session.conf.in: fixup
1403
1404         * bus/system.conf.in: fixup
1405
1406 2003-08-18  Havoc Pennington  <hp@redhat.com>
1407
1408         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
1409
1410         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1411         dumb bug created earlier (wrong order of args to
1412         decode_header_data())
1413         
1414         * tools/dbus-send.c: port
1415
1416         * tools/dbus-print-message.c (print_message): port
1417
1418         * test/data/*messages: port all messages over
1419         
1420         * dbus/dbus-message-builder.c: support including 
1421         message type
1422         
1423         * bus/driver.c: port over
1424         
1425         * bus/dispatch.c: port over to new stuff
1426
1427         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1428         rename disconnect signal to "Disconnected"
1429
1430 2003-08-17  Havoc Pennington  <hp@pobox.com>
1431
1432         This doesn't compile yet, but syncing up so I can hack on it from
1433         work. What are branches for if not broken code? ;-)
1434         
1435         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
1436         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
1437         DBUS_HEADER_FIELD_ERROR_NAME
1438         
1439         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
1440         for the interface+member pairs
1441         (string_hash): change to use g_str_hash algorithm
1442         (find_direct_function, find_string_function): refactor these to
1443         share most code.
1444         
1445         * dbus/dbus-message.c: port all of this over to support 
1446         interface/member fields instead of name field
1447
1448         * dbus/dbus-object-registry.c: port over
1449         
1450         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
1451         from _dbus_string_validate_name
1452
1453         * bus/dbus-daemon-1.1: change file format for the 
1454         <deny>/<allow> stuff to match new message naming scheme
1455
1456         * bus/policy.c: port over
1457
1458         * bus/config-parser.c: parse new format
1459         
1460 2003-08-16  Havoc Pennington  <hp@pobox.com>
1461
1462         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
1463         broken assertion
1464
1465         * glib/dbus-gproxy.c: some hacking
1466
1467 2003-08-15  Havoc Pennington  <hp@redhat.com>
1468
1469         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
1470
1471         * dbus/dbus-connection.c
1472         (dbus_connection_send_with_reply_and_block): factor out internals;
1473         change to convert any error replies to DBusError instead of 
1474         returning them as a message
1475
1476 2003-08-15  Havoc Pennington  <hp@pobox.com>
1477
1478         * dbus/dbus-connection.c, 
1479         dbus/dbus-pending-call.c: Finish the pending call stuff
1480
1481 2003-08-14  Havoc Pennington  <hp@redhat.com>
1482
1483         * dbus/dbus-pending-call.c: start on new object that will replace
1484         DBusMessageHandler and ReplyHandlerData for tracking outstanding
1485         replies
1486
1487         * dbus/dbus-gproxy.c: start on proxy object used to communicate
1488         with remote interfaces
1489
1490         * dbus/dbus-gidl.c: do the boring boilerplate in here
1491         
1492 2003-08-12  Havoc Pennington  <hp@pobox.com>
1493
1494         * bus/dispatch.c (bus_dispatch): make this return proper 
1495         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
1496
1497         * dbus/dbus-errors.c (dbus_set_error): use
1498         _dbus_string_append_printf_valist
1499
1500         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
1501         (_dbus_string_append_printf): new
1502
1503         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
1504         UNKNOWN_METHOD
1505
1506         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
1507         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
1508         message is unhandled.
1509
1510 2003-08-11  Havoc Pennington  <hp@pobox.com>
1511
1512         * bus/test.c (client_disconnect_handler): change to return
1513         HANDLED (would have been REMOVE_MESSAGE)
1514
1515         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
1516         HANDLED/NOT_YET_HANDLED instead of
1517         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
1518         should be used.
1519
1520 2003-08-10  Havoc Pennington  <hp@pobox.com>
1521
1522         * tools/dbus-send.c (main): add --type argument, for now
1523         supporting only method_call and signal types.
1524
1525         * tools/dbus-print-message.c: print message type
1526
1527         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1528         init connection->objects
1529
1530         * doc/dbus-specification.sgml: fix sgml
1531
1532         * bus/*.c: port over to object-instance API changes
1533
1534         * test/test-service.c: ditto
1535         
1536         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
1537         name, we will have to fix up the rest of the code to also handle
1538         this
1539         (dbus_message_new): generic message-creation call
1540         (set_string_field): allow appending name field
1541
1542 2003-08-06  Havoc Pennington  <hp@pobox.com>
1543
1544         * dbus/dbus-object-registry.c: implement signal connection 
1545         and dispatch
1546
1547         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
1548
1549         * dbus/dbus-internals.c (_dbus_memdup): new function
1550
1551 2003-08-02  Havoc Pennington  <hp@pobox.com>
1552
1553         * dbus/dbus-message.c (dbus_message_get_no_reply)
1554         (dbus_message_set_no_reply): add these and remove
1555         set_is_error/get_is_error
1556
1557         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
1558         remove the ERROR flag, since there's now an ERROR type
1559
1560 2003-08-01  Havoc Pennington  <hp@pobox.com>
1561
1562         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
1563         implement
1564
1565         * dbus/dbus-message.c (dbus_message_get_type): new function
1566
1567         * doc/dbus-specification.sgml: add "type" byte to messages
1568
1569 2003-08-01  Havoc Pennington  <hp@pobox.com>
1570
1571         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
1572         a message type enum to distinguish kinds of message
1573         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
1574         that need not be replied to
1575
1576 2003-08-01  Havoc Pennington  <hp@pobox.com>
1577
1578         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
1579         (unpack_8_octets): fix no-64-bit-int bug
1580
1581         * dbus/dbus-object-registry.c (validate_id): validate the 
1582         connection ID bits, not just the instance ID.
1583
1584         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
1585         the connection-global 33 bits of the object ID
1586
1587         * dbus/dbus-object-registry.c (info_from_entry): fill in 
1588         object ID in the new way
1589
1590         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
1591         define server/client/instance bits.
1592
1593 2003-07-30  Havoc Pennington  <hp@pobox.com>
1594
1595         * dbus/dbus-connection.c (dbus_connection_register_object): fix
1596         build
1597
1598 2003-07-13  Havoc Pennington  <hp@pobox.com>
1599
1600         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
1601         fields to DBusObjectVTable and DBusObjectInfo
1602
1603 2003-07-12  Havoc Pennington  <hp@pobox.com>
1604
1605         * dbus/dbus-object-registry.c: implement unit test,
1606         fix bugs discovered in process
1607
1608         * dbus/dbus-connection.c: remove handler_table and
1609         register_handler(), add DBusObjectRegistry usage
1610
1611         * dbus/dbus-objectid.c (dbus_object_id_is_null)
1612         (dbus_object_id_set_null): new functions
1613
1614 2003-07-08  Havoc Pennington  <hp@pobox.com>
1615
1616         * dbus/dbus-object.c: implement some of this
1617
1618         * dbus/dbus-object-registry.c
1619         (_dbus_object_registry_add_and_unlock): fill in the object_id out
1620         param
1621         (_dbus_object_registry_new): handle OOM
1622
1623 2003-07-08  Havoc Pennington  <hp@pobox.com>
1624
1625         * dbus/dbus-object.h: sketch out an API for registering objects
1626         with a connection, that allows us to use as little as 24 bytes
1627         per object and lets application code represent an object in 
1628         any conceivable way.
1629
1630         * dbus/dbus-object-registry.c: implement the hard bits of the
1631         DBusConnection aspect of object API. Not yet wired up.
1632         
1633 2003-07-06  Havoc Pennington  <hp@pobox.com>
1634
1635         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
1636         (_dbus_marshal_object_id): new
1637         (_dbus_demarshal_object_id): new
1638         (_dbus_marshal_get_arg_end_pos): support object ID type, and
1639         consolidate identical switch cases. Don't conditionalize handling
1640         of DBUS_TYPE_UINT64, need to handle the type always.
1641         (_dbus_marshal_validate_arg): consolidate identical cases, and
1642         handle DBUS_TYPE_OBJECT_ID
1643
1644         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
1645
1646         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
1647
1648 2003-09-28  Havoc Pennington  <hp@pobox.com>
1649
1650         * real 0.13 release
1651
1652 2003-09-28  Havoc Pennington  <hp@pobox.com>
1653
1654         * doc/Makefile.am (dbus-specification.html): testing a funky hack
1655         to work with Debian db2html
1656
1657 2003-09-28  Havoc Pennington  <hp@pobox.com>
1658
1659         * configure.in: 0.13
1660
1661         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
1662         stylesheet-images for benefit of Debian
1663         
1664         Change back to using filesystem-linked sockets for the system
1665         bus, so only root can create the default system bus address.
1666         
1667         * bus/system.conf.in: change to use
1668         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1669
1670         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
1671         from here.
1672
1673         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
1674         here, and AC_DEFINE DBUS_SYSTEM_PATH
1675
1676 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
1677
1678         * doc/TODO:
1679         * doc/busconfig.dtd:
1680         Add busconfig DTD.
1681         
1682 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
1683
1684         * doc/dbus-specification.sgml:
1685         Add activation reply values.
1686         
1687 2003-08-05  Havoc Pennington  <hp@redhat.com>
1688
1689         * configure.in: 0.12
1690
1691 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
1692
1693         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
1694         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
1695         (add_watch), (remove_watch), (create_source):
1696         Refcount fds, fixes some reentrancy issues.
1697         
1698 2003-07-30  Havoc Pennington  <hp@redhat.com>
1699
1700         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
1701         bus address to be abstract if we have abstract sockets
1702
1703         * NEWS: update
1704
1705 2003-07-28  Havoc Pennington  <hp@redhat.com>
1706
1707         * bus/messagebus.in: fix to avoid processname/servicename 
1708         confusion, from Michael Kearey
1709         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
1710         
1711 2003-07-23  Havoc Pennington  <hp@pobox.com>
1712
1713         * dbus/dbus-message.c (dbus_message_iter_get_named): 
1714         fix from Andy Hanton to remove broken "+1"
1715
1716 2003-07-16  Havoc Pennington  <hp@pobox.com>
1717
1718         * tools/dbus-launch.c (babysit): close stdout/stderr in the
1719         babysitter process, as suggested by Thomas Leonard, so 
1720         an "eval `dbus-launch --exit-with-session`" will actually 
1721         return
1722
1723 2003-07-16  Havoc Pennington  <hp@pobox.com>
1724
1725         * configure.in: print out EXPANDED_* variables in the summary at
1726         the end; clean up the code that computes EXPANDED_ variables and
1727         get the ones using exec_prefix right. Should make things work
1728         when you build without --prefix
1729
1730 2003-06-29  Havoc Pennington  <hp@pobox.com>
1731
1732         * mono/Test.cs (class Test): fire up a main loop and run it
1733
1734         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
1735         done once, the app has to do it
1736
1737 2003-06-26  Havoc Pennington  <hp@pobox.com>
1738
1739         * mono/Connection.cs: set up connection with the glib main loop
1740
1741 2003-07-01  Havoc Pennington  <hp@redhat.com>
1742
1743         * doc/dbus-specification.sgml: clarify the format of a type code,
1744         change suggested by Jim Blandy
1745
1746 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
1747
1748         * doc/Makefile.am:
1749         * tools/Makefile.am: Don't assume srcdir == builddir.
1750
1751         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
1752         the allocated block.
1753         (_dbus_memory_test): New function.
1754         * dbus/dbus-test.h: Add _dbus_memory_test ().
1755         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
1756
1757         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
1758         of %c%c%c%c.
1759         (dbus_message_new): Remove obsolete @todo.
1760
1761         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
1762         (_dbus_marshal_set_uint64): Fix comment.
1763
1764         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
1765         hardcode FIELD_REPLY_SERIAL.
1766
1767         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
1768         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
1769
1770         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
1771         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
1772
1773 2003-06-24  Havoc Pennington  <hp@pobox.com>
1774
1775         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
1776
1777 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
1778
1779         * configure.in:
1780         * gcj/.cvsignore:
1781         * gcj/Hello.java:
1782         * gcj/Makefile.am:
1783         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
1784         * gcj/org/.cvsignore:
1785         * gcj/org/Makefile.am:
1786         * gcj/org/freedesktop/.cvsignore:
1787         * gcj/org/freedesktop/Makefile.am:
1788         * gcj/org/freedesktop/dbus/.cvsignore:
1789         * gcj/org/freedesktop/dbus/Makefile.am:
1790         * gcj/org/freedesktop/dbus/Message.java: (Message),
1791         (Message.Message):
1792         * gcj/org/freedesktop/dbus/natMessage.cc:
1793         Fix the build system.
1794
1795 2003-06-22  Havoc Pennington  <hp@pobox.com>
1796
1797         * mono/Connection.cs: add more bindings
1798
1799         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
1800         more than once.
1801
1802 2003-06-22  Havoc Pennington  <hp@pobox.com>
1803
1804         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
1805         Start wrapping more stuff.
1806
1807 2003-06-22  Havoc Pennington  <hp@pobox.com>
1808
1809         * mono/Message.cs: implement Message.Wrap() that ensures we only
1810         have a single C# wrapper per DBusMessage, assuming it works which
1811         it probably doesn't.
1812
1813         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
1814         (dbus_message_free_data_slot): new
1815         (dbus_message_set_data): new
1816         (dbus_message_get_data): new
1817
1818 2003-06-22  Havoc Pennington  <hp@pobox.com>
1819
1820         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
1821         (_dbus_data_slot_allocator_alloc): rework these to keep a
1822         reference count on each slot and automatically manage a global
1823         slot ID variable passed in by address
1824
1825         * bus/bus.c: convert to new dataslot API
1826
1827         * dbus/dbus-bus.c: convert to new dataslot API
1828
1829         * dbus/dbus-connection.c: convert to new dataslot API
1830
1831         * dbus/dbus-server.c: convert to new dataslot API
1832
1833         * glib/dbus-gmain.c: ditto
1834
1835         * bus/test.c: ditto
1836
1837         * bus/connection.c: ditto
1838
1839 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
1840
1841         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
1842         after the gcj checks so that the correct configuration tags
1843         will be added to libtool.
1844
1845         * dbus-glib-1.pc.in: No need to specify any includes since
1846         dbus-1.pc.in has those.
1847
1848 2003-06-22  Havoc Pennington  <hp@pobox.com>
1849
1850         * mono/*, gcj/*, configure.in, Makefile.am:
1851         Check in makefiles and subdirs for mono and gcj bindings.
1852         Neither binding actually exists, just trying to get through
1853         all the build and other boring bits.
1854
1855 2003-06-21  Philip Blundell  <philb@gnu.org>
1856
1857         * tools/dbus-monitor.1: Updated.
1858
1859         * tools/dbus-send.1: Likewise.
1860
1861 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
1862
1863         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
1864         for hangup and error after checking read so we won't discard
1865         pending data if both hangup and read are set.
1866
1867 2003-06-19  Philip Blundell  <philb@gnu.org>
1868
1869         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
1870
1871         * tools/dbus-send.c: Accept both --system and --session.
1872
1873         * tools/dbus-monitor.c: Same here.
1874
1875 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
1876
1877         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
1878         from C++ (Patch by Miloslav Trmac).
1879
1880 2003-06-15  Joe Shaw  <joe@assbarn.com>
1881
1882         * configure.in: Check for socklen_t.
1883
1884         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
1885
1886         * test/test-segfault.c: Add #include <sys/time.h>
1887
1888         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
1889         dbus-launch needs it.
1890
1891 2003-06-09  Havoc Pennington  <hp@redhat.com>
1892
1893         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
1894         SUN_LEN, it breaks abstract socket usage
1895
1896         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
1897         starts of lines.
1898
1899 2003-06-04  Havoc Pennington  <hp@pobox.com>
1900
1901         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
1902         using unix:abstract=/foo, and when listening in a tmpdir
1903         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
1904
1905         * dbus/dbus-transport.c (_dbus_transport_open): support
1906         unix:abstract=/foo
1907
1908         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1909         support abstract sockets
1910
1911         * dbus/dbus-transport-unix.c
1912         (_dbus_transport_new_for_domain_socket): support abstract sockets
1913
1914         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
1915         toggle as an argument, implement abstract namespace support
1916         (_dbus_listen_unix_socket): ditto
1917
1918         * configure.in: add --enable-abstract-sockets and implement
1919         a configure check for autodetection of the right value.
1920
1921 2003-06-01  Havoc Pennington  <hp@pobox.com>
1922
1923         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
1924         in /tmp (though on Linux this will end up being useless,
1925         when we add abstract namespace support)
1926
1927         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
1928         subst'ing it
1929
1930 2003-05-28  Colin Walters  <walters@verbum.org>
1931
1932         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
1933
1934 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
1935
1936         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
1937
1938 2003-05-17  Colin Walters  <walters@gnu.org>
1939
1940         * tools/dbus-send.c: Don't exit with an error code if --help was
1941         passed.  Default to using the session bus instead of the system
1942         one.
1943
1944         * tools/dbus-launch.c: Ditto.
1945
1946         * tools/dbus-monitor.c: Ditto.
1947
1948         * tools/dbus-send.1: Update with new arguments.
1949
1950         * tools/dbus-launch.c: Emit code to export variables.  New
1951         arguments -s and -c to specify shell syntax, and a bit of code to
1952         autodetect syntax.  Also, allow specifying a program to run.
1953
1954         * tools/dbus-launch.1: Update with new arguments.
1955
1956         * tools/dbus-send.1: Ditto.
1957
1958         * tools/dbus-monitor.1: Ditto.
1959
1960 2003-05-17  Havoc Pennington  <hp@pobox.com>
1961
1962         * bus/config-parser.c (merge_included): merge in policies from
1963         child configuration file.
1964
1965         * bus/policy.c (bus_policy_merge): function to merge two policies
1966         together
1967
1968 2003-05-16  Havoc Pennington  <hp@redhat.com>
1969
1970         * dbus/dbus-connection.c: disable verbose lock spew
1971
1972         * tools/dbus-send.c: add --print-reply command line option
1973
1974         * tools/dbus-print-message.h (print_message): new util function
1975         shared by dbus-send and dbus-monitor
1976
1977         * tools/dbus-monitor.c (handler_func): exit on disconnect
1978
1979         * dbus/dbus-transport-unix.c (do_reading): if the transport is
1980         disconnected, don't try to use the read_watch
1981
1982         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
1983         so we can find this bug more easily
1984
1985 2003-05-16  Havoc Pennington  <hp@redhat.com>
1986
1987         * bus/policy.c (free_rule_list_func): avoid a crash when passed
1988         NULL as DBusHashTable is annoyingly likely to do.
1989
1990 2003-05-16  Colin Walters  <walters@verbum.org>
1991
1992         * tools/dbus-monitor.c: Add --session argument and usage()
1993         function.
1994
1995         * tools/dbus-monitor.1: Update with new --session arg.
1996
1997         * bus/Makefile.am (install-data-hook): Create
1998         $(libdir)/dbus-1.0/services so that the session bus is happy.
1999
2000 2003-05-15  Havoc Pennington  <hp@redhat.com>
2001
2002         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
2003         on non-x86. ifdef's are evil.
2004
2005 2003-05-15  Havoc Pennington  <hp@redhat.com>
2006
2007         * configure.in: 0.11
2008
2009         * NEWS: update
2010
2011         * bus/Makefile.am (initddir): apparently we are supposed to put
2012         init scripts in /etc/rc.d/init.d not /etc/init.d
2013
2014         * bus/Makefile.am: remove the "you must --enable-tests to make
2015         check" as it broke distcheck
2016
2017         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
2018
2019 2003-05-13  James Willcox  <jwillcox@gnome.org>
2020
2021         * configure.in:
2022         * bus/activation.c: (bus_activation_service_created),
2023         (bus_activation_activate_service):
2024         * bus/driver.c: (bus_driver_send_service_deleted),
2025         (bus_driver_send_service_created), (bus_driver_send_service_lost),
2026         (bus_driver_send_service_acquired),
2027         (bus_driver_send_welcome_message),
2028         (bus_driver_handle_list_services):
2029         * bus/session.conf.in:
2030         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
2031         (dbus_bus_service_exists), (dbus_bus_activate_service):
2032         * dbus/dbus-bus.h:
2033
2034         Add some convenience API which lets you activate a service, and did a
2035         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
2036         and dbus_message_get_args()
2037
2038 2003-05-11  Havoc Pennington  <hp@pobox.com>
2039
2040         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
2041         calling _dbus_marshal_validate_arg() for every byte in a byte
2042         array, etc.
2043
2044         * dbus/dbus-message-handler.c: use atomic reference counting to
2045         reduce number of locks slightly; the global lock in here sucks
2046
2047         * dbus/dbus-connection.c
2048         (_dbus_connection_update_dispatch_status_and_unlock): variant of
2049         update_dispatch_status that can be called with lock held; then use
2050         in a couple places to reduce locking/unlocking
2051         (dbus_connection_send): hold the lock over the whole function
2052         instead of acquiring it twice.
2053
2054         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
2055
2056         * bus/connection.c (bus_connections_setup_connection): fix access
2057         to already-freed memory.
2058
2059         * dbus/dbus-connection.c: keep a little cache of linked list
2060         nodes, to avoid using the global linked list alloc lock in the
2061         normal send-message case. Instead we just use the connection lock
2062         that we already have to take.
2063
2064         * dbus/dbus-list.c (_dbus_list_find_last): new function
2065
2066         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
2067         change to use a struct for the atomic type; fix docs,
2068         they return value before increment, not after increment.
2069
2070         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
2071         (_dbus_string_append_8_aligned): new functions to try to
2072         microoptimize this operation.
2073         (reallocate_for_length): break this out of set_length(), to
2074         improve profile info, and also so we can consider inlining the
2075         set_length() part.
2076
2077         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
2078         strings with some preallocation, cuts down on our calls to realloc
2079         a fair bit. Though if we can get the "move entire string to empty
2080         string" optimization below to kick in here, it would be better.
2081
2082         * dbus/dbus-string.c (_dbus_string_move): just call
2083         _dbus_string_move_len
2084         (_dbus_string_move_len): add a special case for moving
2085         an entire string into an empty string; we can just
2086         swap the string data instead of doing any reallocs.
2087         (_dbus_string_init_preallocated): new function
2088
2089 2003-05-11  Havoc Pennington  <hp@pobox.com>
2090
2091         Write a "test-profile" that does echo client-server with threads;
2092         profile reveals lock contention, memcpy/realloc of buffers, and
2093         UTF-8 validation as hot spots. 20% of lock contention eliminated
2094         with dbus_atomic_inc/dec implementation on x86.  Much remaining
2095         contention is global mempool locks for GList and DBusList.
2096
2097         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
2098         x86 implementation
2099
2100         * dbus/dbus-connection.c (struct DBusConnection): use
2101         dbus_atomic_t for the reference count
2102
2103         * dbus/dbus-message.c (struct DBusMessage): declare
2104         dbus_atomic_t values as volatile
2105
2106         * configure.in: code to detect ability to use atomic integer
2107         operations in assembly, from GLib patch
2108
2109         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
2110         time, tired of it being wrong in threads and forked processes
2111
2112         * glib/test-profile.c: a little program to bounce messages back
2113         and forth between threads and eat CPU
2114
2115         * dbus/dbus-connection.c: add debug spew macros for debugging
2116         thread locks; include config.h at top; fix deadlock in
2117         dbus_connection_flush()
2118
2119 2003-05-08  Havoc Pennington  <hp@pobox.com>
2120
2121         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
2122         data from getting written, and there wasn't a good reason to
2123         use _exit really.
2124
2125         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
2126         dbus_verbose lines in test coverage
2127         (main): add list of functions sorted by # of untested blocks
2128         to the coverage report
2129
2130         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
2131
2132         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
2133
2134         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
2135         extend test coverage
2136
2137         * test/data/auth/cancel.auth-script: test canceling an
2138         authentication
2139
2140         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
2141         aren't used. in CVS history if we end up needing them.
2142
2143 2003-05-04  Havoc Pennington  <hp@pobox.com>
2144
2145         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
2146         unit test
2147
2148         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
2149         function, which assumed length was in # of strings, not bytes
2150
2151         * dbus/dbus-message.c (_dbus_message_test): add tests for some
2152         missing coverage
2153
2154         * dbus/dbus-connection.c
2155         (_dbus_connection_queue_received_message): disable function for
2156         now, we are only using it in test mode
2157
2158         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2159         remove a mistaken FIXME
2160
2161 2003-05-04  Havoc Pennington  <hp@pobox.com>
2162
2163         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
2164         unlock mutex on successful return, patch from Anders Gustafsson
2165
2166 2003-05-04  Havoc Pennington  <hp@pobox.com>
2167
2168         * dbus-glib-1.pc.in (Requires): fix dependencies, from
2169         Anders Gustafsson
2170
2171 2003-05-04  Havoc Pennington  <hp@pobox.com>
2172
2173         * tools/dbus-launch.c: implement
2174
2175         * bus/main.c (main), bus/bus.c (bus_context_new):
2176         implement --print-pid and --fork
2177
2178 2003-05-03  Havoc Pennington  <hp@redhat.com>
2179
2180         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
2181         the address had no value, and add to test suite. Fix and
2182         regression test from Miloslav Trmac
2183
2184 2003-05-03  Havoc Pennington  <hp@pobox.com>
2185
2186         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
2187         watch is invalid when handled
2188
2189         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
2190         dbus-launch utility to launch the bus from a shell script.  Didn't
2191         actually implement dbus-launch yet, it's just a placeholder still.
2192
2193 2003-05-03  Havoc Pennington  <hp@pobox.com>
2194
2195         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
2196         daemon; also documents daemon config file, so replaces
2197         doc/config-file.txt. Corrected some stuff from config-file.txt in
2198         the process of moving it.
2199
2200 2003-05-03  Havoc Pennington  <hp@pobox.com>
2201
2202         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
2203         add some man pages
2204
2205 2003-05-03  Colin Walters  <walters@verbum.org>
2206
2207         * dbus/dbus-sysdeps.c (fill_user_info): Test against
2208         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
2209
2210         * Makefile.am: Update to use new .pc versioning scheme.
2211
2212 2003-05-02  Havoc Pennington  <hp@redhat.com>
2213
2214         * bus/system.conf.in: allow send/receive to/from message bus
2215         service
2216
2217 2003-04-30  Havoc Pennington  <hp@redhat.com>
2218
2219         * configure.in: print a note when building with unit tests and
2220         without assertions
2221
2222 2003-04-30  Havoc Pennington  <hp@redhat.com>
2223
2224         * Makefile.am: add a check-local that complains if you didn't
2225         configure with --enable-tests
2226
2227 2003-04-29  Havoc Pennington  <hp@redhat.com>
2228
2229         * glib/dbus-gmain.c: docs cleanups
2230
2231         * dbus/dbus-types.h: add docs on int64 types
2232
2233         * dbus/dbus-memory.c: fix docs to avoid putting private API in
2234         public API docs section
2235
2236 2003-04-29  Havoc Pennington  <hp@redhat.com>
2237
2238         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
2239         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
2240         parallel install API version, not with the D-BUS package version.
2241
2242         * HACKING: move some of README over here
2243
2244         * README: updates, and document API/ABI policy
2245
2246         * configure.in: reindentation
2247
2248 2003-04-29  Havoc Pennington  <hp@redhat.com>
2249
2250         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
2251         to use this library" to be sure people have the right
2252         expectations.
2253
2254 2003-04-28  Havoc Pennington  <hp@redhat.com>
2255
2256         * configure.in: add --enable-docs which by default is auto yes if
2257         doxygen and db2html found, no otherwise; but can be forced on/off
2258
2259         * doc/Makefile.am: conditionalize whether to build docs on
2260         --enable-docs
2261
2262 2003-04-28  Havoc Pennington  <hp@redhat.com>
2263
2264         * configure.in: 0.10
2265
2266         * NEWS: update
2267
2268         * bus/system.conf.in: add <includedir>system.d</includedir>
2269
2270         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
2271         username was provided but not uid
2272
2273         * bus/config-parser.c (struct BusConfigParser): keep track of
2274         whether the parser is toplevel or was included; change some
2275         of the error handling if it's included.
2276
2277 2003-04-27  Havoc Pennington  <hp@pobox.com>
2278
2279         Unbreak my code...
2280
2281         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2282         report correct status if we finish processing authentication
2283         inside this function.
2284
2285         * bus/activation.c (try_send_activation_failure): use
2286         bus_transaction_send_error_reply
2287
2288         * bus/connection.c (bus_connection_get_groups): return an error
2289         explaining the problem
2290
2291         * bus/bus.c (bus_context_check_security_policy): implement
2292         restriction here that inactive connections can only send the
2293         hello message. Also, allow bus driver to send anything to
2294         any recipient.
2295
2296         * bus/connection.c (bus_connection_complete): create the
2297         BusClientPolicy here instead of on-demand.
2298         (bus_connection_get_policy): don't return an error
2299
2300         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
2301         sender field in message being replied to
2302
2303         * bus/bus.c (bus_context_check_security_policy): fix silly typo
2304         causing it to return FALSE always
2305
2306         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
2307         we checked sender rather than destination
2308
2309 2003-04-25  Havoc Pennington  <hp@redhat.com>
2310
2311         test suite is slightly hosed at the moment, will fix soon
2312
2313         * bus/connection.c (bus_connections_expire_incomplete): fix to
2314         properly disable the timeout when required
2315         (bus_connection_set_name): check whether we can remove incomplete
2316         connections timeout after we complete each connection.
2317
2318         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
2319         probably still broken.
2320
2321         * bus/services.c (bus_registry_acquire_service): implement max
2322         number of services owned, and honor allow/deny rules on which
2323         services a connection can own.
2324
2325         * bus/connection.c (bus_connection_get_policy): report errors here
2326
2327         * bus/activation.c: implement limit on number of pending
2328         activations
2329
2330 2003-04-25  Havoc Pennington  <hp@redhat.com>
2331
2332         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
2333         where we used >= 0 instead of != DBUS_UID_UNSET.
2334
2335 2003-04-25  Havoc Pennington  <hp@redhat.com>
2336
2337         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
2338         were toggled without add/remove, fix from Anders Gustafsson
2339
2340 2003-04-24  Havoc Pennington  <hp@redhat.com>
2341
2342         * test/data/valid-config-files/basic.conf: add <limit> tags to
2343         this test
2344
2345         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
2346         <limit> tag in configuration file.
2347
2348 2003-04-24  Havoc Pennington  <hp@redhat.com>
2349
2350         * bus/dispatch.c: somehow missed some name_is
2351
2352         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
2353         (_dbus_timeout_set_interval): new
2354
2355         * bus/connection.c (bus_connections_setup_connection): record time
2356         when each connection is first set up, and expire them after the
2357         auth timeout passes.
2358
2359 2003-04-24  Havoc Pennington  <hp@redhat.com>
2360
2361         * dbus/dbus-message.c (dbus_message_name_is): rename
2362         (dbus_message_service_is): rename
2363         (dbus_message_sender_is): rename
2364         (dbus_message_get_service): rename
2365
2366 2003-04-24  Havoc Pennington  <hp@redhat.com>
2367
2368         * configure.in: add --enable-checks
2369
2370         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
2371
2372         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
2373         to use thread locks.
2374         (_dbus_connection_handler_destroyed_locked): move some private
2375         functions into proper docs group
2376
2377         * dbus/dbus-internals.h: add _dbus_return_if_fail,
2378         _dbus_return_val_if_fail
2379
2380         Throughout: use dbus_return_if_fail
2381
2382 2003-04-23  James Willcox  <jwillcox@gnome.org>
2383
2384         * glib/dbus-glib.h:
2385         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
2386         (dbus_connection_setup_with_g_main),
2387         (dbus_server_setup_with_g_main):
2388         * glib/test-dbus-glib.c: (main):
2389         * glib/test-thread-client.c: (main):
2390         * glib/test-thread-server.c: (new_connection_callback), (main):
2391         * tools/dbus-monitor.c: (main):
2392
2393         Added a GMainContext argument to dbus_connection_setup_with_g_main()
2394         and dbus_server_setup_with_g_main().
2395
2396 2003-04-20  Havoc Pennington  <hp@pobox.com>
2397
2398         * doc/dbus-specification.sgml: document the restrictions on
2399         message and service names
2400
2401 2003-04-22  Havoc Pennington  <hp@redhat.com>
2402
2403         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
2404         support, and do some code cleanups to share more code and
2405         speed up array marshal/demarshal.
2406
2407         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
2408
2409         * configure.in: generate dbus-arch-deps.h
2410
2411         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
2412         64-bit typecodes
2413
2414 2003-04-22  Havoc Pennington  <hp@redhat.com>
2415
2416         * test/data/valid-messages/opposite-endian.message: fix test
2417         to use proper type for rply field
2418
2419         * test/data/invalid-messages: add tests for below validation
2420
2421         * dbus/dbus-message.c (decode_header_data): validate field types,
2422         and validate that named fields are valid names
2423         (decode_name_field): consider messages in the
2424         org.freedesktop.Local. namespace to be invalid.
2425
2426         * dbus/dbus-string.c (_dbus_string_validate_name): new
2427
2428 2003-04-19  Havoc Pennington  <hp@pobox.com>
2429
2430         * bus/driver.c (bus_driver_handle_hello): check limits and
2431         return an error if they are exceeded.
2432
2433         * bus/connection.c: maintain separate lists of active and inactive
2434         connections, and a count of each. Maintain count of completed
2435         connections per user. Implement code to check connection limits.
2436
2437         * dbus/dbus-list.c (_dbus_list_unlink): export
2438
2439         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
2440         number of bytes in the message queue for a connection
2441
2442 2003-04-18  Havoc Pennington  <hp@pobox.com>
2443
2444         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
2445
2446         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
2447         memleaks
2448
2449         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
2450         on realloc be sure to update the pointer in the keyring
2451
2452         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
2453         offset to avoid writing to unallocated memory
2454
2455         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
2456         try the next mechanism, so we properly handle OOM
2457
2458         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
2459         on OOM.
2460         (_dbus_keyring_new): fix OOM bug
2461         (_dbus_keyring_new_homedir): always set error; impose a maximum
2462         number of keys we'll load from the file, mostly to speed up the
2463         test suite and make its OOM checks more useful, but also for
2464         general sanity.
2465
2466         * dbus/dbus-auth.c (process_error_server): reject authentication
2467         if we get an error from the client
2468         (process_cancel): on cancel, send REJECTED, per the spec
2469         (process_error_client): send CANCEL if we get an error from the
2470         server.
2471
2472 2003-04-18  Havoc Pennington  <hp@pobox.com>
2473
2474         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
2475         debug spew
2476
2477         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
2478         handling problem
2479
2480         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
2481         about DBUS_TEST_HOMEDIR once
2482
2483         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
2484         the environment
2485
2486         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
2487         config file so we test the right thing
2488
2489         Throughout: assorted docs improvements
2490
2491 2003-04-18  Havoc Pennington  <hp@pobox.com>
2492
2493         * glib/dbus-gmain.c: adapt to watch changes
2494
2495         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
2496
2497         * dbus/dbus-server.h: remove dbus_server_handle_watch
2498
2499         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
2500
2501         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
2502         like DBusTimeout, so we don't need dbus_connection_handle_watch
2503         etc.
2504
2505 2003-04-17  Havoc Pennington  <hp@redhat.com>
2506
2507         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
2508         database usage so it all goes via the DBusUserDatabase cache.
2509
2510 2003-04-17  Havoc Pennington  <hp@redhat.com>
2511
2512         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
2513         there was an OOM watch we skipped, we always return TRUE so we
2514         iterate again to have a look at it again. Fixes test suite hang.
2515         Code rearrangement also lets us lose some memset and only iterate
2516         over callbacks once.
2517
2518         * bus/driver.c (bus_driver_handle_message): sense of test for
2519         reply was backward
2520
2521 2003-04-16  Havoc Pennington  <hp@pobox.com>
2522
2523         * doc/dbus-specification.sgml: make spec say serials are unsigned
2524
2525         * dbus/dbus-message.h: change message serials to unsigned
2526
2527         * dbus/dbus-connection.c: adapt to message serials being unsigned
2528
2529 2003-04-15  Havoc Pennington  <hp@pobox.com>
2530
2531         * bus/bus.c: create and keep around a shared DBusUserDatabase
2532         object.
2533
2534         * bus/connection.c (bus_connection_get_groups): don't cache
2535         groups for user in the connection object, since user database
2536         object now does that.
2537
2538 2003-04-16  Havoc Pennington  <hp@redhat.com>
2539
2540         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
2541         list of size counters
2542         (_dbus_message_loader_putback_message_link): put back a popped link
2543
2544         * dbus/dbus-connection.c
2545         (dbus_connection_set_max_live_messages_size): rename
2546         max_received_size
2547         (dbus_connection_get_outgoing_size): get size of outgoing
2548         queue
2549         (_dbus_connection_set_connection_counter): remove this cruft
2550
2551 2003-04-14  Havoc Pennington  <hp@redhat.com>
2552
2553         * dbus/dbus-userdb.c: user database abstraction, mostly to get
2554         caching, but at some point we might want to be able to use a
2555         different database.
2556
2557         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
2558         SHA1 conf file to test the sha1 auth mechanism, since the regular
2559         test always uses EXTERNAL when available.
2560
2561         * configure.in,
2562         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
2563         add conf file that requires use of sha1 auth
2564
2565 2003-04-13  Havoc Pennington  <hp@pobox.com>
2566
2567         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
2568         from Philip Blundell to send messages and monitor them.
2569
2570 2003-04-13  Havoc Pennington  <hp@pobox.com>
2571
2572         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
2573         callbacks
2574
2575         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
2576         users
2577
2578         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2579         fix to only recover unused bytes if we're already authenticated
2580         (_dbus_transport_get_is_authenticated): fix to still mark us
2581         authenticated if there are unused bytes.
2582
2583         * bus/dispatch.c: implement security policy checking
2584
2585         * bus/connection.c (bus_transaction_send_from_driver): new
2586
2587         * bus/bus.c (bus_context_check_security_policy): new
2588
2589         * bus/dispatch.c (send_service_nonexistent_error): delete this,
2590         now we just set the DBusError and it gets converted to an error
2591         reply.
2592
2593         * bus/connection.c (allow_user_function): enable code using actual
2594         data from the config file
2595
2596         * bus/policy.c (list_allows_user): handle wildcard rules for
2597         user/group connection perms
2598
2599 2003-04-13  Havoc Pennington  <hp@pobox.com>
2600
2601         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
2602
2603         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
2604
2605         * bus/policy.c (bus_policy_append_mandatory_rule)
2606         (bus_policy_append_default_rule, bus_policy_append_user_rule)
2607         (bus_policy_append_group_rule): new functions
2608
2609 2003-04-12  Havoc Pennington  <hp@pobox.com>
2610
2611         * bus/config-parser.c (bus_config_parser_new): fix a memleak
2612
2613         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
2614         the pid/gid/uid, just for paranoia.
2615
2616         * test/break-loader.c (randomly_do_n_things): find a byte
2617         containing a type code, and randomly change it to a different
2618         type code.
2619
2620 2003-04-12  Havoc Pennington  <hp@pobox.com>
2621
2622         * bus/policy.h: change BusPolicy to be the thing from the config
2623         file, and rename old BusPolicy to BusClientPolicy
2624
2625         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
2626         match change in how policy works
2627
2628         * dbus/dbus-internals.h: mark assert_not_reached as
2629         __attribute((noreturn))__
2630
2631 2003-04-11  Havoc Pennington  <hp@redhat.com>
2632
2633         * doc/dbus-specification.sgml: fix a spot with the wrong name for
2634         the broadcast service. Use boolean return for ServiceExists.
2635
2636 2003-04-11  Havoc Pennington  <hp@redhat.com>
2637
2638         * configure.in: add another directory to look for qt in.
2639
2640 2003-04-11  Havoc Pennington  <hp@redhat.com>
2641
2642         * AUTHORS: add Colin Walters
2643
2644 2003-04-11  Havoc Pennington  <hp@redhat.com>
2645
2646         * NEWS: update
2647
2648         * configure.in: 0.9
2649
2650 2003-04-11  Havoc Pennington  <hp@redhat.com>
2651
2652         * bus/messagebus.in: remove pid file when stopping the
2653         message bus, since the bus won't have privileges to remove it
2654         itself.
2655
2656 2003-04-11  Havoc Pennington  <hp@redhat.com>
2657
2658         * bus/bus.c (bus_context_new): move credentials change after
2659         creating pidfile
2660
2661 2003-04-11  Havoc Pennington  <hp@pobox.com>
2662
2663         * test/decode-gcov.c: add "below average functions" to the
2664         coverage report, and change how some of the code works.
2665
2666         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
2667         not in the coverage stats.
2668
2669         * test/test-service.c (main): use _dbus_verbose not fprintf in a
2670         couple places so running the test suite doesn't result in megaspam.
2671
2672 2003-04-11  Havoc Pennington  <hp@pobox.com>
2673
2674         * bus/dispatch.c (check_existent_service_activation): accept a no
2675         memory error in a place we didn't before
2676
2677         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
2678         in case the first one failed," since the test suite is less
2679         broken now.
2680
2681 2003-04-10  Havoc Pennington  <hp@pobox.com>
2682
2683         * bus/dispatch.c (check_segfault_service_activation): add test
2684         for launching an executable that just crashes.
2685
2686         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
2687         don't leave a million cores. We'll see how portable this is.
2688
2689 2003-04-10  Havoc Pennington  <hp@pobox.com>
2690
2691         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
2692         the possible parent failures before we fork, so that we don't
2693         fail to create a babysitter after creating the child.
2694
2695         * bus/activation.c (bus_activation_activate_service): kill child
2696         if we don't successfully complete the activation.
2697
2698 2003-04-10  Havoc Pennington  <hp@redhat.com>
2699
2700         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
2701         the connection if it's disconnected
2702
2703         * bus/activation.c (bus_activation_service_created): use new
2704         transaction features to roll back removal of pending activation if
2705         we don't successfully create the service after all. Don't remove
2706         pending activation if the function fails.
2707
2708         * dbus/dbus-list.c (_dbus_list_insert_before_link)
2709         (_dbus_list_insert_after_link): new code to facilitate
2710         services.c fixes
2711
2712         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
2713         new functionality, so we can preallocate the ability to insert
2714         into a hash table.
2715
2716         * bus/connection.c (bus_transaction_add_cancel_hook): new function
2717         allowing us to put custom hooks in a transaction to be used for
2718         cancelling said transaction
2719
2720         * doc/dbus-specification.sgml: add some discussion of secondary
2721         service owners, and disallow zero-length service names
2722
2723         * bus/services.c (bus_registry_acquire_service): new function,
2724         splits out part of bus_driver_handle_acquire_service() and fixes
2725         a bug where we didn't remove the service doing the acquiring
2726         from the secondary queue if we failed to remove the current owner
2727         from the front of the queue.
2728
2729 2003-04-10  Alexander Larsson  <alexl@redhat.com>
2730
2731         * doc/dbus-specification.sgml:
2732         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
2733
2734 2003-04-10  Alexander Larsson  <alexl@redhat.com>
2735
2736         * bus/.cvsignore:
2737         * glib/.cvsignore:
2738         * test/.cvsignore:
2739         Added files to cvsignore
2740
2741         * dbus/dbus-message.h:
2742         * dbus/dbus-message.c: (dbus_message_iter_get_named):
2743         Make get_named() take two out argument and return a boolean.
2744         (dbus_message_iter_get_args_valist):
2745         Update usage of get_named().
2746         (dbus_message_iter_append_byte):
2747         Fix typo
2748         (dbus_message_iter_append_named)
2749         Fix typo
2750         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
2751         More tests.
2752
2753 2003-04-10  Alexander Larsson  <alexl@redhat.com>
2754
2755         * dbus/dbus-marshal.[ch]:
2756         Add array_type_pos argument to _dbus_marshal_validate_arg.
2757         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
2758
2759         * dbus/dbus-message.[ch]:
2760         Multi-dimensional arrays have full type specification in the
2761         outermost array. Iter code re-arranged to handle this.
2762         Added some more iter tests.
2763
2764         * doc/dbus-specification.sgml:
2765         Add me to authors.
2766         Remove old FIXME.
2767         Update new array encoding description.
2768         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
2769
2770         * test/data/invalid-messages/array-with-mixed-types.message:
2771         * test/data/valid-messages/array-of-array-of-uint32.message:
2772         Change to the new array format.
2773
2774         * test/data/invalid-messages/too-short-dict.message:
2775         Fix bug in test.
2776
2777         * test/data/valid-messages/recursive-types.message:
2778         Fix up and extend test.
2779
2780 2003-04-10  Havoc Pennington  <hp@pobox.com>
2781
2782         * bus/dispatch.c: lots of fixes
2783
2784         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
2785         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
2786         that was crack, broke the test service.
2787
2788         * dbus/dbus-transport.c (_dbus_transport_open): fix error
2789         handling to avoid piling up errors if we get a failure on the
2790         first address.
2791
2792         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
2793         pid in assertion failures.
2794
2795         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
2796         to some fixed size of file descriptor array. Don't return TRUE
2797         anytime a timeout exists, that led to lots of busy loop silliness
2798         in the tests.
2799
2800 2003-04-09  Havoc Pennington  <hp@redhat.com>
2801
2802         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
2803         I'd checked this in earlier but hadn't.
2804
2805 2003-04-09  Havoc Pennington  <hp@redhat.com>
2806
2807         * bus/dispatch.c (bus_dispatch_test): get a bit further through
2808         the activation test (man this is getting old!)
2809
2810 2003-04-09  Havoc Pennington  <hp@redhat.com>
2811
2812         * test/test-utils.c: use dispatch status function to fix this up
2813
2814         * bus/connection.c (connection_watch_callback): don't dispatch
2815         from here
2816         (connection_timeout_callback): don't dispatch from here
2817         (bus_connections_setup_connection): set the dispatch status function
2818         (bus_connection_disconnected): unset it
2819
2820         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
2821         used to add a connection to be dispatched
2822         (_dbus_loop_iterate): do the dispatching at the end of each
2823         iteration
2824
2825         * dbus/dbus-connection.c
2826         (dbus_connection_set_dispatch_status_function): new function
2827         allowing us to fix up main loop usage
2828         (_dbus_connection_last_unref): free all the various function
2829         user data
2830         (dbus_connection_dispatch): call the DispatchStatusFunction
2831         whenever this function returns
2832         (dbus_connection_handle_watch): call DispatchStatusFunction
2833         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
2834         (reply_handler_timeout): call DispatchStatusFunction
2835         (dbus_connection_flush): call DispatchStatusFunction
2836
2837 2003-04-09  Havoc Pennington  <hp@redhat.com>
2838
2839         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
2840         a memory leak
2841
2842         * bus/dispatch.c (check_service_activated): fix bug in test
2843
2844         * dbus/dbus-mainloop.c (check_timeout): fix this up
2845
2846         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
2847         verbose output so we can sort out output from different processes,
2848         e.g. in the activation case.
2849
2850 2003-04-08  Colin Walters  <walters@gnu.org>
2851
2852         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
2853         the pid file.
2854         (bus_context_new): Set it.
2855         (bus_context_unref): Use it to delete the pid file.
2856
2857 2003-04-08  Havoc Pennington  <hp@redhat.com>
2858
2859         * test/data/invalid-messages/array-with-mixed-types.message:
2860         regression test that fails for the moment
2861
2862         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
2863         tests for convenience
2864
2865         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
2866         array of nil, it broke things.
2867
2868         * test/data/invalid-messages/array-of-nil.message: regression test
2869
2870         * test/data/valid-messages/array-of-array-of-uint32.message:
2871         happened to write this so added it to suite
2872
2873 2003-04-08  Havoc Pennington  <hp@redhat.com>
2874
2875         * bus/driver.c (bus_driver_handle_acquire_service): init
2876         retval/reply before checking name
2877
2878         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
2879         recursion depth argument
2880
2881         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
2882         in the public struct for future extension
2883
2884         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
2885         typo
2886
2887         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
2888         message
2889
2890         * doc/dbus-specification.sgml: fix typo
2891
2892 2003-04-08  Alexander Larsson  <alexl@redhat.com>
2893
2894         Implemented recursive types, named types and new-style iters
2895
2896         * bus/driver.c:
2897         * glib/test-thread-client.c: (thread_func):
2898         * glib/test-thread-server.c: (handle_test_message):
2899         * test/test-service.c: (handle_echo):
2900         Update to new api
2901
2902         * dbus/Makefile.am:
2903         * dbus/dbus-dict.c:
2904         * dbus/dbus-dict.h:
2905         * dbus/dbus.h
2906         Remove DBusDict
2907
2908         * dbus/dbus-internals.c: (_dbus_type_to_string):
2909         Update for new types.
2910
2911         * dbus/dbus-marshal.[ch]:
2912         Implement recursive types and the new marshalling format.
2913         Remove hardcoded dict marshalling.
2914         Marshal named types.
2915
2916         * dbus/dbus-message-builder.c:
2917         Add BYTE_ARRAY.
2918         Remove references to old types
2919
2920         * dbus/dbus-message.[ch]:
2921         New non-refcounted iter API that supports recursive iters.
2922         Use iters for appending, including support for recursive
2923         iters.
2924         Add byte and named type support.
2925         Update everything to new marshalling formats.
2926         Add tests for new API.
2927
2928         * dbus/dbus-protocol.h:
2929         Remove old array types.
2930         Add types: BYTE, ARRAY, DICT, NAMED
2931
2932         * dbus/dbus-string.c:
2933         * dbus/dbus-sysdeps.c:
2934         Make parse_double locale safe.
2935
2936         * dbus/dbus-test-main.c:
2937         Call setlocale.
2938
2939         * dbus/dbus-test.c:
2940         Kill dict test
2941
2942         * doc/dbus-specification.sgml:
2943         Update spec
2944
2945         * test/data/incomplete-messages/missing-body.message:
2946         * test/data/invalid-messages/bad-boolean.message:
2947         * test/data/invalid-messages/bad-boolean-array.message:
2948         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
2949         * test/data/invalid-messages/boolean-has-no-value.message-raw:
2950         * test/data/invalid-messages/too-short-dict.message:
2951         * test/data/valid-messages/dict-simple.message:
2952         * test/data/valid-messages/dict.message:
2953         * test/data/valid-messages/emptiness.message:
2954         * test/data/valid-messages/lots-of-arguments.message:
2955         * test/data/valid-messages/no-padding.message:
2956         * test/data/valid-messages/recursive-types.message:
2957         Add missing NAME fields
2958         Fix up dicts & arrays
2959
2960         * test/data/invalid-messages/dict-with-nil-value.message:
2961         Removed, this is not invalid anymore.
2962
2963         * test/data/valid-messages/recursive-types.message:
2964         Add new test for deeply recursive types.
2965
2966 2003-04-07  Havoc Pennington  <hp@pobox.com>
2967
2968         * bus/driver.c (bus_driver_handle_acquire_service): return an
2969         error if you try to acquire a service that starts with ':'
2970
2971 2003-04-07  Havoc Pennington  <hp@redhat.com>
2972
2973         * doc/dbus-specification.sgml: require that base service names
2974         start with ':' and that the base service is created/deleted
2975         as first and last things a connection does on the bus
2976
2977         * bus/dispatch.c (check_existent_service_activation): lots more
2978         work on the activation test; it doesn't fully pass yet...
2979
2980         * test/test-service.c (main): fix so we don't memleak the
2981         connection to the message bus
2982         (filter_func): accept a message asking us to exit
2983
2984 2003-04-06  Havoc Pennington  <hp@pobox.com>
2985
2986         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
2987         from Colin Walters
2988
2989         * configure.in: fixes to Qt detection from Colin Walters
2990
2991         * doc/Makefile.am: Only remove generated docbook dirs if they
2992         exist, from Colin Walters
2993
2994         * dbus/dbus-bus.c: change how we set well-known connections to
2995         NULL, so that it works if a single connection is stored in
2996         two well-known array slots.
2997
2998         * test/Makefile.am: remove a lot of stuff that isn't immediately
2999         useful, it's in CVS history if we want it.
3000
3001         * test/test-service.c: use dbus-mainloop instead of that
3002         watch.[hc] crack
3003
3004 2003-04-06  Havoc Pennington  <hp@pobox.com>
3005
3006         * dbus/Makefile.am: split lists of sources into stuff that goes in
3007         the library, util functions that go in the lib and are also used
3008         elsewhere, and util functions that are used in tests/daemon but
3009         don't go in the lib.
3010
3011         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
3012         here so it can be used in test binaries also
3013
3014 2003-04-06  Havoc Pennington  <hp@pobox.com>
3015
3016         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
3017         here in the parent process, so we can return an error if it
3018         fails. Also, move some of the code into the child so the parent
3019         is less hosed if we fail midway through.
3020
3021         * bus/bus.c (bus_context_new): move pidfile detection further up
3022         in the function, before we start overwriting sockets and such.
3023
3024         * bus/messagebus.in: adjust this a bit, not sure if it will work.
3025
3026         * configure.in: add --with-system-pid-file and --with-system-socket
3027
3028 2003-04-06  Colin Walters  <walters@verbum.org>
3029
3030         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
3031
3032         * bus/system.conf.in: Declare a pidfile.
3033
3034         * bus/bus.c (bus_context_new): Test for an existing pid file, and
3035         create one (if appropriate).
3036
3037         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
3038         (struct BusConfigParser) [pidfile]: New.
3039         (element_type_to_name, merge_included, start_busconfig_child)
3040         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
3041         (bus_config_parser_unref): Free it.
3042         (bus_config_parser_get_pidfile): New function.
3043
3044         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
3045
3046         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
3047
3048         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
3049
3050         * dbus/dbus-sysdeps.h: Prototype it.
3051
3052 2003-04-06  Havoc Pennington  <hp@pobox.com>
3053
3054         * bus/bus.c (bus_context_new): print the address in here, rather
3055         than in main(), because we need to do it before forking the daemon
3056
3057         * bus/dispatch.c (send_service_nonexistent_error): set the sender
3058         on the service nonexistent error
3059
3060         * bus/driver.c (bus_driver_handle_acquire_service): set the
3061         sender on the AcquireService reply
3062
3063         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
3064         server also listen on a UNIX socket so services can connect to it.
3065
3066 2003-04-06  Havoc Pennington  <hp@pobox.com>
3067
3068         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
3069         so it detects deadlocks and also we actually init threads when
3070         debugging.
3071
3072 2003-04-06  Havoc Pennington  <hp@pobox.com>
3073
3074         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3075         save the domain socket name, and unlink it when we disconnect the
3076         server. Means that at least when we exit normally, we won't leave
3077         a bunch of junk in /tmp
3078
3079         * dbus/dbus-transport-unix.c
3080         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
3081         memory management). (I was making a real change here but then
3082         didn't)
3083
3084 2003-04-06  Havoc Pennington  <hp@pobox.com>
3085
3086         * bus/bus.c (bus_context_new): fix wrong handling of
3087         server_data_slot_unref() in the error case.
3088
3089         * dbus/dbus-internals.h (_dbus_assert): change so it passes
3090         "(condition) != 0" to _dbus_real_assert so that
3091         "_dbus_assert (pointer)" doesn't cause a warning
3092
3093         * bus/main.c (main): accept --print-address option to print out
3094         the message bus address
3095
3096         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
3097
3098         * dbus/dbus-transport.c (_dbus_transport_open): special error for
3099         "tmpdir" option to unix: address on client side
3100
3101         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
3102         to unix: address
3103
3104         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
3105         we can use to create sockets in the test suite.
3106
3107         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
3108         cleanly. To be used for testing.
3109
3110         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
3111
3112         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
3113
3114         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3115         handle trying to call this when there's no servers active
3116
3117 2003-04-05  Havoc Pennington  <hp@pobox.com>
3118
3119         * NEWS: update
3120
3121         * configure.in: 0.8
3122
3123 2003-04-05  Havoc Pennington  <hp@pobox.com>
3124
3125         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
3126         crash on startup. Need to get "try starting the daemon"
3127         in the test suite I guess. ;-)
3128
3129         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
3130         tracked the number of open connections; it's better done in
3131         application-specific code as you want it to span all servers etc.
3132
3133 2003-04-05  Havoc Pennington  <hp@pobox.com>
3134
3135         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
3136         patch from Colin Walters
3137
3138 2003-04-05  Havoc Pennington  <hp@pobox.com>
3139
3140         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
3141         reality; in fact multiple mechanisms are allowed.
3142
3143         * dbus/dbus-internals.c (_dbus_real_assert)
3144         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
3145         _dbus_assert_not_reached() into functions, so that they don't show
3146         up in basic block counts for test coverage, and don't use up as
3147         much disk space. Does mean slower execution speed though, so
3148         assumes --disable-asserts is the normal production case.
3149
3150 2003-04-05  Havoc Pennington  <hp@pobox.com>
3151
3152         * test/Makefile.am (dist-hook): also dist *.in files
3153
3154         * NEWS: update
3155
3156         * configure.in: 0.7
3157
3158 2003-04-05  Havoc Pennington  <hp@pobox.com>
3159
3160         * dbus/dbus-string.c: docs warning
3161
3162         * dbus/dbus-spawn.c: missing docs
3163
3164         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
3165
3166 2003-04-05  Havoc Pennington  <hp@pobox.com>
3167
3168         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
3169         magic from GLib
3170
3171         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
3172         to -1 once we've reaped the babysitter
3173         (_dbus_babysitter_handle_watch): do as much work as we can, not
3174         just one go of it
3175
3176         * bus/activation.c: add code using DBusBabysitter so that we
3177         handle it when a service fails to start up properly.
3178         (bus_activation_service_created): don't remove the activation
3179         entries as we go, just let them get removed when we free the pending
3180         activation. Unref reply messages after sending them.
3181
3182 2003-04-05  Havoc Pennington  <hp@pobox.com>
3183
3184         * test/decode-gcov.c (main): print per-directory stats in the report
3185
3186         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
3187
3188 2003-04-05  Havoc Pennington  <hp@pobox.com>
3189
3190         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
3191
3192         * test/decode-gcov.c: hack up a little program to suck data
3193         out of gcov files. Yes this is sort of silly.
3194
3195         * configure.in: define something in config.h and do an
3196         AM_CONDITIONAL when gcov is enabled
3197
3198 2003-04-04  Havoc Pennington  <hp@redhat.com>
3199
3200         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
3201         return a "babysitter" object that is used to monitor the status of
3202         the spawned process and reap it when required.
3203
3204         * test/test-segfault.c, test/test-exit.c,
3205         test/test-sleep-forever.c: binaries that do various lame things,
3206         used in the test suite.
3207
3208         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
3209
3210 2003-04-03  Havoc Pennington  <hp@pobox.com>
3211
3212         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
3213         in preparation for modifying it, dbus-sysdeps is getting
3214         a bit unmanageable.
3215
3216 2003-04-03  Havoc Pennington  <hp@redhat.com>
3217
3218         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
3219         have multiple ones
3220
3221         * bus/*.[hc]: adapt to mainloop change
3222
3223 2003-04-03  Havoc Pennington  <hp@redhat.com>
3224
3225         * bus/activation.c (load_directory): fix up memleaks
3226         (bus_activation_entry_free): free the entry
3227
3228         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
3229         we get one from the message bus; fix memleaks.
3230
3231         * dbus/dbus-message.c (dbus_set_error_from_message): new function
3232
3233 2003-04-03  Havoc Pennington  <hp@pobox.com>
3234
3235         * bus/config-parser.c (bus_config_parser_unref): free
3236         list of mechanisms, bug discovered by test suite enhancements
3237         (putting system.conf and session.conf into suite)
3238
3239         * test/Makefile.am, test/test-service.c: add placeholder for a
3240         test service that we'll activate as part of test suite. Doesn't
3241         do anything yet.
3242
3243         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
3244         setting NULL value, and use system malloc not dbus_malloc()
3245         when we have unavoidable memleakage.
3246
3247         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
3248         didn't work, and support DBUS_BUS_ACTIVATION.
3249
3250         * bus/activation.c (child_setup): pass our well-known bus type to
3251         the child
3252
3253         * bus/config-parser.c: support <type> to specify well-known type
3254
3255         * doc/dbus-specification.sgml: document the env variables to
3256         locate well-known buses and find service activator
3257
3258 2003-04-02  Havoc Pennington  <hp@redhat.com>
3259
3260         * test/Makefile.am (all-local): add a rule to copy tests to
3261         builddir, so we can have generated tests. Use this to remove the
3262         silly hack for testing system.conf and session.conf. Will use this
3263         shortly to generate .service files pointing to test binaries.
3264
3265 2003-04-02  Havoc Pennington  <hp@redhat.com>
3266
3267         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
3268         current alloc and needed new length, not max of the doubled
3269         allocation and needed new length. Also, when building tests,
3270         don't do the double-allocation stuff, just realloc every time.
3271
3272 2003-04-02  Havoc Pennington  <hp@redhat.com>
3273
3274         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
3275         in error messages
3276         (_dbus_string_get_dirname): new
3277         (_dbus_sysdeps_test): new
3278         (_dbus_directory_open): include dirnames in error messages
3279
3280         * bus/config-parser.c: interpret <include> and <includedir> and
3281         <servicedir> relative to config file location if the given
3282         filename is not absolute.
3283
3284         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
3285
3286 2003-04-02  Havoc Pennington  <hp@redhat.com>
3287
3288         * bus/connection.c (bus_transaction_send_error_reply): set sender
3289         service for the error, and unref the reply on success
3290
3291         * bus/activation.c: convert to use BusTransaction so OOM can be
3292         handled correctly
3293         (bus_activation_service_created): set sender of the message
3294
3295 2003-04-01  Havoc Pennington  <hp@redhat.com>
3296
3297         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
3298         <includedir> (at least mostly)
3299
3300         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
3301         first, then the user ID
3302
3303 2003-04-01  Havoc Pennington  <hp@pobox.com>
3304
3305         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
3306         function
3307
3308         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
3309
3310         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
3311
3312         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
3313         socket 0777, and unlink any existing socket.
3314
3315         * bus/bus.c (bus_context_new): change our UID/GID and fork if
3316         the configuration file so specifies; set up auth mechanism
3317         restrictions
3318
3319         * bus/config-parser.c (bus_config_parser_content): add support
3320         for <fork> option and fill in code for <auth>
3321
3322         * bus/system.conf.in: add <fork/> to default configuration,
3323         and limit auth mechanisms to EXTERNAL
3324
3325         * doc/config-file.txt (Elements): add <fork>
3326
3327         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
3328         (_dbus_change_identity): new function
3329
3330 2003-03-31  Havoc Pennington  <hp@redhat.com>
3331
3332         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
3333         (_dbus_listen_unix_socket): fix off-by-one error in null
3334         termination spotted by Nalin
3335
3336 2003-03-31  Havoc Pennington  <hp@redhat.com>
3337
3338         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
3339         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
3340         having a real home directory available.
3341
3342 2003-03-31  Havoc Pennington  <hp@redhat.com>
3343
3344         * bus/Makefile.am (install-data-hook): create /var/run/dbus
3345
3346         * bus/messagebus.in: add init script for Red Hat /etc/init.d
3347
3348         * configure.in: add support for specifying a style of init script
3349         to install
3350
3351 2003-03-31  Havoc Pennington  <hp@redhat.com>
3352
3353         Fix some annoying DBusString API and fix all affected code.
3354
3355         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
3356         max_length argument
3357         (_dbus_string_get_data): change to return string instead of using
3358         an out param
3359         (_dbus_string_get_const_data): ditto
3360         (_dbus_string_get_data_len): ditto
3361         (_dbus_string_get_const_data_len): ditto
3362
3363 2003-03-31  Havoc Pennington  <hp@redhat.com>
3364
3365         * bus/main.c (main): fix up the command line arguments to be nicer
3366
3367 2003-03-31  Havoc Pennington  <hp@redhat.com>
3368
3369         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
3370         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
3371         final location that lands in the config file
3372
3373         * bus/config-loader-expat.c (bus_config_load): fix type of
3374         XML_Parser variable
3375
3376         * doc/TODO: remove TODO item for dbus_bus_get()
3377
3378         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
3379
3380 2003-03-31  Havoc Pennington  <hp@pobox.com>
3381
3382         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
3383         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
3384         argument since they are always client side
3385
3386         * dbus/dbus-server.c (dbus_server_get_address): new function
3387
3388         * bus/main.c (main): take the configuration file as an argument.
3389
3390         * test/data/valid-config-files/debug-allow-all.conf: new file to
3391         use with dispatch.c tests for example
3392
3393         * bus/test-main.c (main): require test data dir
3394
3395         * bus/bus.c (bus_context_new): change this to take a
3396         configuration file name as argument
3397
3398         * doc/config-file.txt (Elements): add <servicedir>
3399
3400         * bus/system.conf, bus/session.conf: new files
3401
3402         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
3403         well-known socket if none set
3404
3405         * configure.in: create system.conf and session.conf
3406
3407 2003-03-30  Havoc Pennington  <hp@pobox.com>
3408
3409         * bus/config-parser.c: hacking
3410
3411         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
3412         to shut down, since it could cause weirdness with the DBusList
3413         lock
3414
3415         * dbus/dbus-list.c (_dbus_list_test): add tests for the
3416         link-oriented stack routines
3417         (alloc_link): free the mempool if the first alloc from it fails
3418
3419         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
3420
3421         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
3422         from GLib
3423         (_dbus_string_skip_white): new
3424
3425         * doc/config-file.txt (Elements): add <includedir>
3426
3427 2003-03-28  Havoc Pennington  <hp@pobox.com>
3428
3429         * dbus/dbus-string.c (_dbus_string_copy_data_len)
3430         (_dbus_string_copy_data): new functions
3431
3432 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
3433
3434         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
3435         * dbus/dbus-bus.h:
3436         Add dbus_bus_get.
3437
3438         * dbus/dbus-memory.c:
3439         Fix a doc comment.
3440
3441 2003-03-28  Havoc Pennington  <hp@pobox.com>
3442
3443         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
3444         I think it may have just been superstition. Not sure.
3445
3446         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
3447         failures that were not being handled.
3448
3449         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
3450
3451         * dbus/dbus-memory.c: add ability to set number of mallocs in a
3452         row that will fail on out-of-memory.
3453
3454         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
3455         function for testing out-of-memory handling.
3456
3457         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
3458         allocation functions, they do map exactly to the expat ones.
3459
3460 2003-03-27  Havoc Pennington  <hp@redhat.com>
3461
3462         * bus/config-loader-libxml.c (bus_config_load): add another error
3463         check
3464
3465 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
3466
3467         * doc/TODO:
3468         Add note about automatic service activation.
3469
3470         * doc/dbus-specification.sgml:
3471         Rename the specification and clarify a few things.
3472
3473 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
3474
3475         * Doxyfile.in:
3476         * dbus/dbus-address.c:
3477         * dbus/dbus-dict.c:
3478         * dbus/dbus-marshal.c:
3479         * dbus/dbus-server-debug-pipe.c:
3480         * dbus/dbus-transport-unix.c:
3481         Fix documentation warnings.
3482
3483 2003-03-26  Havoc Pennington  <hp@pobox.com>
3484
3485         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
3486         after every test so it's quick and easy to see which leaked, and
3487         so we test multiple dbus_shutdown() calls
3488
3489         * configure.in: change configure.in XML stuff to also support
3490         expat
3491
3492         * config-loader-libxml.c: some hacking
3493
3494         * config-loader-expat.c: some hacking
3495
3496         * config-parser.c: some hacking, plus tests
3497
3498 2003-03-25  Havoc Pennington  <hp@redhat.com>
3499
3500         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
3501
3502         * configure.in: add --with-xml option to specify XML library,
3503         right now only libxml is supported.
3504
3505         * bus/config-loader-libxml.c, config-parser.c: sync some minor
3506         nonworking code between home and work, still just stubs
3507
3508 2003-03-24  Havoc Pennington  <hp@redhat.com>
3509
3510         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
3511         file
3512
3513         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
3514         NULL argument for "message" if the error is a well-known one,
3515         fill in a generic message in this case.
3516
3517         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
3518         favor of DBusError
3519
3520         * bus/test.c (bus_test_flush_bus): add
3521
3522         * bus/policy.c (bus_policy_test): test code stub
3523
3524 2003-03-24  Havoc Pennington  <hp@pobox.com>
3525
3526         * bus/connection.c (bus_connections_setup_connection): set up
3527         the "can this user connect" function, but it always returns
3528         TRUE until we have a config file parser so we can have a config
3529         file that allows connections.
3530
3531 2003-03-23  Havoc Pennington  <hp@pobox.com>
3532
3533         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
3534         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
3535         the mutex, so we can check for proper memory management
3536         and OOM handling.
3537
3538         * dbus/dbus-dataslot.c: remove the mutex from
3539         DBusDataSlotAllocator and lock it manually when using it,
3540         to simplify fitting it into the global slots framework.
3541
3542         * dbus/dbus-threads.c (init_static_locks): rework how we're
3543         handling global locks so they are easily shut down.
3544
3545         * bus/policy.c (bus_policy_append_rule): fix
3546
3547         * bus/test-main.c (main): check for memleaks
3548
3549         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
3550         test suite check for memleaks
3551
3552         * dbus/dbus-memory.c: add support in test mode for tracking
3553         number of outstanding blocks
3554
3555 2003-03-23  Havoc Pennington  <hp@pobox.com>
3556
3557         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
3558         policies code
3559
3560         * dbus/dbus-hash.h: add ULONG hash keys
3561
3562         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
3563         (_dbus_get_group_id): new function
3564
3565 2003-03-20  Havoc Pennington  <hp@redhat.com>
3566
3567         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
3568         new function
3569         (dbus_connection_get_unix_user): new function
3570
3571 2003-03-20  Havoc Pennington  <hp@pobox.com>
3572
3573         * bus/connection.c (bus_connection_send_oom_error): assert that
3574         message has a sender
3575         (connection_execute_transaction): ditto
3576         (bus_connection_preallocate_oom_error): fix to set the sender, and
3577         set recipient to the destination service, not the bus driver
3578
3579         * bus/policy.c: hacking
3580
3581         * dbus/dbus-message.c (dbus_message_service_is): new function
3582         (dbus_message_sender_is): new
3583
3584 2003-03-19  Havoc Pennington  <hp@redhat.com>
3585
3586         * bus/policy.c: start sketching code for policy restrictions on
3587         what connections can do.
3588
3589 2003-03-18  Havoc Pennington  <hp@redhat.com>
3590
3591         * doc/TODO: some notes on high-level todo items. Little nitpick
3592         stuff is all in @todo, so no need to add it here.
3593
3594         * doc/config-file.txt: some notes on how config file might look
3595
3596 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
3597
3598         * configure.in: 0.6
3599
3600         * NEWS: Update.
3601
3602 2003-03-17  Havoc Pennington  <hp@redhat.com>
3603
3604         * dbus/dbus-internals.h: add gcc attributes so that
3605         our printf-style functions warn on bad arguments to
3606         format
3607
3608         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
3609         format bug
3610
3611         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3612         printf format bug
3613
3614 2003-03-17  Havoc Pennington  <hp@redhat.com>
3615
3616         * bus/test-main.c (main): make it print something as it runs
3617         so make check doesn't look stuck
3618
3619         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
3620         from CVS, now obsolete
3621
3622 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
3623
3624         * bus/dispatch.c: (bus_dispatch):
3625         Refetch the service name since it may have been reallocated
3626         when dbus_message_set_sender was called.
3627
3628         * dbus/dbus-sysdeps.c: (_dbus_accept):
3629         Add address and address length variables and use them to stop
3630         valgrind from complaining.
3631
3632 2003-03-17  Havoc Pennington  <hp@pobox.com>
3633
3634         All tests pass, no memleaks, no valgrind complaints.
3635
3636         * bus/test.c: refcount handler_slot
3637
3638         * bus/connection.c (bus_connections_new): refcount
3639         connection_data_slot
3640
3641         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
3642         bytes so that auth scripts pass.
3643
3644         * bus/dispatch.c: init message_handler_slot so it gets allocated
3645         properly
3646
3647         * bus/dispatch.c (message_handler_slot_ref): fix memleak
3648
3649         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
3650         dealloc server_pipe_hash when no longer used for benefit of
3651         leak checking
3652
3653         * dbus/dbus-auth.c (process_command): memleak fix
3654
3655         * bus/dispatch.c (check_hello_message): memleak fix
3656
3657 2003-03-16  Havoc Pennington  <hp@pobox.com>
3658
3659         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
3660
3661 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
3662
3663         * bus/activation.c (bus_activation_activate_service): Append
3664         the pending activation entry to the list of pending activations.
3665
3666 2003-03-16  Havoc Pennington  <hp@pobox.com>
3667
3668         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
3669         connections
3670
3671         * dbus/dbus-address.c (create_entry): fix OOM handling when
3672         failing to alloc entry->method
3673
3674 2003-03-16  Havoc Pennington  <hp@pobox.com>
3675
3676         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
3677         the watch
3678
3679         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3680         add some missing dbus_set_result
3681
3682         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
3683         alloc the DBusMessageHandler
3684
3685         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
3686         the transport here, since we call this from the finalizer; it
3687         resulted in a double-finalize.
3688
3689         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
3690         where we tried to use transport->connection that was NULL,
3691         happened when transport was disconnected early on due to OOM
3692
3693         * bus/*.c: adapt to handle OOM for watches/timeouts
3694
3695         * dbus/dbus-transport-unix.c: port to handle OOM during
3696         watch handling
3697
3698         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
3699         reference to unused bytes instead of a copy
3700
3701         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
3702         out of memory
3703
3704         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
3705         FALSE on OOM
3706
3707         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
3708         of memory
3709
3710 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
3711
3712         * doc/dbus-specification.sgml:
3713         Document reply message for ActivateService.
3714
3715 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
3716
3717         * bus/activation.c: (bus_pending_activation_entry_free),
3718         (bus_pending_activation_free), (bus_activation_new),
3719         (bus_activation_unref), (bus_activation_service_created),
3720         (bus_activation_activate_service):
3721         * bus/activation.h:
3722         * bus/bus.c: (bus_context_new):
3723         * bus/desktop-file.c: (new_section):
3724         * bus/driver.c: (bus_driver_send_service_deleted),
3725         (bus_driver_handle_activate_service):
3726         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
3727         * bus/services.h:
3728         * dbus/dbus-connection.c:
3729         (dbus_connection_send_with_reply_and_block):
3730         * dbus/dbus-message.c: (dbus_message_append_args_valist):
3731         * dbus/dbus-protocol.h:
3732         Make activation work better. Now pending activations will be queued
3733         and the daemon won't try to activate services that are already registered.
3734
3735 2003-03-16  Havoc Pennington  <hp@pobox.com>
3736
3737         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
3738         connection data
3739
3740         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
3741         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
3742
3743 2003-03-16  Havoc Pennington  <hp@pobox.com>
3744
3745         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
3746         this. always run the test suite before commit...
3747
3748         * bus/*: adapt to DBusConnection API changes
3749
3750         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
3751         requires renaming stuff to avoid dbus_connection_dispatch name
3752         conflict.
3753
3754         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
3755         function
3756
3757         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3758         separate from _dbus_message_loader_return_buffer()
3759
3760         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
3761         this, because it's now always broken to use; the number of
3762         messages in queue vs. the number still buffered by the message
3763         loader is undefined/meaningless. Should use
3764         dbus_connection_get_dispatch_state().
3765         (dbus_connection_dispatch): rename from
3766         dbus_connection_dispatch_message
3767
3768 2003-03-16  Havoc Pennington  <hp@pobox.com>
3769
3770         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
3771         implementation
3772
3773 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
3774
3775         * dbus/dbus-connection.c:
3776         (dbus_connection_send_with_reply_and_block):
3777         Decrease connection->n_incoming when removing an entry
3778         from the list.
3779         * dbus/dbus-dict.c: (dbus_dict_entry_free),
3780         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
3781         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
3782         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
3783         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
3784         (dbus_dict_get_byte_array):
3785         Handle NULL arrays and strings. Also add support for byte arrays.
3786
3787         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
3788         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
3789         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3790         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3791         (_dbus_demarshal_dict), (demarshal_and_validate_len),
3792         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
3793         * dbus/dbus-marshal.h:
3794         Add support for marshalling and demarshalling empty arrays and strings.
3795
3796         * dbus/dbus-message.c: (dbus_message_append_args_valist),
3797         (dbus_message_append_string_array),
3798         (dbus_message_iter_get_boolean),
3799         (dbus_message_iter_get_boolean_array),
3800         (dbus_message_iter_get_int32_array),
3801         (dbus_message_iter_get_uint32_array),
3802         (dbus_message_iter_get_double_array),
3803         (dbus_message_iter_get_byte_array),
3804         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
3805         (check_message_handling):
3806         Add support for getting empty arrays and dicts.
3807
3808         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
3809         Don't do any validation at all for now, that's better than just checking
3810         for ASCII.
3811
3812         * test/data/valid-messages/emptiness.message:
3813         New test message with lots of empty arrays.
3814
3815 2003-03-16  Havoc Pennington  <hp@pobox.com>
3816
3817         * dbus/dbus-connection.c
3818         (_dbus_connection_queue_received_message_link): new function that
3819         can't fail due to OOM
3820
3821         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
3822         new function pops a message together with a list link
3823         containing it.
3824
3825         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
3826         message queuing functions to avoid needing to alloc memory
3827
3828 2003-03-16  Havoc Pennington  <hp@pobox.com>
3829
3830         Oops - test code was only testing failure of around 30 of the
3831         mallocs in the test path, but it turns out there are 500+
3832         mallocs. I believe this was due to misguided linking setup such
3833         that there was one copy of dbus_malloc etc. in the daemon and one
3834         in the shared lib, and only daemon mallocs were tested. In any
3835         case, the test case now tests all 500+ mallocs, and doesn't pass
3836         yet, though there are lots of fixes in this patch.
3837
3838         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3839         this so that it doesn't need to allocate memory, since it
3840         has no way of indicating failure due to OOM (and would be
3841         annoying if it did).
3842
3843         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
3844
3845         * bus/Makefile.am: rearrange to create two self-contained
3846         libraries, to avoid having libraries with overlapping symbols.
3847         that was resulting in weirdness, e.g. I'm pretty sure there
3848         were two copies of global static variables.
3849
3850         * dbus/dbus-internals.c: move the malloc debug stuff to
3851         dbus-memory.c
3852
3853         * dbus/dbus-list.c (free_link): free list mempool if it becomes
3854         empty.
3855
3856         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
3857
3858         * dbus/dbus-address.c (dbus_parse_address): free list nodes
3859         on failure.
3860
3861         * bus/dispatch.c (bus_dispatch_add_connection): free
3862         message_handler_slot when no longer using it, so
3863         memory leak checkers are happy for the test suite.
3864
3865         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
3866
3867         * bus/bus.c (new_connection_callback): disconnect in here if
3868         bus_connections_setup_connection fails.
3869
3870         * bus/connection.c (bus_connections_unref): fix to free the
3871         connections
3872         (bus_connections_setup_connection): if this fails, don't
3873         disconnect the connection, just be sure there are no side
3874         effects.
3875
3876         * dbus/dbus-string.c (undo_alignment): unbreak this
3877
3878         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
3879         leaking
3880         (_dbus_auth_new): fix the order in which we free strings
3881         on OOM failure
3882
3883         * bus/connection.c (bus_connection_disconnected): fix to
3884         not send ServiceDeleted multiple times in case of memory
3885         allocation failure
3886
3887         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
3888         get the base service name
3889         (dbus_bus_register_client): don't return base service name,
3890         instead store it on the DBusConnection and have an accessor
3891         function for it.
3892         (dbus_bus_register_client): rename dbus_bus_register()
3893
3894         * bus/dispatch.c (check_hello_message): verify that other
3895         connections on the bus also got the correct results, not
3896         just the one sending hello
3897
3898 2003-03-15  Havoc Pennington  <hp@pobox.com>
3899
3900         Make it pass the Hello handling test including all OOM codepaths.
3901         Now to do other messages...
3902
3903         * bus/services.c (bus_service_remove_owner): fix crash when
3904         removing owner from an empty list of owners
3905         (bus_registry_ensure): don't leave service in the list of
3906         a connection's owned services if we fail to put the service
3907         in the hash table.
3908
3909         * bus/connection.c (bus_connection_preallocate_oom_error): set
3910         error flag on the OOM error.
3911
3912         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3913         handle _dbus_transport_set_connection failure
3914
3915         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
3916         to create watches up front and simply enable/disable them as
3917         needed.
3918         (unix_connection_set): this can now fail on OOM
3919
3920         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
3921         of enabling/disabling a watch or timeout.
3922
3923         * bus/loop.c (bus_loop_iterate): don't touch disabled
3924         watches/timeouts
3925
3926         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
3927
3928 2003-03-15  Havoc Pennington  <hp@pobox.com>
3929
3930         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
3931         write useful test code, after all that futzing around ;-)
3932
3933         Test does not yet pass because we can't handle OOM in
3934         _dbus_transport_messages_pending (basically,
3935         dbus_connection_preallocate_send() does not prealloc the write
3936         watch). To fix this, I think we need to add new stuff to
3937         set_watch_functions, namely a SetEnabled function so we can alloc
3938         the watch earlier, then enable it later.
3939
3940         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
3941         dbus-memory.c to the convenience lib
3942
3943         * bus/test.c: rename some static functions to keep them clearly
3944         distinct from stuff in connection.c. Handle client disconnection.
3945
3946 2003-03-14  Havoc Pennington  <hp@pobox.com>
3947
3948         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
3949         transport, tests more of the real codepath. Set up clients
3950         with bus_setup_debug_client.
3951
3952         * bus/test.c (bus_setup_debug_client): function to set up debug
3953         "clients" on the main loop
3954
3955         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
3956         support
3957
3958         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
3959         server type
3960
3961         * dbus/dbus-server-debug.c: support a debug server based on pipes
3962
3963         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
3964         (_dbus_close): new function
3965
3966         * configure.in: check for socketpair
3967
3968 2003-03-14  Havoc Pennington  <hp@redhat.com>
3969
3970         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
3971         cheesy hack
3972
3973         * dbus/dbus-transport-debug.c: rework this a good bit to be
3974         less complicated. hopefully still works.
3975
3976         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
3977         manually
3978
3979         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
3980         after running it
3981
3982         * dbus/dbus-message.c (dbus_message_copy): rename from
3983         dbus_message_new_from_message, fix it up to copy
3984         all the message fields, add test case
3985
3986         * bus/dispatch.c (bus_dispatch_test): add some more test code,
3987         not quite passing yet
3988
3989 2003-03-14  Havoc Pennington  <hp@pobox.com>
3990
3991         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
3992         until no work remains" in test code. (the large diff here
3993         is just code movement, no actual changes)
3994
3995         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
3996         1, no point waiting around for test code.
3997         (_dbus_server_debug_accept_transport): unref the timeout
3998         after adding it (right?)
3999
4000         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
4001
4002 2003-03-13  Havoc Pennington  <hp@redhat.com>
4003
4004         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
4005         out of memory
4006
4007         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
4008         of memory
4009
4010         * dbus/dbus-connection.h: Make AddWatchFunction and
4011         AddTimeoutFunction return a bool so they can fail on out-of-memory
4012
4013         * bus/bus.c (bus_context_new): set up timeout handlers
4014
4015         * bus/connection.c (bus_connections_setup_connection): set up
4016         timeout handlers
4017
4018         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
4019         can fail
4020
4021         * bus/bus.c (bus_context_new): adapt to changes
4022
4023         * bus/connection.c: adapt to changes
4024
4025         * test/watch.c: adapt to DBusWatch changes
4026
4027         * bus/dispatch.c (bus_dispatch_test): started adding this but
4028         didn't finish
4029
4030 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
4031
4032         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
4033
4034 2003-03-13  Havoc Pennington  <hp@pobox.com>
4035
4036         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
4037         set up a test framework as for the library
4038
4039 2003-03-12  Havoc Pennington  <hp@pobox.com>
4040
4041         Throughout: purge global variables, introduce BusActivation,
4042         BusConnections, BusRegistry, etc. objects instead.
4043
4044         * bus/bus.h, bus/bus.c: introduce BusContext as a global
4045         message bus object
4046
4047         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
4048         going to redo this a bit differently I think
4049
4050 2003-03-12  Havoc Pennington  <hp@redhat.com>
4051
4052         Mega-patch that gets the message bus daemon initially handling
4053         out-of-memory. Work still needed. Also lots of random
4054         moving stuff to DBusError instead of ResultCode.
4055
4056         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
4057
4058         * dbus/dbus-connection.c
4059         (dbus_connection_send_with_reply_and_block): use DBusError
4060
4061         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
4062         DBusResultCode
4063
4064         * dbus/dbus-connection.c (dbus_connection_send): drop the result
4065         code here, as the only failure possible is OOM.
4066
4067         * bus/connection.c (bus_connection_disconnect):
4068         rename bus_connection_disconnected as it's a notification only
4069
4070         * bus/driver.c (bus_driver_handle_acquire_service): don't free
4071         "name" on get_args failure, should be done by get_args;
4072         don't disconnect client for bad args, just return an error.
4073         (bus_driver_handle_service_exists): ditto
4074
4075         * bus/services.c (bus_services_list): NULL-terminate returned array
4076
4077         * bus/driver.c (bus_driver_send_service_lost)
4078         (bus_driver_send_service_acquired): send messages from driver to a
4079         specific client to the client's unique name, not to the broadcast
4080         service.
4081
4082         * dbus/dbus-message.c (decode_header_data): reject messages that
4083         contain no name field
4084         (_dbus_message_get_client_serial): rename to
4085         dbus_message_get_serial and make public
4086         (_dbus_message_set_serial): rename from set_client_serial
4087         (_dbus_message_set_reply_serial): make public
4088         (_dbus_message_get_reply_serial): make public
4089
4090         * bus/connection.c (bus_connection_foreach): allow stopping
4091         iteration by returning FALSE from foreach function.
4092
4093         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
4094         (dbus_connection_free_preallocated_send)
4095         (dbus_connection_preallocate_send): new API for sending a message
4096         without possibility of malloc failure.
4097         (dbus_connection_send_message): rename to just
4098         dbus_connection_send (and same for whole function family)
4099
4100         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
4101
4102         * dbus/dbus-sysdeps.c (_dbus_exit): new function
4103
4104         * bus/activation.c: handle/return errors
4105
4106         * dbus/dbus-errors.h: add more DBUS_ERROR #define
4107
4108         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
4109         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
4110         (_dbus_result_from_errno): move to this file
4111
4112 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
4113
4114         * dbus/dbus-marshal.c:
4115         (_dbus_marshal_set_string):
4116         Take a length argument so we can marshal the correct string
4117         length.
4118
4119         (_dbus_marshal_dict), (_dbus_demarshal_dict),
4120         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
4121         (_dbus_marshal_test):
4122         * dbus/dbus-marshal.h:
4123         Add support for marshalling and demarshalling dicts.
4124
4125         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4126         Add support for TYPE DICT.
4127
4128         * dbus/dbus-message.c: (set_string_field):
4129         Adjust header padding.
4130
4131         (dbus_message_append_args_valist), (dbus_message_append_dict),
4132         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
4133         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
4134         (check_message_handling), (check_have_valid_message):
4135         * dbus/dbus-message.h:
4136         Add functions for setting and getting dicts.
4137
4138         * dbus/dbus-protocol.h:
4139         Add DBUS_TYPE_DICT.
4140
4141         * dbus/dbus.h:
4142         Add dbus-dict.h
4143
4144         * doc/dbus-specification.sgml:
4145         Add information about how dicts are marshalled.
4146
4147         * test/data/invalid-messages/dict-with-nil-value.message:
4148         * test/data/invalid-messages/too-short-dict.message:
4149         * test/data/valid-messages/dict-simple.message:
4150         * test/data/valid-messages/dict.message:
4151         Add sample messages containing dicts.
4152
4153 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
4154
4155         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
4156
4157 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
4158
4159         * dbus/Makefile.am:
4160         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
4161         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
4162         (dbus_dict_set_int32), (dbus_dict_set_uint32),
4163         (dbus_dict_set_double), (dbus_dict_set_string),
4164         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
4165         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
4166         (dbus_dict_set_string_array), (_dbus_dict_test):
4167         * dbus/dbus-dict.h:
4168         Fix according to comments from Havoc.
4169
4170 2003-03-06  Michael Meeks  <michael@server.home>
4171
4172         * configure.in: if we don't have kde-config, disable have_qt.
4173
4174 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
4175
4176         * dbus/Makefile.am:
4177         Add dbus-dict.[ch]
4178
4179         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
4180         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
4181         (dbus_dict_remove), (dbus_dict_get_value_type),
4182         (dbus_dict_get_keys), (dbus_dict_put_boolean),
4183         (dbus_dict_put_int32), (dbus_dict_put_uint32),
4184         (dbus_dict_put_double), (dbus_dict_put_string),
4185         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
4186         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
4187         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
4188         (dbus_dict_get_int32), (dbus_dict_get_uint32),
4189         (dbus_dict_get_double), (dbus_dict_get_string),
4190         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
4191         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
4192         (dbus_dict_get_string_array), (_dbus_dict_test):
4193         * dbus/dbus-dict.h:
4194         Add DBusDict implementation
4195
4196         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
4197         * dbus/dbus-test.h:
4198         Add _dbus_dict_test
4199
4200 2003-03-04  Havoc Pennington  <hp@pobox.com>
4201
4202         * test/data/auth/*: adapt to changes
4203
4204         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
4205         USERID_BASE64 and change USERNAME_BASE64 to put in username not
4206         userid
4207
4208         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
4209         more stuff from being in a context name, to make the protocol
4210         simpler to deal with
4211
4212         * dbus/dbus-errors.c (dbus_error_has_name): new function
4213         (dbus_error_is_set): new function
4214
4215         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
4216         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
4217
4218         * dbus/dbus-connection.c (dbus_connection_flush): also read
4219         messages during a flush operation
4220
4221         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
4222
4223 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
4224
4225         * configure.in: Check for gethostbyname on Solaris.
4226
4227         * dbus/dbus-transport.c: (_dbus_transport_open):
4228         Remove duplicate "tcp" entry.
4229
4230         * doc/dbus-specification.sgml:
4231         Clarify some things.
4232
4233 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
4234
4235         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
4236         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
4237         (_dbus_keyring_test):
4238         * dbus/dbus-md5.c: (_dbus_md5_compute):
4239         * dbus/dbus-sha.c: (_dbus_sha_compute):
4240         Plug memory leaks.
4241
4242 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
4243
4244         * README: Add some things.
4245
4246 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
4247
4248         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
4249         after case DBUS_TYPE_BOOELAN.
4250
4251 2003-03-02  Havoc Pennington  <hp@pobox.com>
4252
4253         * test/break-loader.c (randomly_set_extreme_ints): add test that
4254         sets really huge and small integers
4255
4256         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
4257         that length of boolean array fits in the string, and that
4258         string has room for boolean value in single-bool case.
4259
4260         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
4261         optional value to "ALIGN" command which is what to fill the
4262         alignment with.
4263
4264         * test/data/valid-messages/no-padding.message: add regression
4265         test for the message padding problem
4266
4267 2003-03-02  Havoc Pennington  <hp@pobox.com>
4268
4269         * dbus/dbus-message.c (decode_header_data): fix to always init
4270         message_padding, from Benjamin Dauvergne
4271
4272 2003-03-02  Havoc Pennington  <hp@pobox.com>
4273
4274         * configure.in: 0.5
4275
4276         * NEWS: Update.
4277
4278 2003-03-01  Joe Shaw  <joe@assbarn.com>
4279
4280         * configure.in: Check for "struct cmsgcred" and try to access its
4281         members for BSD-like unices.
4282
4283         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
4284         _dbus_read_credentials_unix_socket().
4285         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
4286         read() for reading the credential byte off the unix socket.  Use
4287         struct cmsgcred on systems that support it.
4288
4289 2003-02-27  Alexander Larsson  <alexl@redhat.com>
4290
4291         * glib/Makefile.am:
4292         * configure.in:
4293         Make gthreads-2.0 dependency optional. Don't build thread test if
4294         its not found.
4295
4296 2003-02-27  Havoc Pennington  <hp@pobox.com>
4297
4298         * dbus/dbus-connection.c
4299         (dbus_connection_send_message_with_reply_and_block): fix doh!
4300         doh! doh! bug that resulted in never removing a reply from the
4301         queue, no wonder we called get_reply_serial so much ;-)
4302
4303         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
4304         and client serial instead of demarshaling them every time
4305
4306 2003-02-27  Havoc Pennington  <hp@pobox.com>
4307
4308         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
4309         more inlined, using dbus-string-private.h, speeds things up
4310         substantially
4311
4312         * dbus/dbus-string.c (_dbus_string_free): apply align offset
4313         when freeing the string
4314         (_dbus_string_steal_data): fix for align offset
4315         (undo_alignment): new function
4316
4317 2003-02-26  Havoc Pennington  <hp@redhat.com>
4318
4319         All kinds of audit fixes from Owen, plus initial attempt to
4320         handle unaligned memory returned from malloc.
4321
4322         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
4323         leave room for align_offset and nul byte
4324         (fixup_alignment): function to track an align_offset and
4325         ensure real->str is aligned
4326         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
4327         to allow a nul byte plus align offset
4328         (_dbus_string_lock): fix overflow issue
4329         (_dbus_string_init_const_len): add assertions on sanity of len,
4330         assign allocated to be ALLOCATION_PADDING larger than len
4331         (set_length): fixup the overflow handling
4332         (_dbus_string_get_data_len): fix overflow in assertion
4333         (open_gap): detect overflow in size of gap to be opened
4334         (_dbus_string_lengthen): add overflow check
4335         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
4336         (_dbus_string_append): add overflow check
4337         (_dbus_string_append_unichar): overflow
4338         (_dbus_string_delete): fix overflow in assertion
4339         (_dbus_string_copy_len): overflow in assertion
4340         (_dbus_string_replace_len): overflows in assertions
4341         (_dbus_string_find): change to implement in terms of
4342         _dbus_string_find_to
4343         (_dbus_string_find_to): assorted fixage
4344         (_dbus_string_equal_c_str): assert c_str != NULL,
4345         fix logic so the function works
4346         (_dbus_string_ends_with_c_str): fix overflow thingy
4347         (_dbus_string_base64_encode): overflow fix
4348         (_dbus_string_validate_ascii): overflow
4349         (_dbus_string_validate_nul): overflow
4350
4351 2003-02-26  Havoc Pennington  <hp@redhat.com>
4352
4353         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
4354
4355 2003-02-26  Alexander Larsson  <alexl@redhat.com>
4356
4357         * configure.in:
4358         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
4359
4360         * dbus/dbus-connection.c:
4361         * dbus/dbus-connection.h:
4362         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
4363         Add dbus_connection_set_wakeup_main_function and use it when queueing
4364         incoming and outgoing messages.
4365
4366
4367         * dbus/dbus-dataslot.c:
4368         Threadsafe usage of DBusDataSlotAllocator
4369
4370         * dbus/dbus-message.c: (dbus_message_get_args_iter):
4371         dbus_new can fail.
4372
4373         * dbus/dbus-server-unix.c:
4374         Add todo comment
4375
4376         * glib/dbus-gmain.c:
4377         Implement the new wakeup functions for glib.
4378
4379         * glib/Makefile.am:
4380         * glib/test-thread-client.c:
4381         * glib/test-thread-server.c:
4382         * glib/test-thread.h:
4383         Initial cut at some thread test code. Not really done yet.
4384
4385 2003-02-26  Havoc Pennington  <hp@pobox.com>
4386
4387         * dbus/dbus-connection.c
4388         (dbus_connection_send_message_with_reply_and_block): fix crash
4389         where we ref'd the outgoing message instead of the returned reply
4390
4391         * dbus/dbus-transport-unix.c (do_authentication): check read watch
4392         at the end of this function, so if we didn't need to read for
4393         authentication, we reinstall it for receiving messages
4394
4395         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
4396         a NULL sender for peer-to-peer case
4397
4398         * dbus/dbus-transport-unix.c (check_read_watch): handle
4399         !authenticated case correctly
4400
4401         * glib/dbus-gmain.c: add support for DBusServer
4402
4403         * dbus/dbus-server.c: add data slot support
4404
4405         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
4406         return values and handle errors
4407
4408         * dbus/dbus-dataslot.c: factor out the data slot stuff from
4409         DBusConnection
4410
4411         * Doxyfile.in (INPUT): add glib subdir
4412
4413         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
4414         setup_with_g_main instead of hookup_with_g_main; write docs
4415
4416 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
4417
4418         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
4419         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4420         * dbus/dbus-message.c: (dbus_message_append_boolean),
4421         (dbus_message_append_boolean_array),
4422         (dbus_message_get_args_valist), (_dbus_message_test):
4423         * dbus/dbus-message.h:
4424         * doc/dbus-specification.sgml:
4425         Various fixes as pointed out by Havoc.
4426
4427         * test/data/invalid-messages/bad-boolean-array.message:
4428         * test/data/invalid-messages/bad-boolean.message:
4429         Add invalid boolean value test cases.
4430
4431 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
4432
4433         * dbus/dbus-internals.c: (_dbus_type_to_string):
4434         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4435         (_dbus_marshal_validate_arg):
4436         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4437         * dbus/dbus-message.c: (dbus_message_append_args_valist),
4438         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
4439         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
4440         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
4441         (dbus_message_iter_get_double),
4442         (dbus_message_iter_get_boolean_array), (message_iter_test):
4443         * dbus/dbus-message.h:
4444         * dbus/dbus-protocol.h:
4445         * doc/dbus-specification.sgml:
4446         * test/data/valid-messages/lots-of-arguments.message:
4447         Add support for boolean and boolean array types.
4448
4449 2003-02-23  Havoc Pennington  <hp@pobox.com>
4450
4451         * dbus/dbus-keyring.c: finish most of this implementation and
4452         simple unit test
4453
4454         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
4455         these barf if the error isn't cleared to NULL
4456
4457         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
4458         (_dbus_create_directory): new function
4459
4460         * dbus/dbus-errors.c (dbus_set_error): fix warning
4461
4462         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
4463         (_dbus_string_hex_decode): new function
4464         (test_hex_roundtrip): test code
4465
4466         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
4467
4468         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
4469
4470         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
4471         the save-to-temp/rename trick to atomically write the new file
4472         (_dbus_string_parse_uint): new function
4473
4474 2003-02-22  Havoc Pennington  <hp@pobox.com>
4475
4476         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
4477
4478 2003-02-22  Havoc Pennington  <hp@pobox.com>
4479
4480         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
4481         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
4482
4483         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
4484
4485         * dbus/test/data/sha-1: add US government test suite for SHA-1
4486
4487 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
4488
4489         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4490         Make string arrays NULL-terminated.
4491
4492         * dbus/dbus-memory.c: (dbus_free_string_array):
4493         * dbus/dbus-memory.h:
4494         New function for freeing NULL-terminated string arrays.
4495
4496         * dbus/dbus-message-builder.c: (append_quoted_string),
4497         (_dbus_message_data_load):
4498         Add support for array types.
4499
4500         * dbus/dbus-message.c: (check_message_handling):
4501         Add more types as test cases.
4502
4503         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
4504         (_dbus_string_parse_double):
4505         Add the start offset to the end offset.
4506
4507         * test/data/valid-messages/lots-of-arguments.message:
4508         New test message with lots of arguments.
4509
4510 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
4511
4512         * dbus/dbus-message.c: (dbus_message_append_nil),
4513         (dbus_message_append_int32), (dbus_message_append_uint32),
4514         (dbus_message_append_double), (dbus_message_append_string),
4515         (dbus_message_append_int32_array),
4516         (dbus_message_append_uint32_array),
4517         (dbus_message_append_double_array),
4518         (dbus_message_append_byte_array),
4519         (dbus_message_append_string_array):
4520         Fix all out-of-memory handling in these functions.
4521
4522 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
4523
4524         * dbus/dbus-message.c: (dbus_message_append_nil):
4525         Fix a silly.
4526
4527 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
4528
4529         * dbus/dbus-message.c: (dbus_message_append_args_valist),
4530         (dbus_message_append_nil), (dbus_message_append_int32_array),
4531         (dbus_message_append_uint32_array),
4532         (dbus_message_append_double_array),
4533         (dbus_message_append_byte_array),
4534         (dbus_message_append_string_array), (dbus_message_get_args_valist),
4535         (dbus_message_iter_get_int32_array),
4536         (dbus_message_iter_get_uint32_array),
4537         (dbus_message_iter_get_double_array),
4538         (dbus_message_iter_get_byte_array),
4539         (dbus_message_iter_get_string_array):
4540
4541         * dbus/dbus-message.h:
4542         Add functions for appending and getting arrays.
4543
4544 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
4545
4546         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
4547         element size at least 8 bytes, fixes mempool tests on
4548         64-bit machines.
4549
4550 2003-02-20  Alexander Larsson  <alexl@redhat.com>
4551
4552         * dbus/dbus-transport-unix.c (unix_do_iteration):
4553         Unlock the connection mutex during a blocking select call.
4554         Add todo about how we need a way to wake up the select.
4555
4556         * dbus/dbus-connection-internal.h:
4557         * dbus/dbus-connection.c:
4558         Add _dbus_connection_lock and _dbus_connection_unlock.
4559
4560 2003-02-19  Havoc Pennington  <hp@pobox.com>
4561
4562         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
4563         Doxyfile.in, not Doxyfile
4564
4565         * dbus/dbus-keyring.c: do some hacking on this
4566
4567         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
4568
4569         * dbus/dbus-errors.c (dbus_set_error_const): do not call
4570         dbus_error_init
4571         (dbus_set_error): remove dbus_error_init, check for message ==
4572         NULL *before* we sprintf into it, and add @todo about including
4573         system headers in this file
4574
4575         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
4576
4577         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
4578
4579         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
4580         get various bits of user information based on either username
4581         or user ID
4582         (_dbus_homedir_from_username): new function
4583
4584 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
4585
4586         * configure.in:
4587         Add check for nonposix getpwnam_r
4588
4589         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
4590         Align the pool element size to a sizeof (void *) boundary.
4591
4592         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
4593         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
4594         General Solaris fixes.
4595
4596         * test/data/valid-messages/simplest-manual.message:
4597         Explicitly state that we want little-endian packing.
4598
4599 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
4600
4601         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4602
4603         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
4604         Added to create a transport connecting using a tcp/ip socket.
4605
4606         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
4607         to a tcp socket at given host and port.
4608         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
4609         hostname and port.
4610
4611         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
4612
4613         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4614         Added to create a server listening on a TCP/IP socket.
4615
4616 2003-02-19  Havoc Pennington  <hp@pobox.com>
4617
4618         Throughout: mop up all the Doxygen warnings and undocumented
4619         stuff.
4620
4621         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
4622         to search any paths.
4623
4624         * dbus/dbus-threads.c: move global mutex initializers to
4625         dbus-internals.h, multiple prototypes was confusing doxygen
4626         besides being kind of ugly
4627
4628         * Doxyfile (PREDEFINED): have Doxygen define
4629         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
4630         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
4631         (do not abuse the feature! it's for stuff like the autogenerated
4632         macros in dbus-md5.c, not just for things you don't feel like
4633         documenting...)
4634
4635 2003-02-18  Havoc Pennington  <hp@pobox.com>
4636
4637         * dbus/dbus-string.c (_dbus_string_zero): new function
4638
4639         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
4640         wrap it in some dbus-friendly API
4641
4642         * dbus/dbus-types.h: add 16-bit types
4643
4644 2003-02-18  Joe Shaw  <joe@assbarn.com>
4645
4646         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
4647         credentials from our currently running process.
4648         (get_word): Fix a buglet where we were copying the entire length
4649         instead of relative to our position.
4650
4651         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
4652         keys on the stack... it's 640k of data.
4653
4654         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
4655         read the credentials byte off the socket, even if we don't have
4656         SO_PEERCRED.
4657         (_dbus_poll): Implement poll() using select() for systems which
4658         don't have it.
4659
4660         * glib/test-dbus-glib.c (main): Print out an error if no
4661         parameters are given.
4662
4663         * test/data/auth/fallback.auth-script: Added.  Tests that a client
4664         can fallback to a secondary auth mechanism if the first fails.
4665
4666 2003-02-18  Havoc Pennington  <hp@pobox.com>
4667
4668         * AUTHORS: add Alex
4669
4670 2003-02-17  Havoc Pennington  <hp@pobox.com>
4671
4672         * doc/dbus-specification.sgml: lots of cosmetic
4673         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
4674         env variable to DBUS_BUS_ADDRESS, s/client/application/,
4675         s/server/bus/ (except in authentication section). Add a section
4676         "Message Bus Message Routing"
4677
4678 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
4679
4680         Release 0.4
4681
4682         * NEWS: Update
4683
4684 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
4685
4686         * doc/dbus-specification.sgml:
4687         Specification updates.
4688
4689 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
4690
4691         * bus/activation.c: (bus_activation_init), (child_setup),
4692         (bus_activation_activate_service):
4693         * bus/activation.h:
4694         * bus/main.c: (main):
4695         Set DBUS_ADDRESS environment variable.
4696
4697         * dbus/dbus-errors.c: (dbus_set_error):
4698         Don't use va_copy since that's a C99 feature.
4699
4700         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
4701         (_dbus_spawn_async):
4702         * dbus/dbus-sysdeps.h:
4703         Add child_setup_func to _dbus_spawn_async.
4704
4705         * doc/dbus-specification.sgml:
4706         Update specification.
4707
4708         * test/spawn-test.c: (setup_func), (main):
4709         Fix test.
4710
4711 2003-02-17  Alexander Larsson  <alexl@redhat.com>
4712
4713         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
4714         Added todo.
4715
4716 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
4717
4718         * doc/.cvsignore:
4719         * doc/Makefile.am:
4720         * doc/dbus-test-plan.sgml:
4721         Add test plan document.
4722
4723         * test/Makefile.am:
4724         Fix distcheck.
4725
4726 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
4727
4728         * dbus/dbus-message.c: (decode_header_data),
4729         (_dbus_message_loader_return_buffer):
4730         Set the header padding amount when loading a message.
4731
4732 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
4733
4734         * bus/dispatch.c: (send_one_message):
4735         Only send broadcast messages to registered connections.
4736
4737         * dbus/dbus-message.c: (dbus_message_name_is):
4738         * dbus/dbus-message.h:
4739         New convenience function.
4740
4741         * dbus/dbus-transport-debug.c: (do_reading):
4742         Only dispatch one message per run.
4743
4744         * test/Makefile.am:
4745         * test/bus-test.c: (new_connection_callback), (die),
4746         (test_hello_client1_handler), (test_hello_client2_handler),
4747         (test_hello_replies), (main):
4748
4749         * test/bus-test-loop.[ch]:
4750         Add these.
4751
4752 2003-02-16  Havoc Pennington  <hp@pobox.com>
4753
4754         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4755         backward conditional
4756
4757 2003-02-16  Alexander Larsson  <alexl@redhat.com>
4758
4759         * dbus/dbus-connection.c:
4760         Implement sent_message_with_reply. (with_reply_and block is still
4761         busted).
4762         Made dispatch_message not lose message if OOM.
4763
4764         * dbus/dbus-errors.h:
4765         Add NoReply error (for reply timeouts).
4766
4767 2003-02-16  Alexander Larsson  <alexl@redhat.com>
4768
4769         * dbus/dbus-hash.c (_dbus_hash_table_unref):
4770         Actually free keys and values when destroying hashtable.
4771
4772 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
4773
4774         * dbus/dbus-auth.c: (client_try_next_mechanism):
4775         Plug a leak.
4776
4777         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
4778         Return TRUE if there's no thread implementation around.
4779
4780         * glib/dbus-gmain.c: (free_source),
4781         (dbus_connection_hookup_with_g_main):
4782         Make sure to remove the GSource when the connection is finalized.
4783
4784 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
4785
4786         * bus/dispatch.c: (bus_dispatch_message_handler):
4787         * dbus/dbus-errors.h:
4788         Return an error if someone tries to send a message to a service
4789         that doesn't exist.
4790
4791 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
4792
4793         * bus/activation.c: (load_directory), (bus_activation_init),
4794         (bus_activation_activate_service):
4795         * bus/activation.h:
4796         * bus/driver.c:
4797         (bus_driver_handle_activate_service), (bus_driver_handle_message):
4798         More work on the activation handling.
4799
4800         * dbus/dbus-errors.h:
4801         Add some error messages
4802
4803         * dbus/dbus-message.c: (dbus_message_new_error_reply):
4804         * dbus/dbus-message.h:
4805         New function that creates an error message.
4806
4807         * dbus/dbus-protocol.h:
4808         Add ACTIVATE_SERVER message.
4809
4810         * dbus/dbus-server-unix.c: (unix_handle_watch),
4811         (_dbus_server_new_for_domain_socket):
4812         Call _dbus_fd_set_close_on_exec.
4813
4814         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
4815         (_dbus_spawn_async), (_dbus_disable_sigpipe),
4816         (_dbus_fd_set_close_on_exec):
4817         * dbus/dbus-sysdeps.h:
4818         Add _dbus_fd_set_close_on exec function. Also add function that checks
4819         that all open fds are set to close-on-exec and warns otherwise.
4820
4821         * dbus/dbus-transport-unix.c:
4822         (_dbus_transport_new_for_domain_socket):
4823         Call _dbus_fd_set_close_on_exec.
4824
4825 2003-02-16  Havoc Pennington  <hp@pobox.com>
4826
4827         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
4828         allow people to avoid setting SIGPIPE to SIG_IGN
4829         (_dbus_connection_new_for_transport): disable SIGPIPE unless
4830         we've been asked not to
4831
4832 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
4833
4834         * dbus/dbus-list.c: (_dbus_list_append_link),
4835         (_dbus_list_prepend_link):
4836         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
4837         (dbus_realloc):
4838         Warning fixes.
4839
4840 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
4841
4842         * bus/Makefile.am:
4843         * bus/activation.c: (bus_activation_entry_free),
4844         (add_desktop_file_entry), (load_directory), (bus_activation_init):
4845         * bus/activation.h:
4846         * bus/main.c: (main):
4847         Add simple activation support, doesn't work yet though.
4848
4849 2003-02-15   Zack Rusin  <zack@kde.org>
4850
4851         * qt/dbus-qthread.cpp:  small casting fix
4852
4853 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
4854
4855         * dbus/dbus-errors.c: (dbus_set_error):
4856         * dbus/dbus-errors.h:
4857         Add a few errors and make dbus_set_error void.
4858
4859         * dbus/dbus-sysdeps.c:
4860         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
4861         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
4862         * dbus/dbus-sysdeps.h:
4863         Add _dbus_spawn_async.
4864
4865         * test/spawn-test.c: (main):
4866         Test for _dbus_spawn_async.
4867
4868 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
4869
4870         * dbus/dbus-internals.h:
4871         Fix build without tests.
4872
4873         * dbus/dbus-list.c: (alloc_link):
4874         Fix a segfault when a malloc fails.
4875
4876         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
4877         (dbus_malloc0), (dbus_realloc):
4878         Add support for malloc debugging.
4879
4880 2003-02-15  Alexander Larsson  <alexl@redhat.com>
4881
4882         * dbus/dbus-threads.c:
4883         * dbus/dbus-threads.h:
4884         Add condvars. Remove static mutext from API.
4885         Implement static mutexes by initializing them from threads_init.
4886
4887         * glib/dbus-gthread.c:
4888         * qt/dbus-qthread.cpp:
4889         Update with the thread api changes.
4890
4891
4892         * dbus/dbus-list.c:
4893         * dbus/dbus-list.h:
4894         Turn StaticMutex into normal mutex + init function.
4895         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
4896         _dbus_list_append_link, _dbus_list_prepend_link
4897
4898
4899         * dbus/dbus-sysdeps.c:
4900         * dbus/dbus-sysdeps.h:
4901         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
4902         _dbus_atomic_dec. Only slow fallback implementation at the moment.
4903
4904         * dbus/dbus-protocol.h:
4905         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
4906
4907         * dbus/dbus-message.c:
4908         Make ref/unref atomic.
4909         Fix some docs.
4910
4911         * dbus/dbus-connection-internal.h:
4912         * dbus/dbus-connection.c:
4913         * dbus/dbus-connection.h:
4914         Make threadsafe.
4915         Change _peek to _borrow,_return & _steal_borrowed.
4916         Change disconnect callback to event.
4917         Make dbus_connection_dispatch_messages reentrant.
4918
4919         * dbus/dbus-transport.c:
4920         Don't ref the connection on calls to the transport
4921         implementation.
4922
4923         * dbus/dbus-message-handler.c:
4924         Make threadsafe.
4925
4926         * glib/dbus-gmain.c:
4927         Don't use peek_message anymore
4928
4929         * test/Makefile.am:
4930         * test/debug-thread.c:
4931         * test/debug-thread.h:
4932         Simple thread implementation that asserts() on deadlocks in
4933         single-threaded code.
4934
4935         * test/bus-test.c:
4936         (main) Call debug_threads_init.
4937
4938         * test/watch.c:
4939         Use disconnect message instead of disconnect callback.
4940
4941         * bus/connection.c:
4942         * bus/connection.h:
4943         Don't call dbus_connection_set_disconnect_function. Instead export
4944         bus_connection_disconnect.
4945
4946         * bus/dispatch.c:
4947         Call bus_connection_disconnect when we get a disconnected message.
4948
4949 2003-02-15  Havoc Pennington  <hp@pobox.com>
4950
4951         * dbus/dbus-message.c (dbus_message_new): fool around with the
4952         docs
4953
4954 2003-02-14  Havoc Pennington  <hp@pobox.com>
4955
4956         * dbus/dbus-mempool.c: fail if the debug functions so indicate
4957
4958         * dbus/dbus-memory.c: fail if the debug functions indicate we
4959         should
4960
4961         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
4962         (_dbus_decrement_fail_alloc_counter): debug functions to
4963         simulate memory allocation failures
4964
4965 2003-02-14  Havoc Pennington  <hp@pobox.com>
4966
4967         * dbus/dbus-errors.h (struct DBusError): add a word of padding
4968         to DBusError
4969
4970 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
4971
4972         * bus/driver.c: (bus_driver_handle_hello):
4973         * bus/driver.h:
4974         * bus/services.c: (bus_service_lookup):
4975         Reorder message sending so we get a more sane order.
4976
4977         * test/bus-test.c: (message_handler):
4978         Fix tyop.
4979
4980 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
4981
4982         * bus/driver.c: (bus_driver_send_service_deleted),
4983         (bus_driver_send_service_created), (bus_driver_send_service_lost),
4984         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
4985         (bus_driver_send_welcome_message),
4986         (bus_driver_handle_list_services),
4987         (bus_driver_handle_acquire_service),
4988         (bus_driver_handle_service_exists):
4989         * dbus/dbus-bus.c: (dbus_bus_register_client),
4990         (dbus_bus_acquire_service), (dbus_bus_service_exists):
4991         * dbus/dbus-errors.c: (dbus_result_to_string):
4992         * dbus/dbus-errors.h:
4993         * dbus/dbus-message.c: (dbus_message_append_args),
4994         (dbus_message_append_args_valist), (dbus_message_get_args),
4995         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
4996         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
4997         (dbus_message_iter_get_byte_array),
4998         (dbus_message_iter_get_string_array), (message_iter_test),
4999         (check_message_handling), (_dbus_message_test):
5000         * dbus/dbus-message.h:
5001         * test/bus-test.c: (main):
5002         Change fields to arguments in messages, so that they won't be
5003         confused with header fields.
5004
5005         * glib/test-dbus-glib.c: (main):
5006         Remove append_fields from hello message.
5007
5008 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5009
5010         * dbus/dbus-errors.c:
5011         * dbus/dbus-message.c:
5012         * dbus/dbus-string.c:
5013         Documentation fixes.
5014
5015 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5016
5017         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
5018         (remove_timeout):
5019         Implement support for timeouts in dbus-glib.
5020
5021 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5022
5023         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5024         * dbus/dbus-message.c: (process_test_subdir):
5025         * test/break-loader.c: (find_breaks_based_on):
5026         Plug some memory leaks.
5027
5028 2003-02-13  Richard Hult  <rhult@codefactory.se>
5029
5030         * bus/main.c: Fix build.
5031
5032         * dbus/dbus-errors.h:
5033         * dbus/dbus-errors.c: Fix copyright for Anders.
5034
5035 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5036
5037         * bus/Makefile.am:
5038         Add utils.[ch]
5039
5040         * bus/connection.c: (bus_connection_foreach):
5041         Fix a warning.
5042
5043         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
5044         (unescape_string), (new_section), (parse_section_start),
5045         (parse_key_value), (report_error), (bus_desktop_file_load),
5046         (bus_desktop_file_get_string):
5047         * bus/desktop-file.h:
5048         Use DBusError for error reporting.
5049
5050         * bus/dispatch.c: (send_one_message),
5051         (bus_dispatch_message_handler):
5052         * bus/driver.c: (bus_driver_send_service_deleted),
5053         (bus_driver_send_service_created), (bus_driver_send_service_lost),
5054         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5055         (bus_driver_send_welcome_message),
5056         (bus_driver_handle_list_services),
5057         (bus_driver_handle_acquire_service),
5058         (bus_driver_handle_service_exists):
5059         * bus/loop.c: (bus_loop_run):
5060         * bus/main.c:
5061         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
5062
5063         * bus/utils.c: (bus_wait_for_memory):
5064         * bus/utils.h:
5065         New files with general utility functions.
5066
5067         * dbus/dbus-internals.h:
5068         Remove _DBUS_HANDLE_OOM.
5069
5070 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5071
5072         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
5073         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
5074         * dbus/dbus-errors.h:
5075         Add DBusError structure.
5076
5077 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5078
5079         * test/data/valid-messages/standard-acquire-service.message:
5080         * test/data/valid-messages/standard-hello.message:
5081         * test/data/valid-messages/standard-list-services.message:
5082         * test/data/valid-messages/standard-service-exists.message:
5083         Add some standard messages.
5084
5085 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5086
5087         * bus/driver.c: (bus_driver_send_welcome_message),
5088         (bus_driver_handle_list_services),
5089         (bus_driver_handle_acquire_service),
5090         (bus_driver_handle_service_exists), (bus_driver_handle_message):
5091         Update for API changes in libdbus.
5092
5093         * dbus/dbus-message.c: (dbus_message_new_reply):
5094         * dbus/dbus-message.h:
5095         Remove the name argument. The spec states that replies shouldn't
5096         have a name.
5097
5098 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
5099
5100         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
5101         (report_error), (bus_desktop_file_load), (lookup_section),
5102         (lookup_line), (bus_desktop_file_get_raw),
5103         (bus_desktop_file_get_string):
5104         * bus/desktop-file.h:
5105         Some fixes, and new functions for getting a key value from a section.
5106
5107 2003-02-13  Havoc Pennington  <hp@pobox.com>
5108
5109         * test/data/auth/fail-after-n-attempts.auth-script: new test
5110
5111         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
5112         reject the client.
5113
5114 2003-02-13  Havoc Pennington  <hp@pobox.com>
5115
5116         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
5117         dbus_credentials_match were backward
5118
5119         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
5120         NO_CREDENTIALS and ROOT_CREDENTIALS
5121
5122         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
5123         into here. Never process more commands after we've reached an
5124         end state; store further data as unused bytes.
5125
5126         * test/data/auth/*: add more auth tests
5127
5128         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
5129         command to match exact string and EXPECT_UNUSED to match unused
5130         bytes
5131
5132         * test/Makefile.am (dist-hook): fix to dist all the test stuff
5133
5134 2003-02-12  Havoc Pennington  <hp@pobox.com>
5135
5136         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
5137         \r off of popped lines
5138
5139         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
5140         scripts
5141
5142         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
5143         SEND, append \r\n
5144
5145 2003-02-12  Havoc Pennington  <hp@pobox.com>
5146
5147         * dbus/Makefile.am: remove break-loader from the build, since it
5148         moved.
5149
5150         * configure.in: add --enable-gcov to turn on coverage profiling
5151         flags and disable optimization
5152
5153 2003-02-10  Havoc Pennington  <hp@pobox.com>
5154
5155         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
5156         initial cut at test framework for DBusAuth from laptop.
5157         Doesn't quite work yet but it compiles and I need to get
5158         it off the 266mhz laptop. ;-)
5159
5160         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
5161         fix a memleak in error case
5162
5163 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
5164
5165         * bus/Makefile.am:
5166         * bus/desktop-file.c:
5167         * bus/desktop-file.h:
5168         Add a desktop file parser.
5169
5170 2003-02-11  Zack Rusin  <zack@kde.org>
5171
5172         * qt/message.[h|cpp]: sample implementation
5173         of the KDE wrapper for DBusMessage
5174
5175 2003-02-09  Zack Rusin  <zack@kde.org>
5176
5177         * test/bus-test.c: make_it_compile
5178         * doc/dbus-specification.sgml: minimal semantic fix
5179
5180 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
5181
5182         Release 0.3
5183
5184         * NEWS: Update
5185
5186 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
5187
5188         * dbus/Makefile.am:
5189         * dbus/dbus-break-loader.c:
5190         * test/Makefile.am:
5191         * test/break-loader.c:
5192         Move dbus-break-loader to test/ and rename it to break-loader.
5193
5194 2003-02-02  Havoc Pennington  <hp@pobox.com>
5195
5196         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
5197         for code to manage cookies in your home directory
5198
5199         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
5200
5201         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
5202         to authenticate, then disconnect the client.
5203
5204 2003-02-03  Alexander Larsson  <alexl@redhat.com>
5205
5206         * dbus/dbus-message.c (dbus_message_append_fields):
5207         Correct docs.
5208
5209 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
5210
5211         * doc/dbus-specification.sgml:
5212         Update address format section.
5213
5214 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
5215
5216         * test/Makefile.am:
5217         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
5218         (message_handler), (new_connection_callback), (loop_quit),
5219         (loop_run), (main):
5220         Add bus test.
5221
5222 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
5223
5224         * bus/driver.c: (bus_driver_handle_service_exists):
5225         Simplify the code a bit.
5226
5227         * dbus/dbus-bus.c: (dbus_bus_service_exists):
5228         Fix a silly.
5229
5230 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
5231
5232         * bus/Makefile.am:
5233         Add libdbus-daemon.la and link to it.
5234
5235 2003-02-01  James Willcox  <jwillcox@gnome.org>
5236
5237         * bus/driver.c: (bus_driver_handle_own_service):
5238         Actually include the service reply code in the message.
5239
5240 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
5241
5242         * bus/driver.c: (bus_driver_handle_service_exists):
5243         Don't unref the incoming message.
5244
5245 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
5246
5247         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
5248
5249 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
5250
5251         * dbus/dbus-server.c: (dbus_server_listen):
5252         * dbus/dbus-transport.c: (_dbus_transport_open):
5253         ifdef out the calls to the debug transport and server.
5254
5255 2003-02-02  Alexander Larsson  <alexl@redhat.com>
5256
5257         * dbus/dbus-watch.c (dbus_watch_get_flags):
5258         Add note in the docs that ERROR or HANGUP won't be returned
5259         and are assumed always on.
5260
5261         * glib/dbus-gmain.c (add_watch):
5262         Always add IO_ERR | IO_HUP
5263
5264         * dbus/dbus-message.h:
5265         Add semicolon after dbus_message_iter_get_string_array().
5266         Makes qt code build again
5267
5268 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
5269
5270         * bus/driver.c: (create_unique_client_name),
5271         (bus_driver_handle_hello):
5272         Don't take a name, just use a numeric id to identify
5273         each client.
5274
5275         * dbus/Makefile.am:
5276         * dbus/dbus-bus.c: (dbus_bus_register_client),
5277         (dbus_bus_acquire_service), (dbus_bus_service_exists):
5278         * dbus/dbus-bus.h:
5279         Add new convenience functions for communicating with the bus.
5280
5281         * dbus/dbus-message.h:
5282
5283         * dbus/dbus-protocol.h:
5284         Fix a typo.
5285
5286 2003-02-01  Alexander Larsson  <alexl@redhat.com>
5287
5288         * dbus/dbus-message.c (dbus_message_append_fields):
5289         Add some more doc comments.
5290
5291 2003-02-01  Havoc Pennington  <hp@pobox.com>
5292
5293         * dbus/dbus-break-loader.c (randomly_modify_length): change
5294         a 4-byte value in the message as if it were a length
5295
5296         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
5297         execute bit on saved files
5298
5299 2003-02-01  Havoc Pennington  <hp@pobox.com>
5300
5301         * dbus/dbus-break-loader.c (main): new program to find messages
5302         that break the loader.
5303
5304         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
5305         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
5306
5307         * dbus/dbus-string.c (_dbus_string_set_byte): new
5308
5309 2003-01-31  Havoc Pennington  <hp@pobox.com>
5310
5311         * dbus/dbus-message.c: refactor the test code to be more general,
5312         in preparation for writing a "randomly permute test cases to
5313         try to break the loader" program.
5314
5315 2003-01-31  Havoc Pennington  <hp@pobox.com>
5316
5317         * doc/dbus-specification.sgml: work on the specification
5318
5319         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
5320         the protocol version of the message.
5321
5322         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
5323         no longer specifies that.
5324         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
5325         1/2/3/4)
5326
5327         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
5328         "break" for DBUS_TYPE_NIL, remove @todo
5329
5330 2003-01-31  Havoc Pennington  <hp@pobox.com>
5331
5332         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
5333         just set_is_error/get_is_error as this is a commonly-used
5334         function, and write docs.
5335
5336 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
5337
5338         * dbus/dbus-address.c: (dbus_address_entry_free):
5339         Free key and value lists.
5340
5341         * dbus/dbus-internals.c: (_dbus_type_to_string):
5342         Add the types we didn't have.
5343
5344         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5345         (_dbus_marshal_validate_arg):
5346         Add NIL types.
5347
5348         * dbus/dbus-message.c: (dbus_message_set_sender):
5349         Remove todo about being able to set sender to NULL.
5350
5351         (dbus_message_set_is_error_reply),
5352         (dbus_message_get_is_error_reply):
5353         * dbus/dbus-message.h:
5354         New functions.
5355
5356         * dbus/dbus-protocol.h:
5357         Add error reply flag.
5358
5359         * test/data/valid-messages/opposite-endian.message:
5360         Add NIL type to test.
5361
5362 2003-01-31  Havoc Pennington  <hp@pobox.com>
5363
5364         * doc/dbus-specification.sgml: fully specify the header.  Add
5365         flags and major protocol version, and change header/body len to
5366         unsigned.
5367
5368         * dbus/dbus-message-builder.c (append_saved_length): append length
5369         as uint32
5370
5371         * dbus/dbus-message.c (dbus_message_create_header): change header
5372         length and body length to unsigned. Add the new fields from the
5373         spec
5374         (_dbus_message_loader_return_buffer): unsigned header/body len
5375
5376 2003-01-30  Havoc Pennington  <hp@pobox.com>
5377
5378         * dbus/dbus-auth.c: rework to use only REJECTED, no
5379         MECHANISMS
5380
5381         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
5382         use REJECTED, suggested by Mark McLoughlin
5383
5384 2003-01-30  Havoc Pennington  <hp@pobox.com>
5385
5386         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
5387         a better way to report errors here. e.g.  "unix address lacks
5388         path" or something. also "no such file" when the path doesn't
5389         exist, etc.
5390
5391         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
5392         leaking list nodes
5393         (dbus_parse_address): add @todo about documenting address format,
5394         and allowing , and ; to be escaped
5395
5396 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
5397
5398         * dbus/Makefile.am:
5399         Add dbus-address.[ch]
5400
5401         * dbus/dbus-address.c: (dbus_address_entry_free),
5402         (dbus_address_entries_free), (create_entry),
5403         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
5404         (dbus_parse_address), (_dbus_address_test):
5405         * dbus/dbus-address.h:
5406         New files for dealing with address parsing.
5407
5408         * dbus/dbus-connection.c:
5409         Document timeout functions.
5410
5411         * dbus/dbus-message.c:
5412         Document dbus_message_new_from_message.
5413
5414         * dbus/dbus-server-debug.c:
5415         Document.
5416
5417         * dbus/dbus-server.c: (dbus_server_listen):
5418         Parse address and use correct server implementation.
5419
5420         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
5421         * dbus/dbus-string.h:
5422         New function with test.
5423
5424         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
5425         * dbus/dbus-test.h:
5426         Add address tests.
5427
5428         * dbus/dbus-transport-debug.c:
5429         Document.
5430
5431         * dbus/dbus-transport.c: (_dbus_transport_open):
5432         Parse address and use correct transport implementation.
5433
5434 2003-01-30  Havoc Pennington  <hp@pobox.com>
5435
5436         * dbus/dbus-message.c: use message->byte_order instead of
5437         DBUS_COMPILER_BYTE_ORDER throughout.
5438         (dbus_message_create_header): pad header to align the
5439         start of the body of the message to 8-byte boundary
5440
5441         * dbus/dbus-marshal.h: make all the demarshalers take const
5442         DBusString arguments.
5443
5444         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
5445         validate message args here, so we don't have to do slow validation
5446         later, and so we catch bad messages as they are incoming. Also add
5447         better checks on header_len and body_len. Also fill in
5448         message->byte_order
5449
5450         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
5451         implemented properly)
5452         (_dbus_string_validate_nul): new function to check all-nul
5453
5454         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
5455         get_arg_end_pos and remove all validation
5456         (_dbus_marshal_validate_arg): actually do validation here.
5457
5458 2003-01-29  Havoc Pennington  <hp@pobox.com>
5459
5460         * dbus/dbus-message.c (check_message_handling): fix assertion
5461         failure on set_client_serial
5462
5463 2003-01-28  Havoc Pennington  <hp@pobox.com>
5464
5465         * dbus/dbus-server-debug.c: Add doc section comments
5466
5467         * dbus/dbus-transport-debug.c: add doc section comments
5468
5469 2003-01-28  Havoc Pennington  <hp@redhat.com>
5470
5471         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
5472         the reverse order from how I had it
5473         (_dbus_string_base64_encode): reverse encoding order. I was
5474         basically byteswapping everything during encoding.
5475
5476 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
5477
5478         * dbus/dbus-connection-internal.h:
5479         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
5480         (_dbus_connection_remove_timeout):
5481         Add functions for adding and removing timeouts.
5482
5483         * dbus/dbus-message.c: (dbus_message_new_from_message):
5484         Add new function that takes a message and creates an exact
5485         copy of it, but with the refcount set to 1.
5486         (check_message_handling):
5487         Fix build error.
5488
5489         * dbus/dbus-server-protected.h:
5490         * dbus/dbus-server.c: (_dbus_server_init_base),
5491         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
5492         (dbus_server_set_timeout_functions):
5493         (_dbus_server_remove_timeout):
5494         New functions so that a server can add and remove timeouts.
5495
5496         (dbus_server_listen):
5497         Add commented out call to dbus_server_debug_new.
5498
5499         * dbus/dbus-timeout.c: (_dbus_timeout_new):
5500         Actually set the handler, doh.
5501
5502         * dbus/dbus-transport.c: (_dbus_transport_open):
5503         Add commented out call to dbus_transport_debug_client_new.
5504
5505         * dbus/Makefile.am:
5506         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
5507
5508 2003-01-28  Havoc Pennington  <hp@pobox.com>
5509
5510         * dbus/dbus-message.c (check_message_handling): function to check
5511         on the loaded message, iterates over it etc.
5512
5513 2003-01-28  Havoc Pennington  <hp@pobox.com>
5514
5515         * test/Makefile.am (dist-hook): fix make distdir
5516
5517         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
5518
5519 2003-01-27  Havoc Pennington  <hp@pobox.com>
5520
5521         * dbus/dbus-mempool.c (time_for_size): replace printf with
5522         _dbus_verbose
5523
5524         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
5525         empty lines; fix the SAVE_LENGTH stuff to be
5526         START_LENGTH/END_LENGTH so it actually works; couple other
5527         bugfixes
5528
5529         * test/Makefile.am (dist-hook): add dist-hook for .message files
5530
5531         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
5532         can be constant or locked.
5533         (_dbus_string_free): allow freeing a const string as
5534         documented/intended
5535
5536         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
5537
5538         * dbus/dbus-test-main.c (main): take an argument which is the
5539         directory containing test data
5540
5541         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
5542         argument to this and load all the messages in test/data/
5543         checking that they can be loaded or not loaded as appropriate.
5544
5545 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
5546
5547         * bus/dispatch.c: (bus_dispatch_message_handler):
5548         Dispatch messages sent to services.
5549
5550         * bus/driver.c: (bus_driver_send_service_deleted),
5551         (bus_driver_send_service_created), (bus_driver_send_service_lost),
5552         (bus_driver_send_service_acquired):
5553         Add helper functions for sending service related messages.
5554
5555         (bus_driver_send_welcome_message):
5556         Send HELLO_REPLY instead of WELCOME.
5557
5558         (bus_driver_handle_list_services):
5559         Send LIST_SERVICES_REPLY instead of SERVICES.
5560
5561         (bus_driver_handle_own_service),
5562         (bus_driver_handle_service_exists):
5563         New message handlers.
5564
5565         (bus_driver_handle_message):
5566         Invoke new message handlers.
5567
5568         (bus_driver_remove_connection):
5569         Don't remove any services here since that's done automatically
5570         by bus_service_remove_owner now.
5571
5572         * bus/driver.h:
5573         New function signatures.
5574
5575         * bus/services.c: (bus_service_add_owner):
5576         Send ServiceAcquired message if we're the only primary owner.
5577
5578         (bus_service_remove_owner):
5579         Send ServiceAcquired/ServiceLost messages.
5580
5581         (bus_service_set_prohibit_replacement),
5582         (bus_service_get_prohibit_replacement):
5583         Functions for setting prohibit replacement.
5584
5585         (bus_service_has_owner):
5586         New function that checks if a connection is in the owner queue of
5587         a certain service.
5588
5589         * bus/services.h:
5590         Add new function signatures.
5591
5592         * dbus/dbus-list.c: (_dbus_list_test):
5593         Add tests for _dbus_list_remove_last and traversing the list backwards.
5594
5595         * dbus/dbus-list.h:
5596         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
5597         go any further, so return NULL then.
5598
5599         * dbus/dbus-protocol.h:
5600         Add new messages, service flags and service replies.
5601
5602 2003-01-26  Havoc Pennington  <hp@pobox.com>
5603
5604         * dbus/dbus-message-builder.c: implement, completely untested.
5605
5606         * test/data/*: add data to be used in testing.
5607         ".message" files are our simple loadable text format.
5608         ".message-raw" will be binary dumps of messages.
5609
5610         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
5611
5612 2003-01-26  Havoc Pennington  <hp@pobox.com>
5613
5614         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
5615
5616         * dbus/dbus-errors.c (dbus_result_to_string): add
5617         file errors
5618
5619         * dbus/dbus-message-builder.c: new file, will contain code to load
5620         up messages from files. Not implemented yet.
5621
5622 2003-01-26  Havoc Pennington  <hp@pobox.com>
5623
5624         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
5625         the sender by setting to NULL
5626
5627 2003-01-26  Havoc Pennington  <hp@pobox.com>
5628
5629         The unit tests pass, but otherwise untested.  If it breaks, the
5630         tests should have been better. ;-)
5631
5632         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
5633         the connection.
5634
5635         * dbus/dbus-message.c: redo everything so we maintain
5636         message->header as the only copy of the various fields.
5637         This avoids the possibility of out-of-memory in some cases,
5638         for example dbus_message_lock() can't run out of memory anymore,
5639         and avoids extra copying. Figured I may as well go ahead and do
5640         this since it was busted for dbus_message_lock to not return
5641         failure on OOM, and dbus_message_write_header was totally
5642         unchecked for OOM. Also fixed some random other bugs.
5643
5644         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
5645         that strings are nul-terminated. Also, end_pos can be equal
5646         to string length just not greater than, I think.
5647         (_dbus_marshal_set_int32): new function
5648         (_dbus_marshal_set_uint32): new function
5649         (_dbus_marshal_set_string): new function
5650
5651         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
5652         a warning, init timeout_list to NULL
5653         (dbus_connection_send_message): don't use uninitialized variable
5654         "serial"
5655
5656         * dbus/dbus-string.c (_dbus_string_replace_len): new function
5657
5658 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
5659
5660         * bus/driver.c: (bus_driver_handle_hello),
5661         (bus_driver_send_welcome_message):
5662         Plug leaks
5663
5664 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
5665
5666         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
5667         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
5668         (dbus_connection_unref):
5669         * dbus/dbus-marshal.c: (_dbus_marshal_test):
5670         * dbus/dbus-message.c: (dbus_message_unref),
5671         Plug memory leaks.
5672
5673         (dbus_message_get_fields):
5674         Remove debugging printout.
5675
5676         (_dbus_message_loader_return_buffer):
5677         Don't store the header string.
5678
5679         (_dbus_message_test):
5680         Plug leaks.
5681
5682 2003-01-26  Richard Hult  <rhult@codefactory.se>
5683
5684         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
5685         the file descriptor list, since it can change under us.
5686
5687 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
5688
5689         * glib/dbus-gmain.c: (dbus_connection_prepare),
5690         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
5691         (remove_watch), (dbus_connection_hookup_with_g_main):
5692         Rewrite the glib handling to use its own GSource instead of a
5693         GIOChannel so we can catch messages put in the queue while waiting
5694         for a reply.
5695
5696 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
5697
5698         * bus/Makefile.am:
5699         * bus/connection.c: (connection_disconnect_handler),
5700         (connection_watch_callback), (bus_connection_setup):
5701         * bus/dispatch.c: (send_one_message),
5702         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
5703         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
5704         * bus/dispatch.h:
5705         * bus/driver.c: (bus_driver_send_service_deleted),
5706         (bus_driver_send_service_created), (bus_driver_handle_hello),
5707         (bus_driver_send_welcome_message),
5708         (bus_driver_handle_list_services), (bus_driver_remove_connection),
5709         (bus_driver_handle_message):
5710         * bus/driver.h:
5711         Refactor code, put the message dispatching in its own file. Use
5712         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
5713         is disconnected.
5714
5715 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
5716
5717         * dbus/dbus-internals.h:
5718         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
5719
5720         * dbus/dbus-message.c: (dbus_message_get_sender):
5721         * dbus/dbus-message.h:
5722         Implement dbus_message_get_sender.
5723
5724         * dbus/dbus-protocol.h:
5725         Add message and service defines.
5726
5727 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
5728
5729         * dbus/dbus-connection.c: (dbus_connection_send_message):
5730         * dbus/dbus-message-internal.h:
5731         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
5732         (dbus_message_write_header):
5733         Remove _dbus_messag_unlock and don't set the client serial on a
5734         message if one already exists.
5735
5736 2003-01-24  Havoc Pennington  <hp@pobox.com>
5737
5738         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
5739         list_pool
5740
5741         * bus/driver.c (bus_driver_handle_list_services): fix a leak
5742         on OOM
5743
5744 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
5745
5746         * dbus/dbus-list.c: (alloc_link), (free_link):
5747         Use a memory pool for the links.
5748
5749 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
5750
5751         * bus/connection.c: (bus_connection_foreach):
5752         * bus/connection.h:
5753         Add new bus_connection_foreach function.
5754
5755         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
5756         Add function that broadcasts a message to all clients.
5757
5758         (bus_driver_send_service_created), (bus_driver_handle_hello),
5759         (bus_driver_send_welcome_message),
5760         (bus_driver_handle_list_services), (bus_driver_message_handler):
5761         Implement functions that take care of listing services, and notifying
5762         clients when new services are created.
5763
5764         * bus/services.c: (bus_services_list):
5765         * bus/services.h:
5766         Add new function that returns an array of strings with the currently
5767         registered services.
5768
5769         * glib/dbus-glib.h:
5770         * glib/dbus-gmain.c:
5771         Update copyright year.
5772
5773 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
5774
5775         * dbus/dbus-connection.c: (dbus_connection_send_message):
5776         Unlock the message in case it was sent earlier.
5777
5778         (dbus_connection_send_message_with_reply_and_block):
5779         Remove the reply message from the list.
5780
5781         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5782         Set array_len and new_pos correctly.
5783
5784         (_dbus_marshal_test):
5785         Remove debug output.
5786
5787         * dbus/dbus-message-internal.h:
5788         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
5789         New function that returns the reply serial.
5790
5791         (_dbus_message_unlock):
5792         New function that unlocks a message and resets its header.
5793
5794         (dbus_message_append_string_array),
5795         (dbus_message_get_fields_valist),
5796         (dbus_message_iter_get_field_type),
5797         (dbus_message_iter_get_string_array),
5798         (dbus_message_get_fields),
5799         (dbus_message_append_fields_valist):
5800         Handle string arrays.
5801
5802         (dbus_message_set_sender):
5803         Make this function public since the bus daemon needs it.
5804
5805         (decode_header_data):
5806         Set the reply serial to -1 initially.
5807
5808         * dbus/dbus-message.h:
5809         Add dbus_message_set_sender.
5810
5811 2003-01-24  Havoc Pennington  <hp@pobox.com>
5812
5813         * doc/dbus-specification.sgml: add some stuff
5814
5815 2003-01-22  Havoc Pennington  <hp@pobox.com>
5816
5817         * doc/dbus-specification.sgml: Start to document the protocol.
5818
5819 2003-01-22  Havoc Pennington  <hp@pobox.com>
5820
5821         * dbus/dbus-connection.c
5822         (dbus_connection_send_message_with_reply_and_block): add some @todo
5823
5824         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
5825
5826 2003-01-21  Havoc Pennington  <hp@pobox.com>
5827
5828         (patch untested because can't compile)
5829
5830         * bus/driver.c (create_unique_client_name): make this function
5831         never recycle client names. Also, caller should initialize
5832         the DBusString.
5833
5834         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
5835
5836 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
5837
5838         * dbus/dbus-marshal.c: (_dbus_marshal_double),
5839         (_dbus_marshal_int32), (_dbus_marshal_uint32),
5840         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
5841         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
5842         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5843         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5844         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
5845         * dbus/dbus-marshal.h:
5846         * dbus/dbus-protocol.h:
5847         Add support for marshalling and demarshalling integer, double
5848         and string arrays.
5849
5850 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
5851
5852         * bus/Makefile.am:
5853         Add driver.[ch]
5854
5855         * bus/connection.c: (connection_disconnect_handler):
5856         Remove the connection from the bus driver's list.
5857
5858         (connection_watch_callback): Dispatch messages.
5859
5860         (free_connection_data): Free connection name.
5861
5862         (bus_connection_setup): Add connection to the bus driver's list.
5863         (bus_connection_remove_owned_service):
5864         (bus_connection_set_name), (bus_connection_get_name):
5865         Add functions for setting and getting the connection's name.
5866
5867         * bus/connection.h:
5868         Add function headers.
5869
5870         * bus/driver.c: (create_unique_client_name),
5871         (bus_driver_handle_hello_message),
5872         (bus_driver_send_welcome_message), (bus_driver_message_handler),
5873         (bus_driver_add_connection), (bus_driver_remove_connection):
5874         * bus/driver.h:
5875         * bus/main.c:
5876         * bus/services.c: (bus_service_free):
5877         * bus/services.h:
5878         New file that handles communication and registreation with the bus
5879         itself.
5880
5881 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
5882
5883         * dbus/dbus-connection.c: (dbus_connection_send_message):
5884         Add a new client_serial parameter.
5885
5886         (dbus_connection_send_message_with_reply):
5887         Remove a @todo since we've implemented the blocking function.
5888
5889         (dbus_connection_send_message_with_reply_and_block):
5890         New function that sends a message and waits for a reply and
5891         then returns the reply.
5892
5893         * dbus/dbus-connection.h:
5894         Add new functions.
5895
5896         * dbus/dbus-errors.c: (dbus_result_to_string):
5897         * dbus/dbus-errors.h:
5898         Add new DBUS_RESULT.
5899
5900         * dbus/dbus-message-internal.h:
5901         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
5902         (_dbus_message_set_sender), (dbus_message_write_header),
5903         (dbus_message_new_reply), (decode_header_data),
5904         (_dbus_message_loader_return_buffer), (_dbus_message_test):
5905         * dbus/dbus-message.h:
5906         Add new functions that set the reply serial and sender.
5907         Also marshal and demarshal them correctly and add test.
5908
5909         * dbus/dbus-protocol.h:
5910         Add new DBUS_MESSAGE_TYPE_SENDER.
5911
5912         * glib/dbus-glib.h:
5913         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
5914         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
5915         (dbus_connection_hookup_with_g_main):
5916         * glib/test-dbus-glib.c: (main):
5917         Rewrite to use GIOChannel and remove the GSource crack.
5918
5919         * test/echo-client.c: (main):
5920         * test/watch.c: (check_messages):
5921         Update for changed APIs
5922
5923 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
5924
5925         * dbus/Makefile.am: Add dbus-timeout.[cħ]
5926
5927         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
5928         Create a DBusTimeoutList.
5929         (dbus_connection_set_timeout_functions): Add new function to
5930         set timeout callbacks
5931
5932         * dbus/dbus-connection.h: Add public DBusTimeout API.
5933
5934         * dbus/dbus-message.c: (dbus_message_get_service):
5935         * dbus/dbus-message.h:  New function.
5936
5937         * dbus/dbus-server.c: Fix small doc typo.
5938
5939         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
5940
5941 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
5942
5943         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
5944         of the string, just as long as specified.
5945
5946 2003-01-19  Havoc Pennington  <hp@pobox.com>
5947
5948         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
5949         new function
5950
5951         * dbus/dbus-server.c (dbus_server_set_max_connections)
5952         (dbus_server_get_max_connections, dbus_server_get_n_connections):
5953         keep track of current number of connections, and add API for
5954         setting a max (but haven't implemented enforcing the max yet)
5955
5956 2003-01-18  Havoc Pennington  <hp@pobox.com>
5957
5958         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
5959         reading/writing if read_watch != NULL or write_watch != NULL.
5960
5961         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
5962         the message loader code to actually load message->header and
5963         message->body into the newly-created message.
5964
5965         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
5966         in OOM case
5967
5968         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
5969         (dbus_connection_get_max_message_size)
5970         (dbus_connection_set_max_live_messages_size)
5971         (dbus_connection_get_max_live_messages_size): implement some
5972         resource limitation functions
5973
5974         * dbus/dbus-resources.c: new file implementing some of the
5975         resource limits stuff
5976
5977         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
5978         missing docs, add @todo to handle OOM etc.
5979
5980         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
5981         docs
5982
5983 2003-01-18  Havoc Pennington  <hp@pobox.com>
5984
5985         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
5986         connection if it hasn't been already.
5987
5988         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
5989         replace with DisconnectFunction.
5990
5991 2003-01-18  Havoc Pennington  <hp@pobox.com>
5992
5993         Building --disable-verbose-mode --disable-asserts --disable-tests
5994         cuts the library from 112K to 45K or so
5995
5996         * configure.in: check for varargs macro support,
5997         add --enable-verbose-mode, --enable-asserts.
5998
5999         * dbus/dbus-internals.h (_dbus_assert): support
6000         DBUS_DISABLE_ASSERT
6001         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
6002
6003 2003-01-18  Havoc Pennington  <hp@pobox.com>
6004
6005         * dbus/dbus-test.c: include config.h so that tests actually run
6006
6007         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
6008         so the failure mode when that assumption fails will be plenty
6009         obvious.
6010
6011 2003-01-18  Havoc Pennington  <hp@pobox.com>
6012
6013         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
6014
6015         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
6016         the distribution
6017
6018         * test/Makefile.am: don't use special variable "TESTS" for echo-*
6019         since we don't want to use those in make check
6020
6021 2003-01-15  Havoc Pennington  <hp@redhat.com>
6022
6023         Release 0.2
6024
6025         * NEWS: update
6026
6027 2003-01-15  Havoc Pennington  <hp@redhat.com>
6028
6029         * test/Makefile.am: fix so that test source code ends up in the
6030         distribution on make distcheck
6031
6032 2003-01-15  Havoc Pennington  <hp@redhat.com>
6033
6034         Release 0.1.
6035
6036         * NEWS: update
6037
6038 2003-01-15  Havoc Pennington  <hp@redhat.com>
6039
6040         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
6041         fix build when --disable-tests
6042
6043         * Makefile.am (EXTRA_DIST): put HACKING in here
6044
6045         * HACKING: document procedure for making a tarball release.
6046
6047 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
6048
6049         * bus/connection.c: (connection_error_handler),
6050         (bus_connection_setup):
6051         * bus/main.c: (main):
6052         Make sure that the DBusConnectionData struct is NULLed
6053         out to prevent a segfault.
6054
6055         * dbus/dbus-errors.c: (dbus_result_to_string):
6056         * dbus/dbus-errors.h:
6057         * dbus/dbus-message.c: (dbus_message_get_fields),
6058         (dbus_message_get_fields_valist), (_dbus_message_test):
6059         * dbus/dbus-message.h:
6060         Make dbus_message_get_fields return a result code so we can
6061         track invalid fields as well as oom.
6062
6063 2003-01-11  Havoc Pennington  <hp@pobox.com>
6064
6065         * configure.in: change --enable-test/--enable-ansi action-if-given
6066         to enable_foo=$enableval instead of enable_foo=yes
6067
6068 2003-01-08  Havoc Pennington  <hp@pobox.com>
6069
6070         * dbus/dbus-string.c (_dbus_string_align_length): new function
6071
6072         * dbus/dbus-test-main.c: move main() for test app here
6073         * dbus/dbus-test.c
6074         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
6075         symbol to run tests, because dbus-test isn't in the main
6076         library
6077
6078         Code review nitpicks.
6079
6080         * dbus/dbus-message.c (dbus_message_write_header): add newlines
6081         for people with narrow emacs ;-). Assert client_serial was filled
6082         in. Assert message->name != NULL.
6083         (dbus_message_append_fields): have "first_field_type" arg separate
6084         from va list, needed for C++ binding that also uses varargs IIRC
6085         and helps with type safety
6086         (dbus_message_new): add @todo about using DBusString to store
6087         service/name internally
6088         (dbus_message_new): don't leak ->service and ->name on OOM later
6089         in the function
6090         (dbus_message_unref): free the service name
6091         (dbus_message_get_fields): same change to varargs
6092         i.e. first_field_type
6093         (_dbus_message_loader_return_buffer): assert that the message data
6094         is aligned (if not it's a bug in our code). Put in verbose griping
6095         about why we set corrupted = TRUE.
6096         (decode_header_data): add FIXME that char* is evil.  Was going to
6097         add FIXME about evil locale-specific string.h strncmp, but just
6098         switched to wacky string-as-uint32 optimization. Move check for
6099         "no room for field name" above get_const_data_len() to avoid
6100         assertion failure in get_const_data_len if we have trailing 2
6101         bytes or the like. Check for service and name fields being
6102         provided twice. Don't leak service/name on error. Require field
6103         names to be aligned to 4 bytes.
6104
6105         * dbus/dbus-marshal.c: move byte swap stuff to header
6106         (_dbus_pack_int32): uscore-prefix
6107         (_dbus_unpack_int32): uscore-prefix
6108         (_dbus_unpack_uint32): export
6109         (_dbus_demarshal_string): add @todo complaining about use of
6110         memcpy()
6111         (_dbus_marshal_get_field_end_pos): add @todo about bad error
6112         handling allowing corrupt data to go unchecked
6113
6114 2003-01-08  Havoc Pennington  <hp@redhat.com>
6115
6116         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
6117         to the select() as needed for authentication. (should be using
6118         _dbus_poll() not select, but for another day)
6119
6120         * dbus/dbus.h: include dbus/dbus-protocol.h
6121
6122 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
6123
6124         * dbus/Makefile.am (dbusinclude_HEADERS): Install
6125         dbus-connection.h
6126
6127 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
6128
6129         * dbus/dbus-internals.c: (_dbus_type_to_string):
6130         New function that returns a string describing a type.
6131
6132         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
6133         * dbus/dbus-marshal.h:
6134         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
6135         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
6136         (dbus_message_iter_get_byte_array):
6137         * dbus/dbus-message.h:
6138         Add new convenience functions for appending and getting message fields.
6139         Also add demarshalling routines for byte arrays.
6140
6141 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
6142
6143         * dbus/dbus-connection-internal.h:
6144         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6145         (_dbus_connection_get_next_client_serial),
6146         (dbus_connection_send_message):
6147         * dbus/dbus-internals.h:
6148         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
6149         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
6150         (_dbus_marshal_uint32), (_dbus_demarshal_double),
6151         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
6152         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
6153         (_dbus_verbose_bytes), (_dbus_marshal_test):
6154         * dbus/dbus-marshal.h:
6155         * dbus/dbus-message-internal.h:
6156         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
6157         (dbus_message_write_header), (_dbus_message_lock),
6158         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
6159         (dbus_message_get_name), (dbus_message_append_int32),
6160         (dbus_message_append_uint32), (dbus_message_append_double),
6161         (dbus_message_append_string), (dbus_message_append_byte_array),
6162         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
6163         (dbus_message_iter_unref), (dbus_message_iter_has_next),
6164         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
6165         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
6166         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
6167         (decode_header_data), (_dbus_message_loader_return_buffer),
6168         (message_iter_test), (_dbus_message_test):
6169         * dbus/dbus-message.h:
6170         * dbus/dbus-protocol.h:
6171         * dbus/dbus-test.c: (main):
6172         * dbus/dbus-test.h:
6173         * glib/test-dbus-glib.c: (message_handler), (main):
6174         * test/echo-client.c: (main):
6175         * test/watch.c: (check_messages):
6176         Make messages sendable and receivable for real.
6177
6178 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
6179
6180         * dbus/dbus-marshal.c: (_dbus_marshal_double),
6181         (_dbus_marshal_string), (_dbus_marshal_byte_array):
6182         * dbus/dbus-message.c: (dbus_message_append_int32),
6183         (dbus_message_append_uint32), (dbus_message_append_double),
6184         (dbus_message_append_string), (dbus_message_append_byte_array):
6185         Handle OOM restoration.
6186
6187 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
6188
6189         * dbus/dbus-marshal.c: (_dbus_marshal_string),
6190         (_dbus_demarshal_string), (_dbus_marshal_test):
6191         * dbus/dbus-marshal.h:
6192         * dbus/dbus-message.c: (dbus_message_get_name),
6193         Document these functions.
6194
6195         (dbus_message_append_int32), (dbus_message_append_uint32),
6196         (dbus_message_append_double), (dbus_message_append_string),
6197         (dbus_message_append_byte_array):
6198         * dbus/dbus-message.h:
6199         Add functions for adding message fields of different types.
6200
6201         * dbus/dbus-protocol.h:
6202         Add the different types.
6203
6204 2003-01-05  Havoc Pennington  <hp@pobox.com>
6205
6206         * bus/connection.c: implement routines for handling connections,
6207         first thing is keeping a list of owned services on each connection
6208         and setting up watches etc.
6209
6210         * bus/services.c: implement a mapping from service names to lists
6211         of connections
6212
6213         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
6214
6215         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
6216         to use static mutexes for global data
6217
6218         * dbus/dbus-connection.c (dbus_connection_set_data): add new
6219         collection of functions to set/get application-specific data
6220         on the DBusConnection.
6221
6222 2003-01-04  Havoc Pennington  <hp@pobox.com>
6223
6224         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
6225         (_dbus_poll): new function
6226
6227         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
6228         copied from GLib
6229
6230         * bus/loop.c: initial code for the daemon main loop
6231
6232 2003-01-04  Havoc Pennington  <hp@pobox.com>
6233
6234         * test/watch.c (error_handler): make it safe if the error handler
6235         is called multiple times (if we s/error handler/disconnect
6236         handler/ we should just guarantee it's called only once)
6237
6238         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
6239         error handler on disconnect (it's quite possible we should
6240         just change the error handler to a "disconnect handler," I'm
6241         not sure we have any other meaningful errors)
6242
6243         * configure.in: check for getpwnam_r
6244
6245         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6246         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
6247         mechanism as in SASL spec, using socket credentials
6248
6249         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
6250         (_dbus_send_credentials_unix_socket): new function
6251
6252         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
6253         dbus_accept()
6254         (_dbus_write): only check errno if <0 returned
6255         (_dbus_write_two): ditto
6256
6257 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
6258
6259         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
6260         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
6261         (_dbus_marshal_test):
6262         * dbus/dbus-marshal.h:
6263         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
6264         to _dbus_marshal_utf8_string. Also fix some tests.
6265
6266 2002-12-28  Harri Porten  <porten@kde.org>
6267
6268         * configure.in: added check for C++ compiler and a very cheesy
6269         check for the Qt integration
6270
6271         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
6272
6273         * qt/Makefile.am: added
6274
6275         * qt/.cvsignore: added
6276
6277         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
6278         latter, added #ifdef QT_THREAD_SUPPORT guard.
6279
6280         * dbus/Makefile.am: added missing headers for make dist
6281
6282 2002-12-28  Kristian Rietveld  <kris@gtk.org>
6283
6284         * dbus/Makefile.am: fixup export-symbols-regex.
6285
6286 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
6287
6288         * acinclude.m4: Add this file and put the
6289         PKG_CHECK_MODULE macro in it.
6290
6291 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
6292
6293         * dbus/dbus-marshal.c: (_dbus_marshal_string),
6294         (_dbus_demarshal_double), (_dbus_demarshal_int32),
6295         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
6296         (_dbus_marshal_test):
6297         Make the demarshalling routines align the pos argument.
6298         Add string marshalling tests and fix the obvious bugs
6299         discovered.
6300
6301 2002-12-26  Havoc Pennington  <hp@pobox.com>
6302
6303         * dbus/dbus-auth.c: fixes fixes fixes
6304
6305         * dbus/dbus-transport-unix.c: wire up support for
6306         encoding/decoding data on the wire
6307
6308         * dbus/dbus-auth.c (_dbus_auth_encode_data)
6309         (_dbus_auth_decode_data): append to target string
6310         instead of nuking it.
6311
6312 2002-12-26  Havoc Pennington  <hp@pobox.com>
6313
6314         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
6315         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
6316         doh
6317
6318         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
6319         avoid swap_bytes() overhead (ignoring possible assembly stuff for
6320         now). Main point is because I wanted unpack_uint32 to implement
6321         _dbus_verbose_bytes
6322         (_dbus_verbose_bytes): new function
6323
6324         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
6325
6326         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
6327         mechanism to handle a corrupt message stream
6328         (_dbus_message_loader_new): fix preallocation to only prealloc,
6329         not prelengthen
6330
6331         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
6332         (_dbus_string_test): enhance tests for copy/move and fix the
6333         functions
6334
6335         * dbus/dbus-transport-unix.c: Hold references in more places to
6336         avoid reentrancy problems
6337
6338         * dbus/dbus-transport.c: ditto
6339
6340         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
6341         leak reference count in no-message case
6342
6343         * test/watch.c (do_mainloop): handle adding/removing watches
6344         during iteration over the watches. Also, ref the connection/server
6345         stored on a watch, so we don't try to mangle a destroyed one.
6346
6347         * dbus/dbus-transport-unix.c (do_authentication): perform
6348         authentication
6349
6350         * dbus/dbus-auth.c (get_state): add a state
6351         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
6352         (_dbus_auth_get_unused_bytes): append the unused bytes
6353         to the passed in string, rather than prepend
6354
6355         * dbus/dbus-transport.c (_dbus_transport_init_base): create
6356         the auth conversation DBusAuth
6357
6358         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
6359         (_dbus_transport_new_for_domain_socket): when creating a
6360         transport, pass in whether it's a client-side or server-side
6361         transport so we know which DBusAuth to create
6362
6363 2002-12-03  Havoc Pennington  <hp@pobox.com>
6364
6365         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
6366         _after_ finalizing the derived members
6367         (unix_connection_set): unref watch if we fail to add it
6368
6369         * dbus/dbus-connection.c (dbus_connection_unref): delete the
6370         transport first, so that the connection owned by the
6371         transport will be valid as the transport finalizes.
6372
6373         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
6374         if necessary, and remove watches from the connection.
6375
6376         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
6377
6378 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
6379
6380         * dbus/dbus-marshal.c: (_dbus_marshal_string),
6381         (_dbus_demarshal_double), (_dbus_demarshal_int32),
6382         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
6383         (_dbus_marshal_test):
6384         * dbus/dbus-marshal.h:
6385         Add string marshal functions and have the demarshal functions
6386         return the new position.
6387
6388 2002-12-25  Havoc Pennington  <hp@pobox.com>
6389
6390         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
6391         it is a simple protocol that just maps directly to SASL.
6392
6393         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
6394         initial implementation, not actually used yet.
6395
6396         * dbus/dbus-string.c (_dbus_string_find): new function
6397         (_dbus_string_equal): new function
6398         (_dbus_string_base64_encode): new function
6399         (_dbus_string_base64_decode): new function
6400
6401 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
6402
6403         * dbus/Makefile.am:
6404         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
6405         (_dbus_marshal_int32), (_dbus_marshal_uint32),
6406         (_dbus_demarshal_double), (_dbus_demarshal_int32),
6407         (_dbus_demarshal_uint32), (_dbus_marshal_test):
6408         * dbus/dbus-marshal.h:
6409         * dbus/dbus-protocol.h:
6410         * dbus/dbus-test.c: (main):
6411         * dbus/dbus-test.h:
6412         Add un-optimized marshalling/demarshalling routines.
6413
6414 2002-12-25  Harri Porten  <porten@kde.org>
6415
6416         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
6417
6418 2002-12-24  Zack Rusin  <zack@kde.org>
6419
6420         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
6421         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
6422         main loop stuff
6423
6424 2002-12-24  Havoc Pennington  <hp@pobox.com>
6425
6426         * glib/dbus-gthread.c: fix include
6427
6428         * glib/dbus-glib.h: rename DBusMessageHandler for now.
6429         I think glib API needs to change, though, as you don't
6430         want to use DBusMessageFunction, you want to use the
6431         DBusMessageHandler object. Probably
6432         dbus_connection_open_with_g_main_loop()
6433         and dbus_connection_setup_g_main_loop() or something like that
6434         (but think of better names...) that just create a connection
6435         that has watch/timeout functions etc. already set up.
6436
6437         * dbus/dbus-connection.c
6438         (dbus_connection_send_message_with_reply): new function just to
6439         show how the message handler helps us deal with replies.
6440
6441         * dbus/dbus-list.c (_dbus_list_remove_last): new function
6442
6443         * dbus/dbus-string.c (_dbus_string_test): free a string that
6444         wasn't
6445
6446         * dbus/dbus-hash.c: use memory pools for the hash entries
6447         (rebuild_table): be more paranoid about overflow, and
6448         shrink table when we can
6449         (_dbus_hash_test): reduce number of sprintfs and write
6450         valid C89. Add tests for case where we grow and then
6451         shrink the hash table.
6452
6453         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
6454
6455         * dbus/dbus-connection.c (dbus_connection_register_handler)
6456         (dbus_connection_unregister_handler): new functions
6457
6458         * dbus/dbus-message.c (dbus_message_get_name): new
6459
6460         * dbus/dbus-list.c: fix docs typo
6461
6462         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
6463         an object representing a handler for messages.
6464
6465 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
6466
6467         * glib/dbus-glib.h:
6468         * glib/dbus-gthread.c: (dbus_gthread_init):
6469         Don't use the gdbus prefix for public functions.
6470
6471 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
6472
6473         * Makefile.am:
6474         * configure.in:
6475         Add GLib checks and fixup .pc files
6476
6477         * glib/Makefile.am:
6478         * glib/dbus-glib.h:
6479         * glib/dbus-gmain.c: (gdbus_connection_prepare),
6480         (gdbus_connection_check), (gdbus_connection_dispatch),
6481         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
6482         (dbus_connection_gsource_new):
6483         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
6484         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
6485         * glib/test-dbus-glib.c: (message_handler), (main):
6486         Add GLib support.
6487
6488 2002-12-15  Harri Porten  <porten@kde.org>
6489
6490         * autogen.sh: check for libtoolize before attempting to use it
6491
6492         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
6493         struct.
6494
6495         * .cvsignore: ignore more stamp files
6496
6497         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
6498
6499         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
6500         without make install.
6501
6502 2002-12-15  Havoc Pennington  <hp@pobox.com>
6503
6504         * dbus/dbus-threads.c: add thread stubs that a higher library
6505         layer can fill in. e.g. the GLib wrapper might fill them in with
6506         GThread stuff. We still need to use this thread API to
6507         thread-safe-ize the library.
6508
6509 2002-12-12  Havoc Pennington  <hp@pobox.com>
6510
6511         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
6512         below new interfaces and include fewer system headers.
6513
6514         * dbus/dbus-sysdeps.c (_dbus_read): new function
6515         (_dbus_write): new function
6516         (_dbus_write_two): new function
6517         (_dbus_connect_unix_socket): new function
6518         (_dbus_listen_unix_socket): new function
6519
6520         * dbus/dbus-message-internal.h: change interfaces to use
6521         DBusString
6522
6523 2002-12-11  Havoc Pennington  <hp@pobox.com>
6524
6525         * dbus/dbus-types.h: add dbus_unichar
6526
6527         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
6528
6529         * dbus/dbus-connection.c (dbus_connection_send_message): return
6530         TRUE on success
6531
6532         * dbus/dbus-transport.c: include dbus-watch.h
6533
6534         * dbus/dbus-connection.c: include dbus-message-internal.h
6535
6536         * HACKING: add file with coding guidelines stuff.
6537
6538         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
6539         handling here, for security purposes (as in vsftpd). Not actually
6540         using this class yet.
6541
6542         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
6543         system/libc usage here, as in vsftpd, for ease of auditing (and
6544         should also simplify portability). Haven't actually moved all the
6545         system/libc usage into here yet.
6546
6547 2002-11-25  Havoc Pennington  <hp@pobox.com>
6548
6549         * dbus/dbus-internals.c (_dbus_verbose): fix to not
6550         always print the first verbose message.
6551
6552 2002-11-24  Havoc Pennington  <hp@pobox.com>
6553
6554         * test/echo-client.c, test/echo-server.c: cheesy test
6555         clients.
6556
6557         * configure.in (AC_CHECK_FUNCS): check for writev
6558
6559         * dbus/dbus-message.c (_dbus_message_get_network_data): new
6560         function
6561
6562         * dbus/dbus-list.c (_dbus_list_foreach): new function
6563
6564         * dbus/dbus-internals.c (_dbus_verbose): new function
6565
6566         * dbus/dbus-server.c, dbus/dbus-server.h: public object
6567         representing a server that listens for connections.
6568
6569         * dbus/.cvsignore: create
6570
6571         * dbus/dbus-errors.h, dbus/dbus-errors.c:
6572         public API for reporting errors
6573
6574         * dbus/dbus-connection.h, dbus/dbus-connection.c:
6575         public object representing a connection that
6576         sends/receives messages. (Same object used for
6577         both client and server.)
6578
6579         * dbus/dbus-transport.h, dbus/dbus-transport.c:
6580         Basic abstraction for different kinds of stream
6581         that we might read/write messages from.
6582
6583 2002-11-23  Havoc Pennington  <hp@pobox.com>
6584
6585         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
6586         _DBUS_INT_MAX
6587
6588         * dbus/dbus-test.c (main): add list test, and include
6589         dbus-test.h as intended
6590
6591         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
6592         (_dbus_hash_table_remove_int): return value indicates
6593         whether the entry existed to remove
6594
6595         * dbus/dbus-list.c: add linked list utility class,
6596         with docs and tests
6597
6598         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
6599         array sometimes.
6600
6601 2002-11-23  Havoc Pennington  <hp@pobox.com>
6602
6603         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
6604         DBUS_END_DECLS to nothing, that should fix this once and for all
6605
6606         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
6607
6608         * dbus/dbus-message.c, dbus/dbus-hash.c:
6609         add some missing @brief
6610
6611 2002-11-23  Havoc Pennington  <hp@pobox.com>
6612
6613         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
6614         to avoid confusing Doxygen
6615
6616         * dbus/dbus-hash.c: @} not }@
6617
6618         * dbus/dbus-message.c (struct DBusMessage): split out
6619         internals docs
6620
6621 2002-11-23  Havoc Pennington  <hp@pobox.com>
6622
6623         * configure.in: pile on more warning flags if using gcc
6624
6625         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
6626         to document static functions
6627
6628         * configure.in: add summary to end of configure so it
6629         looks nice and attractive
6630
6631         * dbus/dbus-hash.c: finish implementation and write unit
6632         tests and docs
6633
6634         * configure.in: add --enable-tests to enable unit tests
6635
6636         * dbus/dbus-test.c: test program to run unit tests
6637         for all files in dbus/*, initially runs a test for
6638         dbus-hash.c
6639
6640         * dbus/dbus-internals.h: file to hold some internal utility stuff
6641
6642 2002-11-22  Havoc Pennington  <hp@redhat.com>
6643
6644         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
6645         "ported" away from Tcl
6646
6647         * dbus/dbus-types.h: header for types such as dbus_bool_t
6648
6649 2002-11-22  Havoc Pennington  <hp@redhat.com>
6650
6651         * dbus/dbus.h: fixups for doc warnings
6652
6653         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
6654         macros
6655         (QUIET): make it quiet so we can see warnings
6656
6657         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
6658
6659 2002-11-22  Havoc Pennington  <hp@redhat.com>
6660
6661         * Makefile.am: include "Doxyfile" target in all-local
6662
6663         * configure.in: generate the Doxyfile
6664
6665         * Doxyfile.in: move Doxyfile here, so we can use
6666         configure to generate a Doxyfile with the right
6667         version number etc.
6668
6669 2002-11-22  Havoc Pennington  <hp@redhat.com>
6670
6671         * dbus/dbus-message.c: move inline docs into .c file
6672
6673         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
6674         so all docs are under doc/
6675         (MAN_EXTENSION): generate man pages. Use extension
6676         ".3dbus" which matches ".3qt" on my system,
6677         I guess this is OK, I don't know really.
6678         (FILE_PATTERNS): look for .c files not .h, makes sense
6679         for plain C I think
6680
6681 2002-11-22  Havoc Pennington  <hp@pobox.com>
6682
6683         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
6684         because any app can be a server, and any app can be a client,
6685         the bus is a special kind of server.
6686
6687 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
6688
6689         * Doxyfile : adding. Still needs Makefile rules to be generated
6690         automatically (just run "doxygen" in the toplevel dir for now to
6691         generate docs)
6692
6693         * dbus/dbus-message.h : Adding sample docs (javadoc since
6694         resembles gtk-doc a little more)
6695
6696         * dbus/dbus.h : Adding sample docs
6697
6698 2002-11-21  Havoc Pennington  <hp@redhat.com>
6699
6700         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
6701         so we can allow ourselves to include files directly,
6702         instead of having to use dbus.h
6703
6704         * dbus/dbus.h: fill in
6705
6706         * dbus/dbus-message.h: sketch out a sample header file.
6707         Include griping if you include it directly instead of
6708         via dbus.h
6709
6710         * dbus/dbus-macros.h: new file with macros for extern "C",
6711         TRUE/FALSE, NULL, etc.
6712
6713         * doc/file-boilerplate.c: put include guards in here
6714
6715 2002-11-21  Havoc Pennington  <hp@redhat.com>
6716
6717         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
6718
6719         * COPYING: include the GPL as well, and license code
6720         under both AFL and GPL.
6721
6722 2002-11-21  Havoc Pennington  <hp@redhat.com>
6723
6724         * acconfig.h: get rid of this
6725
6726         * autogen.sh (run_configure): add --no-configure option
6727
6728         * configure.in: remove AC_ARG_PROGRAM to make
6729         autoconf complain less. add AC_PREREQ.
6730         add AC_DEFINE third arg.
6731
6732 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
6733
6734         * doc/Makefile.am:
6735         Fix references so we can distcheck.
6736
6737 2002-11-21  Havoc Pennington  <hp@redhat.com>
6738
6739         * Initial module creation
6740