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