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