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